mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 887572: Kill GeckoViewsFactory. [r=bnicholson]
This commit is contained in:
parent
1c7c1d546c
commit
1623994abd
@ -261,21 +261,6 @@ public class AwesomeBar extends GeckoActivity
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Only one factory can be set on the inflater; however, we want to use two
|
||||
* factories (GeckoViewsFactory and the FragmentActivity factory).
|
||||
* Overriding onCreateView() here allows us to dispatch view creation to
|
||||
* both factories.
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(String name, Context context, AttributeSet attrs) {
|
||||
View view = GeckoViewsFactory.getInstance().onCreateView(name, context, attrs);
|
||||
if (view == null) {
|
||||
view = super.onCreateView(name, context, attrs);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
private boolean handleBackKey() {
|
||||
// Let mAwesomeTabs try to handle the back press, since we may be in a
|
||||
// bookmarks sub-folder.
|
||||
|
@ -76,7 +76,6 @@ import android.util.SparseBooleanArray;
|
||||
import android.view.Display;
|
||||
import android.view.Gravity;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
@ -1232,8 +1231,6 @@ abstract public class GeckoApp
|
||||
}
|
||||
}
|
||||
|
||||
LayoutInflater.from(this).setFactory(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
mOrientation = getResources().getConfiguration().orientation;
|
||||
@ -2075,21 +2072,6 @@ abstract public class GeckoApp
|
||||
return AppConstants.MOZ_CHILD_PROCESS_NAME;
|
||||
}
|
||||
|
||||
/*
|
||||
* Only one factory can be set on the inflater; however, we want to use two
|
||||
* factories (GeckoViewsFactory and the FragmentActivity factory).
|
||||
* Overriding onCreateView() here allows us to dispatch view creation to
|
||||
* both factories.
|
||||
*/
|
||||
@Override
|
||||
public View onCreateView(String name, Context context, AttributeSet attrs) {
|
||||
View view = GeckoViewsFactory.getInstance().onCreateView(name, context, attrs);
|
||||
if (view == null) {
|
||||
view = super.onCreateView(name, context, attrs);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
||||
public void addEnvToIntent(Intent intent) {
|
||||
Map<String,String> envMap = System.getenv();
|
||||
Set<Map.Entry<String,String>> envSet = envMap.entrySet();
|
||||
|
@ -1,128 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.gecko;
|
||||
|
||||
import org.mozilla.gecko.gfx.LayerView;
|
||||
import org.mozilla.gecko.menu.GeckoMenu;
|
||||
import org.mozilla.gecko.menu.MenuItemActionBar;
|
||||
import org.mozilla.gecko.menu.MenuItemDefault;
|
||||
import org.mozilla.gecko.widget.AboutHomeView;
|
||||
import org.mozilla.gecko.widget.AddonsSection;
|
||||
import org.mozilla.gecko.widget.FaviconView;
|
||||
import org.mozilla.gecko.widget.IconTabWidget;
|
||||
import org.mozilla.gecko.widget.LastTabsSection;
|
||||
import org.mozilla.gecko.widget.LinkTextView;
|
||||
import org.mozilla.gecko.widget.PromoBox;
|
||||
import org.mozilla.gecko.widget.RemoteTabsSection;
|
||||
import org.mozilla.gecko.widget.TabRow;
|
||||
import org.mozilla.gecko.widget.ThumbnailView;
|
||||
import org.mozilla.gecko.widget.TopSitesView;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public final class GeckoViewsFactory implements LayoutInflater.Factory {
|
||||
private static final String LOGTAG = "GeckoViewsFactory";
|
||||
|
||||
private static final String GECKO_VIEW_IDENTIFIER = "org.mozilla.gecko.";
|
||||
private static final int GECKO_VIEW_IDENTIFIER_LENGTH = GECKO_VIEW_IDENTIFIER.length();
|
||||
|
||||
private final Map<String, Constructor<? extends View>> mFactoryMap;
|
||||
|
||||
private GeckoViewsFactory() {
|
||||
// initialize the hashmap to a capacity that is a prime number greater than
|
||||
// (size * 4/3). The size is the number of items we expect to put in it, and
|
||||
// 4/3 is the inverse of the default load factor.
|
||||
mFactoryMap = new HashMap<String, Constructor<? extends View>>(53);
|
||||
Class<Context> arg1Class = Context.class;
|
||||
Class<AttributeSet> arg2Class = AttributeSet.class;
|
||||
try {
|
||||
mFactoryMap.put("AwesomeBarTabs", AwesomeBarTabs.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("AwesomeBarTabs$BackgroundLayout", AwesomeBarTabs.BackgroundLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("BackButton", BackButton.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("BrowserToolbarBackground", BrowserToolbarBackground.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("CheckableLinearLayout", CheckableLinearLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("FormAssistPopup", FormAssistPopup.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("ForwardButton", ForwardButton.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoApp$MainLayout", GeckoApp.MainLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("FindInPageBar", FindInPageBar.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("IconTabWidget", IconTabWidget.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("RemoteTabs", RemoteTabs.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("ShapedButton", ShapedButton.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("TabsPanel", TabsPanel.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("TabsPanel$TabsListContainer", TabsPanel.TabsListContainer.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("TabsPanel$TabsPanelToolbar", TabsPanel.TabsPanelToolbar.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("TabsTray", TabsTray.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("TextSelectionHandle", TextSelectionHandle.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("gfx.LayerView", LayerView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("AllCapsTextView", AllCapsTextView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoButton", GeckoButton.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoEditText", GeckoEditText.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoFrameLayout", GeckoFrameLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoImageButton", GeckoImageButton.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoImageView", GeckoImageView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoLinearLayout", GeckoLinearLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoRelativeLayout", GeckoRelativeLayout.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoTextSwitcher", GeckoTextSwitcher.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("GeckoTextView", GeckoTextView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("menu.MenuItemActionBar", MenuItemActionBar.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("menu.MenuItemDefault", MenuItemDefault.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("menu.GeckoMenu$DefaultActionItemBar", GeckoMenu.DefaultActionItemBar.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.AboutHomeView", AboutHomeView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.AddonsSection", AddonsSection.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.FaviconView", FaviconView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.LastTabsSection", LastTabsSection.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.LinkTextView", LinkTextView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.PromoBox", PromoBox.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.RemoteTabsSection", RemoteTabsSection.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.TabRow", TabRow.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.ThumbnailView", ThumbnailView.class.getConstructor(arg1Class, arg2Class));
|
||||
mFactoryMap.put("widget.TopSitesView", TopSitesView.class.getConstructor(arg1Class, arg2Class));
|
||||
} catch (NoSuchMethodException nsme) {
|
||||
Log.e(LOGTAG, "Unable to initialize views factory", nsme);
|
||||
}
|
||||
}
|
||||
|
||||
// Making this a singleton class.
|
||||
private static final GeckoViewsFactory INSTANCE = new GeckoViewsFactory();
|
||||
|
||||
public static GeckoViewsFactory getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(String name, Context context, AttributeSet attrs) {
|
||||
if (!TextUtils.isEmpty(name)) {
|
||||
String viewName = null;
|
||||
|
||||
if (name.startsWith(GECKO_VIEW_IDENTIFIER))
|
||||
viewName = name.substring(GECKO_VIEW_IDENTIFIER_LENGTH);
|
||||
else
|
||||
return null;
|
||||
|
||||
Constructor<? extends View> constructor = mFactoryMap.get(viewName);
|
||||
if (constructor != null) {
|
||||
try {
|
||||
return constructor.newInstance(context, attrs);
|
||||
} catch (Exception e) {
|
||||
Log.e(LOGTAG, "Unable to instantiate view " + name, e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(LOGTAG, "Warning: unknown custom view: " + name);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -112,7 +112,6 @@ FENNEC_JAVA_FILES = \
|
||||
GeckoThread.java \
|
||||
GeckoJavaSampler.java \
|
||||
GlobalHistory.java \
|
||||
GeckoViewsFactory.java \
|
||||
GeckoView.java \
|
||||
health/BrowserHealthRecorder.java \
|
||||
health/BrowserHealthReporter.java \
|
||||
|
Loading…
Reference in New Issue
Block a user