Commit Graph

40 Commits

Author SHA1 Message Date
Jason Monk
decc767f26 Guard against monkey crash.
Bug: 27784445
Change-Id: I4ba6e02e0cdb6857661a824ae0888feac6762a05
2016-03-22 09:17:12 -07:00
Jason Monk
d11cca0168 Fix Settings home lifecycle
Bug: 27330440
Bug: 26268813
Change-Id: Ibb3729c9872be2488db3741ec72ba5a43e66db5f
2016-03-16 14:27:12 -04:00
Udam Saini
aa693f6734 Merge "Adds screen lock as a suggested activity" 2016-01-27 18:08:48 +00:00
Chris Wren
9d1bfd1e8d port settings over to new metrics enum
Change-Id: I0b3efd2f4db773ccbc52bfe59ee8eb0dab9584fb
2016-01-27 10:58:58 -05:00
Udam Saini
7ad4a17c5c Adds screen lock as a suggested activity
Also, fixes a bug where the suggested activity stayed on screen
after the component was disabled causing a crash.

bug:25246207
bug:26770556
Change-Id: I28d784cdc57e464e49887483690ab514ca3bc46a
2016-01-26 17:09:02 -08:00
Jason Monk
91ca519a0f Support changes to SuggestionParser
Change-Id: I002e10cfe2a058f934d2c6218c88c2588654733f
2016-01-26 13:58:25 -05:00
Jason Monk
d4f03ec86f Add suggestions to settings
Use an XML to define the categories that Settings will look for,
and surface enabled activities under those categories as suggestions.

When clicked on the activity will be started for result.  If the result
is not cancelled, then the operation is assumed successful and the
suggestion is disabled.  Users can also use an overflow -> remove
flow to get rid of unwanted suggestions.

Change-Id: I767abf8efe103af0509bc6b6b55888ae82643512
2016-01-07 16:25:34 -05:00
Jason Monk
db4ed191de Add conditionals to Settings
Also add Airplane Mode and Hotspot conditionals (more to come soon)

Change-Id: I11f206db59f7c715f416fb5852b8f0fcb857a247
2015-12-14 10:29:12 -05:00
Jason Monk
fd2c722418 Work on settings launch speed
Move some stuff to the background, avoid doing other things.

Change-Id: I145172efa16f81c2f377f07744c8f88145e2ed1d
2015-12-02 16:10:08 -05:00
Jason Monk
8c4ca41d25 Make sure the dashboard is up to date
Bug: 25794089
Change-Id: I65eaa8e14b3c998ec122eaa9fc4dbbe3749c568c
2015-11-30 15:43:34 -05:00
Jason Monk
3069581512 Summary support for Settings Home
Also add summaries to a few of the major items.

Change-Id: I17924f14941fe095d819e142cdd21cf4b4e9ffd1
2015-11-17 13:51:45 -05:00
Jason Monk
7c7eb70dc3 First pass at restyling dashboard
Still needs summaries, but the things are in the right place-ish.

Change-Id: I1cbc23da9f56589836b5ebd7e202114e8f323adc
2015-11-11 16:46:15 -05:00
Jason Monk
2fe90293a1 Various small crash fixes and guards
Bug: 25501551
Bug: 25583654
Bug: 25510495
Bug: 23575961
Change-Id: Id0e7f6aacdf763bf95b49d281aa8755afcd2e5ef
2015-11-10 15:43:54 -05:00
Jason Monk
4da79e088f First pass at drawer to Settings
Change-Id: I94c3bc69ff773e48c33f59f37bfc0d91139c187a
2015-11-04 11:11:25 -05:00
Jason Monk
15dcebe1e7 Help fallbacks and intent work
- Handle a backup URI, so that if the specified URI is not available,
   another can be used.
 - Add some data to help intents when they are intent URIs
 - Fill in the context with a classname when it isn't present

Bug: 15475009
Change-Id: I7050fa61121901929e650b20bd7a0ae21e8ba207
2015-05-28 09:50:45 -04:00
Jason Monk
47d16e9bf6 Tint dashboard items coming from external tiles
So they can match the Settings theme.

Bug: 20449897
Change-Id: I33ad0d78dad6fbc9dae35552246a559b6508deaf
2015-04-23 12:41:40 -04:00
Jason Monk
23acc2bb8a Allow help to be defined to intent uri
Allow help uris to be either an intent uri or as uri (as they were
before). Also add a default help uri, and specific helps for several
screens.

Bug: 15475009
Change-Id: Iff982892973f01d32ff61ea88d4844e9a7153500
2015-04-14 15:43:20 -04:00
Chris Wren
8a963babe2 log visibility of views
Depends-On: I5b1dccb5d103ece3112acf38889bae16273b092f
Change-Id: I116aed2bb805f723a5bf2ec9eb94257de0b4a7b5
2015-03-27 13:39:07 -04:00
Jason Monk
2ebc8a0169 Allow system apps to add to settings dashboard
Allow system apps to add a tile to the top level of settings that
links to an activity through adding a filter for a specific action.
Determine the info for the tile based off manifest info for the
activity. Also allow the same for managed profiles, but show a dialog
in between to select which profile.

