Snap for 7798846 from f83531e0b3 to sc-v2-release
Change-Id: If6c36e62f98d51390ed14b39145940d99cbe6bac
This commit is contained in:
@@ -1679,6 +1679,10 @@
|
|||||||
android:value="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
|
android:value="com.android.settings.accessibility.AccessibilitySettingsForSetupWizard" />
|
||||||
</activity-alias>
|
</activity-alias>
|
||||||
|
|
||||||
|
<activity
|
||||||
|
android:name=".accessibility.AccessibilityScreenSizeForSetupWizardActivity"
|
||||||
|
android:exported="false"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="Settings$AccessibilityDaltonizerSettingsActivity"
|
android:name="Settings$AccessibilityDaltonizerSettingsActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
@@ -3675,6 +3679,11 @@
|
|||||||
</intent-filter>
|
</intent-filter>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
|
<provider
|
||||||
|
android:name=".activityembedding.ActivityEmbeddingProvider"
|
||||||
|
android:authorities="com.android.settings.activityembedding"
|
||||||
|
android:exported="true"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".wifi.dpp.WifiDppConfiguratorActivity"
|
android:name=".wifi.dpp.WifiDppConfiguratorActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
|||||||
Binary file not shown.
31
res/layout/accessibility_screen_size_setup_wizard.xml
Normal file
31
res/layout/accessibility_screen_size_setup_wizard.xml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<com.google.android.setupdesign.GlifLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/setup_wizard_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:icon="@drawable/ic_accessibility_visibility"
|
||||||
|
app:sucHeaderText="@string/title_font_size"
|
||||||
|
app:sudDescriptionText="@string/short_summary_font_size">
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/content_frame"
|
||||||
|
android:layout_marginTop="@dimen/preview_size_top_margin"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
</com.google.android.setupdesign.GlifLayout>
|
||||||
86
res/layout/suw_font_size_fragment.xml
Normal file
86
res/layout/suw_font_size_fragment.xml
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<include layout="@layout/suw_preview_seek_bar_view_pager"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
||||||
|
|
||||||
|
<com.android.settings.widget.DotsPageIndicator
|
||||||
|
android:id="@+id/page_indicator"
|
||||||
|
style="@style/PreviewPagerPageIndicator"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:padding="3dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/current_label"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:padding="6dp"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Widget.TextView"
|
||||||
|
android:elevation="2dp"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:paddingTop="8dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/smaller"
|
||||||
|
android:src="@drawable/ic_font_size_16dp"
|
||||||
|
android:contentDescription="@string/font_size_make_smaller_desc"
|
||||||
|
style="@style/screen_size_imageview_style"/>
|
||||||
|
|
||||||
|
<com.android.settings.widget.LabeledSeekBar
|
||||||
|
android:id="@+id/seek_bar"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
style="@android:style/Widget.Material.SeekBar.Discrete"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/larger"
|
||||||
|
android:src="@drawable/ic_font_size_24dp"
|
||||||
|
android:contentDescription="@string/font_size_make_larger_desc"
|
||||||
|
style="@style/screen_size_imageview_style"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/font_size_summary"
|
||||||
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
42
res/layout/suw_preview_seek_bar_view_pager.xml
Normal file
42
res/layout/suw_preview_seek_bar_view_pager.xml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:paddingStart="@dimen/preview_pager_padding"
|
||||||
|
android:paddingEnd="@dimen/preview_pager_padding"
|
||||||
|
android:background="@drawable/preview_seek_bar_outline" >
|
||||||
|
|
||||||
|
<androidx.viewpager.widget.ViewPager
|
||||||
|
android:id="@+id/preview_pager"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="200dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:background="?android:attr/colorBackground"
|
||||||
|
android:contentDescription="@string/preview_pager_content_description" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="36dp"
|
||||||
|
android:paddingStart="32dp"
|
||||||
|
android:gravity="start|center"
|
||||||
|
android:text="@string/screen_zoom_preview_title"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Widget.ActionBar.Title"
|
||||||
|
android:importantForAccessibility="no" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
85
res/layout/suw_screen_zoom_fragment.xml
Normal file
85
res/layout/suw_screen_zoom_fragment.xml
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:fillViewport="true">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<include layout="@layout/suw_preview_seek_bar_view_pager"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
|
||||||
|
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
|
||||||
|
|
||||||
|
<com.android.settings.widget.DotsPageIndicator
|
||||||
|
android:id="@+id/page_indicator"
|
||||||
|
style="@style/PreviewPagerPageIndicator"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:padding="3dp"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/current_label"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:padding="6dp"
|
||||||
|
android:textAppearance="@android:style/TextAppearance.DeviceDefault.Widget.TextView"
|
||||||
|
android:elevation="2dp"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:gravity="center_vertical">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/smaller"
|
||||||
|
android:src="@drawable/ic_remove_24dp"
|
||||||
|
android:contentDescription="@string/screen_zoom_make_smaller_desc"
|
||||||
|
style="@style/screen_size_imageview_style"/>
|
||||||
|
|
||||||
|
<com.android.settings.widget.LabeledSeekBar
|
||||||
|
android:id="@+id/seek_bar"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
style="@android:style/Widget.Material.SeekBar.Discrete"/>
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/larger"
|
||||||
|
android:src="@drawable/ic_add_24dp"
|
||||||
|
android:contentDescription="@string/screen_zoom_make_larger_desc"
|
||||||
|
style="@style/screen_size_imageview_style"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/screen_zoom_summary"
|
||||||
|
android:textAppearance="@*android:style/TextAppearance.DeviceDefault.Subhead"/>
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
19
res/values-sw300dp-land-v31/dimens.xml
Normal file
19
res/values-sw300dp-land-v31/dimens.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||||
|
|
||||||
|
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.
|
||||||
|
-->
|
||||||
|
<resources>
|
||||||
|
<!-- Top margin for preview view pager -->
|
||||||
|
<dimen name="preview_size_top_margin">0dp</dimen>
|
||||||
|
</resources>
|
||||||
@@ -434,6 +434,9 @@
|
|||||||
<!-- Choose SIM Activity dimens -->
|
<!-- Choose SIM Activity dimens -->
|
||||||
<dimen name="subtitle_bottom_padding">24dp</dimen>
|
<dimen name="subtitle_bottom_padding">24dp</dimen>
|
||||||
|
|
||||||
|
<!-- Top margin for preview view pager -->
|
||||||
|
<dimen name="preview_size_top_margin">-12dp</dimen>
|
||||||
|
|
||||||
<!-- Battery usage chart view component -->
|
<!-- Battery usage chart view component -->
|
||||||
<dimen name="chartview_text_padding">6dp</dimen>
|
<dimen name="chartview_text_padding">6dp</dimen>
|
||||||
<dimen name="chartview_divider_width">1dp</dimen>
|
<dimen name="chartview_divider_width">1dp</dimen>
|
||||||
|
|||||||
@@ -21,4 +21,9 @@
|
|||||||
<integer name="job_anomaly_detection">102</integer>
|
<integer name="job_anomaly_detection">102</integer>
|
||||||
<integer name="device_index_update">103</integer>
|
<integer name="device_index_update">103</integer>
|
||||||
<integer name="sim_notification_send">104</integer>
|
<integer name="sim_notification_send">104</integer>
|
||||||
|
|
||||||
|
<!-- Define the font/display size fragment id in the
|
||||||
|
accessibility_settings_for_setup_wizard.xml. -->
|
||||||
|
<integer name="suw_font_size_fragment_no">0</integer>
|
||||||
|
<integer name="suw_display_size_fragment_no">1</integer>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -6283,6 +6283,8 @@
|
|||||||
|
|
||||||
<!-- Summary for battery manager when it is on -->
|
<!-- Summary for battery manager when it is on -->
|
||||||
<string name="battery_manager_summary">Detecting when apps drain battery</string>
|
<string name="battery_manager_summary">Detecting when apps drain battery</string>
|
||||||
|
<!-- Summary for battery manager when it is on. [CHAR LIMIT=NONE] -->
|
||||||
|
<string name="battery_manager_summary_unsupported">Detecting when apps drain battery</string>
|
||||||
|
|
||||||
<!-- Summary for battery manager when it is off -->
|
<!-- Summary for battery manager when it is off -->
|
||||||
<string name="battery_manager_off">Off</string>
|
<string name="battery_manager_off">Off</string>
|
||||||
|
|||||||
@@ -237,6 +237,16 @@
|
|||||||
<item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Small</item>
|
<item name="android:textAppearance">@android:style/TextAppearance.DeviceDefault.Small</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="screen_size_imageview_style">
|
||||||
|
<item name="android:layout_width">48dp</item>
|
||||||
|
<item name="android:layout_height">48dp</item>
|
||||||
|
<item name="android:background">?android:attr/selectableItemBackgroundBorderless</item>
|
||||||
|
<item name="android:tint">?android:attr/textColorPrimary</item>
|
||||||
|
<item name="android:tintMode">src_in</item>
|
||||||
|
<item name="android:scaleType">center</item>
|
||||||
|
<item name="android:focusable">true</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="TextAppearance" parent="android:TextAppearance.DeviceDefault"/>
|
<style name="TextAppearance" parent="android:TextAppearance.DeviceDefault"/>
|
||||||
|
|
||||||
<style name="TextAppearance.info_label">
|
<style name="TextAppearance.info_label">
|
||||||
|
|||||||
@@ -234,6 +234,7 @@
|
|||||||
<item name="android:listPreferredItemPaddingEnd">16dp</item>
|
<item name="android:listPreferredItemPaddingEnd">16dp</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
|
<item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
|
||||||
<item name="android:switchStyle">@style/Switch.SettingsLib</item>
|
<item name="android:switchStyle">@style/Switch.SettingsLib</item>
|
||||||
|
<item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- This theme was applied to Settings pages which are running under SUW with DynamicColor. -->
|
<!-- This theme was applied to Settings pages which are running under SUW with DynamicColor. -->
|
||||||
@@ -243,6 +244,7 @@
|
|||||||
<item name="android:listPreferredItemPaddingEnd">16dp</item>
|
<item name="android:listPreferredItemPaddingEnd">16dp</item>
|
||||||
<item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
|
<item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item>
|
||||||
<item name="android:switchStyle">@style/Switch.SettingsLib</item>
|
<item name="android:switchStyle">@style/Switch.SettingsLib</item>
|
||||||
|
<item name="preferenceFragmentCompatStyle">@style/SetupWizardPreferenceFragmentStyle</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<!-- DayNight themes -->
|
<!-- DayNight themes -->
|
||||||
|
|||||||
@@ -21,18 +21,28 @@
|
|||||||
android:title="@string/vision_settings_title">
|
android:title="@string/vision_settings_title">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.display.FontSizePreferenceFragmentForSetupWizard"
|
|
||||||
android:key="font_size_preference"
|
android:key="font_size_preference"
|
||||||
android:icon="@drawable/ic_font_size"
|
android:icon="@drawable/ic_font_size"
|
||||||
android:summary="@string/short_summary_font_size"
|
android:summary="@string/short_summary_font_size"
|
||||||
android:title="@string/title_font_size"/>
|
android:title="@string/title_font_size">
|
||||||
|
<intent
|
||||||
|
android:targetPackage="com.android.settings"
|
||||||
|
android:targetClass="com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity">
|
||||||
|
<extra android:name="vision_fragment_no" android:value="@integer/suw_font_size_fragment_no"/>
|
||||||
|
</intent>
|
||||||
|
</Preference>
|
||||||
|
|
||||||
<com.android.settings.display.ScreenZoomPreference
|
<com.android.settings.display.ScreenZoomPreference
|
||||||
android:fragment="com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard"
|
|
||||||
android:key="force_density_preference"
|
android:key="force_density_preference"
|
||||||
android:icon="@drawable/ic_screen_zoom"
|
android:icon="@drawable/ic_screen_zoom"
|
||||||
android:summary="@string/screen_zoom_short_summary"
|
android:summary="@string/screen_zoom_short_summary"
|
||||||
android:title="@string/screen_zoom_title"/>
|
android:title="@string/screen_zoom_title">
|
||||||
|
<intent
|
||||||
|
android:targetPackage="com.android.settings"
|
||||||
|
android:targetClass="com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity">
|
||||||
|
<extra android:name="vision_fragment_no" android:value="@integer/suw_display_size_fragment_no"/>
|
||||||
|
</intent>
|
||||||
|
</com.android.settings.display.ScreenZoomPreference>
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
|
android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.app.settings.SettingsEnums;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ScrollView;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.core.InstrumentedActivity;
|
||||||
|
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
|
||||||
|
import com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||||
|
import com.google.android.setupcompat.template.FooterButton;
|
||||||
|
import com.google.android.setupdesign.GlifLayout;
|
||||||
|
import com.google.android.setupdesign.util.ThemeHelper;
|
||||||
|
|
||||||
|
/** Settings font/display size activity for SUW. */
|
||||||
|
public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedActivity {
|
||||||
|
private static final String TAG = "ScreenSizeForSetup";
|
||||||
|
|
||||||
|
// A parameter decides which fragment ({@link FontSizePreferenceFragmentForSetupWizard} or
|
||||||
|
// {@link ScreenZoomPreferenceFragmentForSetupWizard}) will be visioned.
|
||||||
|
static final String VISION_FRAGMENT_NO = "vision_fragment_no";
|
||||||
|
|
||||||
|
private int mFragmentNo;
|
||||||
|
private int mFontSizeFragmentNo;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
mFontSizeFragmentNo = getResources().getInteger(R.integer.suw_font_size_fragment_no);
|
||||||
|
final int appliedTheme = ThemeHelper.trySetDynamicColor(this)
|
||||||
|
? R.style.SudDynamicColorThemeGlifV3_DayNight : R.style.SudThemeGlifV3_DayNight;
|
||||||
|
setTheme(appliedTheme);
|
||||||
|
setContentView(R.layout.accessibility_screen_size_setup_wizard);
|
||||||
|
mFragmentNo = getIntent().getExtras().getInt(VISION_FRAGMENT_NO);
|
||||||
|
Log.d(TAG, "onCreate: fragment no: " + mFragmentNo);
|
||||||
|
generateHeader(mFragmentNo);
|
||||||
|
scrollToBottom();
|
||||||
|
initFooterButton();
|
||||||
|
if (savedInstanceState == null) {
|
||||||
|
final PreferenceFragmentCompat fragment =
|
||||||
|
(mFragmentNo == mFontSizeFragmentNo)
|
||||||
|
? new FontSizePreferenceFragmentForSetupWizard()
|
||||||
|
: new ScreenZoomPreferenceFragmentForSetupWizard();
|
||||||
|
getSupportFragmentManager()
|
||||||
|
.beginTransaction()
|
||||||
|
.replace(R.id.content_frame, fragment)
|
||||||
|
.commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMetricsCategory() {
|
||||||
|
return mFragmentNo == mFontSizeFragmentNo ? SettingsEnums.SUW_ACCESSIBILITY_FONT_SIZE
|
||||||
|
: SettingsEnums.SUW_ACCESSIBILITY_DISPLAY_SIZE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void generateHeader(int fragmentNo) {
|
||||||
|
((TextView) findViewById(R.id.suc_layout_title)).setText(
|
||||||
|
fragmentNo == mFontSizeFragmentNo ? R.string.title_font_size
|
||||||
|
: R.string.screen_zoom_title);
|
||||||
|
((TextView) findViewById(R.id.sud_layout_subtitle)).setText(
|
||||||
|
fragmentNo == mFontSizeFragmentNo ? R.string.short_summary_font_size
|
||||||
|
: R.string.screen_zoom_short_summary);
|
||||||
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void initFooterButton() {
|
||||||
|
final GlifLayout layout = findViewById(R.id.setup_wizard_layout);
|
||||||
|
final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
|
||||||
|
final View.OnClickListener nextButtonListener =
|
||||||
|
v -> {
|
||||||
|
onBackPressed();
|
||||||
|
};
|
||||||
|
final FooterButton primaryButton =
|
||||||
|
new FooterButton.Builder(this)
|
||||||
|
.setText(R.string.done)
|
||||||
|
.setListener(nextButtonListener)
|
||||||
|
.setButtonType(FooterButton.ButtonType.NEXT)
|
||||||
|
.setTheme(R.style.SudGlifButton_Primary)
|
||||||
|
.build();
|
||||||
|
mixin.setPrimaryButton(primaryButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scrolls to bottom while {@link ScrollView} layout changed.
|
||||||
|
*/
|
||||||
|
private void scrollToBottom() {
|
||||||
|
final GlifLayout layout = findViewById(R.id.setup_wizard_layout);
|
||||||
|
final ScrollView scrollView = layout.getScrollView();
|
||||||
|
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
|
||||||
|
final int scrollViewHeight = scrollView.getHeight();
|
||||||
|
if (scrollViewHeight > 0) {
|
||||||
|
scrollView.post(() -> {
|
||||||
|
// Here is no need to show the scrolling animation. So disabled first and
|
||||||
|
// then enabled it after scrolling finished.
|
||||||
|
scrollView.setSmoothScrollingEnabled(false);
|
||||||
|
scrollView.fullScroll(View.FOCUS_DOWN);
|
||||||
|
scrollView.setSmoothScrollingEnabled(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,11 +28,11 @@ import android.content.pm.ServiceInfo;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.text.TextUtils;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
import android.widget.LinearLayout;
|
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
@@ -42,7 +42,6 @@ import com.android.settings.SettingsPreferenceFragment;
|
|||||||
import com.android.settingslib.RestrictedPreference;
|
import com.android.settingslib.RestrictedPreference;
|
||||||
|
|
||||||
import com.google.android.setupdesign.GlifPreferenceLayout;
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
import com.google.android.setupdesign.util.ThemeHelper;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -81,16 +80,11 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
|
||||||
layout.setDividerInsets(Integer.MAX_VALUE, 0);
|
final String title = getContext().getString(R.string.vision_settings_title);
|
||||||
layout.setDescriptionText(R.string.vision_settings_description);
|
final String description = getContext().getString(R.string.vision_settings_description);
|
||||||
layout.setHeaderText(R.string.vision_settings_title);
|
final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
|
||||||
layout.setIcon(getPrefContext().getDrawable(R.drawable.ic_accessibility_visibility));
|
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
|
||||||
|
description, icon);
|
||||||
if (ThemeHelper.shouldApplyExtendedPartnerConfig(getActivity())) {
|
|
||||||
final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header);
|
|
||||||
headerLayout.setPadding(0, headerLayout.getPaddingTop(), 0,
|
|
||||||
headerLayout.getPaddingBottom());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -143,6 +137,13 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
return super.onPreferenceTreeClick(preference);
|
return super.onPreferenceTreeClick(preference);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns accessibility service info by given package name and service name.
|
||||||
|
*
|
||||||
|
* @param packageName Package of accessibility service
|
||||||
|
* @param serviceName Class of accessibility service
|
||||||
|
* @return {@link AccessibilityServiceInfo} instance if available, null otherwise.
|
||||||
|
*/
|
||||||
private AccessibilityServiceInfo findService(String packageName, String serviceName) {
|
private AccessibilityServiceInfo findService(String packageName, String serviceName) {
|
||||||
final AccessibilityManager manager =
|
final AccessibilityManager manager =
|
||||||
getActivity().getSystemService(AccessibilityManager.class);
|
getActivity().getSystemService(AccessibilityManager.class);
|
||||||
@@ -150,8 +151,8 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
|||||||
manager.getInstalledAccessibilityServiceList();
|
manager.getInstalledAccessibilityServiceList();
|
||||||
for (AccessibilityServiceInfo info : accessibilityServices) {
|
for (AccessibilityServiceInfo info : accessibilityServices) {
|
||||||
ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
|
ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
|
||||||
if (packageName.equals(serviceInfo.packageName)
|
if (TextUtils.equals(packageName, serviceInfo.packageName)
|
||||||
&& serviceName.equals(serviceInfo.name)) {
|
&& TextUtils.equals(serviceName, serviceInfo.name)) {
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,10 @@
|
|||||||
|
|
||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@@ -30,7 +33,6 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.SettingsActivity;
|
import com.android.settings.SettingsActivity;
|
||||||
import com.android.settings.SetupWizardUtils;
|
import com.android.settings.SetupWizardUtils;
|
||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
|
|
||||||
import com.android.settings.search.actionbar.SearchMenuController;
|
import com.android.settings.search.actionbar.SearchMenuController;
|
||||||
import com.android.settings.support.actionbar.HelpResourceProvider;
|
import com.android.settings.support.actionbar.HelpResourceProvider;
|
||||||
import com.android.settingslib.core.instrumentation.Instrumentable;
|
import com.android.settingslib.core.instrumentation.Instrumentable;
|
||||||
@@ -123,19 +125,12 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit
|
|||||||
&& new ComponentName(getPackageName(),
|
&& new ComponentName(getPackageName(),
|
||||||
CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW).equals(
|
CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW).equals(
|
||||||
getIntent().getComponent())) {
|
getIntent().getComponent())) {
|
||||||
final Bundle args = new Bundle();
|
final Intent intent = new Intent(this,
|
||||||
args.putInt(HelpResourceProvider.HELP_URI_RESOURCE_KEY, 0);
|
AccessibilityScreenSizeForSetupWizardActivity.class);
|
||||||
args.putBoolean(SearchMenuController.NEED_SEARCH_ICON_IN_ACTION_BAR, false);
|
intent.putExtra(VISION_FRAGMENT_NO,
|
||||||
final SubSettingLauncher subSettingLauncher = new SubSettingLauncher(this)
|
getResources().getInteger(R.integer.suw_font_size_fragment_no));
|
||||||
.setDestination(FontSizePreferenceFragmentForSetupWizard.class.getName())
|
startActivity(intent);
|
||||||
.setArguments(args)
|
|
||||||
.setSourceMetricsCategory(Instrumentable.METRICS_CATEGORY_UNKNOWN)
|
|
||||||
.setExtras(SetupWizardUtils.copyLifecycleExtra(getIntent().getExtras(),
|
|
||||||
new Bundle()))
|
|
||||||
.setTransitionType(SettingsTransitionHelper.TransitionType.TRANSITION_FADE);
|
|
||||||
|
|
||||||
Log.d(LOG_TAG, "Launch font size settings");
|
Log.d(LOG_TAG, "Launch font size settings");
|
||||||
subSettingLauncher.launch();
|
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
import com.google.android.setupdesign.util.ThemeHelper;
|
||||||
|
|
||||||
|
/** Provides utility methods to accessibility settings for Setup Wizard only. */
|
||||||
|
class AccessibilitySetupWizardUtils {
|
||||||
|
|
||||||
|
private AccessibilitySetupWizardUtils(){}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the {@link GlifPreferenceLayout} attributes if they have previously been initialized.
|
||||||
|
* When the SetupWizard supports the extended partner configs, it means the material layout
|
||||||
|
* would be applied. It should set a different padding/margin in views to align Settings style
|
||||||
|
* for accessibility feature pages.
|
||||||
|
*
|
||||||
|
* @param layout The layout instance
|
||||||
|
* @param title The text to be set as title
|
||||||
|
* @param description The text to be set as description
|
||||||
|
* @param icon The icon to be set
|
||||||
|
*/
|
||||||
|
public static void updateGlifPreferenceLayout(Context context, GlifPreferenceLayout layout,
|
||||||
|
CharSequence title, CharSequence description, Drawable icon) {
|
||||||
|
layout.setHeaderText(title);
|
||||||
|
layout.setDescriptionText(description);
|
||||||
|
layout.setIcon(icon);
|
||||||
|
layout.setDividerInsets(Integer.MAX_VALUE, 0);
|
||||||
|
|
||||||
|
if (ThemeHelper.shouldApplyExtendedPartnerConfig(context)) {
|
||||||
|
final LinearLayout headerLayout = layout.findManagedViewById(R.id.sud_layout_header);
|
||||||
|
if (headerLayout != null) {
|
||||||
|
headerLayout.setPadding(0, layout.getPaddingTop(), 0,
|
||||||
|
layout.getPaddingBottom());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -17,12 +17,44 @@
|
|||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
|
||||||
public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
||||||
extends ToggleScreenMagnificationPreferenceFragment {
|
extends ToggleScreenMagnificationPreferenceFragment {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
|
||||||
|
final String title = getContext().getString(
|
||||||
|
R.string.accessibility_screen_magnification_title);
|
||||||
|
final String description = getContext().getString(R.string.accelerometer_title);
|
||||||
|
final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
|
||||||
|
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
|
||||||
|
description, icon);
|
||||||
|
|
||||||
|
// Hide the setting from the vision settings.
|
||||||
|
mSettingsPreference.setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
|
||||||
|
return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
|
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_MAGNIFICATION;
|
||||||
@@ -49,12 +81,4 @@ public class ToggleScreenMagnificationPreferenceFragmentForSetupWizard
|
|||||||
// Hides help center in action bar and footer bar in SuW
|
// Hides help center in action bar and footer bar in SuW
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
|
||||||
super.onViewCreated(view, savedInstanceState);
|
|
||||||
|
|
||||||
// Hide the setting from the vision settings.
|
|
||||||
mSettingsPreference.setVisible(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,8 +17,17 @@
|
|||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
|
||||||
public class ToggleScreenReaderPreferenceFragmentForSetupWizard
|
public class ToggleScreenReaderPreferenceFragmentForSetupWizard
|
||||||
extends ToggleAccessibilityServicePreferenceFragment {
|
extends ToggleAccessibilityServicePreferenceFragment {
|
||||||
@@ -28,9 +37,25 @@ public class ToggleScreenReaderPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
|
||||||
|
final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE);
|
||||||
|
final String description = getContext().getString(
|
||||||
|
R.string.accessibility_screen_magnification_title);
|
||||||
|
final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
|
||||||
|
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
|
||||||
|
description, icon);
|
||||||
|
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
|
||||||
|
return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER;
|
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SCREEN_READER;
|
||||||
|
|||||||
@@ -17,8 +17,17 @@
|
|||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
|
||||||
public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
||||||
extends InvisibleToggleAccessibilityServicePreferenceFragment {
|
extends InvisibleToggleAccessibilityServicePreferenceFragment {
|
||||||
@@ -28,9 +37,24 @@ public class ToggleSelectToSpeakPreferenceFragmentForSetupWizard
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
|
||||||
|
final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE);
|
||||||
|
final String description = getContext().getString(R.string.select_to_speak_summary);
|
||||||
|
final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
|
||||||
|
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
|
||||||
|
description, icon);
|
||||||
|
|
||||||
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
mToggleSwitchWasInitiallyChecked = mToggleServiceSwitchPreference.isChecked();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
|
||||||
|
Bundle savedInstanceState) {
|
||||||
|
final GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
|
||||||
|
return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK;
|
return SettingsEnums.SUW_ACCESSIBILITY_TOGGLE_SELECT_TO_SPEAK;
|
||||||
|
|||||||
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.activityembedding;
|
||||||
|
|
||||||
|
import android.content.ContentProvider;
|
||||||
|
import android.content.ContentValues;
|
||||||
|
import android.database.Cursor;
|
||||||
|
import android.net.Uri;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A content provider for querying the state of activity embedding feature
|
||||||
|
*/
|
||||||
|
public class ActivityEmbeddingProvider extends ContentProvider {
|
||||||
|
|
||||||
|
private static final String METHOD_IS_EMBEDDING_ACTIVITY_ENABLED = "isEmbeddingActivityEnabled";
|
||||||
|
private static final String EXTRA_ENABLED_STATE = "enabled_state";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreate() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Bundle call(String method, String arg, Bundle extras) {
|
||||||
|
if (TextUtils.equals(method, METHOD_IS_EMBEDDING_ACTIVITY_ENABLED)) {
|
||||||
|
final Bundle bundle = new Bundle();
|
||||||
|
bundle.putBoolean(EXTRA_ENABLED_STATE,
|
||||||
|
ActivityEmbeddingUtils.isEmbeddingActivityEnabled(getContext()));
|
||||||
|
return bundle;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
|
||||||
|
String sortOrder) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getType(Uri uri) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Uri insert(Uri uri, ContentValues values) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int delete(Uri uri, String selection, String[] selectionArgs) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -18,9 +18,16 @@ package com.android.settings.display;
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
public class FontSizePreferenceFragmentForSetupWizard
|
public class FontSizePreferenceFragmentForSetupWizard
|
||||||
extends ToggleFontSizePreferenceFragment {
|
extends ToggleFontSizePreferenceFragment {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getActivityLayoutResId() {
|
||||||
|
return R.layout.suw_font_size_fragment;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SUW_ACCESSIBILITY_FONT_SIZE;
|
return SettingsEnums.SUW_ACCESSIBILITY_FONT_SIZE;
|
||||||
|
|||||||
@@ -109,6 +109,10 @@ public class PreviewPagerAdapter extends PagerAdapter {
|
|||||||
return (view == object);
|
return (view == object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FrameLayout[] getPreviewFrames() {
|
||||||
|
return mPreviewFrames;
|
||||||
|
}
|
||||||
|
|
||||||
boolean isAnimating() {
|
boolean isAnimating() {
|
||||||
return mAnimationCounter > 0;
|
return mAnimationCounter > 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -264,6 +264,12 @@ public abstract class PreviewSeekBarPreferenceFragment extends SettingsPreferenc
|
|||||||
@Override
|
@Override
|
||||||
public void onPageSelected(int position) {
|
public void onPageSelected(int position) {
|
||||||
mPreviewPager.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
|
mPreviewPager.sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
|
||||||
|
// To avoid displaying previous page on the left side in SUW landscape mode for
|
||||||
|
// large size.
|
||||||
|
if (position > 0) {
|
||||||
|
mPreviewPagerAdapter.getPreviewFrames()[position - 1].setVisibility(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
mPreviewPagerAdapter.getPreviewFrames()[position].setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -18,8 +18,15 @@ package com.android.settings.display;
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
public class ScreenZoomPreferenceFragmentForSetupWizard extends ScreenZoomSettings {
|
public class ScreenZoomPreferenceFragmentForSetupWizard extends ScreenZoomSettings {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getActivityLayoutResId() {
|
||||||
|
return R.layout.suw_screen_zoom_fragment;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return SettingsEnums.SUW_ACCESSIBILITY_DISPLAY_SIZE;
|
return SettingsEnums.SUW_ACCESSIBILITY_DISPLAY_SIZE;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import androidx.preference.Preference;
|
|||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.RestrictedLockUtilsInternal;
|
import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||||
import com.android.settingslib.RestrictedTopLevelPreference;
|
import com.android.settingslib.RestrictedTopLevelPreference;
|
||||||
@@ -97,7 +98,8 @@ public class TopLevelWallpaperPreferenceController extends BasePreferenceControl
|
|||||||
if (getPreferenceKey().equals(preference.getKey())) {
|
if (getPreferenceKey().equals(preference.getKey())) {
|
||||||
final Intent intent = new Intent().setComponent(
|
final Intent intent = new Intent().setComponent(
|
||||||
getComponentName()).putExtra(mWallpaperLaunchExtra, LAUNCHED_SETTINGS);
|
getComponentName()).putExtra(mWallpaperLaunchExtra, LAUNCHED_SETTINGS);
|
||||||
if (areStylesAvailable()) {
|
if (areStylesAvailable() && !ActivityEmbeddingUtils.isEmbeddingActivityEnabled(
|
||||||
|
mContext)) {
|
||||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
||||||
}
|
}
|
||||||
preference.getContext().startActivity(intent);
|
preference.getContext().startActivity(intent);
|
||||||
|
|||||||
@@ -350,7 +350,7 @@ public class BatteryChartPreferenceController extends AbstractPreferenceControll
|
|||||||
private void addAllPreferences() {
|
private void addAllPreferences() {
|
||||||
final List<BatteryDiffEntry> entries =
|
final List<BatteryDiffEntry> entries =
|
||||||
mBatteryIndexedMap.get(Integer.valueOf(mTrapezoidIndex));
|
mBatteryIndexedMap.get(Integer.valueOf(mTrapezoidIndex));
|
||||||
addFooterPreferenceIfNeeded(!entries.isEmpty());
|
addFooterPreferenceIfNeeded(entries != null && !entries.isEmpty());
|
||||||
if (entries == null) {
|
if (entries == null) {
|
||||||
Log.w(TAG, "cannot find BatteryDiffEntry for:" + mTrapezoidIndex);
|
Log.w(TAG, "cannot find BatteryDiffEntry for:" + mTrapezoidIndex);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -79,12 +79,14 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
|
|||||||
private boolean mIsSlotsClickabled;
|
private boolean mIsSlotsClickabled;
|
||||||
private String[] mPercentages = getPercentages();
|
private String[] mPercentages = getPercentages();
|
||||||
|
|
||||||
@VisibleForTesting int mSelectedIndex;
|
@VisibleForTesting int mHoveredIndex = SELECTED_INDEX_INVALID;
|
||||||
|
@VisibleForTesting int mSelectedIndex = SELECTED_INDEX_INVALID;
|
||||||
@VisibleForTesting String[] mTimestamps;
|
@VisibleForTesting String[] mTimestamps;
|
||||||
|
|
||||||
// Colors for drawing the trapezoid shape and dividers.
|
// Colors for drawing the trapezoid shape and dividers.
|
||||||
private int mTrapezoidColor;
|
private int mTrapezoidColor;
|
||||||
private int mTrapezoidSolidColor;
|
private int mTrapezoidSolidColor;
|
||||||
|
private int mTrapezoidHoverColor;
|
||||||
// For drawing the percentage information.
|
// For drawing the percentage information.
|
||||||
private int mTextPadding;
|
private int mTextPadding;
|
||||||
private final Rect mIndent = new Rect();
|
private final Rect mIndent = new Rect();
|
||||||
@@ -108,7 +110,7 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
|
|||||||
Paint mTrapezoidCurvePaint = null;
|
Paint mTrapezoidCurvePaint = null;
|
||||||
private TrapezoidSlot[] mTrapezoidSlots;
|
private TrapezoidSlot[] mTrapezoidSlots;
|
||||||
// Records the location to calculate selected index.
|
// Records the location to calculate selected index.
|
||||||
private MotionEvent mTouchUpEvent;
|
private float mTouchUpEventX = Float.MIN_VALUE;
|
||||||
private BatteryChartView.OnSelectListener mOnSelectListener;
|
private BatteryChartView.OnSelectListener mOnSelectListener;
|
||||||
|
|
||||||
public BatteryChartView(Context context) {
|
public BatteryChartView(Context context) {
|
||||||
@@ -254,21 +256,49 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
|
|||||||
public boolean onTouchEvent(MotionEvent event) {
|
public boolean onTouchEvent(MotionEvent event) {
|
||||||
// Caches the location to calculate selected trapezoid index.
|
// Caches the location to calculate selected trapezoid index.
|
||||||
final int action = event.getAction();
|
final int action = event.getAction();
|
||||||
if (action == MotionEvent.ACTION_UP) {
|
switch (action) {
|
||||||
mTouchUpEvent = MotionEvent.obtain(event);
|
case MotionEvent.ACTION_UP:
|
||||||
} else if (action == MotionEvent.ACTION_CANCEL) {
|
mTouchUpEventX = event.getX();
|
||||||
mTouchUpEvent = null; // reset
|
break;
|
||||||
|
case MotionEvent.ACTION_CANCEL:
|
||||||
|
mTouchUpEventX = Float.MIN_VALUE; // reset
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return super.onTouchEvent(event);
|
return super.onTouchEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onHoverEvent(MotionEvent event) {
|
||||||
|
final int action = event.getAction();
|
||||||
|
switch (action) {
|
||||||
|
case MotionEvent.ACTION_HOVER_ENTER:
|
||||||
|
case MotionEvent.ACTION_HOVER_MOVE:
|
||||||
|
final int trapezoidIndex = getTrapezoidIndex(event.getX());
|
||||||
|
if (mHoveredIndex != trapezoidIndex) {
|
||||||
|
mHoveredIndex = trapezoidIndex;
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return super.onHoverEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHoverChanged(boolean hovered) {
|
||||||
|
super.onHoverChanged(hovered);
|
||||||
|
if (!hovered) {
|
||||||
|
mHoveredIndex = SELECTED_INDEX_INVALID; // reset
|
||||||
|
invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (mTouchUpEvent == null) {
|
if (mTouchUpEventX == Float.MIN_VALUE) {
|
||||||
Log.w(TAG, "invalid motion event for onClick() callback");
|
Log.w(TAG, "invalid motion event for onClick() callback");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
final int trapezoidIndex = getTrapezoidIndex(mTouchUpEvent.getX());
|
final int trapezoidIndex = getTrapezoidIndex(mTouchUpEventX);
|
||||||
// Ignores the click event if the level is zero.
|
// Ignores the click event if the level is zero.
|
||||||
if (trapezoidIndex == SELECTED_INDEX_INVALID
|
if (trapezoidIndex == SELECTED_INDEX_INVALID
|
||||||
|| !isValidToDraw(trapezoidIndex)) {
|
|| !isValidToDraw(trapezoidIndex)) {
|
||||||
@@ -347,6 +377,8 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
|
|||||||
setBackgroundColor(Color.TRANSPARENT);
|
setBackgroundColor(Color.TRANSPARENT);
|
||||||
mTrapezoidSolidColor = Utils.getColorAccentDefaultColor(context);
|
mTrapezoidSolidColor = Utils.getColorAccentDefaultColor(context);
|
||||||
mTrapezoidColor = Utils.getDisabled(context, mTrapezoidSolidColor);
|
mTrapezoidColor = Utils.getDisabled(context, mTrapezoidSolidColor);
|
||||||
|
mTrapezoidHoverColor = Utils.getColorAttrDefaultColor(context,
|
||||||
|
com.android.internal.R.attr.colorAccentSecondaryVariant);
|
||||||
// Initializes the divider line paint.
|
// Initializes the divider line paint.
|
||||||
final Resources resources = getContext().getResources();
|
final Resources resources = getContext().getResources();
|
||||||
mDividerWidth = resources.getDimensionPixelSize(R.dimen.chartview_divider_width);
|
mDividerWidth = resources.getDimensionPixelSize(R.dimen.chartview_divider_width);
|
||||||
@@ -494,7 +526,8 @@ public class BatteryChartView extends AppCompatImageView implements View.OnClick
|
|||||||
? mTrapezoidColor
|
? mTrapezoidColor
|
||||||
: mSelectedIndex == index || mSelectedIndex == SELECTED_INDEX_ALL
|
: mSelectedIndex == index || mSelectedIndex == SELECTED_INDEX_ALL
|
||||||
? mTrapezoidSolidColor : mTrapezoidColor;
|
? mTrapezoidSolidColor : mTrapezoidColor;
|
||||||
mTrapezoidPaint.setColor(trapezoidColor);
|
final boolean isHover = mHoveredIndex == index && isValidToDraw(mHoveredIndex);
|
||||||
|
mTrapezoidPaint.setColor(isHover ? mTrapezoidHoverColor : trapezoidColor);
|
||||||
|
|
||||||
final float leftTop = round(trapezoidBottom - mLevels[index] * unitHeight);
|
final float leftTop = round(trapezoidBottom - mLevels[index] * unitHeight);
|
||||||
final float rightTop = round(trapezoidBottom - mLevels[index + 1] * unitHeight);
|
final float rightTop = round(trapezoidBottom - mLevels[index + 1] * unitHeight);
|
||||||
|
|||||||
@@ -139,6 +139,11 @@ public interface PowerUsageFeatureProvider {
|
|||||||
*/
|
*/
|
||||||
boolean isChartGraphSlotsEnabled(Context context);
|
boolean isChartGraphSlotsEnabled(Context context);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks whether adaptive charging feature is supported in this device
|
||||||
|
*/
|
||||||
|
boolean isAdaptiveChargingSupported();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a intent for one time bypass charge limited to resume charging.
|
* Gets a intent for one time bypass charge limited to resume charging.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -166,6 +166,11 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isAdaptiveChargingSupported() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Intent getResumeChargeIntent() {
|
public Intent getResumeChargeIntent() {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ package com.android.settings.fuelgauge.batterysaver;
|
|||||||
import android.content.ContentResolver;
|
import android.content.ContentResolver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Looper;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.provider.SettingsSlicesContract;
|
import android.provider.SettingsSlicesContract;
|
||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
@@ -42,10 +44,12 @@ import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
|||||||
public class BatterySaverButtonPreferenceController extends
|
public class BatterySaverButtonPreferenceController extends
|
||||||
TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver,
|
TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver,
|
||||||
OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
|
OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
|
||||||
|
private static final long SWITCH_ANIMATION_DURATION = 350L;
|
||||||
|
|
||||||
private final BatterySaverReceiver mBatterySaverReceiver;
|
private final BatterySaverReceiver mBatterySaverReceiver;
|
||||||
private final PowerManager mPowerManager;
|
private final PowerManager mPowerManager;
|
||||||
|
|
||||||
|
private Handler mHandler;
|
||||||
private MainSwitchPreference mPreference;
|
private MainSwitchPreference mPreference;
|
||||||
|
|
||||||
public BatterySaverButtonPreferenceController(Context context, String key) {
|
public BatterySaverButtonPreferenceController(Context context, String key) {
|
||||||
@@ -53,6 +57,7 @@ public class BatterySaverButtonPreferenceController extends
|
|||||||
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
|
||||||
mBatterySaverReceiver = new BatterySaverReceiver(context);
|
mBatterySaverReceiver = new BatterySaverReceiver(context);
|
||||||
mBatterySaverReceiver.setBatterySaverListener(this);
|
mBatterySaverReceiver.setBatterySaverListener(this);
|
||||||
|
mHandler = new Handler(Looper.getMainLooper());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -83,6 +88,7 @@ public class BatterySaverButtonPreferenceController extends
|
|||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
mBatterySaverReceiver.setListening(false);
|
mBatterySaverReceiver.setListening(false);
|
||||||
|
mHandler.removeCallbacksAndMessages(null /* token */);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -114,6 +120,11 @@ public class BatterySaverButtonPreferenceController extends
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPowerSaveModeChanged() {
|
public void onPowerSaveModeChanged() {
|
||||||
|
mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(),
|
||||||
|
SWITCH_ANIMATION_DURATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onPowerSaveModeChangedInternal() {
|
||||||
final boolean isChecked = isChecked();
|
final boolean isChecked = isChecked();
|
||||||
if (mPreference != null && mPreference.isChecked() != isChecked) {
|
if (mPreference != null && mPreference.isChecked() != isChecked) {
|
||||||
mPreference.setChecked(isChecked);
|
mPreference.setChecked(isChecked);
|
||||||
|
|||||||
@@ -64,7 +64,10 @@ public class BatteryManagerPreferenceController extends BasePreferenceController
|
|||||||
preference.setSummary(mContext.getResources().getQuantityString(
|
preference.setSummary(mContext.getResources().getQuantityString(
|
||||||
R.plurals.battery_manager_app_restricted, num, num));
|
R.plurals.battery_manager_app_restricted, num, num));
|
||||||
} else {
|
} else {
|
||||||
preference.setSummary(R.string.battery_manager_summary);
|
preference.setSummary(
|
||||||
|
mPowerUsageFeatureProvider.isAdaptiveChargingSupported()
|
||||||
|
? R.string.battery_manager_summary
|
||||||
|
: R.string.battery_manager_summary_unsupported);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.accessibility;
|
||||||
|
|
||||||
|
import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
|
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||||
|
import com.google.android.setupdesign.GlifLayout;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.robolectric.Robolectric;
|
||||||
|
import org.robolectric.RobolectricTestRunner;
|
||||||
|
|
||||||
|
/** Tests for {@link AccessibilityScreenSizeForSetupWizardActivity} */
|
||||||
|
@RunWith(RobolectricTestRunner.class)
|
||||||
|
public class AccessibilityScreenSizeForSetupWizardActivityTest {
|
||||||
|
private static final int DISPLAY_SIZE_FRAGMENT_NO = 1;
|
||||||
|
|
||||||
|
private Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
|
private AccessibilityScreenSizeForSetupWizardActivity mActivity;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
final Intent intent = new Intent();
|
||||||
|
intent.putExtra(VISION_FRAGMENT_NO,
|
||||||
|
mContext.getResources().getInteger(R.integer.suw_font_size_fragment_no));
|
||||||
|
mActivity = Robolectric.buildActivity(AccessibilityScreenSizeForSetupWizardActivity.class,
|
||||||
|
intent).create().get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void generateHeader_setPageNoAsFontSize_returnFontSizeTitle() {
|
||||||
|
mActivity.generateHeader(
|
||||||
|
mActivity.getResources().getInteger(R.integer.suw_font_size_fragment_no));
|
||||||
|
|
||||||
|
final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
|
||||||
|
|
||||||
|
assertThat(layout.getHeaderText()).isEqualTo(mContext.getText(R.string.title_font_size));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void generateHeader_setPageNoAsDisplaySize_returnDisplaySizeTitle() {
|
||||||
|
mActivity.generateHeader(DISPLAY_SIZE_FRAGMENT_NO);
|
||||||
|
|
||||||
|
final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
|
||||||
|
|
||||||
|
assertThat(layout.getHeaderText()).isEqualTo(mContext.getText(R.string.screen_zoom_title));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void initFooterButton_generateDoneButton() {
|
||||||
|
mActivity.initFooterButton();
|
||||||
|
|
||||||
|
final GlifLayout layout = mActivity.findViewById(R.id.setup_wizard_layout);
|
||||||
|
final FooterBarMixin mixin = layout.getMixin(FooterBarMixin.class);
|
||||||
|
|
||||||
|
assertThat(mixin.getPrimaryButton().getText()).isEqualTo(mContext.getText(R.string.done));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import static com.android.settings.accessibility.AccessibilityScreenSizeForSetupWizardActivity.VISION_FRAGMENT_NO;
|
||||||
import static com.android.settings.accessibility.AccessibilitySettingsForSetupWizardActivity.CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW;
|
import static com.android.settings.accessibility.AccessibilitySettingsForSetupWizardActivity.CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW;
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
@@ -26,8 +27,6 @@ import android.content.Intent;
|
|||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsActivity;
|
|
||||||
import com.android.settings.display.FontSizePreferenceFragmentForSetupWizard;
|
|
||||||
|
|
||||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||||
|
|
||||||
@@ -42,45 +41,47 @@ import org.robolectric.Shadows;
|
|||||||
@SmallTest
|
@SmallTest
|
||||||
public class AccessibilitySettingsForSetupWizardActivityTest {
|
public class AccessibilitySettingsForSetupWizardActivityTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createSetupAccessibilityActivity_shouldBeSUWTheme() {
|
public void createSetupAccessibilityActivity_shouldBeSUWTheme() {
|
||||||
final Intent intent = new Intent();
|
final Intent intent = new Intent();
|
||||||
AccessibilitySettingsForSetupWizardActivity activity =
|
AccessibilitySettingsForSetupWizardActivity activity =
|
||||||
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class, intent).get();
|
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class,
|
||||||
|
intent).get();
|
||||||
|
|
||||||
assertThat(activity.getThemeResId()).isEqualTo(R.style.GlifV3Theme_Light);
|
assertThat(activity.getThemeResId()).isEqualTo(R.style.GlifV3Theme_Light);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onCreate_hasFontSizeComponent_shouldGoToFontSizePreferenceDirectly() {
|
public void onCreate_hasFontSizeComponent_shouldGoToFontSizePreferenceDirectly() {
|
||||||
AccessibilitySettingsForSetupWizardActivity activity =
|
AccessibilitySettingsForSetupWizardActivity activity =
|
||||||
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class,
|
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class,
|
||||||
new Intent(Intent.ACTION_MAIN).setComponent(new ComponentName(
|
new Intent(Intent.ACTION_MAIN).setComponent(new ComponentName(
|
||||||
RuntimeEnvironment.application, CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW)).
|
RuntimeEnvironment.application,
|
||||||
putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true).
|
CLASS_NAME_FONT_SIZE_SETTINGS_FOR_SUW))
|
||||||
putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)).get();
|
.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true)
|
||||||
|
.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)).get();
|
||||||
|
|
||||||
activity.tryLaunchFontSizeSettings();
|
activity.tryLaunchFontSizeSettings();
|
||||||
|
|
||||||
final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity();
|
final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity();
|
||||||
assertThat(launchIntent).isNotNull();
|
assertThat(launchIntent).isNotNull();
|
||||||
assertThat(launchIntent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT)).isEqualTo(
|
assertThat(launchIntent.getIntExtra(VISION_FRAGMENT_NO, -1)).isEqualTo(
|
||||||
FontSizePreferenceFragmentForSetupWizard.class.getName());
|
activity.getResources().getInteger(R.integer.suw_font_size_fragment_no));
|
||||||
assertThat(activity.isFinishing()).isTrue();
|
assertThat(activity.isFinishing()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onCreate_noFontSizeComponent_shouldNotFinishCurrentActivity() {
|
public void onCreate_noFontSizeComponent_shouldNotFinishCurrentActivity() {
|
||||||
AccessibilitySettingsForSetupWizardActivity activity =
|
AccessibilitySettingsForSetupWizardActivity activity =
|
||||||
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class,
|
Robolectric.buildActivity(AccessibilitySettingsForSetupWizardActivity.class,
|
||||||
new Intent(Intent.ACTION_MAIN).
|
new Intent(Intent.ACTION_MAIN)
|
||||||
putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true).
|
.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true)
|
||||||
putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)).get();
|
.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)).get();
|
||||||
|
|
||||||
activity.tryLaunchFontSizeSettings();
|
activity.tryLaunchFontSizeSettings();
|
||||||
|
|
||||||
final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity();
|
final Intent launchIntent = Shadows.shadowOf(activity).getNextStartedActivity();
|
||||||
assertThat(launchIntent).isNull();
|
assertThat(launchIntent).isNull();
|
||||||
assertThat(activity.isFinishing()).isFalse();
|
assertThat(activity.isFinishing()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.accessibility;
|
||||||
|
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.robolectric.RobolectricTestRunner;
|
||||||
|
|
||||||
|
/** Tests for {@link AccessibilitySetupWizardUtils} */
|
||||||
|
@RunWith(RobolectricTestRunner.class)
|
||||||
|
public class AccessibilitySetupWizardUtilsTest {
|
||||||
|
|
||||||
|
private final Context mContext = ApplicationProvider.getApplicationContext();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setupGlifPreferenceLayout_assignValueToVariable() {
|
||||||
|
final String title = "title";
|
||||||
|
final String description = "description";
|
||||||
|
final Drawable icon = mock(Drawable.class);
|
||||||
|
GlifPreferenceLayout layout = mock(GlifPreferenceLayout.class);
|
||||||
|
|
||||||
|
AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(mContext, layout, title,
|
||||||
|
description, icon);
|
||||||
|
|
||||||
|
verify(layout).setHeaderText(title);
|
||||||
|
verify(layout).setDescriptionText(description);
|
||||||
|
verify(layout).setIcon(icon);
|
||||||
|
verify(layout).setHeaderText(title);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -152,7 +152,8 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
|
System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
|
||||||
|
|
||||||
when(mDisplay.getBrightnessInfo()).thenReturn(
|
when(mDisplay.getBrightnessInfo()).thenReturn(
|
||||||
new BrightnessInfo(0.1f, 0.0f, 1.0f, BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF));
|
new BrightnessInfo(0.1f, 0.0f, 1.0f, BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF,
|
||||||
|
0.5f));
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
@@ -166,7 +167,8 @@ public class BrightnessLevelPreferenceControllerTest {
|
|||||||
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
|
System.SCREEN_BRIGHTNESS_MODE_MANUAL);
|
||||||
|
|
||||||
when(mDisplay.getBrightnessInfo()).thenReturn(
|
when(mDisplay.getBrightnessInfo()).thenReturn(
|
||||||
new BrightnessInfo(0.5f, 0.0f, 1.0f, BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF));
|
new BrightnessInfo(0.5f, 0.0f, 1.0f, BrightnessInfo.HIGH_BRIGHTNESS_MODE_OFF,
|
||||||
|
0.5f));
|
||||||
|
|
||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import androidx.preference.Preference;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
import com.android.settings.testutils.shadow.SettingsShadowResources;
|
||||||
|
import com.android.settings.testutils.shadow.ShadowActivityEmbeddingUtils;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ import org.robolectric.annotation.Config;
|
|||||||
import org.robolectric.shadows.ShadowPackageManager;
|
import org.robolectric.shadows.ShadowPackageManager;
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner.class)
|
@RunWith(RobolectricTestRunner.class)
|
||||||
@Config(shadows = {SettingsShadowResources.class})
|
@Config(shadows = {SettingsShadowResources.class, ShadowActivityEmbeddingUtils.class})
|
||||||
public class TopLevelWallpaperPreferenceControllerTest {
|
public class TopLevelWallpaperPreferenceControllerTest {
|
||||||
private static final String TEST_KEY = "test_key";
|
private static final String TEST_KEY = "test_key";
|
||||||
|
|
||||||
@@ -204,18 +205,32 @@ public class TopLevelWallpaperPreferenceControllerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void handlePreferenceTreeClick_launchClearTask() {
|
public void handlePreferenceTreeClick_embeddingActivityDisabled_launchWithTaskFlag() {
|
||||||
mShadowPackageManager.setResolveInfosForIntent(
|
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(false);
|
||||||
mWallpaperIntent, Lists.newArrayList());
|
|
||||||
mShadowPackageManager.setResolveInfosForIntent(
|
mShadowPackageManager.setResolveInfosForIntent(
|
||||||
mStylesAndWallpaperIntent, Lists.newArrayList(mock(ResolveInfo.class)));
|
mStylesAndWallpaperIntent, Lists.newArrayList(mock(ResolveInfo.class)));
|
||||||
|
|
||||||
Preference preference = new Preference(mContext);
|
Preference preference = new Preference(mContext);
|
||||||
preference.setKey(TEST_KEY);
|
preference.setKey(TEST_KEY);
|
||||||
|
|
||||||
mController.handlePreferenceTreeClick(preference);
|
mController.handlePreferenceTreeClick(preference);
|
||||||
|
|
||||||
assertThat((Shadows.shadowOf(mContext).getNextStartedActivityForResult()
|
int flags = Shadows.shadowOf(mContext).getNextStartedActivityForResult().intent.getFlags();
|
||||||
.intent.getFlags() & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isTrue();
|
assertThat((flags & Intent.FLAG_ACTIVITY_NEW_TASK) != 0).isTrue();
|
||||||
|
assertThat((flags & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void handlePreferenceTreeClick_embeddingActivityEnabled_launchWithoutTaskFlag() {
|
||||||
|
ShadowActivityEmbeddingUtils.setIsEmbeddingActivityEnabled(true);
|
||||||
|
mShadowPackageManager.setResolveInfosForIntent(
|
||||||
|
mStylesAndWallpaperIntent, Lists.newArrayList(mock(ResolveInfo.class)));
|
||||||
|
Preference preference = new Preference(mContext);
|
||||||
|
preference.setKey(TEST_KEY);
|
||||||
|
|
||||||
|
mController.handlePreferenceTreeClick(preference);
|
||||||
|
|
||||||
|
int flags = Shadows.shadowOf(mContext).getNextStartedActivityForResult().intent.getFlags();
|
||||||
|
assertThat((flags & Intent.FLAG_ACTIVITY_NEW_TASK) != 0).isFalse();
|
||||||
|
assertThat((flags & Intent.FLAG_ACTIVITY_CLEAR_TASK) != 0).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -156,6 +156,11 @@ public class PowerUsageFeatureProviderImplTest {
|
|||||||
assertThat(mPowerFeatureProvider.isSmartBatterySupported()).isFalse();
|
assertThat(mPowerFeatureProvider.isSmartBatterySupported()).isFalse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsAdaptiveChargingSupported_returnFalse() {
|
||||||
|
assertThat(mPowerFeatureProvider.isAdaptiveChargingSupported()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetResumeChargeIntent_returnNull() {
|
public void testGetResumeChargeIntent_returnNull() {
|
||||||
assertThat(mPowerFeatureProvider.getResumeChargeIntent()).isNull();
|
assertThat(mPowerFeatureProvider.getResumeChargeIntent()).isNull();
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2021 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* 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.android.settings.testutils.shadow;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
|
||||||
|
|
||||||
|
import org.robolectric.annotation.Implementation;
|
||||||
|
import org.robolectric.annotation.Implements;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shadow class for {@link ActivityEmbeddingUtils} to test embedding activity features.
|
||||||
|
*/
|
||||||
|
@Implements(ActivityEmbeddingUtils.class)
|
||||||
|
public class ShadowActivityEmbeddingUtils {
|
||||||
|
private static boolean sIsEmbeddingActivityEnabled;
|
||||||
|
|
||||||
|
@Implementation
|
||||||
|
public static boolean isEmbeddingActivityEnabled(Context context) {
|
||||||
|
return sIsEmbeddingActivityEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setIsEmbeddingActivityEnabled(boolean isEmbeddingActivityEnabled) {
|
||||||
|
sIsEmbeddingActivityEnabled = isEmbeddingActivityEnabled;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user