summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/EipFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/EipFragment.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/EipFragment.java162
1 files changed, 77 insertions, 85 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java
index 5e5b76b2..02eedd77 100644
--- a/app/src/main/java/se/leap/bitmaskclient/EipFragment.java
+++ b/app/src/main/java/se/leap/bitmaskclient/EipFragment.java
@@ -23,7 +23,7 @@ import android.util.*;
import android.view.*;
import android.widget.*;
-import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.*;
import java.util.*;
@@ -53,7 +53,6 @@ public class EipFragment extends Fragment implements Observer {
private boolean is_starting_to_connect;
private boolean wants_to_connect;
- @Override
public void onAttach(Activity activity) {
super.onAttach(activity);
@@ -77,20 +76,18 @@ public class EipFragment extends Fragment implements Observer {
if (eip_status.isConnecting())
eip_switch.setVisibility(View.VISIBLE);
- Log.d(TAG, "onCreateView, eip_switch is checked? " + eip_switch.isChecked());
-
Bundle arguments = getArguments();
- if(arguments != null && arguments.containsKey(START_ON_BOOT) && arguments.getBoolean(START_ON_BOOT))
+ if (arguments != null && arguments.containsKey(START_ON_BOOT) && arguments.getBoolean(START_ON_BOOT))
startEipFromScratch();
- if(savedInstanceState != null) restoreState(savedInstanceState);
+ if (savedInstanceState != null) restoreState(savedInstanceState);
return view;
}
private void restoreState(@NotNull Bundle savedInstanceState) {
- if(savedInstanceState.getBoolean(IS_PENDING))
+ if (savedInstanceState.getBoolean(IS_PENDING))
eip_status.setConnecting();
- else if(savedInstanceState.getBoolean(IS_CONNECTED))
+ else if (savedInstanceState.getBoolean(IS_CONNECTED))
eip_status.setConnectedOrDisconnected();
else
status_message.setText(savedInstanceState.getString(STATUS_MESSAGE));
@@ -122,7 +119,7 @@ public class EipFragment extends Fragment implements Observer {
@OnCheckedChanged(R.id.eipSwitch)
void handleSwitch(boolean isChecked) {
- if(isChecked)
+ if (isChecked)
handleSwitchOn();
else
handleSwitchOff();
@@ -131,9 +128,9 @@ public class EipFragment extends Fragment implements Observer {
}
private void handleSwitchOn() {
- if(canStartEIP())
+ if (canStartEIP())
startEipFromScratch();
- else if(canLogInToStartEIP()) {
+ else if (canLogInToStartEIP()) {
wants_to_connect = true;
Bundle bundle = new Bundle();
bundle.putBoolean(IS_PENDING, true);
@@ -150,15 +147,13 @@ public class EipFragment extends Fragment implements Observer {
private boolean canLogInToStartEIP() {
boolean isAllowedRegistered = Dashboard.preferences.getBoolean(Constants.ALLOWED_REGISTERED, false);
boolean isLoggedIn = !LeapSRPSession.getToken().isEmpty();
- Log.d(TAG, "Allow registered? " + isAllowedRegistered);
- Log.d(TAG, "Is logged in? " + isLoggedIn);
return isAllowedRegistered && !isLoggedIn && !eip_status.isConnecting() && !eip_status.isConnected();
}
private void handleSwitchOff() {
- if(eip_status.isConnecting()) {
+ if (eip_status.isConnecting()) {
askPendingStartCancellation();
- } else if(eip_status.isConnected()) {
+ } else if (eip_status.isConnected()) {
askToStopEIP();
} else
setDisconnectedUI();
@@ -191,7 +186,7 @@ public class EipFragment extends Fragment implements Observer {
String status = dashboard.getString(R.string.eip_status_start_pending);
status_message.setText(status);
- if(!eip_switch.isChecked()) {
+ if (!eip_switch.isChecked()) {
eip_switch.setChecked(true);
}
saveStatus();
@@ -199,7 +194,7 @@ public class EipFragment extends Fragment implements Observer {
}
private void stop() {
- if(eip_status.isConnecting())
+ if (eip_status.isConnecting())
VoidVpnService.stop();
disconnect();
}
@@ -246,10 +241,10 @@ public class EipFragment extends Fragment implements Observer {
/**
* Send a command to EIP
*
- * @param action A valid String constant from EIP class representing an Intent
- * filter for the EIP class
+ * @param action A valid String constant from EIP class representing an Intent
+ * filter for the EIP class
*/
- private void eipCommand(String action){
+ private void eipCommand(String action) {
// TODO validate "action"...how do we get the list of intent-filters for a class via Android API?
Intent vpn_intent = new Intent(dashboard.getApplicationContext(), EIP.class);
vpn_intent.setAction(action);
@@ -258,8 +253,8 @@ public class EipFragment extends Fragment implements Observer {
}
@Override
- public void update (Observable observable, Object data) {
- if(observable instanceof EipStatus) {
+ public void update(Observable observable, Object data) {
+ if (observable instanceof EipStatus) {
eip_status = (EipStatus) observable;
final EipStatus eip_status = (EipStatus) observable;
dashboard.runOnUiThread(new Runnable() {
@@ -272,9 +267,9 @@ public class EipFragment extends Fragment implements Observer {
}
private void handleNewState(EipStatus eip_status) {
- if(eip_status.wantsToDisconnect())
+ if (eip_status.wantsToDisconnect())
setDisconnectedUI();
- else if(eip_status.isConnecting() || is_starting_to_connect)
+ else if (eip_status.isConnecting() || is_starting_to_connect)
setInProgressUI(eip_status);
else if (eip_status.isConnected())
setConnectedUI();
@@ -284,33 +279,30 @@ public class EipFragment extends Fragment implements Observer {
private void setConnectedUI() {
hideProgressBar();
- Log.d(TAG, "setConnectedUi? " + eip_status.isConnected());
adjustSwitch();
is_starting_to_connect = false;
status_message.setText(dashboard.getString(R.string.eip_state_connected));
}
- private void setDisconnectedUI(){
+ private void setDisconnectedUI() {
hideProgressBar();
adjustSwitch();
- String last_log_message = eip_status.getLastLogMessage(dashboard.getApplicationContext());
- if((last_log_message.contains("error") || last_log_message.contains("ERROR"))
- && !status_message.getText().toString().equalsIgnoreCase(dashboard.getString(R.string.eip_state_not_connected))){
+ if (eip_status.errorInLast(5, dashboard.getApplicationContext())
+ && !status_message.getText().toString().equalsIgnoreCase(dashboard.getString(R.string.eip_state_not_connected))) {
dashboard.showLog();
+ VoidVpnService.stop();
}
status_message.setText(dashboard.getString(R.string.eip_state_not_connected));
}
private void adjustSwitch() {
- if(eip_status.isConnected() || eip_status.isConnecting() || is_starting_to_connect) {
- Log.d(TAG, "adjustSwitch, isConnected || isConnecting, is checked");
- if(!eip_switch.isChecked()) {
+ if (eip_status.isConnected() || eip_status.isConnecting() || is_starting_to_connect) {
+ if (!eip_switch.isChecked()) {
eip_switch.setChecked(true);
}
} else {
- Log.d(TAG, "adjustSwitch, !isConnected && !isConnecting? " + eip_status.toString());
- if(eip_switch.isChecked()) {
+ if (eip_switch.isChecked()) {
eip_switch.setChecked(false);
}
}
@@ -333,72 +325,72 @@ public class EipFragment extends Fragment implements Observer {
}
private void showProgressBar() {
- if(progress_bar != null)
+ if (progress_bar != null)
progress_bar.setVisibility(View.VISIBLE);
}
private void hideProgressBar() {
- if(progress_bar != null)
+ if (progress_bar != null)
progress_bar.setVisibility(View.GONE);
}
-protected class EIPReceiver extends ResultReceiver {
+ protected class EIPReceiver extends ResultReceiver {
- protected EIPReceiver(Handler handler){
- super(handler);
- }
+ protected EIPReceiver(Handler handler) {
+ super(handler);
+ }
- @Override
- protected void onReceiveResult(int resultCode, Bundle resultData) {
- super.onReceiveResult(resultCode, resultData);
+ @Override
+ protected void onReceiveResult(int resultCode, Bundle resultData) {
+ super.onReceiveResult(resultCode, resultData);
- String request = resultData.getString(Constants.REQUEST_TAG);
+ String request = resultData.getString(Constants.REQUEST_TAG);
- if (request.equals(Constants.ACTION_START_EIP)) {
- switch (resultCode){
- case Activity.RESULT_OK:
- break;
- case Activity.RESULT_CANCELED:
+ if (request.equals(Constants.ACTION_START_EIP)) {
+ switch (resultCode) {
+ case Activity.RESULT_OK:
+ break;
+ case Activity.RESULT_CANCELED:
- break;
- }
- } else if (request.equals(Constants.ACTION_STOP_EIP)) {
- switch (resultCode){
- case Activity.RESULT_OK:
- stop();
- break;
- case Activity.RESULT_CANCELED:
- break;
- }
- } else if (request.equals(Constants.EIP_NOTIFICATION)) {
- switch (resultCode){
- case Activity.RESULT_OK:
- break;
- case Activity.RESULT_CANCELED:
- break;
- }
- } else if (request.equals(Constants.ACTION_CHECK_CERT_VALIDITY)) {
- switch (resultCode) {
- case Activity.RESULT_OK:
- break;
- case Activity.RESULT_CANCELED:
- updatingCertificateUI();
- dashboard.downloadVpnCertificate();
- break;
- }
- } else if (request.equals(Constants.ACTION_UPDATE_EIP_SERVICE)) {
- switch (resultCode) {
- case Activity.RESULT_OK:
- if(wants_to_connect)
- startEipFromScratch();
- break;
- case Activity.RESULT_CANCELED:
- handleNewState(eip_status);
- break;
+ break;
+ }
+ } else if (request.equals(Constants.ACTION_STOP_EIP)) {
+ switch (resultCode) {
+ case Activity.RESULT_OK:
+ stop();
+ break;
+ case Activity.RESULT_CANCELED:
+ break;
+ }
+ } else if (request.equals(Constants.EIP_NOTIFICATION)) {
+ switch (resultCode) {
+ case Activity.RESULT_OK:
+ break;
+ case Activity.RESULT_CANCELED:
+ break;
+ }
+ } else if (request.equals(Constants.ACTION_CHECK_CERT_VALIDITY)) {
+ switch (resultCode) {
+ case Activity.RESULT_OK:
+ break;
+ case Activity.RESULT_CANCELED:
+ updatingCertificateUI();
+ dashboard.downloadVpnCertificate();
+ break;
+ }
+ } else if (request.equals(Constants.ACTION_UPDATE_EIP_SERVICE)) {
+ switch (resultCode) {
+ case Activity.RESULT_OK:
+ if (wants_to_connect)
+ startEipFromScratch();
+ break;
+ case Activity.RESULT_CANCELED:
+ handleNewState(eip_status);
+ break;
+ }
}
}
}
-}
public static EIPReceiver getReceiver() {