// Path: app/src/main/java/io/dwak/holohackernews/app/HackerNewsApplication.java
// public class HackerNewsApplication extends SugarApp {
//     private static boolean mDebug = BuildConfig.DEBUG;
//     private static HackerNewsApplication sInstance;
//     private Context mContext;
//     private static AppComponent sAppComponent;
// 
//     private static AppModule sAppModule;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         if (sInstance == null) {
//             sInstance = this;
//         }
// 
//         if("release".equals(BuildConfig.BUILD_TYPE)){
//             Bugsnag.init(this);
//         }
// 
//         mContext = getApplicationContext();
//         Stetho.initialize(
//                 Stetho.newInitializerBuilder(this)
//                       .enableDumpapp(
//                               Stetho.defaultDumperPluginsProvider(this))
//                       .enableWebKitInspector(
//                               Stetho.defaultInspectorModulesProvider(this))
//                       .build());
// 
//         sAppModule = new AppModule(this);
//         sAppComponent = DaggerAppComponent.builder()
//                                           .appModule(sAppModule)
//                                           .build();
//         sAppComponent.inject(this);
// 
//         LocalDataManager.initialize(mContext);
//     }
// 
//     public static boolean isDebug() {
//         return mDebug;
//     }
// 
//     public static HackerNewsApplication getInstance() {
//         return sInstance;
//     }
// 
//     public Context getContext() {
//         return mContext;
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
//     public static AppModule getAppModule(){
//         return sAppModule;
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseViewModel.java
// public class BaseViewModel {
//     public void onAttachToView() {
//     }
// 
//     public void onDetachFromView() {
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/module/OkClientModule.java
// @Module
// public class OkClientModule {
//     List<Interceptor> mInterceptorList;
// 
//     public OkClientModule() {
//     }
// 
//     public OkClientModule(List<Interceptor> interceptorList) {
//         mInterceptorList = interceptorList;
//     }
// 
//     @Provides
//     @Named("okclient")
//     OkClient providesOkClient(){
//         OkHttpClient okHttpClient = new OkHttpClient();
//         okHttpClient.setFollowRedirects(true);
//         okHttpClient.setFollowSslRedirects(true);
// 
//         if(mInterceptorList != null){
//             okHttpClient.networkInterceptors().addAll(mInterceptorList);
//         }
// 
//         okHttpClient.networkInterceptors().add(new StethoInterceptor());
// 
//         return new OkClient(okHttpClient);
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/models/User.java
// public class User extends SugarRecord<User>{
//     private String userName;
//     private String userCookie;
//     private boolean isCurrentUser;
// 
//     public User() {
//     }
// 
//     public User(String userName, String userCookie, boolean isCurrentUser) {
//         this.userName = userName;
//         this.userCookie = userCookie;
//         this.isCurrentUser = isCurrentUser;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public String getUserCookie() {
//         return userCookie;
//     }
// 
//     public void setUserCookie(String userCookie) {
//         this.userCookie = userCookie;
//     }
// 
//     public boolean isCurrentUser() {
//         return isCurrentUser;
//     }
// 
//     public void setIsCurrentUser(boolean isCurrentUser) {
//         this.isCurrentUser = isCurrentUser;
//     }
// 
//     public static boolean isLoggedIn() {
//         return count(User.class, null, null) > 0;
//     }
// 
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/network/LoginService.java
// public interface LoginService {
//     @FormUrlEncoded
//     @POST("/login")
//     Observable<Response> login(@Field("go_to") String goTo, @Field("acct") String username, @Field("pw") String password);
// }


import android.text.TextUtils;
import com.facebook.stetho.okhttp.StethoInterceptor;
import com.orm.SugarRecord;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.Response;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.base.BaseViewModel;
import io.dwak.holohackernews.app.dagger.component.DaggerNetworkServiceComponent;
import io.dwak.holohackernews.app.dagger.module.OkClientModule;
import io.dwak.holohackernews.app.models.User;
import io.dwak.holohackernews.app.network.LoginService;
import rx.Observable;
package io.dwak.holohackernews.app.ui.login;






public class LoginViewModel extends BaseViewModel {
    String mCfduid;
    @Inject LoginService mLoginService;
    String mUserCookie;

