Commit e6806df8 authored by Mugurell's avatar Mugurell Committed by Pier Angelo Vendrame
Browse files

Bug 2047608 - Ensure dialogs are visible a=pascalc

parent 58de8371
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -8,10 +8,10 @@ import android.graphics.Bitmap
import android.os.Bundle
import androidx.annotation.ColorRes
import androidx.annotation.VisibleForTesting
import androidx.appcompat.app.AppCompatDialogFragment
import androidx.appcompat.widget.AppCompatImageView
import androidx.core.graphics.drawable.toDrawable
import mozilla.components.feature.addons.Addon
import mozilla.components.support.base.android.NoObscuredTouchesDialogFragment
import mozilla.components.support.utils.ext.getParcelableCompat

@VisibleForTesting
@@ -20,7 +20,7 @@ internal const val KEY_ICON = "KEY_ICON"
/**
 * A generic [Addon] dialog which has an [Addon]'s icon.
 */
open class AddonDialogFragment : AppCompatDialogFragment() {
open class AddonDialogFragment : NoObscuredTouchesDialogFragment() {
    init {
        arguments = arguments ?: Bundle()
    }
+2 −2
Original line number Diff line number Diff line
@@ -4,11 +4,11 @@

package mozilla.components.feature.prompts.dialog

import androidx.fragment.app.DialogFragment
import mozilla.components.concept.engine.prompt.PromptRequest
import mozilla.components.concept.storage.CreditCardValidationDelegate
import mozilla.components.concept.storage.LoginValidationDelegate
import mozilla.components.feature.prompts.login.LoginExceptions
import mozilla.components.support.base.android.NoObscuredTouchesDialogFragment

internal const val KEY_SESSION_ID = "KEY_SESSION_ID"
internal const val KEY_TITLE = "KEY_TITLE"
@@ -20,7 +20,7 @@ internal const val KEY_SHOULD_DISMISS_ON_LOAD = "KEY_SHOULD_DISMISS_ON_LOAD"
 * An abstract representation for all different types of prompt dialogs.
 * for handling [PromptFeature] dialogs.
 */
internal abstract class PromptDialogFragment : DialogFragment() {
internal abstract class PromptDialogFragment : NoObscuredTouchesDialogFragment() {
    var feature: Prompter? = null

    internal val sessionId: String by lazy { requireNotNull(arguments).getString(KEY_SESSION_ID)!! }
+2 −2
Original line number Diff line number Diff line
@@ -20,9 +20,9 @@ import android.widget.ImageView
import android.widget.LinearLayout.LayoutParams
import android.widget.TextView
import androidx.annotation.VisibleForTesting
import androidx.appcompat.app.AppCompatDialogFragment
import androidx.core.content.ContextCompat
import androidx.core.graphics.drawable.toDrawable
import mozilla.components.support.base.android.NoObscuredTouchesDialogFragment
import mozilla.components.support.base.log.logger.Logger
import mozilla.components.support.ktx.util.PromptAbuserDetector

@@ -42,7 +42,7 @@ private const val KEY_IS_NOTIFICATION_REQUEST = "KEY_IS_NOTIFICATION_REQUEST"
private const val DEFAULT_VALUE = Int.MAX_VALUE
private const val KEY_PERMISSION_ID = "KEY_PERMISSION_ID"

internal open class SitePermissionsDialogFragment : AppCompatDialogFragment() {
internal open class SitePermissionsDialogFragment : NoObscuredTouchesDialogFragment() {

    private val logger = Logger("SitePermissionsDialogFragment")

+21 −0
Original line number Diff line number Diff line
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package mozilla.components.support.base.android

import androidx.annotation.CallSuper
import androidx.appcompat.app.AppCompatDialogFragment

/**
 * [AppCompatDialogFragment] that responds to touches only if not obscured.
 */
open class NoObscuredTouchesDialogFragment : AppCompatDialogFragment() {
    @CallSuper
    override fun onStart() {
        super.onStart()
        dialog?.window?.decorView?.apply {
            filterTouchesWhenObscured = true
        }
    }
}