// Path: impala/src/main/java/hainguyen/impala/application/ApplicationBus.java
// public class ApplicationBus {
// 
//     private boolean login;
// 
//     public boolean isLogin() {
//         return login;
//     }
// 
//     public void setLogin(boolean login) {
//         this.login = login;
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/application/ImpalaApplication.java
// public class ImpalaApplication extends Application {
// 
//     private AppComponent appComponent;
//     private UserComponent userComponent;
// 
//     public static ImpalaApplication getInstance() {
//         return ContextProvider.getContext();
//     }
// 
//     public void onCreate() {
//         super.onCreate();
//         ContextProvider.setContext(this);
//         if (LeakCanary.isInAnalyzerProcess(this)) {
//             return;
//         }
//         LeakCanary.install(this);
//         initializeApp();
//     }
// 
//     private void initializeApp() {
//         this.appComponent = DaggerAppComponent.builder()
//                 .appModule(new AppModule(this))
//                 .apiModule(new ApiModule())
//                 .dataModule(new DataModule())
//                 .presenterModule(new PresenterModule())
//                 .build();
//     }
// 
//     public AppComponent getAppComponent() {
//         return appComponent;
//     }
// 
//     public UserComponent getUserComponent() {
//         return userComponent;
//     }
// 
//     public UserComponent createUserComponent(User user) {
//         userComponent = appComponent.plus(new UserModule(user));
//         return userComponent;
//     }
// 
//     public void releaseUserComponent() {
//         this.userComponent = null;
//     }
// 
// 
//     static class ContextProvider {
//         private static ImpalaApplication instance;
// 
//         private ContextProvider() {
//             // hide public Context Singleton
//         }
// 
//         public static void setContext(Context context) {
//             instance = (ImpalaApplication) context;
//         }
// 
//         public static ImpalaApplication getContext() {
//             return instance;
//         }
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/feature/userdetails/view/UserDetailsView.java
// public interface UserDetailsView extends ImpalaView {
//     void populateUserDetails(User userDetails);
//     void backToLoginScreen();
// }
// 
// Path: impala/src/main/java/hainguyen/impala/model/User.java
// public class User {
// 
//     @SerializedName("FullName")
//     public String fullName;
// 
//     @SerializedName("DateOfBirth")
//     public String dateOfBirth;
// 
//     @SerializedName("Gender")
//     public String gender;
// 
//     @SerializedName("Address")
//     public String address;
// 
//     @SerializedName("Phone")
//     public String phone;
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getDateOfBirth() {
//         return dateOfBirth;
//     }
// 
//     public void setDateOfBirth(String dateOfBirth) {
//         this.dateOfBirth = dateOfBirth;
//     }
// 
//     public String getGender() {
//         return gender;
//     }
// 
//     public void setGender(String gender) {
//         this.gender = gender;
//     }
// 
//     public String getAddress() {
//         return address;
//     }
// 
//     public void setAddress(String address) {
//         this.address = address;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public User transformFrom(LoginResponse response) {
//         this.fullName = response.fullName();
//         this.address = response.address();
//         this.dateOfBirth = response.dateOfBirth();
//         this.gender = response.gender();
//         this.phone = response.phone();
//         return null;
//     }
// }


import javax.inject.Inject;
import hainguyen.impala.application.ApplicationBus;
import hainguyen.impala.application.ImpalaApplication;
import hainguyen.impala.feature.userdetails.view.UserDetailsView;
import hainguyen.impala.model.User;
package hainguyen.impala.feature.userdetails.presenter;



public class UserDetailsPresenterImpl implements UserDetailsPresenter {

    UserDetailsView detailsView;
    ApplicationBus bus;
    User user;

    @Inject
    public UserDetailsPresenterImpl(ApplicationBus applicationBus, User user) {
        this.user = user;
// Path: impala/src/main/java/hainguyen/impala/application/ApplicationBus.java
// public class ApplicationBus {
// 
//     private boolean login;
// 
//     public boolean isLogin() {
//         return login;
//     }
// 
//     public void setLogin(boolean login) {
//         this.login = login;
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/application/ImpalaApplication.java
// public class ImpalaApplication extends Application {
// 
//     private AppComponent appComponent;
//     private UserComponent userComponent;
// 
//     public static ImpalaApplication getInstance() {
//         return ContextProvider.getContext();
//     }
// 
//     public void onCreate() {
//         super.onCreate();
//         ContextProvider.setContext(this);
//         if (LeakCanary.isInAnalyzerProcess(this)) {
//             return;
//         }
//         LeakCanary.install(this);
//         initializeApp();
//     }
// 
//     private void initializeApp() {
//         this.appComponent = DaggerAppComponent.builder()
//                 .appModule(new AppModule(this))
//                 .apiModule(new ApiModule())
//                 .dataModule(new DataModule())
//                 .presenterModule(new PresenterModule())
//                 .build();
//     }
// 
//     public AppComponent getAppComponent() {
//         return appComponent;
//     }
// 
//     public UserComponent getUserComponent() {
//         return userComponent;
//     }
// 
//     public UserComponent createUserComponent(User user) {
//         userComponent = appComponent.plus(new UserModule(user));
//         return userComponent;
//     }
// 
//     public void releaseUserComponent() {
//         this.userComponent = null;
//     }
// 
// 
//     static class ContextProvider {
//         private static ImpalaApplication instance;
// 
//         private ContextProvider() {
//             // hide public Context Singleton
//         }
// 
//         public static void setContext(Context context) {
//             instance = (ImpalaApplication) context;
//         }
// 
//         public static ImpalaApplication getContext() {
//             return instance;
//         }
//     }
// }
// 
// Path: impala/src/main/java/hainguyen/impala/feature/userdetails/view/UserDetailsView.java
// public interface UserDetailsView extends ImpalaView {
//     void populateUserDetails(User userDetails);
//     void backToLoginScreen();
// }
// 
// Path: impala/src/main/java/hainguyen/impala/model/User.java
// public class User {
// 
//     @SerializedName("FullName")
//     public String fullName;
// 
//     @SerializedName("DateOfBirth")
//     public String dateOfBirth;
// 
//     @SerializedName("Gender")
//     public String gender;
// 
//     @SerializedName("Address")
//     public String address;
// 
//     @SerializedName("Phone")
//     public String phone;
// 
//     public String getFullName() {
//         return fullName;
//     }
// 
//     public void setFullName(String fullName) {
//         this.fullName = fullName;
//     }
// 
//     public String getDateOfBirth() {
//         return dateOfBirth;
//     }
// 
//     public void setDateOfBirth(String dateOfBirth) {
//         this.dateOfBirth = dateOfBirth;
//     }
// 
//     public String getGender() {
//         return gender;
//     }
// 
//     public void setGender(String gender) {
//         this.gender = gender;
//     }
// 
//     public String getAddress() {
//         return address;
//     }
// 
//     public void setAddress(String address) {
//         this.address = address;
//     }
// 
//     public String getPhone() {
//         return phone;
//     }
// 
//     public void setPhone(String phone) {
//         this.phone = phone;
//     }
// 
//     public User transformFrom(LoginResponse response) {
//         this.fullName = response.fullName();
//         this.address = response.address();
//         this.dateOfBirth = response.dateOfBirth();
//         this.gender = response.gender();
//         this.phone = response.phone();
//         return null;
//     }
// }


// Path: impala/src/main/java/hainguyen/impala/feature/userdetails/presenter/UserDetailsPresenterImpl.java
import javax.inject.Inject;
import hainguyen.impala.application.ApplicationBus;
import hainguyen.impala.application.ImpalaApplication;
import hainguyen.impala.feature.userdetails.view.UserDetailsView;
import hainguyen.impala.model.User;

package hainguyen.impala.feature.userdetails.presenter;



public class UserDetailsPresenterImpl implements UserDetailsPresenter {

    UserDetailsView detailsView;
    ApplicationBus bus;
    User user;

    @Inject
    public UserDetailsPresenterImpl(ApplicationBus applicationBus, User user) {
        this.user = user;
        this.bus = applicationBus;