5 changed files with 325 additions and 10 deletions
-
9app/src/main/java/com/ouxuan/oxface/DebugActivity.java
-
5app/src/main/java/com/ouxuan/oxface/MainActivity.java
-
7app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java
-
52app/src/main/java/com/ouxuan/oxface/device/DeviceType7Manager.java
-
262app/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; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue