summaryrefslogtreecommitdiff
path: root/library/main/src/com/android/setupwizardlib/items/Item.java
diff options
context:
space:
mode:
Diffstat (limited to 'library/main/src/com/android/setupwizardlib/items/Item.java')
-rw-r--r--library/main/src/com/android/setupwizardlib/items/Item.java284
1 files changed, 141 insertions, 143 deletions
diff --git a/library/main/src/com/android/setupwizardlib/items/Item.java b/library/main/src/com/android/setupwizardlib/items/Item.java
index fc8823e..c0d49d3 100644
--- a/library/main/src/com/android/setupwizardlib/items/Item.java
+++ b/library/main/src/com/android/setupwizardlib/items/Item.java
@@ -23,7 +23,6 @@ import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
-
import com.android.setupwizardlib.R;
/**
@@ -32,146 +31,145 @@ import com.android.setupwizardlib.R;
*/
public class Item extends AbstractItem {
- private boolean mEnabled = true;
- private Drawable mIcon;
- private int mLayoutRes;
- private CharSequence mSummary;
- private CharSequence mTitle;
- private boolean mVisible = true;
-
- public Item() {
- super();
- mLayoutRes = getDefaultLayoutResource();
- }
-
- public Item(Context context, AttributeSet attrs) {
- super(context, attrs);
- TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SuwItem);
- mEnabled = a.getBoolean(R.styleable.SuwItem_android_enabled, true);
- mIcon = a.getDrawable(R.styleable.SuwItem_android_icon);
- mTitle = a.getText(R.styleable.SuwItem_android_title);
- mSummary = a.getText(R.styleable.SuwItem_android_summary);
- mLayoutRes = a.getResourceId(R.styleable.SuwItem_android_layout,
- getDefaultLayoutResource());
- mVisible = a.getBoolean(R.styleable.SuwItem_android_visible, true);
- a.recycle();
- }
-
- protected int getDefaultLayoutResource() {
- return R.layout.suw_items_default;
- }
-
- public void setEnabled(boolean enabled) {
- mEnabled = enabled;
- notifyItemChanged();
- }
-
- @Override
- public int getCount() {
- return isVisible() ? 1 : 0;
- }
-
- @Override
- public boolean isEnabled() {
- return mEnabled;
- }
-
- public void setIcon(Drawable icon) {
- mIcon = icon;
- notifyItemChanged();
- }
-
- public Drawable getIcon() {
- return mIcon;
- }
-
- public void setLayoutResource(int layoutResource) {
- mLayoutRes = layoutResource;
- notifyItemChanged();
- }
-
- @Override
- public int getLayoutResource() {
- return mLayoutRes;
- }
-
- public void setSummary(CharSequence summary) {
- mSummary = summary;
- notifyItemChanged();
- }
-
- public CharSequence getSummary() {
- return mSummary;
- }
-
- public void setTitle(CharSequence title) {
- mTitle = title;
- notifyItemChanged();
- }
-
- public CharSequence getTitle() {
- return mTitle;
- }
-
- public void setVisible(boolean visible) {
- if (mVisible == visible) {
- return;
- }
- mVisible = visible;
- if (!visible) {
- notifyItemRangeRemoved(0, 1);
- } else {
- notifyItemRangeInserted(0, 1);
- }
- }
-
- public boolean isVisible() {
- return mVisible;
- }
-
- @Override
- public int getViewId() {
- return getId();
- }
-
- @Override
- public void onBindView(View view) {
- TextView label = (TextView) view.findViewById(R.id.suw_items_title);
- label.setText(getTitle());
-
- TextView summaryView = (TextView) view.findViewById(R.id.suw_items_summary);
- CharSequence summary = getSummary();
- if (summary != null && summary.length() > 0) {
- summaryView.setText(summary);
- summaryView.setVisibility(View.VISIBLE);
- } else {
- summaryView.setVisibility(View.GONE);
- }
-
- final View iconContainer = view.findViewById(R.id.suw_items_icon_container);
- final Drawable icon = getIcon();
- if (icon != null) {
- final ImageView iconView = (ImageView) view.findViewById(R.id.suw_items_icon);
- // Set the image drawable to null before setting the state and level to avoid affecting
- // any recycled drawable in the ImageView
- iconView.setImageDrawable(null);
- onMergeIconStateAndLevels(iconView, icon);
- iconView.setImageDrawable(icon);
- iconContainer.setVisibility(View.VISIBLE);
- } else {
- iconContainer.setVisibility(View.GONE);
- }
-
- view.setId(getViewId());
- }
-
- /**
- * Copies state and level information from {@link #getIcon()} to the currently bound view's
- * ImageView. Subclasses can override this method to change whats being copied from the icon
- * to the ImageView.
- */
- protected void onMergeIconStateAndLevels(ImageView iconView, Drawable icon) {
- iconView.setImageState(icon.getState(), false /* merge */);
- iconView.setImageLevel(icon.getLevel());
- }
+ private boolean enabled = true;
+ private Drawable icon;
+ private int layoutRes;
+ private CharSequence summary;
+ private CharSequence title;
+ private boolean visible = true;
+
+ public Item() {
+ super();
+ layoutRes = getDefaultLayoutResource();
+ }
+
+ public Item(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SuwItem);
+ enabled = a.getBoolean(R.styleable.SuwItem_android_enabled, true);
+ icon = a.getDrawable(R.styleable.SuwItem_android_icon);
+ title = a.getText(R.styleable.SuwItem_android_title);
+ summary = a.getText(R.styleable.SuwItem_android_summary);
+ layoutRes = a.getResourceId(R.styleable.SuwItem_android_layout, getDefaultLayoutResource());
+ visible = a.getBoolean(R.styleable.SuwItem_android_visible, true);
+ a.recycle();
+ }
+
+ protected int getDefaultLayoutResource() {
+ return R.layout.suw_items_default;
+ }
+
+ public void setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ notifyItemChanged();
+ }
+
+ @Override
+ public int getCount() {
+ return isVisible() ? 1 : 0;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ public void setIcon(Drawable icon) {
+ this.icon = icon;
+ notifyItemChanged();
+ }
+
+ public Drawable getIcon() {
+ return icon;
+ }
+
+ public void setLayoutResource(int layoutResource) {
+ layoutRes = layoutResource;
+ notifyItemChanged();
+ }
+
+ @Override
+ public int getLayoutResource() {
+ return layoutRes;
+ }
+
+ public void setSummary(CharSequence summary) {
+ this.summary = summary;
+ notifyItemChanged();
+ }
+
+ public CharSequence getSummary() {
+ return summary;
+ }
+
+ public void setTitle(CharSequence title) {
+ this.title = title;
+ notifyItemChanged();
+ }
+
+ public CharSequence getTitle() {
+ return title;
+ }
+
+ public void setVisible(boolean visible) {
+ if (this.visible == visible) {
+ return;
+ }
+ this.visible = visible;
+ if (!visible) {
+ notifyItemRangeRemoved(0, 1);
+ } else {
+ notifyItemRangeInserted(0, 1);
+ }
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ @Override
+ public int getViewId() {
+ return getId();
+ }
+
+ @Override
+ public void onBindView(View view) {
+ TextView label = (TextView) view.findViewById(R.id.suw_items_title);
+ label.setText(getTitle());
+
+ TextView summaryView = (TextView) view.findViewById(R.id.suw_items_summary);
+ CharSequence summary = getSummary();
+ if (summary != null && summary.length() > 0) {
+ summaryView.setText(summary);
+ summaryView.setVisibility(View.VISIBLE);
+ } else {
+ summaryView.setVisibility(View.GONE);
+ }
+
+ final View iconContainer = view.findViewById(R.id.suw_items_icon_container);
+ final Drawable icon = getIcon();
+ if (icon != null) {
+ final ImageView iconView = (ImageView) view.findViewById(R.id.suw_items_icon);
+ // Set the image drawable to null before setting the state and level to avoid affecting
+ // any recycled drawable in the ImageView
+ iconView.setImageDrawable(null);
+ onMergeIconStateAndLevels(iconView, icon);
+ iconView.setImageDrawable(icon);
+ iconContainer.setVisibility(View.VISIBLE);
+ } else {
+ iconContainer.setVisibility(View.GONE);
+ }
+
+ view.setId(getViewId());
+ }
+
+ /**
+ * Copies state and level information from {@link #getIcon()} to the currently bound view's
+ * ImageView. Subclasses can override this method to change whats being copied from the icon to
+ * the ImageView.
+ */
+ protected void onMergeIconStateAndLevels(ImageView iconView, Drawable icon) {
+ iconView.setImageState(icon.getState(), false /* merge */);
+ iconView.setImageLevel(icon.getLevel());
+ }
}