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