package com.alibaba.genie.panel.basic.base.mvvm;
import android.app.Application;
import android.arch.lifecycle.AndroidViewModel;
import android.arch.lifecycle.Lifecycle;
import android.arch.lifecycle.LifecycleOwner;
import android.os.Bundle;
import android.support.annotation.NonNull;
import com.alibaba.genie.panel.basic.base.SingleLiveData;
import java.util.HashMap;
import java.util.Map;
public class BaseViewModel extends AndroidViewModel implements IBaseViewModel {
private UiChangeEvent uc;
public BaseViewModel(@NonNull Application application) {
super(application);
}
@Override
public void onAny(LifecycleOwner var1, Lifecycle.Event var2) {
}
@Override
public void onCreate() {
}
@Override
public void onDestroy() {
}
@Override
public void onStart() {
}
@Override
public void onStop() {
}
@Override
public void onResume() {
}
@Override
public void onPause() {
}
public UiChangeEvent getUiChange() {
if (this.uc == null) {
this.uc = new UiChangeEvent();
}
return this.uc;
}
public void finish() {
this.getUiChange().finishEvent.postValue(null);
}
public void finish(int resultCode, Bundle bundle) {
Map<String, Object> params = new HashMap(2);
params.put("REQUEST_CODE", resultCode);
if (bundle != null) {
params.put("BUNDLE", bundle);
}
this.getUiChange().finishForResultEvent.postValue(params);
}
public String getString(int id) {
return this.getApplication().getString(id);
}
public void showToast(String message) {
this.getUiChange().showToastEvent.postValue(message);
}
public void showLoading() {
this.getUiChange().showLoadingEvent.postValue(null);
}
public void showLoading(String info) {
this.getUiChange().showLoadingEvent.postValue(info);
}
public void showEmptyView() {
this.getUiChange().showEmptyEvent.postValue(null);
}
public void showEmptyView(String info) {
this.getUiChange().showEmptyEvent.postValue(info);
}
public void hideStateView() {
this.getUiChange().hideStateViewEvent.postValue(null);
}
public void openActivity(Class<?> cls, Object... objects) {
if (this.getUiChange().openActivityEvent != null) {
Map<String, Object> params = new HashMap();
params.put("CLASS", cls);
params.put("PARAMS", objects);
this.getUiChange().openActivityEvent.postValue(params);
}
}
public static final class UiChangeEvent extends SingleLiveData {
public SingleLiveData<Map<String, Object>> openActivityEvent = new SingleLiveData();
public SingleLiveData<Void> finishEvent = new SingleLiveData();
public SingleLiveData<Map<String, Object>> finishForResultEvent = new SingleLiveData();
public SingleLiveData<String> showToastEvent = new SingleLiveData();
public SingleLiveData<String> showLoadingEvent = new SingleLiveData();
public SingleLiveData<String> showEmptyEvent = new SingleLiveData();
public SingleLiveData<Void> hideStateViewEvent = new SingleLiveData();
public UiChangeEvent() {
}
}
}