Commit Graph

1146 Commits

Author SHA1 Message Date
Juan Flores
92fa371a0b Fix crash while searching in Settings
A crash occurrs when power button is pressed during search in Settings
due to IndexOutOfBoundsException in HeaderViewListAdapter.
When suggestions and results are cleared,
the layouts should be invisible to solve this problem.

Bug: 27913974
Test: manual - search "font" and press power button twice

Change-Id: Ia53d393e695dbb238fc4c82a3fe52ef4250d84c1
2016-10-25 12:12:10 +09:00
jackqdyulei
a44fdda438 Store Tile in view tag, not position
The position(used to find the tile) is not up-to-date when recyclerview
changes, so store tile instead.

Bug: 32370624
Test: make -j40 SettingsTests
Change-Id: I10d29b3137ecb1c37b6a8468c6f2709b8497caa6
2016-10-24 14:44:37 -07:00
Doris Ling
d7aae18f8b Add user and account dashboard category for new IA.
Add the initial version for the User & accounts category and set the
tile's intent if it contains metadata but fragment is null.

Test: RunSettingsRoboTests
Bug: 31801423
Change-Id: Ic63bf8aeaf47f68a184af73c9a8a72b89b597a17
2016-10-21 16:07:39 -07:00
TreeHugger Robot
054b2d5c69 Merge "Add initial preferences to App&Notification screen." 2016-10-21 22:20:41 +00:00
Lei Yu
751e0b0f20 Merge "Elicit ItemsData class and add DiffUtil.Callback" 2016-10-21 20:52:18 +00:00
Fan Zhang
cdacd1df9a Add initial preferences to App&Notification screen.
Bug: 31799948
Test: manual
Change-Id: I93f9d6562f51d37fcd78bada2f7c37d6b16daabb
2016-10-21 12:57:48 -07:00
jackqdyulei
0b818b79db Elicit ItemsData class and add DiffUtil.Callback
In the previous version, when there is a minor change in data, we
will refresh the whole screen(and data) by invoking "recountItems"
and "notifyDataSetChanged", which did lots of unnecessary works.

In this new cl, I elicit ItemsData class, which encapsulates the list
data used in adapter. When data changed, I build another ItemsData and
use the DiffUtil.Callback to calculate diffs between ItemsDatas. In
this way we can only refresh the items that changed in adapter.

Since I cannot find usage of see_all.xml anymore, I delete the relevant
code as well as the resource files.

Bug: 30319913
Test: make RunSettingsRoboTests
Change-Id: I4f753a26f624affea6c6c35d49cfb9c43fb74fe6
2016-10-21 11:02:29 -07:00
Fan Zhang
a1a84e6530 Make dashboard tile refresh more effcient.
Instead of removing and re-adding all dashboard tiles, figure out a diff
and rebind/add/remove as necessary.

Bug: 32255863
Test: RunSettingsRoboTests
Change-Id: I9d87ba30ab746257d0ea71282951348ebc4e8965
2016-10-20 09:52:01 -07:00
Fan Zhang
8b5bca5937 Move add/remove/findPref to ProgressiveDisclosureMixin.
This makes ProgressiveDisclosureMixin the authority for adding/removing
preferences so caller doesn't need to figure out if a preference is on
screen or collapsed.

Bug: 32255863
Test: make RunSettingsRoboTests -j40
Change-Id: I9bd69661b78efd4bb4913665f6ea09f6bdc231f5
2016-10-19 12:19:46 -07:00
Fan Zhang
db1112a221 Add progressive disclsoure
- Add a ProgressiveDisclosureMixin that contains all logic for collapse
  preference list when it's too long
- Refactored PreferenceController's updateState to take a preference
  instead of PreferenceScreen, because with progressive disclosure the
  preference can either be in screen or the mixin. DashboardFragment is
  responsible finding the preference before passing it to controller.

Bug: 32255863
Test: RunSettingsRoboTests

Change-Id: I6713abd61c954ce12732902e5b3ca4d4c0b1563e
2016-10-18 16:57:11 -07:00
Fan Zhang
8da724a8bb Put divider back when IA is turned off.
Bug: 32231177
Test: manual
Change-Id: I657e0bb3b8721c494cd1a6272b370b54ae5063ec
2016-10-18 09:52:07 -07:00
Fan Zhang
98cb0ace7f Merge "Draw preference divider based on preference group." 2016-10-17 22:42:44 +00:00
Fan Zhang
be2ac27b67 Draw preference divider based on preference group.
Bug: 32179750
Test: RunSettingsRoboTests
Change-Id: I3ea1cd662c5baec825fae615883b94b26e648409
2016-10-17 10:16:04 -07:00
Fan Zhang
9cf5cfb03d Fix a bug in navup button.
When launching internal setting activity from dynamic tiles and hit back
button, it goes back to settings homepage. Instead it should just go
back to the UI where startActivity is called.

