1
0
Fork 0

For #1716 - Consolidate Switch Styles

master
Emily Kager 2019-04-26 11:45:24 -07:00 committed by Emily Kager
parent a8d795f93f
commit ee693430a2
7 changed files with 165 additions and 100 deletions

View File

@ -40,6 +40,11 @@ class DefaultThemeManager : ThemeManager {
override val currentTheme: ThemeManager.Theme override val currentTheme: ThemeManager.Theme
get() = temporaryThemeManagerStorage get() = temporaryThemeManagerStorage
val currentThemeResource: Int = when (currentTheme) {
ThemeManager.Theme.Normal -> R.style.NormalTheme
ThemeManager.Theme.Private -> R.style.PrivateTheme
}
override fun setTheme(theme: ThemeManager.Theme) { override fun setTheme(theme: ThemeManager.Theme) {
if (temporaryThemeManagerStorage != theme) { if (temporaryThemeManagerStorage != theme) {
temporaryThemeManagerStorage = theme temporaryThemeManagerStorage = theme

View File

@ -17,7 +17,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import mozilla.components.feature.sitepermissions.SitePermissions import mozilla.components.feature.sitepermissions.SitePermissions
import org.mozilla.fenix.R import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.browser.BrowserFragment import org.mozilla.fenix.browser.BrowserFragment
import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.requireComponents
@ -26,6 +26,8 @@ import org.mozilla.fenix.mvi.getAutoDisposeObservable
import org.mozilla.fenix.mvi.getManagedEmitter import org.mozilla.fenix.mvi.getManagedEmitter
import org.mozilla.fenix.settings.PhoneFeature import org.mozilla.fenix.settings.PhoneFeature
import kotlin.coroutines.CoroutineContext import kotlin.coroutines.CoroutineContext
import androidx.appcompat.view.ContextThemeWrapper
import org.mozilla.fenix.R
private const val KEY_URL = "KEY_URL" private const val KEY_URL = "KEY_URL"
private const val KEY_IS_SECURED = "KEY_IS_SECURED" private const val KEY_IS_SECURED = "KEY_IS_SECURED"
@ -55,8 +57,21 @@ class QuickSettingsSheetDialogFragment : BottomSheetDialogFragment(), CoroutineS
job = Job() job = Job()
} }
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(
return inflater.inflate(R.layout.fragment_quick_settings_dialog_sheet, container, false) inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
val contextThemeWrapper = ContextThemeWrapper(
activity,
(activity as HomeActivity).themeManager.currentThemeResource
)
val localInflater = inflater.cloneInContext(contextThemeWrapper)
return localInflater.inflate(
R.layout.fragment_quick_settings_dialog_sheet,
container,
false
)
} }
override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) { override fun onViewCreated(rootView: View, savedInstanceState: Bundle?) {
@ -64,7 +79,12 @@ class QuickSettingsSheetDialogFragment : BottomSheetDialogFragment(), CoroutineS
quickSettingsComponent = QuickSettingsComponent( quickSettingsComponent = QuickSettingsComponent(
rootView as ConstraintLayout, ActionBusFactory.get(this), rootView as ConstraintLayout, ActionBusFactory.get(this),
QuickSettingsState( QuickSettingsState(
QuickSettingsState.Mode.Normal(url, isSecured, isTrackingProtectionOn, sitePermissions) QuickSettingsState.Mode.Normal(
url,
isSecured,
isTrackingProtectionOn,
sitePermissions
)
) )
) )
} }
@ -93,7 +113,11 @@ class QuickSettingsSheetDialogFragment : BottomSheetDialogFragment(), CoroutineS
} }
} }
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
if (arePermissionsGranted(requestCode, grantResults)) { if (arePermissionsGranted(requestCode, grantResults)) {
val feature = requireNotNull(PhoneFeature.findFeatureBy(permissions)) val feature = requireNotNull(PhoneFeature.findFeatureBy(permissions))
getManagedEmitter<QuickSettingsChange>() getManagedEmitter<QuickSettingsChange>()
@ -168,7 +192,12 @@ class QuickSettingsSheetDialogFragment : BottomSheetDialogFragment(), CoroutineS
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
getManagedEmitter<QuickSettingsChange>() getManagedEmitter<QuickSettingsChange>()
.onNext(QuickSettingsChange.Stored(it.featurePhone, sitePermissions)) .onNext(
QuickSettingsChange.Stored(
it.featurePhone,
sitePermissions
)
)
requireContext().components.useCases.sessionUseCases.reload.invoke() requireContext().components.useCases.sessionUseCases.reload.invoke()
} }

