summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
diff options
context:
space:
mode:
authorcyberta <cyberta@riseup.net>2018-02-13 04:07:25 -0800
committercyberta <cyberta@riseup.net>2018-02-13 04:07:25 -0800
commit9b6c368a25510c462ea357121c97edb6d0310021 (patch)
treed8de88328853ad9955e7afad77ff115f55b05186 /app/src/main/java/se/leap/bitmaskclient/MainActivity.java
parentba1d730c12a5168c3a261604e0efd3b77ba3ec5b (diff)
parentb5483d9a799d89c99dc2389379c7cceb1e148110 (diff)
Merge branch '8827_handle_switch_provider' into '0.9.8'
8827 handle switch provider See merge request leap/bitmask_android!38
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/MainActivity.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/MainActivity.java53
1 files changed, 43 insertions, 10 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
index 186c2928..06a66e43 100644
--- a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
@@ -5,23 +5,29 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import se.leap.bitmaskclient.drawer.NavigationDrawerFragment;
-import se.leap.bitmaskclient.userstatus.SessionDialog;
+import se.leap.bitmaskclient.eip.EipCommand;
+import static se.leap.bitmaskclient.Constants.PROVIDER_KEY;
import static se.leap.bitmaskclient.Constants.REQUEST_CODE_CONFIGURE_LEAP;
+import static se.leap.bitmaskclient.Constants.REQUEST_CODE_LOG_IN;
+import static se.leap.bitmaskclient.Constants.REQUEST_CODE_SWITCH_PROVIDER;
import static se.leap.bitmaskclient.Constants.SHARED_PREFERENCES;
import static se.leap.bitmaskclient.EipFragment.ASK_TO_CANCEL_VPN;
public class MainActivity extends AppCompatActivity {
+ private static Provider provider = new Provider();
+ private static FragmentManagerEnhanced fragmentManager;
private SharedPreferences preferences;
+ private NavigationDrawerFragment navigationDrawerFragment;
+
public final static String ACTION_SHOW_VPN_FRAGMENT = "action_show_vpn_fragment";
/**
@@ -32,13 +38,15 @@ public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
-
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
- NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment)
+ navigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
preferences = getSharedPreferences(SHARED_PREFERENCES, MODE_PRIVATE);
+ provider = ConfigHelper.getSavedProviderFromSharedPreferences(preferences);
+
+ fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager());
// Set up the drawer.
navigationDrawerFragment.setUp(
R.id.navigation_drawer,
@@ -63,11 +71,12 @@ public class MainActivity extends AppCompatActivity {
switch (intent.getAction()) {
case ACTION_SHOW_VPN_FRAGMENT:
fragment = new EipFragment();
+ Bundle bundle = new Bundle();
if (intent.hasExtra(ASK_TO_CANCEL_VPN)) {
- Bundle bundle = new Bundle();
bundle.putBoolean(ASK_TO_CANCEL_VPN, true);
- fragment.setArguments(bundle);
}
+ bundle.putParcelable(PROVIDER_KEY, provider);
+ fragment.setArguments(bundle);
break;
default:
break;
@@ -82,15 +91,39 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
if (data == null) {
return;
}
- if (requestCode == REQUEST_CODE_CONFIGURE_LEAP) {
- if (resultCode == RESULT_OK && data.hasExtra(Provider.KEY)) {
- Provider provider = data.getParcelableExtra(Provider.KEY);
- ConfigHelper.storeProviderInPreferences(preferences, provider);
+ if (resultCode == RESULT_OK && data.hasExtra(Provider.KEY)) {
+ provider = data.getParcelableExtra(Provider.KEY);
+
+ if (provider == null) {
+ return;
+ }
+
+ ConfigHelper.storeProviderInPreferences(preferences, provider);
+ navigationDrawerFragment.refresh();
+
+ switch (requestCode) {
+ case REQUEST_CODE_SWITCH_PROVIDER:
+ EipCommand.stopVPN(this);
+ break;
+ case REQUEST_CODE_CONFIGURE_LEAP:
+ break;
+ case REQUEST_CODE_LOG_IN:
+ EipCommand.startVPN(this);
+ break;
}
}
+
+ Fragment fragment = new EipFragment();
+ Bundle arguments = new Bundle();
+ arguments.putParcelable(PROVIDER_KEY, provider);
+ fragment.setArguments(arguments);
+ fragmentManager.beginTransaction()
+ .replace(R.id.container, fragment)
+ .commit();
}
}