This commit is contained in:
lunaticbum 2026-04-09 17:31:08 +09:00
parent 1da8d5bb62
commit f9e8c3de37
4 changed files with 33 additions and 10 deletions

View File

@ -68,6 +68,8 @@ import bums.lunatic.launcher.workers.TorrentService
import bums.lunatic.launcher.workers.UsageLogType import bums.lunatic.launcher.workers.UsageLogType
import bums.lunatic.launcher.workers.UsageUpdateType import bums.lunatic.launcher.workers.UsageUpdateType
import bums.lunatic.launcher.workers.WorkersDb import bums.lunatic.launcher.workers.WorkersDb
import com.google.android.gms.wearable.MessageClient
import com.google.android.gms.wearable.Wearable
import com.google.android.material.color.DynamicColors import com.google.android.material.color.DynamicColors
import io.realm.kotlin.UpdatePolicy import io.realm.kotlin.UpdatePolicy
import io.realm.kotlin.ext.query import io.realm.kotlin.ext.query
@ -635,7 +637,7 @@ open class LauncherActivity : CommonActivity() {
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
Wearable.getMessageClient(this).removeListener(messageListener)
} }
// 위젯 선택기 실행 // 위젯 선택기 실행
fun selectWidget() { fun selectWidget() {
@ -946,6 +948,23 @@ open class LauncherActivity : CommonActivity() {
field = value field = value
} }
private val messageListener = MessageClient.OnMessageReceivedListener { messageEvent ->
when (messageEvent.path) {
"/gesture/next" -> {
// 시계에서 오른쪽으로 휘둘렀을 때: 예) 다음 배경화면으로 변경
val intent = Intent("ACTION_NEXT_WALLPAPER").setPackage(packageName)
sendBroadcast(intent)
showToast("시계 제스처: 다음 배경화면")
}
"/gesture/prev" -> {
// 시계에서 왼쪽으로 휘둘렀을 때: 예) 앱 서랍 열기
showAppDrawer()
showToast("시계 제스처: 앱 서랍")
}
}
}
@RequiresApi(Build.VERSION_CODES.O_MR1) @RequiresApi(Build.VERSION_CODES.O_MR1)
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
@ -956,6 +975,7 @@ open class LauncherActivity : CommonActivity() {
requestPermission() requestPermission()
} }
resumeCount += 1 resumeCount += 1
Wearable.getMessageClient(this).addListener(messageListener)
} }
private fun openSearch() { private fun openSearch() {

View File

@ -149,6 +149,7 @@ class PlayerActivity : AppCompatActivity(), TextureView.SurfaceTextureListener {
nativePlayer?.setSpeed(1.0f) nativePlayer?.setSpeed(1.0f)
} }
true true
} }
// 3. 왼쪽: 롱프레스 주기적 뒤로가기 // 3. 왼쪽: 롱프레스 주기적 뒤로가기

View File

@ -4,6 +4,7 @@
<uses-feature android:name="android.hardware.type.watch" /> <uses-feature android:name="android.hardware.type.watch" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BODY_SENSORS" />
<application <application
android:allowBackup="true" android:allowBackup="true"

View File

@ -49,17 +49,18 @@ class MainActivity : ComponentActivity() , SensorEventListener {
} }
private lateinit var messageClient: MessageClient private lateinit var messageClient: MessageClient
private var lastX = 0f private var lastX = 0f
override fun onSensorChanged(p0: SensorEvent?) { override fun onSensorChanged(event: SensorEvent?) {
p0?.let { event -> event?.let {
val x = event.values[0] if (it.sensor.type == Sensor.TYPE_ACCELEROMETER) {
val x = it.values[0]
// 아주 단순한 Threshold 예시 (나중에 DTW로 교체) // 임계값(Threshold)을 약간 높여 오작동 방지
if (x > 15f) { // 오른쪽으로 강하게 휘둘렀을 때 if (x > 20f) {
sendGestureToLauncher("/gesture/next") sendGestureToLauncher("/gesture/next")
} else if (x < -15f) { } else if (x < -20f) {
sendGestureToLauncher("/gesture/prev") sendGestureToLauncher("/gesture/prev")
}
} }
lastX = x
} }
} }
private fun sendGestureToLauncher(path: String) { private fun sendGestureToLauncher(path: String) {