// 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/BaseViewModelActivity.java
// public abstract class BaseViewModelActivity<T extends BaseViewModel> extends BaseActivity{
//     protected abstract T getViewModel();
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         getViewModel().onAttachToView();
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         getViewModel().onDetachFromView();
//     }
// }
// 
// 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/util/UIUtils.java
// public class UIUtils {
//     public static int dpAsPixels(Context context, int densityPixels){
//         float scale = context.getResources().getDisplayMetrics().density;
//         return (int) (densityPixels * scale + 0.5f);
//     }
// 
//     public static void showToast(Context context, String message){
//         Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
//     }
// 
// }


import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.widget.EditText;
import com.dd.CircularProgressButton;
import com.jakewharton.rxbinding.view.RxView;
import com.jakewharton.rxbinding.widget.RxTextView;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
import io.dwak.holohackernews.app.BuildConfig;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.R;
import io.dwak.holohackernews.app.base.BaseViewModelActivity;
import io.dwak.holohackernews.app.dagger.component.DaggerViewModelComponent;
import io.dwak.holohackernews.app.models.User;
import io.dwak.holohackernews.app.util.UIUtils;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
package io.dwak.holohackernews.app.ui.login;





public class LoginActivity extends BaseViewModelActivity<LoginViewModel> {

    public static final String LOGIN_SUCCESS = "login-success";
    public static final String LOGOUT = "logout";
    private static final String TAG = LoginActivity.class.getSimpleName();
    @InjectView(R.id.username) EditText mUsername;
    @InjectView(R.id.password) EditText mPassword;
    @InjectView(R.id.login_button_with_progress) CircularProgressButton mLoginButton;

    @Inject LoginViewModel mViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        DaggerViewModelComponent.builder()
// 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/BaseViewModelActivity.java
// public abstract class BaseViewModelActivity<T extends BaseViewModel> extends BaseActivity{
//     protected abstract T getViewModel();
// 
//     @Override
//     protected void onResume() {
//         super.onResume();
//         getViewModel().onAttachToView();
//     }
// 
//     @Override
//     protected void onPause() {
//         super.onPause();
//         getViewModel().onDetachFromView();
//     }
// }
// 
// 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/util/UIUtils.java
// public class UIUtils {
//     public static int dpAsPixels(Context context, int densityPixels){
//         float scale = context.getResources().getDisplayMetrics().density;
//         return (int) (densityPixels * scale + 0.5f);
//     }
// 
//     public static void showToast(Context context, String message){
//         Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
//     }
// 
// }


// Path: app/src/main/java/io/dwak/holohackernews/app/ui/login/LoginActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.text.TextUtils;
import android.widget.EditText;
import com.dd.CircularProgressButton;
import com.jakewharton.rxbinding.view.RxView;
import com.jakewharton.rxbinding.widget.RxTextView;
import javax.inject.Inject;
import butterknife.ButterKnife;
import butterknife.InjectView;
import io.dwak.holohackernews.app.BuildConfig;
import io.dwak.holohackernews.app.HackerNewsApplication;
import io.dwak.holohackernews.app.R;
import io.dwak.holohackernews.app.base.BaseViewModelActivity;
import io.dwak.holohackernews.app.dagger.component.DaggerViewModelComponent;
import io.dwak.holohackernews.app.models.User;
import io.dwak.holohackernews.app.util.UIUtils;
import rx.Observable;
import rx.Subscriber;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

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





public class LoginActivity extends BaseViewModelActivity<LoginViewModel> {

    public static final String LOGIN_SUCCESS = "login-success";
    public static final String LOGOUT = "logout";
    private static final String TAG = LoginActivity.class.getSimpleName();
    @InjectView(R.id.username) EditText mUsername;
    @InjectView(R.id.password) EditText mPassword;
    @InjectView(R.id.login_button_with_progress) CircularProgressButton mLoginButton;

    @Inject LoginViewModel mViewModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        DaggerViewModelComponent.builder()
                                .appComponent(HackerNewsApplication.getAppComponent())