The category in which the item is to be placed must be in meta-data.
The icon and title can be specified through meta-data as well or
if unspecified the activity's label and icon will be used.

Also added an optional <external-tiles> tag to the dashboard
category xml, this allows Settings to put external tiles
in the middle of some categories (Personal does this).

Bug: 19443117
Change-Id: Idc9938d1549d181103a3030a8784b527215a8399
2015-03-25 11:11:36 -04:00
Fabrice Di Meglio
c9ad22c38b More code cleaning for the Home intent filters
- remove the Intent.CATEGORY_HOME as it is not useful and
cannot be used into an Intent filter

Change-Id: I516188ea1c662c3277c64194c229a2e1c03a4e6a
2014-07-23 19:32:57 -07:00
Fabrice Di Meglio
7f5c5e8bb8 Code cleaning
- remove those non usefull Intent.CATEGORY_LAUNCHER

Change-Id: Ib6e5f4a5265633da85423307fac26a104814f05f
2014-07-23 19:03:33 -07:00
Fabrice Di Meglio
b0a464fd2c Fix how Home Activities are refreshed
- remove that HomePackageReceiver from the AndroidManifest
that could force Settings to run
- use a HomePackageReceiver into HomeSettings and DashboardSummary
- fix also the BatteryInfoReceiver for refreshing the Dashboard

Change-Id: Id3891529fc176e7e4c450f2ce723f8ac2af66c58
2014-07-23 18:20:53 -07:00
Alexandra Gherghina
cfc7f9d960 Remove old accounts tile, replaced by a separate screen
Bug: 15815948
Bug: 15819268
Change-Id: I3b6978cff346c73cca1d6a2c209ffe4c71808244
2014-07-14 10:02:14 +01:00
Fabrice Di Meglio
47a25e7640 Update Dashboard layout again
- follow UX spec
- update also the Search Panels (suggestions / results) to
follow the same specs

See bug: #15384992 Setting Dashboard - padding updates

Change-Id: I3d27a3b3d9779644f8ea123990a0c7bed8d4ba74
2014-06-23 13:23:47 -07:00
Fabrice Di Meglio
53d76860a5 Fix bug #15161058 Stability: ISE in Settings:Fragment DashboardSummary{588de71} not attached to Activity
- prevent rebuilding the UI until the fragment got attached

Change-Id: I6d5fcbce2581f3fc9900f1ca4fc8178ee959061e
2014-05-22 11:27:43 -07:00
Fabrice Di Meglio
b644f29313 Optimize Dashboard loading
- prevent loading categories twice
- add some logging to see the time taken for building the Dashboard titles

Change-Id: I31724c0e66fe3b453a87f12476f58db84c73423f
2014-05-22 10:30:03 -07:00
Fabrice Di Meglio
5f995727cc Fix bug #15080198 Enabling developer options requires restart of settings to enter
- fix Dashboard categories refresh issue

Change-Id: I5bb7fc4a1410df8f5c2d2d13f7625a1ccc8893c3
2014-05-19 19:51:31 -07:00
Fabrice Di Meglio
a8072fa6e0 Fix bug 14990524 Add account does not refresh the list of accounts in the Dashboard
- unregister the OnAccountsUpdateListener in Fragment.onDestroy() instead of
in Fragment.onStop()

Change-Id: I07c92f85bb6efb34771d93158f00b60d93f4c90b
2014-05-15 19:32:39 -07:00
Fabrice Di Meglio
f40852046b First batch of new Quantum Theme assets
- needed for Quantum Theme support

Change-Id: I90e8fdbb86a3cc5d5c209d4d345f6d423b2a1d5d
2014-05-14 18:04:53 -07:00
Fabrice Di Meglio
075a2963e8 Fix bug #14399525 settings crash on opening login error notification
- check if the account istener has been previously added or not

Change-Id: Icfd111a406507ac520a396e44710a9d882f2ae4d
2014-05-09 18:36:34 -07:00
Amith Yamasani
f5b3f3b445 Fix crash when adding account
Remove the listener in onStop(), to be symmetrical with onStart().

Bug: 14393261
Change-Id: I5d4f0ca38d5ef52b97715b8f3791ff2a400c68e2
2014-04-30 10:38:56 -07:00
Fabrice Di Meglio
769630c895 Settings new dashboard - part 2
Introduce the new Dashboard (a grid like presentation of
Settings top categories) per UX specification.

- the Dashboard is composed of "categories" and in each of them
you have "tiles"
- implement a new layout for showing top categories
(DashboardContainerView). This layout basically acts like a
grid
- depending on the device configuration make the grid with 1
column in portrait / 2 colums in landscape (phones) OR 2 columns
in portrait and 3 in landscape (tablets)
- take care of Accounts adding and removing (as it changes the
number of tiles to show)

Also remove all the old code related to Headers

