Commit Graph

318 Commits

Author SHA1 Message Date
Edgar Wang
a8742aa7ab Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: Ia8625091a107fc3fb652d3ba3f75ea3cc1a8d9f5
2020-08-12 11:29:07 +08:00
Edgar Wang
8829e515ca Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: Ibe64a68d7bddf84780dfac33555c097ff55c97a8
2020-07-30 12:54:27 +08:00
Jason Chiu
ea689abbcd Fix the exception of accessing an ArrayMap
- ArrayMap is not thread-safe.
- When accessing the map across threads at the same time, the map may
throw a ConcurrentModificationException.
- Convert the map to a synchronizedMap to avoid the exception.

Fixes: 159813482
Test: robotest
Change-Id: I3b8bdd435c7c546acf736fa8aafd2ceaed94d081
2020-07-01 10:42:25 +00:00
Sunny Shao
3c782f7645 SQLiteCursor must be closed before throwing exception
Fixes: 159694902
Test: manual test
Change-Id: I11b422e90b3155f47f53b4247eacf9f1b424b0ab
2020-06-24 18:11:13 +08:00
Jason Chiu
2e0758f7ae Decrease memory usage for sleep idle test
Postpone setTheme to decrease memory usage of Settings for the test
android.platform.test.scenario.sleep.Idle

Bug: 156631776
Test: forrest test
Change-Id: I4178eae0832e15c9d6da4a0f1f2898f5c797d388
2020-06-22 02:43:10 +00:00
Jason Chiu
251b98492f Merge "Fix the overlapping problem of the burst of slice updates" into rvc-dev 2020-06-18 11:06:42 +00:00
Yanting Yang
c8e0d2e755 Merge "Avoid NPE when screen title is null" into rvc-dev 2020-06-18 09:58:47 +00:00
Jason Chiu
0625bb4815 Fix the overlapping problem of the burst of slice updates
Implement a throttle in SliceBackgroundWorker to control slice updates.

Test: robotest
Fixes: 152366832
Change-Id: I8b65d1b57973e036b932172627aca506f4fae3a4
2020-06-18 02:18:38 +08:00
Yanting Yang
72c2fa5a3d Avoid NPE when screen title is null
The screen title of Settings pages could be empty, e.g., Mobile network
detail page. It will cause NPE when Settings generates the slice
object, and then results in the Settings Search showing empty view for
slice search result. It’s a bad user experience, we need to add the null
check to avoid it.

Bug: 157986273
Test: robotests
Change-Id: I8bf6a081c6b3e97ccb173424ff4a310ae863ae2f
2020-06-17 23:49:09 +08:00
TreeHugger Robot
16e1cd296a Merge "Add new Always on display slice" into rvc-dev 2020-06-17 12:04:21 +00:00
Edgar Wang
e1186254d4 Add new Always on display slice
Currently we create Always on Display slice through
AmbientDisplayAlwaysOnPreferenceController. However, as the Always on
Display is merged into Idle lock screen, the conversion won't work
properly anymore when devices support the aware sensor.

Hence, we create another custom slice for this purpose.

Bug: 145920511
Test: manual & robotest

Change-Id: Ifd90e2de5219bd4e97aa13b5855fdab95ff6c4d0
2020-06-17 07:52:01 +00:00
Jason Chiu
d06333167d Cleanup notification channel slice
Fixes: 144897605
Test: robotest

Change-Id: I1b654f31c6b001ef6f1eed95a87ca0b2dd1afc2e
2020-05-29 17:35:22 +08:00
Jason Chiu
8ac1e4d49d Update icon tint color when the user toggles Dark theme
- Reload theme in slice provider when Dark theme mode changes for slices
- Reload theme in onCreate of Panel activity for its non-slice header
- Remove applyTheme from individual slices

Test: robotest
Fixes: 153700819
Change-Id: I40a7d2817c4b9100d7b2f2962a69c8a9ce6f7906
2020-05-12 10:58:54 +08:00
Yanting Yang
96127fe621 Remove sub-text from slice builder
We would like to remove all sub-text from Settings Search. But slice
view does not support API to configure the sub-text visibility.
Therefore, the only way is to remove the sub-text from slices directly.

Since Settings slices are also invoked by other apps, we can not
directly remove the sub-text.

Finally, we decide to check the caller's uid. If it comes from Settings
Search, we will return the slice without the sub-text.

