mac
2024-05-06 a4e8dee87338beef6f45f053d8fa9c36dc74ed09
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -1,25 +1,27 @@
package com.hdl.photovoltaic.ui.powerstation;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.hardware.camera2.CameraManager;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.bean.PageNumberObject;
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.enums.SortType;
import com.hdl.photovoltaic.enums.SortValue;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.listener.LinkCallBack;
import com.hdl.photovoltaic.other.HdlCommonLogic;
@@ -28,7 +30,9 @@
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.other.HdlUniLogic;
import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter;
import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
import com.hdl.photovoltaic.ui.bean.DeviceBean;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.utils.PermissionUtils;
@@ -42,14 +46,32 @@
import java.util.List;
/**
 * (住宅)电站列表-界面
 * 电站和设备-界面
 */
public class HouseListFragment extends CustomBaseFragment {
    private FragmentHouseListBinding viewBinding;
    private HouseInfoAdapter houseInfoAdapter;
    private CameraManager manager;
    private List<HouseIdBean> houseListBeanIDList = null;
    private DeviceInfoAdapter deviceInfoAdapter;
    private List<HouseIdBean> houseListBeanIDList;
    private List<DeviceBean> deviceInfoList;
    private int currentHouseListPage = 0; // 当前电站列表页码
    private int currentHouseListTotal = 0; // 电站列表总页码
    private boolean isHouseLoadingMore = false; // 标记电站列表正在加载更多数据
    private int currentDeviceListPage = 0; // 当前设备列表页码
    private int currentDeviceListTotal = 0; // 设备列表总页码
    private boolean isDeviceLoadingMore = false; // 标记设备列表正在加载更多数据
    private boolean isClickPowerStationLabel = true;//(电站标签=true,设备标签=false)
    private String key = SortValue.all;
    private String value = SortValue.all;
    private long pageSize = 20;//页数
    @Override
@@ -60,7 +82,6 @@
    @Override
    public void onBindView(Bundle savedInstanceState) {
        manager = (CameraManager) _mActivity.getSystemService(Context.CAMERA_SERVICE);
        initData();
        //初始化
        initView();
@@ -74,24 +95,32 @@
        viewBinding.powerStationLabel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isClickPowerStationLabel) {
                    return;
                }
                isClickPowerStationLabel = true;
                viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style);
                viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style);
                viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
                viewBinding.deviceLabelParent.setVisibility(View.GONE);//设备标签隐藏
                loadNextPageHouseList(true, 1, true);
            }
        });
        //设备标签
        viewBinding.deviceLabel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!isClickPowerStationLabel) {
                    return;
                }
                isClickPowerStationLabel = false;
                viewBinding.deviceLabel.setTextAppearance(R.style.Text20Style);
                viewBinding.powerStationLabel.setTextAppearance(R.style.Text16Style);
                viewBinding.editIv.setVisibility(View.GONE);//编辑图标隐藏
                viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏
                viewBinding.powerStationLabelParent.setVisibility(View.GONE);//电站标签隐藏
                viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);
                loadNextPageDeviceList(true, 1, true);
            }
        });
@@ -103,12 +132,36 @@
            }
        });
        //设置下拉箭头颜色
        //电站设置下拉箭头颜色
        viewBinding.fragmentHouseSrl.setColorSchemeResources(R.color.text_FF245EC3);
        //电站下拉读取
        viewBinding.fragmentHouseSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                downReadData(true);
                viewBinding.fragmentHouseSrl.setRefreshing(false);
                loadNextPageHouseList(true, 1, true);
            }
        });
        //电站上拉读取
        viewBinding.fragmentHouseSrlListRc.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
//                super.onScrolled(recyclerView, dx, dy);
                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                if (layoutManager == null) {
                    return;
                }
                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
                    if (!isHouseLoadingMore) {
                        // 滑动到了底部,执行相应的操作
                        HdlLogLogic.print("--->滑动到了底部");
                        loadNextPageHouseList(false, ++currentHouseListPage, false);
                    }
                }
            }
        });
        //进入电站详情,删除电站,移动电站位置
@@ -140,7 +193,7 @@
                        HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
                        initData();//初始化缓存数据
                        houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表
                        nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
                        nullDataUpdateUi();//检测数据是否为空
                    }
                    @Override