This is caused by various activity flags set in manifest. Instead of
using startActivity, internal settings screen will just be launched
using SubSetting, which doesn't have this problem.

For external settings, still use startActivityForResult to maintain
backstack.

Test: manual
Change-Id: I07aa6ed932b9048375629d6ffd6ad1adfaba3fd3
2016-10-14 15:42:28 -07:00
Fan Zhang
e0c253fccb Add summary provider for system tile.
Refactored getLocaleNames() into a FeatureProvider interface so it's
reusable and testable.

Bug: 31801428
Test: RunSettingsRoboTests
Change-Id: I2d31a66a4b32cfa7a364a4cfef1f6eea87084577
2016-10-14 11:08:51 -07:00
Fan Zhang
60f0107b3a Show back button for non-toplevel settings in new IA.
Bug: 32159368
Test: RunSettingsRoboTests
Change-Id: I627a6e456ece8ecb1fc337fcd4dd1e9598dab554
2016-10-13 16:53:41 -07:00
Fan Zhang
7f1a4b5891 Add PreferenceControllers to Network page.
- Also made tiles refresh more efficient: when category changes, only
  refresh dynamic tiles. Static tiles from xml will not change due to
  category change.

Bug: 31799836
Test: RunSettingsRoboTests
Change-Id: I1e4c85f2c122c65ec99729e43a66c80acdd863c8
2016-10-12 15:04:39 -07:00
Jeff Sharkey
ab50807d1e Offer a null FignerprintManager.
Settings likes null.

Test: builds
Bug: 32060380
Change-Id: I5ba19bccfd48916d4e581518928a6aee19e84a77
2016-10-11 14:30:19 -06:00
Fan Zhang
66b573ad5a Add display settings dashboard to new IA.
- Added a activity-alias pointing to displaySettings as top level
  setting item.
- Refactored all preference logic in DisplaySettings into
  PreferenceControllers. During fragment onAttach it installs all
  controllers, and during onResume it updates preference state. Each
  controller listens to its own preference change event.

Bug: 31800242
Test: RunSettingsRoboTests
Change-Id: Ibc9bf200c5acce7c4ae9292340822afee27a3a28
2016-10-10 18:26:29 -07:00
Fan Zhang
fabbfb435e Refactor SummaryLoader to set summary on subsetting pages.
- Make a SummaryConsumer interface. Things that needs latest summary
  should implement this interface (DashboardAdapter for homepage,
  DashboardFragment for subsettings). This also decouples SummaryLoader
  from relying on SettingsDrawerActivity.
- Make DashboardFeatureProvider more generic to load DashboardCategory
  by key.

Bug: 31781480
Test: RunSettingsRoboTests
Change-Id: I9c65456fb433a74c352498251e0ccf65da0be1f0
2016-10-07 14:52:06 -07:00
Fan Zhang
36924659f5 Refactor DashboardFragment.
Merged refreshAllPreferences into DashboardFragment. This hopefully
makes it more modular to manage preference display logic in each
dashboardFragment, and makes it more efficient to monitor category
changes.

Now subclasses needs to implement 2 methods:
- displayResourceTiles(): for 'static' preferences from xml
- getDashboardTiles(): returns a list of dashboard tiles and superclass
  will wire it up to preference screen.

If getDashboardTiles() return null (aka no dashboardCategory available),
the fragment will not attempt to monitor category change. The edge case
is that if a package starts to provide a tile for this category, we will
not be notified. I have not seen this case coming up. If we indeed need
to handle this case, the category listener needs to have a way to
monitor specific category rather than globally.

Bug: 31781480
Test: make RunSettingsRoboTests -j40
Change-Id: Ia9f9541b95816214df0d0bb27e3e41078c36c5ca
2016-10-07 11:55:43 -07:00
Fan Zhang
e6c60c24a8 Add test for new DashboardFragment and PreferenceController
Also added a FakeFeatureFactory to make it easier to mock different
FeatureProviders.

