summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/views/LocationButton.java25
-rw-r--r--app/src/main/res/drawable-hdpi/bg_green.pngbin0 -> 190405 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/bg_red.pngbin0 -> 143331 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/bg_yellow.pngbin0 -> 236571 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/green_mask.pngbin0 -> 81235 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/red_mask.pngbin0 -> 73514 bytes
-rw-r--r--app/src/main/res/drawable-hdpi/yellow_mask.pngbin0 -> 80386 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/bg_green.pngbin0 -> 319429 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/bg_red.pngbin0 -> 220676 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/bg_yellow.pngbin0 -> 400307 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/green_mask.pngbin0 -> 121655 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/red_mask.pngbin0 -> 116193 bytes
-rw-r--r--app/src/main/res/drawable-xhdpi/yellow_mask.pngbin0 -> 122701 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/bg_green.pngbin0 -> 701727 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/bg_red.pngbin0 -> 446155 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/bg_yellow.pngbin0 -> 828368 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/green_mask.pngbin0 -> 220730 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/red_mask.pngbin0 -> 222370 bytes
-rw-r--r--app/src/main/res/drawable-xxhdpi/yellow_mask.pngbin0 -> 226345 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/bg_green.pngbin0 -> 1228810 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/bg_red.pngbin0 -> 745847 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/bg_yellow.pngbin0 -> 1489207 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/green_mask.pngbin0 -> 324196 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/red_mask.pngbin0 -> 362086 bytes
-rw-r--r--app/src/main/res/drawable-xxxhdpi/yellow_mask.pngbin0 -> 334967 bytes
-rw-r--r--app/src/main/res/drawable/bg_green.pngbin0 -> 90299 bytes
-rw-r--r--app/src/main/res/drawable/bg_red.pngbin0 -> 143331 bytes
-rw-r--r--app/src/main/res/drawable/bg_yellow.pngbin0 -> 112042 bytes
-rw-r--r--app/src/main/res/drawable/green_mask.pngbin0 -> 47593 bytes
-rw-r--r--app/src/main/res/drawable/red_mask.pngbin0 -> 40172 bytes
-rw-r--r--app/src/main/res/drawable/yellow_mask.pngbin0 -> 47055 bytes
-rw-r--r--app/src/main/res/layout/v_location_button.xml33
-rw-r--r--app/src/main/res/values/colors.xml5
-rw-r--r--app/src/main/res/values/strings.xml3
-rw-r--r--app/src/normal/java/se.leap.bitmaskclient.base.fragments/EipFragment.java163
-rw-r--r--app/src/normal/res/color/button_tint_color.xml9
-rw-r--r--app/src/normal/res/drawable/background_red.xml26
-rw-r--r--app/src/normal/res/drawable/cust_button_primary_rect.xml79
-rw-r--r--app/src/normal/res/layout-port/f_eip.xml85
-rw-r--r--app/src/normal/res/layout-xlarge-port/f_eip.xml1
-rw-r--r--app/src/normal/res/layout-xlarge/f_eip.xml1
-rw-r--r--app/src/normal/res/layout/f_eip.xml65
-rw-r--r--app/src/normal/res/layout/v_location_button.xml104
43 files changed, 417 insertions, 182 deletions
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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/bg_green.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/bg_red.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/bg_yellow.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/green_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/red_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-hdpi/yellow_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_green.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_red.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/bg_yellow.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/green_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/red_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xhdpi/yellow_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_green.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_red.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/bg_yellow.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/green_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/red_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxhdpi/yellow_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/bg_green.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/bg_red.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/bg_yellow.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/green_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/red_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable-xxxhdpi/yellow_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/bg_green.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/bg_red.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/bg_yellow.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/green_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/red_mask.png
Binary files 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
--- /dev/null
+++ b/app/src/main/res/drawable/yellow_mask.png
Binary files 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"
/>
+
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/text_location"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_centerInParent="true"
+ android:layout_gravity="center_vertical"
+ android:layout_toStartOf="@+id/bridge_icn"
+ android:layout_toLeftOf="@+id/bridge_icn"
+ android:layout_toEndOf="@id/recommended_icn"
+ android:layout_toRightOf="@+id/recommended_icn"
+ android:ellipsize="end"
+ android:gravity="center_vertical"
+ android:maxLines="1"
android:paddingStart="@dimen/stdpadding"
android:paddingLeft="@dimen/stdpadding"
android:paddingEnd="@dimen/stdpadding"
android:paddingRight="@dimen/stdpadding"
- android:maxLines="1"
- android:ellipsize="end"
- android:layout_height="match_parent"
- android:layout_width="match_parent"
- app:autoSizeTextType="uniform"
- android:gravity="center_vertical"
- app:autoSizeMinTextSize="15sp"
- app:autoSizeMaxTextSize="24sp"
- android:layout_toEndOf="@id/recommended_icn"
- android:layout_toRightOf="@+id/recommended_icn"
- android:layout_toLeftOf="@+id/bridge_icn"
- android:layout_toStartOf="@+id/bridge_icn"
- android:layout_gravity="center_vertical"
- android:layout_centerInParent="true"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textStyle="bold"
- android:textColor="@color/white"
- tools:text="Seattle along message"
- />
+ app:autoSizeMaxTextSize="24sp"
+ app:autoSizeMinTextSize="15sp"
+ app:autoSizeTextType="uniform"
+ tools:text="Seattle along message" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/bridge_icn"
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index dbc7326f..7ec2e81a 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -52,5 +52,10 @@
<color name="btn_yellow_dark">#C78F00</color>
<color name="btn_green">#9FC17F</color>
<color name="btn_green_dark">#709152</color>
+ <color name="btn_white_transparent">#CCFFFEFE</color>
+ <color name="btn_white_transparent_dark">#CCCCCBCB</color>
+ <color name="bg_red_1">#EC6767</color>
+ <color name="bg_red_2">#DB6F66</color>
+ <color name="bg_red_3">#D05D59</color>
</resources>
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 @@
<string name="authentication_failed_message">Authentication failed</string>
<string name="registration_failed_message">Registration failed</string>
<string name="eip_status_start_pending">Initiating connection</string>
+ <string name="eip_status_connecting">Connecting VPN</string>
+ <string name="eip_status_unsecured">Unsecured Connection</string>
+ <string name="eip_status_secured">Secured Connection</string>
<string name="eip_cancel_connect_title">Cancel connection?</string>
<string name="eip_cancel_connect_text">There is a connection attempt in progress. Do you wish to cancel it?</string>
<string name="eip.warning.browser_inconsistency">Turn off VPN connection? When the VPN is off, you may leak personal information to your Internet provider or local network.</string>
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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="true"
+ android:color="@color/btn_white_transparent_dark"
+ >
+ </item>
+ <item
+ android:color="@color/btn_white_transparent" />
+</selector> \ 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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/bg_red_1"/>
+ <size android:width="200dp" android:height="250dp" />
+ </shape>
+ </item>
+ <item
+ android:bottom="150dp"
+
+ android:top="-100dp"
+ >
+ <shape android:shape="oval">
+ <gradient
+ android:startColor="@color/bg_red_2"
+ android:endColor="@color/bg_red_3"
+ android:angle="270"
+ android:useLevel="false"
+ />
+ <size android:width="200dp" android:height="250dp" />
+ </shape>
+ </item>
+
+</layer-list> \ 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 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item android:state_pressed="true" >
+ <layer-list
+ android:paddingLeft="@dimen/button_bevel"
+ android:paddingRight="@dimen/button_bevel">
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/black_transparent"/>
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/btn_white_transparent_dark"/>
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+ </layer-list>
+ </item>
+ <item android:state_focused="true">
+ <layer-list
+ android:paddingLeft="@dimen/button_bevel"
+ android:paddingRight="@dimen/button_bevel">
+ <item>
+ <shape android:shape="rectangle" >
+ <solid android:color="@color/black_transparent"/>
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+ <item>
+ <shape android:shape="rectangle">
+ <solid android:color="@color/btn_white_transparent_dark"/>
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+
+ </layer-list>
+ </item>
+ <item >
+ <layer-list
+ android:paddingLeft="@dimen/button_bevel"
+ android:paddingRight="@dimen/button_bevel">
+ <!-- shadow -->
+ <item
+ android:top="@dimen/button_bevel"
+ android:left="1dp"
+ >
+ <shape android:shape="rectangle" >
+ <corners android:radius="@dimen/stdpadding" />
+ <solid android:color="@color/black_transparent"/>
+ </shape>
+ </item>
+ <!-- fill -->
+ <item
+ android:bottom="@dimen/button_bevel"
+ android:right="1dp"
+ >
+ <shape android:shape="rectangle" >
+ <solid android:color="@color/btn_white_transparent"/>
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+ <!-- gradient -->
+ <item
+ android:bottom="@dimen/button_bevel"
+ android:right="1dp"
+ >
+ <shape android:shape="rectangle">
+ <gradient android:startColor="@color/btn_white_transparent_dark"
+ android:endColor="@color/white_transparent"
+ android:angle="90"
+ />
+ <corners android:radius="@dimen/stdpadding"/>
+ </shape>
+ </item>
+ </layer-list>
+ </item>
+</selector> \ 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"
>
<androidx.constraintlayout.widget.Guideline
@@ -13,61 +12,79 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.3"
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_horizontal_center"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.175"
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_vertical_outer_left"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintGuide_percent="0.225"
+ app:layout_constraintGuide_percent="0.125"
/>
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_vertical_outer_right"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="vertical"
+ app:layout_constraintGuide_percent="0.875"
+ />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_horizontal_bottom"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintRight_toRightOf="parent"
app:layout_constraintGuide_percent="0.66"
/>
+
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_vertical_right"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintGuide_percent="0.775"
+ app:layout_constraintGuide_percent="0.7"
/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/background"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:scaleType="fitXY"
- app:srcCompat="@drawable/background_eip" />
+ app:srcCompat="@drawable/bg_red"
+ android:layout_marginTop="-100dp"
+ android:layout_marginRight="-100dp"
+ android:layout_marginBottom="-100dp"
+ android:layout_marginLeft="-100dp"
+ />
+
- <se.leap.bitmaskclient.base.views.MainButton
- android:id="@+id/main_button"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_margin="@dimen/stdpadding"
- app:layout_constraintBottom_toTopOf="@+id/guideline_horizontal_bottom"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_right"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_left"
- app:layout_constraintTop_toTopOf="parent"
- />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/main_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- app:layout_constraintTop_toBottomOf="@id/main_button"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/sub_description"
android:padding="@dimen/activity_margin"
+ android:layout_marginTop="@dimen/activity_margin"
android:textAppearance="@android:style/TextAppearance.Large"
- android:textSize="26sp"
android:textStyle="bold"
+ android:textSize="34sp"
+ android:autoSizeMinTextSize="28sp"
+ android:autoSizeTextType="uniform"
android:textColor="@color/colorEipFragmentFont"
app:layout_constraintDimensionRatio="1:1"
tools:text="Connection secure"
@@ -82,7 +99,6 @@
app:layout_constraintTop_toBottomOf="@id/main_description"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toTopOf="@+id/gateway_location_button"
android:padding="@dimen/activity_margin"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
android:textStyle="bold"
@@ -94,6 +110,29 @@
android:ellipsize="end"
/>
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/state_view"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@id/guideline_horizontal_bottom"
+ app:layout_constraintTop_toTopOf="@id/guideline_horizontal_center"
+ app:layout_constraintLeft_toLeftOf="@id/guideline_vertical_outer_left"
+ app:layout_constraintRight_toRightOf="@id/guideline_vertical_outer_right"
+ app:layout_constraintVertical_bias="1"
+ app:srcCompat="@drawable/red_mask"
+ />
+ <se.leap.bitmaskclient.base.views.MainButton
+ android:id="@+id/main_button"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_margin="@dimen/stdpadding"
+ app:layout_constraintTop_toBottomOf="@+id/guideline_horizontal_bottom"
+ app:layout_constraintBottom_toTopOf="@id/gateway_location_button"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_right"
+ app:layout_constraintStart_toStartOf="@+id/guideline_vertical_left"
+ />
+
<se.leap.bitmaskclient.base.views.LocationButton
android:id="@+id/gateway_location_button"
android:layout_width="match_parent"
@@ -104,7 +143,7 @@
android:layout_marginTop="@dimen/stdpadding"
android:layout_marginLeft="@dimen/stdpadding"
android:layout_marginRight="@dimen/stdpadding"
- app:layout_constraintBottom_toBottomOf="@+id/background"
+ app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="SEATTLE"
diff --git a/app/src/normal/res/layout-xlarge-port/f_eip.xml b/app/src/normal/res/layout-xlarge-port/f_eip.xml
index 10b7a7e3..c3d3fd36 100644
--- a/app/src/normal/res/layout-xlarge-port/f_eip.xml
+++ b/app/src/normal/res/layout-xlarge-port/f_eip.xml
@@ -5,7 +5,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/eipServiceFragment"
- tools:viewBindingIgnore="true"
>
<androidx.constraintlayout.widget.Guideline
diff --git a/app/src/normal/res/layout-xlarge/f_eip.xml b/app/src/normal/res/layout-xlarge/f_eip.xml
index e6b28c67..4042933e 100644
--- a/app/src/normal/res/layout-xlarge/f_eip.xml
+++ b/app/src/normal/res/layout-xlarge/f_eip.xml
@@ -9,7 +9,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/eipServiceFragment"
- tools:viewBindingIgnore="true"
>
<androidx.constraintlayout.widget.Guideline
diff --git a/app/src/normal/res/layout/f_eip.xml b/app/src/normal/res/layout/f_eip.xml
index 9a823b65..e1ea927d 100644
--- a/app/src/normal/res/layout/f_eip.xml
+++ b/app/src/normal/res/layout/f_eip.xml
@@ -9,7 +9,6 @@
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/eipServiceFragment"
- tools:viewBindingIgnore="true"
>
<androidx.constraintlayout.widget.Guideline
@@ -17,16 +16,22 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
- app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintGuide_percent="0.1"
- app:layout_constraintRight_toRightOf="parent" />
+ />
+
+ <androidx.constraintlayout.widget.Guideline
+ android:id="@+id/guideline_horizontal_center"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:orientation="horizontal"
+ app:layout_constraintGuide_percent="0.25"
+ />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_vertical_left"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
- app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintGuide_percent="0.3" />
@@ -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" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_horizontal_button_top"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
- app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintGuide_percent="0.8"
/>
@@ -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" />
+ />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline_vertical_right"
@@ -70,26 +71,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
- app:srcCompat="@drawable/background_eip" />
+ android:layout_margin="-100dp"
+ app:srcCompat="@drawable/bg_red" />
- <se.leap.bitmaskclient.base.views.MainButton
- android:id="@+id/main_button"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_margin="@dimen/stdpadding"
- app:layout_constraintTop_toBottomOf="@id/guideline_horizontal_top"
- app:layout_constraintBottom_toTopOf="@+id/guideline_horizontal_bottom"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_right"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_left"
- app:layout_constraintDimensionRatio="1:1"
- />
-
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/main_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- app:layout_constraintTop_toBottomOf="@id/guideline_horizontal_bottom"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/sub_description"
@@ -112,7 +102,7 @@
app:layout_constraintTop_toBottomOf="@id/main_description"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toTopOf="@+id/gateway_location_button"
+ app:layout_constraintBottom_toTopOf="@+id/guideline_horizontal_center"
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Medium"
android:textStyle="bold"
android:textColor="@color/colorEipFragmentFont"
@@ -127,6 +117,31 @@
android:gravity="center"
/>
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/state_view"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toTopOf="@id/guideline_horizontal_bottom"
+ app:layout_constraintTop_toBottomOf="@id/guideline_horizontal_center"
+ app:layout_constraintLeft_toLeftOf="@id/guideline_vertical_left"
+ app:layout_constraintRight_toRightOf="@id/guideline_vertical_right"
+ app:layout_constraintVertical_bias="1"
+ app:srcCompat="@drawable/red_mask"
+ />
+
+ <se.leap.bitmaskclient.base.views.MainButton
+ android:id="@+id/main_button"
+ android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_margin="@dimen/stdpadding"
+ app:layout_constraintTop_toBottomOf="@id/guideline_horizontal_bottom"
+ app:layout_constraintBottom_toTopOf="@+id/guideline_horizontal_button_top"
+ app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_right"
+ app:layout_constraintStart_toStartOf="@+id/guideline_vertical_left"
+ app:layout_constraintDimensionRatio="1:1"
+ />
+
+
<se.leap.bitmaskclient.base.views.LocationButton
android:id="@+id/gateway_location_button"
android:layout_width="match_parent"
diff --git a/app/src/normal/res/layout/v_location_button.xml b/app/src/normal/res/layout/v_location_button.xml
new file mode 100644
index 00000000..e7d8a319
--- /dev/null
+++ b/app/src/normal/res/layout/v_location_button.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:orientation="horizontal"
+ android:layout_width="match_parent"
+ android:layout_gravity="center_vertical"
+ android:layout_height="match_parent"
+ android:padding="@dimen/stdpadding"
+ android:background="@drawable/cust_button_primary_rect"
+ >
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/world_icn"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignTop="@+id/text_location"
+ android:layout_alignBottom="@+id/text_location"
+ android:scaleType="fitCenter"
+ android:src="@drawable/ic_web"
+ android:layout_gravity="center"
+ app:tint="@color/colorLocationButtonTint"
+ />
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/recommended_icn"
+ android:scaleType="fitCenter"
+ android:layout_marginRight="-13dp"
+ android:layout_marginEnd="-13dp"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignTop="@id/text_location"
+ android:layout_alignBottom="@+id/text_location"
+ android:layout_toEndOf="@id/world_icn"
+ android:layout_toRightOf="@id/world_icn"
+ android:src="@drawable/ic_lightning_bolt"
+ app:tint="@color/colorLocationButtonTint"
+
+ android:visibility="gone"
+ tools:visibility="visible"
+ />
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/text_location"
+ android:paddingStart="@dimen/stdpadding"
+ android:paddingLeft="@dimen/stdpadding"
+ android:paddingEnd="@dimen/stdpadding"
+ android:paddingRight="@dimen/stdpadding"
+ android:maxLines="1"
+ android:ellipsize="end"
+ android:layout_height="match_parent"
+ android:layout_width="match_parent"
+ app:autoSizeTextType="uniform"
+ android:gravity="center_vertical"
+ app:autoSizeMinTextSize="15sp"
+ app:autoSizeMaxTextSize="24sp"
+ android:layout_toEndOf="@id/recommended_icn"
+ android:layout_toRightOf="@+id/recommended_icn"
+ android:layout_toLeftOf="@+id/bridge_icn"
+ android:layout_toStartOf="@+id/bridge_icn"
+ android:layout_gravity="center_vertical"
+ android:layout_centerInParent="true"
+ android:textAppearance="@style/TextAppearance.AppCompat.Large"
+ android:textStyle="bold"
+ android:textColor="@color/white"
+ tools:text="Seattle along message"
+ />
+
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/bridge_icn"
+
+ android:paddingStart="@dimen/compact_padding"
+ android:paddingLeft="@dimen/compact_padding"
+ android:paddingRight="@dimen/compact_padding"
+ android:paddingEnd="@dimen/compact_padding"
+ android:scaleType="fitCenter"
+ android:layout_width="48dp"
+ android:layout_height="wrap_content"
+ android:layout_alignTop="@id/text_location"
+ android:layout_alignBottom="@+id/text_location"
+ android:layout_toStartOf="@id/load_indicator"
+ android:layout_toLeftOf="@id/load_indicator"
+ android:src="@drawable/ic_bridge_36"
+ android:visibility="gone"
+ tools:visibility="visible"
+ app:tint="@color/colorLocationButtonTint"
+ />
+
+ <se.leap.bitmaskclient.base.views.LocationIndicator
+ android:id="@+id/load_indicator"
+ android:layout_marginBottom="4dp"
+ android:layout_width="48dp"
+ android:layout_height="40dp"
+ android:layout_alignParentEnd="true"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:paddingTop="@dimen/stdpadding"
+ android:paddingBottom="@dimen/stdpadding"
+ android:visibility="visible"
+ android:layout_gravity="center_vertical"
+ app:tint="@color/colorLocationButtonTintTransparent"
+ />
+
+
+
+</RelativeLayout> \ No newline at end of file