Change-Id: Ie29944132c1b4c3f7b073d5a7d4453b8f5ec19a7
2014-04-25 17:24:18 -07:00
Fabrice Di Meglio
d25314d330 Settings - update for new UI (no more Drawer)
- follow the UX spec by no more using a Drawer
- the Dashboard is now a Fragment that contains the list of Headers
- the search results are also put into a Fragment that is replacing
the initial one (Dashboard or other) when expanding the SearchView
- use a SearchView for query input
- when tapping on a Header or a Search Result, re-launch Settings as
an Activity so that we are benefiting from the Activity stack for
UP affordance and BACK button
- manage UP affordance to show it only when needed
- move some Actions to the Menu in the ActionBar for allowing space
to the Search action and removing some clutter
- fix an issue with the Index and WiFiEnabler and their cached Context
that was not updated when there was a Configuration change
- simplify the SettingsActivity code by extracting some inner classes

Change-Id: I50b5f77bb44a7fade1886114dbbc820609a5e63d
2014-03-28 15:51:29 -07:00
Fabrice Di Meglio
fa7dc240e9 Add external Preferences indexing
- define SettingsSearchIndexablesProvider as an internal
SearchIndexablesProvider
- protect access thru using android.permission.READ_SEARCH_INDEXABLES
- update WallpaperTypeSettings and WifiSettings for taking care of
the new model
- update the Dashboard for taking care about external Icons for the
search result
- update sqlite model/version for taking care about Intents
(enable launching external applications for showing the settings)

Change-Id: I2e38599327e6480f1754f52666becce0884cee9d
2014-03-19 14:56:09 -07:00
Fabrice Di Meglio
0b63458c0b Improve query filtering for Search
- there was a crash when inputing "w" then "-" then "-". This
crash was due to the InputFilter which got some strange indices
from the BaseInputConnection.
- so now we are doing our own filtering before sending the query
to Sqlite. We only keep Letters / Digits / Spaces.

Change-Id: I66dcbebeec9217cf8fd65a16b10fe2304d98cf58
2014-03-06 16:31:12 -08:00
Fabrice Di Meglio
835c5e4ef9 Merge "Fix bug #13322036 stability-sys: Java crash in com.android.settings: android.database.sqlite.SQLiteException: malformed MATCH expression: [ avs- /y@ggmd"*] (code 1)" 2014-03-06 00:27:40 +00:00
Fabrice Di Meglio
3ec129b1b5 Fix bug #13322036 stability-sys: Java crash in com.android.settings:
android.database.sqlite.SQLiteException: malformed MATCH expression: [ avs- /y@ggmd"*] (code 1)

- the real issue was linked to the double quote
- add an InputFilter to the query EditText so that we allow only
Letters / Digits / Spaces (and this should works for all Locales)

Change-Id: I6016cc25d154b386870379dfa4c79a40c5505530
2014-03-05 16:24:35 -08:00
Fabrice Di Meglio
4931d7cc16 Fix bug #13300024 Settings app crashes on changing device orientation
- remove crashing code. Basically let the Framework do its work.
No need to save the state of the EditText by ourselves.

Change-Id: I49e98a852f4fcda61eabaa2967d027942905ec27
2014-03-04 12:57:11 -08:00
Fabrice Di Meglio
6f0739a3d9 Add Search to the Settings App (initial release)
- add basic UI for search
- build the search Index thru sqlite FTS4 (faster than FTS3)
- create the search Index on the fly depending on the locale
- re-index if there is a configuration change
- re-index too if the Android build version has changed (usefull
for an Android OTA or when a new Android version is pushed as
we need to recompute the Index)
- search thru "title" and "summary" Preference's data
- group results in the same order of the Settings categories
into the Drawer
- rewrite "title" and/or "summary" if they are containing
an hyphen "\u2011"
- add Preference Keywords (only for the Settings App) in the
Index and allow search on them (Wi-Fi network preference is
used as an example)

Known restrictions:

- we cannot yet search for "dynamic settings"
- ... nor we cannot search for settings coming from an external App
(like the Phone App and its related settings that are surfacing
into the Settings App).
- will need a few other CLs to add more keywords (and have them translated)

Change-Id: I017a4d6c433f28c257c08cacc1bed98c4c517039
2014-03-03 14:46:17 -08:00
Fabrice Di Meglio
263bcc8b73 Use Drawer in Settings app
- get rid of PreferenceActivity as much as we can and use fragments instead
- add Drawer widget
- add Dashboard high level entry into the Drawer (but this is work in progress and would be done in another CL)
- add bypass of fragment's Header  validation when launched from the Drawer but *force* validation if external
call thru an Intent

Be aware that WifiPickerActivity should remain for now a PreferenceActivity. It is used by SetupWizard and should
not trigger running the SettingsActivity's header building code. SetupWizard is a Home during the provisionnig process
and then deactivate itself as a Home but would make the Home header to appear in the Drawer (because momentarily we
would have two Home).

Also, verified that:

- the WiFi settings still work when called from SetupWizard
- when you have multiple Launchers, the Home header will appear in the list of Headers in the Drawer

Change-Id: I407a5e0fdd843ad7615d3d511c416a44e3d97c90
2014-02-03 16:36:46 -08:00