// Path: app/src/main/java/com/ragdroid/dahaka/DahakaApplication.java
// public class DahakaApplication extends Application implements HasActivityInjector {
// 
//     @Inject DispatchingAndroidInjector<Activity> activityInjector;
//     @Inject UserManager userManager;
// 
//     public AppComponent getAppComponent() {
//         return appComponent;
//     }
// 
//     private AppComponent appComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         DataBindingUtil.setDefaultComponent(buildDataBindingComponent());
//         createComponent();
//     }
// 
//     protected void createComponent() {
//         appComponent = DaggerAppComponent.builder().application(this).build();
//         appComponent.inject(this);
//     }
// 
//     private DataBindingComponent buildDataBindingComponent() {
//         return DaggerAppDataBindingComponent.builder().application(this).build();
//     }
// 
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return userManager.activityInjector();
//     }
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/app/UserManager.java
// @Singleton
// public class UserManager implements HasActivityInjector {
// 
// 
//     private final PokemonService service;
//     private final UserComponent.Builder userComponentBuilder;
//     @Inject DispatchingAndroidInjector<Activity> activityInjector;
// 
//     private Pokemon pokemonCache;
// 
//     private UserComponent userComponent;
// 
//     @Inject
//     public UserManager(PokemonService service, UserComponent.Builder builder) {
//         this.service = service;
//         this.userComponentBuilder = builder;
//     }
// 
//     public Flowable<Pokemon> loginWithUserName(String userName) {
//         return getPokemonMaybeFromCache()
//                 .concatWith(service.getPokemon(userName).toMaybe())
//                 .take(1)
//                 .doOnNext(this::createUserSession);
//     }
// 
//     private void createUserSession(Pokemon pokemon) {
//         userComponent = userComponentBuilder
//                 .pokeMon(pokemon)
//                 .build();
//         userComponent.inject(this);
//     }
// 
// 
//     private Maybe<Pokemon> getPokemonMaybeFromCache() {
//         if (pokemonCache != null) {
//             return Maybe.just(pokemonCache);
//         } else {
//             return Maybe.empty();
//         }
//     }
// 
//     public boolean isLoggedIn() {
//         return userComponent != null;
//     }
// 
//     public void logOut() {
//         pokemonCache = null;
//         userComponent = null;
//     }
// 
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return activityInjector;
//     }
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/mvp/BaseActivity.java
// public abstract class BaseActivity<T extends BasePresenter> extends AppCompatActivity implements BaseView,
//         HasSupportFragmentInjector {
// 
//     public T getPresenter() {
//         return presenter;
//     }
// 
//     @Inject DispatchingAndroidInjector<Fragment> injector;
// 
//     @Inject
//     T presenter;
// 
//     @Override
//     protected void onCreate(@Nullable Bundle savedInstanceState) {
//         androidInject();
//         super.onCreate(savedInstanceState);
//         presenter.onViewAdded(this);
//     }
// 
//     protected void androidInject() {
//         AndroidInjection.inject(this);
//     }
// 
//     @Override
//     public void showMessage(String message) {
//         Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         presenter.onViewRemoved();
//         super.onDestroy();
//     }
// 
//     @Override
//     public void finishView() {
//         startActivity(new Intent(this, LoginActivity.class));
//         finish();
//     }
//     @Override
//     public AndroidInjector<Fragment> supportFragmentInjector() {
//         return injector;
//     }
// 
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/mvp/BasePresenter.java
// public interface BasePresenter<T extends BaseView> {
// 
//     void onViewAdded(T view);
// 
//     void onViewRemoved();
// 
// }


import android.os.Bundle;
import android.support.annotation.Nullable;
import com.ragdroid.dahaka.DahakaApplication;
import com.ragdroid.dahaka.app.UserManager;
import com.ragdroid.dahaka.mvp.BaseActivity;
import com.ragdroid.dahaka.mvp.BasePresenter;
import javax.inject.Inject;
import dagger.android.AndroidInjection;
package com.ragdroid.dahaka.user;






/**
 * Created by garimajain on 18/08/17.
 */

public abstract class BaseUserActivity<T extends BasePresenter> extends BaseActivity<T> {

