Browse Source

pad bar control

dev
MTing 3 weeks ago
parent
commit
49e8f35b5c
  1. 9
      app/src/main/java/com/ouxuan/oxface/DebugActivity.java
  2. 5
      app/src/main/java/com/ouxuan/oxface/MainActivity.java
  3. 7
      app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
  4. 52
      app/src/main/java/com/ouxuan/oxface/device/DeviceType7Manager.java
  5. 262
      app/src/main/java/com/ouxuan/oxface/device/OxPadBar.java

9
app/src/main/java/com/ouxuan/oxface/DebugActivity.java

@ -22,6 +22,7 @@ import com.ouxuan.oxface.device.DeviceUtils;
import com.ouxuan.oxface.device.GateABController; import com.ouxuan.oxface.device.GateABController;
import com.ouxuan.oxface.device.HuaWeiScanManager; import com.ouxuan.oxface.device.HuaWeiScanManager;
import com.ouxuan.oxface.device.Ox485; import com.ouxuan.oxface.device.Ox485;
import com.ouxuan.oxface.device.OxPadBar;
import com.ouxuan.oxface.device.RelayController; import com.ouxuan.oxface.device.RelayController;
import com.ouxuan.oxface.network.NetworkEnvironmentManager; import com.ouxuan.oxface.network.NetworkEnvironmentManager;
import com.ouxuan.oxface.network.NetworkManager; import com.ouxuan.oxface.network.NetworkManager;
@ -389,12 +390,12 @@ public class DebugActivity extends Activity {
} }
/** /**
* 隐藏状态栏和导航栏适用于V6设备
* 隐藏状态栏和导航栏
*/ */
private void hideStatusBar() { private void hideStatusBar() {
logMessage("触发隐藏状态栏和导航栏..."); logMessage("触发隐藏状态栏和导航栏...");
try { try {
DeviceUtils.hidePadBarV6(this);
OxPadBar.hidePadBar(this);
logMessage("隐藏状态栏和导航栏命令已发送"); logMessage("隐藏状态栏和导航栏命令已发送");
showToast("隐藏状态栏和导航栏命令已发送"); showToast("隐藏状态栏和导航栏命令已发送");
} catch (Exception e) { } catch (Exception e) {
@ -405,12 +406,12 @@ public class DebugActivity extends Activity {
} }
/** /**
* 显示状态栏和导航栏适用于V6设备
* 显示状态栏和导航栏
*/ */
private void showStatusBar() { private void showStatusBar() {
logMessage("触发显示状态栏和导航栏..."); logMessage("触发显示状态栏和导航栏...");
try { try {
DeviceUtils.showPadBarV6(this);
OxPadBar.showPadBar(this);
logMessage("显示状态栏和导航栏命令已发送"); logMessage("显示状态栏和导航栏命令已发送");
showToast("显示状态栏和导航栏命令已发送"); showToast("显示状态栏和导航栏命令已发送");
} catch (Exception e) { } catch (Exception e) {

5
app/src/main/java/com/ouxuan/oxface/MainActivity.java

@ -31,6 +31,7 @@ import com.google.gson.Gson;
import com.ouxuan.oxface.data.DeviceSelectDataManager; import com.ouxuan.oxface.data.DeviceSelectDataManager;
import com.ouxuan.oxface.data.LoginDataManager; import com.ouxuan.oxface.data.LoginDataManager;
import com.ouxuan.oxface.device.DeviceUtils; import com.ouxuan.oxface.device.DeviceUtils;
import com.ouxuan.oxface.device.OxPadBar;
import com.ouxuan.oxface.device.RelayController; import com.ouxuan.oxface.device.RelayController;
import com.ouxuan.oxface.network.api.PadApiService; import com.ouxuan.oxface.network.api.PadApiService;
import com.ouxuan.oxface.network.api.UserApiService; import com.ouxuan.oxface.network.api.UserApiService;
@ -1391,8 +1392,8 @@ public class MainActivity extends AppCompatActivity {
} }
} }
// TODO: 5. 初始化状态栏开关管理模块待实现
// StatusBarManager.initByDeviceType(deviceType);
// 5. 初始化状态栏开关管理模块
OxPadBar.setDeviceType(deviceType);
LogManager.logInfo("MainActivity", "设备类型相关模块初始化完成"); LogManager.logInfo("MainActivity", "设备类型相关模块初始化完成");

7
app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java

@ -48,6 +48,7 @@ import com.baidu.idl.main.facesdk.FaceInfo;
import com.baidu.idl.main.facesdk.model.BDFaceImageInstance; import com.baidu.idl.main.facesdk.model.BDFaceImageInstance;
import com.ouxuan.oxface.data.DeviceSelectDataManager; import com.ouxuan.oxface.data.DeviceSelectDataManager;
import com.ouxuan.oxface.device.DeviceUtils; import com.ouxuan.oxface.device.DeviceUtils;
import com.ouxuan.oxface.device.OxPadBar;
import com.ouxuan.oxface.orderOX.OrderVerificationResultActivity; import com.ouxuan.oxface.orderOX.OrderVerificationResultActivity;
import com.ouxuan.oxface.orderOX.OrderSelectionActivity; import com.ouxuan.oxface.orderOX.OrderSelectionActivity;
import com.ouxuan.oxface.orderOX.VerificationCodeActivity; import com.ouxuan.oxface.orderOX.VerificationCodeActivity;
@ -312,12 +313,12 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi
//禁用状态栏 //禁用状态栏
private void initHideStateBar(){ private void initHideStateBar(){
// 隐藏状态栏和导航栏 // 隐藏状态栏和导航栏
DeviceUtils.hidePadBarV6(this);
OxPadBar.hidePadBar(this);
} }
//解锁状态栏 //解锁状态栏
private void releaseHideStateBar(){ private void releaseHideStateBar(){
// 隐藏状态栏和导航栏
DeviceUtils.showPadBarV6(this);
// 显示状态栏和导航栏
OxPadBar.showPadBar(this);
} }
/** /**

52
app/src/main/java/com/ouxuan/oxface/device/DeviceType7Manager.java

@ -95,7 +95,7 @@ public class DeviceType7Manager {
* 检查是否已初始化 * 检查是否已初始化
* @return 是否已初始化 * @return 是否已初始化
*/ */
private boolean isInitialized() {
public boolean isInitialized() {
return yxApiInstance != null && context != null; return yxApiInstance != null && context != null;
} }
@ -674,6 +674,56 @@ public class DeviceType7Manager {
return value == YxGpioConstants.GpioState.HIGH; return value == YxGpioConstants.GpioState.HIGH;
} }
// ==================== 系统UI控制 ====================
/**
* 隐藏状态栏和导航栏适用于第7批设备
* @return 是否成功
*/
public boolean hidePadBarV7() {
if (!isInitialized()) {
LogManager.logError(TAG, "hidePadBarV7: DeviceType7Manager未初始化");
return false;
}
try {
// 隐藏状态栏
setStaBar(false);
// 隐藏导航栏
setNavBar(false);
LogManager.logInfo(TAG, "hidePadBarV7: 成功隐藏状态栏和导航栏");
return true;
} catch (Exception e) {
LogManager.logError(TAG, "hidePadBarV7: 隐藏状态栏和导航栏失败", e);
return false;
}
}
/**
* 显示状态栏和导航栏适用于第7批设备
* @return 是否成功
*/
public boolean showPadBarV7() {
if (!isInitialized()) {
LogManager.logError(TAG, "showPadBarV7: DeviceType7Manager未初始化");
return false;
}
try {
// 显示状态栏
setStaBar(true);
// 显示导航栏
setNavBar(true);
LogManager.logInfo(TAG, "showPadBarV7: 成功显示状态栏和导航栏");
return true;
} catch (Exception e) {
LogManager.logError(TAG, "showPadBarV7: 显示状态栏和导航栏失败", e);
return false;
}
}
// ==================== 释放资源 ==================== // ==================== 释放资源 ====================
/** /**

262
app/src/main/java/com/ouxuan/oxface/device/OxPadBar.java

@ -0,0 +1,262 @@
package com.ouxuan.oxface.device;
import android.content.Context;
import android.util.Log;
import com.ouxuan.oxface.utils.LogManager;
/**
* 状态栏和导航栏统一控制器
* 根据设备类型自动调用对应的状态栏控制方法
*
* @author AI Assistant
* @version 1.0
* @date 2025/09/25
*/
public class OxPadBar {
private static final String TAG = "OxPadBar";
// 设备类型常量
public static final int DEVICE_TYPE_V2 = 2; // 第2批设备
public static final int DEVICE_TYPE_V5 = 5; // 第5批设备第6批
public static final int DEVICE_TYPE_V6 = 6; // 第6批设备第7批
public static final int DEVICE_TYPE_V7 = 7; // 第7批设备
public static final int DEVICE_TYPE_V8 = 8; // 第8批设备
// 当前设备类型
private static int currentDeviceType = -1;
// 第七批设备管理器实例
private static DeviceType7Manager deviceType7Manager;
/**
* 设置设备类型
* @param deviceType 设备类型
*/
public static void setDeviceType(int deviceType) {
currentDeviceType = deviceType;
LogManager.logInfo(TAG, "设置设备类型: " + deviceType);
// 如果是第7批设备初始化管理器
if (deviceType == DEVICE_TYPE_V6) {
deviceType7Manager = DeviceType7Manager.getInstance();
}
}
/**
* 获取当前设备类型
* @return 设备类型
*/
public static int getCurrentDeviceType() {
return currentDeviceType;
}
/**
* 隐藏状态栏和导航栏
* 根据设备类型自动调用对应的实现
* @param context Android上下文
* @return 是否成功
*/
public static boolean hidePadBar(Context context) {
if (currentDeviceType == -1) {
LogManager.logError(TAG, "hidePadBar: 设备类型未设置");
return false;
}
LogManager.logInfo(TAG, "hidePadBar: 设备类型=" + currentDeviceType);
switch (currentDeviceType) {
case DEVICE_TYPE_V5: // 第5批设备第6批- 使用V6方法
return hidePadBarV5(context);
case DEVICE_TYPE_V6: // 第6批设备第7批- 使用DeviceType7Manager
return hidePadBarV6(context);
case DEVICE_TYPE_V2: // 第2批设备 - 预留接口
return hidePadBarV2(context);
case DEVICE_TYPE_V7: // 第7批设备 - 预留接口
return hidePadBarV7(context);
case DEVICE_TYPE_V8: // 第8批设备 - 预留接口
return hidePadBarV8(context);
default:
LogManager.logError(TAG, "hidePadBar: 不支持的设备类型: " + currentDeviceType);
return false;
}
}
/**
* 显示状态栏和导航栏
* 根据设备类型自动调用对应的实现
* @param context Android上下文
* @return 是否成功
*/
public static boolean showPadBar(Context context) {
if (currentDeviceType == -1) {
LogManager.logError(TAG, "showPadBar: 设备类型未设置");
return false;
}
LogManager.logInfo(TAG, "showPadBar: 设备类型=" + currentDeviceType);
switch (currentDeviceType) {
case DEVICE_TYPE_V5: // 第5批设备第6批- 使用V6方法
return showPadBarV5(context);
case DEVICE_TYPE_V6: // 第6批设备第7批- 使用DeviceType7Manager
return showPadBarV6(context);
case DEVICE_TYPE_V2: // 第2批设备 - 预留接口
return showPadBarV2(context);
case DEVICE_TYPE_V7: // 第7批设备 - 预留接口
return showPadBarV7(context);
case DEVICE_TYPE_V8: // 第8批设备 - 预留接口
return showPadBarV8(context);
default:
LogManager.logError(TAG, "showPadBar: 不支持的设备类型: " + currentDeviceType);
return false;
}
}
// ==================== 各设备类型实现 ====================
/**
* 第5批设备第6批- 隐藏状态栏和导航栏
* @param context Android上下文
* @return 是否成功
*/
private static boolean hidePadBarV5(Context context) {
try {
DeviceUtils.hidePadBarV6(context);
LogManager.logInfo(TAG, "hidePadBarV5: 成功隐藏状态栏和导航栏");
return true;
} catch (Exception e) {
LogManager.logError(TAG, "hidePadBarV5: 隐藏状态栏和导航栏失败", e);
return false;
}
}
/**
* 第5批设备第6批- 显示状态栏和导航栏
* @param context Android上下文
* @return 是否成功
*/
private static boolean showPadBarV5(Context context) {
try {
DeviceUtils.showPadBarV6(context);
LogManager.logInfo(TAG, "showPadBarV5: 成功显示状态栏和导航栏");
return true;
} catch (Exception e) {
LogManager.logError(TAG, "showPadBarV5: 显示状态栏和导航栏失败", e);
return false;
}
}
/**
* 第6批设备第7批- 隐藏状态栏和导航栏
* @param context Android上下文
* @return 是否成功
*/
private static boolean hidePadBarV6(Context context) {
if (deviceType7Manager == null) {
LogManager.logError(TAG, "hidePadBarV6: DeviceType7Manager未初始化");
return false;
}
// 初始化DeviceType7Manager如果还未初始化
if (!deviceType7Manager.isInitialized()) {
boolean initSuccess = deviceType7Manager.init(context);
if (!initSuccess) {
LogManager.logError(TAG, "hidePadBarV6: DeviceType7Manager初始化失败");
return false;
}
}
return deviceType7Manager.hidePadBarV7();
}
/**
* 第6批设备第7批- 显示状态栏和导航栏
* @param context Android上下文
* @return 是否成功
*/
private static boolean showPadBarV6(Context context) {
if (deviceType7Manager == null) {
LogManager.logError(TAG, "showPadBarV6: DeviceType7Manager未初始化");
return false;
}
// 初始化DeviceType7Manager如果还未初始化
if (!deviceType7Manager.isInitialized()) {
boolean initSuccess = deviceType7Manager.init(context);
if (!initSuccess) {
LogManager.logError(TAG, "showPadBarV6: DeviceType7Manager初始化失败");
return false;
}
}
return deviceType7Manager.showPadBarV7();
}
/**
* 第2批设备 - 隐藏状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean hidePadBarV2(Context context) {
// TODO: 实现第2批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "hidePadBarV2: 第2批设备状态栏控制暂未实现");
return false;
}
/**
* 第2批设备 - 显示状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean showPadBarV2(Context context) {
// TODO: 实现第2批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "showPadBarV2: 第2批设备状态栏控制暂未实现");
return false;
}
/**
* 第7批设备 - 隐藏状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean hidePadBarV7(Context context) {
// TODO: 实现第7批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "hidePadBarV7: 第7批设备状态栏控制暂未实现");
return false;
}
/**
* 第7批设备 - 显示状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean showPadBarV7(Context context) {
// TODO: 实现第7批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "showPadBarV7: 第7批设备状态栏控制暂未实现");
return false;
}
/**
* 第8批设备 - 隐藏状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean hidePadBarV8(Context context) {
// TODO: 实现第8批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "hidePadBarV8: 第8批设备状态栏控制暂未实现");
return false;
}
/**
* 第8批设备 - 显示状态栏和导航栏预留接口
* @param context Android上下文
* @return 是否成功
*/
private static boolean showPadBarV8(Context context) {
// TODO: 实现第8批设备的状态栏控制逻辑
LogManager.logInfo(TAG, "showPadBarV8: 第8批设备状态栏控制暂未实现");
return false;
}
}
Loading…
Cancel
Save