diff --git a/powerbell/build.properties b/powerbell/build.properties
index cb30cf7..40f11e7 100644
--- a/powerbell/build.properties
+++ b/powerbell/build.properties
@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle
-#Fri Mar 21 21:51:15 GMT 2025
+#Sat Mar 22 07:52:04 GMT 2025
stageCount=6
libraryProject=
baseVersion=4.0
publishVersion=4.0.5
-buildCount=13
+buildCount=14
baseBetaVersion=4.0.6
diff --git a/powerbell/src/main/AndroidManifest.xml b/powerbell/src/main/AndroidManifest.xml
index 6c9175e..4391ee7 100644
--- a/powerbell/src/main/AndroidManifest.xml
+++ b/powerbell/src/main/AndroidManifest.xml
@@ -129,6 +129,8 @@
+
+
-
+
\ No newline at end of file
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
index e8c75fd..874e4fc 100644
--- a/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/MainActivity.java
@@ -15,9 +15,9 @@ import cc.winboll.studio.libaes.views.AToolbar;
import cc.winboll.studio.powerbell.MainActivity;
import cc.winboll.studio.powerbell.activities.AboutActivity;
import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity;
+import cc.winboll.studio.powerbell.activities.BatteryReporterActivity;
import cc.winboll.studio.powerbell.activities.ClearRecordActivity;
import cc.winboll.studio.powerbell.fragments.MainViewFragment;
-import cc.winboll.studio.powerbell.utils.NotificationHelper;
import cc.winboll.studio.shared.log.LogUtils;
import cc.winboll.studio.shared.log.LogView;
@@ -66,8 +66,8 @@ public class MainActivity extends Activity {
// NotificationHelper notificationUtils = new NotificationHelper(this);
// notificationUtils.createNotificationChannels();
-
-
+
+
}
void showFragment(Fragment fragment) {
@@ -145,6 +145,10 @@ public class MainActivity extends Activity {
Intent intent = new Intent();
intent.setClass(this, AboutActivity.class);
startActivity(intent);
+ } else if (menuItemId == R.id.action_battery_reporter) {
+ Intent intent = new Intent();
+ intent.setClass(this, BatteryReporterActivity.class);
+ startActivity(intent);
} else if (menuItemId == R.id.action_clearrecord) {
Intent intent = new Intent();
intent.setClass(this, ClearRecordActivity.class);
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java
new file mode 100644
index 0000000..288a296
--- /dev/null
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/activities/BatteryReporterActivity.java
@@ -0,0 +1,51 @@
+package cc.winboll.studio.powerbell.activities;
+
+/**
+ * @Author ZhanGSKen@AliYun.Com
+ * @Date 2025/03/22 14:20:15
+ */
+import android.app.Activity;
+import android.os.Bundle;
+import androidx.recyclerview.widget.DividerItemDecoration;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import cc.winboll.studio.powerbell.R;
+import cc.winboll.studio.powerbell.adapters.BatteryAdapter;
+import cc.winboll.studio.powerbell.beans.BatteryData;
+import java.util.Arrays;
+import java.util.List;
+
+public class BatteryReporterActivity extends Activity {
+ public static final String TAG = "BatteryReporterActivity";
+
+ private RecyclerView rvBatteryReport;
+ private BatteryAdapter adapter;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_battery_reporter);
+
+ rvBatteryReport = findViewById(R.id.rvBatteryReport);
+ setupRecyclerView();
+ loadSampleData();
+ }
+
+ private void setupRecyclerView() {
+ adapter = new BatteryAdapter();
+ rvBatteryReport.setLayoutManager(new LinearLayoutManager(this));
+ rvBatteryReport.setAdapter(adapter);
+ rvBatteryReport.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL));
+ }
+
+ private void loadSampleData() {
+ List dataList = Arrays.asList(
+ new BatteryData(95, "01:23:45", "00:05:12"),
+ new BatteryData(80, "02:15:30", "00:10:00"),
+ new BatteryData(65, "03:45:15", "00:15:30"),
+ new BatteryData(50, "05:00:00", "00:20:45")
+ );
+ adapter.updateData(dataList);
+ }
+}
+
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java
new file mode 100644
index 0000000..93e69bb
--- /dev/null
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/adapters/BatteryAdapter.java
@@ -0,0 +1,61 @@
+package cc.winboll.studio.powerbell.adapters;
+
+/**
+ * @Author ZhanGSKen@AliYun.Com
+ * @Date 2025/03/22 14:38:55
+ * @Describe 电池报告数据适配器
+ */
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+import androidx.recyclerview.widget.RecyclerView;
+import cc.winboll.studio.powerbell.R;
+import cc.winboll.studio.powerbell.adapters.BatteryAdapter;
+import cc.winboll.studio.powerbell.beans.BatteryData;
+import java.util.ArrayList;
+import java.util.List;
+
+public class BatteryAdapter extends RecyclerView.Adapter {
+ public static final String TAG = "BatteryAdapter";
+ private List dataList = new ArrayList<>();
+
+ public void updateData(List newData) {
+ dataList = newData;
+ notifyDataSetChanged();
+ }
+
+ @Override
+ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.item_battery_report, parent, false);
+ return new ViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ViewHolder holder, int position) {
+ BatteryData item = dataList.get(position);
+ holder.tvLevel.setText(String.format("%d%%", item.getCurrentLevel()));
+ holder.tvDischargeTime.setText("使用时间: " + item.getDischargeTime());
+ holder.tvChargeTime.setText("充电时间: " + item.getChargeTime());
+ }
+
+ @Override
+ public int getItemCount() {
+ return dataList.size();
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ TextView tvLevel;
+ TextView tvDischargeTime;
+ TextView tvChargeTime;
+
+ ViewHolder(View itemView) {
+ super(itemView);
+ tvLevel = itemView.findViewById(R.id.tvLevel);
+ tvDischargeTime = itemView.findViewById(R.id.tvDischargeTime);
+ tvChargeTime = itemView.findViewById(R.id.tvChargeTime);
+ }
+ }
+}
+
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java
new file mode 100644
index 0000000..3d89470
--- /dev/null
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/beans/BatteryData.java
@@ -0,0 +1,26 @@
+package cc.winboll.studio.powerbell.beans;
+
+/**
+ * @Author ZhanGSKen@AliYun.Com
+ * @Date 2025/03/22 14:30:51
+ * @Describe 电池报告数据模型
+ */
+public class BatteryData {
+
+ public static final String TAG = "BatteryData";
+
+ private int currentLevel;
+ private String dischargeTime;
+ private String chargeTime;
+
+ public BatteryData(int currentLevel, String dischargeTime, String chargeTime) {
+ this.currentLevel = currentLevel;
+ this.dischargeTime = dischargeTime;
+ this.chargeTime = chargeTime;
+ }
+
+ public int getCurrentLevel() { return currentLevel; }
+ public String getDischargeTime() { return dischargeTime; }
+ public String getChargeTime() { return chargeTime; }
+}
+
diff --git a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java
index 007fd9e..e18f5e4 100644
--- a/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java
+++ b/powerbell/src/main/java/cc/winboll/studio/powerbell/receivers/ControlCenterServiceReceiver.java
@@ -5,11 +5,14 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import cc.winboll.studio.powerbell.beans.AppConfigBean;
+import cc.winboll.studio.powerbell.beans.BatteryData;
import cc.winboll.studio.powerbell.services.ControlCenterService;
import cc.winboll.studio.powerbell.utils.AppConfigUtils;
import cc.winboll.studio.powerbell.utils.BatteryUtils;
import cc.winboll.studio.shared.log.LogUtils;
import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.List;
public class ControlCenterServiceReceiver extends BroadcastReceiver {
public static final String TAG = ControlCenterServiceReceiver.class.getSimpleName();
@@ -52,6 +55,13 @@ public class ControlCenterServiceReceiver extends BroadcastReceiver {
appConfigBean.setCurrentValue(nTheQuantityOfElectricity);
appConfigBean.setIsCharging(isCharging);
mwrService.get().startRemindThread(appConfigBean);
+
+ // 保存电池报告
+ // 示例数据更新逻辑
+// List newData = new ArrayList<>(adapter.getDataList());
+// newData.add(0, new BatteryData(percentage, "00:00:00", "00:00:00"));
+// adapter.updateData(newData);
+
// 保存好新的电池状态标志
_mIsCharging = isCharging;
_mnTheQuantityOfElectricityOld = nTheQuantityOfElectricity;
diff --git a/powerbell/src/main/res/drawable/divider_line.xml b/powerbell/src/main/res/drawable/divider_line.xml
new file mode 100644
index 0000000..f9365df
--- /dev/null
+++ b/powerbell/src/main/res/drawable/divider_line.xml
@@ -0,0 +1,7 @@
+
+
+
+
diff --git a/powerbell/src/main/res/layout/activity_battery_reporter.xml b/powerbell/src/main/res/layout/activity_battery_reporter.xml
new file mode 100644
index 0000000..0ad37ee
--- /dev/null
+++ b/powerbell/src/main/res/layout/activity_battery_reporter.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
diff --git a/powerbell/src/main/res/layout/item_battery_report.xml b/powerbell/src/main/res/layout/item_battery_report.xml
new file mode 100644
index 0000000..048d3a8
--- /dev/null
+++ b/powerbell/src/main/res/layout/item_battery_report.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/powerbell/src/main/res/menu/toolbar_main.xml b/powerbell/src/main/res/menu/toolbar_main.xml
index 3518127..dce9de9 100644
--- a/powerbell/src/main/res/menu/toolbar_main.xml
+++ b/powerbell/src/main/res/menu/toolbar_main.xml
@@ -1,5 +1,8 @@