liuzhenxing1118 3 年之前
父节点
当前提交
5f7ac7abe6

+ 1 - 0
.idea/misc.xml

@@ -33,6 +33,7 @@
         <entry key="app/src/main/res/layout/item_center.xml" value="0.13179347826086957" />
         <entry key="app/src/main/res/layout/item_checkbox.xml" value="0.20199275362318841" />
         <entry key="app/src/main/res/layout/item_connections.xml" value="0.19300911854103345" />
+        <entry key="app/src/main/res/layout/item_gone.xml" value="0.21422101449275363" />
         <entry key="app/src/main/res/layout/item_icon.xml" value="0.25" />
         <entry key="app/src/main/res/layout/item_icon_progress.xml" value="0.15865384615384615" />
         <entry key="app/src/main/res/layout/item_icon_title.xml" value="0.19300911854103345" />

+ 14 - 17
app/src/main/java/com/xplora/xpsettings/Activity/SoundModeActivity.java

@@ -51,7 +51,7 @@ public class SoundModeActivity extends BaseActivity {
                 model.cellType = Constant.CellType.CHECKBOX;
                 model.isOn = soundType == i;
             } else if (i == 3){
-                model.cellType = Constant.CellType.SWITCH;
+                model.cellType = soundType == 0 ? Constant.CellType.SWITCH : Constant.CellType.GONE;
                 model.isOn = isVibrate >= 1;
             }  else if (i == 4){
                 model.cellType = Constant.CellType.TITLE;
@@ -76,18 +76,22 @@ public class SoundModeActivity extends BaseActivity {
         });
     }
 
+    private void refreshView(int position) {
+        int ringerMode = viewMode2RingerMode(position);
+        DataManager.setRingerMode(ringerMode);
+
+        mDataList.clear();
+        initData();
+
+        mAdapter.setBaseObjects(mDataList);
+        mAdapter.notifyDataSetInvalidated();
+    }
+
     @RequiresApi(api = Build.VERSION_CODES.M)
     public void clickItem(int position) {
         switch (position) {
             case 0: case 1: {
-                int ringerMode = viewMode2RingerMode(position);
-                DataManager.setRingerMode(ringerMode);
-                for (int i = 0; i < 3; i++) {
-                    BaseModel model = mDataList.get(i);
-                    model.isOn = position == i;
-                }
-                mAdapter.setBaseObjects(mDataList);
-                mAdapter.notifyDataSetInvalidated();
+                refreshView(position);
                 break;
             }
             case 2: {
@@ -96,14 +100,7 @@ public class SoundModeActivity extends BaseActivity {
                     Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
                     startActivity(intent);
                 } else {
-                    int ringerMode = viewMode2RingerMode(position);
-                    DataManager.setRingerMode(ringerMode);
-                    for (int i = 0; i < 3; i++) {
-                        BaseModel model = mDataList.get(i);
-                        model.isOn = position == i;
-                    }
-                    mAdapter.setBaseObjects(mDataList);
-                    mAdapter.notifyDataSetInvalidated();
+                    refreshView(position);
                 }
                 break;
             }

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

@@ -95,6 +95,8 @@ public class BaseListAdapter extends ArrayAdapter<BaseModel> {
             view = LayoutInflater.from(getContext()).inflate(R.layout.view_empty, null);
         } else if (model.cellType == Constant.CellType.EMPTY2) {
             view = LayoutInflater.from(getContext()).inflate(R.layout.view_empty2, null);
+        } else if (model.cellType == Constant.CellType.GONE) {
+            view = LayoutInflater.from(getContext()).inflate(R.layout.item_gone, null);
         }
 
         assert view != null;

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

@@ -39,6 +39,7 @@ public class Constant {
         MESSAGE,
         EMPTY,
         EMPTY2,
+        GONE,
     }
 
     public enum E_SEEKBAR_TYPE {

+ 9 - 0
app/src/main/res/layout/item_gone.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:visibility="gone"
+    >
+
+</LinearLayout>