// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/local/PreferencesHelper.java
// @Singleton
// public class PreferencesHelper {
// 
//     private final SharedPreferences mPref;
// 
//     public static final String PREF_FILE_NAME = "tv_boilerplate_pref_file";
//     private static final String PREF_KEY_ACCESS_TOKEN = "PREF_KEY_ACCESS_TOKEN";
// 
//     @Inject
//     public PreferencesHelper(@ApplicationContext Context context) {
//         mPref = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
//     }
// 
//     public void clear() {
//         mPref.edit().clear().apply();
//     }
// 
//     public void putAccessToken(String accessToken) {
//         mPref.edit().putString(PREF_KEY_ACCESS_TOKEN, accessToken).apply();
//     }
// 
//     @Nullable
//     public String getAccessToken() {
//         return mPref.getString(PREF_KEY_ACCESS_TOKEN, null);
//     }
// 
// }
// 
// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/model/Cat.java
// public class Cat {
//     public String name;
//     public String description;
//     public String imageUrl;
// 
//     public Cat() {
// 
//     }
// 
//     public Cat(String name, String description, String imageUrl) {
//         this.name = name;
//         this.description = description;
//         this.imageUrl = imageUrl;
//     }
// 
// }
// 
// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/remote/AndroidTvBoilerplateService.java
// public interface AndroidTvBoilerplateService {
// 
//     String ENDPOINT = "https://your.endpoint.com/";
// 
//     /********
//      * Helper class that sets up a new services
//      *******/
//     class Creator {
//         public static AndroidTvBoilerplateService newVineyardService() {
//             OkHttpClient client = new OkHttpClient();
//             client.interceptors().add(new Interceptor() {
//                 @Override
//                 public Response intercept(Chain chain) throws IOException {
//                     Response response = chain.proceed(chain.request());
//                     // Catch unauthorised error
//                     return response;
//                 }
//             });
// 
//             HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
//             interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//             client.interceptors().add(interceptor);
// 
//             Retrofit retrofit = new Retrofit.Builder()
//                     .baseUrl(AndroidTvBoilerplateService.ENDPOINT)
//                     .client(client)
//                     .addConverterFactory(GsonConverterFactory.create())
//                     .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                     .build();
//             return retrofit.create(AndroidTvBoilerplateService.class);
//         }
//     }
// 
// }


import com.hitherejoe.androidtvboilerplate.data.local.PreferencesHelper;
import com.hitherejoe.androidtvboilerplate.data.model.Cat;
import com.hitherejoe.androidtvboilerplate.data.remote.AndroidTvBoilerplateService;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import rx.Single;
package com.hitherejoe.androidtvboilerplate.data;





@Singleton
public class DataManager {

    private final AndroidTvBoilerplateService mTvAndroidTvBoilerplateService;
    private final PreferencesHelper mPreferencesHelper;

    @Inject
    public DataManager(PreferencesHelper preferencesHelper,
// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/local/PreferencesHelper.java
// @Singleton
// public class PreferencesHelper {
// 
//     private final SharedPreferences mPref;
// 
//     public static final String PREF_FILE_NAME = "tv_boilerplate_pref_file";
//     private static final String PREF_KEY_ACCESS_TOKEN = "PREF_KEY_ACCESS_TOKEN";
// 
//     @Inject
//     public PreferencesHelper(@ApplicationContext Context context) {
//         mPref = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE);
//     }
// 
//     public void clear() {
//         mPref.edit().clear().apply();
//     }
// 
//     public void putAccessToken(String accessToken) {
//         mPref.edit().putString(PREF_KEY_ACCESS_TOKEN, accessToken).apply();
//     }
// 
//     @Nullable
//     public String getAccessToken() {
//         return mPref.getString(PREF_KEY_ACCESS_TOKEN, null);
//     }
// 
// }
// 
// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/model/Cat.java
// public class Cat {
//     public String name;
//     public String description;
//     public String imageUrl;
// 
//     public Cat() {
// 
//     }
// 
//     public Cat(String name, String description, String imageUrl) {
//         this.name = name;
//         this.description = description;
//         this.imageUrl = imageUrl;
//     }
// 
// }
// 
// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/remote/AndroidTvBoilerplateService.java
// public interface AndroidTvBoilerplateService {
// 
//     String ENDPOINT = "https://your.endpoint.com/";
// 
//     /********
//      * Helper class that sets up a new services
//      *******/
//     class Creator {
//         public static AndroidTvBoilerplateService newVineyardService() {
//             OkHttpClient client = new OkHttpClient();
//             client.interceptors().add(new Interceptor() {
//                 @Override
//                 public Response intercept(Chain chain) throws IOException {
//                     Response response = chain.proceed(chain.request());
//                     // Catch unauthorised error
//                     return response;
//                 }
//             });
// 
//             HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
//             interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
//             client.interceptors().add(interceptor);
// 
//             Retrofit retrofit = new Retrofit.Builder()
//                     .baseUrl(AndroidTvBoilerplateService.ENDPOINT)
//                     .client(client)
//                     .addConverterFactory(GsonConverterFactory.create())
//                     .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                     .build();
//             return retrofit.create(AndroidTvBoilerplateService.class);
//         }
//     }
// 
// }


// Path: app/src/main/java/com/hitherejoe/androidtvboilerplate/data/DataManager.java
import com.hitherejoe.androidtvboilerplate.data.local.PreferencesHelper;
import com.hitherejoe.androidtvboilerplate.data.model.Cat;
import com.hitherejoe.androidtvboilerplate.data.remote.AndroidTvBoilerplateService;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Singleton;
import rx.Single;

package com.hitherejoe.androidtvboilerplate.data;





@Singleton
public class DataManager {

    private final AndroidTvBoilerplateService mTvAndroidTvBoilerplateService;
    private final PreferencesHelper mPreferencesHelper;

    @Inject
    public DataManager(PreferencesHelper preferencesHelper,
                       AndroidTvBoilerplateService androidTvBoilerplateService) {