Bug: 31781480
Test: make RunSettingsRoboTests
Change-Id: Ie45db601e0bec951d7ef983ec2e3ca747ec1c3af
2016-10-06 10:33:01 -07:00
Fan Zhang
1d4495f985 Merge "Update signature when calling CategoryManager.get." 2016-10-05 00:14:54 +00:00
Fan Zhang
1fb1526af7 Update signature when calling CategoryManager.get.
Bug: 31781480
Test: compiles
Change-Id: Iee715aca3767a67728527ba9390787d3f8a7e5fe
2016-10-04 15:18:02 -07:00
Fan Zhang
bb6d2608e9 Add storage dashborad page.
Refactor shared dashboard page display logic between storage and
system page.

Bug: 31800690
Test: RunSettingsRoboTests

Change-Id: I7eb86f590b79ab871bdb383fb2f5326790beb193
2016-10-04 14:06:57 -07:00
Fan Zhang
c6540cfb57 Add search provider for system dashboard fragment.
Bug: 31801428
Test: manual
Test:make RunSettingsRoboTests
Change-Id: I6a80d64ed9755f4ddcfde33a82be04cfcbf0495b
2016-10-04 11:10:36 -07:00
Fan Zhang
81adfcfcca Listen to category changes in preference fragment.
Bug: 31781480
Test: make RunSettingsRoboTests
Change-Id: I702e524eb3a9e40b653e112dba80d620be3bc9bb
2016-10-03 16:38:02 -07:00
Fan Zhang
cc335d9509 Rearrange a few settings into System category page.
- Use activity-alias to define which activity shows up in what category.
  We choose activity-alias because it creates a reference to UI we need
  without having to define a new set of intent-filter and/or category
  keys. This reduces maintainence in the long run. We should merge
  metadata from activity-alias into targetActivity when cleaning up.

- Created new System dashboard activity that hosts all system category
  tiles dynamically, and a static tile for checking system update.

Bug: 31781480
Test: manual
Test: make RunSettingsRoboTests -j40
Change-Id: Ia2d762e3e1aebd17423a395c5e6c286dc3326492
2016-09-30 16:03:46 -07:00
TreeHugger Robot
96fa06ebf7 Merge "Use DashboardFeatureProvider to load homepage tiles." 2016-09-29 21:19:34 +00:00
Fan Zhang
a96a2d8d60 Use DashboardFeatureProvider to load homepage tiles.
Adding support to homepage category.

Test: SettingsRoboTests for regression. Will write tests for new feature
soon once we are set on the data structure.
Bug: 31781480

Change-Id: I25fa367fecb643f17e23f0182df7585bf1fcdd02
2016-09-29 12:31:10 -07:00
TreeHugger Robot
0231d64190 Merge "Settings timeout for suggestions" 2016-09-29 18:44:24 +00:00
Salvador Martinez
d969a5f53d Settings timeout for suggestions
If loading suggestions takes too long (750ms)
settings will display just the categories
so the user does not get confused.

Test: Forthcoming
Bug: 31203004
Change-Id: Ic9866a5ccdcef965908db8c4592435a5d252f7b0
2016-09-29 18:39:47 +00:00
Matthew Fritze
f3b1d7b580 Settings suggestions now describes expand and collapse in talkback am: 62cf9efd9b am: d522eff9e5
am: a7b7f86f1e

Change-Id: Icac895f280eb02b5cedebfec4d6b809431ea04f7
2016-09-28 23:21:51 +00:00
Matthew Fritze
a7b7f86f1e Settings suggestions now describes expand and collapse in talkback am: 62cf9efd9b
am: d522eff9e5

Change-Id: I95c7c1e9f7e3cec8dc9d439b480b78b2520730fb
2016-09-28 23:01:12 +00:00
Matthew Fritze
62cf9efd9b Settings suggestions now describes expand and collapse in talkback
Bug: 30314874
Change-Id: I2231148594c8e878111a754e5806c20dd4e289af
2016-09-27 13:31:15 -07:00
Fan Zhang
488033e54d Add feature provider for dashboard.
The feature provider contains API that controls whether a new
information architecture should be used. By default it's false.

Bug: 31768091
Test: make RunSettingsRoboTests
Change-Id: I5b177be418def50d877f53dc799e42d06eba95ec
2016-09-27 11:25:27 -07:00
Fan Zhang
e40eb2457a Fix NPE when trying to refreshes dnd condition. am: 98487f4d65 am: 80c589e1f8
am: f77c940f9a