View File

@ -3,36 +3,35 @@
- License, v. 2.0. If a copy of the MPL was not distributed with this - 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/. --> - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/quick_action_sheet"
android:id="@+id/quick_action_sheet" android:layout_width="match_parent"
android:orientation="vertical" android:layout_height="wrap_content"
android:layout_width="match_parent" android:background="?foundation"
android:layout_height="wrap_content" android:contentDescription="@string/quick_settings_sheet"
android:contentDescription="@string/quick_settings_sheet" android:orientation="vertical">
android:background="?foundation">
<TextView <TextView
android:id="@+id/url" android:id="@+id/url"
style="@style/QuickSettingsText" style="@style/QuickSettingsText"
android:layout_height="@dimen/quicksettings_item_height" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="@dimen/quicksettings_item_height"
tools:text="https://wikipedia.org" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"/> tools:text="https://wikipedia.org" />
<TextView <TextView
android:id="@+id/security_info" android:id="@+id/security_info"
style="@style/QuickSettingsText.Icon" style="@style/QuickSettingsText.Icon"
android:layout_height="@dimen/quicksettings_item_height" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="@dimen/quicksettings_item_height"
tools:drawableStartCompat="@drawable/mozac_ic_lock" app:layout_constraintStart_toStartOf="parent"
tools:drawableTint="@color/photonGreen50" app:layout_constraintTop_toBottomOf="@id/url"
tools:text="Secure connection" tools:drawableStartCompat="@drawable/mozac_ic_lock"
app:layout_constraintStart_toStartOf="parent" tools:drawableTint="@color/photonGreen50"
app:layout_constraintTop_toBottomOf="@id/url"/> tools:text="Secure connection" />
<View <View
android:id="@+id/line_divider_security" android:id="@+id/line_divider_security"
@ -52,7 +51,6 @@
android:drawableStart="@drawable/ic_tracking_protection" android:drawableStart="@drawable/ic_tracking_protection"
android:paddingEnd="24dp" android:paddingEnd="24dp"
android:text="@string/preferences_tracking_protection" android:text="@string/preferences_tracking_protection"
android:thumbTint="?accentBright"
app:layout_constraintBottom_toTopOf="@id/report_problem" app:layout_constraintBottom_toTopOf="@id/report_problem"
app:layout_constraintTop_toBottomOf="@id/line_divider_security" /> app:layout_constraintTop_toBottomOf="@id/line_divider_security" />
@ -80,81 +78,80 @@
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<TextView <TextView
android:id="@+id/camera_icon" android:id="@+id/camera_icon"
style="@style/QuickSettingsText.Icon" style="@style/QuickSettingsText.Icon"
android:layout_height="@dimen/quicksettings_item_height" android:layout_width="wrap_content"
android:layout_width="wrap_content" android:layout_height="@dimen/quicksettings_item_height"
app:drawableStartCompat="@drawable/ic_camera" android:text="@string/preference_phone_feature_camera"
android:text="@string/preference_phone_feature_camera" app:drawableStartCompat="@drawable/ic_camera"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_divider"/> app:layout_constraintTop_toBottomOf="@id/line_divider" />
<TextView <TextView
android:id="@+id/camera_action_label" android:id="@+id/camera_action_label"
android:layout_height="@dimen/quicksettings_item_height" style="@style/QuickSettingsText.PermissionItemEnd"
android:layout_width="wrap_content" android:layout_width="wrap_content"
style="@style/QuickSettingsText.PermissionItemEnd" android:layout_height="@dimen/quicksettings_item_height"
tools:text="Allowed" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/line_divider"
app:layout_constraintTop_toBottomOf="@id/line_divider"/> tools:text="Allowed" />
<TextView <TextView
android:id="@+id/microphone_icon" android:id="@+id/microphone_icon"
style="@style/QuickSettingsText.Icon" style="@style/QuickSettingsText.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/quicksettings_item_height" android:layout_height="@dimen/quicksettings_item_height"
app:drawableStartCompat="@drawable/ic_microphone" android:text="@string/preference_phone_feature_microphone"
android:text="@string/preference_phone_feature_microphone" app:drawableStartCompat="@drawable/ic_microphone"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/camera_icon"/> app:layout_constraintTop_toBottomOf="@id/camera_icon" />
<TextView <TextView
android:id="@+id/microphone_action_label" android:id="@+id/microphone_action_label"
android:layout_width="wrap_content" style="@style/QuickSettingsText.PermissionItemEnd"
android:layout_height="@dimen/quicksettings_item_height" android:layout_width="wrap_content"
style="@style/QuickSettingsText.PermissionItemEnd" android:layout_height="@dimen/quicksettings_item_height"
tools:text="Blocked by Android" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/camera_action_label"
app:layout_constraintTop_toBottomOf="@id/camera_action_label"/> tools:text="Blocked by Android" />
<TextView <TextView
android:id="@+id/notification_icon" android:id="@+id/notification_icon"
style="@style/QuickSettingsText.Icon" style="@style/QuickSettingsText.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/quicksettings_item_height" android:layout_height="@dimen/quicksettings_item_height"
app:drawableStartCompat="@drawable/ic_notification" android:text="@string/preference_phone_feature_notification"
android:text="@string/preference_phone_feature_notification" app:drawableStartCompat="@drawable/ic_notification"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/microphone_icon"/> app:layout_constraintTop_toBottomOf="@id/microphone_icon" />
<TextView <TextView
android:id="@+id/notification_action_label" android:id="@+id/notification_action_label"
style="@style/QuickSettingsText.PermissionItemEnd" style="@style/QuickSettingsText.PermissionItemEnd"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/quicksettings_item_height" android:layout_height="@dimen/quicksettings_item_height"
tools:text="Blocked" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/microphone_action_label"
app:layout_constraintTop_toBottomOf="@id/microphone_action_label"/> tools:text="Blocked" />
<TextView <TextView
android:id="@+id/location_icon" android:id="@+id/location_icon"
style="@style/QuickSettingsText.Icon" style="@style/QuickSettingsText.Icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/quicksettings_item_height" android:layout_height="@dimen/quicksettings_item_height"
app:drawableStartCompat="@drawable/ic_location" android:text="@string/preference_phone_feature_location"
android:text="@string/preference_phone_feature_location" app:drawableStartCompat="@drawable/ic_location"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/notification_icon"/> app:layout_constraintTop_toBottomOf="@id/notification_icon" />
<TextView <TextView
android:id="@+id/location_action_label" android:id="@+id/location_action_label"
style="@style/QuickSettingsText.PermissionItemEnd" style="@style/QuickSettingsText.PermissionItemEnd"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/quicksettings_item_height" android:layout_height="@dimen/quicksettings_item_height"
tools:text="Blocked" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/notification_action_label"
app:layout_constraintTop_toBottomOf="@id/notification_action_label"/> tools:text="Blocked" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- 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/. -->
<Switch xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/Mozac.Browser.Menu.Item.Text"
android:layout_width="match_parent"
android:layout_height="@dimen/mozac_browser_menu_item_container_layout_height"
android:orientation="vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp"/>

View File

@ -19,4 +19,6 @@
<color name="destructive_normal_theme">@color/destructive_dark_theme</color> <color name="destructive_normal_theme">@color/destructive_dark_theme</color>
<color name="scrimStart_normal_theme">@color/scrimStart_dark_theme</color> <color name="scrimStart_normal_theme">@color/scrimStart_dark_theme</color>
<color name="scrimEnd_normal_theme">@color/scrimStart_dark_theme</color> <color name="scrimEnd_normal_theme">@color/scrimStart_dark_theme</color>
<color name="toggle_off_knob_normal_theme">@color/toggle_off_knob_dark_theme</color>
<color name="toggle_off_track_normal_theme">@color/toggle_off_track_dark_theme</color>
</resources> </resources>

View File

@ -109,11 +109,19 @@
<color name="quick_action_read_icon">#8a201f</color> <color name="quick_action_read_icon">#8a201f</color>
<color name="quick_action_read_icon_background">#fce98f</color> <color name="quick_action_read_icon_background">#fce98f</color>
<!-- Toggle Colors -->
<color name="toggle_off_knob_light_theme">@color/photonGrey10</color>
<color name="toggle_off_track_light_theme">@color/dark_grey_90</color>
<color name="toggle_off_knob_dark_theme">@color/light_grey_05</color>
<color name="toggle_off_track_dark_theme">@color/light_grey_05</color>
<color name="toggle_off_knob_normal_theme">@color/toggle_off_knob_light_theme</color>
<color name="toggle_off_track_normal_theme">@color/toggle_off_track_light_theme</color>
<!-- Misc colors applied universally--> <!-- Misc colors applied universally-->
<color name="suggestion_highlight_color">#5C592ACB</color> <color name="suggestion_highlight_color">#5C592ACB</color>
<!-- <color name="private_browsing_button_accent_color">#722291</color> -->
<color name="private_browsing_button_accent_color">@color/foundation_private_theme</color> <color name="private_browsing_button_accent_color">@color/foundation_private_theme</color>
<color name="white_color">#FBFBFE</color> <color name="white_color">#FBFBFE</color>
<color name="light_grey_05">#FBFBFE</color>
<color name="dark_grey_90">#15141A</color>
<color name="neutral_text">@color/white_color</color> <color name="neutral_text">@color/white_color</color>
</resources> </resources>

View File

@ -12,7 +12,14 @@
<item name="android:windowBackground">@color/foundation_normal_theme</item> <item name="android:windowBackground">@color/foundation_normal_theme</item>
<item name="android:colorEdgeEffect">@color/accent_normal_theme</item> <item name="android:colorEdgeEffect">@color/accent_normal_theme</item>
<item name="android:colorAccent">@color/primary_text_normal_theme</item> <item name="android:colorAccent">@color/primary_text_normal_theme</item>
<item name="android:colorControlActivated">@color/accent_bright_normal_theme</item> <item name="android:textColorPrimary">@color/primary_text_normal_theme</item>
<item name="android:textColorSecondary">@color/secondary_text_normal_theme</item>
<!-- Active thumb color & Active track color (30% transparency) -->
<item name="android:colorControlActivated">@color/accent_high_contrast_normal_theme</item>
<!-- Inactive thumb color -->
<item name="colorSwitchThumbNormal">@color/toggle_off_knob_normal_theme</item>
<!-- Inactive track color(30% transparency) -->
<item name="android:colorForeground">@color/toggle_off_track_normal_theme</item>
<!-- Updated color attributes --> <!-- Updated color attributes -->
<item name="primaryText">@color/primary_text_normal_theme</item> <item name="primaryText">@color/primary_text_normal_theme</item>
@ -38,7 +45,7 @@
<item name="privateBrowsingButtonAccent">@color/primary_text_normal_theme</item> <item name="privateBrowsingButtonAccent">@color/primary_text_normal_theme</item>
</style> </style>
<style name="NormalTheme" parent="NormalThemeBase"/> <style name="NormalTheme" parent="NormalThemeBase" />
<style name="PrivateThemeBase" parent="Theme.AppCompat.NoActionBar"> <style name="PrivateThemeBase" parent="Theme.AppCompat.NoActionBar">
<!-- Android system styling --> <!-- Android system styling -->
@ -48,7 +55,13 @@
<item name="android:windowBackground">@color/foundation_private_theme</item> <item name="android:windowBackground">@color/foundation_private_theme</item>
<item name="android:colorEdgeEffect">@color/accent_private_theme</item> <item name="android:colorEdgeEffect">@color/accent_private_theme</item>
<item name="android:colorAccent">@color/primary_text_private_theme</item> <item name="android:colorAccent">@color/primary_text_private_theme</item>
<item name="android:colorControlActivated">@color/accent_bright_private_theme</item> <item name="android:colorControlActivated">@color/accent_high_contrast_private_theme</item>
<item name="android:textColorPrimary">@color/primary_text_private_theme</item>
<item name="android:textColorSecondary">@color/secondary_text_private_theme</item>
<!-- Inactive thumb color -->
<item name="colorSwitchThumbNormal">@color/toggle_off_knob_dark_theme</item>
<!-- Inactive track color(30% transparency) -->
<item name="android:colorForeground">@color/toggle_off_track_dark_theme</item>
<!-- Updated color attributes --> <!-- Updated color attributes -->
<item name="primaryText">@color/primary_text_private_theme</item> <item name="primaryText">@color/primary_text_private_theme</item>
@ -79,7 +92,7 @@
<item name="cardBackgroundColor">?above</item> <item name="cardBackgroundColor">?above</item>
</style> </style>
<style name="PrivateTheme" parent="PrivateThemeBase"/> <style name="PrivateTheme" parent="PrivateThemeBase" />
<!-- Fade animation for theme switching --> <!-- Fade animation for theme switching -->
<style name="WindowAnimationTransition"> <style name="WindowAnimationTransition">