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
diff --git a/src/com/android/settings/homepage/ContextualCardManager.java b/src/com/android/settings/homepage/ContextualCardManager.java
index 255f7a2..aa2f576 100644
--- a/src/com/android/settings/homepage/ContextualCardManager.java
+++ b/src/com/android/settings/homepage/ContextualCardManager.java
@@ -28,14 +28,14 @@
/**
* 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 @@
private final Context mContext;
private final ControllerRendererPool mControllerRendererPool;
private final Lifecycle mLifecycle;
+ private final List<ContextualCard> mContextualCards;
- private List<ContextualCard> mContextualCards;
private ContextualCardUpdateListener mListener;
@@ -97,7 +97,7 @@
}
@Override
- public void onHomepageCardUpdated(int cardType, List<ContextualCard> updateList) {
+ public void onContextualCardUpdated(int cardType, List<ContextualCard> updateList) {
//TODO(b/112245748): Should implement a DiffCallback.
//Keep the old list for comparison.
final List<ContextualCard> prevCards = mContextualCards;
@@ -115,13 +115,16 @@
sortCards();
if (mListener != null) {
- mListener.onHomepageCardUpdated(ContextualCard.CardType.INVALID, mContextualCards);
+ mListener.onContextualCardUpdated(ContextualCard.CardType.INVALID, mContextualCards);
}
}
@Override
public void onFinishCardLoading(List<ContextualCard> 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 0b45426..d307a8f 100644
--- a/src/com/android/settings/homepage/ContextualCardUpdateListener.java
+++ b/src/com/android/settings/homepage/ContextualCardUpdateListener.java
@@ -19,13 +19,13 @@
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<ContextualCard> updateList);
+ void onContextualCardUpdated(int cardType, List<ContextualCard> 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 254f4a4..e985343 100644
--- a/src/com/android/settings/homepage/ContextualCardsAdapter.java
+++ b/src/com/android/settings/homepage/ContextualCardsAdapter.java
@@ -37,8 +37,7 @@
private final Context mContext;
private final ControllerRendererPool mControllerRendererPool;
-
- private List<ContextualCard> mContextualCards;
+ private final List<ContextualCard> mContextualCards;
public ContextualCardsAdapter(Context context, ContextualCardManager manager) {
mContext = context;
@@ -102,13 +101,14 @@
}
@Override
- public void onHomepageCardUpdated(int cardType, List<ContextualCard> contextualCards) {
+ public void onContextualCardUpdated(int cardType, List<ContextualCard> 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 69af23b..2eb9663 100644
--- a/src/com/android/settings/homepage/PersonalSettingsFragment.java
+++ b/src/com/android/settings/homepage/PersonalSettingsFragment.java
@@ -24,7 +24,6 @@
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 @@
@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 eab6099..6701cfd 100644
--- a/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java
+++ b/src/com/android/settings/homepage/conditional/ConditionContextualCardController.java
@@ -58,7 +58,7 @@
@Override
public void onDataUpdated(List<ContextualCard> cardList) {
- mListener.onHomepageCardUpdated(getCardType(), cardList);
+ mListener.onContextualCardUpdated(getCardType(), cardList);
}
@Override