| | |
| | | package com.hdl.photovoltaic.ui.powerstation; |
| | | |
| | | |
| | | import android.content.Context; |
| | | import android.os.AsyncTask; |
| | | import android.os.Bundle; |
| | | import android.os.Handler; |
| | | import android.os.Looper; |
| | | import android.text.Editable; |
| | | import android.text.TextUtils; |
| | | import android.text.TextWatcher; |
| | | import android.view.View; |
| | | import android.view.inputmethod.InputMethodManager; |
| | | |
| | | import androidx.annotation.NonNull; |
| | | import androidx.recyclerview.widget.LinearLayoutManager; |
| | |
| | | import com.hdl.photovoltaic.ui.bean.HouseIdBean; |
| | | import com.hdl.photovoltaic.uni.HDLUniMP; |
| | | import com.hdl.photovoltaic.utils.KeyboardStateObserverUtils; |
| | | import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout; |
| | | import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | |
| | | * 电站搜索界面 |
| | | */ |
| | | public class HouseSearchActivity extends CustomBaseActivity { |
| | | |
| | | private Handler handler; |
| | | private Runnable delayedRunnable; |
| | | private ActivityHouseSearchBinding viewBinding; |
| | | |
| | | SearchHistoryAdapter searchHistoryAdapter; |
| | |
| | | @Override |
| | | public void onBindView(Bundle savedInstanceState) { |
| | | setStatusBarTranslucent(); |
| | | getWindow().setNavigationBarColor(getColor(R.color.text_FF000000)); |
| | | //历史记录文件夹创建 |
| | | HdlFileLogic.getInstance().createFileDir(HdlFileLogic.getInstance().getCurrentUserRootPath()); |
| | | //初始化数据 |
| | |
| | | //初始化界面监听器 |
| | | initEvent(); |
| | | } |
| | | |
| | | |
| | | |
| | | private void initData() { |
| | | try { |
| | |
| | | } catch (Exception ignored) { |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 下拉刷新的逻辑 |
| | | */ |
| | | protected void pullToRefresh() { |
| | | viewBinding.listSrl.setDelegate(new BGARefreshLayout.BGARefreshLayoutDelegate() { |
| | | @Override |
| | | public void onBGARefreshLayoutBeginRefreshing(BGARefreshLayout refreshLayout) { |
| | | handler = new Handler(Looper.getMainLooper()); |
| | | |
| | | delayedRunnable = new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | viewBinding.listSrl.endRefreshing(); |
| | | loadNextPageHouseList(false, 1, true); |
| | | } |
| | | }; |
| | | // 延迟 5 秒执行 |
| | | handler.postDelayed(delayedRunnable, 1000); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public boolean onBGARefreshLayoutBeginLoadingMore(BGARefreshLayout refreshLayout) { |
| | | |
| | | handler = new Handler(Looper.getMainLooper()); |
| | | delayedRunnable = new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | viewBinding.listSrl.endLoadingMore(); |
| | | //加载最新数据完成 |
| | | if (!isHouseLoadingMore) { |
| | | // 滑动到了底部,执行相应的操作 |
| | | loadNextPageHouseList(false, ++currentHouseListPage, false); |
| | | } |
| | | } |
| | | }; |
| | | // 延迟 5 秒执行 |
| | | handler.postDelayed(delayedRunnable, 10); |
| | | |
| | | return true; |
| | | } |
| | | }); |
| | | HDLRefreshViewHolder hdlRefreshViewHolder = new HDLRefreshViewHolder(_mActivity, true); |
| | | hdlRefreshViewHolder.setPullDownImageResource(R.mipmap.loading_44); |
| | | hdlRefreshViewHolder.setChangeToReleaseRefreshAnimResId(R.drawable.loading_refresh); |
| | | hdlRefreshViewHolder.setRefreshingAnimResId(R.drawable.loading_refresh_end); |
| | | viewBinding.listSrl.setRefreshViewHolder(hdlRefreshViewHolder); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | private void initEvent() { |
| | |
| | | } |
| | | viewBinding.historyListParent.setVisibility(View.GONE); |
| | | viewBinding.listParent.setVisibility(View.VISIBLE); |
| | | viewBinding.powerStationSearchEt.clearFocus(); |
| | | hideSoftInputFromWindow(); |
| | | addSearchTextToList(); |
| | | loadNextPageHouseList(true, 1, true); |
| | | } |
| | | }); |
| | | |
| | | |
| | | //下拉箭头颜色 |
| | | viewBinding.listSrl.setColorSchemeResources(R.color.text_FF245EC3); |
| | | //下拉读取 |
| | | viewBinding.listSrl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { |
| | | @Override |
| | | public void onRefresh() { |
| | | viewBinding.listSrl.setRefreshing(false); |
| | | loadNextPageHouseList(true, 1, true); |
| | | } |
| | | }); |
| | | //上拉读取 |
| | | viewBinding.listRcv.addOnScrollListener(new RecyclerView.OnScrollListener() { |
| | | @Override |
| | | public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int 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); |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | //清除 |
| | | viewBinding.powerStationClearIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | |
| | | viewBinding.listParent.setVisibility(View.GONE); |
| | | viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE); |
| | | searchHistoryAdapter.setList(searchHistoryTitleList); |
| | | viewBinding.powerStationSearchEt.requestFocus(); |
| | | showSoftInput(); |
| | | clearData(); |
| | | } |
| | | }); |
| | |
| | | viewBinding.powerStationDelIv.setOnClickListener(new View.OnClickListener() { |
| | | @Override |
| | | public void onClick(View v) { |
| | | viewBinding.powerStationSearchEt.clearFocus(); |
| | | hideSoftInputFromWindow(); |
| | | searchHistoryTitleList = new ArrayList<>(); |
| | | searchHistoryAdapter.setList(searchHistoryTitleList); |
| | | viewBinding.deviceNullDataIc.getRoot().setVisibility(View.GONE); |
| | | HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); |
| | | |
| | | } |
| | | }); |
| | | //历史记录点击事件 |
| | |
| | | HdlThreadLogic.toast(_mActivity, R.string.search_content_null); |
| | | return; |
| | | } |
| | | viewBinding.powerStationSearchEt.clearFocus(); |
| | | hideSoftInputFromWindow(); |
| | | viewBinding.historyListParent.setVisibility(View.GONE); |
| | | viewBinding.listParent.setVisibility(View.VISIBLE); |
| | | addSearchTextToList(); |
| | | loadNextPageHouseList(true, 1, true); |
| | | |
| | | } |
| | | }); |
| | | //电站点击是事件 |
| | |
| | | public void onClick(int position, HouseIdBean houseIdBean) { |
| | | //点击住宅详情 |
| | | HdlLogLogic.print("点击住宅详情---" + new Gson().toJson(houseIdBean), false); |
| | | HdlResidenceLogic.getInstance().switchHouse(houseIdBean); |
| | | HdlResidenceLogic.getInstance().switchHouse(houseIdBean,true); |
| | | String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); |
| | | HdlUniLogic.getInstance().openUniMP(path, null); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 显示软键盘 |
| | | */ |
| | | public void showSoftInput() { |
| | | InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); |
| | | inputMethodManager.showSoftInput(viewBinding.powerStationSearchEt, 0); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 隐藏软键盘 |
| | | */ |
| | | public void hideSoftInputFromWindow() { |
| | | InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); |
| | | inputMethodManager.hideSoftInputFromWindow(viewBinding.getRoot().getWindowToken(), 0); |
| | | } |
| | | |
| | | private void initView() { |
| | |
| | | } |
| | | }); |
| | | |
| | | pullToRefresh(); |
| | | |
| | | //在界面中使用 |
| | | KeyboardStateObserverUtils.getKeyboardStateObserver(_mActivity).setKeyboardVisibilityListener(new KeyboardStateObserverUtils.OnKeyboardVisibilityListener() { |
| | | @Override |
| | | public void onKeyboardShow(int h) { |
| | | //Toast.makeText(MainActivity.this,"键盘弹出",Toast.LENGTH_SHORT).show(); |
| | | viewBinding.powerStationSearchEt.requestFocus(); |
| | | // viewBinding.powerStationSearchEt.requestFocus(); |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | }); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | if (searchHistoryTitleList.size() > 0) { |
| | | HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); |
| | | HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList)); |
| | | } |
| | | if (handler != null && delayedRunnable != null) { |
| | | handler.removeCallbacks(delayedRunnable); |
| | | } |
| | | super.onDestroy(); |
| | | } |
| | |
| | | public String getHistoryFileNamePath() { |
| | | return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/house_history.txt"; |
| | | } |
| | | |
| | | |
| | | } |