@@ -63,6 +63,7 @@ public class MainActivity extends AppCompatActivity
63
63
private static final String STATE_SAVED_FRAGMENT_STATES = "saved_fragment_states" ;
64
64
private static final String STATE_CURRENT_FRAGMENT = "active_fragment" ;
65
65
private static final String STATE_SEARCH_QUERY = "search_query" ;
66
+ private static final String STATE_SELECTED_TAG = "selected_tag" ;
66
67
67
68
private static final String FRAGMENT_ARTICLE_LISTS = "fragment_article_lists" ;
68
69
private static final String FRAGMENT_TAG_LIST = "fragment_tag_list" ;
@@ -99,7 +100,7 @@ public class MainActivity extends AppCompatActivity
99
100
private String searchQuery ;
100
101
private String searchQueryPrevious ;
101
102
private boolean searchUIPending ;
102
- private Tag selectedTag ;
103
+ private String selectedTag ;
103
104
104
105
@ Override
105
106
protected void onCreate (Bundle savedInstanceState ) {
@@ -184,6 +185,8 @@ private void updateTime() {
184
185
185
186
currentFragmentType = savedInstanceState .getString (STATE_CURRENT_FRAGMENT );
186
187
188
+ selectedTag = savedInstanceState .getString (STATE_SELECTED_TAG );
189
+
187
190
performSearch (savedInstanceState .getString (STATE_SEARCH_QUERY ));
188
191
}
189
192
if (searchQuery == null ) performSearch ("" );
@@ -195,6 +198,7 @@ private void updateTime() {
195
198
} else {
196
199
currentFragment = getSupportFragmentManager ().findFragmentByTag (currentFragmentType );
197
200
this .currentFragmentType = currentFragmentType ;
201
+ updateNavigationUI (currentFragmentType );
198
202
}
199
203
200
204
EventBus .getDefault ().register (this );
@@ -233,6 +237,7 @@ protected void onSaveInstanceState(Bundle outState) {
233
237
}
234
238
235
239
outState .putString (STATE_CURRENT_FRAGMENT , currentFragmentType );
240
+ outState .putString (STATE_SELECTED_TAG , selectedTag );
236
241
outState .putString (STATE_SEARCH_QUERY , searchQuery );
237
242
}
238
243
@@ -710,7 +715,6 @@ private boolean isFragmentStateSavable(String type) {
710
715
711
716
private void updateNavigationUI (String type ) {
712
717
if (type == null || navigationView == null ) return ;
713
- if (TextUtils .equals (type , currentFragmentType )) return ;
714
718
715
719
if (FRAGMENT_TAGGED_ARTICLE_LISTS .equals (currentFragmentType )) {
716
720
MenuItem item = navigationView .getMenu ().findItem (R .id .nav_taggedLists );
@@ -735,7 +739,7 @@ private void updateNavigationUI(String type) {
735
739
itemID = R .id .nav_taggedLists ;
736
740
737
741
if (selectedTag != null ) {
738
- title = getString (R .string .title_main_tag , selectedTag . getLabel () );
742
+ title = getString (R .string .title_main_tag , selectedTag );
739
743
}
740
744
741
745
MenuItem item = navigationView .getMenu ().findItem (itemID );
@@ -764,7 +768,7 @@ private void updateNavigationUI(String type) {
764
768
765
769
@ Override
766
770
public void onTagSelected (Tag tag ) {
767
- selectedTag = tag ;
771
+ selectedTag = tag . getLabel () ;
768
772
769
773
Fragment fragment = ArticleListsFragment .newInstance (tag .getLabel ());
770
774
0 commit comments