Skip to content

Commit 23e3fc5

Browse files
committed
fix: crash when changing showHidden when TracksFragment hasn't been initialized yet
1 parent a868b04 commit 23e3fc5

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

app/src/main/java/io/compactd/player/ui/activities/LibraryActivity.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
156156
return true;
157157
case R.id.action_showhidden:
158158
item.setChecked(!item.isChecked());
159-
TracksFragment fragment = (TracksFragment)
160-
mSectionsPagerAdapter.getRegisteredFragment(2);
161-
fragment.setShowHidden(item.isChecked());
159+
mSectionsPagerAdapter.setShowHidden(item.isChecked());
162160

163161
return true;
164162

@@ -187,6 +185,7 @@ protected void onDestroy() {
187185
public class SectionsPagerAdapter extends FragmentPagerAdapter {
188186

189187
private SparseArray<Fragment> mRegisteredFragments = new SparseArray<>();
188+
private boolean mShowHidden = false;
190189

191190
SectionsPagerAdapter(FragmentManager fm) {
192191
super(fm);
@@ -200,7 +199,9 @@ public Fragment getItem(int position) {
200199
case 1:
201200
return AlbumsFragment.newInstance(ModelFragment.GRID_LAYOUT, null);
202201
case 2:
203-
return TracksFragment.newInstance(ModelFragment.VERTICAL_LAYOUT, null);
202+
TracksFragment tracksFragment = TracksFragment.newInstance(ModelFragment.VERTICAL_LAYOUT, null);
203+
tracksFragment.setShowHidden(mShowHidden);
204+
return tracksFragment;
204205
default:
205206
return ArtistsFragment.newInstance(ModelFragment.GRID_LAYOUT, null);
206207
}
@@ -212,6 +213,7 @@ public int getCount() {
212213
return 3;
213214
}
214215

216+
@NonNull
215217
@Override
216218
public Object instantiateItem(ViewGroup container, int position) {
217219

@@ -229,5 +231,13 @@ public void destroyItem(ViewGroup container, int position, Object object) {
229231
public Fragment getRegisteredFragment (int pos) {
230232
return mRegisteredFragments.get(pos);
231233
}
234+
235+
public void setShowHidden(boolean showHidden) {
236+
TracksFragment fragment = (TracksFragment) getRegisteredFragment(2);
237+
if (fragment != null) {
238+
fragment.setShowHidden(showHidden);
239+
}
240+
mShowHidden = showHidden;
241+
}
232242
}
233243
}

app/src/main/java/io/compactd/player/ui/fragments/TracksFragment.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
*/
2525

2626
public class TracksFragment extends ModelFragment<CompactdTrack> {
27+
private boolean mShowHidden = false;
28+
2729
public static TracksFragment newInstance (@LayoutMode int layout, String startKye) {
2830
return ModelFragment.newInstance(TracksFragment.class, layout, startKye);
2931
}
@@ -45,12 +47,16 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
4547
bindModel(TracksAdapter.class, items);
4648
adapter.setTintBackground(false);
4749

50+
((TracksAdapter) adapter).setShowHidden(mShowHidden);
4851

4952
return root;
5053
}
5154

5255
public void setShowHidden (boolean flag) {
53-
TracksAdapter adapter = (TracksAdapter) this.adapter;
54-
adapter.setShowHidden(flag);
56+
if (this.adapter != null) {
57+
TracksAdapter adapter = (TracksAdapter) this.adapter;
58+
adapter.setShowHidden(flag);
59+
}
60+
mShowHidden = flag;
5561
}
5662
}

0 commit comments

Comments
 (0)