Skip to content

Commit 5de977a

Browse files
committed
#985 feat: constraints for foldable hinge being open/closed.
1 parent cecbb02 commit 5de977a

7 files changed

Lines changed: 27 additions & 14 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
- #661 Action to execute shell commands.
2020
- #991 Consolidated volume and stream actions.
2121
- #1066 Action to mute/unmute microphone.
22+
- #985 Constraints for foldable hinge being open/closed.
2223

2324
## Removed
2425

base/src/main/java/io/github/sds100/keymapper/base/constraints/ConstraintSnapshot.kt

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package io.github.sds100.keymapper.base.constraints
22

33
import android.media.AudioManager
4+
import android.os.Build
45
import io.github.sds100.keymapper.base.system.accessibility.IAccessibilityService
56
import io.github.sds100.keymapper.common.utils.Orientation
67
import io.github.sds100.keymapper.common.utils.firstBlocking
78
import io.github.sds100.keymapper.system.bluetooth.BluetoothDeviceInfo
89
import io.github.sds100.keymapper.system.camera.CameraAdapter
910
import io.github.sds100.keymapper.system.devices.DevicesAdapter
1011
import io.github.sds100.keymapper.system.display.DisplayAdapter
11-
import io.github.sds100.keymapper.system.hinge.FoldableAdapter
12-
import io.github.sds100.keymapper.system.hinge.HingeState
12+
import io.github.sds100.keymapper.system.foldable.FoldableAdapter
13+
import io.github.sds100.keymapper.system.foldable.HingeState
1314
import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter
1415
import io.github.sds100.keymapper.system.lock.LockScreenAdapter
1516
import io.github.sds100.keymapper.system.media.MediaAdapter
@@ -145,16 +146,24 @@ class LazyConstraintSnapshot(
145146
is ConstraintData.Discharging -> !isCharging
146147

147148
is ConstraintData.HingeClosed -> {
148-
when (val state = foldableAdapter.hingeState.value) {
149-
is HingeState.Available -> state.angle < 30f
150-
is HingeState.Unavailable -> false
149+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
150+
when (val state = foldableAdapter.hingeState.value) {
151+
is HingeState.Available -> state.angle < 30f
152+
is HingeState.Unavailable -> false
153+
}
154+
} else {
155+
false
151156
}
152157
}
153158

154159
is ConstraintData.HingeOpen -> {
155-
when (val state = foldableAdapter.hingeState.value) {
156-
is HingeState.Available -> state.angle >= 150f
157-
is HingeState.Unavailable -> false
160+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
161+
when (val state = foldableAdapter.hingeState.value) {
162+
is HingeState.Available -> state.angle >= 150f
163+
is HingeState.Unavailable -> false
164+
}
165+
} else {
166+
false
158167
}
159168
}
160169

base/src/main/java/io/github/sds100/keymapper/base/constraints/DetectConstraintsUseCase.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import io.github.sds100.keymapper.system.camera.CameraAdapter
88
import io.github.sds100.keymapper.system.camera.CameraLens
99
import io.github.sds100.keymapper.system.devices.DevicesAdapter
1010
import io.github.sds100.keymapper.system.display.DisplayAdapter
11-
import io.github.sds100.keymapper.system.hinge.FoldableAdapter
11+
import io.github.sds100.keymapper.system.foldable.FoldableAdapter
1212
import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter
1313
import io.github.sds100.keymapper.system.lock.LockScreenAdapter
1414
import io.github.sds100.keymapper.system.media.MediaAdapter

base/src/main/java/io/github/sds100/keymapper/base/sorting/comparators/KeyMapConstraintsComparator.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,9 @@ class KeyMapConstraintsComparator(
133133
.toEpochSecond(LocalDate.now(), ZoneOffset.UTC)
134134
.toString(),
135135
)
136+
137+
ConstraintData.HingeClosed -> Success("")
138+
ConstraintData.HingeOpen -> Success("")
136139
}
137140
}
138141
}

system/src/main/java/io/github/sds100/keymapper/system/SystemHiltModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import io.github.sds100.keymapper.system.display.AndroidDisplayAdapter
2222
import io.github.sds100.keymapper.system.display.DisplayAdapter
2323
import io.github.sds100.keymapper.system.files.AndroidFileAdapter
2424
import io.github.sds100.keymapper.system.files.FileAdapter
25-
import io.github.sds100.keymapper.system.hinge.AndroidFoldableAdapter
26-
import io.github.sds100.keymapper.system.hinge.FoldableAdapter
25+
import io.github.sds100.keymapper.system.foldable.AndroidFoldableAdapter
26+
import io.github.sds100.keymapper.system.foldable.FoldableAdapter
2727
import io.github.sds100.keymapper.system.inputmethod.AndroidInputMethodAdapter
2828
import io.github.sds100.keymapper.system.inputmethod.InputMethodAdapter
2929
import io.github.sds100.keymapper.system.intents.IntentAdapter

system/src/main/java/io/github/sds100/keymapper/system/hinge/AndroidFoldableAdapter.kt renamed to system/src/main/java/io/github/sds100/keymapper/system/foldable/AndroidFoldableAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.github.sds100.keymapper.system.hinge
1+
package io.github.sds100.keymapper.system.foldable
22

33
import android.content.Context
44
import android.hardware.Sensor

system/src/main/java/io/github/sds100/keymapper/system/hinge/FoldableAdapter.kt renamed to system/src/main/java/io/github/sds100/keymapper/system/foldable/FoldableAdapter.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package io.github.sds100.keymapper.system.hinge
1+
package io.github.sds100.keymapper.system.foldable
22

3-
import androidx.annotation.RequiresApi
43
import android.os.Build
4+
import androidx.annotation.RequiresApi
55
import kotlinx.coroutines.flow.StateFlow
66

77
/**

0 commit comments

Comments
 (0)