Bug: 143118037
Test: visual, robotests
Change-Id: Iac72f1683a2c930592634e0599058890d86f669d
2020-04-28 14:15:16 +08:00
Jason Chiu
1766b3c01d Fix indexing error of mobile related controllers
There were several errors in indexing mobile related sliceable
controllers, which led them not able to display on Panel and as inline
controls in search result.

It's because indexing mechanism is running in a worker thread and trying
to construct each controller instance, but the failed controllers'
constructors need to initilize something in the main thread.

- Give the main looper to the classes which only can be initialized in
  the main thread to fix the indexing.
- Guard null pointer exception in SlicesIndexer after fixing the
  indexing.
- Use onStart/onStop in AirplaneModePreferenceController to start/stop
  listener.

Fixes: 149720345
Test: robotest
Change-Id: Ibe5a8d6cc713eeddf26eceaabc05e6d1faa45507
2020-04-10 10:56:31 +00:00
Tsung-Mao Fang
2fc9fed89c 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-05 05:38:55 +00:00
timhypeng
0abaafcf28 Add slice regist key for dynamic group
Bug: 146813761
Test: build pass
Change-Id: Id620ec8c465cf5d7e8b1321f3a0d2a638ff6e7ac
2020-02-27 06:27:59 +00:00
TreeHugger Robot
5924be85dc Merge "Add a SaftyNet for security vulnerability" 2020-02-15 08:09:47 +00:00
TreeHugger Robot
ff6e341509 Merge "Add remote media slice in volume panel" 2020-02-12 01:34:15 +00:00
Tsung-Mao Fang
8c4aacd354 Add a SaftyNet for security vulnerability
When we get an empty or null slice parameter,
we see it as a vulnerability. It will cause
null point exception.

Bug: 122836081
Test: See adb logcat event log
Change-Id: Id5ff11dd18b19184792be466aabb65229f777e81
2020-02-11 17:16:20 +08:00
timhypeng
b266fa6029 Add remote media slice in volume panel
-Add test cases

Bug: 142772656
Test: make -j42 RunSettingsRoboTests
Change-Id: I62d3054a4343ed2c7fbb0b4d7aeb5a48da194b02
2020-02-06 14:38:13 +08:00
timhypeng
da96aeb33d Update preferenceSlice layout rule for new volume panel design
-show icon at left side of Slice if the mapping preference contains icon
-align MediaOutputIndicatorSlice layout with other volume slice

Bug: 148821795
Test: make -j42 RunSettingsRoboTests
Change-Id: I5b0cf7f32f355503942cb62ccf36f77ceeb1b30d
2020-02-05 14:20:03 +00:00
Raff Tsai
fcd9f1a870 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
Test: manual
Change-Id: I3d162f6d2f1035b81b1b2eb915b488084e7ea36e
2020-01-30 08:24:47 +08:00
Stanley Wang
5ce5349167 Remove the unused slices.
Remove the DataUsageSlice, DeviceInfoSlice and EmergencyInfoSlice.

Fixes: 146994847
Test: robotest
Change-Id: Ic840e9cc93e99b3c0a34eb6536401db34c98eca8
2019-12-30 19:04:49 +08:00
Automerger Merge Worker
ee8e7742da Merge "Fixes sound panel create multiple SoundSettings activity" am: e45a8aadd4 am: 3999464409 am: f424190715
Change-Id: If7d8124bb4ffc5594affe8dd0dedf446c5dee02f
2019-12-18 12:45:01 +00: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
83c64c3a3c Merge "Fix volume slider color is not correct" am: d1489d2f1f am: 9bb1c631ae am: 96c32711b8
Change-Id: Ibb3508f910e6d913135f5370b47376155f69f7ca
2019-12-17 09:42:04 +00: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
Julia Reynolds
aceccce75c Reorganize notification Settings classes
The notification package was getting too big.

Test: make -j64 RunSettingsRoboTests
Fixes: 145224451
Change-Id: I25ba82f42f7a137d8adcce72dcf8089d0e018bdc
2019-11-27 10:02:13 -05:00
Yi-Ling Chuang
d57e5a5d1a Add the impl for the ability to query non-public Slices
Apps get Settings Slices through onGetSliceDescendants(), so adding some
codes here to make us be capable returning non-public Slices. As these
SliceData come from slice_index.db, where SliceDatabaseAccessor is the
middleman for us to access those data, so adding a parameter in
getSliceUris() to determine what data should be returned.

