From b75795836a851a13e54cc4efb597262fb448217c Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期三, 08 五月 2024 15:22:01 +0800 Subject: [PATCH] 2024年05月08日15:21:54 --- app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java | 21 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java | 30 +- app/src/main/AndroidManifest.xml | 3 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java | 393 ++++++++++++++++++++++++++++++ app/src/main/res/layout/activity_device_search.xml | 168 ++++++++++++ app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 12 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java | 103 +++++++ app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 9 8 files changed, 709 insertions(+), 30 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7d121ee..f6c3993 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -77,6 +77,9 @@ android:supportsRtl="true" android:theme="@style/Theme.PhotovoltaicDebug"> <activity + android:name=".ui.powerstation.DeviceSearchActivity" + android:exported="false" /> + <activity android:name=".ui.powerstation.HouseSearchActivity" android:exported="false" /> <activity diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java index 369ef0d..c866afe 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java @@ -2,17 +2,27 @@ import android.content.Context; import android.graphics.Bitmap; +import android.os.SystemClock; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import com.google.gson.JsonObject; import com.google.zxing.BarcodeFormat; import com.google.zxing.EncodeHintType; import com.google.zxing.common.BitMatrix; import com.google.zxing.qrcode.QRCodeWriter; +import com.hdl.linkpm.sdk.user.HDLLinkPMUser; +import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.utils.GlideUtils; +import org.json.JSONObject; + +import java.io.InputStream; +import java.io.OutputStream; +import java.net.InetSocketAddress; +import java.net.Socket; import java.util.Hashtable; /** @@ -122,4 +132,6 @@ } } + + } diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java index cb6edc7..1975031 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java @@ -10,6 +10,7 @@ import android.location.Location; import android.location.LocationManager; import android.os.IBinder; +import android.provider.Settings; import android.text.TextUtils; import androidx.core.app.ActivityCompat; @@ -68,9 +69,13 @@ import java.io.File; +import java.io.InputStream; +import java.io.OutputStream; import java.lang.reflect.Type; import java.math.BigDecimal; import java.math.RoundingMode; +import java.net.InetSocketAddress; +import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -278,18 +283,28 @@ } break; //褰撳墠wifi璇︽儏 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_INFO: { + case HDLUniMP.UNI_EVENT_REPLY_WIFI_PHONE_INFO: { if (callback != null) { uniCallbackData(mode_type, wifiUtils.getCurrentConnectWifiInfo(), callback); } } break; - //wifi杩炴帴 - case HDLUniMP.UNI_EVENT_REPLY_WIFI_CONNECT: { + //閰嶇疆WiFi淇℃伅缁欓�嗗彉鍣� + case HDLUniMP.UNI_EVENT_REPLY_WIFI_SET_DEVICE: { + String mac = getKeyValue("mac", getKeyValue("data", data));// + String wif_type = getKeyValue("wif_type", getKeyValue("data", data));//1锛氱儹鐐�,2锛氭棤绾縲ifi,3锛氫互澶綉 + String ssid = getKeyValue("ssid", getKeyValue("data", data));// + String password = getKeyValue("password", getKeyValue("data", data));// + startTcpThreadSendAccountAndPassword(mode_type, ssid, password, callback); } break; - + //鎵撳紑鎵嬫満Wifi璁剧疆鐣岄潰 + case HDLUniMP.UNI_EVENT_REPLY_OPEN_WIFI_SETTINGS: { + Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS); + HDLApp.getInstance().startActivity(intent); + } + break; } } else if (HDLUniMP.UNI_EVENT_REPLY_OTA_MODEL.equals(topic)) { //OTA鍗囩骇妯″潡 @@ -1629,6 +1644,84 @@ /** + * 鍙戦�佽处鍙峰拰瀵嗙爜缁欓�嗗彉鍣� + * + * @param ssid 璐﹀彿 + * @param password 瀵嗙爜 + * @param callback uni鍥炶皟 + */ + public void startTcpThreadSendAccountAndPassword(String type, String ssid, String password, DCUniMPJSCallback callback) { + new Thread( + () -> { + Socket socket = null; + OutputStream outputStreamTcp = null; + InputStream inputStreamTcp = null; + try { + socket = new Socket(); + socket.setTcpNoDelay(true); + socket.setSoTimeout(10 * 1000);//10绉掕秴鏃� + socket.connect(new InetSocketAddress("192.168.8.1", 8586)); + socket.setKeepAlive(true); +// logMessage("tcp杩炴帴鐘舵�佹垚鍔�", 0, ""); + outputStreamTcp = socket.getOutputStream(); + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("id", "102030"); + jsonObject.addProperty("ssid", ssid); + jsonObject.addProperty("password", password); + jsonObject.addProperty("server_addr", HDLLinkPMUser.getInstance().getHomeRegionUrl()); + jsonObject.addProperty("homeId", UserConfigManage.getInstance().getHomeId()); + String sendData = "Topic:/user/id/custom/wifi/set\r\n"; + sendData += "Length:" + jsonObject.toString().getBytes().length + "\r\n\r\n"; + sendData += jsonObject.toString(); + outputStreamTcp.write(sendData.getBytes()); + outputStreamTcp.flush(); + Thread.sleep(200); + inputStreamTcp = socket.getInputStream(); + byte[] bytes = new byte[1204 * 2]; + int len = inputStreamTcp.read(bytes); + if (len != -1) { + String str = new String(bytes, 0, bytes.length); + String[] strings = str.split("\r\n\r\n"); + String[] topicAndLength = strings[0].split("\r\n"); + String topic = topicAndLength[0]; + JSONObject json = new JSONObject(strings[1]); +// logMessage("tcp鍥炲鏁版嵁", 0, strings[0] + "\r\n" + json.toString()); + if (topic.endsWith("wifi/set_reply") || topic.endsWith("wifi/result/notify")) { + if (callback != null) { + uniCallbackData(type, json, callback); + } + if (json.has("mac")) { //鍥炲鎴愬姛鍐嶆嬁璁惧mac +// this.device_mac = json.getString("mac"); +// this.isSucceedTcp = true;//琛ㄧず鎴愬姛 + } + } + } + + } catch (Exception ignored) { + } finally { + try { + if (outputStreamTcp != null) { + outputStreamTcp.close(); + outputStreamTcp = null; + } + if (inputStreamTcp != null) { + inputStreamTcp.close(); + inputStreamTcp = null; + } + if (socket != null) { + socket.close(); + socket = null; + } + + } catch (Exception ignored) { + } + } + } + ).start(); + } + + + /** * 鍙戦�乵odbus鍗忚鏁版嵁 * 閫忎紶鍗忚 * 涓嬪彂涓婚锛�/user/${gw_id}/custom/native/${driver}/down; @@ -1731,7 +1824,7 @@ HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean(); try { uniCallBackBaseBean.setCode(code); - uniCallBackBaseBean.setMes(msg); + uniCallBackBaseBean.setMsg(msg); uniCallBackBaseBean.setData(obj); if (callback != null) { callback.invoke(getJSONObject(uniCallBackBaseBean)); diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java new file mode 100644 index 0000000..564b02a --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/DeviceSearchActivity.java @@ -0,0 +1,393 @@ +package com.hdl.photovoltaic.ui.powerstation; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; + +import android.os.Bundle; +import android.text.Editable; +import android.text.TextUtils; +import android.text.TextWatcher; +import android.view.View; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.hdl.linkpm.sdk.core.exception.HDLException; +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.base.CustomBaseActivity; +import com.hdl.photovoltaic.bean.PageNumberObject; +import com.hdl.photovoltaic.databinding.ActivityDeviceSearchBinding; +import com.hdl.photovoltaic.enums.ShowErrorMode; +import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.other.HdlDeviceLogic; +import com.hdl.photovoltaic.other.HdlFileLogic; +import com.hdl.photovoltaic.other.HdlLogLogic; +import com.hdl.photovoltaic.other.HdlThreadLogic; +import com.hdl.photovoltaic.ui.adapter.DeviceInfoAdapter; +import com.hdl.photovoltaic.ui.adapter.SearchDeviceAdapter; +import com.hdl.photovoltaic.ui.adapter.SearchHistoryAdapter; +import com.hdl.photovoltaic.ui.bean.DeviceBean; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * 璁惧鎼滅储鐣岄潰 + */ +public class DeviceSearchActivity extends CustomBaseActivity { + + + private ActivityDeviceSearchBinding viewBinding; + + SearchDeviceAdapter searchDeviceAdapter;//璁惧閫傞厤鍣� + SearchHistoryAdapter searchHistoryAdapter;//鍘嗗彶璁板綍閫傞厤鍣� + + private List<DeviceBean> deviceList = new ArrayList<>(); + + private int currentHouseListPage = 0; // 褰撳墠鐢电珯鍒楄〃椤电爜 + private int currentHouseListTotal = 0; // 鐢电珯鍒楄〃鎬婚〉鐮� + private boolean isHouseLoadingMore = false; // 鏍囪鐢电珯鍒楄〃姝e湪鍔犺浇鏇村鏁版嵁 + + private String currSearchText; + + List<String> searchHistoryTitleList = new ArrayList<>(); + + @Override + public Object getContentView() { + viewBinding = ActivityDeviceSearchBinding.inflate(getLayoutInflater()); + return viewBinding.getRoot(); + } + + @Override + public void onBindView(Bundle savedInstanceState) { + setStatusBarTranslucent(); + //鍘嗗彶璁板綍鏂囦欢澶瑰垱寤� + HdlFileLogic.getInstance().createFileDir(HdlFileLogic.getInstance().getCurrentUserRootPath()); + //鍒濆鍖栨暟鎹� + initData(); + //鍒濆鍖� + initView(); + //鍒濆鍖栫晫闈㈢洃鍚櫒 + initEvent(); + } + + private void initData() { + try { + String json = HdlFileLogic.getInstance().readFile(getHistoryFileNamePath()); + if (TextUtils.isEmpty(json)) { + return; + } + searchHistoryTitleList = new Gson().fromJson(json, new TypeToken<List<String>>() { + }.getType()); + } catch (Exception ignored) { + } + } + + + private void initEvent() { + + //鍚庨�� + viewBinding.backRl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + viewBinding.powerStationSearchEt.addTextChangedListener(textWatcher); + + + //鎼滅储 + viewBinding.powerStationSearchTv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //鎼滅储鍏抽敭瀛� + currSearchText = viewBinding.powerStationSearchEt.getText().toString().replace(" ", ""); + if (TextUtils.isEmpty(currSearchText)) { + HdlThreadLogic.toast(_mActivity, R.string.search_content_null); + return; + } + viewBinding.historyListParent.setVisibility(View.GONE); + viewBinding.listParent.setVisibility(View.VISIBLE); + 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 + public void onClick(View v) { + currSearchText = ""; + viewBinding.powerStationSearchEt.setText(""); + viewBinding.historyListParent.setVisibility(View.VISIBLE); + viewBinding.listParent.setVisibility(View.GONE); + searchHistoryAdapter.setList(searchHistoryTitleList); + clearData(); + } + }); + //鍒犻櫎 + viewBinding.powerStationDelIv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + searchHistoryTitleList = new ArrayList<>(); + searchHistoryAdapter.setList(searchHistoryTitleList); + HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); + } + }); + //鍘嗗彶璁板綍鐐瑰嚮浜嬩欢 + searchHistoryAdapter.setOnclickListener(new SearchHistoryAdapter.OnClickListener() { + @Override + public void onClick(int position, String title) { + viewBinding.powerStationSearchEt.setText(title); + } + }); + //鐢电珯鐐瑰嚮鏄簨浠� + searchDeviceAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() { + @Override + public void onClick(int position, DeviceBean deviceBean) { + + } + }); + + } + + private void initView() { + viewBinding.historyListParent.setVisibility(View.VISIBLE); + viewBinding.listParent.setVisibility(View.GONE); + viewBinding.powerStationClearIv.setVisibility(View.GONE); + //鍒濆鍖栧巻鍙茶褰曢�傞厤鍣� + searchHistoryAdapter = new SearchHistoryAdapter(_mActivity); + viewBinding.historyListRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); + viewBinding.historyListRcv.setAdapter(searchHistoryAdapter); + searchHistoryAdapter.setList(searchHistoryTitleList); + //鍒濆鍖栫數绔欓�傞厤鍣� + searchDeviceAdapter = new SearchDeviceAdapter(_mActivity); + viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); + viewBinding.listRcv.setAdapter(searchDeviceAdapter); + } + + + /** + * 杈撳叆鐢电珯鍚嶇О杩涜杩囨护 + */ + private final TextWatcher textWatcher = new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + } + + @Override + public void afterTextChanged(Editable s) { + String et = viewBinding.powerStationSearchEt.getText().toString().replace(" ", ""); + if (TextUtils.isEmpty(et)) { + viewBinding.powerStationClearIv.setVisibility(View.GONE); + } else { + viewBinding.powerStationClearIv.setVisibility(View.VISIBLE); + } + viewBinding.powerStationSearchEt.setSelection(viewBinding.powerStationSearchEt.length()); + + } + }; + + /** + * 鐗╃悊鎸夐敭杩斿洖浜嬩欢 + */ + @Override + public void onBackPressed() { + super.onBackPressed(); + } + + @Override + protected void onDestroy() { + viewBinding.powerStationSearchEt.removeTextChangedListener(textWatcher); + if (searchHistoryTitleList.size() > 0) { + HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); + HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList)); + } + super.onDestroy(); + } + + /** + * 鍒锋柊UI锛堣澶囷級 + * + * @param isRefreshing 琛ㄧず鏄笅鎷夊埛鏂扮殑 + */ + private void loadNextPageHouseList(boolean isRefreshing, long pageNo, boolean isClear) { + + //鎼滅储鍏抽敭瀛� + if (TextUtils.isEmpty(currSearchText)) { + return; + } + + if (isClear) { + clearData(); + } + //绗竴椤佃鍙栨暟鎹己鍒惰鍙� + if (pageNo > 1 && currentHouseListPage > currentHouseListTotal) { + --currentHouseListPage; + //褰撳墠椤典笉鑳藉ぇ浜庢�婚〉鏁� + return; + } + isHouseLoadingMore = true;//鏍囪璇诲彇鐘舵�� + if (isRefreshing) { + showLoading(); + } + + //鑾峰彇浜戠涓婅澶囧垪琛� + HdlDeviceLogic.getInstance().getPowerStationDeviceList(currSearchText, pageNo, 20, new CloudCallBeak<PageNumberObject<DeviceBean>>() { + @Override + public void onSuccess(PageNumberObject<DeviceBean> deviceClass) { + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + if (isRefreshing) { + hideLoading(); + } + isHouseLoadingMore = false; + if (deviceClass != null) { + currentHouseListTotal = (int) deviceClass.getTotalPage(); + currentHouseListPage = (int) deviceClass.getPageNo(); + //鏇存柊缂撳瓨 + setDeviceList(deviceClass.getList()); + if (searchDeviceAdapter != null) { + initData(); + //鏇存柊UI + searchDeviceAdapter.setList(deviceList); + } + } + } + }, _mActivity, ShowErrorMode.YES); + + } + + @Override + public void onFailure(HDLException e) { + HdlThreadLogic.runMainThread(new Runnable() { + @Override + public void run() { + if (currentHouseListPage > 1) { + --currentHouseListPage; + } + isHouseLoadingMore = false; + if (isRefreshing) { + hideLoading(); + } + + } + }, _mActivity, ShowErrorMode.YES); + } + }); + } + + private void clearData() { + if (deviceList != null && deviceList.size() > 0) { + deviceList.clear(); + } + } + + public void setDeviceList(List<DeviceBean> list) { + if (list == null || list.size() == 0) { + return; + } + if (this.deviceList.size() == 0) { + this.deviceList.addAll(list); + return; + } + for (int i = 0; i < list.size(); i++) { + this.setSingleDevice(list.get(i)); + } + } + + /** + * 娣诲姞璁惧鍒板垪琛ㄩ噷闈� + * + * @param deviceBean -璁惧瀵硅薄 + */ + public void setSingleDevice(DeviceBean deviceBean) { + try { + if (deviceBean == null) { + return; + } + boolean if_boolean = false; + for (int i = 0; i < deviceList.size(); i++) { + if (deviceList.get(i).getHomeId().equals(deviceBean.getHomeId())) { + //瀛樺湪鏇挎崲 + deviceList.remove(i); + deviceList.add(i, deviceBean); + if_boolean = true; + break; + } + } + if (!if_boolean) { + //娌℃湁娣诲姞 + this.deviceList.add(deviceBean); + } + } catch (Exception e) { + String mes = e.getMessage(); + HdlLogLogic.print("--->" + mes); + } + } + + /** + * 娣诲姞鍘嗗彶璁板綍 + */ + private void addSearchTextToList() { + for (int i = 0; i < searchHistoryTitleList.size(); i++) { + if (searchHistoryTitleList.get(i).equals(currSearchText)) { + searchHistoryTitleList.remove(searchHistoryTitleList.get(i)); + } + } + searchHistoryTitleList.add(currSearchText); + // 鍊掑簭鎺掑垪鏁版嵁(鎼滅储鏈�鍚庢帓鍦ㄥ墠闈�) + Collections.reverse(searchHistoryTitleList); + if (searchHistoryTitleList.size() > 10) { + //鍘嗗彶璁板綍涓嶈兘瓒呭嚭10 + searchHistoryTitleList.remove(searchHistoryTitleList.get(11)); + } + + } + + /** + * 鑾峰彇銆愭悳绱㈠巻鍙茶褰曟枃浠躲�戝叏璺緞 + */ + public String getHistoryFileNamePath() { + return HdlFileLogic.getInstance().getCurrentUserRootPath() + "/house_device.txt"; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java index ec46796..0c4b333 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java @@ -369,6 +369,15 @@ } } }); + //璁惧娣绘悳绱� + viewBinding.deviceSearchCl.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(); + intent.setClass(_mActivity, DeviceSearchActivity.class); + startActivity(intent); + } + }); } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java index 2131a6f..a84f2c0 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseSearchActivity.java @@ -51,7 +51,7 @@ private String currSearchText; - List<String> SearchHistoryTitleList = new ArrayList<>(); + List<String> searchHistoryTitleList = new ArrayList<>(); @Override public Object getContentView() { @@ -78,7 +78,7 @@ if (TextUtils.isEmpty(json)) { return; } - SearchHistoryTitleList = new Gson().fromJson(json, new TypeToken<List<String>>() { + searchHistoryTitleList = new Gson().fromJson(json, new TypeToken<List<String>>() { }.getType()); } catch (Exception ignored) { } @@ -153,7 +153,7 @@ viewBinding.powerStationSearchEt.setText(""); viewBinding.historyListParent.setVisibility(View.VISIBLE); viewBinding.listParent.setVisibility(View.GONE); - searchHistoryAdapter.setList(SearchHistoryTitleList); + searchHistoryAdapter.setList(searchHistoryTitleList); clearData(); } }); @@ -161,8 +161,8 @@ viewBinding.powerStationDelIv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - SearchHistoryTitleList = new ArrayList<>(); - searchHistoryAdapter.setList(SearchHistoryTitleList); + searchHistoryTitleList = new ArrayList<>(); + searchHistoryAdapter.setList(searchHistoryTitleList); HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); } }); @@ -191,7 +191,7 @@ searchHistoryAdapter = new SearchHistoryAdapter(_mActivity); viewBinding.historyListRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); viewBinding.historyListRcv.setAdapter(searchHistoryAdapter); - searchHistoryAdapter.setList(SearchHistoryTitleList); + searchHistoryAdapter.setList(searchHistoryTitleList); //鍒濆鍖栫數绔欓�傞厤鍣� searchHouseAdapter = new SearchHouseAdapter(_mActivity); viewBinding.listRcv.setLayoutManager(new LinearLayoutManager(_mActivity)); @@ -236,9 +236,9 @@ @Override protected void onDestroy() { viewBinding.powerStationSearchEt.removeTextChangedListener(textWatcher); - if (SearchHistoryTitleList.size() > 0) { + if (searchHistoryTitleList.size() > 0) { HdlFileLogic.getInstance().deleteFile(getHistoryFileNamePath()); - HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(SearchHistoryTitleList)); + HdlFileLogic.getInstance().appendFile(getHistoryFileNamePath(), new Gson().toJson(searchHistoryTitleList)); } super.onDestroy(); } @@ -368,17 +368,17 @@ * 娣诲姞鍘嗗彶璁板綍 */ private void addSearchTextToList() { - for (int i = 0; i < SearchHistoryTitleList.size(); i++) { - if (SearchHistoryTitleList.get(i).equals(currSearchText)) { - SearchHistoryTitleList.remove(SearchHistoryTitleList.get(i)); + for (int i = 0; i < searchHistoryTitleList.size(); i++) { + if (searchHistoryTitleList.get(i).equals(currSearchText)) { + searchHistoryTitleList.remove(searchHistoryTitleList.get(i)); } } - SearchHistoryTitleList.add(currSearchText); + searchHistoryTitleList.add(currSearchText); // 鍊掑簭鎺掑垪鏁版嵁(鎼滅储鏈�鍚庢帓鍦ㄥ墠闈�) - Collections.reverse(SearchHistoryTitleList); - if (SearchHistoryTitleList.size() > 10) { + Collections.reverse(searchHistoryTitleList); + if (searchHistoryTitleList.size() > 10) { //鍘嗗彶璁板綍涓嶈兘瓒呭嚭10 - SearchHistoryTitleList.remove(SearchHistoryTitleList.get(11)); + searchHistoryTitleList.remove(searchHistoryTitleList.get(11)); } } diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java index fe46256..9c08e08 100644 --- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java +++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java @@ -97,8 +97,9 @@ /*********Wifi妯″潡*********/ //鍗敠瀹氫箟 public final static String UNI_EVENT_REPLY_WIFI_MODEL = "uni_wifi_model";//wifi妯″潡(澶х被) public final static String UNI_EVENT_REPLY_WIFI_LIST = "list";//鑾峰彇wifi鍒楄〃 - public final static String UNI_EVENT_REPLY_WIFI_INFO = "info";//鑾峰彇褰撳墠wifi淇℃伅 - public final static String UNI_EVENT_REPLY_WIFI_CONNECT = "connect";//杩炴帴wifi + public final static String UNI_EVENT_REPLY_WIFI_PHONE_INFO = "wifi_phone_info";//鑾峰彇褰撳墠wifi淇℃伅 + public final static String UNI_EVENT_REPLY_WIFI_SET_DEVICE = "wifi_set_device";//璁剧疆wifi缁欒澶� + public final static String UNI_EVENT_REPLY_OPEN_WIFI_SETTINGS = "open_wifi_settings";//璋冪敤鎵撳紑鎵嬫満Wifi璁剧疆鐣岄潰 //endregion //region --------銆愬師鐢熴�戜富鍔ㄥ彂閫佸埌銆愬皬绋嬪簭銆�-------- @@ -135,18 +136,18 @@ public static class UniCallBackBaseBean implements Serializable { private int code;//鐘舵�佺爜 - private String mes;//淇℃伅鎻忚堪 + private String msg;//淇℃伅鎻忚堪 private String type;//鍔熻兘绫诲瀷 private Object data;//闄勫姞json鏁版嵁 - public UniCallBackBaseBean(int code, String mes) { + public UniCallBackBaseBean(int code, String msg) { this.code = code; - this.mes = mes; + this.msg = msg; } public UniCallBackBaseBean() { this.code = 0; - this.mes = "鎴愬姛"; + this.msg = "鎴愬姛"; } @@ -158,12 +159,12 @@ this.code = code; } - public String getMes() { - return mes == null ? "" : mes; + public String getMsg() { + return msg == null ? "" : msg; } - public void setMes(String mes) { - this.mes = mes; + public void setMsg(String msg) { + this.msg = msg; } public Object getData() { diff --git a/app/src/main/res/layout/activity_device_search.xml b/app/src/main/res/layout/activity_device_search.xml new file mode 100644 index 0000000..bf4544d --- /dev/null +++ b/app/src/main/res/layout/activity_device_search.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="utf-8"?> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/text_F5F7FA" + tools:context=".ui.powerstation.DeviceSearchActivity"> + + <!--鎼滅储--> + <RelativeLayout + android:id="@+id/power_station_search_cl" + android:layout_width="match_parent" + android:layout_height="@dimen/dp_35" + android:layout_marginTop="@dimen/dp_48" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <RelativeLayout + android:id="@+id/back_rl" + android:layout_width="@dimen/dp_50" + android:layout_height="match_parent"> + + <ImageView + android:id="@+id/power_station_back_iv" + android:layout_width="@dimen/dp_10" + android:layout_height="@dimen/dp_17" + android:layout_alignParentStart="true" + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/dp_16" + android:src="@drawable/search_back" /> + </RelativeLayout> + + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginStart="@dimen/dp_7" + android:layout_marginEnd="@dimen/dp_21" + android:layout_toStartOf="@+id/power_station_search_tv" + android:layout_toEndOf="@+id/back_rl" + android:background="@drawable/search_bj_ff05000000"> + + <ImageView + android:id="@+id/power_station_search_iv" + android:layout_width="@dimen/dp_18" + android:layout_height="@dimen/dp_18" + android:layout_alignParentStart="true" + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/dp_13" + android:src="@drawable/search_path" /> + + <EditText + android:id="@+id/power_station_search_et" + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_alignParentEnd="true" + android:layout_centerVertical="true" + android:layout_marginStart="@dimen/dp_11" + android:layout_marginEnd="@dimen/dp_40" + android:layout_toEndOf="@+id/power_station_search_iv" + android:background="@null" + android:gravity="start|center_vertical" + android:hint="Search the power station" + android:textColor="@color/text_90000000" + android:textColorHint="@color/text_40000000" + android:textSize="@dimen/text_14" /> + + <ImageView + android:id="@+id/power_station_clear_iv" + android:layout_width="@dimen/dp_20" + android:layout_height="@dimen/dp_20" + android:layout_alignParentEnd="true" + android:layout_centerVertical="true" + android:layout_marginEnd="@dimen/dp_13" + android:src="@drawable/clear" /> + </RelativeLayout> + + <TextView + android:id="@+id/power_station_search_tv" + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:layout_alignParentEnd="true" + android:layout_centerVertical="true" + android:layout_marginEnd="@dimen/dp_21" + android:gravity="center" + android:text="@string/search" + android:textColor="@color/text_90000000" + android:textSize="@dimen/text_16" /> + + + </RelativeLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/history_list_parent" + android:layout_width="match_parent" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl"> + + <TextView + android:id="@+id/history_list_title_tv" + android:layout_width="wrap_content" + android:layout_height="@dimen/dp_23" + android:layout_marginStart="@dimen/dp_16" + android:layout_marginTop="@dimen/dp_23" + android:layout_marginEnd="@dimen/dp_21" + android:text="@string/history_search" + android:textColor="@color/text_90000000" + android:textSize="@dimen/text_16" + android:textStyle="bold" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/power_station_del_iv" + android:layout_width="@dimen/dp_26" + android:layout_height="@dimen/dp_26" + android:layout_marginTop="@dimen/dp_21" + android:layout_marginEnd="@dimen/dp_16" + android:src="@drawable/history_del" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/history_list_rcv" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginTop="67dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/list_parent" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_marginTop="@dimen/dp_30" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/power_station_search_cl"> + + <androidx.swiperefreshlayout.widget.SwipeRefreshLayout + android:id="@+id/list_srl" + android:layout_width="match_parent" + android:layout_height="0dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/list_rcv" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + </androidx.swiperefreshlayout.widget.SwipeRefreshLayout> + + </androidx.constraintlayout.widget.ConstraintLayout> + +</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file -- Gitblit v1.8.0