summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/MainActivity.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/MainActivity.java24
1 files changed, 21 insertions, 3 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
index 0956446f..33ecf85a 100644
--- a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
+++ b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java
@@ -82,7 +82,7 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
+ setContentView(R.layout.a_main);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
mainActivityBroadcastReceiver = new MainActivityBroadcastReceiver();
@@ -108,6 +108,22 @@ public class MainActivity extends AppCompatActivity {
}
@Override
+ public void onBackPressed() {
+ FragmentManagerEnhanced fragmentManagerEnhanced = new FragmentManagerEnhanced(getSupportFragmentManager());
+ if (fragmentManagerEnhanced.findFragmentByTag(EipFragment.TAG) == null) {
+ Fragment fragment = new EipFragment();
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(PROVIDER_KEY, provider);
+ fragment.setArguments(bundle);
+ fragmentManagerEnhanced.beginTransaction()
+ .replace(R.id.container, fragment, EipFragment.TAG)
+ .commit();
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+ @Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
@@ -119,10 +135,12 @@ public class MainActivity extends AppCompatActivity {
return;
}
+ String fragmentTag = null;
Fragment fragment = null;
switch (intent.getAction()) {
case ACTION_SHOW_VPN_FRAGMENT:
fragment = new EipFragment();
+ fragmentTag = EipFragment.TAG;
Bundle bundle = new Bundle();
if (intent.hasExtra(ASK_TO_CANCEL_VPN)) {
bundle.putBoolean(ASK_TO_CANCEL_VPN, true);
@@ -142,7 +160,7 @@ public class MainActivity extends AppCompatActivity {
if (fragment != null) {
new FragmentManagerEnhanced(getSupportFragmentManager()).beginTransaction()
- .replace(R.id.container, fragment)
+ .replace(R.id.container, fragment, fragmentTag)
.commit();
}
}
@@ -181,7 +199,7 @@ public class MainActivity extends AppCompatActivity {
arguments.putParcelable(PROVIDER_KEY, provider);
fragment.setArguments(arguments);
new FragmentManagerEnhanced(getSupportFragmentManager()).beginTransaction()
- .replace(R.id.container, fragment)
+ .replace(R.id.container, fragment, EipFragment.TAG)
.commit();
}