14
14
import androidx .core .app .ActivityCompat ;
15
15
import androidx .core .app .ActivityOptionsCompat ;
16
16
import androidx .core .util .Pair ;
17
+ import androidx .lifecycle .ViewModelProviders ;
17
18
import androidx .recyclerview .widget .LinearLayoutManager ;
18
19
import androidx .recyclerview .widget .RecyclerView ;
19
20
import androidx .swiperefreshlayout .widget .SwipeRefreshLayout ;
22
23
import com .catherine .materialdesignapp .R ;
23
24
import com .catherine .materialdesignapp .activities .AlbumDetailsActivity ;
24
25
import com .catherine .materialdesignapp .adapters .AlbumAdapter ;
26
+ import com .catherine .materialdesignapp .jetpack .entities .Album ;
27
+ import com .catherine .materialdesignapp .jetpack .view_models .AlbumViewModel ;
25
28
import com .catherine .materialdesignapp .listeners .OnItemClickListener ;
26
29
import com .catherine .materialdesignapp .listeners .OnSearchViewListener ;
27
30
import com .catherine .materialdesignapp .listeners .UIComponentsListener ;
28
- import com .catherine .materialdesignapp .models .Album ;
29
31
import com .catherine .materialdesignapp .utils .PrefetchSubscriber ;
30
32
import com .catherine .materialdesignapp .utils .TextHelper ;
31
33
import com .facebook .binaryresource .BinaryResource ;
46
48
import java .util .ArrayList ;
47
49
import java .util .List ;
48
50
49
- import okhttp3 .OkHttpClient ;
50
-
51
51
public class AlbumsFragment extends ChildOfMusicFragment implements OnSearchViewListener {
52
52
private final static String TAG = AlbumsFragment .class .getSimpleName ();
53
53
private AlbumAdapter adapter ;
54
- private OkHttpClient okHttpClient ;
55
54
private List <Album > albums ;
56
55
private List <Album > filteredAlbums ;
57
56
private PrefetchSubscriber subscriber ;
@@ -62,6 +61,8 @@ public class AlbumsFragment extends ChildOfMusicFragment implements OnSearchView
62
61
private ValueEventListener firebaseValueEventListener ;
63
62
private String DB_PATH = FirebaseDB .ALBUMS ;
64
63
64
+ private AlbumViewModel albumViewModel ;
65
+
65
66
@ Override
66
67
public View onCreateView (LayoutInflater inflater , ViewGroup container ,
67
68
Bundle savedInstanceState ) {
@@ -128,41 +129,20 @@ public void onItemLongClick(View view, int position) {
128
129
}
129
130
});
130
131
recyclerView .setAdapter (adapter );
131
- okHttpClient = new OkHttpClient .Builder ().build ();
132
132
subscriber = new PrefetchSubscriber ();
133
133
listener = (UIComponentsListener ) getActivity ();
134
+
135
+ albumViewModel = ViewModelProviders .of (this ).get (AlbumViewModel .class );
136
+ albumViewModel .getAlbumLiveData ().observe (this , albums -> {
137
+ filteredAlbums .clear ();
138
+ filteredAlbums .addAll (albums );
139
+ adapter .setEntities (filteredAlbums );
140
+ updateList ();
141
+ });
134
142
fillInData ();
135
143
}
136
144
137
145
private void fillInData () {
138
- // // Retrieve data from https://rallycoding.herokuapp.com/api/music_albums
139
- // Request request = new Request.Builder()
140
- // .url(Constants.ALBUM_URL)
141
- // .build();
142
- //
143
- // okHttpClient.newCall(request).enqueue(new Callback() {
144
- // @Override
145
- // public void onFailure(Call call, IOException e) {
146
- // e.printStackTrace();
147
- // updateList();
148
- // }
149
- //
150
- // @Override
151
- // public void onResponse(Call call, Response response) throws IOException {
152
- // String returnMsg = String.format(Locale.ENGLISH, "connectSuccess code:%s\nisSuccessful:%b\nisRedirect:%b\ncache control:%s",
153
- // response.code(), response.isSuccessful(), response.isRedirect(), response.cacheControl().toString());
154
- // Log.i(TAG, returnMsg);
155
- // Gson gson = new Gson();
156
- // Type listType = new TypeToken<List<Album>>() {
157
- // }.getType();
158
- // albums = gson.fromJson(response.body().string(), listType);
159
- // filteredAlbums.clear();
160
- // filteredAlbums.addAll(albums);
161
- // adapter.setEntities(filteredAlbums);
162
- // updateList();
163
- // cacheItems();
164
- // }
165
- // });
166
146
167
147
// Retrieve data from firebase realtime database
168
148
if (firebaseValueEventListener != null )
@@ -183,11 +163,8 @@ public void onDataChange(DataSnapshot dataSnapshot) {
183
163
Album album = child .getValue (Album .class );
184
164
Log .i (TAG , String .format ("%s: %s" , child .getKey (), album ));
185
165
albums .add (album );
166
+ albumViewModel .insert (album );
186
167
}
187
- filteredAlbums .clear ();
188
- filteredAlbums .addAll (albums );
189
- adapter .setEntities (filteredAlbums );
190
- updateList ();
191
168
cacheItems ();
192
169
}
193
170
@@ -257,7 +234,7 @@ public void onFragmentHide() {
257
234
@ Override
258
235
public void onDestroy () {
259
236
if (firebaseValueEventListener != null )
260
- myRef .removeEventListener (firebaseValueEventListener );
237
+ myRef .removeEventListener (firebaseValueEventListener );
261
238
super .onDestroy ();
262
239
}
263
240
}
0 commit comments