添加电池报告窗口雏形
This commit is contained in:
parent
508c8b0b97
commit
5a052e4b22
@ -1,8 +1,8 @@
|
|||||||
#Created by .winboll/winboll_app_build.gradle
|
#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
|
stageCount=6
|
||||||
libraryProject=
|
libraryProject=
|
||||||
baseVersion=4.0
|
baseVersion=4.0
|
||||||
publishVersion=4.0.5
|
publishVersion=4.0.5
|
||||||
buildCount=13
|
buildCount=14
|
||||||
baseBetaVersion=4.0.6
|
baseBetaVersion=4.0.6
|
||||||
|
@ -129,6 +129,8 @@
|
|||||||
|
|
||||||
<activity android:name="cc.winboll.studio.powerbell.activities.AboutActivity"/>
|
<activity android:name="cc.winboll.studio.powerbell.activities.AboutActivity"/>
|
||||||
|
|
||||||
|
<activity android:name="cc.winboll.studio.powerbell.activities.BatteryReporterActivity"/>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
@ -15,9 +15,9 @@ import cc.winboll.studio.libaes.views.AToolbar;
|
|||||||
import cc.winboll.studio.powerbell.MainActivity;
|
import cc.winboll.studio.powerbell.MainActivity;
|
||||||
import cc.winboll.studio.powerbell.activities.AboutActivity;
|
import cc.winboll.studio.powerbell.activities.AboutActivity;
|
||||||
import cc.winboll.studio.powerbell.activities.BackgroundPictureActivity;
|
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.activities.ClearRecordActivity;
|
||||||
import cc.winboll.studio.powerbell.fragments.MainViewFragment;
|
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.LogUtils;
|
||||||
import cc.winboll.studio.shared.log.LogView;
|
import cc.winboll.studio.shared.log.LogView;
|
||||||
|
|
||||||
@ -145,6 +145,10 @@ public class MainActivity extends Activity {
|
|||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setClass(this, AboutActivity.class);
|
intent.setClass(this, AboutActivity.class);
|
||||||
startActivity(intent);
|
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) {
|
} else if (menuItemId == R.id.action_clearrecord) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setClass(this, ClearRecordActivity.class);
|
intent.setClass(this, ClearRecordActivity.class);
|
||||||
|
@ -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<BatteryData> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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<BatteryAdapter.ViewHolder> {
|
||||||
|
public static final String TAG = "BatteryAdapter";
|
||||||
|
private List<BatteryData> dataList = new ArrayList<>();
|
||||||
|
|
||||||
|
public void updateData(List<BatteryData> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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; }
|
||||||
|
}
|
||||||
|
|
@ -5,11 +5,14 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import cc.winboll.studio.powerbell.beans.AppConfigBean;
|
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.services.ControlCenterService;
|
||||||
import cc.winboll.studio.powerbell.utils.AppConfigUtils;
|
import cc.winboll.studio.powerbell.utils.AppConfigUtils;
|
||||||
import cc.winboll.studio.powerbell.utils.BatteryUtils;
|
import cc.winboll.studio.powerbell.utils.BatteryUtils;
|
||||||
import cc.winboll.studio.shared.log.LogUtils;
|
import cc.winboll.studio.shared.log.LogUtils;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class ControlCenterServiceReceiver extends BroadcastReceiver {
|
public class ControlCenterServiceReceiver extends BroadcastReceiver {
|
||||||
public static final String TAG = ControlCenterServiceReceiver.class.getSimpleName();
|
public static final String TAG = ControlCenterServiceReceiver.class.getSimpleName();
|
||||||
@ -52,6 +55,13 @@ public class ControlCenterServiceReceiver extends BroadcastReceiver {
|
|||||||
appConfigBean.setCurrentValue(nTheQuantityOfElectricity);
|
appConfigBean.setCurrentValue(nTheQuantityOfElectricity);
|
||||||
appConfigBean.setIsCharging(isCharging);
|
appConfigBean.setIsCharging(isCharging);
|
||||||
mwrService.get().startRemindThread(appConfigBean);
|
mwrService.get().startRemindThread(appConfigBean);
|
||||||
|
|
||||||
|
// 保存电池报告
|
||||||
|
// 示例数据更新逻辑
|
||||||
|
// List<BatteryData> newData = new ArrayList<>(adapter.getDataList());
|
||||||
|
// newData.add(0, new BatteryData(percentage, "00:00:00", "00:00:00"));
|
||||||
|
// adapter.updateData(newData);
|
||||||
|
|
||||||
// 保存好新的电池状态标志
|
// 保存好新的电池状态标志
|
||||||
_mIsCharging = isCharging;
|
_mIsCharging = isCharging;
|
||||||
_mnTheQuantityOfElectricityOld = nTheQuantityOfElectricity;
|
_mnTheQuantityOfElectricityOld = nTheQuantityOfElectricity;
|
||||||
|
7
powerbell/src/main/res/drawable/divider_line.xml
Normal file
7
powerbell/src/main/res/drawable/divider_line.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:shape="line">
|
||||||
|
<stroke
|
||||||
|
android:width="1dp"
|
||||||
|
android:color="#E0E0E0"/>
|
||||||
|
</shape>
|
24
powerbell/src/main/res/layout/activity_battery_reporter.xml
Normal file
24
powerbell/src/main/res/layout/activity_battery_reporter.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="电池使用报告"
|
||||||
|
android:textSize="24sp"
|
||||||
|
android:fontFamily="sans-serif-medium"
|
||||||
|
android:layout_marginBottom="16dp"/>
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/rvBatteryReport"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:divider="@drawable/divider_line"
|
||||||
|
android:dividerHeight="1dp"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
34
powerbell/src/main/res/layout/item_battery_report.xml
Normal file
34
powerbell/src/main/res/layout/item_battery_report.xml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:background="@android:color/white">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvLevel"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="18sp"
|
||||||
|
android:fontFamily="sans-serif-medium"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvDischargeTime"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:paddingStart="16dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tvChargeTime"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:paddingStart="16dp"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_battery_reporter"
|
||||||
|
android:title="@string/item_battery_reporter"/>
|
||||||
<item
|
<item
|
||||||
android:id="@+id/action_clearrecord"
|
android:id="@+id/action_clearrecord"
|
||||||
android:title="@string/item_clearrecord"/>
|
android:title="@string/item_clearrecord"/>
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<string name="about_crashed">This application has crashed, the author level is limited, please understand!</string>
|
<string name="about_crashed">This application has crashed, the author level is limited, please understand!</string>
|
||||||
<string name="item_mainview">Main View</string>
|
<string name="item_mainview">Main View</string>
|
||||||
<string name="item_aboutview">About</string>
|
<string name="item_aboutview">About</string>
|
||||||
|
<string name="item_battery_reporter">Battery Reporter</string>
|
||||||
<string name="item_clearrecord">Clear Record</string>
|
<string name="item_clearrecord">Clear Record</string>
|
||||||
<string name="item_changepicture">Change Picture</string>
|
<string name="item_changepicture">Change Picture</string>
|
||||||
<string name="item_devoloperoptionsview">Developer View</string>
|
<string name="item_devoloperoptionsview">Developer View</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user