1 file changed +7
-6
lines changed Original file line number Diff line number Diff line change @@ -45,6 +45,7 @@ public AlbumListViewModel(@NonNull Application application) {
45
45
//albumViewModels = new CopyOnWriteArrayList<>(new ArrayList<>());
46
46
albumViewModels = new ArrayList <>();
47
47
//build livedata and load album list
48
+ updateAlbumList ();
48
49
albumList .addSource (albums .getLiveDataAlbumList (), albums -> updateAlbumList ());
49
50
//load NC albums
50
51
NCUtils .getIsNCEnable ().observeForever (aBoolean -> {
@@ -138,19 +139,19 @@ private void updateAlbumList() {
138
139
}
139
140
}
140
141
//check if some album are deleted
141
- Iterator <AlbumViewModel > itAVM = albumViewModels . iterator ( );
142
- while ( itAVM . hasNext () ) {
143
- AlbumViewModel avm = itAVM . next ( );
142
+ ArrayList <AlbumViewModel > aVM = new ArrayList <>( albumViewModels );
143
+ for ( int i = 0 ; i < aVM . size (); i ++ ) {
144
+ AlbumViewModel avm = aVM . get ( i );
144
145
if ((avm .getAlbum ()!=null ) && (!albums .isInAlbumList (avm .getAlbum ().getId ()))) {
145
- avm .setAlbum (null );
146
+ albumViewModels . get ( i ) .setAlbum (null );
146
147
}
147
148
if (albumsNC != null ) {
148
149
if ((avm .getAlbumNC ()!=null ) && (!albumsNC .isInAlbumList (avm .getAlbumNC ().getId ()))) {
149
- avm . setAlbumNC (null );
150
+ albumViewModels . get ( i ). setAlbum (null );
150
151
}
151
152
}
152
153
if ((avm .getAlbum () == null ) && (avm .getAlbumNC () == null )) {
153
- itAVM .remove ();
154
+ albumViewModels .remove (i );
154
155
}
155
156
}
156
157
sortAlbumList ();
0 commit comments