Newer
Older
Cactus-CleanArchitecture / app / src / main / java / org / ntlab / radishforandroidstudio / CactusCleanArchitecture / Controller / UserLoginResponseController.java
package org.ntlab.radishforandroidstudio.CactusCleanArchitecture.Controller;

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;

import net.arnx.jsonic.JSON;
import net.arnx.jsonic.TypeReference;

import org.ntlab.radishforandroidstudio.CactusCleanArchitecture.UseCases.UserLoginResponseBoundary;
import org.ntlab.radishforandroidstudio.CactusCleanArchitecture.UseCases.UserLoginResponseUseCase;
import org.ntlab.radishforandroidstudio.cactusClient.Cactus;
import org.ntlab.radishforandroidstudio.cactusClient.models.account.URIAddressedAccount;

public class UserLoginResponseController implements UserLoginResponseBoundary {
    private final FragmentActivity fragmentActivity;
    private final FragmentManager manager;

    public UserLoginResponseController(FragmentActivity fragmentActivity, FragmentManager manager) {
        this.fragmentActivity = fragmentActivity;
        this.manager = manager;
    }

    @Override
    public void onResponse(String response) {
        URIAddressedAccount lac = JSON.decode(response, new TypeReference<URIAddressedAccount>() {});
        System.out.println(response);
        UserLoginResponsePresenter userLoginResponsePresenter = new UserLoginResponsePresenter(fragmentActivity, manager);
        UserLoginResponseUseCase userLoginResponseUseCase = new UserLoginResponseUseCase((Cactus) (fragmentActivity.getApplication()), userLoginResponsePresenter);
        userLoginResponseUseCase.inputData(lac);
        userLoginResponseUseCase.proc();
    }
}