mirror of
https://github.com/twofas/2fas-android.git
synced 2024-11-24 03:09:54 +01:00
Fix WidgetSettings activity launch mode
This commit is contained in:
parent
888dfcaa02
commit
2a0afb3350
@ -5,7 +5,8 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name=".ui.settings.WidgetSettingsActivity"
|
android:name=".ui.settings.WidgetSettingsActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:label="Widget Setup">
|
android:label="Widget Setup"
|
||||||
|
android:launchMode="singleInstance">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
|
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
@ -33,9 +33,6 @@ class WidgetSettingsActivity : ComponentActivity(), AuthAware {
|
|||||||
AppWidgetManager.INVALID_APPWIDGET_ID
|
AppWidgetManager.INVALID_APPWIDGET_ID
|
||||||
) ?: AppWidgetManager.INVALID_APPWIDGET_ID
|
) ?: AppWidgetManager.INVALID_APPWIDGET_ID
|
||||||
|
|
||||||
val resultValue = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId)
|
|
||||||
setResult(Activity.RESULT_CANCELED, resultValue)
|
|
||||||
|
|
||||||
authTracker.onWidgetSettingsScreen()
|
authTracker.onWidgetSettingsScreen()
|
||||||
|
|
||||||
lifecycle.addObserver(
|
lifecycle.addObserver(
|
||||||
@ -52,7 +49,7 @@ class WidgetSettingsActivity : ComponentActivity(), AuthAware {
|
|||||||
appWidgetId = appWidgetId,
|
appWidgetId = appWidgetId,
|
||||||
) {
|
) {
|
||||||
setResult(Activity.RESULT_OK, Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId))
|
setResult(Activity.RESULT_OK, Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId))
|
||||||
finish()
|
finishAndRemoveTask()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.twofasapp.feature.widget.ui.settings
|
package com.twofasapp.feature.widget.ui.settings
|
||||||
|
|
||||||
|
import androidx.activity.compose.BackHandler
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
@ -26,6 +27,7 @@ import com.twofasapp.designsystem.common.TwCircularProgressIndicator
|
|||||||
import com.twofasapp.designsystem.common.TwSwitch
|
import com.twofasapp.designsystem.common.TwSwitch
|
||||||
import com.twofasapp.designsystem.common.TwTextButton
|
import com.twofasapp.designsystem.common.TwTextButton
|
||||||
import com.twofasapp.designsystem.common.TwTopAppBar
|
import com.twofasapp.designsystem.common.TwTopAppBar
|
||||||
|
import com.twofasapp.designsystem.ktx.currentActivity
|
||||||
import com.twofasapp.designsystem.service.DsServiceSimple
|
import com.twofasapp.designsystem.service.DsServiceSimple
|
||||||
import com.twofasapp.designsystem.service.asState
|
import com.twofasapp.designsystem.service.asState
|
||||||
import com.twofasapp.feature.widget.GlanceWidget
|
import com.twofasapp.feature.widget.GlanceWidget
|
||||||
@ -40,9 +42,13 @@ internal fun WidgetSettingsScreen(
|
|||||||
onSuccess: () -> Unit,
|
onSuccess: () -> Unit,
|
||||||
) {
|
) {
|
||||||
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
|
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
|
||||||
val context = LocalContext.current
|
val activity = LocalContext.currentActivity
|
||||||
val scope = rememberCoroutineScope()
|
val scope = rememberCoroutineScope()
|
||||||
|
|
||||||
|
BackHandler {
|
||||||
|
activity.finishAndRemoveTask()
|
||||||
|
}
|
||||||
|
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
viewModel.updateAppWidgetId(appWidgetId)
|
viewModel.updateAppWidgetId(appWidgetId)
|
||||||
}
|
}
|
||||||
@ -52,7 +58,7 @@ internal fun WidgetSettingsScreen(
|
|||||||
onToggleService = { viewModel.toggleService(it) },
|
onToggleService = { viewModel.toggleService(it) },
|
||||||
onSave = {
|
onSave = {
|
||||||
scope.launch {
|
scope.launch {
|
||||||
GlanceWidget().updateAll(context)
|
GlanceWidget().updateAll(activity)
|
||||||
viewModel.save()
|
viewModel.save()
|
||||||
onSuccess()
|
onSuccess()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user