Commit Graph

26 Commits

Author SHA1 Message Date
Daniel Hunt
dfd5e4fed5 Skip loading contextual cards if legacy cards are used
This stops a jarring animation that occurs when returning to the
settings top level when legacy contextual cards are enabled and
shown at the top of the top level list,

Bug: 142936956
Test: Manual
Change-Id: I43605adf6f1bf63cc40157ac97c8e3295dd3cd99
2019-10-20 15:46:39 +00:00
Raff Tsai
3d2655c100 Log ACTION_CONTEXTUAL_CARD_SHOW in different place
Fixes: 132396134
Test: robolectric
Change-Id: I7d46df15fbc42838da0fa53f4db7e1aa026c3174
2019-05-11 08:28:08 +08:00
Mill Chen
f23b3b84d3 Fix conditionals not show up in homepage
Settings will not refresh conditionals status if there is no condition
card in homepage when Settings homepage gets in/out of window focus.
Whether or not there are conditional cards in the homepage, Settings
should always refresh conditional cards.

Fixes: 129725565
Test: robotests, visual
Change-Id: I1ed309d3fd4f7a2ba911097ea6b049c2aff48c8a
2019-04-11 14:43:58 -07:00
Raff Tsai
76e8acdee8 Remove old format contextual card log
These logs are replaced by SettingsIntelligenceLogWriter

Test: rebuild
Fixes: 124701288
Change-Id: Id93143a1f291878b7c212c35ed8683ca38d5fe17
2019-04-10 15:57:58 +08:00
Yi-Ling Chuang
e6f11ad0f2 Add tests for ContextualCardManager.
Bug: 114307549
Test: robotests

Change-Id: Iac9450ed21011cb6e8186fbe686ff4d03547ba5e
2019-04-03 18:02:03 +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
Yi-Ling Chuang
620d6aeccb Log latency and timeout occurrence for contextual cards.
Fixes: 124492762
Test: rebuild
Change-Id: I552adf7e6d76e8576a790e83792d067ed5716dc2
2019-03-19 18:31:01 +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
Mill Chen
3c50f4467a Adjust timeout limit of contextual card loading
Add a way to get the timeout limit of contextual card loading from
Settings.Global. If Settings.Global doesn't have the timeout limit, will
use the default timeout limit.

Bug: 124460999
Test: robotests
Change-Id: I2a25570f51013b566914e485d61405f14290d338
2019-03-08 11:49:20 +08:00
Yi-Ling Chuang
175a22c882 Do not trigger card loader reloading upon screen rotation.
Use the cached loaded results when it is not the first launch.

Fixes: 123941365
Test: robotests
Change-Id: Ib6de1142b12196e997a8c19122617e9215d23655
2019-02-23 11:35:28 +08:00
Yi-Ling Chuang
1f595d9659 Increase timeout of contextual card pre-check.
- Also add logs for the binding time of each card.

Bug: 123043695
Test: robotest
Change-Id: Iba666f60bccb27658e43af992ce80be98e5ff7ea
2019-01-31 13:29:41 +08:00
Yanting Yang
2784da75a2 Improve UX of Deferred Setup
Change-Id: I3d0735ef1196b04abaef454529664a8daea53967
Bug: 120485678
Test: visual, robotests
2019-01-29 07:43:46 +00:00
Mill Chen
1c3ed19a09 Remove mIsHalfWidth field from ContextualCard
mIsHalfWidth in ContextualCard is too generic to identify its
responsibility, it is used to hold the value of is_support_half from
database and used to decide the card width. Also, it limits the
relationship of CardType-to-Renderer not to be extended to one-to-many.

To deal with this, we replaced mIsHalfWidth with mViewType to implement
one-to-many relationship of CardType-to-Renderer, and removed all
related logic of mIsHalfWidth.

Bug: 121303357
Test: robotests, visual

Change-Id: I03e14392272194424f317d11bf9d0d794a6133f4
2019-01-16 04:01:45 +00:00
Mill Chen
030aadad10 Build a way to decide card width
Slice cards in contextual homepage are shown as half card or full card.
We will use Category field of ContextualCard to decide card width.

In this CL, also fixed the problem of not showing full card after a
consecutive suggestion card dismissal.

Bug: 119655434
Bug: 121315057
Test: visual, robotest
Change-Id: I3243b9db21b8f288cab88238b20d7d50a2a20d46
2019-01-03 16:36:40 +08:00
Raff Tsai
f7a6d94863 Add sliceUri in broadcast intent
Bug: 119748954
Test: robolectric
Change-Id: I24eb8d5a274be60ba3395d05d2b306e185e7dcab
2018-12-19 02:29:52 +08: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
ad12b76a98 Add a timeout waiting for contextual card loader.
- Intially setting it to 1 second.
- Also changed card appear animation from drop in to fade in. It looks
  less janky if we don't animate any size change.
- And some random code cleanup

Change-Id: I6e73bcf98fd9aa1d76ae002b94ab5b068dfecf1e
Fixes: 120916829
Test: robotests
2018-12-12 16:28:24 -08:00
Raff Tsai
e58e0c6e0e Log contextual card is visible and homepage is displayed event
Bug: 79698338
Test: Robolectric
Change-Id: I89ac5ed2765729d8571e84d3a050f0aa07385caa
2018-12-07 09:00:05 +08:00
Mill Chen
e44d953a25 Fix conditional cards disappeared from contextual homepage
This symptom only occurred in the case of more than 3 conditional cards
and no suggestion cards in homepage. It is caused by incompletely keeping
conditional cards. So adding missing card types makes conditional cards
be kept correctly.

Bug: 120115919
Test: robotest
Change-Id: Ic67c0a813de4f966c164bf92e4d4d64debcf95be
2018-11-29 10:00:13 +08:00
Emily Chuang
9c52951ba6 Make UI refresh when there is only one contextual card left.
After having card dismissal mechanism implemented, it is possible that
the card list loaded from the card loader will be empty (users may
dismiss all cards). When there is only one card remaining on the screen
and user dismiss it, the card should go away.

Fixes: 119580732
Test: robotest
Change-Id: I7ae3b03f16a0b8b009d8aa77811b5a6d39c359e7
2018-11-16 14:15:54 +08:00
TreeHugger Robot
345e154b89 Merge "Sort contextual cards based on their score." 2018-11-14 04:33:23 +00:00
Emily Chuang
f7f1b9b233 Sort contextual cards based on their score.
Fixes: 119493779
Bug: 111822376
Test: robotests
Change-Id: I254cba3c92ca1b58633f2ea6b2fa381607549e0c
2018-11-14 10:37:25 +08:00
Emily Chuang
6cf3591645 Add dismissal mechanism for contextual cards.
In the homepage, we should allow cards to be dismissed.

- Implement card flipping upon card long pressing.

Bug: 113783548
Test: robotests, visual
Change-Id: I2ddb498321ba5c5078d6944aa2ef32f1386bdb10
2018-11-13 14:46:44 +08:00
Fan Zhang
2a98c843e8 Loading suggestions via legacy SuggestionService sometimes
When legacy_suggestion flag is turned on, load Suggestions from
SuggestionService instead of contextual homepage, because contextual
homepage infrastructure might not be availble on all devices.

Bug: 118842099
Test: robo
Change-Id: I91710c005e11be5a9b3dd39ceff670106e7f80c3
2018-11-07 11:55:09 -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