liuzhenxing 3 年之前
父節點
當前提交
ac435096c8

+ 1 - 0
.idea/misc.xml

@@ -5,6 +5,7 @@
       <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_switch.xml" value="0.20199275362318841" />
         <entry key="app/src/main/res/layout/item_wifi_switch.xml" value="0.1" />
         <entry key="app/src/main/res/layout/item_xpstyle.xml" value="0.20199275362318841" />
       </map>

+ 16 - 1
app/src/main/AndroidManifest.xml

@@ -10,9 +10,15 @@
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 位置信息 -->
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 如果是安卓10.0,需要后台获取连接的wifi名称则添加进程获取位置信息权限 -->
     <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> <!-- android 10.0使用wifi api新添加的权限 -->
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.WRITE_SETTINGS" />
     <uses-permission android:name="android.permission.REBOOT" />
+    <!--蓝牙权限-->
+    <uses-permission android:name="android.permission.BLUETOOTH"/>
+    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
+    <!--定位权限-->
+    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
+
 
     <permission
         android:name="com.xplora.permission.localsocket"
@@ -92,6 +98,15 @@
             android:name=".Activity.ConnectionsActivity"
             android:configChanges="keyboardHidden|orientation|screenSize"
             android:launchMode="standard" />
+        <activity
+            android:name=".Activity.DataRoamingActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:launchMode="standard" />
+
+        <activity
+            android:name=".Activity.BluetoothActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize"
+            android:launchMode="standard" />
     </application>
 
 </manifest>

+ 68 - 0
app/src/main/java/com/xplora/xpsettings/Activity/BluetoothActivity.java

@@ -0,0 +1,68 @@
+package com.xplora.xpsettings.Activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.widget.ListView;
+
+import com.xplora.xpsettings.Adapter.WiFiAdapter;
+import com.xplora.xpsettings.Model.WifiModel;
+import com.xplora.xpsettings.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BluetoothActivity extends BaseActivity {
+    private final List<WifiModel> mData = new ArrayList<>();
+    WiFiAdapter adapter;
+    ListView listView;
+    private static final int REQUEST_LOGIN = 0;
+    private static final int REQUEST_CONTROL = 1;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.list_activity);
+
+        initView();
+    }
+
+    private void initView() {
+        //标题
+        setWatchTitle(getResources().getStringArray(R.array.settings_title_array)[0]);
+
+        //list
+        adapter = new WiFiAdapter(BluetoothActivity.this, 0, mData, handler);
+        listView = findViewById(R.id.list_view);
+        listView.setAdapter(adapter);
+
+        listView.setOnItemClickListener((adapterView, view, i, l) -> {
+            WifiModel model = (WifiModel) adapterView.getAdapter().getItem(i);
+            if (i != 0) {
+                if (model.status == WifiModel.STATUS.LOCKED) {
+                    Intent intent = new Intent(BluetoothActivity.this, WifiLoginActivity.class);
+                    intent.putExtra("ssid", model.title);
+                    intent.putExtra("bssid", model.BSSID);
+                    startActivityForResult(intent, REQUEST_LOGIN);
+                } else if (model.status == WifiModel.STATUS.OPEN) {
+                    //connect(model.title, model.BSSID, "");
+                } else if (model.status == WifiModel.STATUS.SAVED || model.status == WifiModel.STATUS.CONNECTED) {
+                    Intent intent = new Intent(BluetoothActivity.this, WiFiControlActivity.class);
+                    intent.putExtra("ssid", model.title);
+                    intent.putExtra("bssid", model.BSSID);
+                    intent.putExtra("status", model.status.ordinal());
+                    startActivityForResult(intent, REQUEST_CONTROL);
+                }
+            }
+        });
+    }
+
+    Handler handler = new Handler(Looper.myLooper()) {
+        @Override
+        public void handleMessage(Message msg) {
+            super.handleMessage(msg);
+        }
+    };
+}

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

