package com.stardust.scriptdroid.ui.update; import android.content.Context; import android.support.annotation.NonNull; import android.widget.Toast; import com.afollestad.materialdialogs.DialogAction; import com.afollestad.materialdialogs.MaterialDialog; import com.stardust.scriptdroid.BuildConfig; import com.stardust.scriptdroid.R; import com.stardust.scriptdroid.tool.UpdateChecker; import com.stardust.util.IntentUtil; import java.util.LinkedList; /** * Created by Stardust on 2017/4/9. */ public class UpdateCheckDialog implements UpdateChecker.Callback { private MaterialDialog mProgressDialog; private Context mContext; private UpdateChecker mUpdateChecker; public UpdateCheckDialog(Context context) { mContext = context; mUpdateChecker = new UpdateChecker(context); } public void show() { if (mProgressDialog != null) throw new IllegalStateException(); mProgressDialog = new MaterialDialog.Builder(mContext) .content(mContext.getString(R.string.text_checking_update)) .progress(true, 0) .cancelable(false) .show(); mUpdateChecker.check(this); } @Override public void onSuccess(UpdateChecker.UpdateInfo result) { mProgressDialog.dismiss(); if (BuildConfig.VERSION_CODE >= result.versionCode) { Toast.makeText(mContext, R.string.text_is_latest_version, Toast.LENGTH_SHORT).show(); return; } new UpdateInfoDialogBuilder(mContext, result) .show(); clear(); } @Override public void onError(Exception exception) { mProgressDialog.dismiss(); Toast.makeText(mContext, R.string.text_check_update_error, Toast.LENGTH_SHORT).show(); clear(); } private void clear() { mProgressDialog = null; mContext = null; } }