导航菜单

页面标题

页面副标题

WeatherSense v1.8.9 - DownloadHistoryActivity.java 源代码

正在查看: WeatherSense v1.8.9 应用的 DownloadHistoryActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.emax.weather.ui.activity;

import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.core.content.FileProvider;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.emax.weahter.R;
import com.emax.weather.adapter.common.BaseRecycleViewHolder;
import com.emax.weather.adapter.common.BaseRecycleViewHolderFactory;
import com.emax.weather.adapter.common.SimpleRecycleViewAdapter;
import com.emax.weather.base.BaseActivity;
import com.emax.weather.bean.HistoryFile;
import com.emax.weather.ui.activity.DownloadHistoryActivity;
import com.ezon.health.utils_lib.FileUtils;
import com.ezon.health.utils_lib.ToastUtil;
import com.tbruyelle.rxpermissions2.RxPermissions;
import io.reactivex.functions.Consumer;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class DownloadHistoryActivity extends BaseActivity {
    private List<HistoryFile> dataList = new ArrayList();

    @BindView(R.id.recyclerView)
    RecyclerView mRecyclerView;

    @BindView(R.id.title_sub)
    TextView mTitle;

    @Override
    protected int getActivityRId() {
        return R.layout.activity_download_history;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ButterKnife.bind(this);
        initView();
    }

    private void initView() {
        this.mTitle.setText(getString(R.string.download_history));
        this.mRecyclerView.setLayoutManager(new LinearLayoutManager(this, 1, false));
        this.mRecyclerView.addItemDecoration(new DividerItemDecoration(this, 1));
        this.mRecyclerView.setAdapter(new SimpleRecycleViewAdapter(this.dataList, new BaseRecycleViewHolderFactory<HistoryFile>() {
            @Override
            public int layoutId(int viewType) {
                return R.layout.layout_item_download_file;
            }

            @Override
            public BaseRecycleViewHolder<HistoryFile> createViewHolder(View itemView, int viewType) {
                return DownloadHistoryActivity.this.new FileNameViewHolder(itemView);
            }
        }));
        RxPermissions rxPermissions = new RxPermissions(this);
        if (rxPermissions.isGranted("android.permission.WRITE_EXTERNAL_STORAGE") && rxPermissions.isGranted("android.permission.READ_EXTERNAL_STORAGE")) {
            scanHistoryFiles();
        } else {
            rxPermissions.request(new String[]{"android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.READ_EXTERNAL_STORAGE"}).subscribe(new Consumer() {
                public final void accept(Object obj) {
                    DownloadHistoryActivity.this.lambda$initView$0$DownloadHistoryActivity((Boolean) obj);
                }
            }, new Consumer() {
                public final void accept(Object obj) {
                    System.out.println(" throwable.getMessage() = " + ((Throwable) obj).getMessage());
                }
            });
        }
    }

    public void lambda$initView$0$DownloadHistoryActivity(Boolean bool) throws Exception {
        if (!bool.booleanValue()) {
            ToastUtil.show(getString(R.string.Please_check_your_save_permissions), getApplicationContext());
        } else {
            scanHistoryFiles();
        }
    }

    private void scanHistoryFiles() {
        System.out.println("获取到的android 版本号 " + Build.VERSION.SDK_INT);
        if (Build.VERSION.SDK_INT >= 24) {
            String str = getFilesDir().getAbsolutePath() + "/history";
            File[] listFiles = new File(str).listFiles(new FileFilter() {
                @Override
                public final boolean accept(File file) {
                    boolean endsWith;
                    endsWith = file.getName().endsWith(".xls");
                    return endsWith;
                }
            });
            if (listFiles != null) {
                for (int i = 0; i < listFiles.length; i++) {
                    this.dataList.add(new HistoryFile(str, listFiles[i].getName(), listFiles[i].getAbsolutePath()));
                }
            }
        } else {
            File[] listFiles2 = new File(getApplicationContext().getFilesDir().getAbsolutePath() + "/history").listFiles();
            if (listFiles2 != null) {
                for (int i2 = 0; i2 < listFiles2.length; i2++) {
                    System.out.println("删除getFilesDir文件 " + listFiles2[i2].getName());
                    FileUtils.deleteFile(listFiles2[i2]);
                }
            }
        }
        String str2 = getExternalFilesDir(null).getAbsolutePath() + "/history";
        File[] listFiles3 = new File(str2).listFiles(new FileFilter() {
            @Override
            public final boolean accept(File file) {
                boolean endsWith;
                endsWith = file.getName().endsWith(".xls");
                return endsWith;
            }
        });
        if (listFiles3 != null) {
            for (int i3 = 0; i3 < listFiles3.length; i3++) {
                HistoryFile historyFile = new HistoryFile(str2, listFiles3[i3].getName(), listFiles3[i3].getAbsolutePath());
                boolean z = false;
                for (int i4 = 0; i4 < this.dataList.size(); i4++) {
                    if (this.dataList.get(i4).getFileName().equals(listFiles3[i3].getName())) {
                        System.out.println("getExternalFilesDir存在相同名称文件 ,删除getFilesDir下文件" + this.dataList.get(i4).getFilePath());
                        FileUtils.deleteFile(this.dataList.get(i4).getFilePath());
                        this.dataList.set(i4, historyFile);
                        z = true;
                    }
                }
                if (!z) {
                    this.dataList.add(historyFile);
                }
            }
            Collections.sort(this.dataList, new Comparator() {
                @Override
                public final int compare(Object obj, Object obj2) {
                    int compareTo;
                    compareTo = ((HistoryFile) obj).getFileName().compareTo(((HistoryFile) obj2).getFileName());
                    return compareTo;
                }
            });
        }
        this.mRecyclerView.getAdapter().notifyDataSetChanged();
    }

    class FileNameViewHolder extends BaseRecycleViewHolder<HistoryFile> {
        View itemView;
        TextView tvFileName;

        public void bindView2(HistoryFile data, int position, List<Object> payloads) {
        }

        @Override
        public void bindView(HistoryFile data, int position, List payloads) {
            bindView2(data, position, (List<Object>) payloads);
        }

        public FileNameViewHolder(View itemView) {
            super(itemView);
            this.itemView = itemView;
            this.tvFileName = (TextView) itemView.findViewById(R.id.tv_file_name);
        }

        @Override
        public void bindView(final HistoryFile data, int position) {
            System.out.println("position = " + position);
            this.tvFileName.setText(data.getFileName());
            this.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public final void onClick(View view) {
                    DownloadHistoryActivity.FileNameViewHolder.this.lambda$bindView$0$DownloadHistoryActivity$FileNameViewHolder(data, view);
                }
            });
        }

        public void lambda$bindView$0$DownloadHistoryActivity$FileNameViewHolder(HistoryFile historyFile, View view) {
            DownloadHistoryActivity.this.share(historyFile.getFileParentPath(), historyFile.getFileName());
        }
    }

    public void share(String parent, String fileName) {
        Uri fromFile;
        Intent intent = new Intent();
        intent.setAction("android.intent.action.SEND");
        intent.addFlags(3);
        intent.setType("application/vnd.ms-excel");
        if (Build.VERSION.SDK_INT >= 24) {
            fromFile = FileProvider.getUriForFile(this, "com.emax.weahter.fileprovider", new File(parent, fileName));
        } else {
            fromFile = Uri.fromFile(new File(parent, fileName));
        }
        intent.putExtra("android.intent.extra.STREAM", fromFile);
        startActivity(intent);
    }
}