クリーン アーキテクチャを使用しているアプリを開発しています。プレゼンターでは、メソッド onCompleted に何かが来ると、Main アクティビティから関数を呼び出す必要があります。これは私のプレゼンターです:
public class CheckInPresenter implements Presenter {
UseCase postCheckInUseCase;
Context context;
@Inject
CheckInPresenter(@Named("putCheckIn") UseCase postCheckInUseCase){
this.postCheckInUseCase = postCheckInUseCase;
}
public void initialize(){this.initializeCheckIn();}
public void initializeCheckIn(){this.putCheckIn();}
public void putCheckIn(){
this.postCheckInUseCase.execute(new CheckInSubscriber());
}
@Override
public void resume() {
}
@Override
public void pause() {
}
@Override
public void destroy() {
}
private final class CheckInSubscriber extends DefaultSubscriber<EventEntity>{
@Override
public void onCompleted() {
Log.d("onCompleted", "OnCompleted");
}
@Override
public void onError(Throwable e) {
Log.d("onError", "OnError: " + e.getMessage());
}
@Override
public void onNext(EventEntity eventEntity) {
Log.d("onNext", "OnNext");
}
}
}
そして、これは私が呼び出さなければならない MainActivity からの私の関数です:
public void getDataForToolbar() {
SharedPreferences sharedPreferences = getSharedPreferences(getResources().getString(R.string.Account_json), Context.MODE_PRIVATE);
final String account = sharedPreferences.getString(getResources().getString(R.string.account_json), null);
if (account != null) {
Gson gson = new Gson();
mAccount = gson.fromJson(account, AccountModel.class);
for (CompanyModel com : mAccount.getCompanies()) {
String name = com.getName();
company_name.setText(name);
logo_url = com.getLogo_url();
}
if (logo_url == null || logo_url.isEmpty()) {
Picasso
.with(this)
.load(R.drawable.default_company)
.resize(70, 58)
.transform(new RoundedTransformation(8, 0))
.into(toolbarImage);
} else {
picassoLoader(this, toolbarImage, logo_url);
}
String username = mAccount.getUsername();
if(mAccount.getStatus()){
aUsername.setText(username + "/" + getResources().getString(R.string.on_duty));
aUsername.setBackgroundColor(ContextCompat.getColor(mContext, R.color.colorGreen));
}else{
aUsername.setText(username + "/" + getResources().getString(R.string.off_duty));
aUsername.setBackgroundColor(ContextCompat.getColor(mContext, R.color.colorWhite));
}
}
}
この関数を Presenter の onCompleted メソッドに呼び出す方法を教えてもらえますか? 前もって感謝します。