Skip to content

Commit

Permalink
Selected navigation item is now kept up to date on back press
Browse files Browse the repository at this point in the history
  • Loading branch information
steenburgh committed Apr 10, 2016
1 parent 3ff4dbd commit b2bab00
Showing 1 changed file with 20 additions and 20 deletions.
40 changes: 20 additions & 20 deletions app/src/main/java/com/hvzhub/app/GameActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ public void OnIsHumanRefreshed() {
drawer.setDrawerListener(toggle);
toggle.syncState();

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
final NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);

// Open the initial fragment
Expand All @@ -114,25 +114,7 @@ public void OnIsHumanRefreshed() {
} else {
fragmentToOpen = GAME_NEWS_FRAGMENT; // default tab
}
switch (fragmentToOpen) {
case CHAT_FRAGMENT:
switchToTab(R.id.nav_chat);
break;
case MOD_UPDATES_FRAGMENT:
switchToTab(R.id.nav_mod_updates);
break;
case GAME_NEWS_FRAGMENT:
switchToTab(R.id.nav_game_news);
break;
case MY_CODE_FRAGMENT:
switchToTab(R.id.nav_my_code);
break;
case REPORT_TAG_FRAGMENT:
switchToTab(R.id.nav_report_tag);
break;
default:
throw new RuntimeException("Invalid tab found");
}
switchToTab(getResourceIdFromArgument(fragmentToOpen));

// Keep curTab up to date
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
Expand All @@ -150,6 +132,7 @@ public void onBackStackChanged() {
} else if (f instanceof ReportTagFragment) {
curTab = REPORT_TAG_FRAGMENT;
}
navigationView.setCheckedItem(getResourceIdFromArgument(curTab));
}
});

Expand Down Expand Up @@ -312,6 +295,23 @@ public boolean onNavigationItemSelected(MenuItem item) {
return switchToTab(item.getItemId());
}

public int getResourceIdFromArgument(int tabArgument) {
switch (tabArgument) {
case CHAT_FRAGMENT:
return R.id.nav_chat;
case MOD_UPDATES_FRAGMENT:
return R.id.nav_mod_updates;
case GAME_NEWS_FRAGMENT:
return R.id.nav_game_news;
case MY_CODE_FRAGMENT:
return R.id.nav_my_code;
case REPORT_TAG_FRAGMENT:
return R.id.nav_report_tag;
default:
throw new RuntimeException("Invalid tab found");
}
}

public boolean switchToTab(int id) {
Intent i;
Fragment toSwitch = null;
Expand Down

0 comments on commit b2bab00

Please sign in to comment.