From 7dc9f9e9caf41976d08c967d2d966648c99f929b Mon Sep 17 00:00:00 2001 From: cyBerta Date: Wed, 22 May 2019 20:28:08 +0200 Subject: * adds a DISCONNECTING state * fixes vpn startup issues --- .../java/se/leap/bitmaskclient/EipFragment.java | 33 ++++++++++++++++++---- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/EipFragment.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java index d54d01af..69d81ccf 100644 --- a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java @@ -289,6 +289,11 @@ public class EipFragment extends Fragment implements Observer { } } + private void setMainButtonEnabled(boolean enabled) { + mainButton.setEnabled(enabled); + vpnStateImage.setEnabled(enabled); + } + public void startEipFromScratch() { saveStatus(true); Context context = getContext(); @@ -370,6 +375,7 @@ public class EipFragment extends Fragment implements Observer { if (eipStatus.isConnecting() ) { + setMainButtonEnabled(true); showConnectingLayout(activity); if (eipStatus.isReconnecting()) { //Log.d(TAG, "eip show reconnecting toast!"); @@ -377,6 +383,7 @@ public class EipFragment extends Fragment implements Observer { } } else if (eipStatus.isConnected() ) { mainButton.setText(activity.getString(R.string.vpn_button_turn_off)); + setMainButtonEnabled(true); vpnStateImage.setStateIcon(R.drawable.vpn_connected); vpnStateImage.stopProgress(true); routedText.setText(R.string.vpn_securely_routed); @@ -386,6 +393,7 @@ public class EipFragment extends Fragment implements Observer { colorBackground(); } else if(isOpenVpnRunningWithoutNetwork()){ mainButton.setText(activity.getString(R.string.vpn_button_turn_off)); + setMainButtonEnabled(true); vpnStateImage.setStateIcon(R.drawable.vpn_disconnected); vpnStateImage.stopProgress(true); routedText.setText(R.string.vpn_securely_routed_no_internet); @@ -396,9 +404,12 @@ public class EipFragment extends Fragment implements Observer { } else if (eipStatus.isDisconnected() && reconnectingWithDifferentGateway()) { showConnectingLayout(activity); // showRetryToast(activity); - } - else { + } else if (eipStatus.isDisconnecting()) { + setMainButtonEnabled(false); + showDisconnectingLayout(activity); + } else { mainButton.setText(activity.getString(R.string.vpn_button_turn_on)); + setMainButtonEnabled(true); vpnStateImage.setStateIcon(R.drawable.vpn_disconnected); vpnStateImage.stopProgress(false); routedText.setVisibility(GONE); @@ -410,9 +421,9 @@ public class EipFragment extends Fragment implements Observer { private void showToast(Activity activity, String message, boolean vibrateLong) { LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.custom_toast, - (ViewGroup) activity.findViewById(R.id.custom_toast_container)); + activity.findViewById(R.id.custom_toast_container)); - TextView text = (TextView) layout.findViewById(R.id.text); + TextView text = layout.findViewById(R.id.text); text.setText(message); Vibrator v = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); @@ -441,12 +452,24 @@ public class EipFragment extends Fragment implements Observer { } private void showConnectingLayout(Context activity) { + showConnectionTransitionLayout(activity, true); + } + + private void showDisconnectingLayout(Activity activity) { + showConnectionTransitionLayout(activity, false); + } + + private void showConnectionTransitionLayout(Context activity, boolean isConnecting) { mainButton.setText(activity.getString(android.R.string.cancel)); vpnStateImage.setStateIcon(R.drawable.vpn_connecting); vpnStateImage.showProgress(); routedText.setVisibility(GONE); vpnRoute.setVisibility(GONE); - colorBackgroundALittle(); + if (isConnecting) { + colorBackgroundALittle(); + } else { + greyscaleBackground(); + } } private boolean isOpenVpnRunningWithoutNetwork() { -- cgit v1.2.3