|
|
|
@ -6,7 +6,6 @@ package org.mozilla.fenix.settings
|
|
|
|
|
|
|
|
|
|
import android.annotation.SuppressLint
|
|
|
|
|
import android.app.Activity
|
|
|
|
|
import android.app.role.RoleManager
|
|
|
|
|
import android.content.ActivityNotFoundException
|
|
|
|
|
import android.content.DialogInterface
|
|
|
|
|
import android.content.Intent
|
|
|
|
@ -19,7 +18,6 @@ import android.view.LayoutInflater
|
|
|
|
|
import android.widget.Toast
|
|
|
|
|
import androidx.annotation.VisibleForTesting
|
|
|
|
|
import androidx.appcompat.app.AlertDialog
|
|
|
|
|
import androidx.core.os.bundleOf
|
|
|
|
|
import androidx.lifecycle.lifecycleScope
|
|
|
|
|
import androidx.navigation.NavDirections
|
|
|
|
|
import androidx.navigation.findNavController
|
|
|
|
@ -51,6 +49,8 @@ import org.mozilla.fenix.ext.metrics
|
|
|
|
|
import org.mozilla.fenix.ext.navigateToNotificationsSettings
|
|
|
|
|
import org.mozilla.fenix.ext.requireComponents
|
|
|
|
|
import org.mozilla.fenix.ext.settings
|
|
|
|
|
import org.mozilla.fenix.ext.REQUEST_CODE_BROWSER_ROLE
|
|
|
|
|
import org.mozilla.fenix.ext.openSetDefaultBrowserOption
|
|
|
|
|
import org.mozilla.fenix.ext.showToolbar
|
|
|
|
|
import org.mozilla.fenix.settings.account.AccountUiView
|
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
@ -458,46 +458,11 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|
|
|
|
* For <N -> Open sumo page to show user how to change default app.
|
|
|
|
|
*/
|
|
|
|
|
private fun getClickListenerForMakeDefaultBrowser(): Preference.OnPreferenceClickListener {
|
|
|
|
|
return when {
|
|
|
|
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q -> {
|
|
|
|
|
Preference.OnPreferenceClickListener {
|
|
|
|
|
requireContext().getSystemService(RoleManager::class.java).also {
|
|
|
|
|
if (it.isRoleAvailable(RoleManager.ROLE_BROWSER) && !it.isRoleHeld(
|
|
|
|
|
RoleManager.ROLE_BROWSER
|
|
|
|
|
)
|
|
|
|
|
) {
|
|
|
|
|
startActivityForResult(
|
|
|
|
|
it.createRequestRoleIntent(RoleManager.ROLE_BROWSER),
|
|
|
|
|
REQUEST_CODE_BROWSER_ROLE
|
|
|
|
|
)
|
|
|
|
|
} else {
|
|
|
|
|
navigateUserToDefaultAppsSettings()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.N -> {
|
|
|
|
|
Preference.OnPreferenceClickListener {
|
|
|
|
|
navigateUserToDefaultAppsSettings()
|
|
|
|
|
true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else -> {
|
|
|
|
|
Preference.OnPreferenceClickListener {
|
|
|
|
|
(activity as HomeActivity).openToBrowserAndLoad(
|
|
|
|
|
searchTermOrURL = SupportUtils.getSumoURLForTopic(
|
|
|
|
|
requireContext(),
|
|
|
|
|
SupportUtils.SumoTopic.SET_AS_DEFAULT_BROWSER
|
|
|
|
|
),
|
|
|
|
|
newTab = true,
|
|
|
|
|
from = BrowserDirection.FromSettings
|
|
|
|
|
)
|
|
|
|
|
return Preference.OnPreferenceClickListener {
|
|
|
|
|
activity?.openSetDefaultBrowserOption()
|
|
|
|
|
true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
|
|
super.onActivityResult(requestCode, resultCode, data)
|
|
|
|
@ -508,16 +473,6 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun navigateUserToDefaultAppsSettings() {
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
|
|
|
|
val intent = Intent(android.provider.Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS)
|
|
|
|
|
intent.putExtra(SETTINGS_SELECT_OPTION_KEY, DEFAULT_BROWSER_APP_OPTION)
|
|
|
|
|
intent.putExtra(SETTINGS_SHOW_FRAGMENT_ARGS,
|
|
|
|
|
bundleOf(SETTINGS_SELECT_OPTION_KEY to DEFAULT_BROWSER_APP_OPTION))
|
|
|
|
|
startActivity(intent)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun updateMakeDefaultBrowserPreference() {
|
|
|
|
|
requirePreference<DefaultBrowserPreference>(R.string.pref_key_make_default_browser).updateSwitch()
|
|
|
|
|
}
|
|
|
|
@ -624,12 +579,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
|
private const val REQUEST_CODE_BROWSER_ROLE = 1
|
|
|
|
|
private const val SCROLL_INDICATOR_DELAY = 10L
|
|
|
|
|
private const val FXA_SYNC_OVERRIDE_EXIT_DELAY = 2000L
|
|
|
|
|
private const val AMO_COLLECTION_OVERRIDE_EXIT_DELAY = 3000L
|
|
|
|
|
private const val SETTINGS_SELECT_OPTION_KEY = ":settings:fragment_args_key"
|
|
|
|
|
private const val SETTINGS_SHOW_FRAGMENT_ARGS = ":settings:show_fragment_args"
|
|
|
|
|
private const val DEFAULT_BROWSER_APP_OPTION = "default_browser"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|