Commit Graph

16 Commits

Author SHA1 Message Date
Greg Kaiser
9e9255fb2a Revert "[Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice"
This reverts commit 7b1aded2a6.

Reason for revert: Settings is crashing for WiFi selection in SetupWizard on wembley

Bug: 161434533
Change-Id: I1d90e9bae1b31862fba674db0d7497e43f987a7f
Test: Locally reverted, reflashed, and was able to select WiFi without Settings crashing.
Exempt-From-Owner-Approval: Revert to clear up P0 while all owners are outside of work hours
2020-07-16 14:47:31 +00:00
Arc Wang
7b1aded2a6 [Wi-Fi] Apply WifiTrackerLib objects in Wi-Fi Slice
This change uses WifiTrackerLib's WifiPickerTracker & WifiEntry
to replace SettingLib's WifiTracker & AccessPoint.

This change includes

1. WifiScanWorker has the callbacks similar to a lifecycle component
   but it's not a lifecycle component. Let WifiScanWorker implements
   LifecycleOwner and provides #getLifecycle() for WifiPickerTracker.

2. Remove captive portal related code because WifiEntry#connect will
   handle captive portal login if it's necessary.

3. Create WifiSliceItem to wrap WifiEntry because WifiEntry is an
   abstract object and it does not provide copy constructor.
   Without copy construcor, Wi-Fi Slice may show unexpected information
   when a WifiEntry is updated.

4. Use WifiTrackerLib's NetworkDetailsTracker & WifiEntry in
   WifiDialogActivity because it gets a WifiEntry key from Wi-Fi Slice.
   NetworkDetailsTracker can get the WifiEntry of th key.

Bug: 155613549
Bug: 152571756
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.slice
      make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi
Change-Id: I0718f4647cea007a9b701922f3121a388dd43918
2020-07-16 15:56:42 +08:00
Yi-Ling Chuang
b54f9b4921 Disable the defulat animation of the RecyclerView to avoid UI jank.
When users go to a sub page in Settings and come back to the homepage
again, those sticky cards flicker which makes the UI janky. This is
because we rebind sticky cards to ensure it's always up-to-date, where
the recyclerView has its default animation while notifyItemInserted(),
ane thus introduce the jank.

Fixes: 158627602
Test: Open Settings -> go to sub pages -> back to the homepage -> cards
are not flickering.

Change-Id: I2104dbe0bed8b2486c35521bcc0b5c8b54efb995
2020-06-22 14:53:10 +08:00
Jason Chiu
3c3f362125 Improve BT slice card loading performance
The bottleneck is getting LocalBluetoothManager the first time.
1. Initialize LocalBluetoothManager earlier and asynchronously.
2. Don't block in slice's constructor and getSlice().
  - Initialize the bt updaters until the manager is ready.
  - Just show a header if the manager is not ready yet.

Fixes: 157702021
Test: robotest
Change-Id: I427df55f259b45ba4c37557b22e09dcc24079e93
2020-06-11 18:39:29 +08:00
Jason Chiu
e0327ee583 Reload homepage cards when necessary
Many users leave Settings app by pressing Home key, but Settings remains
in the same card status and doesn't update when users come back, which
may lead to a bad UX.

This change reloads cards and resets the UI session for some events,
including home key, recent app key, and screen off.

Fixes: 151789260
Test: robotest
Change-Id: Idb575cef4a58894984cb42238d7b3b43c49389a3
2020-05-05 10:03:49 +00: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
Yi-Ling Chuang
734d826117 Remove viewFlipper used in contextual card dismissal.
- Use view's visibility to control which view we should show.
- Slice view can be built with normal height after removing viewFlipper.

Bug: 129438972
Bug: 128689305
Test: robotests
Change-Id: If7e9bd30d5cb5bcd3b9ff9f09cc2eae36543b9e9
2019-04-09 10:24:10 +00:00
Yi-Ling Chuang
5bf939e934 Add interface for homepapge swipe to dismiss.
- Create an ItemTouchHelper.
- Attach the helper to the recycler view.
- Pass change to the adapter to handle the swipe.

Bug: 126214056
Test: rebuild
Change-Id: I312ee1357158db84f9ee328be4722fe067984604
2019-03-27 11:20:49 +08:00
Mill Chen
bd10886288 Make conditional work properly when toggle it in QS
Some conditionals do not work properly when users toggle its state in
QS, the cause is that these conditionals don't have a way to monitor the
status changed. Make RecyclerView handle onWindowFocusChanged event and
make sure that conditionals can update the status when going back to
Settings from QS.

Bug: 118387886
Bug: 123171638
Bug: 123167705
Test: visual, robotests
Change-Id: Ib3bb9bf43afaa58726502eea1e98bcf602bc3677
2019-03-21 13:28:25 -07: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
Yi-Ling Chuang
39dcad9bd1 Don't have cards auto-filled in the foreground when a card gets dismissed.
Currently if users dismiss a card or navigate back to the homepage,
new suggestions will be auto filled in. We should only add new cards
upon next visit.

Also fix suggestion cards undismissable problem.

Fixes: 121175037
Bug: 120628661
Test: robotests
Change-Id: I01d74aaaa21c8408e5cecafef04a7d52c97bccc5
2018-12-18 17:03:41 +08:00
Fan Zhang
1e4e80162e Revert "Revert "Add a new logger for StatsLog""
This reverts commit f14d4af767.
Test: rebuild

Reason for revert: Fixes build

Change-Id: I003af1d9c973e58c09b1d8b9717c427febd6f809
2018-11-10 10:29:15 -08:00
Todd Kennedy
f14d4af767 Revert "Add a new logger for StatsLog"
This reverts commit b2b84372b5.

Reason for revert: Causes build failures

Change-Id: I04f4a6e6d6082903056c296d543870dd165b6eea
2018-11-10 13:51:50 +00:00
Fan Zhang
b2b84372b5 Add a new logger for StatsLog
Bug: 117860032
Test: robotests
Change-Id: I4f3f5b1fb47df9427140a22f1e78126ad391ff68
2018-11-09 15:54:12 -08:00
Emily Chuang
f519e3ffe5 Make ContextualCardLoader do entire loading upon fragment's onStart()
For dismissal mechanism, we will have to get information about those
dismissed cards that are stored in Card DB with flag "dismiss" to filter
them out. Currently we only do the entire loading in fragment's
onCreate(), so only when the fragment is recreated users can get the new
data. Now we are changing it to onStart() and make the loader restart so
we are able to show the latest cards.

Change-Id: I4c0be297232f026b46feb8084084816e1acc8f11
Fixes: 119090460
Bug: 113783548
Test: visual
2018-11-06 19:56:42 +08:00
Fan Zhang
5e6e6a14f2 Move all contextual card related classes.
... from homepage to contextualcards.

Test: rebuild
Change-Id: Id7889566ce1e7257eb699d963ae996906fdb58ff
2018-10-26 10:02:04 -07:00