Commit Graph

273 Commits

Author SHA1 Message Date
TreeHugger Robot
e9098ad882 Merge "Fix pendingIntent in SettingsSliceProvider could be Hijacked" into qt-qpr1-dev am: 3c137d807d
Change-Id: I9d93999096561ae6f3241738262110325c5f64fb
2020-03-20 03:19:38 +00:00
Tsung-Mao Fang
91399607fe Fix pendingIntent in SettingsSliceProvider could be Hijacked
A malicious app is able to obtain this pending intent.
It can then mutate all fields except for the action and
launch the intent. This can be used to launch any activity
with the ACTION_SETTINGS action.

So, we enfore assign the package name for this intent,
it only can launch the settings app.

Fix: 147355897
Test: a) Install the new settings apk, and it won't launch other screen.
(See details in bug)
b) Start the settings search, slice search results work as normal.

Change-Id: Ie954d8a4b7153d6a4cac40621f363b45185990f2
(cherry picked from commit b3c0a2a6c1)
Merged-In: Ie954d8a4b7153d6a4cac40621f363b45185990f2
2020-03-06 18:14:03 +08:00
Automerger Merge Worker
b9964d4545 Fix volume panel crashing am: ef009cc832
Change-Id: I4b1ffaaea0f3fccc1acfebb3061bb4679b18f165
2020-02-24 15:06:04 +00:00
Raff Tsai
ef009cc832 Fix volume panel crashing
slider position is smaller than min value causes the exception.
Fixed by limit the position within min and max value.

Fixes: 148270968
Fixes: 149973990
Test: manual
Change-Id: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e
(cherry picked from commit fcd9f1a870)
Merged-In: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e
2020-02-24 07:04:03 +00:00
Automerger Merge Worker
df93007555 RESTRICT AUTOMERGE am: f8396c5cc0
Change-Id: I348080b2dc5d6ee8074a1e6275a4bb8644caa417
2020-02-13 00:12:19 +00:00
Yanting Yang
f8396c5cc0 RESTRICT AUTOMERGE
Fix NPE of launching Settings with malicious URL

Add SafetyNet logging for tracing.

Fixes: 122836081
Test: visual, robotests
Change-Id: I97430ea0208c570c46a02dd499dfd944d20eb06e
2020-02-11 16:17:08 +08:00
Automerger Merge Worker
f424190715 Merge "Fixes sound panel create multiple SoundSettings activity" am: e45a8aadd4 am: 3999464409
Change-Id: I2b5875e2c79daf6e5b7173da59b33e2cfcfbad6e
2019-12-18 12:25:43 +00:00
Raff Tsai
a9e7517f2c Fixes sound panel create multiple SoundSettings activity
- Use FLAG_ACTIVITY_NEW_TASK to prevent activity stack contains
many activites

Fixes: 142231489
Test: 1. Press volume button and click in volume settings button
      2. Press Media Volume to open SoundSettings
      3. Repeat 1, Press Call Volume to open SoundSettings
      4. Repeat 1, Press Alarm Volume to open SoundSettings
      5. Press back, should see volume panel
Change-Id: I87cd75fbd43f77446191ad50ed7a002a2202337f
2019-12-18 18:38:37 +08:00
Automerger Merge Worker
96c32711b8 Merge "Fix volume slider color is not correct" am: d1489d2f1f am: 9bb1c631ae
Change-Id: I66e7bb3c06891d092d6ec4b49372ab977670beee
2019-12-17 09:22:59 +00:00
Raff Tsai
37860d4299 Fix volume slider color is not correct
Fixes: 140990940
Test: 1. Switch to dark theme
      2. adb shell am start -a android.settings.panel.action.VOLUME
      3. check volume slider color is identical to color in "Done"
      4. Switch to light theme
      5. adb shell am start -a android.settings.panel.action.VOLUME
      6. Check volume slider color is identical to color in "Done"

