From 2d3ed6af94ef52eb409ea77643bba0a201e486c0 Mon Sep 17 00:00:00 2001 From: Pun Butrach Date: Tue, 20 Jan 2026 23:45:44 +0700 Subject: [PATCH] fix: Use rememberLauncherForActivityResult for customise dialog Signed-off-by: Pun Butrach --- .../src/app/lawnchair/override/CustomizeDialog.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lawnchair/src/app/lawnchair/override/CustomizeDialog.kt b/lawnchair/src/app/lawnchair/override/CustomizeDialog.kt index 702e33ff75..63da3d218b 100644 --- a/lawnchair/src/app/lawnchair/override/CustomizeDialog.kt +++ b/lawnchair/src/app/lawnchair/override/CustomizeDialog.kt @@ -1,7 +1,10 @@ package app.lawnchair.override +import android.app.Activity import android.graphics.drawable.Drawable import android.util.Log +import androidx.activity.compose.rememberLauncherForActivityResult +import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable @@ -147,16 +150,17 @@ fun CustomizeAppDialog( } val launcherAppState = LauncherAppState.getInstance(context) - // Lawnchair-TODO: We use rememberLauncherForActivityResult, but it was broke so intent was used. + val request = rememberLauncherForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode != Activity.RESULT_OK) return@rememberLauncherForActivityResult + onClose() + } val route = SelectIcon(componentKey.toString()) Log.d("CustomizeDialog", route.toString()) val openIconPicker = { - val intent = PreferenceActivity.createIntent(context, route) - .addFlags(android.content.Intent.FLAG_ACTIVITY_NEW_TASK) - context.startActivity(intent) + request.launch(PreferenceActivity.createIntent(context, route)) } DisposableEffect(Unit) {