diff --git a/.idea/planningMode.xml b/.idea/planningMode.xml
new file mode 100644
index 0000000..6dc24c8
--- /dev/null
+++ b/.idea/planningMode.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f6e055d..0fcc852 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -222,6 +222,11 @@
android:name="com.ckkj.water.mine.ResetPsdActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize"/>
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/ckkj/water/base/BaseActivity.java b/app/src/main/java/com/ckkj/water/base/BaseActivity.java
index 5ae8ba3..4c06be5 100644
--- a/app/src/main/java/com/ckkj/water/base/BaseActivity.java
+++ b/app/src/main/java/com/ckkj/water/base/BaseActivity.java
@@ -38,9 +38,11 @@ import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.app.ActivityCompat;
import androidx.viewbinding.ViewBinding;
+import com.ckkj.water.utils.manager.ThemeManager;
import com.esafirm.imagepicker.features.ImagePicker;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.XXPermissions;
@@ -104,6 +106,7 @@ public abstract class BaseActivity
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
+ applyTheme();
super.onCreate(savedInstanceState);
try {
EventBus.getDefault().register(this);
@@ -134,6 +137,13 @@ public abstract class BaseActivity
initData(savedInstanceState);
}
+ /**
+ * 所有Activity主题一致
+ */
+ protected void applyTheme() {
+ int nightMode = ThemeManager.getCurrentTheme(this);
+ AppCompatDelegate.setDefaultNightMode(nightMode);
+ }
/**
* 初始化窗口
diff --git a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java
index f7acb61..bd2031a 100644
--- a/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java
+++ b/app/src/main/java/com/ckkj/water/device/AddDeviceActivity.java
@@ -22,6 +22,7 @@ import com.ckkj.water.device.mvp.DeviceContract;
import com.ckkj.water.device.mvp.DeviceImpl;
import com.ckkj.water.device.mvp.DevicePresenter;
import com.ckkj.water.network.BaseBean;
+import com.ckkj.water.utils.manager.ThemeManager;
import com.ckkj.water.utils.show.ToastUtil;
import com.gyf.immersionbar.ImmersionBar;
import com.maning.mlkitscanner.scan.MNScanManager;
@@ -49,8 +50,8 @@ public class AddDeviceActivity extends BaseActivity
+ implements MineContract.MineView {
+
+ @Override
+ public void initData(Bundle savedInstanceState) {
+ super.initData(savedInstanceState);
+
+ ImmersionBar.with(this)
+ .statusBarColor(R.color.transparent) // 设置状态栏颜色
+ .statusBarDarkFont(true) // 设置状态栏字体为黑色
+ .titleBar(viewBinding.rlTitle)
+ .init();
+ viewBinding.includedTitle.tvTitle.setText(R.string.register_title);
+ initListener();
+ int currentTheme = ThemeManager.getCurrentTheme(mContext);
+ if(currentTheme == ThemeManager.MODE_LIGHT){
+ viewBinding.checkNight.setChecked(false);
+ viewBinding.checkLight.setChecked(true);
+ }else{
+ viewBinding.checkNight.setChecked(true);
+ viewBinding.checkLight.setChecked(false);
+ }
+ }
+
+ private void initListener() {
+ setClick(viewBinding.includedTitle.imgBack);
+ setClick(viewBinding.linearLight);
+ setClick(viewBinding.linearNight);
+ }
+
+ private void setClick(View view) {
+ view.setOnClickListener(this::onClick);
+ }
+
+ public void onClick(View v){
+ switch (v.getId()){
+ case R.id.linear_light:
+ switchTheme(ThemeManager.MODE_LIGHT);
+ viewBinding.checkNight.setChecked(false);
+ viewBinding.checkLight.setChecked(true);
+ break;
+ case R.id.linear_night:
+ switchTheme(ThemeManager.MODE_DARK);
+ viewBinding.checkNight.setChecked(true);
+ viewBinding.checkLight.setChecked(false);
+ break;
+ }
+ }
+
+ private void switchTheme(int themeMode) {
+ ThemeManager.setCurrentTheme(this, themeMode);
+ ThemeManager.applyTheme(themeMode);
+ recreate(); // 需要重新创建Activity使主题生效
+ }
+
+ @Override
+ public MinePresenter createPresenter() {
+ return new MinePresenter(new MineImpl());
+ }
+
+ @Override
+ public int getLayoutResId(Bundle savedInstanceState) {
+ return 0;
+ }
+
+ @Override
+ public void showError(String message) {
+
+ }
+
+ @Override
+ public void logOut(BaseBean bean) {
+
+ }
+}
diff --git a/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java b/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java
index 9dd8a62..a710dc3 100644
--- a/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java
+++ b/app/src/main/java/com/ckkj/water/mine/MineCenterFragment.java
@@ -16,6 +16,7 @@ import com.ckkj.water.mine.mvp.MineContract;
import com.ckkj.water.mine.mvp.MineImpl;
import com.ckkj.water.mine.mvp.MinePresenter;
import com.ckkj.water.network.BaseBean;
+import com.ckkj.water.utils.manager.ThemeManager;
import com.ckkj.water.utils.show.ToastUtil;
import com.gyf.immersionbar.ImmersionBar;
import com.lxj.xpopup.XPopup;
@@ -33,8 +34,8 @@ public class MineCenterFragment extends BaseFragment
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_white_coeners_8.xml b/app/src/main/res/drawable/shape_white_coeners_8.xml
index 5009ef8..6ca3015 100644
--- a/app/src/main/res/drawable/shape_white_coeners_8.xml
+++ b/app/src/main/res/drawable/shape_white_coeners_8.xml
@@ -1,5 +1,5 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/add_device_layout.xml b/app/src/main/res/layout/add_device_layout.xml
index 88d5b64..ad616b9 100644
--- a/app/src/main/res/layout/add_device_layout.xml
+++ b/app/src/main/res/layout/add_device_layout.xml
@@ -3,7 +3,7 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/color_F9F9F9">
+ android:background="@color/mainBackgroundColor">
+ layout="@layout/include_activity_back_whitebg_layout" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/device_control_layout.xml b/app/src/main/res/layout/device_control_layout.xml
index 730a8ca..b950c62 100644
--- a/app/src/main/res/layout/device_control_layout.xml
+++ b/app/src/main/res/layout/device_control_layout.xml
@@ -5,7 +5,7 @@
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/color_F9F9F9"
+ android:background="@color/mainBackgroundColor"
android:gravity="center_horizontal">
+ layout="@layout/include_activity_back_whitebg_layout" />
@@ -159,7 +159,7 @@
android:layout_centerVertical="true"
android:textSize="14sp"
android:textStyle="bold"
- android:textColor="@color/color_222222"
+ android:textColor="@color/textPrimaryColor"
android:text="@string/device_work_times_title"/>
+ android:background="@color/mainBackgroundColor">
+ layout="@layout/include_activity_back_whitebg_layout" />
@@ -53,7 +53,8 @@
android:layout_marginLeft="@dimen/dp_5"
android:background="@null"
android:textSize="14sp"
- android:textColor="@color/color_222222"
+ android:textColor="@color/textPrimaryColor"
+ android:textColorHint="@color/textPrimaryColor"
android:hint="@string/input_wifi_name_tip"/>
diff --git a/app/src/main/res/layout/device_work_time_item.xml b/app/src/main/res/layout/device_work_time_item.xml
index e391665..15b1b51 100644
--- a/app/src/main/res/layout/device_work_time_item.xml
+++ b/app/src/main/res/layout/device_work_time_item.xml
@@ -1,7 +1,7 @@
diff --git a/app/src/main/res/layout/history_fragment_layout.xml b/app/src/main/res/layout/history_fragment_layout.xml
index 2459d1d..03f0d18 100644
--- a/app/src/main/res/layout/history_fragment_layout.xml
+++ b/app/src/main/res/layout/history_fragment_layout.xml
@@ -2,7 +2,8 @@
+ android:layout_height="match_parent"
+ android:background="@color/mainBackgroundColor">
+ layout="@layout/include_activity_back_whitebg_layout" />
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/include_activity_back_whitebg_layout.xml b/app/src/main/res/layout/include_activity_back_whitebg_layout.xml
index b89d6fa..a41879c 100644
--- a/app/src/main/res/layout/include_activity_back_whitebg_layout.xml
+++ b/app/src/main/res/layout/include_activity_back_whitebg_layout.xml
@@ -6,7 +6,7 @@
android:id="@+id/relative_title"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_48"
- android:background="@color/white">
+ android:background="@color/mainBackgroundColor">
diff --git a/app/src/main/res/layout/main_activity_layout.xml b/app/src/main/res/layout/main_activity_layout.xml
index c58081f..4b5c5f4 100644
--- a/app/src/main/res/layout/main_activity_layout.xml
+++ b/app/src/main/res/layout/main_activity_layout.xml
@@ -14,7 +14,7 @@
app:itemTextAppearanceInactive="@style/BottomNavTextInactive"
app:menu="@menu/bottom_nav_menu"
app:itemTextColor="@color/nav_bottom_text_select"
- android:background="@color/color_white"
+ android:background="@color/mainBackgroundColor"
app:itemBackground="@android:color/transparent"
app:labelVisibilityMode="labeled"
app:itemIconTint="@null"
diff --git a/app/src/main/res/layout/mine_fragment_layout.xml b/app/src/main/res/layout/mine_fragment_layout.xml
index 98cbb71..64e3413 100644
--- a/app/src/main/res/layout/mine_fragment_layout.xml
+++ b/app/src/main/res/layout/mine_fragment_layout.xml
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="16sp"
- android:textColor="@color/color_222222"
+ android:textColor="@color/textPrimaryColor"
android:text="昵称"/>
@@ -62,13 +62,14 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
- android:textColor="@color/color_666666"
+ android:textColor="@color/textPrimaryColor"
android:text="13988886666"/>
diff --git a/app/src/main/res/layout/tab_history_fragment_layout.xml b/app/src/main/res/layout/tab_history_fragment_layout.xml
index 8629bdc..1a057e2 100644
--- a/app/src/main/res/layout/tab_history_fragment_layout.xml
+++ b/app/src/main/res/layout/tab_history_fragment_layout.xml
@@ -23,7 +23,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
- android:textColor="@color/color_222222"
+ android:textColor="@color/textPrimaryColor"
android:text="@string/tab_filter_time"/>
+ android:background="@color/mainBackgroundColor">
diff --git a/app/src/main/res/mipmap-xhdpi/img_theme_bg.png b/app/src/main/res/mipmap-xhdpi/img_theme_bg.png
new file mode 100644
index 0000000..a2ba6d7
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/img_theme_bg.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/img_theme_light.png b/app/src/main/res/mipmap-xhdpi/img_theme_light.png
new file mode 100644
index 0000000..e6d77b5
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/img_theme_light.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/img_theme_night.png b/app/src/main/res/mipmap-xhdpi/img_theme_night.png
new file mode 100644
index 0000000..75ba628
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/img_theme_night.png differ
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
new file mode 100644
index 0000000..3439139
--- /dev/null
+++ b/app/src/main/res/values-night/colors.xml
@@ -0,0 +1,8 @@
+
+
+ #1A237E
+ #000063
+ #FF80AB
+ #303030
+ #E0E0E0
+
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 6315828..503385f 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -1,16 +1,7 @@
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 907bd8e..3bbea82 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -3,6 +3,9 @@
#3F51B5
#303F9F
#FF4081
+ #FFFFFF
+ #222222
+
#00000000
#FFFFFF
@@ -110,4 +113,5 @@
#0d000000
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index ae6d8ca..38195d0 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -8,7 +8,7 @@
- @color/color_zhu
-
+
+
+