Change-Id: If783d5c5f8604a23cfaaa28cf42b916763f9c9e8
2019-12-17 14:34:29 +08:00
TreeHugger Robot
713143df37 Merge "Add a dark theme slice" into qt-qpr1-dev 2019-11-19 01:26:30 +00:00
Sunny Shao
abcbc79d7d Add a dark theme slice
Fixes: 142476879
Test: make RunSettingsGoogleRoboTests -j ROBOTEST_FILTER=com.android.settings.homepage.contextualcards.slices.DarkThemeSliceTest
Change-Id: I4865c3c4a807bc4ac96762a882b193a3e2595019
2019-11-15 13:41:49 +08:00
Yi-Ling Chuang
e786ce000e Fix non responding slice toggling
The issue happens when users are toggling slices. Sometimes the toggle
doesn't work as expected because the pending intent of the toggle action
seems to be canceled for some reasons.

Hence, we replace FLAG_CANCEL_CURRENT with FLAG_UPDATE_CURRENT to
prevent from getting PendingIntent.CancelExcpetion from SliceActionView
when toggling slices.

This change only applies on those auto converted Slices.

Bug: 140719905
Test: toggle slices in Settings Search and NGA
Change-Id: Iff724ce5f6a1e6a7d9ca85b8ce76539a72e72964
Merged-In: Iff724ce5f6a1e6a7d9ca85b8ce76539a72e72964
(cherry picked from commit ddf6cefcac)
2019-11-13 10:30:26 +00:00
Yi-Ling Chuang
f8eb30800a Fix non responding slice toggling problem.
The issue happens when users are toggling slices. Sometimes the toggle
doesn't work as expected because the pending intent of the toggle action
seems to be canceled for some reasons.

Hence, we replace FLAG_CANCEL_CURRENT with FLAG_UPDATE_CURRENT to prevent from
getting PendingIntent.CancelExcpetion from SliceActionView when toggling
slices.

Note that this change would only apply on Wifi, MobileData, Flashlight
and Bluetooth Slices.

Bug: 140719905
Test: rebuild and switch toggles
Change-Id: Iddbb16ddcbcf97b6f6e680b43645c04fbc061f39
2019-10-04 17:17:19 +08:00
joshmccloskey
6634c159fd Adding slice for Face Enrollment
Fixes: 134965754
Test: Verified slice appears when not enrolled.
Test: Verified slice does not appear when enrolled.
Test: Verified slice disappears after clicking on icon and going back
to settings page.
Change-Id: Id1c4458742ab622df8d5881e926fe54684b36843
2019-06-24 17:41:36 -07:00
Alex Salo
fa127bd6f7 Merge "Adds contextual cards for screen attention in Settings Homepage" into qt-r1-dev 2019-05-30 22:59:12 +00:00
Lei Yu
f32025a17d Merge "Update SliceView when slice is null" into qt-dev 2019-05-30 17:38:59 +00:00
Lei Yu
798b80e5ad Update SliceView when slice is null
When it is null, we should also update SliceView, so SliceView can
update to be "invisible"

Fixes: 133790296
Test: RunSettingsRoboTests
Change-Id: I239405cce8bcadacbd374ccbb24d0fcbadc04880
2019-05-29 13:11:57 -07:00
Yi Jiang
7605494cc5 Adds contextual cards for screen attention in Settings Homepage
Bug: 128527964
Test: atest ContextualAdaptiveSleepSliceTest, maually verified.
Change-Id: Ifaea7d8d4391e91cf6cbde38a2506728f55913d8
2019-05-29 10:37:11 -07:00
Lei Yu
2837d010ad Update logic to build slider slice
Return null when slider getMax() <= getMin(), instead of force
build it to make it crash

Fixes: 132657278
Test: RunSettingsRoboTests
Change-Id: I9f3c078ae07522aa8f1cebdee3f73df2d014d6bb
2019-05-22 14:13:09 -07:00
Jason Chiu
2c3e6c6434 Fix automatically directing the user to the captive portal in Wi-Fi Slice
The feature failed after the CL "Force the adapter to rebind cards with
a toggle".

