Restart app post onboarding

This commit is contained in:
Rahul Patel
2024-11-28 22:49:14 +05:30
committed by Aayush Gupta
parent 7d25f4a3ed
commit baaac89662
5 changed files with 19 additions and 15 deletions

View File

@@ -212,6 +212,8 @@ dependencies {
implementation(libs.androidx.room.ktx)
implementation(libs.androidx.room.runtime)
implementation(libs.process.phoenix)
// LeakCanary
debugImplementation(libs.squareup.leakcanary.android)
}

View File

@@ -24,7 +24,6 @@ import com.aurora.store.BuildConfig
import com.aurora.store.R
import com.aurora.store.data.model.PermissionType
import com.aurora.store.util.PackageUtil
import com.aurora.store.util.PathUtil
class PermissionProvider(private val fragment: Fragment) :
ActivityResultCallback<ActivityResult> {
@@ -74,7 +73,7 @@ class PermissionProvider(private val fragment: Fragment) :
if (!isGranted(PermissionType.INSTALL_UNKNOWN_APPS)) {
context.toast(R.string.toast_permission_installer_required)
} else {
context.toast(R.string.toast_permission_esm_caution)
context.toast(R.string.toast_permission_esm_restart)
intentLauncher.launch(intent)
}
} else {
@@ -93,7 +92,7 @@ class PermissionProvider(private val fragment: Fragment) :
return when (permissionType) {
PermissionType.EXTERNAL_STORAGE,
PermissionType.STORAGE_MANAGER -> {
context.isExternalStorageAccessible() && PathUtil.canReadWriteOBB(context)
context.isExternalStorageAccessible()
}
PermissionType.INSTALL_UNKNOWN_APPS -> PackageUtil.canRequestPackageInstalls(context)

View File

@@ -26,7 +26,6 @@ import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.Lifecycle
import androidx.navigation.fragment.findNavController
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback
import com.aurora.Constants
@@ -58,6 +57,7 @@ import com.aurora.store.util.Preferences.PREFERENCE_VENDING_VERSION
import com.aurora.store.util.save
import com.aurora.store.view.ui.commons.BaseFragment
import com.google.android.material.tabs.TabLayoutMediator
import com.jakewharton.processphoenix.ProcessPhoenix
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@@ -153,10 +153,10 @@ class OnboardingFragment : BaseFragment<FragmentOnboardingBinding>() {
private fun finishOnboarding() {
setupAutoUpdates()
CacheWorker.scheduleAutomatedCacheCleanup(requireContext())
save(PREFERENCE_INTRO, true)
findNavController().navigate(
OnboardingFragmentDirections.actionOnboardingFragmentToSplashFragment()
)
Preferences.putBooleanNow(requireContext(), PREFERENCE_INTRO, true)
// Restart the app to ensure all permissions are granted
ProcessPhoenix.triggerRebirth(context)
}
private fun loadDefaultPreferences() {

View File

@@ -300,6 +300,7 @@
<string name="toast_permission_granted">"Permission granted"</string>
<string name="toast_permission_installer_required">"You need to grant Installer Permission first"</string>
<string name="toast_permission_esm_caution">"You may have to re-grant the permission due to bug in Storage Access Framework"</string>
<string name="toast_permission_esm_restart">"You may have to restart app to reflect the permission grant."</string>
<string name="toast_spoof_applied">Device spoof applied.</string>
<string name="toast_purchase_blocked">"App purchases not available on Anonymous accounts."</string>
<string name="toast_manual_unavailable">"The version code you are requesting is unavailable."</string>

View File

@@ -24,6 +24,7 @@ materialVersion = "1.12.0"
navVersion = "2.8.4"
okhttpVersion = "4.12.0"
preferenceVersion = "1.2.1"
processPhoenix = "3.0.0"
protobufJavaliteVersion = "4.28.3"
rikkaHiddenVersion = "4.3.3"
rikkaToolsVersion = "4.4.0"
@@ -79,6 +80,7 @@ hilt-androidx-compiler = { module = "androidx.hilt:hilt-compiler", version.ref =
hilt-androidx-work = { module = "androidx.hilt:hilt-work", version.ref = "hiltWorkVersion" }
junit = { module = "junit:junit", version.ref = "junit" }
lsposed-hiddenapibypass = { module = "org.lsposed.hiddenapibypass:hiddenapibypass", version.ref = "hiddenapibypassVersion" }
process-phoenix = { module = "com.jakewharton:process-phoenix", version.ref = "processPhoenix" }
rikka-hidden-stub = { module = "dev.rikka.hidden:stub", version.ref = "rikkaHiddenVersion" }
rikka-shizuku-api = { module = "dev.rikka.shizuku:api", version.ref = "shizukuVersion" }
rikka-shizuku-provider = { module = "dev.rikka.shizuku:provider", version.ref = "shizukuVersion" }
@@ -88,11 +90,11 @@ squareup-okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhtt
[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
androidx-navigation = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navVersion" }
google-ksp = { id = "com.google.devtools.ksp", version.ref = "kspVersion" }
hilt-android-plugin = { id = "com.google.dagger.hilt.android", version.ref = "hiltVersion" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlintVersion" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" }
androidx-navigation = { id = "androidx.navigation.safeargs.kotlin", version.ref = "navVersion" }
google-ksp = { id = "com.google.devtools.ksp", version.ref = "kspVersion" }
hilt-android-plugin = { id = "com.google.dagger.hilt.android", version.ref = "hiltVersion" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlintVersion" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlinVersion" }
jetbrains-kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlinVersion" }
jetbrains-kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlinVersion" }
rikka-tools-refine-plugin = { id = "dev.rikka.tools.refine", version.ref = "rikkaToolsVersion" }
jetbrains-kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlinVersion" }
rikka-tools-refine-plugin = { id = "dev.rikka.tools.refine", version.ref = "rikkaToolsVersion" }