From 9745918a2f385b0babfa16982b5660863a055538 Mon Sep 17 00:00:00 2001 From: Mia Alexiou Date: Fri, 1 Jun 2018 13:33:14 +0100 Subject: [PATCH 01/19] Networking calls --- .../app/feedback/api/FeedbackSender.kt | 71 +++++++++++++++++++ .../app/feedback/api/FeedbackService.kt | 47 ++++++++++++ .../app/feedback/ui/FeedbackActivity.kt | 18 +++++ 3 files changed, 136 insertions(+) create mode 100644 app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSender.kt create mode 100644 app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt create mode 100644 app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt diff --git a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSender.kt b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSender.kt new file mode 100644 index 000000000000..d4ee9793a83b --- /dev/null +++ b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackSender.kt @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2018 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.app.feedback.api + +import android.annotation.SuppressLint +import android.os.Build +import com.duckduckgo.app.feedback.api.FeedbackService.Platform +import com.duckduckgo.app.feedback.api.FeedbackService.Reason +import com.duckduckgo.app.statistics.VariantManager +import com.duckduckgo.app.statistics.store.StatisticsDataStore +import io.reactivex.schedulers.Schedulers +import timber.log.Timber + +interface FeedbackSender { + fun submitGeneralFeedback(comment: String) + fun submitBrokenSiteFeedback(comment: String, url: String) +} + +class FeedbackSubmitter( + private val statisticsStore: StatisticsDataStore, + private val variantManager: VariantManager, + private val service: FeedbackService +) : FeedbackSender { + + @SuppressLint("CheckResult") + override fun submitGeneralFeedback(comment: String) { + submitFeedback(Reason.GENERAL, comment, "") + } + + override fun submitBrokenSiteFeedback(comment: String, url: String) { + submitFeedback(Reason.BROKEN_SITE, comment, url) + } + + private fun submitFeedback(type: String, comment: String, url: String) { + service.feedback( + type, + url, + comment, + Platform.ANDROID, + Build.VERSION.SDK_INT, + Build.MANUFACTURER, + Build.MODEL, + Build.VERSION.RELEASE, + atbWithVariant() + ) + .subscribeOn(Schedulers.io()) + .subscribe({ + Timber.v("Feedback submission succeeded") + }, { + Timber.w("Feedback submission failed ${it.localizedMessage}") + }) + } + + private fun atbWithVariant(): String { + return statisticsStore.atb?.formatWithVariant(variantManager.getVariant()) ?: "" + } +} \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt new file mode 100644 index 000000000000..1a08f5624e6a --- /dev/null +++ b/app/src/main/java/com/duckduckgo/app/feedback/api/FeedbackService.kt @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2018 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.app.feedback.api + +import io.reactivex.Observable +import okhttp3.ResponseBody +import retrofit2.http.Field +import retrofit2.http.POST + +interface FeedbackService { + + object Platform { + const val ANDROID = "Android" + } + + object Reason { + const val BROKEN_SITE = "broken_site" + const val GENERAL = "general" + } + + @POST("/feedback.js?type=app-feedback") + fun feedback( + @Field("reason") reason: String, + @Field("url") url: String, + @Field("comment") comment: String, + @Field("platform") platform: String, + @Field("os") api: Int, + @Field("manufacturer") manufacturer: String, + @Field("model") model: String, + @Field("v") appVersion: String, + @Field("atb") atb: String + ): Observable +} \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt new file mode 100644 index 000000000000..64872920a443 --- /dev/null +++ b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2018 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.app.feedback.ui + From d996fe8e258c60727bf016ba89c8d707e0282d77 Mon Sep 17 00:00:00 2001 From: Mia Alexiou Date: Wed, 6 Jun 2018 11:14:50 +0100 Subject: [PATCH 02/19] Add feedback activity --- app/src/main/AndroidManifest.xml | 6 +- .../duckduckgo/app/browser/BrowserActivity.kt | 5 + .../app/browser/BrowserTabFragment.kt | 3 +- .../DefaultBrowserNotification.kt | 12 +- .../duckduckgo/app/di/AndroidBindingModule.kt | 5 + .../app/feedback/ui/FeedbackActivity.kt | 46 +++++ .../app/feedback/ui/FeedbackViewModel.kt | 31 +++ .../duckduckgo/app/global/ViewModelFactory.kt | 2 + .../app/settings/SettingsActivity.kt | 6 +- .../app/statistics/VariantManager.kt | 4 +- .../main/res/drawable/ic_icon_heart_26dp.xml | 26 +++ ...n_smiley_face.xml => icon_smiley_face.xml} | 0 ...g.xml => modal_card_rounded_button_bg.xml} | 4 +- .../notification_info_top_background.xml | 4 +- .../activity_default_browser_info.xml | 16 +- .../layout/activity_default_browser_info.xml | 14 +- app/src/main/res/layout/activity_feedback.xml | 187 ++++++++++++++++++ .../layout/include_banner_notification.xml | 4 +- .../res/layout/popup_window_browser_menu.xml | 5 + app/src/main/res/values-sw600dp/dimens.xml | 4 +- app/src/main/res/values/colors.xml | 4 +- app/src/main/res/values/dimens.xml | 6 +- app/src/main/res/values/strings.xml | 13 ++ app/src/main/res/values/styles.xml | 19 +- 24 files changed, 372 insertions(+), 54 deletions(-) create mode 100644 app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackViewModel.kt create mode 100644 app/src/main/res/drawable/ic_icon_heart_26dp.xml rename app/src/main/res/drawable/{ic_icon_smiley_face.xml => icon_smiley_face.xml} (100%) rename app/src/main/res/drawable/{default_browser_rounded_button_bg.xml => modal_card_rounded_button_bg.xml} (88%) create mode 100644 app/src/main/res/layout/activity_feedback.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index daabbe636b48..f76d8f05b86e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -98,6 +98,10 @@ + + android:theme="@style/ModalCardTheme" /> \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt index 82a206a1d86f..756d9358d2b8 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt @@ -26,6 +26,7 @@ import com.duckduckgo.app.bookmarks.ui.BookmarksActivity import com.duckduckgo.app.browser.BrowserViewModel.Command import com.duckduckgo.app.browser.BrowserViewModel.Command.Query import com.duckduckgo.app.browser.BrowserViewModel.Command.Refresh +import com.duckduckgo.app.feedback.ui.FeedbackActivity import com.duckduckgo.app.global.DuckDuckGoActivity import com.duckduckgo.app.global.ViewModelFactory import com.duckduckgo.app.global.intentText @@ -184,6 +185,10 @@ class BrowserActivity : DuckDuckGoActivity() { viewModel.onOpenInNewTabRequested(query) } + fun launchFeedback() { + startActivity(FeedbackActivity.intent(this)) + } + fun launchSettings() { startActivity(SettingsActivity.intent(this)) } 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 66c16ff7a6be..b3d4b100ac20 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -194,8 +194,9 @@ class BrowserTabFragment : Fragment(), FindListener { onMenuItemClicked(view.newTabPopupMenuItem) { browserActivity?.launchNewTab() } onMenuItemClicked(view.bookmarksPopupMenuItem) { browserActivity?.launchBookmarks() } onMenuItemClicked(view.addBookmarksPopupMenuItem) { addBookmark() } - onMenuItemClicked(view.settingsPopupMenuItem) { browserActivity?.launchSettings() } onMenuItemClicked(view.findInPageMenuItem) { viewModel.userRequestingToFindInPage() } + onMenuItemClicked(view.feedbackPopupMenuItem) { browserActivity?.launchFeedback() } + onMenuItemClicked(view.settingsPopupMenuItem) { browserActivity?.launchSettings() } onMenuItemClicked(view.requestDesktopSiteCheckMenuItem) { viewModel.desktopSiteModeToggled( urlString = webView?.url, diff --git a/app/src/main/java/com/duckduckgo/app/browser/defaultBrowsing/DefaultBrowserNotification.kt b/app/src/main/java/com/duckduckgo/app/browser/defaultBrowsing/DefaultBrowserNotification.kt index 46b117d4f52a..83617b2808fc 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/defaultBrowsing/DefaultBrowserNotification.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/defaultBrowsing/DefaultBrowserNotification.kt @@ -68,7 +68,7 @@ class DefaultBrowserTimeBasedNotification @Inject constructor( } private fun isFeatureEnabled(): Boolean { - return variantManager.getVariant().hasFeature(DefaultBrowserFeature.ShowTimedReminder) + return true } private fun isAlreadyDefaultBrowser(): Boolean { @@ -80,15 +80,7 @@ class DefaultBrowserTimeBasedNotification @Inject constructor( } private fun hasEnoughTimeElapsed(now: Long): Boolean { - val elapsed = calculateElapsedTime(now) - - return if (elapsed >= ELAPSED_TIME_THRESHOLD_MS) { - Timber.v("Enough time has elapsed to show banner") - true - } else { - Timber.v("Not enough time has elapsed to show banner") - false - } + return true } private fun calculateElapsedTime(now: Long): Long { diff --git a/app/src/main/java/com/duckduckgo/app/di/AndroidBindingModule.kt b/app/src/main/java/com/duckduckgo/app/di/AndroidBindingModule.kt index a17c260ba674..defec5f4e6cc 100644 --- a/app/src/main/java/com/duckduckgo/app/di/AndroidBindingModule.kt +++ b/app/src/main/java/com/duckduckgo/app/di/AndroidBindingModule.kt @@ -20,6 +20,7 @@ import com.duckduckgo.app.bookmarks.ui.BookmarksActivity import com.duckduckgo.app.browser.BrowserActivity import com.duckduckgo.app.browser.BrowserTabFragment import com.duckduckgo.app.browser.defaultBrowsing.DefaultBrowserInfoActivity +import com.duckduckgo.app.feedback.ui.FeedbackActivity import com.duckduckgo.app.job.AppConfigurationJobService import com.duckduckgo.app.launch.LaunchActivity import com.duckduckgo.app.onboarding.ui.OnboardingActivity @@ -70,6 +71,10 @@ abstract class AndroidBindingModule { @ContributesAndroidInjector abstract fun privacyTermsActivity(): PrivacyPracticesActivity + @ActivityScoped + @ContributesAndroidInjector + abstract fun feedbackActivity(): FeedbackActivity + @ActivityScoped @ContributesAndroidInjector abstract fun settingsActivity(): SettingsActivity diff --git a/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt index 64872920a443..21eb0625114c 100644 --- a/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackActivity.kt @@ -16,3 +16,49 @@ package com.duckduckgo.app.feedback.ui +import android.arch.lifecycle.Observer +import android.arch.lifecycle.ViewModelProviders +import android.content.Context +import android.content.Intent +import android.os.Bundle +import com.duckduckgo.app.browser.R +import com.duckduckgo.app.global.DuckDuckGoActivity +import com.duckduckgo.app.global.ViewModelFactory +import kotlinx.android.synthetic.main.include_toolbar.* +import javax.inject.Inject + + +class FeedbackActivity : DuckDuckGoActivity() { + + @Inject + lateinit var viewModelFactory: ViewModelFactory + + + private val viewModel: FeedbackViewModel by lazy { + ViewModelProviders.of(this, viewModelFactory).get(FeedbackViewModel::class.java) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_feedback) + configureToolbar() + + viewModel.viewState.observe(this, Observer { + it?.let { render(it) } + }) + } + + private fun configureToolbar() { + setSupportActionBar(toolbar) + supportActionBar?.setDisplayHomeAsUpEnabled(true) + } + + private fun render(viewState: FeedbackViewModel.ViewState) { + } + + companion object { + fun intent(context: Context): Intent { + return Intent(context, FeedbackActivity::class.java) + } + } +} diff --git a/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackViewModel.kt b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackViewModel.kt new file mode 100644 index 000000000000..4815e22032c3 --- /dev/null +++ b/app/src/main/java/com/duckduckgo/app/feedback/ui/FeedbackViewModel.kt @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2018 DuckDuckGo + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.duckduckgo.app.feedback.ui + +import android.arch.lifecycle.MutableLiveData +import android.arch.lifecycle.ViewModel + + +class FeedbackViewModel : ViewModel() { + + + data class ViewState( + val temp: String + ) + + val viewState: MutableLiveData = MutableLiveData() +} \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt b/app/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt index d3129e746347..14a110e081f1 100644 --- a/app/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt +++ b/app/src/main/java/com/duckduckgo/app/global/ViewModelFactory.kt @@ -28,6 +28,7 @@ import com.duckduckgo.app.browser.LongPressHandler import com.duckduckgo.app.browser.defaultBrowsing.DefaultBrowserDetector import com.duckduckgo.app.browser.defaultBrowsing.DefaultBrowserNotification import com.duckduckgo.app.browser.omnibar.QueryUrlConverter +import com.duckduckgo.app.feedback.ui.FeedbackViewModel import com.duckduckgo.app.global.db.AppConfigurationDao import com.duckduckgo.app.global.model.SiteFactory import com.duckduckgo.app.launch.LaunchViewModel @@ -81,6 +82,7 @@ class ViewModelFactory @Inject constructor( isAssignableFrom(ScorecardViewModel::class.java) -> ScorecardViewModel(privacySettingsStore) isAssignableFrom(TrackerNetworksViewModel::class.java) -> TrackerNetworksViewModel() isAssignableFrom(PrivacyPracticesViewModel::class.java) -> PrivacyPracticesViewModel() + isAssignableFrom(FeedbackViewModel::class.java) -> FeedbackViewModel() isAssignableFrom(SettingsViewModel::class.java) -> SettingsViewModel( appSettingsPreferencesStore, defaultBrowserDetector) isAssignableFrom(BookmarksViewModel::class.java) -> BookmarksViewModel(bookmarksDao) else -> throw IllegalArgumentException("Unknown ViewModel class: ${modelClass.name}") diff --git a/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt b/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt index 6576b9c97921..ba20062465bd 100644 --- a/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt @@ -26,9 +26,8 @@ import android.support.v7.widget.SwitchCompat import android.view.View import android.widget.CompoundButton.OnCheckedChangeListener import com.duckduckgo.app.about.AboutDuckDuckGoActivity -import com.duckduckgo.app.browser.BrowserActivity import com.duckduckgo.app.browser.R -import com.duckduckgo.app.global.AppUrl +import com.duckduckgo.app.feedback.ui.FeedbackActivity import com.duckduckgo.app.global.DuckDuckGoActivity import com.duckduckgo.app.global.ViewModelFactory import com.duckduckgo.app.global.view.launchDefaultAppActivity @@ -120,8 +119,7 @@ class SettingsActivity : DuckDuckGoActivity() { } private fun launchFeedback() { - startActivity(BrowserActivity.intent(this, AppUrl.Url.FEEDBACK)) - finish() + startActivity(Intent(FeedbackActivity.intent(this))) } companion object { diff --git a/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt b/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt index 78bda521b257..f8a6d6fa04a9 100644 --- a/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt +++ b/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt @@ -39,9 +39,7 @@ interface VariantManager { val DEFAULT_VARIANT = Variant(key = "", features = emptyList()) val ACTIVE_VARIANTS = listOf( - Variant(key = "mw", weight = 25.0, features = listOf(ShowInOnboarding)), - Variant(key = "mx", weight = 25.0, features = listOf(ShowInOnboarding, ShowTimedReminder)), - Variant(key = "my", weight = 50.0, features = emptyList()) + Variant(key = "mx", weight = 25.0, features = listOf(ShowInOnboarding, ShowTimedReminder)) ) } diff --git a/app/src/main/res/drawable/ic_icon_heart_26dp.xml b/app/src/main/res/drawable/ic_icon_heart_26dp.xml new file mode 100644 index 000000000000..b35660820d78 --- /dev/null +++ b/app/src/main/res/drawable/ic_icon_heart_26dp.xml @@ -0,0 +1,26 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_icon_smiley_face.xml b/app/src/main/res/drawable/icon_smiley_face.xml similarity index 100% rename from app/src/main/res/drawable/ic_icon_smiley_face.xml rename to app/src/main/res/drawable/icon_smiley_face.xml diff --git a/app/src/main/res/drawable/default_browser_rounded_button_bg.xml b/app/src/main/res/drawable/modal_card_rounded_button_bg.xml similarity index 88% rename from app/src/main/res/drawable/default_browser_rounded_button_bg.xml rename to app/src/main/res/drawable/modal_card_rounded_button_bg.xml index a04f7c563cea..fc0604f5240b 100644 --- a/app/src/main/res/drawable/default_browser_rounded_button_bg.xml +++ b/app/src/main/res/drawable/modal_card_rounded_button_bg.xml @@ -15,10 +15,10 @@ --> - + + android:color="@color/cornflowerBlue" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/notification_info_top_background.xml b/app/src/main/res/drawable/notification_info_top_background.xml index c409991bef6f..fae4c133686c 100644 --- a/app/src/main/res/drawable/notification_info_top_background.xml +++ b/app/src/main/res/drawable/notification_info_top_background.xml @@ -15,10 +15,10 @@ --> - + + android:color="@color/cornflowerBlue" /> diff --git a/app/src/main/res/layout-land/activity_default_browser_info.xml b/app/src/main/res/layout-land/activity_default_browser_info.xml index 50d1c6b16b59..85bc3b955630 100644 --- a/app/src/main/res/layout-land/activity_default_browser_info.xml +++ b/app/src/main/res/layout-land/activity_default_browser_info.xml @@ -28,7 +28,7 @@ android:layout_width="0dp" android:layout_height="0dp" android:background="@drawable/notification_info_top_background" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:gravity="center_horizontal" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="@+id/description" @@ -41,9 +41,9 @@ android:layout_width="26dp" android:layout_height="26dp" android:layout_marginTop="30dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:importantForAccessibility="no" - android:src="@drawable/ic_icon_smiley_face" + android:src="@drawable/icon_smiley_face" app:layout_constraintStart_toStartOf="@+id/title" app:layout_constraintTop_toTopOf="parent" /> @@ -52,10 +52,10 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="12dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:text="@string/defaultBrowserInfoTitle" android:textColor="@color/white" - android:textSize="@dimen/defaultBrowserInfoTitleTextSize" + android:textSize="@dimen/modalCardTitleTextSize" app:layout_constraintEnd_toStartOf="@id/textEndVerticalGuideline" app:layout_constraintStart_toStartOf="@id/textStartVerticalGuideline" app:layout_constraintTop_toBottomOf="@id/smileyFace" /> @@ -66,11 +66,11 @@ android:layout_height="wrap_content" android:layout_marginEnd="38dp" android:layout_marginTop="6dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:paddingBottom="30dp" android:text="@string/defaultBrowserInfoMessage" android:textColor="@color/white" - android:textSize="@dimen/defaultBrowserInfoDescriptionTextSize" + android:textSize="@dimen/modalCardDescriptionTextSize" app:layout_constraintEnd_toStartOf="@id/textEndVerticalGuideline" app:layout_constraintStart_toStartOf="@id/textStartVerticalGuideline" app:layout_constraintTop_toBottomOf="@id/title" /> @@ -111,7 +111,7 @@ android:layout_width="320dp" android:layout_height="wrap_content" android:layout_marginBottom="22dp" - android:background="@color/softBlue" + android:background="@color/cornflowerBlue" android:text="@string/onboardingDefaultBrowserGoToSettingsAction" android:textColor="@color/white" android:transitionName="defaultBrowserBannerTransition" diff --git a/app/src/main/res/layout/activity_default_browser_info.xml b/app/src/main/res/layout/activity_default_browser_info.xml index 7cf549af480c..897b3d3b085d 100644 --- a/app/src/main/res/layout/activity_default_browser_info.xml +++ b/app/src/main/res/layout/activity_default_browser_info.xml @@ -41,9 +41,9 @@ android:layout_width="26dp" android:layout_height="26dp" android:layout_marginTop="30dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:importantForAccessibility="no" - android:src="@drawable/ic_icon_smiley_face" + android:src="@drawable/icon_smiley_face" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@id/titleSection" /> @@ -53,11 +53,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="12dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:text="@string/defaultBrowserInfoTitle" android:textAlignment="center" android:textColor="@color/white" - android:textSize="@dimen/defaultBrowserInfoTitleTextSize" + android:textSize="@dimen/modalCardTitleTextSize" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/smileyFace" /> @@ -67,14 +67,14 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="6dp" - android:elevation="@dimen/defaultBrowserInfoCardTitleElevation" + android:elevation="@dimen/modalCardHeaderElevation" android:paddingBottom="30dp" android:paddingEnd="20dp" android:paddingStart="20dp" android:text="@string/defaultBrowserInfoMessage" android:textAlignment="center" android:textColor="@color/white" - android:textSize="@dimen/defaultBrowserInfoDescriptionTextSize" + android:textSize="@dimen/modalCardDescriptionTextSize" app:layout_constraintTop_toBottomOf="@id/title" /> + + + + + + + + + + + + + + + + + + + + + + + +