Răsfoiți Sursa

添加 85%充电提示

losion.liu@sikey.com.cn 1 lună în urmă
părinte
comite
e6c3b3392e

+ 69 - 0
app/src/main/java/com/xplora/xpsettings/Activity/BatteryActivity.java

@@ -0,0 +1,69 @@
+package com.xplora.xpsettings.Activity;
+
+import android.content.Intent;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ListView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.RequiresApi;
+
+import com.xplora.xpsettings.Adapter.BaseListAdapter;
+import com.xplora.xpsettings.Data.DataManager;
+import com.xplora.xpsettings.Model.BaseModel;
+import com.xplora.xpsettings.R;
+import com.xplora.xpsettings.Utils.Constant;
+import com.xplora.xpsettings.Utils.ResUtils;
+
+
+public class BatteryActivity extends BaseActivity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_list_title);
+        setWatchTitle(getString(R.string.settings_title_array_3));
+        initData();
+        initView();
+    }
+
+    private void initData() {
+        BaseModel model = new BaseModel();
+        model.title = getString(R.string.battery_smart_charging);
+        model.subTitle = getString(R.string.battery_smart_charging_content);
+        model.cellType = Constant.CellType.SWITCH_RIGHT_TOP;
+        model.isOn = DataManager.getChargingStatus() >= 1;
+        mDataList.add(model);
+    }
+
+    private void initView() {
+        mAdapter = new BaseListAdapter(this, R.layout.item_xpstyle, mDataList, mHandler);
+        ListView listView = findViewById(R.id.activity_listview);
+        listView.setAdapter(mAdapter);
+        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+            }
+        });
+    }
+
+    Handler mHandler = new Handler(Looper.myLooper()) {
+        @Override
+        public void handleMessage(@NonNull Message msg) {
+            super.handleMessage(msg);
+            if (msg.what == Constant.MSG_SWITCH_CHANGE) {
+                int index = msg.arg1;
+                int isOn = msg.arg2;
+                BaseModel model = mDataList.get(index);
+                model.isOn = isOn >= 1;
+                DataManager.setChargingStatus(isOn >= 1 ? 1 : 0);
+            }
+        }
+    };
+}

+ 4 - 0
app/src/main/java/com/xplora/xpsettings/Activity/SettingsActivity.java

@@ -79,6 +79,10 @@ public class SettingsActivity extends BaseActivity implements Listener.SelectFra
                     intent = new Intent(this, DisplayActivity.class);
                     startActivity(intent);
                     break;
+                case 3:
+                    intent = new Intent(this, BatteryActivity.class);
+                    startActivity(intent);
+                    break;
                 case 4:
                     intent = new Intent(this, CameraActivity.class);
                     startActivity(intent);

+ 2 - 0
app/src/main/java/com/xplora/xpsettings/Adapter/BaseListAdapter.java

@@ -84,6 +84,8 @@ public class BaseListAdapter extends ArrayAdapter<BaseModel> {
             view = LayoutInflater.from(getContext()).inflate(R.layout.item_switch, null);
         } else if (model.cellType == Constant.CellType.SWITCH_RIGHT) {
             view = LayoutInflater.from(getContext()).inflate(R.layout.item_switch_right, null);
+        } else if (model.cellType == Constant.CellType.SWITCH_RIGHT_TOP) {
+            view = LayoutInflater.from(getContext()).inflate(R.layout.item_switch_right_top, null);
         } else if (model.cellType == Constant.CellType.SWITCH_FOOTER) {
             view = LayoutInflater.from(getContext()).inflate(R.layout.item_switch_footer, null);
         } else if (model.cellType == Constant.CellType.CHECKBOX) {

+ 8 - 0
app/src/main/java/com/xplora/xpsettings/Data/DataManager.java

@@ -497,6 +497,14 @@ public class DataManager extends Application {
         Settings.Global.putInt(sContext.getContentResolver(), MetaData.KEY_CLOSE_DISABLE, value);
     }
 
+    public static int getChargingStatus() {
+        return Settings.Global.getInt(sContext.getContentResolver(), "sk_charging_status", 1);
+    }
+
+    public static void setChargingStatus(int value) {
+        Settings.Global.putInt(sContext.getContentResolver(), "sk_charging_status", value);
+    }
+
     public static int getLockShutDown() {
         return Settings.Global.getInt(sContext.getContentResolver(), MetaData.KEY_LOCK_SHUTDOWN, 0);
     }

+ 1 - 0
app/src/main/java/com/xplora/xpsettings/Utils/Constant.java

@@ -42,6 +42,7 @@ public class Constant {
         XPSTYLE2,
         SWITCH,
         SWITCH_RIGHT,
+        SWITCH_RIGHT_TOP,
         SWITCH_FOOTER,
         CHECKBOX,
         CHECKBOX_HIGHLIGHT,

+ 3 - 3
app/src/main/res/layout/item_switch_right.xml

@@ -14,13 +14,13 @@
             android:id="@+id/item_title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_alignParentStart="true"
+            android:layout_centerVertical="true"
             android:layout_marginStart="20dp"
             android:layout_marginTop="2dp"
             android:layout_marginBottom="2dp"
-            android:layout_centerVertical="true"
-            android:layout_alignParentStart="true"
-            android:textAlignment="center"
             android:fontFamily="Roboto"
+            android:textAlignment="center"
             android:textColor="@color/white"
             android:textSize="13sp" />
 

+ 52 - 0
app/src/main/res/layout/item_switch_right_top.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:minHeight="40dp"
+    >
+    
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="0.1dp"
+        android:background="#30FFFFFF"
+        />
+
+    <TextView
+        android:id="@+id/item_title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentStart="true"
+        android:layout_marginStart="10dp"
+        android:layout_marginTop="12dp"
+        android:textAlignment="center"
+        android:textColor="@color/white"
+        android:textSize="12sp"
+        android:textStyle="bold"
+        />
+
+    <TextView
+        android:id="@+id/item_subtitle"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentStart="true"
+        android:layout_marginStart="10dp"
+        android:layout_below="@+id/item_title"
+        android:layout_marginTop="4dp"
+        android:layout_toStartOf="@+id/item_switch"
+        android:textAlignment="textStart"
+        android:textColor="@color/white"
+        android:textSize="10sp"
+        />
+
+    <Switch
+        android:id="@+id/item_switch"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentEnd="true"
+        android:layout_alignTop="@+id/item_title"
+        android:layout_marginEnd="10dp"
+        android:thumb="@drawable/selector_switch_thumb"
+        android:track="@drawable/selector_switch_track"/>
+
+</RelativeLayout>

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -182,4 +182,6 @@
     <string name="apn_value_array_8">Not specified</string>
     <string name="bd_3_title">Password error</string>
     <string name="bd_3_content">Password error has occurred 3 times, please try again in %d minutes.</string>
+    <string name="battery_smart_charging">Smart Charging</string>
+    <string name="battery_smart_charging_content">To extend the lifespan of your battery, limit the maximum charge to 85%.</string>
 </resources>