package cn.mutils.app.demo.ui;
import android.content.Context;
import android.util.AttributeSet;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import java.io.File;
import cn.mutils.app.demo.R;
import cn.mutils.app.ui.StateView;
import cn.mutils.app.util.AppUtil;
import cn.mutils.app.fir.FIRUpdateAgent;
import cn.mutils.core.annotation.event.Click;
import cn.mutils.core.annotation.res.SetContentView;
import cn.mutils.core.event.listener.VersionUpdateListener;
import cn.mutils.core.text.MBFormat;
@SetContentView(R.layout.view_fir_update)
public class FirUpdateDemoView extends StateView {
public FirUpdateDemoView(Context context) {
super(context);
}
public FirUpdateDemoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FirUpdateDemoView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Click(R.id.go)
protected void onClickGo() {
FIRUpdateAgent agent = new FIRUpdateAgent();
agent.setContext(getContext());
agent.setBundleId("cn.mutils.app.demo");
agent.setApiToken("4dce255bc03f5809f5e6f0463c2761c8");
agent.setDownloadCallBack(new RequestCallBack<File>() {
@Override
public void onSuccess(ResponseInfo<File> responseInfo) {
AppUtil.installApp(getContext(), responseInfo.result);
}
@Override
public void onFailure(HttpException e, String message) {
toast("Download failure");
}
@Override
public void onLoading(long total, long current, boolean isUploading) {
double totalMB = total;
totalMB = totalMB / MBFormat.MILLION_SIZE;
double currentMB = current;
currentMB = currentMB / MBFormat.MILLION_SIZE;
StringBuilder sb = new StringBuilder();
sb.append("Updating:");
sb.append(MBFormat.format(currentMB, "0.00"));
sb.append("/");
sb.append(MBFormat.format(totalMB, "0.00"));
toast(sb.toString());
}
});
agent.setListener(new VersionUpdateListener() {
@Override
public boolean onYes(String version) {
toast("New version found");
return false;
}
@Override
public void onUpdateCancel(String version) {
toast("Update cancel");
}
@Override
public void onUpdate(String version) {
toast("Update");
}
@Override
public void onNo() {
toast("No new version found");
}
});
agent.start();
}
@Click(R.id.target_version_download)
protected void onClickTargetVersionDownload() {
FIRUpdateAgent agent = new FIRUpdateAgent();
agent.setContext(getContext());
agent.setBundleId("cn.mutils.app.demo");
agent.setApiToken("4dce255bc03f5809f5e6f0463c2761c8");
agent.setTargetVersion("1.1");
agent.start();
}
@Click(R.id.target_version_install)
protected void onClickTargetVersionInstall() {
FIRUpdateAgent agent = new FIRUpdateAgent();
agent.setContext(getContext());
agent.setBundleId("cn.mutils.app.demo");
agent.setApiToken("4dce255bc03f5809f5e6f0463c2761c8");
agent.setTargetVersion("1.1");
if (!AppUtil.installApp(getContext(), agent.getTargetVersionFile())) {
toast("Install failed");
}
}
}