LeftLocalPhotoFragment.java 源代码


package activity.Left;

import activity.FishEye.FishEyePhotoActivity;
import activity.ImagePagerActivity;
import activity.WallMounted.WallMountedPhotoActivity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.CheckBox;
import android.widget.GridView;
import android.widget.ListAdapter;
import base.HiFragment;
import bean.LeftLocalFileBean;
import bean.MyCamera;
import butterknife.ButterKnife;
import com.hichip.campro.R;
import com.xiaomi.mipush.sdk.Constants;
import common.Constant;
import common.HiDataValue;
import custom.stickygridview.GridItem;
import custom.stickygridview.StickyGridAdapter;
import custom.stickygridview.YMDHMSComparator;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import utils.HiLogcatUtil;
import utils.HiTools;
import utils.SharePreUtils;
import utils.SystemUtils;
import utils.TimeUtil;
import utils.UninstallDevTypeKeep;

public class LeftLocalPhotoFragment extends HiFragment implements AdapterView.OnItemClickListener {
    private static final int ACTIVITY_RESULT_PHOTO_VIEW = 10;
    public static final String EXTRA_GIRDLST = "girdlst";
    public static final String EXTRA_POSITION = "position";
    private static int section = 1;

    private LeftLocalFileBean f973bean;
    public StickyGridAdapter mAdapter;
    private MyCamera mMyCamera;
    private DeleteBroadcastReceiver mReceiver;
    GridView sticky_gridview;
    public ArrayList<GridItem> mGirdList = new ArrayList<>();
    private Map<String, Integer> sectionMap = new HashMap();
    public List<GridItem> mDeleteList = Collections.synchronizedList(new ArrayList());
    private SimpleDateFormat sdf = new SimpleDateFormat(TimeUtil.FORMAT_DATE_TIME_FULL, Locale.getDefault());
    private SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HHmmss", Locale.getDefault());
    public int mdefchn = 0;

