liuzhenxing 3 жил өмнө
parent
commit
e821ba2a64

+ 2 - 0
.idea/misc.xml

@@ -4,6 +4,8 @@
     <option name="filePathToZoomLevelMap">
       <map>
         <entry key="app/src/main/res/layout/activity_main.xml" value="0.3546195652173913" />
+        <entry key="app/src/main/res/layout/item_connections.xml" value="0.19300911854103345" />
+        <entry key="app/src/main/res/layout/item_xpstyle.xml" value="0.20199275362318841" />
       </map>
     </option>
   </component>

+ 4 - 0
app/src/main/AndroidManifest.xml

@@ -88,6 +88,10 @@
             android:name=".Activity.QRActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:launchMode="standard" />
+        <activity
+            android:name=".Activity.ConnectionsActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:launchMode="standard" />
     </application>
 
 </manifest>

+ 78 - 0
app/src/main/java/com/xplora/xpsettings/Activity/ConnectionsActivity.java

@@ -0,0 +1,78 @@
+package com.xplora.xpsettings.Activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.ListView;
+
+import com.xplora.xpsettings.Adapter.ConnectionsAdapter;
+import com.xplora.xpsettings.Adapter.ListAdapter;
+import com.xplora.xpsettings.Adapter.SettingsAdapter;
+import com.xplora.xpsettings.Model.WatchModel;
+import com.xplora.xpsettings.R;
+import com.xplora.xpsettings.SettingApplication;
+import com.xplora.xpsettings.Utils.Constant;
+import com.xplora.xpsettings.Utils.ResUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class ConnectionsActivity extends BaseActivity {
+    private final List<WatchModel> mData = new ArrayList<>();
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.list_activity);
+
+        ResUtils.initResUtils(this, Constant.PACKAGE_NAME);
+
+        initData();
+        initView();
+    }
+
+    private void initData() {
+        String[] stringList = getResources().getStringArray(R.array.connections_title_array);
+        for (int i = 0; i < stringList.length; i++) {
+            WatchModel model = new WatchModel();
+            model.title = stringList[i].trim();
+            model.isSwitchOn = true;
+            mData.add(model);
+        }
+    }
+
+    private void initView() {
+        //list
+        ConnectionsAdapter adapter = new ConnectionsAdapter(ConnectionsActivity.this, R.layout.item_xpstyle, mData);
+        ListView listView = findViewById(R.id.list_view);
+        listView.setAdapter(adapter);
+
+        listView.setOnItemClickListener((adapterView, view, i, l) -> {
+            Intent intent;
+            switch (i) {
+                case 0:
+                    intent = new Intent(ConnectionsActivity.this, WiFiActivity.class);
+                    startActivity(intent);
+                    break;
+                case 1:
+                    intent = new Intent(ConnectionsActivity.this, ScreenTimeActivity.class);
+                    startActivity(intent);
+                    break;
+                case 2:
+                    intent = new Intent(ConnectionsActivity.this, BrightActivity.class);
+                    startActivity(intent);
+                    break;
+                case 4:
+                    intent = new Intent(ConnectionsActivity.this, QRActivity.class);
+                    startActivity(intent);
+                    break;
+                case 8:
+                    intent = new Intent(ConnectionsActivity.this, AboutActivity.class);
+                    startActivity(intent);
+                    break;
+                default:
+                    break;
+            }
+        });
+    }
+}

+ 6 - 11
app/src/main/java/com/xplora/xpsettings/Activity/SettingsActivity.java

@@ -26,9 +26,6 @@ public class SettingsActivity extends BaseActivity {
 
         ResUtils.initResUtils(this, Constant.PACKAGE_NAME);
 
-        //标题
-        setWatchTitle(getString(R.string.app_name));
-
         initData();
         initView();
     }
