SettingFragment.java 5.73 KB
package com.huaheng.wms.fragment;

import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.huaheng.wms.LoginActivity;
import com.huaheng.wms.R;
import com.huaheng.wms.WMSLog;
import com.huaheng.wms.download.DownloadManager;
import com.huaheng.wms.download.FileInfo;
import com.huaheng.wms.download.OnFileDownloadListener;
import com.huaheng.wms.util.Constant;
import com.huaheng.wms.util.WMSUtils;
import com.huaheng.wms.views.MenuLayout;

import java.io.File;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import butterknife.Unbinder;

public class SettingFragment extends BaseFragment {

    @BindView(R.id.exitLayout)
    MenuLayout exitLayout;
    @BindView(R.id.upgradeLayout)
    MenuLayout upgradeLayout;
    @BindView(R.id.versionLayout)
    MenuLayout versionLayout;
    Unbinder unbinder;
    @BindView(R.id.warehouseLayout)
    MenuLayout warehouseLayout;
    private String path = Environment.getExternalStorageDirectory().toString() + "/wms"+ "/";
    private ProgressDialog progressDialog;
    private String url = "https://dl-download.csdn.net/down11/20180803/0a38d2a17b5e1453d0dff979032eeb52.apk?response-content-disposition=attachment%3Bfilename%3D%22wms.apk%22&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1533278238&Signature=RdPFKJ569a5mO0ImOSnj%2BREA3f4%3D&user=asd13874905195&sourceid=10580665&sourcescore=1&isvip=0/WHJMrwNw1k%252FF850lJ%252BfR%252BGEs80LbnbEklmdBKgNQL%252BXDKCxwL7JsLMd%252BKX2R5g2mhynN8qAe9RR9PTrzJpuIBbTHTKcpivS1FT5YDlG8ndzLLFfNuK9iMTJCCf1UjlEyVgSGTBChib8NXg%252BETZSFGswFu76L9JYnTFdyYlBQlGDZo4lsokyTgnIvsGrYyAiMRToxhSqtBzqy3G3Oy7IT0tFj5wqWfbW1wLVO2USrcXJLzqTvTNUQt4gWD9gyODQ3xBMuR2wgYcQ3eAN6bmZ5qTw%253D%253D1487582755342";

    @Override
    public View layout(LayoutInflater inflater) {
        View view = inflater.inflate(R.layout.fragment_settings, null);
        return view;
    }

    @Override
    public void releaseMemory() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // TODO: inflate a fragment view
        View rootView = super.onCreateView(inflater, container, savedInstanceState);
        unbinder = ButterKnife.bind(this, rootView);
        upgradeLayout.setMenuTitle(getString(R.string.upgrade));
        upgradeLayout.setIconVisible(View.VISIBLE);
        versionLayout.setMenuTitle(getString(R.string.version));
        versionLayout.setMenuContent(WMSUtils.getVersionName(getContext()));
        exitLayout.setMenuTitle(getString(R.string.exit));
        exitLayout.setIconVisible(View.VISIBLE);
        warehouseLayout.setMenuTitle(getString(R.string.current_warehouse));
        warehouseLayout.setMenuContent(WMSUtils.getData(Constant.CURREN_WAREHOUSE));
        return rootView;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    @OnClick({R.id.exitLayout, R.id.upgradeLayout, R.id.versionLayout})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.exitLayout:
                WMSUtils.startActivity(getContext(), LoginActivity.class);
                break;
            case R.id.upgradeLayout:
                download();
                break;
            case R.id.versionLayout:
                break;
        }
    }

    private void download() {
        FileInfo fileInfo = new FileInfo();
        fileInfo.setFileName("wms.apk");
        fileInfo.setFileType(FileInfo.FILE_TYPE_APK);
        fileInfo.setPath(path);
        fileInfo.setPkgName(getContext().getPackageName());
        fileInfo.setUrl(url);
        fileInfo.setVersion(5);
        DownloadManager.getInstance(getContext()).startDownload(fileInfo);
        DownloadManager.getInstance(getContext()).setOnFileDownloadListener(new OnFileDownloadListener() {
            @Override
            public void onProgress(String fileName, int progress) {
                WMSLog.d("onProgress progress:" + progress);
                progressDialog.setProgress(progress);
            }

            @Override
            public void onError(String fileName, String msg) {
                WMSLog.d("onError msg:" + msg);
                WMSUtils.showLong(getContext(), msg);
                progressDialog.dismiss();
            }

            @Override
            public void onSuccess(String fileName) {
                WMSLog.d("onSuccess fileName:" + fileName);
                File apkFile = new File(path + "wms.apk");
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
                getContext().startActivity(intent);
                progressDialog.dismiss();
            }

            @Override
            public void onCanceled(String fileName) {
                progressDialog.dismiss();
            }
        });
        showProgress();
    }

    private void showProgress() {
        progressDialog =  new ProgressDialog(getContext());//实例化ProgressDialog
        progressDialog.setMax(100);//设置最大值
        progressDialog.setTitle(getContext().getString(R.string.progress_download));//设置标题
        progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置样式为横向显示进度的样式
        progressDialog.setIndeterminate(false);//是否精确显示对话框,flase为是,反之为否
        //是否可以通过返回按钮退出对话框
        progressDialog.setCancelable(false);
        progressDialog.show();//显示对话框
    }
}