NetworkPreference: Make microG login configurable for users

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2025-02-11 13:15:47 +07:00
parent 1db64250d5
commit 40524c7379
5 changed files with 25 additions and 2 deletions

View File

@@ -48,6 +48,8 @@ object Preferences {
const val PREFERENCE_PROXY_INFO = "PREFERENCE_PROXY_INFO"
const val PREFERENCE_PROXY_ENABLED = "PREFERENCE_PROXY_ENABLED"
const val PREFERENCE_MICROG_AUTH = "PREFERENCE_MICROG_AUTH"
const val PREFERENCE_DISPENSER_URLS = "PREFERENCE_DISPENSER_URLS"
const val PREFERENCE_VENDING_VERSION = "PREFERENCE_VENDING_VERSION"

View File

@@ -29,7 +29,9 @@ import androidx.preference.SwitchPreferenceCompat
import com.aurora.extensions.runOnUiThread
import com.aurora.extensions.toast
import com.aurora.store.R
import com.aurora.store.util.PackageUtil
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_MICROG_AUTH
import com.aurora.store.util.Preferences.PREFERENCE_PROXY_ENABLED
import com.aurora.store.util.Preferences.PREFERENCE_PROXY_INFO
import com.aurora.store.util.Preferences.PREFERENCE_PROXY_URL
@@ -84,6 +86,9 @@ class NetworkPreference : BasePreferenceFragment(),
true
}
}
findPreference<SwitchPreferenceCompat>(PREFERENCE_MICROG_AUTH)?.isEnabled =
PackageUtil.hasSupportedMicroG(requireContext())
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

View File

@@ -50,6 +50,7 @@ import com.aurora.store.util.PackageUtil
import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.util.Preferences.PREFERENCE_INTRO
import com.aurora.store.util.Preferences.PREFERENCE_MICROG_AUTH
import com.aurora.store.view.ui.commons.BaseFragment
import com.aurora.store.viewmodel.auth.AuthViewModel
import dagger.hilt.android.AndroidEntryPoint
@@ -63,6 +64,10 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
private val viewModel: AuthViewModel by activityViewModels()
private val canLoginWithMicroG: Boolean
get() = isMAndAbove && PackageUtil.hasSupportedMicroG(requireContext()) &&
Preferences.getBoolean(requireContext(), PREFERENCE_MICROG_AUTH, true)
private val startForAccount =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
val accountName = it.data?.getStringExtra(AccountManager.KEY_ACCOUNT_NAME)
@@ -201,7 +206,7 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
binding.btnGoogle.addOnClickListener {
if (viewModel.authState.value != AuthState.Fetching) {
binding.btnGoogle.updateProgress(true)
if (isMAndAbove && PackageUtil.hasSupportedMicroG(requireContext())) {
if (canLoginWithMicroG) {
Log.i(TAG, "Found supported microG, trying to request credentials")
val accountIntent = AccountManager.newChooseAccountIntent(
null,
@@ -216,7 +221,6 @@ class SplashFragment : BaseFragment<FragmentSplashBinding>() {
} else {
findNavController().navigate(R.id.googleFragment)
}
}
}
}

View File

@@ -489,4 +489,8 @@
<!-- AppsGamesFragment -->
<string name="installed_apps_size"><xliff:g id="installed_apps_size">%1$d</xliff:g> apps installed</string>
<!-- NetworkPreference -->
<string name="pref_network_microg_login_title">Use microG to sign-in to accounts</string>
<string name="pref_network_microg_login_desc">Authenticate using microG when signing into Google accounts for a simpler sign-in flow.</string>
</resources>

View File

@@ -44,6 +44,14 @@
app:singleLineTitle="false"
app:title="@string/pref_common_extra" />
<SwitchPreferenceCompat
app:defaultValue="true"
app:disableDependentsState="false"
app:iconSpaceReserved="false"
app:key="PREFERENCE_MICROG_AUTH"
app:summary="@string/pref_network_microg_login_desc"
app:title="@string/pref_network_microg_login_title" />
<com.aurora.store.view.custom.preference.AuroraListPreference
app:defaultValue="0"
app:entries="@array/pref_vending_version"