@@ -38,15 +35,13 @@ public class SettingsActivity extends BaseActivity {
         for (int i = 0; i < stringList.length; i++) {
             WatchModel model = new WatchModel();
             model.title = stringList[i].trim();
-            model.background = ResUtils.getImageId("settings_bg_", i);
-            model.icon = ResUtils.getImageId("settings_icon_", i);
             mData.add(model);
         }
     }
 
     private void initView() {
         //list
-        SettingsAdapter adapter = new SettingsAdapter(SettingsActivity.this, R.layout.item_settings, mData);
+        SettingsAdapter adapter = new SettingsAdapter(SettingsActivity.this, R.layout.item_xpstyle, mData);
         ListView listView = findViewById(R.id.list_view);
         listView.setAdapter(adapter);
 
@@ -54,11 +49,7 @@ public class SettingsActivity extends BaseActivity {
             Intent intent;
             switch (i) {
                 case 0:
-                    intent = new Intent(SettingsActivity.this, WiFiActivity.class);
-                    startActivity(intent);
-                    break;
-                case 1:
-                    intent = new Intent(SettingsActivity.this, ScreenTimeActivity.class);
+                    intent = new Intent(SettingsActivity.this, ConnectionsActivity.class);
                     startActivity(intent);
                     break;
                 case 2:
@@ -73,6 +64,10 @@ public class SettingsActivity extends BaseActivity {
                     intent = new Intent(SettingsActivity.this, AboutActivity.class);
                     startActivity(intent);
                     break;
+                case 10:
+                    intent = new Intent(SettingsActivity.this, ScreenTimeActivity.class);
+                    startActivity(intent);
+                    break;
                 default:
                     break;
             }

+ 78 - 0
app/src/main/java/com/xplora/xpsettings/Adapter/ConnectionsAdapter.java

@@ -0,0 +1,78 @@
+package com.xplora.xpsettings.Adapter;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Handler;
+import android.os.Message;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.ImageView;
+import android.widget.Switch;
+import android.widget.TextView;
+
+import com.xplora.xpsettings.Activity.TestToolsActivity;
+import com.xplora.xpsettings.Activity.WiFiActivity;
+import com.xplora.xpsettings.Model.WatchModel;
+import com.xplora.xpsettings.R;
+import com.xplora.xpsettings.Utils.ResUtils;
+
+import java.util.List;
+
+public class ConnectionsAdapter extends ArrayAdapter<WatchModel> {
+    private final int resourceId;
+    private Handler mHandler = null;
+
+    public ConnectionsAdapter(Context context, int textViewResourceId, List<WatchModel> objects) {
+        super(context, textViewResourceId, objects);
+        resourceId = textViewResourceId;
+    }
+
+    @SuppressLint("InflateParams")
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        View view = LayoutInflater.from(getContext()).inflate(resourceId, null);//实例化一个对象
+        TextView itemTitle = view.findViewById(R.id.item_title);
+        TextView itemDetail = view.findViewById(R.id.item_detail);
+        TextView itemSwitchTV = view.findViewById(R.id.item_switchTV);
+        ImageView itembackground = view.findViewById(R.id.item_background);
+        ImageView itemIcon = view.findViewById(R.id.item_icon);
+
+
+        WatchModel model = getItem(position); // 获取当前项的Fruit实例
+        if (itemTitle != null) {
+            itemTitle.setText(model.title);
+        }
+        if (itembackground != null) {
+            itembackground.setImageResource(R.drawable.settings_bg_default);
+        }
+
+        boolean isOpen = model.isSwitchOn;
+        switch (position) {
+            case 0:
+                if (itemIcon != null) {
+                    itemIcon.setImageResource(isOpen ? R.drawable.connections_bt_1 : R.drawable.connections_bt_0);
+                }
+                break;
+            case 1:
+                if (itemIcon != null) {
+                    itemIcon.setImageResource(isOpen ? R.drawable.connections_wifi_1 : R.drawable.connections_wifi_0);
+                }
+                break;
+            case 2:
+                if (itemIcon != null)
+                    itemIcon.setVisibility(View.GONE);
+                if (itemSwitchTV != null) {
+                    itemSwitchTV.setVisibility(View.VISIBLE);
+                    itemSwitchTV.setText(isOpen ? R.string.data_roaming_on : R.string.data_roaming_off);
+                    itemSwitchTV.setTextColor(isOpen ? Color.GREEN : Color.RED);
+                }
+                break;
+            default:
+                break;
+        }
+        return view;
+    }
+}

+ 5 - 2
app/src/main/java/com/xplora/xpsettings/Adapter/SettingsAdapter.java

@@ -16,6 +16,7 @@ import com.xplora.xpsettings.Activity.TestToolsActivity;
 import com.xplora.xpsettings.Activity.WiFiActivity;
 import com.xplora.xpsettings.Model.WatchModel;
 import com.xplora.xpsettings.R;
+import com.xplora.xpsettings.Utils.ResUtils;
 
 import java.util.List;
 
@@ -43,10 +44,12 @@ public class SettingsAdapter extends ArrayAdapter<WatchModel> {
             itemTitle.setText(model.title);
         }
         if (itembackground != null) {
-            itembackground.setImageResource(model.background);
+            int imageId = ResUtils.getImageId("settings_bg_", position);
+            itembackground.setImageResource(imageId);
         }
         if (itemIcon != null) {
-            itemIcon.setImageResource(model.icon);
+            int imageId = ResUtils.getImageId("settings_icon_", position);
+            itemIcon.setImageResource(imageId);
         }
         return view;
     }

+ 10 - 0
app/src/main/java/com/xplora/xpsettings/Model/ConnectionsModel.java

@@ -0,0 +1,10 @@
+package com.xplora.xpsettings.Model;
+
+public class ConnectionsModel {
+    public String title = "";
+    public int icon = 0;
+    public int background = 0;
+    public String value = "";
+    public boolean isShowArrow = true;
+    public boolean isSwitchOn = false;
+}

BIN
app/src/main/res/drawable-xhdpi/connections_bt_0.png


BIN
app/src/main/res/drawable-xhdpi/connections_bt_1.png


BIN
app/src/main/res/drawable-xhdpi/connections_wifi_0.png


BIN
app/src/main/res/drawable-xhdpi/connections_wifi_1.png


BIN
app/src/main/res/drawable-xhdpi/settings_bg_default.png


+ 0 - 0
app/src/main/res/layout/item_settings.xml → app/src/main/res/layout/item_connections.xml


+ 72 - 0
app/src/main/res/layout/item_xpstyle.xml

@@ -0,0 +1,72 @@
+<?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="34dp">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        >
+
+        <ImageView
+            android:id="@+id/item_background"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            />
+
+        <TextView
+            android:id="@+id/item_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginStart="12dp"
+            android:fontFamily="Roboto"
+            android:textFontWeight="700"
+            android:textColor="@color/white"
+            android:textSize="11dp" />
+
+        <ImageView
+            android:id="@+id/item_icon"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_alignEnd="@id/item_background"
+            android:layout_marginEnd="6dp"
+            />
+
+        <TextView
+            android:id="@+id/item_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginStart="12dp"
+            android:fontFamily="Roboto"
+            android:textFontWeight="700"
+            android:textColor="#999999"
+            android:textSize="10dp"
+            android:textAlignment="textEnd"
+            android:layout_alignEnd="@id/item_background"
+            android:layout_marginEnd="6dp"
+            android:visibility="gone"
+            />
+
+        <TextView
+            android:id="@+id/item_switchTV"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginStart="12dp"
+            android:fontFamily="Roboto"
+            android:textFontWeight="700"
+            android:textSize="10dp"
+            android:textAlignment="textEnd"
+            android:layout_alignEnd="@id/item_background"
+            android:layout_marginEnd="12dp"
+            android:visibility="gone"
+            />
+
+    </RelativeLayout>
+
+</LinearLayout>

+ 6 - 0
app/src/main/res/values/arrays.xml

@@ -25,6 +25,12 @@
         <item>Camera</item>
     </string-array>
 
+    <string-array name="connections_title_array">
+        <item>Bluetooth</item>
+        <item>Wi-Fi</item>
+        <item>Data Roaming</item>
+    </string-array>
+
     <string-array name="screen_time_value_array">
         <item>5s</item>
         <item>15s</item>

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

@@ -27,4 +27,7 @@
     <string name="software_install_hint">Keep connection, do not turn watch off</string>
     <string name="restore_factory_settings">Are you sure to Restore Factory Settings?</string>
     <string name="qr_code">QR code</string>
+
+    <string name="data_roaming_on">ON</string>
+    <string name="data_roaming_off">OFF</string>
 </resources>