|
|
|
@ -25,8 +25,6 @@ import androidx.navigation.fragment.findNavController
|
|
|
|
|
import androidx.navigation.fragment.navArgs
|
|
|
|
|
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
|
|
|
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_quick_settings_dialog_sheet.*
|
|
|
|
|
import kotlinx.android.synthetic.main.fragment_quick_settings_dialog_sheet.view.*
|
|
|
|
|
import kotlinx.coroutines.Dispatchers
|
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
|
import kotlinx.coroutines.plus
|
|
|
|
@ -35,6 +33,7 @@ import org.mozilla.fenix.BuildConfig
|
|
|
|
|
import org.mozilla.fenix.HomeActivity
|
|
|
|
|
import org.mozilla.fenix.IntentReceiverActivity
|
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.databinding.FragmentQuickSettingsDialogSheetBinding
|
|
|
|
|
import org.mozilla.fenix.ext.components
|
|
|
|
|
import org.mozilla.fenix.settings.PhoneFeature
|
|
|
|
|
import com.google.android.material.R as MaterialR
|
|
|
|
@ -55,6 +54,8 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|
|
|
|
private var tryToRequestPermissions: Boolean = false
|
|
|
|
|
private val args by navArgs<QuickSettingsSheetDialogFragmentArgs>()
|
|
|
|
|
|
|
|
|
|
private lateinit var binding: FragmentQuickSettingsDialogSheetBinding
|
|
|
|
|
|
|
|
|
|
@Suppress("DEPRECATION")
|
|
|
|
|
// https://github.com/mozilla-mobile/fenix/issues/19920
|
|
|
|
|
override fun onCreateView(
|
|
|
|
@ -64,7 +65,10 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|
|
|
|
): View {
|
|
|
|
|
val context = requireContext()
|
|
|
|
|
val components = context.components
|
|
|
|
|
|
|
|
|
|
val rootView = inflateRootView(container)
|
|
|
|
|
binding = FragmentQuickSettingsDialogSheetBinding.bind(rootView)
|
|
|
|
|
|
|
|
|
|
quickSettingsStore = QuickSettingsFragmentStore.createStore(
|
|
|
|
|
context = context,
|
|
|
|
|
websiteUrl = args.url,
|
|
|
|
@ -98,9 +102,9 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|
|
|
|
|
|
|
|
|
interactor = QuickSettingsInteractor(quickSettingsController)
|
|
|
|
|
|
|
|
|
|
websiteInfoView = WebsiteInfoView(rootView.websiteInfoLayout)
|
|
|
|
|
websiteInfoView = WebsiteInfoView(binding.websiteInfoLayout)
|
|
|
|
|
websitePermissionsView =
|
|
|
|
|
WebsitePermissionsView(rootView.websitePermissionsLayout, interactor)
|
|
|
|
|
WebsitePermissionsView(binding.websitePermissionsLayout, interactor)
|
|
|
|
|
|
|
|
|
|
return rootView
|
|
|
|
|
}
|
|
|
|
@ -152,7 +156,8 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|
|
|
|
quickSettingsController.handleAndroidPermissionGranted(it)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
val shouldShowRequestPermissionRationale = permissions.all { shouldShowRequestPermissionRationale(it) }
|
|
|
|
|
val shouldShowRequestPermissionRationale =
|
|
|
|
|
permissions.all { shouldShowRequestPermissionRationale(it) }
|
|
|
|
|
|
|
|
|
|
if (!shouldShowRequestPermissionRationale && tryToRequestPermissions) {
|
|
|
|
|
// The user has permanently blocked these permissions and he/she is trying to enabling them.
|
|
|
|
@ -187,7 +192,7 @@ class QuickSettingsSheetDialogFragment : AppCompatDialogFragment() {
|
|
|
|
|
requestCode == REQUEST_CODE_QUICK_SETTINGS_PERMISSIONS && grantResults.all { it == PERMISSION_GRANTED }
|
|
|
|
|
|
|
|
|
|
private fun showPermissionsView() {
|
|
|
|
|
websitePermissionsGroup.isVisible = true
|
|
|
|
|
binding.websitePermissionsGroup.isVisible = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun launchIntentReceiver() {
|
|
|
|
|