mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 19:35:51 +00:00
Bug 778247: mAppContext cleanup: TabsPanel doesn't need it. [r=mbrubeck]
--HG-- extra : rebase_source : be08d9e04fd9e6f15e3d99915c532916afd5a093
This commit is contained in:
parent
c56f524572
commit
b180cbb9d3
@ -30,6 +30,7 @@ public class RemoteTabs extends LinearLayout
|
||||
private static final String LOGTAG = "GeckoRemoteTabs";
|
||||
|
||||
private Context mContext;
|
||||
private TabsPanel mTabsPanel;
|
||||
|
||||
private static ExpandableListView mList;
|
||||
|
||||
@ -56,6 +57,11 @@ public class RemoteTabs extends LinearLayout
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTabsPanel(TabsPanel panel) {
|
||||
mTabsPanel = panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
TabsAccessor.getTabs(mContext, this);
|
||||
@ -65,8 +71,8 @@ public class RemoteTabs extends LinearLayout
|
||||
public void hide() {
|
||||
}
|
||||
|
||||
void autoHideTabs() {
|
||||
GeckoApp.mAppContext.autoHideTabs();
|
||||
void autoHidePanel() {
|
||||
mTabsPanel.autoHidePanel();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -79,7 +85,7 @@ public class RemoteTabs extends LinearLayout
|
||||
public boolean onChildClick(ExpandableListView parent, View view, int groupPosition, int childPosition, long id) {
|
||||
HashMap <String, String> tab = mTabsList.get(groupPosition).get(childPosition);
|
||||
if (tab == null) {
|
||||
autoHideTabs();
|
||||
autoHidePanel();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -95,7 +101,7 @@ public class RemoteTabs extends LinearLayout
|
||||
|
||||
Log.d(LOGTAG, "Sending message to Gecko: " + SystemClock.uptimeMillis() + " - Tab:Add");
|
||||
GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("Tab:Add", args.toString()));
|
||||
autoHideTabs();
|
||||
autoHidePanel();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -103,7 +109,7 @@ public class RemoteTabs extends LinearLayout
|
||||
public void onQueryTabsComplete(List<TabsAccessor.RemoteTab> remoteTabsList) {
|
||||
ArrayList<TabsAccessor.RemoteTab> remoteTabs = new ArrayList<TabsAccessor.RemoteTab> (remoteTabsList);
|
||||
if (remoteTabs == null || remoteTabs.size() == 0) {
|
||||
autoHideTabs();
|
||||
autoHidePanel();
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,6 @@ package org.mozilla.gecko;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -30,6 +29,7 @@ public class TabsPanel extends LinearLayout {
|
||||
|
||||
public static interface PanelView {
|
||||
public ViewGroup getLayout();
|
||||
public void setTabsPanel(TabsPanel panel);
|
||||
public void show();
|
||||
public void hide();
|
||||
}
|
||||
@ -39,6 +39,7 @@ public class TabsPanel extends LinearLayout {
|
||||
}
|
||||
|
||||
private Context mContext;
|
||||
private GeckoApp mActivity;
|
||||
private PanelView mPanel;
|
||||
private TabsPanelToolbar mToolbar;
|
||||
private TabsListContainer mListContainer;
|
||||
@ -57,6 +58,7 @@ public class TabsPanel extends LinearLayout {
|
||||
public TabsPanel(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mContext = context;
|
||||
mActivity = (GeckoApp) context;
|
||||
|
||||
setOrientation(LinearLayout.VERTICAL);
|
||||
LayoutInflater.from(context).inflate(R.layout.tabs_panel, this);
|
||||
@ -79,8 +81,8 @@ public class TabsPanel extends LinearLayout {
|
||||
ImageButton addTab = (ImageButton) mToolbar.findViewById(R.id.add_tab);
|
||||
addTab.setOnClickListener(new Button.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
GeckoApp.mAppContext.addTab();
|
||||
GeckoApp.mAppContext.autoHideTabs();
|
||||
mActivity.addTab();
|
||||
mActivity.autoHideTabs();
|
||||
}
|
||||
});
|
||||
|
||||
@ -88,27 +90,26 @@ public class TabsPanel extends LinearLayout {
|
||||
mRemoteTabs.setOnClickListener(new Button.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
if (mRemoteTabs.getDrawable().getLevel() == REMOTE_TABS_SHOWN)
|
||||
GeckoApp.mAppContext.showLocalTabs();
|
||||
mActivity.showLocalTabs();
|
||||
else
|
||||
GeckoApp.mAppContext.showRemoteTabs();
|
||||
mActivity.showRemoteTabs();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Tabs List Container holds the ListView
|
||||
public static class TabsListContainer extends LinearLayout {
|
||||
private Context mContext;
|
||||
|
||||
public TabsListContainer(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
if (!GeckoApp.mAppContext.hasTabsSideBar()) {
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
GeckoApp.mAppContext.getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||
|
||||
int height = (int) (0.5 * metrics.heightPixels);
|
||||
int heightSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
|
||||
int heightSpec = MeasureSpec.makeMeasureSpec(mContext.getResources().getDisplayMetrics().heightPixels, MeasureSpec.EXACTLY);
|
||||
super.onMeasure(widthMeasureSpec, heightSpec);
|
||||
} else {
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
@ -156,19 +157,18 @@ public class TabsPanel extends LinearLayout {
|
||||
mRemoteTabs.setImageLevel(REMOTE_TABS_SHOWN);
|
||||
}
|
||||
|
||||
mPanel.setTabsPanel(this);
|
||||
mPanel.show();
|
||||
mListContainer.addView(mPanel.getLayout());
|
||||
|
||||
if (GeckoApp.mAppContext.hasTabsSideBar()) {
|
||||
if (isSideBar()) {
|
||||
dispatchLayoutChange(getWidth(), getHeight());
|
||||
} else {
|
||||
int actionBarHeight = (int) (mContext.getResources().getDimension(R.dimen.browser_toolbar_height));
|
||||
|
||||
// TabsListContainer takes time to resize on rotation.
|
||||
// It's better to add 50% of the screen-size and dispatch it as height.
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
GeckoApp.mAppContext.getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||
int listHeight = (int) (0.5 * metrics.heightPixels);
|
||||
int listHeight = (int) (0.5 * mContext.getResources().getDisplayMetrics().heightPixels);
|
||||
|
||||
int height = actionBarHeight + listHeight;
|
||||
dispatchLayoutChange(getWidth(), height);
|
||||
@ -214,6 +214,10 @@ public class TabsPanel extends LinearLayout {
|
||||
show(mCurrentPanel);
|
||||
}
|
||||
|
||||
public void autoHidePanel() {
|
||||
mActivity.autoHideTabs();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isShown() {
|
||||
return mVisible;
|
||||
|
@ -34,6 +34,7 @@ public class TabsTray extends LinearLayout
|
||||
private static final String LOGTAG = "GeckoTabsTray";
|
||||
|
||||
private Context mContext;
|
||||
private TabsPanel mTabsPanel;
|
||||
|
||||
private static ListView mList;
|
||||
private TabsAdapter mTabsAdapter;
|
||||
@ -104,6 +105,11 @@ public class TabsTray extends LinearLayout
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTabsPanel(TabsPanel panel) {
|
||||
mTabsPanel = panel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
mWaitingForClose = false;
|
||||
@ -119,8 +125,8 @@ public class TabsTray extends LinearLayout
|
||||
mTabsAdapter.clear();
|
||||
}
|
||||
|
||||
void autoHideTabs() {
|
||||
GeckoApp.mAppContext.autoHideTabs();
|
||||
void autoHidePanel() {
|
||||
mTabsPanel.autoHidePanel();
|
||||
}
|
||||
|
||||
// ViewHolder for a row in the list
|
||||
@ -360,7 +366,7 @@ public class TabsTray extends LinearLayout
|
||||
TabRow tab = (TabRow)mView.getTag();
|
||||
int tabId = tab.id;
|
||||
Tabs.getInstance().selectTab(tabId);
|
||||
autoHideTabs();
|
||||
autoHidePanel();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user