Because toggle slices have been forced to rebind after starting another
activity and when any slice is updating. This unpins Wi-Fi slice and
stops WifiScanWorker and then clears the saved clicked network.

Solution:
1. Change ConnectToWifiHandler from activity to receiver and send
   broadcasts to it with FLAG_RECEIVER_FOREGROUND, so Wi-Fi slice won't
   be forced to rebind.
2. Seperate Wi-Fi scan worker and contextual Wi-Fi scan worker. Keep the
   original logic for the generic one, and then add the logic below to
   the contextual one.
3. Do not clear the saved clicked network when slice is unppined because
   it happens frequently in contextual homepage.
4. Introduce a static long in ContextualWifiScanWorker that updates once
   in every visible UI session. A session is when the screen is visible
   to user.
5. Use session token to determine whether auto-starting captive portal
   is needed.

Fixes: 128056349
Test: robotest, visual in homepage and network panel
Change-Id: I9e03c379806e124fa7253b2a635574b2433f6afc
2019-05-11 03:26:57 +00:00
tmfang
6410821f04 Catch another exception when we are building slices data for search
We lose chance to build all Settings slices if we got an exception
when settings was creating slice data for controllers.
We should make sure the process goes well even we got an exception
on an incorrect controller.

Also, we log exceptions for each catch.

Bug: 131449561
Test: Open Settings search and then we can see slice for some
search result.

Change-Id: Iac9f0e0a187f6d10cf53886afeb9cab479b6ce02
2019-05-09 10:31:53 +08:00
TreeHugger Robot
7f9a86d869 Merge "Prevent bad apps from getting Setting Slices" into qt-dev 2019-04-18 17:38:28 +00:00
Matthew Fritze
2bdea1d922 Prevent bad apps from getting Setting Slices
SettingsSliceProvider no longer allows apps to request permission
from the user for Settings Slices. Instead, the PrimaryAction on the
permission slice will be an intent into Settings.

This is because the dialog for granting apps Settings Slices would act
as a replacement for regular permission dialogs, which we want to avoid.

Fixes: 130795282
Test: robolectrico
Change-Id: I6848215bab2bf10ee5e53814b765d04f04f53f4e
2019-04-18 08:51:17 -07:00
Fan Zhang
57f18af554 Remove on/off subtext from gesture preferencecontrollers
The toggle switch next to the subtitle already shows on/off clearly.

Fixes: 130652619
Fixes: 130652843
Fixes: 130653459
Fixes: 130653297
Test: robo
Change-Id: Ib2396575bbc69a7cca5e9c90e113c76ff6db00b5
2019-04-17 23:49:25 +00:00
TreeHugger Robot
cef4e42dc2 Merge "Enforce min value on panel slices slider" into qt-dev 2019-04-16 21:18:05 +00:00
lindatseng
fadedb321c Enforce min value on panel slices slider
We did not set the min value on slider slices when converting them
from preference to slices, which makes the slices all have min 0.
However, there are some slider which should have min value greater
than 0, for example, call and alarm.

We should get the min value and apply it to slider slice to make it
consistent with what we have in settings pref.

Test: Manual verification
Test: make -j40 RunSettingRobotests
Test: atest VolumeSeekBarPreferenceControllerTest
Fixes: 130439216
Fixes: 130358208
Change-Id: Ib4399c36c7da3ac41a6d46a6c150f0ec1b9b0b0f
2019-04-16 16:30:08 +00:00
Fan Zhang
7df6445c3e Clean up DND slice in search.
- Remove the controller in SoundSettings, just use the common one.
- Update a bunch of IDs so ZenModeSliceBuilder maps to the toggle
  button in zen_mode_settings.xml

This is needed so the slice intent (left target when shown in search)
is the same as what we index from search side. Previously the search
indexer is finding zen_mode from sound page but the slice itself is
reporting a deep link into zenModeSettings page.

Fixes: 130437726
Test: robotest

