diff --git a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt index a7bfe9d4d..6c975a075 100644 --- a/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt +++ b/app/src/main/java/org/mozilla/fenix/browser/ToolbarGestureHandler.kt @@ -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 */ diff --git a/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt b/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt index bd7a4c569..8083a2b17 100644 --- a/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt +++ b/app/src/main/java/org/mozilla/fenix/components/FenixSnackbar.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt index 45af4648a..b0467c78a 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/BrowserToolbarView.kt @@ -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)) diff --git a/app/src/main/java/org/mozilla/fenix/ext/SpannableString.kt b/app/src/main/java/org/mozilla/fenix/ext/SpannableString.kt index 8a8de7dce..8d85530ba 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/SpannableString.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/SpannableString.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/ext/View.kt b/app/src/main/java/org/mozilla/fenix/ext/View.kt index 683d9b65d..069f60ad2 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/View.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/View.kt @@ -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 } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index bc392ac14..932f38a98 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -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 { - 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 } } diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt index 4cc6a0d85..dc0329227 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/PrivateBrowsingDescriptionViewHolder.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt index 9fbb41e71..20a7665d5 100644 --- a/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/home/sessioncontrol/viewholders/TabInCollectionViewHolder.kt @@ -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) ) } } diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkTouchHelper.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkTouchHelper.kt index b31b99fa6..742f2a238 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkTouchHelper.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/BookmarkTouchHelper.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt index d9064ef29..168af409f 100644 --- a/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/library/bookmarks/selectfolder/SelectBookmarkFolderAdapter.kt @@ -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 } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt index 732f89671..a9f56e8b6 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/account/AccountSettingsFragment.kt @@ -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) } } diff --git a/app/src/main/java/org/mozilla/fenix/sync/SyncedTabsViewHolder.kt b/app/src/main/java/org/mozilla/fenix/sync/SyncedTabsViewHolder.kt index 4549f570e..a48d6d264 100644 --- a/app/src/main/java/org/mozilla/fenix/sync/SyncedTabsViewHolder.kt +++ b/app/src/main/java/org/mozilla/fenix/sync/SyncedTabsViewHolder.kt @@ -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 - } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/CollectionsAdapter.kt b/app/src/main/java/org/mozilla/fenix/tabtray/CollectionsAdapter.kt index f80e48406..41fba7213 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/CollectionsAdapter.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/CollectionsAdapter.kt @@ -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 - } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt index 92e809bd7..f0736b329 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabTrayView.kt @@ -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 { - height = - if (multiselect) MULTISELECT_HANDLE_HEIGHT.dpToPx(displayMetrics) else NORMAL_HANDLE_HEIGHT.dpToPx( - displayMetrics - ) - topMargin = if (multiselect) 0.dpToPx(displayMetrics) else NORMAL_TOP_MARGIN.dpToPx( - displayMetrics + height = view.resources.getDimensionPixelSize( + if (multiselect) { + R.dimen.tab_tray_multiselect_handle_height + } else { + R.dimen.tab_tray_normal_handle_height + } + ) + 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 } } diff --git a/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt b/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt index 03fe38d43..b9189c555 100644 --- a/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt +++ b/app/src/main/java/org/mozilla/fenix/tabtray/TabsTouchHelper.kt @@ -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 diff --git a/app/src/main/java/org/mozilla/fenix/utils/Undo.kt b/app/src/main/java/org/mozilla/fenix/utils/Undo.kt index 543e2b257..26dbf59ee 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Undo.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Undo.kt @@ -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 ( diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 207f1dfee..82375817f 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -35,11 +35,12 @@ 14sp 18sp 56dp - 56dp 16dp 12dp 16dp 68dp + + 100dp 48dp 8dp @@ -81,8 +82,17 @@ 256dp - + 48dp + 10dp + + + 60dp + + + + 48dp + 16dp 56dp @@ -160,6 +170,13 @@ 40dp 92dp 69dp + 4dp + 11dp + 11dp + 0dp + 8dp + 24dp + 28dp 10dp @@ -170,6 +187,12 @@ 16dp 48dp + + 20dp + + + 48dp + 40dp 4dp diff --git a/app/src/test/java/org/mozilla/fenix/ext/ViewTest.kt b/app/src/test/java/org/mozilla/fenix/ext/ViewTest.kt index 003312d3d..b4fadbaa9 100644 --- a/app/src/test/java/org/mozilla/fenix/ext/ViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/ext/ViewTest.kt @@ -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())