From ea0b32d1edab5f6d81d9f17fc327258e56535dee Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 7 Sep 2018 11:06:44 -0700 Subject: [PATCH] Misc clean up - Rename a few more things from Homepage* to ContextualCard* - Fixed a wrong parameter that GridLayoutManager was using Test: rebuild Change-Id: I7986b1caf63158e876295de6d31dbbe05581664d --- .../homepage/ContextualCardManager.java | 23 +++++++++++-------- .../ContextualCardUpdateListener.java | 10 ++++---- .../homepage/ContextualCardsAdapter.java | 8 +++---- .../homepage/PersonalSettingsFragment.java | 6 ++--- .../ConditionContextualCardController.java | 2 +- 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/com/android/settings/homepage/ContextualCardManager.java b/src/com/android/settings/homepage/ContextualCardManager.java index 255f7a218a6..aa2f576ef11 100644 --- a/src/com/android/settings/homepage/ContextualCardManager.java +++ b/src/com/android/settings/homepage/ContextualCardManager.java @@ -28,14 +28,14 @@ import java.util.List; /** * This is a centralized manager of multiple {@link ContextualCardController}. * - * {@link ContextualCardManager} first loads data from {@link CardContentLoader} and gets back a list of - * {@link ContextualCard}. All subclasses of {@link ContextualCardController} are loaded here, which - * will then trigger the {@link ContextualCardController} to load its data and listen to + * {@link ContextualCardManager} first loads data from {@link CardContentLoader} and gets back a + * list of {@link ContextualCard}. All subclasses of {@link ContextualCardController} are loaded + * here, which will then trigger the {@link ContextualCardController} to load its data and listen to * corresponding changes. When every single {@link ContextualCardController} updates its data, the * data will be passed here, then going through some sorting mechanisms. The - * {@link ContextualCardController} will end up building a list of {@link ContextualCard} for {@link - * ContextualCardsAdapter} and {@link BaseAdapter#notifyDataSetChanged()} will be called to get the page - * refreshed. + * {@link ContextualCardController} will end up building a list of {@link ContextualCard} for + * {@link ContextualCardsAdapter} and {@link BaseAdapter#notifyDataSetChanged()} will be called to + * get the page refreshed. */ public class ContextualCardManager implements CardContentLoader.CardContentLoaderListener, ContextualCardUpdateListener { @@ -48,8 +48,8 @@ public class ContextualCardManager implements CardContentLoader.CardContentLoade private final Context mContext; private final ControllerRendererPool mControllerRendererPool; private final Lifecycle mLifecycle; + private final List mContextualCards; - private List mContextualCards; private ContextualCardUpdateListener mListener; @@ -97,7 +97,7 @@ public class ContextualCardManager implements CardContentLoader.CardContentLoade } @Override - public void onHomepageCardUpdated(int cardType, List updateList) { + public void onContextualCardUpdated(int cardType, List updateList) { //TODO(b/112245748): Should implement a DiffCallback. //Keep the old list for comparison. final List prevCards = mContextualCards; @@ -115,13 +115,16 @@ public class ContextualCardManager implements CardContentLoader.CardContentLoade sortCards(); if (mListener != null) { - mListener.onHomepageCardUpdated(ContextualCard.CardType.INVALID, mContextualCards); + mListener.onContextualCardUpdated(ContextualCard.CardType.INVALID, mContextualCards); } } @Override public void onFinishCardLoading(List contextualCards) { - mContextualCards = contextualCards; + mContextualCards.clear(); + if (contextualCards != null) { + mContextualCards.addAll(contextualCards); + } //Force card sorting here in case CardControllers of custom view have nothing to update // for the first launch. diff --git a/src/com/android/settings/homepage/ContextualCardUpdateListener.java b/src/com/android/settings/homepage/ContextualCardUpdateListener.java index 0b454260081..d307a8f563b 100644 --- a/src/com/android/settings/homepage/ContextualCardUpdateListener.java +++ b/src/com/android/settings/homepage/ContextualCardUpdateListener.java @@ -19,13 +19,13 @@ package com.android.settings.homepage; import java.util.List; /** - * When {@link ContextualCardController} detects changes, it will notify the listeners registered. In - * our case, {@link ContextualCardManager} gets noticed. + * When {@link ContextualCardController} detects changes, it will notify the listeners registered. + * In our case, {@link ContextualCardManager} gets noticed. * * After the list of {@link ContextualCard} gets updated in{@link ContextualCardManager}, - * {@link ContextualCardManager} will notify the listeners registered, {@link ContextualCardsAdapter} in this - * case. + * {@link ContextualCardManager} will notify the listeners registered, {@link + * ContextualCardsAdapter} in this case. */ public interface ContextualCardUpdateListener { - void onHomepageCardUpdated(int cardType, List updateList); + void onContextualCardUpdated(int cardType, List updateList); } \ No newline at end of file diff --git a/src/com/android/settings/homepage/ContextualCardsAdapter.java b/src/com/android/settings/homepage/ContextualCardsAdapter.java index 254f4a4b440..e985343cd59 100644 --- a/src/com/android/settings/homepage/ContextualCardsAdapter.java +++ b/src/com/android/settings/homepage/ContextualCardsAdapter.java @@ -37,8 +37,7 @@ public class ContextualCardsAdapter extends RecyclerView.Adapter mContextualCards; + private final List mContextualCards; public ContextualCardsAdapter(Context context, ContextualCardManager manager) { mContext = context; @@ -102,13 +101,14 @@ public class ContextualCardsAdapter extends RecyclerView.Adapter contextualCards) { + public void onContextualCardUpdated(int cardType, List contextualCards) { //TODO(b/112245748): Should implement a DiffCallback so we can use notifyItemChanged() // instead. if (contextualCards == null) { mContextualCards.clear(); } else { - mContextualCards = contextualCards; + mContextualCards.clear(); + mContextualCards.addAll(contextualCards); } notifyDataSetChanged(); } diff --git a/src/com/android/settings/homepage/PersonalSettingsFragment.java b/src/com/android/settings/homepage/PersonalSettingsFragment.java index 69af23be2c8..2eb9663cfda 100644 --- a/src/com/android/settings/homepage/PersonalSettingsFragment.java +++ b/src/com/android/settings/homepage/PersonalSettingsFragment.java @@ -24,7 +24,6 @@ import android.view.View; import android.view.ViewGroup; import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -50,11 +49,10 @@ public class PersonalSettingsFragment extends InstrumentedFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - final View rootView = inflater.inflate(R.layout.settings_homepage, - container, false); + final View rootView = inflater.inflate(R.layout.settings_homepage, container, false); mCardsContainer = rootView.findViewById(R.id.card_container); mLayoutManager = new GridLayoutManager(getActivity(), SPAN_COUNT, - LinearLayoutManager.VERTICAL, false /* reverseLayout */); + GridLayoutManager.VERTICAL, false /* reverseLayout */); mCardsContainer.setLayoutManager(mLayoutManager); mContextualCardsAdapter = new ContextualCardsAdapter(getContext(), mContextualCardManager); mCardsContainer.setAdapter(mContextualCardsAdapter); diff --git a/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java b/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java index eab6099fff3..6701cfd0196 100644 --- a/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java +++ b/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java @@ -58,7 +58,7 @@ public class ConditionContextualCardController implements ContextualCardControll @Override public void onDataUpdated(List cardList) { - mListener.onHomepageCardUpdated(getCardType(), cardList); + mListener.onContextualCardUpdated(getCardType(), cardList); } @Override