-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFlickryApplication.java
62 lines (47 loc) · 1.98 KB
/
FlickryApplication.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.gauravbhola.flickry;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.gauravbhola.flickry.data.ImagesRepository;
import com.gauravbhola.flickry.data.remote.FlickrApiService;
import com.gauravbhola.flickry.util.ViewModelFactory;
import android.app.Application;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class FlickryApplication extends Application {
ImagesRepository mImagesRepository;
FlickrApiService mFlickrApiService;
ViewModelFactory mViewModelFactory;
@Override
public void onCreate() {
super.onCreate();
// Create global dependencies
mFlickrApiService = provideFlickrApiService(new GsonBuilder().create());
mImagesRepository = provideImagesRepository(mFlickrApiService);
mViewModelFactory = provideViewModelFactory(mImagesRepository);
}
private FlickrApiService provideFlickrApiService(Gson gson) {
OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder();
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl("https://api.flickr.com/services/rest/")
.addConverterFactory(GsonConverterFactory.create(gson));
Retrofit retrofit = builder.client(httpClientBuilder.build())
.build();
return retrofit.create(FlickrApiService.class);
}
private ImagesRepository provideImagesRepository(FlickrApiService flickrApiService) {
return new ImagesRepository(flickrApiService, this);
}
private ViewModelFactory provideViewModelFactory(ImagesRepository imagesRepository) {
return new ViewModelFactory(imagesRepository, this);
}
public ImagesRepository getImagesRepository() {
return mImagesRepository;
}
public FlickrApiService getFlickrApiService() {
return mFlickrApiService;
}
public ViewModelFactory getViewModelFactory() {
return mViewModelFactory;
}
}