fix: shockTime/shockIntervalTime 改为 Float(服务端下发小数如 0.50)
实测服务端 type=7 下发的 shockTime=0.50、shockIntervalTime=0.50, 之前用 optInt 解析会截断为 0,导致振动时长 0ms。 - VibrationPattern: shockTime/shockIntervalTime Int → Float - VibrationConfigManager: optInt → optDouble().toFloat() - FiseVibrationController: 毫秒计算适配 Float Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -122,8 +122,8 @@ class FiseVibrationController @Inject constructor(
|
||||
*/
|
||||
@Suppress("DEPRECATION")
|
||||
private suspend fun executePatternLoop(pattern: VibrationPattern) {
|
||||
val vibrateDurationMs = pattern.shockTime * 1000L
|
||||
val intervalMs = pattern.shockIntervalTime * 1000L
|
||||
val vibrateDurationMs = (pattern.shockTime * 1000).toLong()
|
||||
val intervalMs = (pattern.shockIntervalTime * 1000).toLong()
|
||||
|
||||
// 外层循环:频次循环
|
||||
for (cycle in 0 until pattern.shockCycleTimes) {
|
||||
|
||||
@@ -77,9 +77,9 @@ class VibrationConfigManager @Inject constructor() {
|
||||
serverParams[planId] = VibrationPattern(
|
||||
planId = planId,
|
||||
planName = obj.optString("planName", ""),
|
||||
shockTime = obj.optInt("shockTime", 1),
|
||||
shockTime = obj.optDouble("shockTime", 1.0).toFloat(),
|
||||
shockTimes = obj.optInt("shockTimes", 1),
|
||||
shockIntervalTime = obj.optInt("shockIntervalTime", 0),
|
||||
shockIntervalTime = obj.optDouble("shockIntervalTime", 0.0).toFloat(),
|
||||
shockCycleTimes = obj.optInt("shockCycleTimes", 1),
|
||||
shockState = obj.optInt("shockState", 1) == 1,
|
||||
voiceState = obj.optInt("voiceState", 1) == 1,
|
||||
|
||||
@@ -12,12 +12,12 @@ data class VibrationPattern(
|
||||
val planId: Int,
|
||||
/** 方案名称 */
|
||||
val planName: String,
|
||||
/** 单次振动时长(秒) */
|
||||
val shockTime: Int,
|
||||
/** 单次振动时长(秒,支持小数如 0.5) */
|
||||
val shockTime: Float,
|
||||
/** 每频次振动次数 */
|
||||
val shockTimes: Int,
|
||||
/** 振动间休息时长(秒) */
|
||||
val shockIntervalTime: Int,
|
||||
/** 振动间休息时长(秒,支持小数如 0.5) */
|
||||
val shockIntervalTime: Float,
|
||||
/** 频次循环次数 */
|
||||
val shockCycleTimes: Int,
|
||||
/** 是否启用振动 */
|
||||
|
||||
Reference in New Issue
Block a user