@@ -218,40 +271,83 @@
        viewBinding.stationNameRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.stationNameRl.setSelected(!v.isSelected());
                viewBinding.stationNameIv.setSelected(viewBinding.stationNameRl.isSelected());
            }
        });
        //电站名称筛选
        viewBinding.stationNameRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.stationNameRl.setSelected(!v.isSelected());
                viewBinding.stationNameIv.setSelected(viewBinding.stationNameRl.isSelected());
                boolean isSelected = !v.isSelected();
                viewBinding.stationNameRl.setSelected(isSelected);
                viewBinding.stationNameIv.setSelected(isSelected);
                key = SortType.homeNameSort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
            }
        });
        //发电功率筛选
        viewBinding.stationPowerRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.stationPowerRl.setSelected(!v.isSelected());
                viewBinding.stationPowerIv.setSelected(viewBinding.stationPowerRl.isSelected());
                boolean isSelected = !v.isSelected();
                viewBinding.stationPowerRl.setSelected(isSelected);
                viewBinding.stationPowerIv.setSelected(isSelected);
                key = SortType.powerSort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
            }
        });
        //当日发电量筛选
        viewBinding.stationDayRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.stationDayRl.setSelected(!v.isSelected());
                viewBinding.stationDayIv.setSelected(viewBinding.stationDayRl.isSelected());
                boolean isSelected = !v.isSelected();
                viewBinding.stationDayRl.setSelected(isSelected);
                viewBinding.stationDayIv.setSelected(isSelected);
                key = SortType.todayElectricitySort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
            }
        });
        //当月发电量筛选
        viewBinding.stationMonthRl.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewBinding.stationMonthRl.setSelected(!v.isSelected());
                viewBinding.stationMonthIv.setSelected(viewBinding.stationMonthRl.isSelected());
                boolean isSelected = !v.isSelected();
                viewBinding.stationMonthRl.setSelected(isSelected);
                viewBinding.stationMonthIv.setSelected(isSelected);
                key = SortType.monthElectricitySort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
            }
        });
        //点击设备
        deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
            @Override
            public void onClick(int position, DeviceBean deviceBean) {
            }
        });
        //设备设置下拉箭头颜色
        viewBinding.fragmentDeviceSrl.setColorSchemeResources(R.color.text_FF245EC3);
        //设备下拉读取
        viewBinding.fragmentDeviceSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                viewBinding.fragmentDeviceSrl.setRefreshing(false);
                loadNextPageDeviceList(false, 1, true);
            }
        });
        //设备上拉读取
        viewBinding.fragmentDeviceSrlListRc.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
//                super.onScrolled(recyclerView, dx, dy);
                LinearLayoutManager layoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                if (layoutManager == null) {
                    return;
                }
                int visibleItemCount = layoutManager.getChildCount();
                int totalItemCount = layoutManager.getItemCount();
                int firstVisibleItemPosition = layoutManager.findFirstVisibleItemPosition();
                if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
                    if (!isDeviceLoadingMore) {
                        // 滑动到了底部,执行相应的操作
                        HdlLogLogic.print("--->滑动到了底部");
                        loadNextPageDeviceList(false, ++currentDeviceListPage, false);
                    }
                }
            }
        });
@@ -260,20 +356,30 @@
    private void initView() {
        viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
        viewBinding.deviceLabelParent.setVisibility(View.GONE);
        LinearLayoutManager linearLayout = new LinearLayoutManager(_mActivity);
        //电站标签
        houseInfoAdapter = new HouseInfoAdapter(_mActivity);
        viewBinding.fragmentHouseSrlListRc.setLayoutManager(linearLayout);
        viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
        viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
        houseInfoAdapter.setList(this.houseListBeanIDList);
        this.nullDataUpdateUi(houseListBeanIDList);
        //设备标签
        deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
        viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
        viewBinding.fragmentDeviceSrlListRc.setAdapter(deviceInfoAdapter);
        this.nullDataUpdateUi();
    }
    private void initData() {
        this.houseListBeanIDList = new ArrayList<>();
        this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
        if (isClickPowerStationLabel) {
            this.houseListBeanIDList = new ArrayList<>();
            this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
        } else {
            this.deviceInfoList = new ArrayList<>();
            this.deviceInfoList.add(new DeviceBean());
//            this.deviceInfoList.addAll(HdlDeviceLogic.getInstance().getListDevice());
        }
    }
    /**
@@ -287,7 +393,7 @@
        if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(eventBus.getTopic())) {
            if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) {
                //uin创建电站成功后通知
                downReadData(false);
                loadNextPageHouseList(false, 1, true);
                if (eventBus.getData() != null) {
                    Gson gson = new Gson();
                    String json = eventBus.getData().toString();
@@ -326,7 +432,7 @@
            if (MqttRecvClient.getInstance() != null) {
                MqttRecvClient.getInstance().removeAllTopic();
            }
            downReadData(false);
            loadNextPageHouseList(false, 1, true);
        } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
            //进去住宅详情uni读取逆变器列表成功后通知
@@ -341,41 +447,55 @@
            //接收外部点击事件
            if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) {
                HdlLogLogic.print("正在点击【电站】");
                initData();//初始化缓存数据
                houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表
                loadNextPageHouseList(true, 1, true);
            }
        }
    }
    /**
     * 刷新UI
     * 刷新UI(电站)
     *
     * @param isRefreshing 表示是下拉刷新的
     */
    private void downReadData(boolean isRefreshing) {
    private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) {
        if (isClear) {
            clearData();
        }
        //第一页读取数据强制读取
        if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) {
            --currentHouseListPage;
            //当前页不能大于总页数
            return;
        }
        isHouseLoadingMore = true;//标记读取状态
        if (isRefreshing) {
            showLoading();
        }
        //获取住宅(电站)ID列表
        HdlResidenceLogic.getInstance().getResidenceIdList("", "", new CloudCallBeak<List<HouseIdBean>>() {
        HdlResidenceLogic.getInstance().getResidenceIdList(key, value, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
            @Override
            public void onSuccess(List<HouseIdBean> list) {
            public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) {
                HdlThreadLogic.runMainThread(new Runnable() {
                    @Override
                    public void run() {
                        if (isRefreshing) {
                            //关闭下拉刷新的圈圈
                            viewBinding.fragmentHouseSrl.setRefreshing(false);
                            hideLoading();
                        }
                        if (list != null && list.size() > 0) {
                        isHouseLoadingMore = false;
                        if (houseBeanClass != null) {
                            currentHouseListTotal = (int) houseBeanClass.getTotalPage();
                            currentHouseListPage = (int) houseBeanClass.getPageNo();
                            //更新缓存
                            HdlResidenceLogic.getInstance().setHouseIdList(list);
                            HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList());
                            if (houseInfoAdapter != null) {
                                initData();
                                //更新UI
                                houseInfoAdapter.setList(houseListBeanIDList);
                            }
                        }
                        nullDataUpdateUi(list);
                        nullDataUpdateUi();
                    }
                }, _mActivity, ShowErrorMode.YES);
@@ -386,9 +506,12 @@
                HdlThreadLogic.runMainThread(new Runnable() {
                    @Override
                    public void run() {
                        if (currentHouseListPage > 1) {
                            --currentHouseListPage;
                        }
                        isHouseLoadingMore = false;
                        if (isRefreshing) {
                            //关闭下拉刷新的圈圈
                            viewBinding.fragmentHouseSrl.setRefreshing(false);
                            hideLoading();
                        }
                    }
@@ -397,6 +520,166 @@
        });
    }
    /**
     * 刷新UI(设备)
     *
     * @param isRefreshing 表示是下拉刷新的
     * @param pageNo       页码
     * @param isClear      true表示清空缓存
     */
    private void loadNextPageDeviceList(boolean isRefreshing, long pageNo, boolean isClear) {
        if (isClear) {
            clearData();
        }
        //第一页读取数据强制读取
        if (pageNo > 1 && currentDeviceListPage > currentDeviceListTotal) {
            --currentDeviceListPage;
            //当前页不能大于总页数
            return;
        }
        isDeviceLoadingMore = true;//标记读取状态
        if (isRefreshing) {
            showLoading();
        }
        //获取住宅(电站)ID列表
        HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<DeviceBean>>() {
            @Override
            public void onSuccess(PageNumberObject<DeviceBean> pageNumberObject) {
                HdlThreadLogic.runMainThread(new Runnable() {
                    @Override
                    public void run() {
                        if (isRefreshing) {
                            hideLoading();
                        }
                        isDeviceLoadingMore = false;
                        if (pageNumberObject != null) {
                            currentDeviceListTotal = (int) pageNumberObject.getTotalPage();
                            currentDeviceListPage = (int) pageNumberObject.getPageNo();
                            //更新缓存
                            HdlDeviceLogic.getInstance().setListDevice(pageNumberObject.getList());
                            //更新缓存
                            if (deviceInfoAdapter != null) {
                                initData();
                                //更新UI
                                deviceInfoAdapter.setList(deviceInfoList);
                            }
                        }
                        nullDataUpdateUi();
                    }
                }, _mActivity, ShowErrorMode.YES);
            }
            @Override
            public void onFailure(HDLException e) {
                HdlThreadLogic.runMainThread(new Runnable() {
                    @Override
                    public void run() {
                        if (currentDeviceListPage > 1) {
                            --currentDeviceListPage;
                        }
                        isDeviceLoadingMore = false;
                        if (isRefreshing) {
                            hideLoading();
                        }
                    }
                }, _mActivity, ShowErrorMode.YES);
            }
        });
    }
    /**
     * 清空缓存数据
     */
    private void clearData() {
        if (isClickPowerStationLabel) {
            currentHouseListPage = 0;// 重置当前电站列表页码
            currentHouseListTotal = 0;// 重置当前电站列表总页码
            if (houseListBeanIDList != null) {
                houseListBeanIDList.clear(); //清空临时缓存列表
            }
            HdlResidenceLogic.getInstance().clearHouseList(); //表示强制清空所有缓存信息
        } else {
            currentDeviceListPage = 0; // 重置当前设备列表页码
            currentDeviceListTotal = 0; // 重置设备列表总页码
            if (deviceInfoList != null) {
                deviceInfoList.clear();//清空临时缓存列表
            }
            HdlDeviceLogic.getInstance().clearDeviceList(); //表示强制清空所有缓存信息
        }
    }
    /**
     * 没有电站列表的样式
     */
    private void nullDataUpdateUi() {
        boolean is_data;
        if (isClickPowerStationLabel) {
            is_data = houseListBeanIDList != null && houseListBeanIDList.size() > 0;
        } else {
            is_data = deviceInfoList != null && deviceInfoList.size() > 0;
        }
        HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), is_data);
    }
    /**
     * 删除电站,逆变器
     * (开始删除电站,同时,向逆变器发送初始化逆变器指令,无须处理结果)
     *
     * @param list 设备列表
     */
    private void initializeInverter(List<GatewayBean> list) {
        if (list == null || list.size() == 0) {
            return;
        }
        for (int i = 0; i < list.size(); i++) {
            GatewayBean gatewayBean = list.get(i);
            HdlDeviceLogic.getInstance().initializeGateway(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
                @Override
                public void onSuccess(Boolean obj) {
//                                HdlLogLogic.print("初始化逆变器成功-->mac:" + cloudInverterDeviceBean.getOsn(),true);
                }
                @Override
                public void onError(HDLLinkException e) {
//                                HdlLogLogic.print("初始化逆变器失败-->mac:" + cloudInverterDeviceBean.getOsn(),true);
                }
            });
        }
    }
    /**
     * 删除电站
     *
     * @param homeId 电站id
     * @param list   逆变器列表
     */
    private void deleteResidence(String homeId, List<GatewayBean> list) {
        //删除住宅
        HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                hideLoading();
                //发起初始化指令给逆变器;
                initializeInverter(list);
                HdlResidenceLogic.getInstance().delHouseId(homeId);
                initData();//初始化缓存数据
                houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表
                nullDataUpdateUi();//检测数据是否为空
            }
            @Override
            public void onFailure(HDLException e) {
                hideLoading();
                HdlThreadLogic.toast(_mActivity, e);
            }
        });
    }
    /**
     * 申请权限
@@ -446,69 +729,6 @@
        void failing();
    }
    /**
     * 没有电站列表的样式
     */
    private void nullDataUpdateUi(List<HouseIdBean> list) {
        HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity, viewBinding.nullDataIc.getRoot(), viewBinding.nullDataIc.nullDataGifAnimationIv, viewBinding.nullDataIc.nullDataTv, getString(R.string.my_power_station_data_null), list != null && list.size() > 0);
    }
    /**
     * 删除电站,逆变器
     * (开始删除电站,同时,向逆变器发送初始化逆变器指令,无须处理结果)
     *
     * @param list 设备列表
     */
    private void initializeInverter(List<GatewayBean> list) {
        if (list == null || list.size() == 0) {
            return;
        }
        for (int i = 0; i < list.size(); i++) {
            GatewayBean gatewayBean = list.get(i);
            HdlDeviceLogic.getInstance().initializeGateway(gatewayBean.getDevice_mac(), new LinkCallBack<Boolean>() {
                @Override
                public void onSuccess(Boolean obj) {
//                                HdlLogLogic.print("初始化逆变器成功-->mac:" + cloudInverterDeviceBean.getOsn(),true);
                }
                @Override
                public void onError(HDLLinkException e) {
//                                HdlLogLogic.print("初始化逆变器失败-->mac:" + cloudInverterDeviceBean.getOsn(),true);
                }
            });
        }
    }
    /**
     * 删除电站
     *
     * @param homeId 电站id
     * @param list   逆变器列表
     */
    private void deleteResidence(String homeId, List<GatewayBean> list) {
        //删除住宅
        HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                hideLoading();
                //发起初始化指令给逆变器;
                initializeInverter(list);
                HdlResidenceLogic.getInstance().delHouseId(homeId);
                initData();//初始化缓存数据
                houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表
                nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
            }
            @Override
            public void onFailure(HDLException e) {
                hideLoading();
                HdlThreadLogic.toast(_mActivity, e);
            }
        });
    }