Change-Id: Ic41d2d93afa1f748e3282e23010199a0fa078645
2019-04-12 16:11:31 -07:00
lindatseng
083243df76 Fix panel slices title not updated when locale changed
When calling getSliceData from SliceDataConverter, we were returning
the old version of List<SliceData> if there's one already existed.
So when the Locale get changed and we are re-indexing data, we
are still inserting the old List<SliceData> in database.  We should
reconstruct the List of SliceData instead of reusing the old
version here, since we only call SliceDataConverter#getSliceData
when we need to reindex.

Test: Manual verification
Fixes: 126732022
Change-Id: I42a3cf93dc313efefe50a34faabac9e1d616ef6c
2019-04-09 05:41:23 +00:00
TreeHugger Robot
973eff2eb2 Merge "Add prompt to sign in at captive portal to Wi-Fi Slice" into qt-dev 2019-04-05 03:19:22 +00:00
Fan Zhang
b05af56a64 Merge "DND should be displayed on search as slice." into qt-dev 2019-04-05 02:53:12 +00:00
Stanley Wang
bae490bc85 DND should be displayed on search as slice.
Add ZenModeSoundSettingsPreferenceController extends ZenModePreferenceController,
and update availability status to AVAILABLE.

This is cherry-picked from ag/6897872

Change-Id: I8dcb6808cc21c4f5c06548a363c998e369646487
Bug: 129320642
Test: manual & robotests
2019-04-05 02:53:04 +00:00
Fan Zhang
459035a263 Add uri to custom slice PendingIntent.
Discovered flashlight slice sometimes does not work, throwing exception
similar as it b/117445451. Adding a data uri fixes it.

Bug: 129981692
Test: manual
Change-Id: I16bc19027dd342f85aaabbf1a2853bb55564f64f
2019-04-04 16:12:38 -07:00
Jason Chiu
8f6c06974c Add prompt to sign in at captive portal to Wi-Fi Slice
- Support signing in captive portal APs in WifiSlice
- Show ContextualWifiSlice when signing in is required
- Generifies SliceBackgroundWorker.getInstance() to return <T extends SliceBackgroundWorker>

Fixes: 128056349
Test: make RunSettingsRoboTests -j
Change-Id: Ib4d3942591a65e81018389e4c0bbddfea6854dbc
(cherry picked from commit dd9f92280b)
2019-04-04 16:51:02 +00:00
Fan Zhang
b1b07e2030 Convert xml based API allowDynamicSummaryInSlice to java
- Add boolean useDynamicSliceSummary() in Sliceable interface. This is
  the switch equivalent to android:allowDynamicSummaryInSlice in xml. It
  moves the setter closer to regular Sliceable APIs, thus less easily to
  miss.
