package com.xiecc.seeWeather.common.utils;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AlertDialog;
import com.xiecc.seeWeather.component.RetrofitSingleton;
import com.xiecc.seeWeather.modules.about.domain.Version;
public class CheckVersion {
public static void checkVersion(Context context) {
RetrofitSingleton.getInstance()
.fetchVersion()
.doOnNext(version -> {
String firVersionName = version.versionShort;
String currentVersionName = Util.getVersion(context);
if (currentVersionName.compareTo(firVersionName) < 0) {
if (!SharedPreferenceUtil.getInstance().getString("version", "").equals(version.versionShort)) {
showUpdateDialog(version, context);
}
}
})
.subscribe();
}
public static void checkVersion(Context context, boolean force) {
RetrofitSingleton.getInstance()
.fetchVersion()
.doOnNext(version -> {
String firVersionName = version.versionShort;
String currentVersionName = Util.getVersion(context);
if (currentVersionName.compareTo(firVersionName) < 0) {
showUpdateDialog(version, context);
} else {
ToastUtil.showShort("已经是最新版本(⌐■_■)");
}
})
.subscribe();
}
public static void showUpdateDialog(Version versionAPI, final Context context) {
String title = "发现新版" + versionAPI.name + "版本号:" + versionAPI.versionShort;
new AlertDialog.Builder(context).setTitle(title)
.setMessage(versionAPI.changelog)
.setPositiveButton("下载", (dialog, which) -> {
Uri uri = Uri.parse(versionAPI.updateUrl); //指定网址
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW); //指定Action
intent.setData(uri); //设置Uri
context.startActivity(intent); //启动Activity
})
.setNegativeButton("跳过此版本",
(dialog, which) -> SharedPreferenceUtil.getInstance().putString("version", versionAPI.versionShort))
.show();
}
}