Loading core/java/com/tmobile/widget/Filmstrip.java 0 → 100644 +123 −0 Original line number Diff line number Diff line package com.tmobile.widget; import com.android.internal.R; import android.content.Context; import android.content.res.TypedArray; import android.database.DataSetObserver; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.SpinnerAdapter; public class Filmstrip extends Gallery { private Drawable mSelector; public Filmstrip(Context context) { this(context, null); } public Filmstrip(Context context, AttributeSet attrs) { this(context, attrs, R.attr.filmstripStyle); } public Filmstrip(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AbsListView, defStyle, 0); Drawable selector = a.getDrawableWithContext(context, R.styleable.AbsListView_listSelector); if (selector != null) { setSelector(selector); } a.recycle(); } public void setSelector(Drawable selector) { if (mSelector != selector) { if (mSelector == null) { if (getAdapter() != null) { throw new UnsupportedOperationException("Cannot currently set selector after an adapter has been assigned. Please fix."); } } mSelector = selector; requestLayout(); } } @Override public void setAdapter(SpinnerAdapter adapter) { if (mSelector != null && adapter != null) { super.setAdapter(new FilmstripAdapter(adapter)); } else { super.setAdapter(adapter); } } private class FilmstripAdapter extends BaseAdapter { private final SpinnerAdapter mBase; public FilmstripAdapter(SpinnerAdapter adapter) { mBase = adapter; } SpinnerAdapter getBaseAdapter() { return mBase; } public int getCount() { return mBase.getCount(); } public Object getItem(int position) { return mBase.getItem(position); } public long getItemId(int position) { return mBase.getItemId(position); } public View getView(int position, View convertView, ViewGroup parent) { View view = mBase.getView(position, convertView, parent); if (convertView == null && view.getBackground() == null && mSelector != null) { view.setBackgroundDrawable(mSelector); } return view; } public View getDropDownView(int position, View convertView, ViewGroup parent) { return mBase.getDropDownView(position, convertView, parent); } public int getItemViewType(int position) { return mBase.getItemViewType(position); } public int getViewTypeCount() { return mBase.getViewTypeCount(); } public boolean hasStableIds() { return mBase.hasStableIds(); } public boolean isEmpty() { return mBase.isEmpty(); } public void registerDataSetObserver(DataSetObserver observer) { mBase.registerDataSetObserver(observer); } public void unregisterDataSetObserver(DataSetObserver observer) { mBase.unregisterDataSetObserver(observer); } } } core/res/res/values/attrs.xml +3 −1 Original line number Diff line number Diff line Loading @@ -358,8 +358,10 @@ <attr name="horizontalScrollViewStyle" format="reference" /> <!-- Default Spinner style. --> <attr name="spinnerStyle" format="reference" /> <!-- Default carouselWidget style. --> <!-- Default CarouselWidget style. --> <attr name="carouselWidgetStyle" format="reference" /> <!-- Default Filmstrip style. --> <attr name="filmstripStyle" format="reference" /> <!-- Default Star style. --> <attr name="starStyle" format="reference" /> <!-- Default TabWidget style. --> Loading core/res/res/values/styles.xml +4 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,10 @@ <item name="android:frameSelectedBackground">@color/black</item> </style> <style name="Widget.Filmstrip" parent="Widget.Gallery"> <item name="android:spacing">0px</item> </style> <style name="Widget.TextView.PopupMenu"> <item name="android:clickable">true</item> <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.PopupMenu</item> Loading core/res/res/values/themes.xml +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ <item name="horizontalScrollViewStyle">@android:style/Widget.HorizontalScrollView</item> <item name="spinnerStyle">@android:style/Widget.Spinner</item> <item name="carouselWidgetStyle">@android:style/Widget.CarouselWidget</item> <item name="filmstripStyle">@android:style/Widget.Filmstrip</item> <item name="starStyle">@android:style/Widget.CompoundButton.Star</item> <item name="tabWidgetStyle">@android:style/Widget.TabWidget</item> <item name="textViewStyle">@android:style/Widget.TextView</item> Loading Loading
core/java/com/tmobile/widget/Filmstrip.java 0 → 100644 +123 −0 Original line number Diff line number Diff line package com.tmobile.widget; import com.android.internal.R; import android.content.Context; import android.content.res.TypedArray; import android.database.DataSetObserver; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Gallery; import android.widget.SpinnerAdapter; public class Filmstrip extends Gallery { private Drawable mSelector; public Filmstrip(Context context) { this(context, null); } public Filmstrip(Context context, AttributeSet attrs) { this(context, attrs, R.attr.filmstripStyle); } public Filmstrip(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AbsListView, defStyle, 0); Drawable selector = a.getDrawableWithContext(context, R.styleable.AbsListView_listSelector); if (selector != null) { setSelector(selector); } a.recycle(); } public void setSelector(Drawable selector) { if (mSelector != selector) { if (mSelector == null) { if (getAdapter() != null) { throw new UnsupportedOperationException("Cannot currently set selector after an adapter has been assigned. Please fix."); } } mSelector = selector; requestLayout(); } } @Override public void setAdapter(SpinnerAdapter adapter) { if (mSelector != null && adapter != null) { super.setAdapter(new FilmstripAdapter(adapter)); } else { super.setAdapter(adapter); } } private class FilmstripAdapter extends BaseAdapter { private final SpinnerAdapter mBase; public FilmstripAdapter(SpinnerAdapter adapter) { mBase = adapter; } SpinnerAdapter getBaseAdapter() { return mBase; } public int getCount() { return mBase.getCount(); } public Object getItem(int position) { return mBase.getItem(position); } public long getItemId(int position) { return mBase.getItemId(position); } public View getView(int position, View convertView, ViewGroup parent) { View view = mBase.getView(position, convertView, parent); if (convertView == null && view.getBackground() == null && mSelector != null) { view.setBackgroundDrawable(mSelector); } return view; } public View getDropDownView(int position, View convertView, ViewGroup parent) { return mBase.getDropDownView(position, convertView, parent); } public int getItemViewType(int position) { return mBase.getItemViewType(position); } public int getViewTypeCount() { return mBase.getViewTypeCount(); } public boolean hasStableIds() { return mBase.hasStableIds(); } public boolean isEmpty() { return mBase.isEmpty(); } public void registerDataSetObserver(DataSetObserver observer) { mBase.registerDataSetObserver(observer); } public void unregisterDataSetObserver(DataSetObserver observer) { mBase.unregisterDataSetObserver(observer); } } }
core/res/res/values/attrs.xml +3 −1 Original line number Diff line number Diff line Loading @@ -358,8 +358,10 @@ <attr name="horizontalScrollViewStyle" format="reference" /> <!-- Default Spinner style. --> <attr name="spinnerStyle" format="reference" /> <!-- Default carouselWidget style. --> <!-- Default CarouselWidget style. --> <attr name="carouselWidgetStyle" format="reference" /> <!-- Default Filmstrip style. --> <attr name="filmstripStyle" format="reference" /> <!-- Default Star style. --> <attr name="starStyle" format="reference" /> <!-- Default TabWidget style. --> Loading
core/res/res/values/styles.xml +4 −0 Original line number Diff line number Diff line Loading @@ -385,6 +385,10 @@ <item name="android:frameSelectedBackground">@color/black</item> </style> <style name="Widget.Filmstrip" parent="Widget.Gallery"> <item name="android:spacing">0px</item> </style> <style name="Widget.TextView.PopupMenu"> <item name="android:clickable">true</item> <item name="android:textAppearance">@style/TextAppearance.Widget.TextView.PopupMenu</item> Loading
core/res/res/values/themes.xml +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ <item name="horizontalScrollViewStyle">@android:style/Widget.HorizontalScrollView</item> <item name="spinnerStyle">@android:style/Widget.Spinner</item> <item name="carouselWidgetStyle">@android:style/Widget.CarouselWidget</item> <item name="filmstripStyle">@android:style/Widget.Filmstrip</item> <item name="starStyle">@android:style/Widget.CompoundButton.Star</item> <item name="tabWidgetStyle">@android:style/Widget.TabWidget</item> <item name="textViewStyle">@android:style/Widget.TextView</item> Loading