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();
    }
}