From b3acd1d6030c0c56d27f942d4e08c093dbab3876 Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 5 Jun 2023 11:57:53 +0800 Subject: [PATCH] Implement openByDefault --- .../ehviewer/ui/settings/AdvancedScreen.kt | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt index 87e50adb0..02d000d4e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/settings/AdvancedScreen.kt @@ -1,6 +1,10 @@ package com.hippo.ehviewer.ui.settings +import android.annotation.SuppressLint import android.content.Intent +import android.net.Uri +import android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS +import android.provider.Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.layout.Column @@ -158,7 +162,24 @@ fun AdvancedScreen() { Preference( title = stringResource(id = R.string.open_by_default), summary = null, - ) + ) { + context.run { + try { + @SuppressLint("InlinedApi") + val intent = Intent( + ACTION_APP_OPEN_BY_DEFAULT_SETTINGS, + Uri.parse("package:$packageName"), + ) + startActivity(intent) + } catch (t: Throwable) { + val intent = Intent( + ACTION_APPLICATION_DETAILS_SETTINGS, + Uri.parse("package:$packageName"), + ) + startActivity(intent) + } + } + } Spacer(modifier = Modifier.size(paddingValues.calculateBottomPadding())) } }