| app/src/main/java/com/shlb/comb/activity/HomeActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/shlb/comb/activity/SystemSettingsActivity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/drawable/bg_circle.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/layout/fragment_device_list.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/layout/home_list_bluetooth_item.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
app/src/main/java/com/shlb/comb/activity/HomeActivity.java
@@ -36,6 +36,7 @@ private DrawerLayout drawerLayout; protected TextView tv_scan; private long lastScanClickTime = 0; // ç¨äºèæµ private boolean isSessionAdmin = false; // å½åä¼è¯æ¯å¦å·²éªè¯ç®¡çåå¯ç // Bluetooth Variables private BluetoothScanManager scanManager; @@ -177,7 +178,6 @@ // é«çº§è®¾ç½® View menuAdvancedSettings = findViewById(R.id.menu_advanced_settings); menuAdvancedSettings.setVisibility(View.GONE); menuAdvancedSettings.setOnClickListener(v -> { drawerLayout.closeDrawer(GravityCompat.START); startActivity(new Intent(this, AdvancedSettingActivity.class)); @@ -185,11 +185,12 @@ // ç³»ç»è®¾ç½® View menuSystemSettings = findViewById(R.id.menu_system_settings); menuSystemSettings.setVisibility(View.GONE); menuSystemSettings.setOnClickListener(v -> { drawerLayout.closeDrawer(GravityCompat.START); startActivity(new Intent(this, SystemSettingsActivity.class)); }); updateMenuVisibility(); // é¡¶é¨combç¹å»äºä»¶ findViewById(R.id.tv_menu_title).setOnClickListener(new View.OnClickListener() { @@ -384,8 +385,8 @@ .addAction("ç¡®å®", (dialog, index) -> { String text = builder.getEditText().getText().toString(); if ("0880".equals(text)) { findViewById(R.id.menu_advanced_settings).setVisibility(View.VISIBLE); findViewById(R.id.menu_system_settings).setVisibility(View.VISIBLE); isSessionAdmin = true; updateMenuVisibility(); Toast("å·²æ¾ç¤ºéè设置"); dialog.dismiss(); } else { @@ -394,4 +395,21 @@ }) .create(com.qmuiteam.qmui.R.style.QMUI_Dialog).show(); } @Override protected void onResume() { super.onResume(); updateMenuVisibility(); } private void updateMenuVisibility() { boolean keepAdmin = com.blankj.utilcode.util.SPUtils.getInstance().getBoolean("keep_admin_mode", false); int visibility = (keepAdmin || isSessionAdmin) ? View.VISIBLE : View.GONE; View menuAdvanced = findViewById(R.id.menu_advanced_settings); View menuSystem = findViewById(R.id.menu_system_settings); if (menuAdvanced != null) menuAdvanced.setVisibility(visibility); if (menuSystem != null) menuSystem.setVisibility(visibility); } } app/src/main/java/com/shlb/comb/activity/SystemSettingsActivity.java
@@ -72,10 +72,19 @@ // Toast("æµè¯é¡µé¢: " + (isChecked ? "å¼å¯" : "å ³é")); // }); QMUICommonListItemView itemKeepAdmin = mGroupListView.createItemView("ä¿æç®¡ç忍¡å¼"); itemKeepAdmin.setAccessoryType(QMUICommonListItemView.ACCESSORY_TYPE_SWITCH); boolean isKeepAdmin = com.blankj.utilcode.util.SPUtils.getInstance().getBoolean("keep_admin_mode", false); itemKeepAdmin.getSwitch().setChecked(isKeepAdmin); itemKeepAdmin.getSwitch().setOnCheckedChangeListener((buttonView, isChecked) -> { com.blankj.utilcode.util.SPUtils.getInstance().put("keep_admin_mode", isChecked); Toast("管ç忍¡å¼æä¹ å: " + (isChecked ? "å¼å¯" : "å ³é")); }); QMUIGroupListView.newSection(this) .setTitle("设置") .addItemView(itemCmdLog, null) // .addItemView(itemTestPage, null) .addItemView(itemKeepAdmin, null) .addTo(mGroupListView); } app/src/main/java/com/shlb/comb/adapter/HomeDeviceListAdapter.java
@@ -40,7 +40,7 @@ final ViewHolder viewHolder; // General ListView optimization code. if (view == null) { view = mInflater.inflate(R.layout.home_list_bluetooth_item, null); view = mInflater.inflate(R.layout.home_list_bluetooth_item, parent, false); viewHolder = new ViewHolder(); viewHolder.deviceAddress = (TextView) view.findViewById(R.id.device_address); viewHolder.deviceName = (TextView) view.findViewById(R.id.device_name); app/src/main/java/com/shlb/comb/fragment/DeviceListFragment.java
@@ -57,6 +57,7 @@ private QMUIEmptyView mEmptyView; private ListView homeList; private android.widget.ProgressBar pbScanning; private BluetoothScanManager scanManager; private BluetoothLeDeviceStore mDeviceStore; private BluetoothUtils mBluetoothUtils; @@ -87,6 +88,7 @@ View view = inflater.inflate(R.layout.fragment_device_list, container, false); mEmptyView = view.findViewById(R.id.emptyView); homeList = view.findViewById(R.id.homeList); pbScanning = view.findViewById(R.id.pb_scanning); return view; } @@ -155,6 +157,7 @@ scanManager.setScanOverListener(new ScanOverListener() { @Override public void onScanOver() { if (pbScanning != null) pbScanning.setVisibility(View.GONE); } }); @@ -162,6 +165,7 @@ @Override public void onScanFailed(final int errorCode) { super.onScanFailed(errorCode); if (pbScanning != null) pbScanning.setVisibility(View.GONE); Toast.makeText(getContext(), "æ«æå¤±è´¥ï¼" + errorCode, Toast.LENGTH_SHORT).show(); } @@ -207,6 +211,7 @@ mDeviceStore.clear(); EventBus.getDefault().post(new UpdateEvent(UpdateEvent.Type.SCAN_UPDATE)); ((BaseActivity) getActivity()).Toast("å¼å§æ«æ..."); if (pbScanning != null) pbScanning.setVisibility(View.VISIBLE); scanManager.startScanNow(); } } app/src/main/res/drawable/bg_circle.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#FFFFFF" /> </shape> app/src/main/res/layout/fragment_device_list.xml
@@ -1,8 +1,48 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F5F6FA" android:orientation="vertical"> <!-- Title Header --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:orientation="horizontal" android:gravity="center_vertical" android:padding="16dp"> <View android:layout_width="4dp" android:layout_height="16dp" android:background="@color/base_color" android:layout_marginEnd="8dp"/> <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="éè¿è®¾å¤" android:textSize="14sp" android:textStyle="bold" android:textColor="#999999" /> <ProgressBar android:id="@+id/pb_scanning" android:layout_width="16dp" android:layout_height="16dp" android:layout_marginEnd="8dp" android:visibility="gone" android:indeterminateTint="@color/base_color" style="?android:attr/progressBarStyleSmall" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#F0F2F5"/> <com.qmuiteam.qmui.widget.QMUIEmptyView android:id="@+id/emptyView" @@ -13,8 +53,10 @@ android:id="@+id/homeList" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@color/gray_line" android:dividerHeight="1dp" android:divider="@null" android:dividerHeight="0dp" android:clipToPadding="false" android:scrollbars="none" android:visibility="gone" /> </LinearLayout> app/src/main/res/layout/home_list_bluetooth_item.xml
@@ -1,118 +1,125 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" android:orientation="vertical"> <!-- Main Content Area --> <LinearLayout android:id="@+id/ll_main_content" android:layout_width="match_parent" android:layout_height="@dimen/dimension_70" android:orientation="horizontal"> <RelativeLayout android:layout_width="@dimen/dimension_80" android:layout_height="@dimen/dimension_70"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:orientation="vertical"> android:background="?attr/selectableItemBackground" android:gravity="center_vertical" android:minHeight="80dp" android:orientation="horizontal" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="12dp" android:paddingBottom="12dp"> <!-- Device Status Icon (RSSSI or Icon) --> <RelativeLayout android:layout_width="48dp" android:layout_height="48dp" android:background="@drawable/bg_circle" android:backgroundTint="#F0F2F5" android:layout_marginEnd="16dp"> <ImageView android:id="@+id/device_icon" android:layout_width="30dp" android:layout_height="30dp" android:src="@mipmap/ic_sanjiao" /> <TextView android:id="@+id/rssi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="@dimen/dimension_5" android:text="-dBm" android:textColor="@color/qmui_config_color_gray_6" android:textSize="@dimen/dimension_10" /> </LinearLayout> android:layout_width="24dp" android:layout_height="24dp" android:layout_centerInParent="true" android:src="@mipmap/ic_sanjiao" app:tint="@color/base_color" /> </RelativeLayout> <RelativeLayout android:layout_width="0dp" android:layout_height="@dimen/dimension_70" android:layout_weight="1"> <!-- Device Info --> <LinearLayout android:layout_width="wrap_content" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_weight="1" android:orientation="vertical"> <TextView android:id="@+id/device_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" /> android:text="Unknown Device" android:textColor="#333333" android:textSize="15sp" android:textStyle="bold" android:maxLines="1" android:ellipsize="end" /> <TextView android:id="@+id/device_address" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dimension_5" android:maxLines="1" android:textColor="@color/qmui_config_color_gray_6" android:textSize="@dimen/dimension_10" /> android:layout_marginTop="4dp" android:text="00:00:00:00:00:00" android:textColor="#999999" android:textSize="12sp" android:fontFamily="monospace" /> <TextView android:id="@+id/rssi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="-65dBm" android:textColor="@color/base_color" android:textSize="11sp" android:textStyle="italic" /> </LinearLayout> </RelativeLayout> <!-- Actions --> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal"> <RelativeLayout android:layout_width="130dp" android:layout_height="@dimen/dimension_70"> <Button <com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton android:id="@+id/conn_btn" android:layout_width="@dimen/dimension_80" android:layout_height="40dp" android:layout_centerVertical="true" android:layout_marginRight="@dimen/dimension_5" android:layout_toLeftOf="@id/iv_down" android:focusable="false" android:text="CONNECT" android:textSize="@dimen/dimension_10" /> android:layout_width="80dp" android:layout_height="32dp" android:text="è¿æ¥" android:textColor="@color/white" android:textSize="12sp" app:qmui_backgroundColor="@color/base_color" app:qmui_radius="16dp" /> <ImageView android:id="@+id/iv_down" android:layout_width="20dp" android:layout_height="20dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="20dp" android:src="@mipmap/ic_down" /> </RelativeLayout> android:layout_marginLeft="12dp" android:src="@mipmap/ic_down" app:tint="#CCCCCC" /> </LinearLayout> </LinearLayout> <!-- More Info Area (Expandable) --> <LinearLayout android:id="@+id/ll_more_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingBottom="10dp" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingBottom="16dp" android:visibility="gone"> <TextView android:id="@+id/tv_device_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> @@ -120,7 +127,7 @@ android:id="@+id/tv_adv_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> @@ -128,7 +135,7 @@ android:id="@+id/tv_flags" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> @@ -136,7 +143,7 @@ android:id="@+id/tv_local_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> @@ -144,33 +151,41 @@ android:id="@+id/tv_tx_power" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> <TextView android:id="@+id/tv_service_uuids" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> <TextView android:id="@+id/tv_service_data" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> <TextView android:id="@+id/tv_manufacturer_data" android:layout_width="wrap_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@color/qmui_config_color_gray_6" android:textColor="#666666" android:textSize="12sp" android:layout_marginTop="2dp"/> </LinearLayout> <!-- Bottom Divider --> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:background="#F0F2F5" /> </LinearLayout>