Clean up the main architecture of Contextual Settings Homepage.

- Add lifecycle observer in HomepageManager.
- Rename some variables.

Bug: 111676964
Test: robotests
Change-Id: Ic91c53f2c1622d602b3edc664a06a13aa6945f47
This commit is contained in:
Emily Chuang
2018-08-28 18:25:20 +08:00
parent 937b8172b2
commit ae90591749
5 changed files with 32 additions and 30 deletions

View File

@@ -56,7 +56,8 @@ public class HomepageAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int cardType) { public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int cardType) {
final HomepageCardRenderer renderer = mControllerRendererPool.getRenderer(mContext, cardType); final HomepageCardRenderer renderer = mControllerRendererPool.getRenderer(mContext,
cardType);
final int viewType = renderer.getViewType(); final int viewType = renderer.getViewType();
final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false); final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false);
@@ -66,7 +67,8 @@ public class HomepageAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
@Override @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final int cardType = mHomepageCards.get(position).getCardType(); final int cardType = mHomepageCards.get(position).getCardType();
final HomepageCardRenderer renderer = mControllerRendererPool.getRenderer(mContext, cardType); final HomepageCardRenderer renderer = mControllerRendererPool.getRenderer(mContext,
cardType);
renderer.bindView(holder, mHomepageCards.get(position)); renderer.bindView(holder, mHomepageCards.get(position));
} }

View File

@@ -44,7 +44,7 @@ public class HomepageCard {
private final String mName; private final String mName;
@CardType @CardType
private final int mCardType; private final int mCardType;
private final double mScore; private final double mRankingScore;
private final String mSliceUri; private final String mSliceUri;
private final int mCategory; private final int mCategory;
private final String mLocalizedToLocale; private final String mLocalizedToLocale;
@@ -58,8 +58,8 @@ public class HomepageCard {
private final int mIconResId; private final int mIconResId;
private final String mCardAction; private final String mCardAction;
private final long mExpireTimeMS; private final long mExpireTimeMS;
private final Drawable mDrawable; private final Drawable mIconDrawable;
private final boolean mSupportHalfWidth; private final boolean mIsHalfWidth;
String getName() { String getName() {
return mName; return mName;
@@ -69,8 +69,8 @@ public class HomepageCard {
return mCardType; return mCardType;
} }
double getScore() { double getRankingScore() {
return mScore; return mRankingScore;
} }
String getTextSliceUri() { String getTextSliceUri() {
@@ -129,18 +129,18 @@ public class HomepageCard {
return mExpireTimeMS; return mExpireTimeMS;
} }
Drawable getDrawable() { Drawable getIconDrawable() {
return mDrawable; return mIconDrawable;
} }
boolean getSupportHalfWidth() { boolean isHalfWidth() {
return mSupportHalfWidth; return mIsHalfWidth;
} }
HomepageCard(Builder builder) { HomepageCard(Builder builder) {
mName = builder.mName; mName = builder.mName;
mCardType = builder.mCardType; mCardType = builder.mCardType;
mScore = builder.mScore; mRankingScore = builder.mRankingScore;
mSliceUri = builder.mSliceUri; mSliceUri = builder.mSliceUri;
mCategory = builder.mCategory; mCategory = builder.mCategory;
mLocalizedToLocale = builder.mLocalizedToLocale; mLocalizedToLocale = builder.mLocalizedToLocale;
@@ -154,8 +154,8 @@ public class HomepageCard {
mIconResId = builder.mIconResId; mIconResId = builder.mIconResId;
mCardAction = builder.mCardAction; mCardAction = builder.mCardAction;
mExpireTimeMS = builder.mExpireTimeMS; mExpireTimeMS = builder.mExpireTimeMS;
mDrawable = builder.mDrawable; mIconDrawable = builder.mIconDrawable;
mSupportHalfWidth = builder.mSupportHalfWidth; mIsHalfWidth = builder.mIsHalfWidth;
} }
@Override @Override
@@ -182,7 +182,7 @@ public class HomepageCard {
static class Builder { static class Builder {
private String mName; private String mName;
private int mCardType; private int mCardType;
private double mScore; private double mRankingScore;
private String mSliceUri; private String mSliceUri;
private int mCategory; private int mCategory;
private String mLocalizedToLocale; private String mLocalizedToLocale;
@@ -196,8 +196,8 @@ public class HomepageCard {
private int mIconResId; private int mIconResId;
private String mCardAction; private String mCardAction;
private long mExpireTimeMS; private long mExpireTimeMS;
private Drawable mDrawable; private Drawable mIconDrawable;
private boolean mSupportHalfWidth; private boolean mIsHalfWidth;
public Builder setName(String name) { public Builder setName(String name) {
mName = name; mName = name;
@@ -209,8 +209,8 @@ public class HomepageCard {
return this; return this;
} }
public Builder setScore(double score) { public Builder setRankingScore(double rankingScore) {
mScore = score; mRankingScore = rankingScore;
return this; return this;
} }
@@ -279,13 +279,13 @@ public class HomepageCard {
return this; return this;
} }
public Builder setDrawable(Drawable drawable) { public Builder setIconDrawable(Drawable iconDrawable) {
mDrawable = drawable; mIconDrawable = iconDrawable;
return this; return this;
} }
public Builder setSupportHalfWidth(boolean supportHalfWidth) { public Builder setIsHalfWidth(boolean isHalfWidth) {
mSupportHalfWidth = supportHalfWidth; mIsHalfWidth = isHalfWidth;
return this; return this;
} }

View File

@@ -16,11 +16,10 @@
package com.android.settings.homepage; package com.android.settings.homepage;
import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.List; import java.util.List;
//TODO(b/111821137): add test cases //TODO(b/111821137): add test cases
/** /**
* Data controller for {@link HomepageCard}. * Data controller for {@link HomepageCard}.
*/ */
@@ -39,7 +38,5 @@ public interface HomepageCardController {
void onActionClick(HomepageCard card); void onActionClick(HomepageCard card);
void setLifecycle(Lifecycle lifecycle);
void setHomepageCardUpdateListener(HomepageCardUpdateListener listener); void setHomepageCardUpdateListener(HomepageCardUpdateListener listener);
} }

View File

@@ -44,10 +44,8 @@ public class HomepageCardLookupTable {
} }
private static final Set<HomepageMapping> LOOKUP_TABLE = new TreeSet<HomepageMapping>() { private static final Set<HomepageMapping> LOOKUP_TABLE = new TreeSet<HomepageMapping>() {
{
//add(new HomepageMapping(CardType.CONDITIONAL, ConditionHomepageCardController.class, //add(new HomepageMapping(CardType.CONDITIONAL, ConditionHomepageCardController.class,
// ConditionHomepageCardRenderer.class)); // ConditionHomepageCardRenderer.class));
}
}; };
public static Class<? extends HomepageCardController> getCardControllerClass( public static Class<? extends HomepageCardController> getCardControllerClass(

View File

@@ -20,6 +20,7 @@ import android.content.Context;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -82,7 +83,11 @@ public class HomepageManager implements CardContentLoader.CardContentLoaderListe
cardType); cardType);
if (controller != null) { if (controller != null) {
controller.setHomepageCardUpdateListener(this); controller.setHomepageCardUpdateListener(this);
controller.setLifecycle(mLifecycle); if (controller instanceof LifecycleObserver) {
if (mLifecycle != null) {
mLifecycle.addObserver((LifecycleObserver) controller);
}
}
} }
} }