@@ -56,7 +56,7 @@ public class ConnectionsActivity extends BaseActivity {
                     startActivity(intent);
                     break;
                 case 2:
-                    intent = new Intent(ConnectionsActivity.this, BrightActivity.class);
+                    intent = new Intent(ConnectionsActivity.this, DataRoamingActivity.class);
                     startActivity(intent);
                     break;
                 default:

+ 19 - 1
app/src/main/java/com/xplora/xpsettings/Activity/DataRoamingActivity.java

@@ -4,19 +4,37 @@ import android.os.Bundle;
 import android.widget.ListView;
 
 import com.xplora.xpsettings.Adapter.BaseListAdapter;
+import com.xplora.xpsettings.Model.CellModel;
 import com.xplora.xpsettings.R;
+import com.xplora.xpsettings.Utils.Constant;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class DataRoamingActivity extends BaseActivity {
+    private final List<CellModel> mData = new ArrayList<>();
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        setContentView(R.layout.list_activity);
 
+        initData();
         initView();
     }
 
+    private void initData() {
+        String[] stringList = getResources().getStringArray(R.array.connections_title_array);
+
+        CellModel model = new CellModel();
+        model.title = stringList[2].trim();
+        model.cellType = Constant.CellType.SWITCH;
+        mData.add(model);
+    }
+
     private void initView() {
         //list
-        BaseListAdapter adapter = new BaseListAdapter(DataRoamingActivity.this, R.layout.item_xpstyle, null);
+        BaseListAdapter adapter = new BaseListAdapter(DataRoamingActivity.this, R.layout.item_xpstyle, mData);
         ListView listView = findViewById(R.id.list_view);
         listView.setAdapter(adapter);
     }

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

@@ -38,6 +38,9 @@ public class BaseListAdapter extends ArrayAdapter<CellModel> {
         if (model.cellType == Constant.CellType.XPSTYLE) {
             view = LayoutInflater.from(getContext()).inflate(R.layout.item_xpstyle, null);
         }
+        if (model.cellType == Constant.CellType.SWITCH) {
+            view = LayoutInflater.from(getContext()).inflate(R.layout.item_switch, null);
+        }
         else {
             view = LayoutInflater.from(getContext()).inflate(R.layout.item_xpstyle, null);
         }
@@ -45,6 +48,8 @@ public class BaseListAdapter extends ArrayAdapter<CellModel> {
         TextView itemTitle = view.findViewById(R.id.item_title);
         ImageView itembackground = view.findViewById(R.id.item_background);
         ImageView itemIcon = view.findViewById(R.id.item_icon);
+        Switch itemSwitch = view.findViewById(R.id.item_switch);
+
 
         if (itemTitle != null) {
             itemTitle.setText(model.title);
@@ -57,6 +62,16 @@ public class BaseListAdapter extends ArrayAdapter<CellModel> {
             int imageId = ResUtils.getImageId("settings_icon_", position);
             itemIcon.setImageResource(imageId);
         }
+        if (itemSwitch != null) {
+            itemSwitch.setChecked(model.isOn);
+//            itemSwitch.setOnCheckedChangeListener((compoundButton, b) -> {
+//                        Message message = new Message();
+//                        message.what = TestToolsActivity.MSG_LOGGABLE_CHANGE;
+//                        message.obj = b ? 1 : 0;
+//                        mHandler.sendMessage(message);
+//                    }
+//            );
+        }
         return view;
     }
 }

+ 13 - 13
app/src/main/res/layout/item_switch.xml

@@ -6,29 +6,29 @@
     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="40dp"
-        android:layout_marginLeft="2dp"
-        android:layout_marginRight="2dp"
-        android:background="@drawable/button_shape"
+        android:layout_marginLeft="15dp"
+        android:layout_marginRight="15dp"
         >
 
-        <TextView
-            android:id="@+id/item_title"
+        <Switch
+            android:id="@+id/item_switch"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_marginStart="8dp"
-            android:fontFamily="Roboto"
+            android:layout_alignParentStart="true"
             android:layout_centerVertical="true"
-            android:textColor="@color/white"
-            android:textSize="13sp" />
+            >
+        </Switch>
 
-        <Switch
-            android:id="@+id/item_switch"
+
+        <TextView
+            android:id="@+id/item_title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentEnd="true"
+            android:fontFamily="Roboto"
             android:layout_centerVertical="true"
-            >
-        </Switch>
+            android:textColor="@color/white"
+            android:textSize="13sp" />
 
     </RelativeLayout>