    @Override
    public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
        View inflate = View.inflate(getActivity(), R.layout.fragment_left_photo, null);
        ButterKnife.bind(this, inflate);
        initViewAndData(inflate);
        setListeners();
        registerReceiver();
        return inflate;
    }

    private void registerReceiver() {
        this.mReceiver = new DeleteBroadcastReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(ImagePagerActivity.BROAD_ACTION);
        getActivity().registerReceiver(this.mReceiver, intentFilter);
    }

    private void setListeners() {
        this.sticky_gridview.setOnItemClickListener(this);
    }

    private void initViewAndData(View view) {
        initData();
        StickyGridAdapter stickyGridAdapter = new StickyGridAdapter(getActivity(), this.mGirdList, this.sticky_gridview, this.mMyCamera);
        this.mAdapter = stickyGridAdapter;
        this.sticky_gridview.setAdapter((ListAdapter) stickyGridAdapter);
    }

    public class DeleteBroadcastReceiver extends BroadcastReceiver {
        private DeleteBroadcastReceiver() {
        }

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(ImagePagerActivity.BROAD_ACTION)) {
                int intExtra = intent.getIntExtra(ImagePagerActivity.INDEX, 0);
                if (LeftLocalPhotoFragment.this.mGirdList == null || LeftLocalPhotoFragment.this.mGirdList.size() <= 0 || intExtra >= LeftLocalPhotoFragment.this.mGirdList.size()) {
                    return;
                }
                LeftLocalPhotoFragment.this.mGirdList.remove(intExtra);
                LeftLocalPhotoFragment.this.mAdapter.notifyDataSetChanged();
            }
        }
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        if (this.mReceiver != null) {
            getActivity().unregisterReceiver(this.mReceiver);
        }
    }

    private void initData() {
        File[] listFiles;
        File[] listFiles2;
        this.f973bean = (LeftLocalFileBean) getArguments().getSerializable("bean");
        Iterator<MyCamera> it = HiDataValue.CameraList.iterator();
        while (true) {
            if (!it.hasNext()) {
                break;
            }
            MyCamera next = it.next();
            if (next.getUid().equals(this.f973bean.getUid())) {
                this.mMyCamera = next;
                break;
            }
        }
        if (this.mMyCamera == null) {
            this.mMyCamera = new MyCamera(getActivity(), getString(R.string.title_camera_fragment), this.f973bean.getUid(), "admin", "admin");
            boolean z = SharePreUtils.getBoolean(HiDataValue.CACHE, getActivity(), Constant.DEV_IsVivoMedia, false);
            if (SystemUtils.isVIVOMobile(getActivity()) && Build.VERSION.SDK_INT > 29 && !z) {
                this.mMyCamera.SetDecodeViVoVideoType(0);
            } else {
                this.mMyCamera.SetDecodeViVoVideoType(1);
            }
            if ("true".equalsIgnoreCase(UninstallDevTypeKeep.getValue(getActivity(), this.mMyCamera.getUid(), Constant.ISWALLMOUNTED))) {
                this.mMyCamera.isWallMounted = true;
            }
            HiDataValue.DeleteCameraList.add(this.mMyCamera);
        }
        File file = new File(this.f973bean.getFile().getAbsolutePath() + "/Snapshot/");
        if (file.exists() && (listFiles2 = file.listFiles()) != null && listFiles2.length > 0) {
            for (File file2 : listFiles2) {
                try {
                    String formatTimeToYM = formatTimeToYM(file2.lastModified() / 1000);
                    String[] split = formatTimeToYM.split(" ");
                    GridItem gridItem = new GridItem(file2.getAbsolutePath(), split[0], split[1], formatTimeToYM);
                    gridItem.setPicType(0);
                    if (!this.mGirdList.contains(gridItem)) {
                        this.mGirdList.add(gridItem);
                    }
                } catch (Exception e) {
                    HiLogcatUtil.e(e.getMessage());
                }
            }
        }
        LoadNVRPhoto(this.f973bean, this.mdefchn);
        File file3 = new File(HiDataValue.getPathSDPicDownload(this.mMyCamera.getUid(), getContext()));
        if (file3.exists() && (listFiles = file3.listFiles()) != null && listFiles.length > 0) {
            for (File file4 : listFiles) {
                try {
                    String name = file4.getName();
                    File[] listFiles3 = file4.listFiles();
                    if (listFiles3 != null && listFiles3.length > 0) {
                        for (File file5 : listFiles3) {
                            String name2 = file5.getName();
                            if (!TextUtils.isEmpty(name2) && !name2.contains(Constants.COLON_SEPARATOR) && name2.contains(".")) {
                                String[] split2 = name2.split("\\.");
                                Date parse = this.sdf1.parse(split2[0]);
                                if (parse != null) {
                                    name2 = this.sdf.format(parse) + "." + split2[1];
                                }
                            }
                            GridItem gridItem2 = new GridItem();
                            gridItem2.setTime(name);
                            gridItem2.setHmsTime(name2.substring(name2.length() - 12, name2.length() - 4));
                            gridItem2.setYmdHmsTime(name2.substring(0, name2.length() - 4));
                            gridItem2.setPath(file5.getAbsolutePath());
                            gridItem2.setPicType(1);
                            this.mGirdList.add(gridItem2);
                        }
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
        }
        Collections.sort(this.mGirdList, new YMDHMSComparator());
        ListIterator<GridItem> listIterator = this.mGirdList.listIterator();
        while (listIterator.hasNext()) {
            GridItem next2 = listIterator.next();
            String time = next2.getTime();
            if (!this.sectionMap.containsKey(time)) {
                next2.setSection(section);
                this.sectionMap.put(time, Integer.valueOf(section));
                section++;
            } else {
                next2.setSection(this.sectionMap.get(time).intValue());
            }
        }
    }

    private void LoadNVRPhoto(LeftLocalFileBean leftLocalFileBean, int i) {
        File[] listFiles;
        File file = new File(leftLocalFileBean.getFile().getAbsolutePath() + "/NVRSnapshot/" + i + "/");
        if (!file.exists() || (listFiles = file.listFiles()) == null || listFiles.length <= 0) {
            return;
        }
        for (File file2 : listFiles) {
            try {
                String formatTimeToYM = formatTimeToYM(file2.lastModified() / 1000);
                String[] split = formatTimeToYM.split(" ");
                GridItem gridItem = new GridItem(file2.getAbsolutePath(), split[0], split[1], formatTimeToYM);
                gridItem.setPicType(0);
                if (!this.mGirdList.contains(gridItem)) {
                    this.mGirdList.add(gridItem);
                }
            } catch (Exception e) {
                HiLogcatUtil.e(e.getMessage());
            }
        }
    }

    public void ReLoadNVRPhoto() {
        if (this.f973bean == null) {
            return;
        }
        ArrayList<GridItem> arrayList = this.mGirdList;
        if (arrayList != null) {
            arrayList.clear();
        }
        Map<String, Integer> map = this.sectionMap;
        if (map != null) {
            map.clear();
        }
        List<GridItem> list = this.mDeleteList;
        if (list != null) {
            list.clear();
        }
        section = 1;
        LoadNVRPhoto(this.f973bean, this.mdefchn);
        Collections.sort(this.mGirdList, new YMDHMSComparator());
        this.mAdapter.setChecks(this.mGirdList);
        ListIterator<GridItem> listIterator = this.mGirdList.listIterator();
        while (listIterator.hasNext()) {
            GridItem next = listIterator.next();
            String time = next.getTime();
            if (!this.sectionMap.containsKey(time)) {
                next.setSection(section);
                this.sectionMap.put(time, Integer.valueOf(section));
                section++;
            } else {
                next.setSection(this.sectionMap.get(time).intValue());
            }
        }
        StickyGridAdapter stickyGridAdapter = this.mAdapter;
        if (stickyGridAdapter != null) {
            stickyGridAdapter.notifyDataSetChanged();
        }
    }

    private String formatTimeToYM(long j) {
        TimeZone.setDefault(TimeZone.getDefault());
        return new SimpleDateFormat(TimeUtil.FORMAT_DATE_TIME_FULL, Locale.getDefault()).format(new Date(j * 1000));
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
        if (i < 0) {
            return;
        }
        if (this.mAdapter.getDelMode() == 1) {
            CheckBox checkBox = (CheckBox) view.findViewById(R.id.grid_cb);
            checkBox.setChecked(!checkBox.isChecked());
            if (checkBox.isChecked()) {
                this.mDeleteList.add(this.mGirdList.get(i));
            } else {
                this.mDeleteList.remove(this.mGirdList.get(i));
            }
            this.mAdapter.checks[i] = checkBox.isChecked();
            return;
        }
        if (HiTools.isFastClick()) {
            return;
        }
        Intent intent = new Intent();
        if (this.mMyCamera.isWallMounted) {
            intent.putExtra(HiDataValue.EXTRAS_KEY_UID, this.mMyCamera.getUid());
            intent.putExtra("photo_path", this.mGirdList.get(i).getPath());
            intent.putExtra("position", i);
            intent.setClass(getActivity(), WallMountedPhotoActivity.class);
            startActivity(intent);
            return;
        }
        if (UninstallDevTypeKeep.getValue(getActivity(), this.mMyCamera.getUid(), Constant.ISFISHEYE).equalsIgnoreCase("1") || this.mMyCamera.isFishEye()) {
            int i2 = SharePreUtils.getInt(Constant.INSTALLMODE, getActivity(), this.mMyCamera.getUid());
            MyCamera myCamera = this.mMyCamera;
            if (i2 == -1) {
                i2 = 0;
            }
            myCamera.mInstallMode = i2;
            if (!HiDataValue.CameraList.contains(this.mMyCamera)) {
                this.mMyCamera.mInstallMode = Integer.parseInt(UninstallDevTypeKeep.getValue(getContext(), this.mMyCamera.getUid(), Constant.INSTALLMODE));
            }
            intent.setClass(getActivity(), FishEyePhotoActivity.class);
            intent.putExtra("photo_path", this.mGirdList.get(i).getPath());
            intent.putExtra("position", i);
        } else {
            intent.setClass(getActivity(), ImagePagerActivity.class);
        }
        intent.putExtra(HiDataValue.EXTRAS_KEY_UID, this.mMyCamera.getUid());
        intent.putParcelableArrayListExtra("girdlst", this.mGirdList);
        intent.putExtra("position", i);
        startActivityForResult(intent, 10);
        getActivity().overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
    }

    @Override
    public void onActivityResult(int i, int i2, Intent intent) {
        super.onActivityResult(i, i2, intent);
        if (i == 10 && i2 == -1) {
            this.mGirdList.remove(intent.getExtras().getInt(ImagePagerActivity.INDEX));
            this.mAdapter.notifyDataSetChanged();
        }
    }
}