Ultra-SDP v1.0.0版本的 MD5 值为:5418115cd4b552c4cd79d6d68815af17
以下内容为反编译后的 AboutFragment.java 源代码,内容仅作参考
package com.zta.android.news.fragment;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.AppCompatTextView;
import androidx.core.content.FileProvider;
import butterknife.BindView;
import com.xuexiang.constant.MimeTypeConstants;
import com.xuexiang.xpage.annotation.Page;
import com.xuexiang.xpage.enums.CoreAnim;
import com.xuexiang.xui.utils.XToastUtils;
import com.xuexiang.xui.widget.actionbar.TitleBar;
import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog;
import com.xuexiang.xui.widget.progress.HorizontalProgressView;
import com.xuexiang.xui.widget.textview.supertextview.SuperButton;
import com.xuexiang.xui.widget.textview.supertextview.SuperTextView;
import com.xuexiang.xutil.app.AppUtils;
import com.zta.android.BuildConfig;
import com.zta.android.R;
import com.zta.android.news.base.BaseFragment;
import com.zta.android.news.update.RetrofitHelper;
import com.zta.android.news.update.dowload.DownloadApi;
import com.zta.android.news.update.dowload.DownloadInfo;
import com.zta.android.news.update.dowload.DownloadProgressHandler;
import com.zta.android.news.update.dowload.FileDownloader;
import com.zta.android.news.update.util.FileUtils;
import com.zta.util.Keys;
import com.zta.util.SharePrefrenceManager;
import java.io.File;
@Page(anim = CoreAnim.slide)
public class AboutFragment extends BaseFragment {
public static final String UTF8_BOM = "\ufeff";
private MaterialDialog.Builder builder;
private MaterialDialog materialDialog;
@BindView(R.id.check)
SuperTextView tvCheck;
@BindView(R.id.about_title)
AppCompatTextView tvTitle;
private SuperButton updateBtn;
private AppCompatImageView updateClose;
private AppCompatTextView updateContent;
private HorizontalProgressView updateProgress;
private RelativeLayout updateProgressRl;
private TextView updateProgressTv;
private AppCompatTextView updateVersion;
private String versionName = "";
public static final String ROOT_PATH = Environment.getExternalStorageDirectory() + File.separator;
public static final String DOWNLOAD_APK_PATH = ROOT_PATH + File.separator + "SdpDownload";
@Override
protected int getLayoutId() {
return R.layout.activity_about;
}
@Override
protected void initListeners() {
}
@Override
public TitleBar initTitle() {
TitleBar immersive = super.initTitle().setImmersive(false);
immersive.setTitle("关于APP");
immersive.setTitleSize(getResources().getDimensionPixelSize(R.dimen.dp_16));
immersive.setTitleColor(getResources().getColor(R.color.black_90));
immersive.setCenterTextBold(true);
immersive.setLeftTextPadding(getResources().getDimensionPixelSize(R.dimen.config_margin_20dp), getResources().getDimensionPixelSize(R.dimen.config_margin_20dp));
immersive.setLeftImageResource(R.drawable.ic_actionbar_left);
immersive.setLeftClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AboutFragment.this.popToBack();
}
});
return immersive;
}
@Override
public void initViews() {
this.versionName = BuildConfig.VERSION_NAME;
if (this.versionName.contains("-")) {
this.versionName = this.versionName.split("-")[0];
}
AppCompatTextView appCompatTextView = this.tvTitle;
appCompatTextView.setText("2131820591 " + this.versionName);
this.builder = new MaterialDialog.Builder(getContext());
View inflate = LayoutInflater.from(getContext()).inflate(R.layout.dialog_update, (ViewGroup) null);
this.builder.customView(inflate, false);
this.materialDialog = this.builder.build();
this.materialDialog.getWindow().setBackgroundDrawableResource(17170445);
this.updateVersion = (AppCompatTextView) inflate.findViewById(R.id.update_version);
this.updateContent = (AppCompatTextView) inflate.findViewById(R.id.update_content);
this.updateBtn = (SuperButton) inflate.findViewById(R.id.update_btn);
this.updateClose = (AppCompatImageView) inflate.findViewById(R.id.update_close);
this.updateProgress = (HorizontalProgressView) inflate.findViewById(R.id.update_progress);
this.updateProgressRl = (RelativeLayout) inflate.findViewById(R.id.update_progress_rl);
this.updateProgressTv = (TextView) inflate.findViewById(R.id.update_progress_text);
this.updateBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AboutFragment.this.updateBtn.setVisibility(8);
AboutFragment.this.updateProgressRl.setVisibility(0);
AboutFragment.this.downLoadApk();
}
});
this.updateClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AboutFragment.this.materialDialog.dismiss();
}
});
this.materialDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
FileDownloader.cancelDownload();
}
});
this.tvCheck.setOnSuperTextViewClickListener(new SuperTextView.OnSuperTextViewClickListener() {
@Override
public void onClick(SuperTextView superTextView) {
AboutFragment.this.mLoadingDialog.show();
AboutFragment.this.downLoadVersion();
}
});
}
private void openInstallPermission() {
Intent intent;
if (Build.VERSION.SDK_INT >= 26) {
intent = new Intent("android.settings.MANAGE_UNKNOWN_APP_SOURCES", Uri.parse("package:" + AppUtils.getPackageName()));
} else {
intent = new Intent("android.settings.SECURITY_SETTINGS", Uri.parse("package:" + AppUtils.getPackageName()));
}
startActivityForResult(intent, 500);
}
@Override
public void onFragmentResult(int i, int i2, Intent intent) {
super.onFragmentResult(i, i2, intent);
if (i2 == -1 && i == 500) {
File file = new File(DOWNLOAD_APK_PATH + "/app-release.apk");
Intent intent2 = new Intent("android.intent.action.VIEW");
intent2.setFlags(268435456);
if (Build.VERSION.SDK_INT >= 24) {
intent2.setFlags(1);
Context context = getContext();
intent2.setDataAndType(FileProvider.getUriForFile(context, getContext().getPackageName() + ".provider", file), MimeTypeConstants.APK);
} else {
intent2.setDataAndType(Uri.fromFile(file), MimeTypeConstants.APK);
}
startActivity(intent2);
}
}
@Override
public void onActivityResult(int i, int i2, Intent intent) {
super.onActivityResult(i, i2, intent);
if (i2 == -1 && i == 500) {
File file = new File(DOWNLOAD_APK_PATH + "/app-release.apk");
Intent intent2 = new Intent("android.intent.action.VIEW");
intent2.setFlags(268435456);
if (Build.VERSION.SDK_INT >= 24) {
intent2.setFlags(1);
Context context = getContext();
intent2.setDataAndType(FileProvider.getUriForFile(context, getContext().getPackageName() + ".provider", file), MimeTypeConstants.APK);
} else {
intent2.setDataAndType(Uri.fromFile(file), MimeTypeConstants.APK);
}
startActivity(intent2);
}
}
public void downLoadVersion() {
String string = SharePrefrenceManager.get().getString(Keys.UPDATE_URL, "http://192.168.187.197:8080/SmartSdp");
FileDownloader.cancelDownload();
FileDownloader.downloadFile2(((DownloadApi) RetrofitHelper.getInstance().getApiService(DownloadApi.class)).downLoad(string + "/ANDROID/last_version.txt"), DOWNLOAD_APK_PATH, "version.txt", new DownloadProgressHandler() {
@Override
public void onProgress(DownloadInfo downloadInfo) {
downloadInfo.getProgress();
downloadInfo.getFileSize();
downloadInfo.getSpeed();
downloadInfo.getUsedTime();
}
@Override
public void onCompleted(File file) {
String ReadTxtFile = FileUtils.ReadTxtFile(file.getAbsolutePath());
if (TextUtils.isEmpty(ReadTxtFile)) {
return;
}
if (ReadTxtFile.startsWith(AboutFragment.UTF8_BOM)) {
ReadTxtFile = ReadTxtFile.substring(1);
}
Log.d("version===", AboutFragment.this.versionName.substring(1));
Log.d("version===", ReadTxtFile);
if (Integer.valueOf(FileUtils.compareVersion(ReadTxtFile.trim(), AboutFragment.this.versionName.substring(1).trim())).intValue() == 1) {
AboutFragment.this.downLoadContent(ReadTxtFile);
return;
}
XToastUtils.info("已是最新版本");
AboutFragment.this.mLoadingDialog.dismiss();
}
@Override
public void onError(Throwable th) {
AboutFragment.this.mLoadingDialog.dismiss();
XToastUtils.error("下载版本更新文件异常:" + th.getMessage());
}
});
}
public void downLoadContent(final String str) {
String string = SharePrefrenceManager.get().getString(Keys.UPDATE_URL, "http://192.168.187.197:8080/SmartSdp");
FileDownloader.cancelDownload();
FileDownloader.downloadFile2(((DownloadApi) RetrofitHelper.getInstance().getApiService(DownloadApi.class)).downLoad(string + "/ANDROID/update_content.txt"), DOWNLOAD_APK_PATH, "content.txt", new DownloadProgressHandler() {
@Override
public void onProgress(DownloadInfo downloadInfo) {
downloadInfo.getProgress();
downloadInfo.getFileSize();
downloadInfo.getSpeed();
downloadInfo.getUsedTime();
}
@Override
public void onCompleted(File file) {
AboutFragment.this.mLoadingDialog.dismiss();
String ReadTxtFile2 = FileUtils.ReadTxtFile2(file.getAbsolutePath());
if (TextUtils.isEmpty(ReadTxtFile2)) {
return;
}
AboutFragment.this.updateVersion.setText(str);
AboutFragment.this.updateContent.setText(ReadTxtFile2);
AboutFragment.this.materialDialog.show();
}
@Override
public void onError(Throwable th) {
AboutFragment.this.mLoadingDialog.dismiss();
XToastUtils.error("下载版本更新内容文件异常:" + th.getMessage());
}
});
}
public void downLoadApk() {
String string = SharePrefrenceManager.get().getString(Keys.UPDATE_URL, "http://192.168.187.197:8080/SmartSdp");
FileDownloader.cancelDownload();
FileDownloader.downloadFile2(((DownloadApi) RetrofitHelper.getInstance().getApiService(DownloadApi.class)).downLoad(string + "/ANDROID/app-release.apk"), DOWNLOAD_APK_PATH, "app-release.apk", new DownloadProgressHandler() {
@Override
public void onProgress(DownloadInfo downloadInfo) {
int progress = downloadInfo.getProgress();
downloadInfo.getFileSize();
downloadInfo.getSpeed();
downloadInfo.getUsedTime();
AboutFragment.this.updateProgress.setProgress(progress);
TextView textView = AboutFragment.this.updateProgressTv;
textView.setText(progress + "%");
}
@Override
public void onCompleted(File file) {
XToastUtils.success("下载apk完成:" + file.getAbsolutePath());
AboutFragment.this.updateBtn.setVisibility(0);
AboutFragment.this.updateProgressRl.setVisibility(8);
AboutFragment.this.materialDialog.dismiss();
Intent intent = new Intent("android.intent.action.VIEW");
intent.setFlags(268435456);
if (Build.VERSION.SDK_INT >= 24) {
intent.setFlags(1);
Context context = AboutFragment.this.getContext();
intent.setDataAndType(FileProvider.getUriForFile(context, AboutFragment.this.getContext().getPackageName() + ".provider", file), MimeTypeConstants.APK);
} else {
intent.setDataAndType(Uri.fromFile(file), MimeTypeConstants.APK);
}
AboutFragment.this.startActivity(intent);
}
@Override
public void onError(Throwable th) {
XToastUtils.error("下载更新apk文件异常:" + th.getMessage());
AboutFragment.this.updateBtn.setVisibility(0);
AboutFragment.this.updateProgressRl.setVisibility(8);
}
});
}
@Override
public void onDestroyView() {
super.onDestroyView();
}
}