summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyBerta <cyberta@riseup.net>2021-07-31 18:32:01 +0200
committercyBerta <cyberta@riseup.net>2021-11-15 16:13:41 +0100
commitd7d890edeee2d6fc6cb6cc08fe29b5089ad7513b (patch)
tree54021e105b9457df6d42be396b555d8491563b1f
parent546b823b0c1694657e6b63f23d8b72015b00d282 (diff)
initial implementation of classic on-off push button
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java27
-rw-r--r--app/src/main/res/drawable/ic_btn_on_connecting.xml22
-rw-r--r--app/src/main/res/drawable/ic_btn_on_disabled.xml20
-rw-r--r--app/src/main/res/drawable/ic_btn_on_primary_color.xml22
-rw-r--r--app/src/main/res/layout/v_main_button.xml14
5 files changed, 81 insertions, 24 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
index e9402468..3650804f 100644
--- a/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/base/fragments/EipFragment.java
@@ -27,7 +27,6 @@ import android.graphics.ColorMatrixColorFilter;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Vibrator;
-import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -51,7 +50,6 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.Unbinder;
-import de.blinkt.openvpn.VpnProfile;
import de.blinkt.openvpn.core.ConnectionStatus;
import de.blinkt.openvpn.core.IOpenVPNServiceInternal;
import de.blinkt.openvpn.core.OpenVPNService;
@@ -420,7 +418,7 @@ 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.isConnecting() ) {
setMainButtonEnabled(true);
- showConnectingLayout(activity);
+ showConnectionTransitionLayout(true);
if (eipStatus.isReconnecting()) {
subDescription.setText(getString(R.string.reconnecting));
} else {
@@ -432,7 +430,7 @@ public class EipFragment extends Fragment implements Observer {
locationButton.setLocationLoad(UNKNOWN);
} else if (eipStatus.isConnected()) {
setMainButtonEnabled(true);
- vpnStateImage.setStateIcon(R.drawable.vpn_connected);
+ vpnStateImage.setStateIcon(R.drawable.ic_btn_on_primary_color);
vpnStateImage.stopProgress(false);
locationButton.setLocationLoad(gatewaysManager.getLoadForLocation(VpnStatus.getLastConnectedVpnName()));
locationButton.setText(VpnStatus.getLastConnectedVpnName());
@@ -445,16 +443,15 @@ public class EipFragment extends Fragment implements Observer {
} else if(isOpenVpnRunningWithoutNetwork()){
Log.d(TAG, "eip fragment eipStatus - isOpenVpnRunningWithoutNetwork");
setMainButtonEnabled(true);
- vpnStateImage.setStateIcon(R.drawable.vpn_disconnected);
+ vpnStateImage.setStateIcon(R.drawable.ic_btn_on_primary_color);
vpnStateImage.stopProgress(false);
locationButton.setVisibility(VISIBLE);
locationButton.setText(VpnStatus.getCurrentlyConnectingVpnName());
- setVpnRouteText();
colorBackgroundALittle();
mainDescription.setText(R.string.eip_state_insecure);
subDescription.setText(R.string.eip_state_no_network);
} else if (eipStatus.isDisconnected() && reconnectingWithDifferentGateway()) {
- showConnectingLayout(activity);
+ showConnectionTransitionLayout(true);
// showRetryToast(activity);
locationButton.setText(getString(R.string.finding_best_connection));
locationButton.setVisibility(VISIBLE);
@@ -463,12 +460,12 @@ public class EipFragment extends Fragment implements Observer {
subDescription.setText(R.string.reconnecting);
} else if (eipStatus.isDisconnecting()) {
setMainButtonEnabled(false);
- showDisconnectingLayout(activity);
+ showConnectionTransitionLayout(false);
mainDescription.setText(R.string.eip_state_insecure);
subDescription.setText(R.string.connection_not_connected);
} else if (eipStatus.isBlocking()) {
setMainButtonEnabled(true);
- vpnStateImage.setStateIcon(R.drawable.vpn_blocking);
+ vpnStateImage.setStateIcon(R.drawable.ic_btn_on_primary_color);
vpnStateImage.stopProgress(false);
colorBackgroundALittle();
locationButton.setText(getString(R.string.finding_best_connection));
@@ -518,16 +515,8 @@ public class EipFragment extends Fragment implements Observer {
showToast(activity, message, true );
}
- private void showConnectingLayout(Context activity) {
- showConnectionTransitionLayout(activity, true);
- }
-
- private void showDisconnectingLayout(Activity activity) {
- showConnectionTransitionLayout(activity, false);
- }
-
- private void showConnectionTransitionLayout(Context activity, boolean isConnecting) {
- vpnStateImage.setStateIcon(R.drawable.vpn_connecting);
+ private void showConnectionTransitionLayout(boolean isConnecting) {
+ vpnStateImage.setStateIcon(R.drawable.ic_btn_on_connecting);
vpnStateImage.showProgress();
if (isConnecting) {
colorBackgroundALittle();
diff --git a/app/src/main/res/drawable/ic_btn_on_connecting.xml b/app/src/main/res/drawable/ic_btn_on_connecting.xml
new file mode 100644
index 00000000..4b3d1384
--- /dev/null
+++ b/app/src/main/res/drawable/ic_btn_on_connecting.xml
@@ -0,0 +1,22 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M13,4.0089C13.0002,3.4567 12.5527,3.0088 12.0004,3.0085C11.4481,3.0083 11.0002,3.4559 11,4.0082L10.9968,12.0116C10.9966,12.5639 11.4442,13.0118 11.9965,13.012C12.5487,13.0122 12.9966,12.5647 12.9968,12.0124L13,4.0089Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:strokeLineCap="round"
+ android:strokeWidth="0.3"
+ android:strokeLineJoin="round"
+ android:fillAlpha="0.5"
+ android:fillColor="@color/colorPrimary"/>
+ <path
+ android:pathData="M4,12.9917C4,10.7826 4.8954,8.7826 6.3431,7.3349L7.7573,8.7491C6.6715,9.8349 6,11.3349 6,12.9917C6,16.3054 8.6863,18.9917 12,18.9917C15.3137,18.9917 18,16.3054 18,12.9917C18,11.3348 17.3284,9.8348 16.2426,8.749L17.6568,7.3348C19.1046,8.7825 20,10.7825 20,12.9917C20,17.41 16.4183,20.9917 12,20.9917C7.5817,20.9917 4,17.41 4,12.9917Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:strokeLineCap="round"
+ android:strokeWidth="0.3"
+ android:strokeLineJoin="round"
+ android:fillAlpha="0.5"
+ android:fillColor="@color/colorPrimary"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_btn_on_disabled.xml b/app/src/main/res/drawable/ic_btn_on_disabled.xml
new file mode 100644
index 00000000..9c83422d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_btn_on_disabled.xml
@@ -0,0 +1,20 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M13,4.0089C13.0002,3.4567 12.5527,3.0088 12.0004,3.0085C11.4481,3.0083 11.0002,3.4559 11,4.0082L10.9968,12.0116C10.9966,12.5639 11.4442,13.0118 11.9965,13.012C12.5487,13.0122 12.9966,12.5647 12.9968,12.0124L13,4.0089Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:strokeWidth="0.3"
+ android:fillAlpha="0.5"
+ android:strokeLineJoin="round"
+ android:fillColor="@color/white"/>
+ <path
+ android:pathData="M4,12.9917C4,10.7826 4.8954,8.7826 6.3431,7.3349L7.7573,8.7491C6.6715,9.8349 6,11.3349 6,12.9917C6,16.3054 8.6863,18.9917 12,18.9917C15.3137,18.9917 18,16.3054 18,12.9917C18,11.3348 17.3284,9.8348 16.2426,8.749L17.6568,7.3348C19.1046,8.7825 20,10.7825 20,12.9917C20,17.41 16.4183,20.9917 12,20.9917C7.5817,20.9917 4,17.41 4,12.9917Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:fillAlpha="0.5"
+ android:strokeWidth="0.3"
+ android:strokeLineJoin="round"
+ android:fillColor="@color/white"/>
+</vector>
diff --git a/app/src/main/res/drawable/ic_btn_on_primary_color.xml b/app/src/main/res/drawable/ic_btn_on_primary_color.xml
new file mode 100644
index 00000000..9f449299
--- /dev/null
+++ b/app/src/main/res/drawable/ic_btn_on_primary_color.xml
@@ -0,0 +1,22 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path
+ android:pathData="M13,4.0089C13.0002,3.4567 12.5527,3.0088 12.0004,3.0085C11.4481,3.0083 11.0002,3.4559 11,4.0082L10.9968,12.0116C10.9966,12.5639 11.4442,13.0118 11.9965,13.012C12.5487,13.0122 12.9966,12.5647 12.9968,12.0124L13,4.0089Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:strokeLineCap="round"
+ android:strokeAlpha="0.8"
+ android:strokeWidth="0.3"
+ android:strokeLineJoin="round"
+ android:fillColor="@color/colorPrimary"/>
+ <path
+ android:pathData="M4,12.9917C4,10.7826 4.8954,8.7826 6.3431,7.3349L7.7573,8.7491C6.6715,9.8349 6,11.3349 6,12.9917C6,16.3054 8.6863,18.9917 12,18.9917C15.3137,18.9917 18,16.3054 18,12.9917C18,11.3348 17.3284,9.8348 16.2426,8.749L17.6568,7.3348C19.1046,8.7825 20,10.7825 20,12.9917C20,17.41 16.4183,20.9917 12,20.9917C7.5817,20.9917 4,17.41 4,12.9917Z"
+ android:strokeColor="@color/colorPrimary_transparent"
+ android:strokeLineCap="round"
+ android:strokeAlpha="0.8"
+ android:strokeWidth="0.3"
+ android:strokeLineJoin="round"
+ android:fillColor="@color/colorPrimary"/>
+</vector>
diff --git a/app/src/main/res/layout/v_main_button.xml b/app/src/main/res/layout/v_main_button.xml
index d8ae211c..741fc88f 100644
--- a/app/src/main/res/layout/v_main_button.xml
+++ b/app/src/main/res/layout/v_main_button.xml
@@ -102,6 +102,7 @@
app:layout_constraintEnd_toEndOf="@id/border_guideline_right"
app:layout_constraintStart_toStartOf="@id/border_guideline_left"
app:layout_constraintTop_toTopOf="@id/border_guideline_top"
+ app:layout_constraintDimensionRatio="1:1"
android:indeterminate="true"
android:indeterminateDuration="800"
android:indeterminateDrawable="@drawable/progressbar_circle"
@@ -117,16 +118,19 @@
app:layout_constraintEnd_toStartOf="@+id/vpn_btn_guideline_right"
app:layout_constraintStart_toStartOf="@+id/vpn_btn_guideline_left"
app:layout_constraintTop_toTopOf="@+id/vpn_btn_guideline_top"
+ app:layout_constraintDimensionRatio="1:1"
app:srcCompat="@drawable/black_circle" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/vpn_state_key"
android:layout_width="0dp"
android:layout_height="0dp"
- app:layout_constraintBottom_toTopOf="@id/icn_guideline_bottom"
- app:layout_constraintEnd_toStartOf="@id/icn_guideline_right"
- app:layout_constraintStart_toStartOf="@id/icn_guideline_left"
- app:layout_constraintTop_toTopOf="@id/icn_guideline_top"
- app:srcCompat="@drawable/vpn_connected" />
+ app:layout_constraintBottom_toTopOf="@+id/icn_guideline_bottom"
+ app:layout_constraintEnd_toStartOf="@+id/icn_guideline_right"
+ app:layout_constraintStart_toStartOf="@+id/icn_guideline_left"
+ app:layout_constraintTop_toTopOf="@+id/icn_guideline_top"
+ app:layout_constraintDimensionRatio="1:1"
+ app:layout_constraintVertical_bias="0.35"
+ app:srcCompat="@drawable/ic_btn_on_disabled" />
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file