diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index 89663ad138ff..f17a484c0035 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -171,8 +171,6 @@ import com.duckduckgo.appbuildconfig.api.AppBuildConfig import com.duckduckgo.autoconsent.api.Autoconsent import com.duckduckgo.autoconsent.api.AutoconsentCallback import com.duckduckgo.autofill.* -import com.duckduckgo.autofill.BrowserAutofill -import com.duckduckgo.autofill.Callback import com.duckduckgo.autofill.domain.app.LoginCredentials import com.duckduckgo.autofill.domain.app.LoginTriggerType import com.duckduckgo.autofill.store.AutofillStore.ContainsCredentialsResult.* @@ -187,9 +185,6 @@ import com.duckduckgo.downloads.api.FileDownloader import com.duckduckgo.downloads.api.FileDownloader.PendingFileDownload import com.duckduckgo.mobile.android.ui.store.BrowserAppTheme import com.duckduckgo.mobile.android.ui.view.* -import com.duckduckgo.mobile.android.ui.view.DaxDialog -import com.duckduckgo.mobile.android.ui.view.DaxDialogListener -import com.duckduckgo.mobile.android.ui.view.KeyboardAwareEditText import com.duckduckgo.mobile.android.ui.view.dialog.CustomAlertDialogBuilder import com.duckduckgo.mobile.android.ui.view.dialog.DaxAlertDialog import com.duckduckgo.mobile.android.ui.view.dialog.StackedAlertDialogBuilder @@ -202,7 +197,6 @@ import com.duckduckgo.voice.api.VoiceSearchLauncher.Source.BROWSER import com.google.android.material.snackbar.BaseTransientBottomBar import com.google.android.material.snackbar.Snackbar import java.io.File -import java.util.EventListener import javax.inject.Inject import javax.inject.Provider import kotlin.coroutines.CoroutineContext @@ -2517,11 +2511,12 @@ class BrowserTabFragment : context?.let { val isShowing: Boolean? = emailAutofillTooltipDialog?.isShowing if (isShowing != true) { - emailAutofillTooltipDialog = EmailAutofillTooltipFragment(it, address) - emailAutofillTooltipDialog?.show() - emailAutofillTooltipDialog?.setOnCancelListener { viewModel.cancelAutofillTooltip() } - emailAutofillTooltipDialog?.useAddress = { viewModel.useAddress() } - emailAutofillTooltipDialog?.usePrivateAlias = { viewModel.consumeAlias() } + emailAutofillTooltipDialog = EmailAutofillTooltipFragment(it, address).apply { + show() + setOnCancelListener { viewModel.cancelAutofillTooltip() } + useAddress = { viewModel.useAddress() } + usePrivateAlias = { viewModel.consumeAlias() } + } } } } diff --git a/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistoryAdapter.kt b/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistoryAdapter.kt index e4d7f47ddaa0..cca97f0a8563 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistoryAdapter.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistoryAdapter.kt @@ -19,12 +19,12 @@ package com.duckduckgo.app.browser.history import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.ViewGroup -import android.widget.ImageView import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.RecyclerView -import com.duckduckgo.app.browser.databinding.ItemNavigationHistoryPopupRowBinding import com.duckduckgo.app.browser.favicon.FaviconManager +import com.duckduckgo.mobile.android.databinding.RowOneLineListItemBinding +import com.duckduckgo.mobile.android.ui.view.listitem.OneLineListItem import kotlinx.coroutines.launch class NavigationHistoryAdapter( @@ -45,7 +45,7 @@ class NavigationHistoryAdapter( viewType: Int, ): NavigationViewHolder { val inflater = LayoutInflater.from(parent.context) - val binding = ItemNavigationHistoryPopupRowBinding.inflate(inflater, parent, false) + val binding = RowOneLineListItemBinding.inflate(inflater, parent, false) return NavigationViewHolder(binding) } @@ -54,10 +54,11 @@ class NavigationHistoryAdapter( position: Int, ) { val entry = navigationHistory[position] + val listItem = holder.binding.root - with(holder.binding.title) { text = entry.title } - loadFavicon(entry, holder.binding.favicon) - holder.binding.root.setOnClickListener { listener.historicalPageSelected(position) } + loadFavicon(entry, holder.binding.root) + listItem.setPrimaryText(entry.title.orEmpty()) + listItem.setOnClickListener { listener.historicalPageSelected(position) } } override fun getItemCount(): Int { @@ -72,15 +73,15 @@ class NavigationHistoryAdapter( private fun loadFavicon( historyEntry: NavigationHistoryEntry, - view: ImageView, + oneListItem: OneLineListItem, ) { lifecycleOwner.lifecycleScope.launch { - faviconManager.loadToViewFromLocalOrFallback(url = historyEntry.url, tabId = tabId, view = view) + faviconManager.loadToViewFromLocalOrFallback(url = historyEntry.url, tabId = tabId, view = oneListItem.leadingIcon()) } } } -data class NavigationViewHolder(val binding: ItemNavigationHistoryPopupRowBinding) : +data class NavigationViewHolder(val binding: RowOneLineListItemBinding) : RecyclerView.ViewHolder(binding.root) data class NavigationHistoryEntry( diff --git a/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistorySheet.kt b/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistorySheet.kt index 747fbd9fd688..c4757beffb22 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistorySheet.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/history/NavigationHistorySheet.kt @@ -19,13 +19,12 @@ package com.duckduckgo.app.browser.history import android.annotation.SuppressLint import android.content.Context import android.os.Bundle +import android.view.LayoutInflater import androidx.lifecycle.LifecycleOwner -import androidx.recyclerview.widget.RecyclerView import com.duckduckgo.app.browser.BrowserTabViewModel.Command.ShowBackNavigationHistory +import com.duckduckgo.app.browser.databinding.NavigationHistoryPopupViewBinding import com.duckduckgo.app.browser.favicon.FaviconManager import com.duckduckgo.app.browser.history.NavigationHistoryAdapter.NavigationHistoryListener -import com.duckduckgo.mobile.android.R -import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog @SuppressLint("NoBottomSheetDialog") @@ -36,7 +35,9 @@ class NavigationHistorySheet( private val tabId: String, private val history: ShowBackNavigationHistory, private val listener: NavigationHistorySheetListener, -) : BottomSheetDialog(context, R.style.NavigationHistoryDialog) { +) : BottomSheetDialog(context) { + + private val binding = NavigationHistoryPopupViewBinding.inflate(LayoutInflater.from(context)) interface NavigationHistorySheetListener { fun historicalPageSelected(stackIndex: Int) @@ -45,12 +46,9 @@ class NavigationHistorySheet( override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - behavior.state = BottomSheetBehavior.STATE_EXPANDED - behavior.skipCollapsed = true - - setContentView(com.duckduckgo.app.browser.R.layout.navigation_history_popup_view) + setContentView(binding.root) - findViewById(com.duckduckgo.app.browser.R.id.historyRecycler)?.also { recycler -> + binding.historyRecycler.also { recycler -> NavigationHistoryAdapter( viewLifecycleOwner, faviconManager, diff --git a/app/src/main/java/com/duckduckgo/app/email/EmailAutofillTooltipFragment.kt b/app/src/main/java/com/duckduckgo/app/email/EmailAutofillTooltipFragment.kt index 1eaaf3efc892..ea4270cb805f 100644 --- a/app/src/main/java/com/duckduckgo/app/email/EmailAutofillTooltipFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/email/EmailAutofillTooltipFragment.kt @@ -19,23 +19,25 @@ package com.duckduckgo.app.email import android.annotation.SuppressLint import android.content.Context import android.os.Bundle +import android.view.LayoutInflater import com.duckduckgo.app.browser.R +import com.duckduckgo.app.browser.databinding.ContentAutofillTooltipBinding import com.duckduckgo.app.global.extensions.html -import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog -import kotlinx.android.synthetic.main.content_autofill_tooltip.* @SuppressLint("NoBottomSheetDialog") class EmailAutofillTooltipFragment( context: Context, val address: String, -) : BottomSheetDialog(context, R.style.EmailTooltip) { +) : BottomSheetDialog(context) { + + private val binding = ContentAutofillTooltipBinding.inflate(LayoutInflater.from(context)) var useAddress: (() -> Unit) = {} var usePrivateAlias: (() -> Unit) = {} init { - setContentView(R.layout.content_autofill_tooltip) + setContentView(binding.root) } override fun onCreate(savedInstanceState: Bundle?) { @@ -44,16 +46,15 @@ class EmailAutofillTooltipFragment( } private fun setDialog() { - behavior.state = BottomSheetBehavior.STATE_EXPANDED val addressFormatted = context.getString(R.string.autofillTooltipUseYourAlias, address) - tooltipPrimaryCtaTitle.text = addressFormatted.html(context) + binding.primaryCta.setPrimaryText(addressFormatted.html(context).toString()) - secondaryCta.setOnClickListener { + binding.secondaryCta.setOnClickListener { usePrivateAlias() dismiss() } - primaryCta.setOnClickListener { + binding.primaryCta.setOnClickListener { useAddress() dismiss() } diff --git a/app/src/main/res/drawable/ic_cancel_brownish.xml b/app/src/main/res/drawable/ic_cancel_brownish.xml deleted file mode 100644 index 11da1448efcc..000000000000 --- a/app/src/main/res/drawable/ic_cancel_brownish.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_download_brownish.xml b/app/src/main/res/drawable/ic_download_brownish.xml deleted file mode 100644 index cd9523de747e..000000000000 --- a/app/src/main/res/drawable/ic_download_brownish.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/ic_cancel_brownish_24dp.xml b/app/src/main/res/drawable/ic_downloads_24.xml similarity index 54% rename from app/src/main/res/drawable/ic_cancel_brownish_24dp.xml rename to app/src/main/res/drawable/ic_downloads_24.xml index 796f2febb521..e5821c36071b 100644 --- a/app/src/main/res/drawable/ic_cancel_brownish_24dp.xml +++ b/app/src/main/res/drawable/ic_downloads_24.xml @@ -1,5 +1,5 @@ - + android:orientation="vertical" + android:paddingTop="@dimen/actionBottomSheetVerticalPadding" + android:paddingBottom="@dimen/actionBottomSheetVerticalPadding"> - - + app:leadingIcon="@drawable/ic_downloads_24" + app:primaryText="@string/downloadConfirmationContinue" /> - - + app:leadingIcon="@drawable/ic_close_24" + app:primaryText="@string/fireCancel" /> + + diff --git a/app/src/main/res/layout/item_navigation_history_popup_row.xml b/app/src/main/res/layout/item_navigation_history_popup_row.xml deleted file mode 100644 index dd978a315519..000000000000 --- a/app/src/main/res/layout/item_navigation_history_popup_row.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/layout/navigation_history_popup_view.xml b/app/src/main/res/layout/navigation_history_popup_view.xml index 69f9118a5d04..2d500c0f2c6e 100644 --- a/app/src/main/res/layout/navigation_history_popup_view.xml +++ b/app/src/main/res/layout/navigation_history_popup_view.xml @@ -14,31 +14,19 @@ ~ limitations under the License. --> - + android:layout_height="match_parent" + android:paddingTop="@dimen/actionBottomSheetVerticalPadding" + android:paddingBottom="@dimen/actionBottomSheetVerticalPadding"> - + android:layout_height="wrap_content" + app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" + tools:itemCount="4" /> - - - - - + diff --git a/app/src/main/res/layout/sheet_fire_clear_data.xml b/app/src/main/res/layout/sheet_fire_clear_data.xml index 350b963077c0..7c5c7bf878b6 100644 --- a/app/src/main/res/layout/sheet_fire_clear_data.xml +++ b/app/src/main/res/layout/sheet_fire_clear_data.xml @@ -15,7 +15,6 @@ --> @@ -42,53 +41,29 @@ android:layout_marginBottom="24dp" android:layout="@layout/include_dax_dialog_cta" /> - + android:background="@drawable/rounded_top_corners_bottom_sheet_background" + android:orientation="vertical" + android:paddingTop="@dimen/actionBottomSheetVerticalPadding" + android:paddingBottom="@dimen/actionBottomSheetVerticalPadding"> - + app:leadingIcon="@drawable/ic_fire_red" + app:primaryText="@string/fireClearAll" + app:primaryTextColorOverlay="?attr/daxColorDestructive" /> - - + app:leadingIcon="@drawable/ic_close_24" + app:primaryText="@string/fireCancel" /> - + \ No newline at end of file diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml index 016e25ebbb45..7947b6f4bd99 100644 --- a/app/src/main/res/values-v27/styles.xml +++ b/app/src/main/res/values-v27/styles.xml @@ -21,11 +21,4 @@ @android:color/transparent @style/FireDialogStyle - - \ No newline at end of file diff --git a/autofill/autofill-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml b/autofill/autofill-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml index 57ee9d898710..7b719e31ea46 100644 --- a/autofill/autofill-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml +++ b/autofill/autofill-impl/src/main/res/drawable/rounded_top_corners_bottom_sheet_background.xml @@ -17,7 +17,7 @@ - + android:topLeftRadius="@dimen/dialogBorderRadius" + android:topRightRadius="@dimen/dialogBorderRadius" /> + \ No newline at end of file diff --git a/common-ui/src/main/res/values/design-system-colors.xml b/common-ui/src/main/res/values/design-system-colors.xml index 8c0129956de6..792f6ffb6ede 100644 --- a/common-ui/src/main/res/values/design-system-colors.xml +++ b/common-ui/src/main/res/values/design-system-colors.xml @@ -17,7 +17,7 @@ diff --git a/common-ui/src/main/res/values/design-system-dimensions.xml b/common-ui/src/main/res/values/design-system-dimensions.xml index 73e274a6b0dd..d44dded796f5 100644 --- a/common-ui/src/main/res/values/design-system-dimensions.xml +++ b/common-ui/src/main/res/values/design-system-dimensions.xml @@ -67,7 +67,7 @@ 40dp 40dp - 12dp + @dimen/mediumShapeCornerRadius 376dp diff --git a/common-ui/src/main/res/values/styles.xml b/common-ui/src/main/res/values/styles.xml index 97baccac07d5..99c2a5a42521 100644 --- a/common-ui/src/main/res/values/styles.xml +++ b/common-ui/src/main/res/values/styles.xml @@ -258,45 +258,12 @@ @android:color/transparent - - - - - - - - - -