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.UsageUpdateType
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 io.realm.kotlin.UpdatePolicy
import io.realm.kotlin.ext.query
@ -635,7 +637,7 @@ open class LauncherActivity : CommonActivity() {
override fun onPause() {
super.onPause()
Wearable.getMessageClient(this).removeListener(messageListener)
}
// 위젯 선택기 실행
fun selectWidget() {
@ -946,6 +948,23 @@ open class LauncherActivity : CommonActivity() {
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)
override fun onResume() {
super.onResume()
@ -956,6 +975,7 @@ open class LauncherActivity : CommonActivity() {
requestPermission()
}
resumeCount += 1
Wearable.getMessageClient(this).addListener(messageListener)
}
private fun openSearch() {

View File

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

View File

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

View File

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