- Coverted all android:allowDynamicSummaryInSlice to use the java API.
  - Except 2 prefs in my_device_info. They incorrectly set this to true
  previously (controller is not sliceable, no point setting
  dynamicSliceSummary to true. They just won't do anything)

Fixes: 128446156
Test: robolectric
Change-Id: Ic57acd590dec3e87dcf4592df137321d14b854d9
2019-04-01 12:39:30 -07:00
TreeHugger Robot
0847f14097 Merge "Clean up the hard cache in SettingSliceProvider." 2019-03-21 23:23:45 +00:00
Fan Zhang
a8291be3a9 Clean up the hard cache in SettingSliceProvider.
It doesn't need to be a map.

Bug: 129002750
Test: manual
Change-Id: If784dfe4fb497414a04dc5fa8c8374731539d8ed
2019-03-21 14:12:38 -07:00
Yanting Yang
aed7ad5a43 Improve notification slice string on home page
Add ContextualNotificationChannelSlice to show more clear sub title on
notification slice.

Fixes: 128641319
Test: visual, robotests
Change-Id: I650102f4cde7d8d397c7a501ba9ee76c401ba9db
2019-03-20 22:25:59 +08:00
TreeHugger Robot
6ce76c0035 Merge "Sound + Output Switcher on Volume Slice" 2019-03-19 22:49:04 +00:00
TreeHugger Robot
eaf00ae476 Merge "Handle the SQLiteDatabase already-closed problem" 2019-03-18 18:13:27 +00:00
Sunny Shao
c7e094001d Handle the SQLiteDatabase already-closed problem
Remove the database.close in code for handling the re-open an already-closed object:SQLiteDatabase
problem.

Bug: 124451874
Test: robotest
Change-Id: Iff8c0bc5ea092d42cff0a40dfa4324a4de7c90bc
2019-03-18 19:42:09 +08:00
Jason Chiu
d4ab14969f Merge "Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice" 2019-03-18 10:13:56 +00:00
Jason Chiu
4e42f53896 Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice
- AccessPoint treats connected and connecting as equal so slice doesn't
refresh in this case
- Add a new method to determine if two lists are the same in SliceBackgroundWorker
- WifiScanWorker overrides this method to check the access point states

Fixes: 123941320
Test: robotest
Change-Id: I78d610da4b6b1d40f5785ba6701fb71b987fe31c
2019-03-18 16:01:48 +08:00
hughchen
6feb55546d Sound + Output Switcher on Volume Slice
- Show "play media to" item when Previously Connected device is available
- Click "Play media to" to launch output slice
- Update test case

Bug: 127729340
Test: make -j50 RunSettingsRoboTests
Change-Id: Ic00b309f87bc16f540b22b5a43fecb86f76caeb2
2019-03-16 07:04:43 +08:00
TreeHugger Robot
a63fd33c0b Merge "Tie ContextualWifiSlice to UI instead of garbage collector" 2019-03-15 21:41:29 +00:00
hughchen
9e78737483 Remove parameter from uri when get slice
Slice may added parameter in their uri.
When get slice through uri, removed parameter from uri to get correct slice.

Bug: 128651940
Test: make -j42 RunSettingsRoboTests
Change-Id: Id3cb7b91026384ce4e22c157a2908a5e18bc7993
2019-03-15 15:14:16 +08:00
Fan Zhang
4cb2727989 Tie ContextualWifiSlice to UI instead of garbage collector
- Introduce a static long in SliceFeatureProvider that updates once
  every "session". A session is when user is in an UI (screen rotation,
  going to subpage, etc does not break the continuation of session).

- Use session token in ContextualWifiSlice to determine when to refresh,
  instead of relying on WeakHashMap from CustomSliceManager.
  WeakHashMap can be cleaned up at any time by gc so it doesn't match
  what we want on the UI.

- Also as a side fix, merged CustomSliceManager into
  SliceFeatureProvider.

Fixes: 123937830
Test: robo
Change-Id: I199bceceb208b99a32f3f08e624787b5a03e73a9
2019-03-14 14:45:59 -07:00
Fan Zhang
ad29500d1d Use CustomSliceRegistry directly when possible.
This is one step closer to (un)make CustomSliceManager an singleton.

Bug: 123937830
Test: manual
Change-Id: I844d0fb798c73e2af1945ecb667ba73fac9edf72
2019-03-14 13:15:01 -07:00
Fan Zhang
6120d57cbc Reduce scope for some methods in SliceFeatureProvider
Bug: 123937830
Test: rebuild
Change-Id: I62db60e8313fc94324b476642fe27a215b76b33d
2019-03-13 15:33:52 -07:00
Fan Zhang
2fe7e9fc45 Refactor CustomSliceManager.
- Make everything that can be static, static.
- Also removed a unused slice for battery info.

Next step - going to make CustomSliceManager into a regular class
instead of getting it from FeatureProvider. This way it's no longer an
application level singleton, then we can do things like attaching
lifecycle to it. It will be easier to deal with "session" based use case
after the refactor

Bug: 123937830
Test: manual
Change-Id: I384761a6894fa907f72a3610437835c4dd4d1944
2019-03-12 16:42:12 -07:00