    public LoginViewModel() {

        List<Interceptor> interceptors = new ArrayList<>();
        interceptors.add(new StethoInterceptor());
        interceptors.add(chain -> {
            Response response = chain.proceed(chain.request());
            List<String> cookieHeaders = response.headers("set-cookie");
            for (String header : cookieHeaders) {
                if (header.contains("user")) {
                    mUserCookie = header.split(";")[0];
                }
                else if(header.contains("__cfduid")){
                    mCfduid = header.split(";")[0];
                }
            }
            return response;
        });
        DaggerNetworkServiceComponent.builder()
                                     .okClientModule(new OkClientModule(interceptors))
// Path: app/src/main/java/io/dwak/holohackernews/app/HackerNewsApplication.java
// public class HackerNewsApplication extends SugarApp {
//     private static boolean mDebug = BuildConfig.DEBUG;
//     private static HackerNewsApplication sInstance;
//     private Context mContext;
//     private static AppComponent sAppComponent;
// 
//     private static AppModule sAppModule;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         if (sInstance == null) {
//             sInstance = this;
//         }
// 
//         if("release".equals(BuildConfig.BUILD_TYPE)){
//             Bugsnag.init(this);
//         }
// 
//         mContext = getApplicationContext();
//         Stetho.initialize(
//                 Stetho.newInitializerBuilder(this)
//                       .enableDumpapp(
//                               Stetho.defaultDumperPluginsProvider(this))
//                       .enableWebKitInspector(
//                               Stetho.defaultInspectorModulesProvider(this))
//                       .build());
// 
//         sAppModule = new AppModule(this);
//         sAppComponent = DaggerAppComponent.builder()
//                                           .appModule(sAppModule)
//                                           .build();
//         sAppComponent.inject(this);
// 
//         LocalDataManager.initialize(mContext);
//     }
// 
//     public static boolean isDebug() {
//         return mDebug;
//     }
// 
//     public static HackerNewsApplication getInstance() {
//         return sInstance;
//     }
// 
//     public Context getContext() {
//         return mContext;
//     }
// 
//     public static AppComponent getAppComponent() {
//         return sAppComponent;
//     }
// 
//     public static AppModule getAppModule(){
//         return sAppModule;
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/base/BaseViewModel.java
// public class BaseViewModel {
//     public void onAttachToView() {
//     }
// 
//     public void onDetachFromView() {
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/dagger/module/OkClientModule.java
// @Module
// public class OkClientModule {
//     List<Interceptor> mInterceptorList;
// 
//     public OkClientModule() {
//     }
// 
//     public OkClientModule(List<Interceptor> interceptorList) {
//         mInterceptorList = interceptorList;
//     }
// 
//     @Provides
//     @Named("okclient")
//     OkClient providesOkClient(){
//         OkHttpClient okHttpClient = new OkHttpClient();
//         okHttpClient.setFollowRedirects(true);
//         okHttpClient.setFollowSslRedirects(true);
// 
//         if(mInterceptorList != null){
//             okHttpClient.networkInterceptors().addAll(mInterceptorList);
//         }
// 
//         okHttpClient.networkInterceptors().add(new StethoInterceptor());
// 
//         return new OkClient(okHttpClient);
//     }
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/models/User.java
// public class User extends SugarRecord<User>{
//     private String userName;
//     private String userCookie;
//     private boolean isCurrentUser;
// 
//     public User() {
//     }
// 
//     public User(String userName, String userCookie, boolean isCurrentUser) {
//         this.userName = userName;
//         this.userCookie = userCookie;
//         this.isCurrentUser = isCurrentUser;
//     }
// 
//     public String getUserName() {
//         return userName;
//     }
// 
//     public void setUserName(String userName) {
//         this.userName = userName;
//     }
// 
//     public String getUserCookie() {
//         return userCookie;
//     }
// 
//     public void setUserCookie(String userCookie) {
//         this.userCookie = userCookie;
//     }
// 
//     public boolean isCurrentUser() {
//         return isCurrentUser;
//     }
// 
//     public void setIsCurrentUser(boolean isCurrentUser) {
//         this.isCurrentUser = isCurrentUser;
//     }
// 
//     public static boolean isLoggedIn() {
//         return count(User.class, null, null) > 0;
//     }
// 
// }
// 
// Path: app/src/main/java/io/dwak/holohackernews/app/network/LoginService.java
// public interface LoginService {
//     @FormUrlEncoded
//     @POST("/login")
//     Observable<Response> login(@Field("go_to") String goTo, @Field("acct") String username, @Field("pw") String password);
// }


// Path: app/src/main/java/io/dwak/holohackernews/app/ui/login/LoginViewModel.java
import android.text.TextUtils;
import com.facebook.stetho.okhttp.StethoInterceptor;
import com.orm.SugarRecord;
import com.squareup.okhttp.Interceptor;
import com.squareup.okhttp.Response;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.base.BaseViewModel;
import io.dwak.holohackernews.app.dagger.component.DaggerNetworkServiceComponent;
import io.dwak.holohackernews.app.dagger.module.OkClientModule;
import io.dwak.holohackernews.app.models.User;
import io.dwak.holohackernews.app.network.LoginService;
import rx.Observable;

package io.dwak.holohackernews.app.ui.login;






public class LoginViewModel extends BaseViewModel {
    String mCfduid;
    @Inject LoginService mLoginService;
    String mUserCookie;

    public LoginViewModel() {

        List<Interceptor> interceptors = new ArrayList<>();
        interceptors.add(new StethoInterceptor());
        interceptors.add(chain -> {
            Response response = chain.proceed(chain.request());
            List<String> cookieHeaders = response.headers("set-cookie");
            for (String header : cookieHeaders) {
                if (header.contains("user")) {
                    mUserCookie = header.split(";")[0];
                }
                else if(header.contains("__cfduid")){
                    mCfduid = header.split(";")[0];
                }
            }
            return response;
        });
        DaggerNetworkServiceComponent.builder()
                                     .okClientModule(new OkClientModule(interceptors))
                                     .appModule(HackerNewsApplication.getAppModule())