Co-authored-by: Elise Richards <erichards@mozilla.com>
This commit is contained in:
parent
dc9bc534db
commit
b563576335
|
@ -12,8 +12,6 @@ import android.graphics.PointF
|
|||
import android.graphics.Rect
|
||||
import android.view.View
|
||||
import android.view.ViewConfiguration
|
||||
import androidx.annotation.Dimension
|
||||
import androidx.annotation.Dimension.DP
|
||||
import androidx.core.animation.doOnEnd
|
||||
import androidx.core.graphics.contains
|
||||
import androidx.core.graphics.toPoint
|
||||
|
@ -21,8 +19,8 @@ import androidx.core.view.isVisible
|
|||
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator
|
||||
import mozilla.components.browser.session.Session
|
||||
import mozilla.components.browser.session.SessionManager
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import mozilla.components.support.ktx.android.view.getRectWithViewLocation
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.ext.getRectWithScreenLocation
|
||||
import org.mozilla.fenix.ext.getWindowInsets
|
||||
import org.mozilla.fenix.ext.isKeyboardVisible
|
||||
|
@ -57,7 +55,8 @@ class ToolbarGestureHandler(
|
|||
private val windowWidth: Int
|
||||
get() = activity.resources.displayMetrics.widthPixels
|
||||
|
||||
private val previewOffset = PREVIEW_OFFSET.dpToPx(activity.resources.displayMetrics)
|
||||
private val previewOffset =
|
||||
activity.resources.getDimensionPixelSize(R.dimen.browser_fragment_gesture_preview_offset)
|
||||
|
||||
private val touchSlop = ViewConfiguration.get(activity).scaledTouchSlop
|
||||
private val minimumFlingVelocity = ViewConfiguration.get(activity).scaledMinimumFlingVelocity
|
||||
|
@ -304,12 +303,6 @@ class ToolbarGestureHandler(
|
|||
*/
|
||||
private const val OVERSCROLL_HIDE_PERCENT = 0.20
|
||||
|
||||
/**
|
||||
* The size of the gap between the tab preview and content layout.
|
||||
*/
|
||||
@Dimension(unit = DP)
|
||||
private const val PREVIEW_OFFSET = 48
|
||||
|
||||
/**
|
||||
* Animation duration when switching to another tab
|
||||
*/
|
||||
|
|
|
@ -119,8 +119,7 @@ class FenixSnackbar private constructor(
|
|||
|
||||
val callback = FenixSnackbarCallback(content)
|
||||
val shouldUseBottomToolbar = view.context.settings().shouldUseBottomToolbar
|
||||
val toolbarHeight = view.context.resources
|
||||
.getDimensionPixelSize(R.dimen.browser_toolbar_height)
|
||||
val toolbarHeight = view.resources.getDimensionPixelSize(R.dimen.browser_toolbar_height)
|
||||
|
||||
return FenixSnackbar(parent, content, callback, isError).also {
|
||||
it.duration = durationOrAccessibleDuration
|
||||
|
|
|
@ -27,7 +27,6 @@ import mozilla.components.browser.state.state.ExternalAppType
|
|||
import mozilla.components.browser.toolbar.BrowserToolbar
|
||||
import mozilla.components.browser.toolbar.behavior.BrowserToolbarBottomBehavior
|
||||
import mozilla.components.browser.toolbar.display.DisplayToolbar
|
||||
import mozilla.components.support.ktx.android.util.dpToFloat
|
||||
import mozilla.components.support.utils.URLStringUtils
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.customtabs.CustomTabToolbarIntegration
|
||||
|
@ -111,7 +110,7 @@ class BrowserToolbarView(
|
|||
view.apply {
|
||||
setScrollFlags()
|
||||
|
||||
elevation = TOOLBAR_ELEVATION.dpToFloat(resources.displayMetrics)
|
||||
elevation = resources.getDimension(R.dimen.browser_fragment_toolbar_elevation)
|
||||
|
||||
if (!isCustomTabSession) {
|
||||
display.setUrlBackground(getDrawable(R.drawable.search_url_background))
|
||||
|
|
|
@ -9,10 +9,13 @@ import android.text.Spannable
|
|||
import android.text.SpannableString
|
||||
import android.text.style.AbsoluteSizeSpan
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import androidx.annotation.AttrRes
|
||||
import androidx.annotation.Dimension
|
||||
import androidx.annotation.Dimension.DP
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
|
||||
fun SpannableString.setTextSize(context: Context, textSize: Int) =
|
||||
fun SpannableString.setTextSize(context: Context, @Dimension(unit = DP) textSize: Int) =
|
||||
this.setSpan(
|
||||
AbsoluteSizeSpan(textSize.dpToPx(context.resources.displayMetrics)),
|
||||
0,
|
||||
|
@ -20,11 +23,9 @@ fun SpannableString.setTextSize(context: Context, textSize: Int) =
|
|||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
)
|
||||
|
||||
fun SpannableString.setTextColor(context: Context, colorResId: Int) =
|
||||
fun SpannableString.setTextColor(context: Context, @AttrRes colorResId: Int) =
|
||||
this.setSpan(
|
||||
ForegroundColorSpan(
|
||||
context.getColorFromAttr(colorResId)
|
||||
),
|
||||
ForegroundColorSpan(context.getColorFromAttr(colorResId)),
|
||||
0,
|
||||
this.length,
|
||||
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE
|
||||
|
|
|
@ -9,11 +9,13 @@ import android.os.Build
|
|||
import android.view.TouchDelegate
|
||||
import android.view.View
|
||||
import androidx.annotation.Dimension
|
||||
import androidx.annotation.Dimension.DP
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import org.mozilla.fenix.R
|
||||
|
||||
fun View.increaseTapArea(extraDps: Int) {
|
||||
fun View.increaseTapArea(@Dimension(unit = DP) extraDps: Int) {
|
||||
val dips = extraDps.dpToPx(resources.displayMetrics)
|
||||
val parent = this.parent as View
|
||||
parent.post {
|
||||
|
@ -73,7 +75,7 @@ fun View.isKeyboardVisible(): Boolean {
|
|||
val minimumKeyboardHeight = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
0
|
||||
} else {
|
||||
MINIMUM_KEYBOARD_HEIGHT.dpToPx(resources.displayMetrics)
|
||||
resources.getDimensionPixelSize(R.dimen.minimum_keyboard_height)
|
||||
}
|
||||
return getKeyboardHeight() > minimumKeyboardHeight
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import android.widget.Button
|
|||
import android.widget.LinearLayout
|
||||
import android.widget.PopupWindow
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.constraintlayout.widget.ConstraintSet
|
||||
import androidx.constraintlayout.widget.ConstraintSet.BOTTOM
|
||||
|
@ -69,7 +70,7 @@ import mozilla.components.feature.top.sites.TopSitesConfig
|
|||
import mozilla.components.feature.top.sites.TopSitesFeature
|
||||
import mozilla.components.lib.state.ext.consumeFrom
|
||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import mozilla.components.support.ktx.android.content.res.resolveAttribute
|
||||
import org.mozilla.fenix.BrowserDirection
|
||||
import org.mozilla.fenix.FeatureFlags
|
||||
import org.mozilla.fenix.HomeActivity
|
||||
|
@ -313,13 +314,13 @@ class HomeFragment : Fragment() {
|
|||
applyTo(view.toolbarLayout)
|
||||
}
|
||||
|
||||
view.bottom_bar.background = resources.getDrawable(
|
||||
ThemeManager.resolveAttribute(R.attr.bottomBarBackgroundTop, requireContext()),
|
||||
null
|
||||
view.bottom_bar.background = AppCompatResources.getDrawable(
|
||||
view.context,
|
||||
view.context.theme.resolveAttribute(R.attr.bottomBarBackgroundTop)
|
||||
)
|
||||
|
||||
view.homeAppBar.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
topMargin = HEADER_MARGIN.dpToPx(resources.displayMetrics)
|
||||
topMargin = resources.getDimensionPixelSize(R.dimen.home_fragment_top_toolbar_header_margin)
|
||||
}
|
||||
}
|
||||
ToolbarPosition.BOTTOM -> {
|
||||
|
@ -1002,8 +1003,5 @@ class HomeFragment : Fragment() {
|
|||
private const val ANIM_SNACKBAR_DELAY = 100L
|
||||
private const val CFR_WIDTH_DIVIDER = 1.7
|
||||
private const val CFR_Y_OFFSET = -20
|
||||
|
||||
// Layout
|
||||
private const val HEADER_MARGIN = 60
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ class PrivateBrowsingDescriptionViewHolder(
|
|||
) : RecyclerView.ViewHolder(view) {
|
||||
|
||||
init {
|
||||
val resources = view.context.resources
|
||||
val resources = view.resources
|
||||
val appName = resources.getString(R.string.app_name)
|
||||
view.private_session_description.text = resources.getString(
|
||||
R.string.private_browsing_placeholder_description_2, appName
|
||||
|
|
|
@ -11,14 +11,13 @@ import androidx.appcompat.content.res.AppCompatResources
|
|||
import kotlinx.android.synthetic.main.list_element.*
|
||||
import mozilla.components.feature.tab.collections.TabCollection
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import mozilla.components.support.ktx.android.util.dpToFloat
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.utils.view.ViewHolder
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.increaseTapArea
|
||||
import org.mozilla.fenix.ext.loadIntoView
|
||||
import org.mozilla.fenix.ext.toShortUrl
|
||||
import org.mozilla.fenix.home.sessioncontrol.CollectionInteractor
|
||||
import org.mozilla.fenix.utils.view.ViewHolder
|
||||
import mozilla.components.feature.tab.collections.Tab as ComponentTab
|
||||
|
||||
class TabInCollectionViewHolder(
|
||||
|
@ -42,7 +41,7 @@ class TabInCollectionViewHolder(
|
|||
0,
|
||||
view.width,
|
||||
view.height,
|
||||
FAV_ICON_BORDER_RADIUS_IN_DP.dpToFloat(view.context.resources.displayMetrics)
|
||||
view.resources.getDimension(R.dimen.tab_tray_favicon_border_radius)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,7 +72,7 @@ class BookmarkTouchCallback(
|
|||
R.drawable.swipe_delete_background
|
||||
)!!
|
||||
val margin =
|
||||
SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.context.resources.displayMetrics)
|
||||
SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.resources.displayMetrics)
|
||||
val cellHeight = viewHolder.itemView.bottom - viewHolder.itemView.top
|
||||
val iconTop = viewHolder.itemView.top + (cellHeight - icon.intrinsicHeight) / 2
|
||||
val iconBottom = iconTop + icon.intrinsicHeight
|
||||
|
|
|
@ -15,7 +15,6 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import kotlinx.android.extensions.LayoutContainer
|
||||
import mozilla.components.concept.storage.BookmarkNode
|
||||
import mozilla.components.concept.storage.BookmarkNodeType
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.library.LibrarySiteItemView
|
||||
import org.mozilla.fenix.library.bookmarks.BookmarksSharedViewModel
|
||||
|
@ -85,8 +84,8 @@ class SelectBookmarkFolderAdapter(private val sharedViewModel: BookmarksSharedVi
|
|||
view.setOnClickListener {
|
||||
onSelect(folder.node)
|
||||
}
|
||||
val pxToIndent = dpsToIndent.dpToPx(view.context.resources.displayMetrics)
|
||||
val padding = pxToIndent * if (folder.depth > maxDepth) maxDepth else folder.depth
|
||||
val pxToIndent = view.resources.getDimensionPixelSize(R.dimen.bookmark_select_folder_indent)
|
||||
val padding = pxToIndent * minOf(MAX_DEPTH, folder.depth)
|
||||
view.updatePaddingRelative(start = padding)
|
||||
}
|
||||
|
||||
|
@ -117,8 +116,7 @@ class SelectBookmarkFolderAdapter(private val sharedViewModel: BookmarksSharedVi
|
|||
this == sharedViewModel.selectedFolder
|
||||
|
||||
companion object {
|
||||
private const val maxDepth = 10
|
||||
private const val dpsToIndent = 10
|
||||
private const val MAX_DEPTH = 10
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -35,7 +35,6 @@ import mozilla.components.service.fxa.sync.SyncReason
|
|||
import mozilla.components.service.fxa.sync.SyncStatusObserver
|
||||
import mozilla.components.service.fxa.sync.getLastSynced
|
||||
import mozilla.components.support.ktx.android.content.getColorFromAttr
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.FenixSnackbar
|
||||
import org.mozilla.fenix.components.StoreProvider
|
||||
|
@ -162,7 +161,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
setOnBindEditTextListener { editText ->
|
||||
editText.filters = arrayOf(InputFilter.LengthFilter(DEVICE_NAME_MAX_LENGTH))
|
||||
editText.minHeight = DEVICE_NAME_EDIT_TEXT_MIN_HEIGHT_DP.dpToPx(resources.displayMetrics)
|
||||
editText.minHeight = resources.getDimensionPixelSize(R.dimen.account_settings_device_name_min_height)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,6 @@ import kotlinx.android.synthetic.main.view_synced_tabs_group.view.*
|
|||
import kotlinx.android.synthetic.main.view_synced_tabs_title.view.*
|
||||
import mozilla.components.concept.sync.DeviceType
|
||||
import mozilla.components.feature.syncedtabs.view.SyncedTabsView
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import org.mozilla.fenix.NavGraphDirections
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.sync.SyncedTabsAdapter.AdapterItem
|
||||
|
@ -135,13 +134,8 @@ sealed class SyncedTabsViewHolder(itemView: View) : RecyclerView.ViewHolder(item
|
|||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
val displayMetrics = itemView.context.resources.displayMetrics
|
||||
val margin = ERROR_MARGIN.dpToPx(displayMetrics)
|
||||
val margin = itemView.resources.getDimensionPixelSize(R.dimen.synced_tabs_error_margin)
|
||||
lp.setMargins(margin, margin, margin, 0)
|
||||
itemView.layoutParams = lp
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val ERROR_MARGIN = 20
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,10 +8,10 @@ import android.view.LayoutInflater
|
|||
import android.view.ViewGroup
|
||||
import android.widget.CheckedTextView
|
||||
import androidx.annotation.VisibleForTesting
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.core.view.updatePaddingRelative
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import mozilla.components.support.ktx.android.view.putCompoundDrawablesRelativeWithIntrinsicBounds
|
||||
import org.mozilla.fenix.R
|
||||
|
||||
internal class CollectionsAdapter(
|
||||
|
@ -36,15 +36,17 @@ internal class CollectionsAdapter(
|
|||
|
||||
override fun onBindViewHolder(holder: CollectionItemViewHolder, position: Int) {
|
||||
if (position == 0) {
|
||||
val displayMetrics = holder.textView.context.resources.displayMetrics
|
||||
holder.textView.updatePaddingRelative(start = NEW_COLLECTION_PADDING_START.dpToPx(displayMetrics))
|
||||
val resources = holder.textView.resources
|
||||
holder.textView.updatePaddingRelative(
|
||||
start = resources.getDimensionPixelSize(R.dimen.tab_tray_new_collection_padding_start)
|
||||
)
|
||||
holder.textView.compoundDrawablePadding =
|
||||
NEW_COLLECTION_DRAWABLE_PADDING.dpToPx(displayMetrics)
|
||||
holder.textView.setCompoundDrawablesWithIntrinsicBounds(
|
||||
ContextCompat.getDrawable(
|
||||
resources.getDimensionPixelSize(R.dimen.tab_tray_new_collection_drawable_padding)
|
||||
holder.textView.putCompoundDrawablesRelativeWithIntrinsicBounds(
|
||||
start = AppCompatResources.getDrawable(
|
||||
holder.textView.context,
|
||||
R.drawable.ic_new
|
||||
), null, null, null
|
||||
)
|
||||
)
|
||||
} else {
|
||||
holder.textView.isChecked = checkedPosition == position
|
||||
|
@ -65,9 +67,4 @@ internal class CollectionsAdapter(
|
|||
override fun getItemCount() = collections.size
|
||||
|
||||
fun getSelectedCollection() = checkedPosition - 1
|
||||
|
||||
companion object {
|
||||
private const val NEW_COLLECTION_PADDING_START = 24
|
||||
private const val NEW_COLLECTION_DRAWABLE_PADDING = 28
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,7 +42,6 @@ import mozilla.components.browser.state.state.BrowserState
|
|||
import mozilla.components.browser.tabstray.TabViewHolder
|
||||
import mozilla.components.feature.syncedtabs.SyncedTabsFeature
|
||||
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.components.toolbar.TabCounter.Companion.INFINITE_CHAR_PADDING_BOTTOM
|
||||
|
@ -429,15 +428,20 @@ class TabTrayView(
|
|||
)
|
||||
)
|
||||
|
||||
val displayMetrics = view.context.resources.displayMetrics
|
||||
|
||||
view.handle.updateLayoutParams<ViewGroup.MarginLayoutParams> {
|
||||
height =
|
||||
if (multiselect) MULTISELECT_HANDLE_HEIGHT.dpToPx(displayMetrics) else NORMAL_HANDLE_HEIGHT.dpToPx(
|
||||
displayMetrics
|
||||
height = view.resources.getDimensionPixelSize(
|
||||
if (multiselect) {
|
||||
R.dimen.tab_tray_multiselect_handle_height
|
||||
} else {
|
||||
R.dimen.tab_tray_normal_handle_height
|
||||
}
|
||||
)
|
||||
topMargin = if (multiselect) 0.dpToPx(displayMetrics) else NORMAL_TOP_MARGIN.dpToPx(
|
||||
displayMetrics
|
||||
topMargin = view.resources.getDimensionPixelSize(
|
||||
if (multiselect) {
|
||||
R.dimen.tab_tray_multiselect_handle_top_margin
|
||||
} else {
|
||||
R.dimen.tab_tray_normal_handle_top_margin
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -524,7 +528,7 @@ class TabTrayView(
|
|||
val topOffset = if (landscape) {
|
||||
0
|
||||
} else {
|
||||
view.context.resources.getDimension(R.dimen.tab_tray_top_offset).toInt()
|
||||
view.resources.getDimensionPixelSize(R.dimen.tab_tray_top_offset)
|
||||
}
|
||||
|
||||
behavior.setExpandedOffset(topOffset)
|
||||
|
@ -538,11 +542,11 @@ class TabTrayView(
|
|||
if (private) {
|
||||
fabView.new_tab_button.extend()
|
||||
fabView.new_tab_button.contentDescription =
|
||||
view.context.resources.getString(R.string.add_private_tab)
|
||||
view.context.getString(R.string.add_private_tab)
|
||||
} else {
|
||||
fabView.new_tab_button.shrink()
|
||||
fabView.new_tab_button.contentDescription =
|
||||
view.context.resources.getString(R.string.add_tab)
|
||||
view.context.getString(R.string.add_tab)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -579,9 +583,6 @@ class TabTrayView(
|
|||
private const val EXPAND_AT_SIZE = 3
|
||||
private const val SLIDE_OFFSET = 0
|
||||
private const val SELECTION_DELAY = 500
|
||||
private const val MULTISELECT_HANDLE_HEIGHT = 11
|
||||
private const val NORMAL_HANDLE_HEIGHT = 3
|
||||
private const val NORMAL_TOP_MARGIN = 8
|
||||
private const val NORMAL_HANDLE_PERCENT_WIDTH = 0.1F
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ class TouchCallback(
|
|||
val iconLeft: Int
|
||||
val iconRight: Int
|
||||
val margin =
|
||||
SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.context.resources.displayMetrics)
|
||||
SwipeToDeleteCallback.MARGIN.dpToPx(recyclerView.resources.displayMetrics)
|
||||
val iconWidth = icon.intrinsicWidth
|
||||
val iconHeight = icon.intrinsicHeight
|
||||
val cellHeight = itemView.bottom - itemView.top
|
||||
|
|
|
@ -68,8 +68,7 @@ fun CoroutineScope.allowUndo(
|
|||
}
|
||||
|
||||
val shouldUseBottomToolbar = view.context.settings().shouldUseBottomToolbar
|
||||
val toolbarHeight = view.context.resources
|
||||
.getDimensionPixelSize(R.dimen.browser_toolbar_height)
|
||||
val toolbarHeight = view.resources.getDimensionPixelSize(R.dimen.browser_toolbar_height)
|
||||
|
||||
snackbar.view.updatePadding(
|
||||
bottom = if (
|
||||
|
|
|
@ -35,11 +35,12 @@
|
|||
<dimen name="phone_feature_label_recommended_text_size">14sp</dimen>
|
||||
<dimen name="site_permissions_exceptions_item_text_size">18sp</dimen>
|
||||
<dimen name="site_permissions_exceptions_item_height">56dp</dimen>
|
||||
<dimen name="synced_tab_item_min_height">56dp</dimen>
|
||||
<dimen name="component_collection_creation_list_margin">16dp</dimen>
|
||||
<dimen name="exceptions_description_margin">12dp</dimen>
|
||||
<dimen name="preference_seek_bar_padding">16dp</dimen>
|
||||
<dimen name="custom_checkbox_alignment_margin">68dp</dimen>
|
||||
<!--The assumed minimum height of the keyboard on Lollipop.-->
|
||||
<dimen name="minimum_keyboard_height">100dp</dimen>
|
||||
|
||||
<dimen name="context_menu_height">48dp</dimen>
|
||||
<dimen name="context_menu_x_offset">8dp</dimen>
|
||||
|
@ -81,8 +82,17 @@
|
|||
<!-- ETP Onboarding Popup -->
|
||||
<dimen name="etp_onboarding_popup_width">256dp</dimen>
|
||||
|
||||
<!-- Edit Fragment -->
|
||||
<!-- Bookmark Edit Fragment -->
|
||||
<dimen name="bookmark_edit_text_height">48dp</dimen>
|
||||
<dimen name="bookmark_select_folder_indent">10dp</dimen>
|
||||
|
||||
<!-- Home Fragment -->
|
||||
<dimen name="home_fragment_top_toolbar_header_margin">60dp</dimen>
|
||||
|
||||
<!-- Browser Fragment -->
|
||||
<!--The size of the gap between the tab preview and content layout.-->
|
||||
<dimen name="browser_fragment_gesture_preview_offset">48dp</dimen>
|
||||
<dimen name="browser_fragment_toolbar_elevation">16dp</dimen>
|
||||
|
||||
<!-- Search Fragment -->
|
||||
<dimen name="search_fragment_clipboard_item_height">56dp</dimen>
|
||||
|
@ -160,6 +170,13 @@
|
|||
<dimen name="tab_tray_top_offset">40dp</dimen>
|
||||
<dimen name="tab_tray_thumbnail_width">92dp</dimen>
|
||||
<dimen name="tab_tray_thumbnail_height">69dp</dimen>
|
||||
<dimen name="tab_tray_favicon_border_radius">4dp</dimen>
|
||||
<dimen name="tab_tray_multiselect_handle_height">11dp</dimen>
|
||||
<dimen name="tab_tray_normal_handle_height">11dp</dimen>
|
||||
<dimen name="tab_tray_multiselect_handle_top_margin">0dp</dimen>
|
||||
<dimen name="tab_tray_normal_handle_top_margin">8dp</dimen>
|
||||
<dimen name="tab_tray_new_collection_padding_start">24dp</dimen>
|
||||
<dimen name="tab_tray_new_collection_drawable_padding">28dp</dimen>
|
||||
|
||||
<!-- Saved Logins Fragment -->
|
||||
<dimen name="saved_logins_sort_menu_dropdown_chevron_icon_margin_start">10dp</dimen>
|
||||
|
@ -170,6 +187,12 @@
|
|||
<dimen name="saved_logins_item_margin_start">16dp</dimen>
|
||||
<dimen name="saved_logins_item_margin_end">48dp</dimen>
|
||||
|
||||
<!-- Synced Tabs Fragment -->
|
||||
<dimen name="synced_tabs_error_margin">20dp</dimen>
|
||||
|
||||
<!-- Account Settings Fragment -->
|
||||
<dimen name="account_settings_device_name_min_height">48dp</dimen>
|
||||
|
||||
<!-- Top sites -->
|
||||
<dimen name="top_sites_favicon_size">40dp</dimen>
|
||||
<dimen name="top_sites_favicon_padding">4dp</dimen>
|
||||
|
|
|
@ -21,10 +21,12 @@ import io.mockk.mockkStatic
|
|||
import io.mockk.slot
|
||||
import io.mockk.verify
|
||||
import mozilla.components.support.ktx.android.util.dpToPx
|
||||
import mozilla.components.support.test.robolectric.testContext
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Before
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
|
@ -41,6 +43,9 @@ class ViewTest {
|
|||
mockkStatic("mozilla.components.support.ktx.android.util.DisplayMetricsKt")
|
||||
mockkStatic("org.mozilla.fenix.ext.ViewKt")
|
||||
|
||||
every { view.resources.getDimensionPixelSize(any()) } answers {
|
||||
testContext.resources.getDimensionPixelSize(firstArg())
|
||||
}
|
||||
every { view.resources.displayMetrics } returns displayMetrics
|
||||
every { view.parent } returns parent
|
||||
every { parent.touchDelegate = any() } just Runs
|
||||
|
@ -119,7 +124,7 @@ class ViewTest {
|
|||
@Config(sdk = [Build.VERSION_CODES.LOLLIPOP, Build.VERSION_CODES.LOLLIPOP_MR1])
|
||||
@Test
|
||||
fun `isKeyboardVisible returns false when the keyboard height is less than or equal to the minimum threshold`() {
|
||||
val threshold = MINIMUM_KEYBOARD_HEIGHT.dpToPx(displayMetrics)
|
||||
val threshold = testContext.resources.getDimensionPixelSize(R.dimen.minimum_keyboard_height)
|
||||
|
||||
every { view.getKeyboardHeight() } returns threshold - 1
|
||||
assertEquals(false, view.isKeyboardVisible())
|
||||
|
@ -131,7 +136,7 @@ class ViewTest {
|
|||
@Config(sdk = [Build.VERSION_CODES.LOLLIPOP, Build.VERSION_CODES.LOLLIPOP_MR1])
|
||||
@Test
|
||||
fun `isKeyboardVisible returns true when the keyboard height is greater than the minimum threshold`() {
|
||||
val threshold = MINIMUM_KEYBOARD_HEIGHT.dpToPx(displayMetrics)
|
||||
val threshold = testContext.resources.getDimensionPixelSize(R.dimen.minimum_keyboard_height)
|
||||
every { view.getKeyboardHeight() } returns threshold + 1
|
||||
|
||||
assertEquals(true, view.isKeyboardVisible())
|
||||
|
|
Loading…
Reference in New Issue
Block a user