Deprecate Params in BrowseFragment and VerticalGridFragment.
Apps should use methods directly on the fragment.
b/15414619
Change-Id: I8aed729ea0393d1f8c558b88cade2870e156fda0
diff --git a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
index 1bb5d82..909346e 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/BrowseFragment.java
@@ -56,10 +56,11 @@
*/
public class BrowseFragment extends Fragment {
+ @Deprecated
public static class Params {
private String mTitle;
private Drawable mBadgeDrawable;
- private int mHeadersState;
+ private int mHeadersState = HEADERS_ENABLED;
/**
* Sets the badge image.
@@ -183,7 +184,12 @@
private ObjectAdapter mAdapter;
+ // TODO: remove Params
private Params mParams;
+
+ private String mTitle;
+ private Drawable mBadgeDrawable;
+ private int mHeadersState = HEADERS_ENABLED;
private int mBrandColor = Color.TRANSPARENT;
private boolean mBrandColorSet;
@@ -229,35 +235,52 @@
BrowseFragment.class.getCanonicalName() + ".headersState";
/**
- * @param args Bundle to use for the arguments, if null a new Bundle will be created.
+ * Create arguments for a browse fragment.
+ * @deprecated Use {@link createArgs(Bundle args, String title, int headersState)}.
*/
+ @Deprecated
public static Bundle createArgs(Bundle args, String title, String badgeUri) {
- return createArgs(args, title, badgeUri, HEADERS_ENABLED);
+ return createArgs(args, title, HEADERS_ENABLED);
}
+ /**
+ * Create arguments for a browse fragment.
+ * @deprecated Use {@link createArgs(Bundle args, String title, int headersState)}.
+ */
+ @Deprecated
public static Bundle createArgs(Bundle args, String title, String badgeUri, int headersState) {
+ return createArgs(args, title, headersState);
+ }
+
+ /**
+ * Create arguments for a browse fragment.
+ */
+ public static Bundle createArgs(Bundle args, String title, int headersState) {
if (args == null) {
args = new Bundle();
}
args.putString(ARG_TITLE, title);
- args.putString(ARG_BADGE_URI, badgeUri);
args.putInt(ARG_HEADERS_STATE, headersState);
return args;
}
/**
* Set browse parameters.
+ * @deprecated Call methods on the fragment directly.
*/
+ @Deprecated
public void setBrowseParams(Params params) {
mParams = params;
- setBadgeDrawable(mParams.mBadgeDrawable);
- setTitle(mParams.mTitle);
- setHeadersState(mParams.mHeadersState);
+ setBadgeDrawable(params.mBadgeDrawable);
+ setTitle(params.mTitle);
+ setHeadersState(params.mHeadersState);
}
/**
* Returns browse parameters.
+ * @deprecated Call methods on the fragment directly.
*/
+ @Deprecated
public Params getBrowseParams() {
return mParams;
}
@@ -506,6 +529,7 @@
.getInteger(R.integer.lb_browse_headers_transition_duration);
readArguments(getArguments());
+
if (mCanShowHeaders && mHeadersBackStackEnabled) {
mWithHeadersBackStackName = LB_HEADERS_BACKSTACK + this;
mBackStackChangedListener = new BackStackListener();
@@ -554,21 +578,19 @@
mBrowseFrame.setOnChildFocusListener(mOnChildFocusListener);
mBrowseTitle = (ViewGroup) root.findViewById(R.id.browse_title_group);
- mBadgeView = (ImageView) mBrowseTitle.findViewById(R.id.browse_badge);
mTitleView = (TextView) mBrowseTitle.findViewById(R.id.browse_title);
+ mTitleView.setText(mTitle);
+ mBadgeView = (ImageView) mBrowseTitle.findViewById(R.id.browse_badge);
+ setBadgeViewImage();
+
mSearchOrbView = (SearchOrbView) mBrowseTitle.findViewById(R.id.browse_orb);
mSearchOrbView.setOrbColor(getSearchAffordanceColor());
if (mExternalOnSearchClickedListener != null) {
mSearchOrbView.setOnOrbClickedListener(mExternalOnSearchClickedListener);
}
- if (mParams != null) {
- setBadgeDrawable(mParams.mBadgeDrawable);
- setTitle(mParams.mTitle);
- setHeadersState(mParams.mHeadersState);
- if (mBrandColorSet) {
- mHeadersFragment.setBackgroundColor(mBrandColor);
- }
+ if (mBrandColorSet) {
+ mHeadersFragment.setBackgroundColor(mBrandColor);
}
mSceneWithTitle = sTransitionHelper.createScene(mBrowseFrame, new Runnable() {
@@ -800,26 +822,28 @@
if (args.containsKey(ARG_TITLE)) {
setTitle(args.getString(ARG_TITLE));
}
-
- if (args.containsKey(ARG_BADGE_URI)) {
- setBadgeUri(args.getString(ARG_BADGE_URI));
- }
-
if (args.containsKey(ARG_HEADERS_STATE)) {
setHeadersState(args.getInt(ARG_HEADERS_STATE));
}
}
- private void setBadgeUri(String badgeUri) {
- // TODO - need a drawable downloader
+ /**
+ * Sets the drawable displayed in the fragment title area.
+ * @param drawable
+ */
+ public void setBadgeDrawable(Drawable drawable) {
+ if (mBadgeDrawable != drawable) {
+ mBadgeDrawable = drawable;
+ setBadgeViewImage();
+ }
}
- private void setBadgeDrawable(Drawable drawable) {
+ private void setBadgeViewImage() {
if (mBadgeView == null) {
return;
}
- mBadgeView.setImageDrawable(drawable);
- if (drawable != null) {
+ mBadgeView.setImageDrawable(mBadgeDrawable);
+ if (mBadgeDrawable != null) {
mBadgeView.setVisibility(View.VISIBLE);
mTitleView.setVisibility(View.GONE);
} else {
@@ -828,33 +852,68 @@
}
}
- private void setTitle(String title) {
+ /**
+ * Returns the badge drawable.
+ */
+ public Drawable getBadgeDrawable() {
+ return mBadgeDrawable;
+ }
+
+ /**
+ * Sets a title for the browse fragment.
+ */
+ public void setTitle(String title) {
+ mTitle = title;
if (mTitleView != null) {
mTitleView.setText(title);
}
}
- private void setHeadersState(int headersState) {
+ /**
+ * Returns the title for the browse fragment.
+ */
+ public String getTitle() {
+ return mTitle;
+ }
+
+ /**
+ * Sets the state for the headers column in the browse fragment.
+ */
+ public void setHeadersState(int headersState) {
+ if (headersState < HEADERS_ENABLED || headersState > HEADERS_DISABLED) {
+ throw new IllegalArgumentException("Invalid headers state: " + headersState);
+ }
if (DEBUG) Log.v(TAG, "setHeadersState " + headersState);
- switch (headersState) {
- case HEADERS_ENABLED:
- mCanShowHeaders = true;
- mShowingHeaders = true;
- break;
- case HEADERS_HIDDEN:
- mCanShowHeaders = true;
- mShowingHeaders = false;
- break;
- case HEADERS_DISABLED:
- mCanShowHeaders = false;
- mShowingHeaders = false;
- break;
- default:
- Log.w(TAG, "Unknown headers state: " + headersState);
- break;
+
+ if (headersState != mHeadersState) {
+ mHeadersState = headersState;
+ switch (headersState) {
+ case HEADERS_ENABLED:
+ mCanShowHeaders = true;
+ mShowingHeaders = true;
+ break;
+ case HEADERS_HIDDEN:
+ mCanShowHeaders = true;
+ mShowingHeaders = false;
+ break;
+ case HEADERS_DISABLED:
+ mCanShowHeaders = false;
+ mShowingHeaders = false;
+ break;
+ default:
+ Log.w(TAG, "Unknown headers state: " + headersState);
+ break;
+ }
+ if (mHeadersFragment != null) {
+ mHeadersFragment.setHeadersGone(!mCanShowHeaders);
+ }
}
- if (mHeadersFragment != null) {
- mHeadersFragment.setHeadersGone(!mCanShowHeaders);
- }
+ }
+
+ /**
+ * Returns the state for the headers column in the browse fragment.
+ */
+ public int getHeadersState() {
+ return mHeadersState;
}
}
diff --git a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
index 4de12cf..f364307 100644
--- a/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
+++ b/v17/leanback/src/android/support/v17/leanback/app/VerticalGridFragment.java
@@ -40,7 +40,11 @@
private static final String TAG = "VerticalGridFragment";
private static boolean DEBUG = false;
+ // TODO: remove Params
private Params mParams;
+
+ private String mTitle;
+ private Drawable mBadgeDrawable;
private ObjectAdapter mAdapter;
private VerticalGridPresenter mGridPresenter;
private VerticalGridPresenter.ViewHolder mGridViewHolder;
@@ -61,6 +65,7 @@
private Object mSceneWithTitle;
private Object mSceneWithoutTitle;
+ @Deprecated
public static class Params {
private String mTitle;
private Drawable mBadgeDrawable;
@@ -96,7 +101,9 @@
/**
* Set fragment parameters.
+ * @deprecated Use methods on the fragment directly.
*/
+ @Deprecated
public void setParams(Params params) {
mParams = params;
setBadgeDrawable(mParams.mBadgeDrawable);
@@ -105,13 +112,49 @@
/**
* Returns fragment parameters.
+ * @deprecated Use methods on the fragment directly.
*/
+ @Deprecated
public Params getParams() {
return mParams;
}
/**
- * Set the grid presenter.
+ * Sets the badge drawable displayed in the title area.
+ */
+ public void setBadgeDrawable(Drawable drawable) {
+ if (drawable != mBadgeDrawable) {
+ mBadgeDrawable = drawable;
+ setBadgeViewImage();
+ }
+ }
+
+ /**
+ * Returns the badge drawable.
+ */
+ public Drawable getBadgeDrawable() {
+ return mBadgeDrawable;
+ }
+
+ /**
+ * Sets a title for the fragment.
+ */
+ public void setTitle(String title) {
+ mTitle = title;
+ if (mTitleView != null) {
+ mTitleView.setText(mTitle);
+ }
+ }
+
+ /**
+ * Returns the title for the fragment.
+ */
+ public String getTitle() {
+ return mTitle;
+ }
+
+ /**
+ * Sets the grid presenter.
*/
public void setGridPresenter(VerticalGridPresenter gridPresenter) {
if (gridPresenter == null) {
@@ -215,21 +258,17 @@
}
}
- private void setBadgeDrawable(Drawable drawable) {
+ private void setBadgeViewImage() {
if (mBadgeView == null) {
return;
}
- mBadgeView.setImageDrawable(drawable);
- if (drawable != null) {
+ mBadgeView.setImageDrawable(mBadgeDrawable);
+ if (mBadgeDrawable != null) {
mBadgeView.setVisibility(View.VISIBLE);
+ mTitleView.setVisibility(View.GONE);
} else {
mBadgeView.setVisibility(View.GONE);
- }
- }
-
- private void setTitle(String title) {
- if (mTitleView != null) {
- mTitleView.setText(title);
+ mTitleView.setVisibility(View.VISIBLE);
}
}
@@ -247,10 +286,8 @@
mSearchOrbView.setOnOrbClickedListener(mExternalOnSearchClickedListener);
}
- if (mParams != null) {
- setBadgeDrawable(mParams.mBadgeDrawable);
- setTitle(mParams.mTitle);
- }
+ setBadgeViewImage();
+ mTitleView.setText(mTitle);
mSceneWithTitle = sTransitionHelper.createScene(root, new Runnable() {
@Override