Fixed the controllers and am now saving the current fragment

This commit is contained in:
Ernir Erlingsson
2016-05-11 23:50:11 +02:00
parent 8ceaabddf4
commit 698ca41720
11 changed files with 103 additions and 41 deletions

View File

@@ -45,6 +45,8 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
public static final String INTENT_CONTACTS = "intent_contacts";
public static final String INTENT_FORUMS = "intent_forums";
private static final String KEY_CURRENT_FRAGMENT_ID = "key_current_id";
private static final Logger LOG =
Logger.getLogger(NavDrawerActivity.class.getName());
@@ -60,6 +62,7 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
private List<Transport> transports;
private BaseAdapter transportsAdapter;
private int currentFragmentId = R.id.nav_btn_contacts;
@Override
protected void onNewIntent(Intent intent) {
@@ -103,8 +106,13 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
R.string.nav_drawer_open_description,
R.string.nav_drawer_close_description);
drawerLayout.setDrawerListener(drawerToggle);
if (state == null)
LOG.info("NavDrawerActivity created: " + (state == null));
if (state == null) {
startFragment(activityComponent.newContactListFragment());
} else {
currentFragmentId = state.getInt(KEY_CURRENT_FRAGMENT_ID);
loadCurrentFragment();
}
checkAuthorHandle(getIntent());
initializeTransports(getLayoutInflater());
@@ -113,6 +121,12 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
welcomeMessageCheck();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(KEY_CURRENT_FRAGMENT_ID, currentFragmentId);
}
private void welcomeMessageCheck() {
SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE);
if (!prefs.getBoolean(PREF_SEEN_WELCOME_MESSAGE, false)) {
@@ -159,10 +173,8 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
});
}
public void onNavigationClick(View view) {
drawerLayout.closeDrawer(START);
clearBackStack();
switch (view.getId()) {
private void loadCurrentFragment() {
switch (currentFragmentId) {
case R.id.nav_btn_contacts:
startFragment(activityComponent.newContactListFragment());
break;
@@ -178,6 +190,13 @@ public class NavDrawerActivity extends BriarFragmentActivity implements
}
}
public void onNavigationClick(View view) {
drawerLayout.closeDrawer(START);
clearBackStack();
currentFragmentId = view.getId();
loadCurrentFragment();
}
@Override
public void onBackPressed() {