From 791f82dc46e14491116a87bd4aa84ade011ab4c6 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 15 一月 2024 14:30:58 +0800
Subject: [PATCH] 2024年01月15日14:30:41
---
app/src/main/res/layout/activity_message_info.xml | 12
app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java | 2
app/src/main/res/layout/null_data_view.xml | 31 +++
app/src/main/res/values/strings.xml | 4
app/src/main/java/com/hdl/photovoltaic/widget/MovieDrawable.java | 75 +++++++++
app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java | 42 ++++
app/src/main/res/drawable/null_data_icon.gif | 0
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 25 ++
app/src/main/java/com/hdl/photovoltaic/ui/adapter/LanguageAdapter.java | 8
app/src/main/res/layout/fragment_nascent_message.xml | 16 +
app/src/main/res/layout/home_bottom_line.xml | 20 +-
app/src/main/res/layout/fragment_recover_message.xml | 11 +
app/src/main/res/layout/fragment_house_list.xml | 19 +-
app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java | 16 -
app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java | 2
app/src/main/res/values-zh/strings.xml | 2
app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java | 102 +++++++++++-
app/src/main/res/values-en/strings.xml | 2
app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java | 44 +++++
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java | 22 ++
app/build.gradle | 4
21 files changed, 393 insertions(+), 66 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index 754b6ef..57003e8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -28,7 +28,7 @@
minSdk 23
targetSdk 30
versionCode 1
- versionName "1.1.3"//鐗堟湰瑙勫垯1.1鏄骇鍝佸姛鑳借凯浠g敤鐨�,鏈�鍚庝竴浣�1鏄垜浠慨澶峛ug鐢ㄧ殑
+ versionName "1.2.1"//鐗堟湰瑙勫垯1.2鏄骇鍝佸姛鑳借凯浠g敤鐨�,鏈�鍚庝竴浣�1鏄垜浠慨澶峛ug鐢ㄧ殑
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
manifestPlaceholders = mfph
@@ -136,7 +136,7 @@
implementation 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1'
//鍥剧墖鍔犺浇搴�
- implementation 'com.github.bumptech.glide:glide:4.12.0'
+ implementation 'com.github.bumptech.glide:glide:4.13.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
diff --git a/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java b/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java
index aed6caf..68f3b99 100644
--- a/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java
+++ b/app/src/main/java/com/hdl/photovoltaic/broadcast/NetworkChangeReceiver.java
@@ -21,7 +21,7 @@
@Override
public void onReceive(Context context, Intent intent) {
- //todo 宸茬粡鍦∟etworkUtils閲岄潰瀹炵幇
+ //todo 宸茬粡杞湪NetworkUtils閲岄潰瀹炵幇
// ConnectivityManager connectionManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo();
// if (networkInfo != null && networkInfo.isAvailable()) {
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index 669d131..68203ce 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -10,7 +10,7 @@
public static final String POST_Mqtt_GetRemoteInfo = "/home-wisdom/app/mqtt/getRemoteInfo";
//region -----璀︽姤娑堟伅涓績(浣忓畢)---------
//鑾峰彇鏈鐞嗘秷鎭暟閲�
- public static final String POST_Message_UntreatedCount = "/home-wisdom/app/powerStation/message/untreatedCount";
+ public static final String POST_Message_UntreatedCount = "/home-wisdom/app/powerStation/message/unCount";
//娑堟伅鍒楄〃
public static final String POST_Message_List = "/home-wisdom/app/powerStation/message/listByPage";
//鑾峰彇娑堟伅璇︽儏
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 00b8645..369ef0d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -1,14 +1,17 @@
package com.hdl.photovoltaic.other;
+import android.content.Context;
import android.graphics.Bitmap;
import android.text.TextUtils;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
-import com.dcloud.zxing2.WriterException;
-import com.google.gson.Gson;
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.photovoltaic.utils.GlideUtils;
import java.util.Hashtable;
@@ -100,5 +103,23 @@
}
}
+ /**
+ * 娌℃湁鏁版嵁鐣岄潰鐨勬牱寮�
+ *
+ * @param is_data true鏈夋暟鎹紝false娌℃暟鎹�
+ * @param parent 鐖跺鍣�
+ * @param imageView 鏄剧ずgif鎺т欢
+ * @param str 鎻忚堪鏂囨湰
+ */
+ public void nullDataUpdateUi(Context mContext, View parent, ImageView imageView, TextView textView, String str, boolean is_data) {
+ if (is_data) {
+ parent.setVisibility(View.GONE);
+ } else {
+ parent.setVisibility(View.VISIBLE);
+ GlideUtils.getDrawableGifAnimation(mContext, imageView);
+ textView.setText(str);
+
+ }
+ }
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/LanguageAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/LanguageAdapter.java
index 74423c9..ab1239d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/LanguageAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/LanguageAdapter.java
@@ -55,11 +55,15 @@
if (position == this.mList.size() - 1) {
holder.item_bottom_line_v.setVisibility(View.GONE);
}
+ holder.itemView.setTag(position);//鏍囪浣嶇疆
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- if (noOnclickListener != null) {
- noOnclickListener.onClick(holder.getAdapterPosition(), itemData);
+ try {
+ if (noOnclickListener != null) {
+ noOnclickListener.onClick((int) holder.itemView.getTag(), itemData);
+ }
+ } catch (Exception ignored) {
}
}
});
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
index 8efa489..c13e282 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/MessageFragment.java
@@ -3,12 +3,16 @@
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
+import android.widget.TextView;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.config.ConstantManage;
@@ -16,6 +20,7 @@
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
@@ -224,17 +229,8 @@
EventBus.getDefault().removeStickyEvent(eventBus);
postEventBus(MessageFunctionTabSwitch.nascent);
HdlLogLogic.print("姝e湪鐐瑰嚮銆愭秷鎭��");
- }
- } else if (eventBus.getTopic().equals(ConstantManage.message_count)) {
- if (eventBus.getType().equals(MessageStateType.untreated)) {
- String s = getText(R.string.message_nascent) + "(" + HdlMessageLogic.getInstance().getNascentMessageMemoryList().size() + ")";
- viewBinding.messageTabNascentTitleTv.setText(s);
- } else if (eventBus.getType().equals(MessageStateType.processed)) {
- String s = getText(R.string.message_recover) + "(" + HdlMessageLogic.getInstance().getRecoverMessageMemoryList().size() + ")";
- viewBinding.messageTabRecoverTitleTv.setText(s);
+
}
}
}
-
-
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
index 3388a68..b119560 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/NascentMessageFragment.java
@@ -4,12 +4,17 @@
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.base.CustomBaseFragment;
@@ -18,11 +23,14 @@
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.adapter.MessageAdapter;
+import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.bean.MessageBean;
+import com.hdl.photovoltaic.utils.GlideUtils;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
@@ -124,15 +132,30 @@
this.messageNascentAdapter.setList(mList);
this.messageNascentAdapter.notifyDataSetChanged();
}
+ //鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
+ this.refreshNascentCount();
+ this.nullDataUpdateUi();
- if (mList.size() > 0) {
- BaseEventBus baseEventBus = new BaseEventBus();
- baseEventBus.setTopic(ConstantManage.message_count);
- baseEventBus.setType(MessageStateType.untreated);
- baseEventBus.setData(mList.size());
- EventBus.getDefault().post(baseEventBus);
- }
+ }
+
+ /**
+ * 鍒锋柊銆愬彂鐢熶腑銆戜俊鎭暟閲忔�绘暟
+ */
+ private void refreshNascentCount() {
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ TextView textView = _mActivity.findViewById(R.id.message_tab_nascent_title_tv);
+ if (textView != null) {
+ textView.setText(getText(R.string.message_nascent));
+ if (mList.size() > 0) {
+ String s = getText(R.string.message_nascent) + "(" + mList.size() + ")";
+ textView.setText(s);
+ }
+ }
+ }
+ });
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
@@ -146,8 +169,10 @@
if (eventBus.getType().equals(MessageFunctionTabSwitch.nascent.toString())) {
initData();
getNascentMessageList(true);
+ getUnreadCount();
// 鍙栨秷绮樻�т簨浠�
EventBus.getDefault().removeStickyEvent(eventBus);
+
}
} else if (eventBus.getTopic().equals(ConstantManage.message_function_push_post)) {
@@ -155,6 +180,7 @@
//娑堟伅璇︽儏鍥炶皟
initData();
updateListData();
+ getUnreadCount();
}
}
}
@@ -162,7 +188,7 @@
/**
* 鑾峰彇鍙戠敓涓殑娑堟伅鍒楄〃
*
- * @param isShowLoading 鏄惁鍚姩 true鍚姩
+ * @param isShowLoading 鏄惁鍚姩鍔犺浇妗� true鍚姩
*/
private void getNascentMessageList(boolean isShowLoading) {
if (mList.size() == 0) {
@@ -222,4 +248,64 @@
// List<MessageBean> newData = HdlMessageLogic.getInstance().getAllMessageList();
// return newData;
// }
+
+ /**
+ * 璇诲彇娑堟伅銆愭湭璇绘暟閲忋��
+ */
+ private void getUnreadCount() {
+ HdlMessageLogic.getInstance().getMessageUntreatedCount(new CloudCallBeak<String>() {
+ @Override
+ public void onSuccess(String data) {
+
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ JSONObject jsonObject = JSON.parseObject(data);
+// if (jsonObject.containsKey("untreatedCount")) {
+// //鏈鐞嗘暟閲�
+// jsonObject.getString("untreatedCount");
+// }
+ String unreadCount = "0";
+ if (jsonObject.containsKey("unreadCount")) {
+ //鏈鏁伴噺
+ unreadCount = jsonObject.getString("unreadCount");
+ }
+ TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+ if (textView != null) {
+ if (TextUtils.isEmpty(unreadCount) || unreadCount.equals("0")) {
+ textView.setVisibility(View.GONE);
+ } else {
+ if (unreadCount.length() > 2) {
+ //澶т簬3浣嶆暟,榛樿99+
+ unreadCount = "99+";
+ }
+ textView.setVisibility(View.VISIBLE);
+ textView.setText(unreadCount);
+ }
+ }
+ }
+ });
+
+ }
+
+ @Override
+ public void onFailure(HDLException e) {
+ TextView textView = _mActivity.findViewById(R.id.my_message_bottom_il2).findViewById(R.id.red_count_tv);
+ if (textView != null) {
+ textView.setVisibility(View.GONE);
+ }
+ }
+ });
+ }
+
+
+ /**
+ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
+ */
+ private void nullDataUpdateUi() {
+ HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity,
+ viewBinding.nullDataIc.getRoot(),
+ viewBinding.nullDataIc.nullDataGifAnimationIv,
+ viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
+ }
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
index 08fa6d6..0aad188 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/message/RecoverMessageFragment.java
@@ -2,6 +2,7 @@
import android.content.Intent;
import android.os.Bundle;
+import android.widget.TextView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@@ -15,6 +16,7 @@
import com.hdl.photovoltaic.enums.MessageFunctionTabSwitch;
import com.hdl.photovoltaic.enums.MessageStateType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlMessageLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
@@ -104,13 +106,29 @@
this.messageRecoverAdapter.notifyDataSetChanged();
}
- if (mList.size() > 0) {
- BaseEventBus baseEventBus = new BaseEventBus();
- baseEventBus.setTopic(ConstantManage.message_count);
- baseEventBus.setType(MessageStateType.processed);
- baseEventBus.setData(mList.size());
- EventBus.getDefault().post(baseEventBus);
- }
+ //鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
+ this.refreshRecoverCount();
+ this.nullDataUpdateUi();
+ }
+
+ /**
+ * 鍒锋柊銆愬凡鎭㈠銆戜俊鎭暟閲忔�绘暟
+ */
+ private void refreshRecoverCount() {
+ HdlThreadLogic.runMainThread(new Runnable() {
+ @Override
+ public void run() {
+ TextView textView = _mActivity.findViewById(R.id.message_tab_recover_title_tv);
+ if (textView != null) {
+ textView.setText(getText(R.string.message_recover));
+ if (mList.size() > 0) {
+ String s = getText(R.string.message_recover) + "(" + mList.size() + ")";
+ textView.setText(s);
+ }
+ }
+
+ }
+ });
}
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
@@ -182,4 +200,14 @@
});
}
}
+
+ /**
+ * 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
+ */
+ private void nullDataUpdateUi() {
+ HdlCommonLogic.getInstance().nullDataUpdateUi(_mActivity,
+ viewBinding.nullDataIc.getRoot(),
+ viewBinding.nullDataIc.nullDataGifAnimationIv,
+ viewBinding.nullDataIc.nullDataTv, getString(R.string.message_alarm_data_null), mList.size() > 0);
+ }
}
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 3a5c20c..cd222e3 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
@@ -1,16 +1,26 @@
package com.hdl.photovoltaic.ui.powerstation;
import android.Manifest;
+import android.annotation.SuppressLint;
import android.content.Context;
import android.content.pm.PackageManager;
+import android.graphics.Movie;
import android.hardware.camera2.CameraManager;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.DataSource;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.engine.GlideException;
+import com.bumptech.glide.load.resource.gif.GifDrawable;
+import com.bumptech.glide.request.RequestListener;
+import com.bumptech.glide.request.target.Target;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.photovoltaic.R;
@@ -22,6 +32,7 @@
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
@@ -29,7 +40,9 @@
import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.uni.HDLUniMP;
+import com.hdl.photovoltaic.utils.GlideUtils;
import com.hdl.photovoltaic.utils.PermissionUtils;
+import com.hdl.photovoltaic.widget.MovieDrawable;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
@@ -316,11 +329,10 @@
* 娌℃湁鐢电珯鍒楄〃鐨勬牱寮�
*/
private void nullDataUpdateUi(List<HouseIdBean> list) {
- if (list != null && list.size() > 0) {
- viewBinding.nullListTv.setVisibility(View.GONE);
- } else {
- viewBinding.nullListTv.setVisibility(View.VISIBLE);
- }
+ 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);
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java
index cfeb8b5..c76747d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java
+++ b/app/src/main/java/com/hdl/photovoltaic/utils/GlideUtils.java
@@ -11,15 +11,22 @@
import android.graphics.RectF;
import android.widget.ImageView;
+import androidx.annotation.Nullable;
import androidx.core.graphics.drawable.RoundedBitmapDrawable;
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory;
import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.DataSource;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
import com.bumptech.glide.load.resource.bitmap.GranularRoundedCorners;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.bumptech.glide.load.resource.gif.GifDrawable;
+import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
+import com.bumptech.glide.request.target.Target;
import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.other.HdlThreadLogic;
@@ -123,7 +130,7 @@
if (conn.getResponseCode() == 200) {
InputStream inStream = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inStream);
- imageView.setImageBitmap(getRoundedCornerBitmap(bitmap,pixels));
+ imageView.setImageBitmap(getRoundedCornerBitmap(bitmap, pixels));
}
} catch (Exception e) {
}
@@ -160,4 +167,39 @@
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
+
+
+ /**
+ * 鐣岄潰绾挎暟鎹樉绀烘牱寮�
+ *
+ * @param context 涓婁笅鏂�
+ * @param imageview 鏄剧ず鍥剧墖缁勪欢
+ */
+ public static void getDrawableGifAnimation(Context context, ImageView imageview) {
+ if (context == null) {
+ return;
+ }
+ if (imageview == null) {
+ return;
+ }
+ Glide.with(context)
+ .asGif()
+ .load(R.drawable.null_data_icon)//(res鎴栬�単if鐨剈rl閾炬帴)
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .listener(new RequestListener<GifDrawable>() {
+ @Override
+ public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<GifDrawable> target, boolean isFirstResource) {
+ return false;
+ }
+
+ @Override
+ public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {
+// resource.setLoopCount(1);鎺у埗鎾斁娆℃暟
+ return false;
+ }
+ })
+ .into(imageview);
+ }
+
+
}
diff --git a/app/src/main/java/com/hdl/photovoltaic/widget/MovieDrawable.java b/app/src/main/java/com/hdl/photovoltaic/widget/MovieDrawable.java
new file mode 100644
index 0000000..78f1c8b
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/widget/MovieDrawable.java
@@ -0,0 +1,75 @@
+package com.hdl.photovoltaic.widget;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.ColorFilter;
+import android.graphics.Movie;
+import android.graphics.PixelFormat;
+import android.graphics.drawable.Drawable;
+import android.os.SystemClock;
+import android.widget.ImageView;
+
+import androidx.annotation.NonNull;
+
+import com.hdl.photovoltaic.R;
+
+/**
+ * 鎾斁GIF鍔ㄧ敾
+ */
+public class MovieDrawable extends Drawable {
+
+ private final Movie mMovie;
+ private long mStartTime;
+
+ public MovieDrawable(Movie movie) {
+ mMovie = movie;
+ }
+
+ public void start() {
+ mStartTime = SystemClock.uptimeMillis();
+ }
+
+ @Override
+ public void draw(@NonNull Canvas canvas) {
+ long time = SystemClock.uptimeMillis() - mStartTime;
+ mMovie.setTime((int) (time % mMovie.duration()));
+ mMovie.draw(canvas, getBounds().left, getBounds().top);
+ invalidateSelf();
+ }
+
+ @Override
+ public void setAlpha(int alpha) {
+ // 璁剧疆閫忔槑搴�
+ }
+
+ @Override
+ public void setColorFilter(ColorFilter colorFilter) {
+ // 璁剧疆棰滆壊婊ら暅
+ }
+
+ @Override
+ public int getOpacity() {
+ // 杩斿洖閫忔槑搴�
+ return PixelFormat.TRANSLUCENT;
+ }
+
+ public void getDrawableGifAnimation(Context mContext, ImageView imageView) {
+ try {
+ if (mContext == null) {
+ return;
+ }
+ if (imageView == null) {
+ return;
+ }
+ @SuppressLint("ResourceType") Movie movie = Movie.decodeStream(mContext.getResources().openRawResource(R.drawable.null_data_icon));
+ MovieDrawable drawable = new MovieDrawable(movie);
+ imageView.setImageDrawable(drawable);
+ drawable.start();
+ } catch (Exception ignored) {
+ }
+ }
+
+}
+
+
diff --git a/app/src/main/res/drawable/null_data_icon.gif b/app/src/main/res/drawable/null_data_icon.gif
new file mode 100644
index 0000000..828b34a
--- /dev/null
+++ b/app/src/main/res/drawable/null_data_icon.gif
Binary files differ
diff --git a/app/src/main/res/layout/activity_message_info.xml b/app/src/main/res/layout/activity_message_info.xml
index fb2b121..988c9d4 100644
--- a/app/src/main/res/layout/activity_message_info.xml
+++ b/app/src/main/res/layout/activity_message_info.xml
@@ -50,7 +50,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="18.5dp"
+ android:layout_marginTop="@dimen/dp_32"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -62,7 +62,7 @@
<View
android:layout_width="match_parent"
- android:layout_height="@dimen/dp_14" />
+ android:layout_height="@dimen/dp_31" />
<include
android:id="@+id/message_info_alarm_device_in"
@@ -70,7 +70,7 @@
<View
android:layout_width="match_parent"
- android:layout_height="@dimen/dp_14" />
+ android:layout_height="@dimen/dp_31" />
<include
android:id="@+id/message_info_alarm_range_in"
@@ -78,7 +78,7 @@
<View
android:layout_width="match_parent"
- android:layout_height="@dimen/dp_14" />
+ android:layout_height="@dimen/dp_31" />
<include
android:id="@+id/message_info_power_station_location_in"
@@ -86,7 +86,7 @@
<View
android:layout_width="match_parent"
- android:layout_height="@dimen/dp_14" />
+ android:layout_height="@dimen/dp_31" />
<include
android:id="@+id/message_info_alarm_time_in"
@@ -94,7 +94,7 @@
<View
android:layout_width="match_parent"
- android:layout_height="@dimen/dp_14" />
+ android:layout_height="@dimen/dp_31" />
</LinearLayout>
diff --git a/app/src/main/res/layout/fragment_house_list.xml b/app/src/main/res/layout/fragment_house_list.xml
index cfeb8f6..0722160 100644
--- a/app/src/main/res/layout/fragment_house_list.xml
+++ b/app/src/main/res/layout/fragment_house_list.xml
@@ -130,19 +130,18 @@
android:paddingBottom="@dimen/dp_16" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
- <TextView
- android:id="@+id/null_list_tv"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="鏁版嵁涓虹┖,璧跺揩鍒涘缓涓�涓惂"
- android:textColor="@color/text_90000000"
- android:textSize="@dimen/text_14"
- android:visibility="gone"
+ <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
+ <include
+ android:id="@+id/null_data_ic"
+ layout="@layout/null_data_view"
+ android:layout_width="match_parent"
+ android:layout_height="224dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
+ app:layout_constraintTop_toTopOf="parent"
+ android:visibility="gone"
+ />
</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/fragment_nascent_message.xml b/app/src/main/res/layout/fragment_nascent_message.xml
index bed934a..284f7c1 100644
--- a/app/src/main/res/layout/fragment_nascent_message.xml
+++ b/app/src/main/res/layout/fragment_nascent_message.xml
@@ -8,8 +8,8 @@
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/message_nascent_srl"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- >
+ android:layout_height="match_parent">
+
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/message_nascent_recyclerview"
android:layout_width="match_parent"
@@ -18,4 +18,16 @@
android:paddingBottom="@dimen/dp_16" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+ <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
+ <include
+ android:id="@+id/null_data_ic"
+ layout="@layout/null_data_view"
+ android:layout_width="match_parent"
+ android:layout_height="224dp"
+ android:layout_marginTop="183dp"
+ android:visibility="gone"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_recover_message.xml b/app/src/main/res/layout/fragment_recover_message.xml
index cd7964c..c04c8ec 100644
--- a/app/src/main/res/layout/fragment_recover_message.xml
+++ b/app/src/main/res/layout/fragment_recover_message.xml
@@ -17,6 +17,17 @@
android:clipToPadding="false"
android:paddingBottom="@dimen/dp_16" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
+ <!--娌℃湁鏁版嵁鏄剧ず鏍峰紡-->
+ <include
+ android:id="@+id/null_data_ic"
+ layout="@layout/null_data_view"
+ android:layout_width="match_parent"
+ android:layout_height="224dp"
+ android:layout_marginTop="183dp"
+ android:visibility="gone"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/home_bottom_line.xml b/app/src/main/res/layout/home_bottom_line.xml
index 9c1a7b1..60c05b3 100644
--- a/app/src/main/res/layout/home_bottom_line.xml
+++ b/app/src/main/res/layout/home_bottom_line.xml
@@ -2,8 +2,7 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="0dp"
android:layout_height="@dimen/dp_49"
- android:layout_weight="1"
- >
+ android:layout_weight="1">
<ImageView
android:id="@+id/icon_iv"
@@ -22,15 +21,18 @@
android:layout_marginTop="@dimen/dp_2"
android:textColor="@color/text_90000000"
android:textSize="@dimen/text_10" />
+
<TextView
- android:id="@+id/red_tv"
- android:layout_width="@dimen/dp_8"
- android:layout_height="@dimen/dp_8"
+ android:id="@+id/red_count_tv"
+ android:layout_width="@dimen/dp_16"
+ android:layout_height="@dimen/dp_16"
+ android:layout_alignStart="@+id/icon_iv"
+ android:layout_marginStart="@dimen/dp_16"
+ android:layout_marginTop="4.5dp"
android:background="@drawable/red_font"
- android:layout_alignEnd="@+id/icon_iv"
- android:layout_alignTop="@+id/icon_iv"
- android:visibility="gone"
- />
+ android:textColor="@color/text_FFFFFFFF"
+ android:textSize="11sp"
+ android:visibility="gone" />
<!--鍔犲ぇ鐐瑰嚮鐑尯-->
<TextView
android:id="@+id/click_tv"
diff --git a/app/src/main/res/layout/null_data_view.xml b/app/src/main/res/layout/null_data_view.xml
new file mode 100644
index 0000000..24a235e
--- /dev/null
+++ b/app/src/main/res/layout/null_data_view.xml
@@ -0,0 +1,31 @@
+<?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="224dp">
+
+ <ImageView
+ android:id="@+id/null_data_gif_animation_iv"
+ android:layout_width="289.5dp"
+ android:layout_height="189.5dp"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:ignore="MissingConstraints" />
+
+ <TextView
+ android:id="@+id/null_data_tv"
+ android:layout_width="match_parent"
+ android:layout_height="22.5dp"
+ android:layout_marginTop="11.5dp"
+ android:gravity="center"
+ android:text="鏁版嵁涓虹┖,璧跺揩鍒涘缓涓�涓惂"
+ android:textColor="@color/text_7C8590"
+ android:textSize="@dimen/text_16"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/null_data_gif_animation_iv" />
+
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 7775723..80c62a6 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -82,6 +82,7 @@
<string name="my_power_station_malfunction">Malfunction</string>
<string name="my_power_station_operation">Operating</string>
<string name="my_power_station_await">Standby</string>
+ <string name="my_power_station_data_null">Data is empty, create one now!</string>
<!--璁惧-->
<string name="device_manual_connection">Manual connect</string>
@@ -102,6 +103,7 @@
<string name="message_alarm_details_time">Alarm time</string>
<string name="message_alarm_details_back">Back</string>
<string name="message_alarm_details_resolved">Solved</string>
+ <string name="message_alarm_data_null">No alarm</string>
<!--鎴戠殑-->
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 9192895..06fd10a 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -82,6 +82,7 @@
<string name="my_power_station_malfunction">鏁呴殰</string>
<string name="my_power_station_operation">杩愯</string>
<string name="my_power_station_await">寰呮満</string>
+ <string name="my_power_station_data_null">鏁版嵁涓虹┖,璧跺揩鍒涘缓涓�涓惂!</string>
<!--璁惧-->
<string name="device_manual_connection">鎵嬪姩杩炴帴</string>
@@ -102,6 +103,7 @@
<string name="message_alarm_details_time">鎶ヨ鏃堕棿</string>
<string name="message_alarm_details_back">杩斿洖</string>
<string name="message_alarm_details_resolved">宸茶В鍐�</string>
+ <string name="message_alarm_data_null">鏆傛棤鎶ヨ</string>
<!--鎴戠殑-->
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9192895..a31d99b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -82,6 +82,7 @@
<string name="my_power_station_malfunction">鏁呴殰</string>
<string name="my_power_station_operation">杩愯</string>
<string name="my_power_station_await">寰呮満</string>
+ <string name="my_power_station_data_null">鏁版嵁涓虹┖,璧跺揩鍒涘缓涓�涓惂!</string>
<!--璁惧-->
<string name="device_manual_connection">鎵嬪姩杩炴帴</string>
@@ -102,6 +103,7 @@
<string name="message_alarm_details_time">鎶ヨ鏃堕棿</string>
<string name="message_alarm_details_back">杩斿洖</string>
<string name="message_alarm_details_resolved">宸茶В鍐�</string>
+ <string name="message_alarm_data_null">鏆傛棤鎶ヨ</string>
<!--鎴戠殑-->
@@ -206,4 +208,6 @@
<string name="system_positioning_switch">闇�瑕佹墦寮�绯荤粺瀹氫綅寮�鍏�,鍚﹀垯鍙栨硶鑾峰彇浣嶇疆淇℃伅.</string>
+
+
</resources>
\ No newline at end of file
--
Gitblit v1.8.0