Bug: 141088937
Test: robotests
Change-Id: I411eb1ff194b7c8915b9e7309c684046dbde29fb
2019-11-26 17:06:15 +08:00
Yi-Ling Chuang
c7cd6c4671 Add a new column for slices_index table.
To distinguish public and non-public slices, add public_slice column
to the database so we can return corresponding results based on this
value.

Bug: 141088937
Test: robotests
Change-Id: I05d003875a8be27e5cb735b4814eb86d6dc40174
2019-11-20 11:44:23 +08:00
Yi-Ling Chuang
345dc2bf3a Merge "Add a new method in Sliceable." 2019-11-19 09:12:14 +00:00
Sunny Shao
0a1f43a7c9 Merge "Add a dark theme slice" into qt-qpr1-dev am: 713143df37
am: e565a793be

Change-Id: I7b780475a3439d229a8b94e882372f7086bd02ed
2019-11-18 17:41:25 -08:00
TreeHugger Robot
713143df37 Merge "Add a dark theme slice" into qt-qpr1-dev 2019-11-19 01:26:30 +00:00
Yi-Ling Chuang
c04df4ae39 Add a new method in Sliceable.
We are making some Settings Slices public and some not so we can expose
more Settings Slices to Settings Search without worrying about privacy
and security concern. Hence, add this method to distinguish these two.

Bug: 141088937
Test: rebuild
Change-Id: I457802bb6472ec81a3dfb65c0674af4bb3dd4b5a
2019-11-18 15:28:06 +08: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
Raff Tsai
c5e1fc677c Integrated SearchIndexableResources interface in Settings
- New SearchIndexableResources interface returns SearchIndexableBundle,
we don't need reflection to get SearchIndexableProvider

Bug: 135053028
Test: robolectric, check database search_index.db items
Change-Id: I5ed3416ccf72ef3d38db817fcb4aff7502649ed4
2019-11-05 17:38:32 +08:00
TreeHugger Robot
a7485f40b9 Merge "Fix non responding slice toggling" 2019-10-22 06:47:48 +00:00
Yi-Ling Chuang
0495ec3b96 Merge "Fix non responding slice toggling problem." into qt-qpr1-dev am: 5956f903cb
am: e87289bbc4

Change-Id: I7cea63639e03070d6aee1eeaf82214bc5f4328b6
2019-10-16 21:32:12 -07:00
hughchen
1605b0364c Fix Connected devices page UI not update after paired
This CL before, onChanged(null) will cause PreferenceGroup
didn't update UI in ConnectedDeviceDashboardFragment.

This CL remove onChanged(null) and set unvisible of SliceView
in the constructor.

Bug: 142220754
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib20db373430589c5c5efbe8a4c866b7fae4f3399
2019-10-16 14:12:33 +08:00
Raff Tsai
40d9986fd7 Fix IllegalStateException in recyclerview
- Fixed by updating UI in mainthread

Fixes: 142241908
Fixes: 142220754
Test: manual test if it crashes again
Change-Id: Ia83b66d3e60201bc524dbfab69bdeaa5201d38c2
2019-10-15 09:52:34 +00:00
Yi-Ling Chuang
ddf6cefcac 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: 142107748
Test: toggle slices in Settings Search and NGA
Change-Id: Iff724ce5f6a1e6a7d9ca85b8ce76539a72e72964
2019-10-14 09:31:50 +08: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
Raff Tsai
590042b3ba Hide sliceView if Slice is null
Fixes: 142035673
Test: robolectric, visual
Change-Id: I2b5b34d068ba4590f65a284d4f62a1cc77f9666f
2019-10-03 17:23:35 +08:00
Raff Tsai
966fa01423 Use SettingsLib Indexable
- Use SettingsLib Indexable
- Directly use resource id in getPreferenceScreenResId

Bug: 135053028
Test: roboletric
Change-Id: I05f493b55e8b6e2091301e9231ba5615215618e6
2019-09-25 18:24:56 +08:00
Jason Chiu
e856e2b738 Change deprecated slice APIs to new ones
Bug: 138979954
Test: robotest
Change-Id: Ibc430f9975d4e40be00ae4ba61833e94cd090a0c
2019-08-14 11:34:27 +08:00
Yanting Yang
a299fc5435 Fix NPE of launching Settings with malicious URL
Fixes: 122836081
Test: visual, robotests
Change-Id: I97430ea0208c570c46a02dd499dfd944d20eb06e
2019-07-25 21:40:28 +08:00