From 4f7200c55032d17c9bdbdb30cfd83dc757c63fe7 Mon Sep 17 00:00:00 2001 From: Fup Duck Date: Tue, 19 Dec 2017 17:37:57 +0100 Subject: adjust Fragments --- .../java/se/leap/bitmaskclient/MainActivity.java | 46 +++++++++++++++++----- 1 file changed, 37 insertions(+), 9 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/MainActivity.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java index 8cd6357c..2f07f162 100644 --- a/app/src/main/java/se/leap/bitmaskclient/MainActivity.java +++ b/app/src/main/java/se/leap/bitmaskclient/MainActivity.java @@ -2,9 +2,12 @@ package se.leap.bitmaskclient; import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; @@ -14,11 +17,17 @@ import android.view.ViewGroup; import android.support.v4.widget.DrawerLayout; import se.leap.bitmaskclient.fragments.LogFragment; +import se.leap.bitmaskclient.userstatus.SessionDialog; public class MainActivity extends AppCompatActivity implements NavigationDrawerFragment.NavigationDrawerCallbacks { + private static Provider provider = new Provider(); + private static FragmentManagerEnhanced fragmentManager; + private SharedPreferences preferences; + + /** * Fragment managing the behaviors, interactions and presentation of the navigation drawer. */ @@ -40,42 +49,52 @@ public class MainActivity extends AppCompatActivity getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); mTitle = getTitle(); + fragmentManager = new FragmentManagerEnhanced(getSupportFragmentManager()); + preferences = getSharedPreferences(Constants.SHARED_PREFERENCES, MODE_PRIVATE); // Set up the drawer. mNavigationDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); + } @Override public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments FragmentManager fragmentManager = getSupportFragmentManager(); - Fragment fragment; + Fragment fragment = null; switch (position) { case 1: + // TODO STOP VPN + // if (provider.hasEIP()) eip_fragment.stopEipIfPossible(); + preferences.edit().clear().apply(); + startActivityForResult(new Intent(this, ConfigurationWizard.class), Constants.REQUEST_CODE_SWITCH_PROVIDER); + break; case 2: - fragment = PlaceholderFragment.newInstance(); + fragment = new LogFragment(); break; default: - fragment = new LogFragment(); + fragment = new VpnFragment(); break; } - fragmentManager.beginTransaction() - .replace(R.id.container, fragment) - .commit(); + if (fragment != null) { + fragmentManager.beginTransaction() + .replace(R.id.container, fragment) + .commit(); + } onSectionAttached(position); } public void onSectionAttached(int number) { switch (number) { case 1: - mTitle = getString(R.string.title_section2); + mTitle = getString(R.string.switch_provider_menu_option); break; case 2: - mTitle = getString(R.string.title_section3); + mTitle = getString(R.string.log_fragment_title); break; default: - mTitle = getString(R.string.log_fragment_title); + mTitle = getString(R.string.vpn_fragment_title); break; } restoreActionBar(); @@ -118,4 +137,13 @@ public class MainActivity extends AppCompatActivity } } + public static void sessionDialog(Bundle resultData) { + try { + FragmentTransaction transaction = fragmentManager.removePreviousFragment(SessionDialog.TAG); + SessionDialog.getInstance(provider, resultData).show(transaction, SessionDialog.TAG); + } catch (IllegalStateException e) { + e.printStackTrace(); + } + } + } -- cgit v1.2.3