From c2f6bc4e2098265fb1fc8f671dbdecbb5917c6fc Mon Sep 17 00:00:00 2001 From: cyberta Date: Tue, 29 Nov 2022 14:01:05 +0100 Subject: new EipFragment layout for Bitmask - portrait --- .../bitmaskclient/base/views/LocationButton.java | 25 +++- app/src/main/res/drawable-hdpi/bg_green.png | Bin 0 -> 190405 bytes app/src/main/res/drawable-hdpi/bg_red.png | Bin 0 -> 143331 bytes app/src/main/res/drawable-hdpi/bg_yellow.png | Bin 0 -> 236571 bytes app/src/main/res/drawable-hdpi/green_mask.png | Bin 0 -> 81235 bytes app/src/main/res/drawable-hdpi/red_mask.png | Bin 0 -> 73514 bytes app/src/main/res/drawable-hdpi/yellow_mask.png | Bin 0 -> 80386 bytes app/src/main/res/drawable-xhdpi/bg_green.png | Bin 0 -> 319429 bytes app/src/main/res/drawable-xhdpi/bg_red.png | Bin 0 -> 220676 bytes app/src/main/res/drawable-xhdpi/bg_yellow.png | Bin 0 -> 400307 bytes app/src/main/res/drawable-xhdpi/green_mask.png | Bin 0 -> 121655 bytes app/src/main/res/drawable-xhdpi/red_mask.png | Bin 0 -> 116193 bytes app/src/main/res/drawable-xhdpi/yellow_mask.png | Bin 0 -> 122701 bytes app/src/main/res/drawable-xxhdpi/bg_green.png | Bin 0 -> 701727 bytes app/src/main/res/drawable-xxhdpi/bg_red.png | Bin 0 -> 446155 bytes app/src/main/res/drawable-xxhdpi/bg_yellow.png | Bin 0 -> 828368 bytes app/src/main/res/drawable-xxhdpi/green_mask.png | Bin 0 -> 220730 bytes app/src/main/res/drawable-xxhdpi/red_mask.png | Bin 0 -> 222370 bytes app/src/main/res/drawable-xxhdpi/yellow_mask.png | Bin 0 -> 226345 bytes app/src/main/res/drawable-xxxhdpi/bg_green.png | Bin 0 -> 1228810 bytes app/src/main/res/drawable-xxxhdpi/bg_red.png | Bin 0 -> 745847 bytes app/src/main/res/drawable-xxxhdpi/bg_yellow.png | Bin 0 -> 1489207 bytes app/src/main/res/drawable-xxxhdpi/green_mask.png | Bin 0 -> 324196 bytes app/src/main/res/drawable-xxxhdpi/red_mask.png | Bin 0 -> 362086 bytes app/src/main/res/drawable-xxxhdpi/yellow_mask.png | Bin 0 -> 334967 bytes app/src/main/res/drawable/bg_green.png | Bin 0 -> 90299 bytes app/src/main/res/drawable/bg_red.png | Bin 0 -> 143331 bytes app/src/main/res/drawable/bg_yellow.png | Bin 0 -> 112042 bytes app/src/main/res/drawable/green_mask.png | Bin 0 -> 47593 bytes app/src/main/res/drawable/red_mask.png | Bin 0 -> 40172 bytes app/src/main/res/drawable/yellow_mask.png | Bin 0 -> 47055 bytes app/src/main/res/layout/v_location_button.xml | 33 ++--- app/src/main/res/values/colors.xml | 5 + app/src/main/res/values/strings.xml | 3 + .../EipFragment.java | 163 +++++++-------------- app/src/normal/res/color/button_tint_color.xml | 9 ++ app/src/normal/res/drawable/background_red.xml | 26 ++++ .../res/drawable/cust_button_primary_rect.xml | 79 ++++++++++ app/src/normal/res/layout-port/f_eip.xml | 85 ++++++++--- app/src/normal/res/layout-xlarge-port/f_eip.xml | 1 - app/src/normal/res/layout-xlarge/f_eip.xml | 1 - app/src/normal/res/layout/f_eip.xml | 65 ++++---- app/src/normal/res/layout/v_location_button.xml | 104 +++++++++++++ 43 files changed, 417 insertions(+), 182 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/bg_green.png create mode 100644 app/src/main/res/drawable-hdpi/bg_red.png create mode 100644 app/src/main/res/drawable-hdpi/bg_yellow.png create mode 100644 app/src/main/res/drawable-hdpi/green_mask.png create mode 100644 app/src/main/res/drawable-hdpi/red_mask.png create mode 100644 app/src/main/res/drawable-hdpi/yellow_mask.png create mode 100644 app/src/main/res/drawable-xhdpi/bg_green.png create mode 100644 app/src/main/res/drawable-xhdpi/bg_red.png create mode 100644 app/src/main/res/drawable-xhdpi/bg_yellow.png create mode 100644 app/src/main/res/drawable-xhdpi/green_mask.png create mode 100644 app/src/main/res/drawable-xhdpi/red_mask.png create mode 100644 app/src/main/res/drawable-xhdpi/yellow_mask.png create mode 100644 app/src/main/res/drawable-xxhdpi/bg_green.png create mode 100644 app/src/main/res/drawable-xxhdpi/bg_red.png create mode 100644 app/src/main/res/drawable-xxhdpi/bg_yellow.png create mode 100644 app/src/main/res/drawable-xxhdpi/green_mask.png create mode 100644 app/src/main/res/drawable-xxhdpi/red_mask.png create mode 100644 app/src/main/res/drawable-xxhdpi/yellow_mask.png create mode 100644 app/src/main/res/drawable-xxxhdpi/bg_green.png create mode 100644 app/src/main/res/drawable-xxxhdpi/bg_red.png create mode 100644 app/src/main/res/drawable-xxxhdpi/bg_yellow.png create mode 100644 app/src/main/res/drawable-xxxhdpi/green_mask.png create mode 100644 app/src/main/res/drawable-xxxhdpi/red_mask.png create mode 100644 app/src/main/res/drawable-xxxhdpi/yellow_mask.png create mode 100644 app/src/main/res/drawable/bg_green.png create mode 100644 app/src/main/res/drawable/bg_red.png create mode 100644 app/src/main/res/drawable/bg_yellow.png create mode 100644 app/src/main/res/drawable/green_mask.png create mode 100644 app/src/main/res/drawable/red_mask.png create mode 100644 app/src/main/res/drawable/yellow_mask.png create mode 100644 app/src/normal/res/color/button_tint_color.xml create mode 100644 app/src/normal/res/drawable/background_red.xml create mode 100644 app/src/normal/res/drawable/cust_button_primary_rect.xml create mode 100644 app/src/normal/res/layout/v_location_button.xml (limited to 'app') diff --git a/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java b/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java index b2182d61..2118ecb5 100644 --- a/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java +++ b/app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java @@ -1,17 +1,25 @@ package se.leap.bitmaskclient.base.views; import android.content.Context; +import android.content.res.ColorStateList; +import android.graphics.drawable.ColorDrawable; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatImageView; import androidx.appcompat.widget.AppCompatTextView; +import androidx.core.content.ContextCompat; +import androidx.core.view.LayoutInflaterCompat; +import androidx.core.view.ViewCompat; import se.leap.bitmaskclient.R; +import se.leap.bitmaskclient.databinding.VLocationButtonBinding; import se.leap.bitmaskclient.eip.GatewaysManager; public class LocationButton extends RelativeLayout { @@ -31,13 +39,16 @@ public class LocationButton extends RelativeLayout { } private void initLayout(Context context) { - LayoutInflater inflater = (LayoutInflater) context - .getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View rootview = inflater.inflate(R.layout.v_location_button, this, true); - locationIndicator = rootview.findViewById(R.id.load_indicator); - textView = rootview.findViewById(R.id.text_location); - bridgeView = rootview.findViewById(R.id.bridge_icn); - recommendedView = rootview.findViewById(R.id.recommended_icn); + VLocationButtonBinding binding = VLocationButtonBinding.inflate(LayoutInflater.from(context), this, true); + locationIndicator = binding.loadIndicator; + textView = binding.textLocation; + bridgeView = binding.bridgeIcn; + recommendedView = binding.recommendedIcn; + + } + + public void setTextColor(@ColorRes int color) { + textView.setTextColor(ContextCompat.getColor(getContext(), color)); } public void setLocationLoad(GatewaysManager.Load load) { diff --git a/app/src/main/res/drawable-hdpi/bg_green.png b/app/src/main/res/drawable-hdpi/bg_green.png new file mode 100644 index 00000000..0e98f705 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/bg_green.png differ diff --git a/app/src/main/res/drawable-hdpi/bg_red.png b/app/src/main/res/drawable-hdpi/bg_red.png new file mode 100644 index 00000000..de96be57 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/bg_red.png differ diff --git a/app/src/main/res/drawable-hdpi/bg_yellow.png b/app/src/main/res/drawable-hdpi/bg_yellow.png new file mode 100644 index 00000000..24632712 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/bg_yellow.png differ diff --git a/app/src/main/res/drawable-hdpi/green_mask.png b/app/src/main/res/drawable-hdpi/green_mask.png new file mode 100644 index 00000000..fccc060a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/green_mask.png differ diff --git a/app/src/main/res/drawable-hdpi/red_mask.png b/app/src/main/res/drawable-hdpi/red_mask.png new file mode 100644 index 00000000..d2ef7d99 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/red_mask.png differ diff --git a/app/src/main/res/drawable-hdpi/yellow_mask.png b/app/src/main/res/drawable-hdpi/yellow_mask.png new file mode 100644 index 00000000..72e3ae45 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/yellow_mask.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_green.png b/app/src/main/res/drawable-xhdpi/bg_green.png new file mode 100644 index 00000000..915dff95 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_green.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_red.png b/app/src/main/res/drawable-xhdpi/bg_red.png new file mode 100644 index 00000000..433c776f Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_red.png differ diff --git a/app/src/main/res/drawable-xhdpi/bg_yellow.png b/app/src/main/res/drawable-xhdpi/bg_yellow.png new file mode 100644 index 00000000..be4469df Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/bg_yellow.png differ diff --git a/app/src/main/res/drawable-xhdpi/green_mask.png b/app/src/main/res/drawable-xhdpi/green_mask.png new file mode 100644 index 00000000..c852459d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/green_mask.png differ diff --git a/app/src/main/res/drawable-xhdpi/red_mask.png b/app/src/main/res/drawable-xhdpi/red_mask.png new file mode 100644 index 00000000..c0d57a03 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/red_mask.png differ diff --git a/app/src/main/res/drawable-xhdpi/yellow_mask.png b/app/src/main/res/drawable-xhdpi/yellow_mask.png new file mode 100644 index 00000000..d81190fe Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/yellow_mask.png differ diff --git a/app/src/main/res/drawable-xxhdpi/bg_green.png b/app/src/main/res/drawable-xxhdpi/bg_green.png new file mode 100644 index 00000000..cd78d865 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/bg_green.png differ diff --git a/app/src/main/res/drawable-xxhdpi/bg_red.png b/app/src/main/res/drawable-xxhdpi/bg_red.png new file mode 100644 index 00000000..ffbcdb79 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/bg_red.png differ diff --git a/app/src/main/res/drawable-xxhdpi/bg_yellow.png b/app/src/main/res/drawable-xxhdpi/bg_yellow.png new file mode 100644 index 00000000..718e102f Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/bg_yellow.png differ diff --git a/app/src/main/res/drawable-xxhdpi/green_mask.png b/app/src/main/res/drawable-xxhdpi/green_mask.png new file mode 100644 index 00000000..32286177 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/green_mask.png differ diff --git a/app/src/main/res/drawable-xxhdpi/red_mask.png b/app/src/main/res/drawable-xxhdpi/red_mask.png new file mode 100644 index 00000000..ac560317 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/red_mask.png differ diff --git a/app/src/main/res/drawable-xxhdpi/yellow_mask.png b/app/src/main/res/drawable-xxhdpi/yellow_mask.png new file mode 100644 index 00000000..75cf3782 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/yellow_mask.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/bg_green.png b/app/src/main/res/drawable-xxxhdpi/bg_green.png new file mode 100644 index 00000000..3c9d97b4 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_green.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/bg_red.png b/app/src/main/res/drawable-xxxhdpi/bg_red.png new file mode 100644 index 00000000..2503f135 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_red.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/bg_yellow.png b/app/src/main/res/drawable-xxxhdpi/bg_yellow.png new file mode 100644 index 00000000..bff2004c Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/bg_yellow.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/green_mask.png b/app/src/main/res/drawable-xxxhdpi/green_mask.png new file mode 100644 index 00000000..f5a5adaf Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/green_mask.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/red_mask.png b/app/src/main/res/drawable-xxxhdpi/red_mask.png new file mode 100644 index 00000000..9e216955 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/red_mask.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/yellow_mask.png b/app/src/main/res/drawable-xxxhdpi/yellow_mask.png new file mode 100644 index 00000000..806dcbf4 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/yellow_mask.png differ diff --git a/app/src/main/res/drawable/bg_green.png b/app/src/main/res/drawable/bg_green.png new file mode 100644 index 00000000..6da7878d Binary files /dev/null and b/app/src/main/res/drawable/bg_green.png differ diff --git a/app/src/main/res/drawable/bg_red.png b/app/src/main/res/drawable/bg_red.png new file mode 100644 index 00000000..de96be57 Binary files /dev/null and b/app/src/main/res/drawable/bg_red.png differ diff --git a/app/src/main/res/drawable/bg_yellow.png b/app/src/main/res/drawable/bg_yellow.png new file mode 100644 index 00000000..c371f3f0 Binary files /dev/null and b/app/src/main/res/drawable/bg_yellow.png differ diff --git a/app/src/main/res/drawable/green_mask.png b/app/src/main/res/drawable/green_mask.png new file mode 100644 index 00000000..e515f3f5 Binary files /dev/null and b/app/src/main/res/drawable/green_mask.png differ diff --git a/app/src/main/res/drawable/red_mask.png b/app/src/main/res/drawable/red_mask.png new file mode 100644 index 00000000..a4bd4a78 Binary files /dev/null and b/app/src/main/res/drawable/red_mask.png differ diff --git a/app/src/main/res/drawable/yellow_mask.png b/app/src/main/res/drawable/yellow_mask.png new file mode 100644 index 00000000..98dd7978 Binary files /dev/null and b/app/src/main/res/drawable/yellow_mask.png differ diff --git a/app/src/main/res/layout/v_location_button.xml b/app/src/main/res/layout/v_location_button.xml index d304d429..44a4c67e 100644 --- a/app/src/main/res/layout/v_location_button.xml +++ b/app/src/main/res/layout/v_location_button.xml @@ -39,31 +39,30 @@ android:visibility="gone" tools:visibility="visible" /> + + app:autoSizeMaxTextSize="24sp" + app:autoSizeMinTextSize="15sp" + app:autoSizeTextType="uniform" + tools:text="Seattle along message" /> #C78F00 #9FC17F #709152 + #CCFFFEFE + #CCCCCBCB + #EC6767 + #DB6F66 + #D05D59 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 92229e44..722f10ed 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,6 +67,9 @@ Authentication failed Registration failed Initiating connection + Connecting VPN + Unsecured Connection + Secured Connection Cancel connection? There is a connection attempt in progress. Do you wish to cancel it? Turn off VPN connection? When the VPN is off, you may leak personal information to your Internet provider or local network. diff --git a/app/src/normal/java/se.leap.bitmaskclient.base.fragments/EipFragment.java b/app/src/normal/java/se.leap.bitmaskclient.base.fragments/EipFragment.java index 2588f436..842cb38e 100644 --- a/app/src/normal/java/se.leap.bitmaskclient.base.fragments/EipFragment.java +++ b/app/src/normal/java/se.leap.bitmaskclient.base.fragments/EipFragment.java @@ -63,6 +63,7 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.AppCompatImageView; import androidx.appcompat.widget.AppCompatTextView; +import androidx.core.content.ContextCompat; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; @@ -71,10 +72,6 @@ import java.util.Observable; import java.util.Observer; import java.util.concurrent.atomic.AtomicBoolean; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; -import butterknife.Unbinder; import de.blinkt.openvpn.core.ConnectionStatus; import de.blinkt.openvpn.core.IOpenVPNServiceInternal; import de.blinkt.openvpn.core.OpenVPNService; @@ -84,13 +81,12 @@ import se.leap.bitmaskclient.BuildConfig; import se.leap.bitmaskclient.R; import se.leap.bitmaskclient.base.FragmentManagerEnhanced; import se.leap.bitmaskclient.base.MainActivity; -import se.leap.bitmaskclient.base.fragments.DonationReminderDialog; -import se.leap.bitmaskclient.base.fragments.GatewaySelectionFragment; import se.leap.bitmaskclient.base.models.Provider; import se.leap.bitmaskclient.base.models.ProviderObservable; import se.leap.bitmaskclient.base.utils.PreferenceHelper; import se.leap.bitmaskclient.base.views.LocationButton; import se.leap.bitmaskclient.base.views.MainButton; +import se.leap.bitmaskclient.databinding.FEipBinding; import se.leap.bitmaskclient.eip.EipCommand; import se.leap.bitmaskclient.eip.EipStatus; import se.leap.bitmaskclient.eip.GatewaysManager; @@ -110,22 +106,13 @@ public class EipFragment extends Fragment implements Observer { private SharedPreferences preferences; private Provider provider; - @BindView(R.id.background) AppCompatImageView background; - - @BindView(R.id.main_button) + AppCompatImageView stateView; MainButton mainButton; - - @BindView(R.id.gateway_location_button) LocationButton locationButton; - - @BindView(R.id.main_description) AppCompatTextView mainDescription; - - @BindView(R.id.sub_description) AppCompatTextView subDescription; - private Unbinder unbinder; private EipStatus eipStatus; private ProviderObservable providerObservable; private TorStatusObservable torStatusObservable; @@ -195,11 +182,18 @@ public class EipFragment extends Fragment implements Observer { @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + FEipBinding binding = FEipBinding.inflate(LayoutInflater.from(getContext()), container, false); + background = binding.background; + mainButton = binding.mainButton; + locationButton = binding.gatewayLocationButton; + locationButton.setTextColor(R.color.black800); + mainDescription = binding.mainDescription; + subDescription = binding.subDescription; + stateView = binding.stateView; + eipStatus.addObserver(this); torStatusObservable.addObserver(this); providerObservable.addObserver(this); - View view = inflater.inflate(R.layout.f_eip, container, false); - unbinder = ButterKnife.bind(this, view); try { Bundle arguments = getArguments(); @@ -219,7 +213,11 @@ public class EipFragment extends Fragment implements Observer { Fragment fragment = new GatewaySelectionFragment(); fragmentManager.replace(R.id.main_container, fragment, MainActivity.TAG); }); - return view; + + mainButton.setOnClickListener(v -> { + handleIcon(); + }); + return binding.getRoot(); } @Override @@ -273,18 +271,12 @@ public class EipFragment extends Fragment implements Observer { eipStatus.deleteObserver(this); providerObservable.deleteObserver(this); torStatusObservable.deleteObserver(this); - unbinder.unbind(); } private void saveStatus(boolean restartOnBoot) { preferences.edit().putBoolean(EIP_RESTART_ON_BOOT, restartOnBoot).apply(); } - @OnClick(R.id.main_button) - void onButtonClick() { - handleIcon(); - } - void handleIcon() { if (isOpenVpnRunningWithoutNetwork() || eipStatus.isConnected() || eipStatus.isConnecting() || eipStatus.isUpdatingVpnCert()) handleSwitchOff(); @@ -448,12 +440,15 @@ public class EipFragment extends Fragment implements Observer { Log.d(TAG, "eip fragment eipStatus state: " + eipStatus.getState() + " - level: " + eipStatus.getLevel() + " - is reconnecting: " + eipStatus.isReconnecting()); if (eipStatus.isUpdatingVpnCert()) { setMainButtonEnabled(true); - showConnectionTransitionLayout(true); - locationButton.setText(getString(R.string.eip_status_start_pending)); + String city = getPreferredCity(getContext()); + String locationName = VpnStatus.getCurrentlyConnectingVpnName() != null ? + VpnStatus.getCurrentlyConnectingVpnName() : + city == null ? getString(R.string.gateway_selection_recommended_location) : city; + locationButton.setText(locationName); locationButton.setLocationLoad(UNKNOWN); locationButton.showBridgeIndicator(false); locationButton.showRecommendedIndicator(false); - mainDescription.setText(null); + mainDescription.setText(R.string.eip_status_connecting); String torStatus = TorStatusObservable.getStringForCurrentStatus(getContext()); if (!TextUtils.isEmpty(torStatus)) { Spannable spannable = new SpannableString(torStatus); @@ -462,15 +457,25 @@ public class EipFragment extends Fragment implements Observer { } else { subDescription.setText(getString(R.string.updating_certificate_message)); } + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_yellow)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.yellow_mask)); + mainButton.updateState(false, true, false); } else if (eipStatus.isConnecting()) { setMainButtonEnabled(true); - showConnectionTransitionLayout(true); - locationButton.setText(getString(R.string.eip_status_start_pending)); + String city = getPreferredCity(getContext()); + String locationName = VpnStatus.getCurrentlyConnectingVpnName() != null ? + VpnStatus.getCurrentlyConnectingVpnName() : + city == null ? getString(R.string.gateway_selection_recommended_location) : city; + locationButton.setText(locationName); locationButton.setLocationLoad(UNKNOWN); locationButton.showBridgeIndicator(false); locationButton.showRecommendedIndicator(false); - mainDescription.setText(null); + mainDescription.setText(R.string.eip_status_connecting); subDescription.setText(null); + background.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.bg_yellow)); + stateView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.yellow_mask)); + mainButton.updateState(false, true, false); + } else if (eipStatus.isConnected()) { setMainButtonEnabled(true); mainButton.updateState(true, false, false); @@ -478,10 +483,11 @@ public class EipFragment extends Fragment implements Observer { locationButton.setLocationLoad(PreferenceHelper.useObfuscationPinning(getContext()) ? GatewaysManager.Load.UNKNOWN : gatewaysManager.getLoadForLocation(VpnStatus.getLastConnectedVpnName(), transportType)); locationButton.setText(VpnStatus.getLastConnectedVpnName()); locationButton.showBridgeIndicator(VpnStatus.isUsingBridges()); - locationButton.showRecommendedIndicator(getPreferredCity(getContext())== null); - mainDescription.setText(R.string.eip_state_connected); + locationButton.showRecommendedIndicator(getPreferredCity(getContext()) == null); + mainDescription.setText(R.string.eip_status_secured); subDescription.setText(null); - colorBackground(); + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_green)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.green_mask)); } else if(isOpenVpnRunningWithoutNetwork()) { Log.d(TAG, "eip fragment eipStatus - isOpenVpnRunningWithoutNetwork"); setMainButtonEnabled(true); @@ -490,82 +496,47 @@ public class EipFragment extends Fragment implements Observer { locationButton.showBridgeIndicator(VpnStatus.isUsingBridges()); locationButton.showBridgeIndicator(VpnStatus.isUsingBridges()); locationButton.showRecommendedIndicator(getPreferredCity(getContext())== null); - colorBackgroundALittle(); mainDescription.setText(R.string.eip_state_connected); subDescription.setText(R.string.eip_state_no_network); + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_yellow)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.yellow_mask)); } else if (eipStatus.isDisconnected() && reconnectingWithDifferentGateway()) { - showConnectionTransitionLayout(true); - // showRetryToast(activity); - locationButton.setText(getString(R.string.eip_status_start_pending)); + locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName()); locationButton.setLocationLoad(UNKNOWN); locationButton.showBridgeIndicator(false); locationButton.showRecommendedIndicator(false); - mainDescription.setText(null); + mainDescription.setText(R.string.eip_status_connecting); subDescription.setText(R.string.reconnecting); } else if (eipStatus.isDisconnecting()) { setMainButtonEnabled(false); - showConnectionTransitionLayout(false); - mainDescription.setText(R.string.eip_state_insecure); + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_red)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.yellow_mask)); + mainButton.updateState(false, false, false); + mainDescription.setText(R.string.eip_status_unsecured); } else if (eipStatus.isBlocking()) { setMainButtonEnabled(true); mainButton.updateState(true, false, true); - colorBackgroundALittle(); locationButton.setText(getString(R.string.no_location)); locationButton.setLocationLoad(UNKNOWN); locationButton.showBridgeIndicator(false); locationButton.showRecommendedIndicator(false); mainDescription.setText(R.string.eip_state_connected); subDescription.setText(getString(R.string.eip_state_blocking, getString(R.string.app_name))); + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_red)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.red_mask)); } else { - locationButton.setText(activity.getString(R.string.vpn_button_turn_on)); + locationButton.setText(getContext().getString(R.string.vpn_button_turn_on)); setMainButtonEnabled(true); mainButton.updateState(false, false, false); - greyscaleBackground(); locationButton.setLocationLoad(UNKNOWN); locationButton.showBridgeIndicator(false); String city = getPreferredCity(getContext()); locationButton.setText(city == null ? getString(R.string.gateway_selection_recommended_location) : city); locationButton.showRecommendedIndicator(false); - mainDescription.setText(R.string.eip_state_insecure); - subDescription.setText(R.string.connection_not_connected); - } - } - - private void showToast(Activity activity, String message, boolean vibrateLong) { - LayoutInflater inflater = getLayoutInflater(); - View layout = inflater.inflate(R.layout.custom_toast, - activity.findViewById(R.id.custom_toast_container)); - - AppCompatTextView text = layout.findViewById(R.id.text); - text.setText(message); - - Vibrator v = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); - if (vibrateLong) { - v.vibrate(100); - v.vibrate(200); - } else { - v.vibrate(100); - } - - Toast toast = new Toast(activity.getApplicationContext()); - toast.setGravity(Gravity.BOTTOM, 0, convertDimensionToPx(this.getContext(), R.dimen.stdpadding)); - toast.setDuration(Toast.LENGTH_LONG); - toast.setView(layout); - toast.show(); - } - - private void showRetryToast(Activity activity) { - int nClosestGateway = gatewayOrder(); - String message = String.format("Server number " + nClosestGateway + " not reachable. Trying next gateway."); - showToast(activity, message, true ); - } - - private void showConnectionTransitionLayout(boolean isConnecting) { - mainButton.updateState(true, isConnecting, false); - if (isConnecting) { - colorBackgroundALittle(); - } else { - greyscaleBackground(); + mainDescription.setText(R.string.eip_status_unsecured); + subDescription.setText(null); + background.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.bg_red)); + stateView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.red_mask)); } } @@ -582,30 +553,6 @@ public class EipFragment extends Fragment implements Observer { return isRunning; } - private void greyscaleBackground() { - if (BuildConfig.use_color_filter) { - ColorMatrix matrix = new ColorMatrix(); - matrix.setSaturation(0); - ColorMatrixColorFilter cf = new ColorMatrixColorFilter(matrix); - background.setColorFilter(cf); - background.setImageAlpha(255); - } - } - - private void colorBackgroundALittle() { - if (BuildConfig.use_color_filter) { - background.setColorFilter(null); - background.setImageAlpha(144); - } - } - - private void colorBackground() { - if (BuildConfig.use_color_filter) { - background.setColorFilter(null); - background.setImageAlpha(210); - } - } - private void updateInvalidVpnCertificate() { eipStatus.setUpdatingVpnCert(true); ProviderAPICommand.execute(getContext(), UPDATE_INVALID_VPN_CERTIFICATE, provider); diff --git a/app/src/normal/res/color/button_tint_color.xml b/app/src/normal/res/color/button_tint_color.xml new file mode 100644 index 00000000..f15e571d --- /dev/null +++ b/app/src/normal/res/color/button_tint_color.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/app/src/normal/res/drawable/background_red.xml b/app/src/normal/res/drawable/background_red.xml new file mode 100644 index 00000000..0189357c --- /dev/null +++ b/app/src/normal/res/drawable/background_red.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/normal/res/drawable/cust_button_primary_rect.xml b/app/src/normal/res/drawable/cust_button_primary_rect.xml new file mode 100644 index 00000000..74ddccb0 --- /dev/null +++ b/app/src/normal/res/drawable/cust_button_primary_rect.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/normal/res/layout-port/f_eip.xml b/app/src/normal/res/layout-port/f_eip.xml index cb99a700..c068df66 100644 --- a/app/src/normal/res/layout-port/f_eip.xml +++ b/app/src/normal/res/layout-port/f_eip.xml @@ -5,7 +5,6 @@ android:layout_height="match_parent" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/eipServiceFragment" - tools:viewBindingIgnore="true" > + + + + + + + app:srcCompat="@drawable/bg_red" + android:layout_marginTop="-100dp" + android:layout_marginRight="-100dp" + android:layout_marginBottom="-100dp" + android:layout_marginLeft="-100dp" + /> + - + + + + /> + + @@ -35,16 +40,13 @@ android:layout_width="0dp" android:layout_height="0dp" android:orientation="horizontal" - app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintGuide_percent="0.55" - app:layout_constraintRight_toRightOf="parent" /> + app:layout_constraintGuide_percent="0.45" /> @@ -53,9 +55,8 @@ android:layout_width="0dp" android:layout_height="0dp" android:orientation="horizontal" - app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintGuide_percent="0.98" - app:layout_constraintRight_toRightOf="parent" /> + /> + android:layout_margin="-100dp" + app:srcCompat="@drawable/bg_red" /> - - + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3