Change-Id: Ib0f089321000e100dbbf4510ebb9d5bce3b3abca
2016-09-23 23:57:03 +00:00
Fan Zhang
f77c940f9a Fix NPE when trying to refreshes dnd condition. am: 98487f4d65
am: 80c589e1f8

Change-Id: I64d75489f6e7066b2303c6e3fc3d4e6b0c8388c6
2016-09-23 23:44:36 +00:00
Fan Zhang
aa71afe597 Use MetricsFeatureProvider for logging in Settings.
Bug: 31664539
Test: make RunSettingsRoboTests for regression
Test: adb logcat -b events | egrep "(sysui_|notification_)" for
      verifying log

Change-Id: Id944be7c4ff9911aebee481c2df485542f1318f0
2016-09-23 08:37:37 -07:00
Fan Zhang
98487f4d65 Fix NPE when trying to refreshes dnd condition.
Bug: 31685838
Test: manual, will add automated test in master.

The NPE happens when try to refresh dnd condition before the condition
object is created.

Change-Id: Idbd6898472e1ad21a2bbb3be5f0b9c24c03b5c80
2016-09-22 22:13:21 +00:00
Fan Zhang
c93d18e29c Use MetricsFeatureProvider for condition/suggestion/search.
Bug: 31664539
Test: make RunSettingsRoboTests

This allows different metric clients to listen to these events.

Change-Id: Ib19c8099b16ff78d9aa4901278e0ff33eeefd4a8
2016-09-22 13:22:26 -07:00
Fan Zhang
1e516287bd Add visibility metrics to dialogs.
Bug: 30681529
Test: adb logcat -b events | egrep "(sysui_|notification_)"
Change-Id: I199d2e1b2cb8588a562b46bb8128d8ece24952f0
2016-09-19 17:34:12 -07:00
Doris Ling
f0bb63f307 Fix NullPointerException in DashboardSummary. am: 797dd7440d am: 454dc3739a
am: 45a821105f

Change-Id: I39623232f80a9de2d2199af11585eaa61bce2e08
2016-08-26 23:03:39 +00:00
Doris Ling
45a821105f Fix NullPointerException in DashboardSummary. am: 797dd7440d
am: 454dc3739a

Change-Id: Id334c7b3f36d8fcfbb4e919007d0bf5789b605fb
2016-08-26 22:26:40 +00:00
Christopher Wiley
87e59d0e81 Do not use TetherUtil.setWifiTethering
This functionality is replaced by ConnectivityManager.startTethering()
and ConnectivityManager.stopTethering().

Bug: 30147602
Test: Can toggle tethering on/off via all of settings, quick settings,
      and quick quick settings.
Change-Id: I4d190185c473237982b988f898e76d4997dc401c

(cherry picked from commit 9d251279ca)
2016-08-26 13:26:45 -07:00
Doris Ling
797dd7440d Fix NullPointerException in DashboardSummary.
In onSaveInstanceState(), move saving the suggestions logging lists to
the top so that it will be saved to the bundle even when layout manager
is null.

Test: run monkey
Change-Id: I248563a255158feadeb85898a920af96a1565fa9
Fixes:31111795
2016-08-26 11:13:21 -07:00
Salvador Martinez
a54c3690a4 Added guard to logging in AsyncTask am: 030eeeee6d
am: 60bd509d4e

Change-Id: Ib1d37a0c9c68c01be0d59bff5d78cd37c083689f
2016-08-25 20:02:35 +00:00
Salvador Martinez
030eeeee6d Added guard to logging in AsyncTask
An async task was trying to get the context
in an InstrumentedFragment. This could return
null if the context disappears before the new
thread gets to that line. Logging will now
be aborted if context is null to avoid this.

Test: Manual/Monkey Stability Test
Bug: 31058928
Change-Id: Iae97d389e58a76b0f213a2749415501894ebf649
(cherry picked from commit 566b66e27c)
2016-08-25 17:45:24 +00:00
TreeHugger Robot
e96d65deea Merge "Added guard to logging in AsyncTask" 2016-08-25 00:36:32 +00:00
Salvador Martinez
566b66e27c Added guard to logging in AsyncTask
An async task was trying to get the context
in an InstrumentedFragment. This could return
null if the context disappears before the new
thread gets to that line. Logging will now
be aborted if context is null to avoid this.

Bug: 31058928
Change-Id: Iae97d389e58a76b0f213a2749415501894ebf649
2016-08-24 15:11:21 -07:00