Bump app dependencies and fix wear rotary input (#2184)

* Bump app dependencies

* Rotary input fixes and improvement
This commit is contained in:
Daniel Shokouhi 2022-01-22 12:19:19 -08:00 committed by GitHub
parent 6bc0512064
commit b7f6a7322c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 20 additions and 32 deletions

View file

@ -154,14 +154,14 @@ dependencies {
implementation("com.google.dagger:hilt-android:2.40.5")
kapt("com.google.dagger:hilt-android-compiler:2.40.5")
implementation("androidx.appcompat:appcompat:1.4.0")
implementation("androidx.appcompat:appcompat:1.4.1")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.4.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.2")
implementation("androidx.constraintlayout:constraintlayout:2.1.3")
implementation("androidx.recyclerview:recyclerview:1.2.1")
implementation("androidx.preference:preference-ktx:1.1.1")
implementation("androidx.navigation:navigation-fragment-ktx:2.3.5")
implementation("androidx.navigation:navigation-ui-ktx:2.3.5")
implementation("com.google.android.material:material:1.4.0")
implementation("com.google.android.material:material:1.5.0")
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.13.1")
@ -204,7 +204,7 @@ dependencies {
implementation("androidx.compose.ui:ui-tooling:1.0.5")
implementation("androidx.activity:activity-compose:1.4.0")
implementation("androidx.navigation:navigation-compose:2.4.0-rc01")
implementation("com.google.android.material:compose-theme-adapter:1.1.1")
implementation("com.google.android.material:compose-theme-adapter:1.1.3")
implementation("com.google.accompanist:accompanist-appcompat-theme:0.20.3")
implementation("com.mikepenz:iconics-core:5.3.3")

View file

@ -55,9 +55,9 @@ dependencies {
implementation("com.google.dagger:hilt-android:2.40.5")
kapt("com.google.dagger:hilt-android-compiler:2.40.5")
api("androidx.room:room-runtime:2.4.0")
api("androidx.room:room-ktx:2.4.0")
kapt("androidx.room:room-compiler:2.4.0")
api("androidx.room:room-runtime:2.4.1")
api("androidx.room:room-ktx:2.4.1")
kapt("androidx.room:room-compiler:2.4.1")
api("androidx.work:work-runtime-ktx:2.7.1")

View file

@ -89,7 +89,7 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.6.0")
implementation("com.google.android.material:material:1.4.0")
implementation("com.google.android.material:material:1.5.0")
implementation("androidx.wear:wear:1.2.0")
implementation("com.google.android.support:wearable:2.8.1")
@ -105,7 +105,7 @@ dependencies {
implementation("com.squareup.okhttp3:okhttp:4.9.3")
implementation("com.mikepenz:iconics-core:5.3.3")
implementation("androidx.appcompat:appcompat:1.4.0")
implementation("androidx.appcompat:appcompat:1.4.1")
implementation("com.mikepenz:community-material-typeface:6.4.95.0-kotlin@aar")
implementation("com.mikepenz:iconics-compose:5.3.3")

View file

@ -8,7 +8,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@ -34,8 +33,6 @@ fun ChooseEntityView(
// Remember expanded state of each header
val expandedStates = rememberExpandedStates(mainViewModel.supportedDomains())
LocalView.current.requestFocus()
WearAppTheme {
ThemeLazyColumn {
item {

View file

@ -3,7 +3,6 @@ package io.homeassistant.companion.android.home.views
import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
@ -30,8 +29,6 @@ fun EntityViewList(
// Remember expanded state of each header
val expandedStates = rememberExpandedStates(entityLists.keys.map { it.hashCode() })
LocalView.current.requestFocus()
WearAppTheme {
ThemeLazyColumn {
for (header in entityListsOrder) {

View file

@ -11,7 +11,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
@ -48,7 +47,6 @@ fun LoadHomePage(
) {
var shortcutEntitySelectionIndex: Int by remember { mutableStateOf(0) }
val context = LocalContext.current
LocalView.current.requestFocus()
WearAppTheme {
if (mainViewModel.entities.isNullOrEmpty() && mainViewModel.favoriteEntityIds.isNullOrEmpty()) {

View file

@ -16,7 +16,6 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
@ -59,7 +58,6 @@ fun MainView(
val haptic = LocalHapticFeedback.current
val context = LocalContext.current
LocalView.current.requestFocus()
WearAppTheme {
Scaffold(

View file

@ -7,7 +7,6 @@ import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.text.style.TextOverflow
import androidx.wear.compose.material.ExperimentalWearMaterialApi
import androidx.wear.compose.material.PositionIndicator
@ -39,7 +38,6 @@ fun SetFavoritesView(
val expandedStates = rememberExpandedStates(mainViewModel.supportedDomains())
val scalingLazyListState: ScalingLazyListState = rememberScalingLazyListState()
LocalView.current.requestFocus()
WearAppTheme {
Scaffold(

View file

@ -8,7 +8,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
@ -37,8 +36,6 @@ fun SetTileShortcutsView(
onShowShortcutTextEnabled: (Boolean) -> Unit
) {
LocalView.current.requestFocus()
WearAppTheme {
ThemeLazyColumn {
item {

View file

@ -9,7 +9,6 @@ import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.hapticfeedback.HapticFeedbackType
import androidx.compose.ui.platform.LocalHapticFeedback
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.wear.compose.material.Chip
@ -72,7 +71,6 @@ fun SettingsView(
onClickTemplateTile: () -> Unit
) {
val scalingLazyListState: ScalingLazyListState = rememberScalingLazyListState()
LocalView.current.requestFocus()
WearAppTheme {
Scaffold(

View file

@ -7,7 +7,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.ColorFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.wear.compose.material.Chip
import androidx.wear.compose.material.ChipDefaults
@ -25,7 +24,6 @@ fun TemplateTileSettingsView(
refreshInterval: Int,
onClickRefreshInterval: () -> Unit
) {
LocalView.current.requestFocus()
ThemeLazyColumn {
item {

View file

@ -12,7 +12,7 @@ import androidx.wear.compose.material.ScalingLazyColumn
import androidx.wear.compose.material.ScalingLazyListScope
import androidx.wear.compose.material.ScalingLazyListState
import androidx.wear.compose.material.rememberScalingLazyListState
import io.homeassistant.companion.android.util.scrollHandler
import io.homeassistant.companion.android.util.rotaryEventHandler
@ExperimentalComposeUiApi
@Composable
@ -23,7 +23,7 @@ fun ThemeLazyColumn(
ScalingLazyColumn(
modifier = Modifier
.fillMaxSize()
.scrollHandler(state),
.rotaryEventHandler(state),
contentPadding = PaddingValues(
top = 24.dp,
start = 8.dp,
@ -32,6 +32,7 @@ fun ThemeLazyColumn(
),
verticalArrangement = Arrangement.spacedBy(4.dp),
horizontalAlignment = Alignment.CenterHorizontally,
state = state,
content = content
)
}

View file

@ -6,6 +6,7 @@ import android.view.MotionEvent
import android.view.ViewConfiguration
import androidx.compose.foundation.gestures.ScrollableState
import androidx.compose.foundation.gestures.scrollBy
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.ExperimentalComposeUiApi
@ -14,6 +15,7 @@ import androidx.compose.ui.composed
import androidx.compose.ui.input.pointer.RequestDisallowInterceptTouchEvent
import androidx.compose.ui.input.pointer.pointerInteropFilter
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.core.view.InputDeviceCompat
import androidx.core.view.MotionEventCompat
import kotlinx.coroutines.launch
@ -21,7 +23,7 @@ import kotlinx.coroutines.launch
private const val TAG = "RotaryEvent"
@ExperimentalComposeUiApi
fun Modifier.scrollHandler(scrollState: ScrollableState): Modifier = composed {
fun Modifier.rotaryEventHandler(scrollState: ScrollableState): Modifier = composed {
val context = LocalContext.current
val scope = rememberCoroutineScope()
val scaledVerticalScrollFactor =
@ -38,8 +40,12 @@ fun Modifier.scrollHandler(scrollState: ScrollableState): Modifier = composed {
}
}
}
val view = LocalView.current
SideEffect {
view.requestFocus()
}
this.pointerInteropFilter(RequestDisallowInterceptTouchEvent()) { event ->
pointerInteropFilter(RequestDisallowInterceptTouchEvent()) { event ->
if (event.action != MotionEvent.ACTION_SCROLL ||
!event.isFromSource(InputDeviceCompat.SOURCE_ROTARY_ENCODER)
) {