    @Inject UserManager userManager;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!userManager.isLoggedIn()) {
// Path: app/src/main/java/com/ragdroid/dahaka/DahakaApplication.java
// public class DahakaApplication extends Application implements HasActivityInjector {
// 
//     @Inject DispatchingAndroidInjector<Activity> activityInjector;
//     @Inject UserManager userManager;
// 
//     public AppComponent getAppComponent() {
//         return appComponent;
//     }
// 
//     private AppComponent appComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         DataBindingUtil.setDefaultComponent(buildDataBindingComponent());
//         createComponent();
//     }
// 
//     protected void createComponent() {
//         appComponent = DaggerAppComponent.builder().application(this).build();
//         appComponent.inject(this);
//     }
// 
//     private DataBindingComponent buildDataBindingComponent() {
//         return DaggerAppDataBindingComponent.builder().application(this).build();
//     }
// 
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return userManager.activityInjector();
//     }
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/app/UserManager.java
// @Singleton
// public class UserManager implements HasActivityInjector {
// 
// 
//     private final PokemonService service;
//     private final UserComponent.Builder userComponentBuilder;
//     @Inject DispatchingAndroidInjector<Activity> activityInjector;
// 
//     private Pokemon pokemonCache;
// 
//     private UserComponent userComponent;
// 
//     @Inject
//     public UserManager(PokemonService service, UserComponent.Builder builder) {
//         this.service = service;
//         this.userComponentBuilder = builder;
//     }
// 
//     public Flowable<Pokemon> loginWithUserName(String userName) {
//         return getPokemonMaybeFromCache()
//                 .concatWith(service.getPokemon(userName).toMaybe())
//                 .take(1)
//                 .doOnNext(this::createUserSession);
//     }
// 
//     private void createUserSession(Pokemon pokemon) {
//         userComponent = userComponentBuilder
//                 .pokeMon(pokemon)
//                 .build();
//         userComponent.inject(this);
//     }
// 
// 
//     private Maybe<Pokemon> getPokemonMaybeFromCache() {
//         if (pokemonCache != null) {
//             return Maybe.just(pokemonCache);
//         } else {
//             return Maybe.empty();
//         }
//     }
// 
//     public boolean isLoggedIn() {
//         return userComponent != null;
//     }
// 
//     public void logOut() {
//         pokemonCache = null;
//         userComponent = null;
//     }
// 
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return activityInjector;
//     }
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/mvp/BaseActivity.java
// public abstract class BaseActivity<T extends BasePresenter> extends AppCompatActivity implements BaseView,
//         HasSupportFragmentInjector {
// 
//     public T getPresenter() {
//         return presenter;
//     }
// 
//     @Inject DispatchingAndroidInjector<Fragment> injector;
// 
//     @Inject
//     T presenter;
// 
//     @Override
//     protected void onCreate(@Nullable Bundle savedInstanceState) {
//         androidInject();
//         super.onCreate(savedInstanceState);
//         presenter.onViewAdded(this);
//     }
// 
//     protected void androidInject() {
//         AndroidInjection.inject(this);
//     }
// 
//     @Override
//     public void showMessage(String message) {
//         Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
//     }
// 
//     @Override
//     protected void onDestroy() {
//         presenter.onViewRemoved();
//         super.onDestroy();
//     }
// 
//     @Override
//     public void finishView() {
//         startActivity(new Intent(this, LoginActivity.class));
//         finish();
//     }
//     @Override
//     public AndroidInjector<Fragment> supportFragmentInjector() {
//         return injector;
//     }
// 
// }
// 
// Path: app/src/main/java/com/ragdroid/dahaka/mvp/BasePresenter.java
// public interface BasePresenter<T extends BaseView> {
// 
//     void onViewAdded(T view);
// 
//     void onViewRemoved();
// 
// }


// Path: app/src/main/java/com/ragdroid/dahaka/user/BaseUserActivity.java
import android.os.Bundle;
import android.support.annotation.Nullable;
import com.ragdroid.dahaka.DahakaApplication;
import com.ragdroid.dahaka.app.UserManager;
import com.ragdroid.dahaka.mvp.BaseActivity;
import com.ragdroid.dahaka.mvp.BasePresenter;
import javax.inject.Inject;
import dagger.android.AndroidInjection;

package com.ragdroid.dahaka.user;






/**
 * Created by garimajain on 18/08/17.
 */

public abstract class BaseUserActivity<T extends BasePresenter> extends BaseActivity<T> {

    @Inject UserManager userManager;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (!userManager.isLoggedIn()) {
            finishView();