Bug 1058574 - Remove package level access to class variables within the tabs package (r=lucasr)
--- a/mobile/android/base/tabs/TabsGridLayout.java
+++ b/mobile/android/base/tabs/TabsGridLayout.java
@@ -50,43 +50,43 @@ class TabsGridLayout extends GridView
mTabsAdapter = new TabsGridLayoutAdapter(mContext);
setAdapter(mTabsAdapter);
setRecyclerListener(new RecyclerListener() {
@Override
public void onMovedToScrapHeap(View view) {
TabsLayoutItemView item = (TabsLayoutItemView) view;
- item.thumbnail.setImageDrawable(null);
+ item.setThumbnail(null);
}
});
}
private class TabsGridLayoutAdapter extends TabsLayoutAdapter {
final private Button.OnClickListener mCloseClickListener;
final private View.OnClickListener mSelectClickListener;
public TabsGridLayoutAdapter (Context context) {
super(context);
mCloseClickListener = new Button.OnClickListener() {
@Override
public void onClick(View v) {
TabsLayoutItemView itemView = (TabsLayoutItemView) v.getTag();
- Tab tab = Tabs.getInstance().getTab(itemView.id);
+ Tab tab = Tabs.getInstance().getTab(itemView.getTabId());
Tabs.getInstance().closeTab(tab);
}
};
mSelectClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
TabsLayoutItemView tab = (TabsLayoutItemView) v;
- Tabs.getInstance().selectTab(tab.id);
+ Tabs.getInstance().selectTab(tab.getTabId());
autoHidePanel();
}
};
}
@Override
TabsLayoutItemView newView(int position, ViewGroup parent) {
final TabsLayoutItemView item = super.newView(position, parent);
--- a/mobile/android/base/tabs/TabsLayoutItemView.java
+++ b/mobile/android/base/tabs/TabsLayoutItemView.java
@@ -19,23 +19,21 @@ import android.widget.LinearLayout;
import android.widget.TextView;
public class TabsLayoutItemView extends LinearLayout
implements Checkable {
private static final String LOGTAG = "Gecko" + TabsLayoutItemView.class.getSimpleName();
private static final int[] STATE_CHECKED = { android.R.attr.state_checked };
private boolean mChecked;
- // yeah, it's a bit nasty having two different styles for the class members,
- // this'll be fixed once bug 1058574 is addressed
- int id;
- TextView title;
- ImageView thumbnail;
- ImageButton close;
- TabThumbnailWrapper thumbnailWrapper;
+ private int mTabId;
+ private TextView mTitle;
+ private ImageView mThumbnail;
+ private ImageButton mCloseButton;
+ private TabThumbnailWrapper mThumbnailWrapper;
public TabsLayoutItemView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public int[] onCreateDrawableState(int extraSpace) {
final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
@@ -71,40 +69,52 @@ public class TabsLayoutItemView extends
}
@Override
public void toggle() {
mChecked = !mChecked;
}
public void setCloseOnClickListener(OnClickListener mOnClickListener) {
- close.setOnClickListener(mOnClickListener);
+ mCloseButton.setOnClickListener(mOnClickListener);
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
- title = (TextView) findViewById(R.id.title);
- thumbnail = (ImageView) findViewById(R.id.thumbnail);
- close = (ImageButton) findViewById(R.id.close);
- thumbnailWrapper = (TabThumbnailWrapper) findViewById(R.id.wrapper);
+ mTitle = (TextView) findViewById(R.id.title);
+ mThumbnail = (ImageView) findViewById(R.id.thumbnail);
+ mCloseButton = (ImageButton) findViewById(R.id.close);
+ mThumbnailWrapper = (TabThumbnailWrapper) findViewById(R.id.wrapper);
}
protected void assignValues(Tab tab) {
if (tab == null) {
return;
}
- id = tab.getId();
+ mTabId = tab.getId();
Drawable thumbnailImage = tab.getThumbnail();
if (thumbnailImage != null) {
- thumbnail.setImageDrawable(thumbnailImage);
+ mThumbnail.setImageDrawable(thumbnailImage);
} else {
- thumbnail.setImageResource(R.drawable.tab_thumbnail_default);
+ mThumbnail.setImageResource(R.drawable.tab_thumbnail_default);
+ }
+ if (mThumbnailWrapper != null) {
+ mThumbnailWrapper.setRecording(tab.isRecording());
}
- if (thumbnailWrapper != null) {
- thumbnailWrapper.setRecording(tab.isRecording());
- }
- title.setText(tab.getDisplayTitle());
- close.setTag(this);
+ mTitle.setText(tab.getDisplayTitle());
+ mCloseButton.setTag(this);
+ }
+
+ public int getTabId() {
+ return mTabId;
+ }
+
+ public void setThumbnail(Drawable thumbnail) {
+ mThumbnail.setImageDrawable(thumbnail);
+ }
+
+ public void setCloseVisibile(boolean visible) {
+ mCloseButton.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
}
}
--- a/mobile/android/base/tabs/TabsListLayout.java
+++ b/mobile/android/base/tabs/TabsListLayout.java
@@ -75,18 +75,18 @@ class TabsListLayout extends TwoWayView
mSwipeListener = new TabSwipeGestureListener();
setOnTouchListener(mSwipeListener);
setOnScrollListener(mSwipeListener.makeScrollListener());
setRecyclerListener(new RecyclerListener() {
@Override
public void onMovedToScrapHeap(View view) {
TabsLayoutItemView item = (TabsLayoutItemView) view;
- item.thumbnail.setImageDrawable(null);
- item.close.setVisibility(View.VISIBLE);
+ item.setThumbnail(null);
+ item.setCloseVisibile(true);
}
});
}
private class TabsListLayoutAdapter extends TabsLayoutAdapter {
private Button.OnClickListener mCloseOnClickListener;
public TabsListLayoutAdapter (Context context) {
super(context);
@@ -355,17 +355,17 @@ class TabsListLayout extends TwoWayView
PropertyAnimator animator = new PropertyAnimator(ANIMATION_DURATION);
final boolean isVertical = isVertical();
if (isVertical)
animator.attach(view, Property.HEIGHT, 1);
else
animator.attach(view, Property.WIDTH, 1);
- final int tabId = ((TabsLayoutItemView) view).id;
+ final int tabId = ((TabsLayoutItemView) view).getTabId();
// Caching this assumes that all rows are the same height
if (mOriginalSize == 0) {
mOriginalSize = (isVertical ? view.getHeight() : view.getWidth());
}
animator.addPropertyAnimationListener(new PropertyAnimator.PropertyAnimationListener() {
@Override
@@ -392,17 +392,17 @@ class TabsListLayout extends TwoWayView
animator.addPropertyAnimationListener(new PropertyAnimator.PropertyAnimationListener() {
@Override
public void onPropertyAnimationStart() { }
@Override
public void onPropertyAnimationEnd() {
TabsLayoutItemView tab = (TabsLayoutItemView) view;
- tab.close.setVisibility(View.VISIBLE);
+ tab.setCloseVisibile(true);
}
});
animator.start();
}
private class TabSwipeGestureListener implements View.OnTouchListener {
// same value the stock browser uses for after drag animation velocity in pixels/sec
@@ -490,17 +490,17 @@ class TabsListLayout extends TwoWayView
if (mSwipeView == null)
break;
cancelCheckForTap();
mSwipeView.setPressed(false);
if (!mSwiping) {
TabsLayoutItemView item = (TabsLayoutItemView) mSwipeView;
- Tabs.getInstance().selectTab(item.id);
+ Tabs.getInstance().selectTab(item.getTabId());
autoHidePanel();
mVelocityTracker.recycle();
mVelocityTracker = null;
break;
}
mVelocityTracker.addMovement(e);
@@ -577,17 +577,17 @@ class TabsListLayout extends TwoWayView
// set pressed state on the swiped view.
if (isScrollingX || isScrollingY)
cancelCheckForTap();
if (isSwipingToClose) {
mSwiping = true;
TabsListLayout.this.requestDisallowInterceptTouchEvent(true);
- ((TabsLayoutItemView) mSwipeView).close.setVisibility(View.INVISIBLE);
+ ((TabsLayoutItemView) mSwipeView).setCloseVisibile(false);
// Stops listview from highlighting the touched item
// in the list when swiping.
MotionEvent cancelEvent = MotionEvent.obtain(e);
cancelEvent.setAction(MotionEvent.ACTION_CANCEL |
(e.getActionIndex() << MotionEvent.ACTION_POINTER_INDEX_SHIFT));
TabsListLayout.this.onTouchEvent(cancelEvent);
cancelEvent.recycle();