Revamped EngineInitializer
Also contains gyp changes to add a instrumentation test
target for Browser
Change-Id: I2ea26a4a57d9101c54f80f148c9333088016e141
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 9b310e2..f1fc421 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -36,7 +36,6 @@
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.view.ViewTreeObserver;
import android.view.Window;
import org.chromium.base.VisibleForTesting;
@@ -50,7 +49,7 @@
import org.codeaurora.swe.CookieManager;
import org.codeaurora.swe.WebView;
-public class BrowserActivity extends Activity implements ViewTreeObserver.OnPreDrawListener {
+public class BrowserActivity extends Activity {
public static final String ACTION_SHOW_BOOKMARKS = "show_bookmarks";
public static final String ACTION_SHOW_BROWSER = "show_browser";
@@ -84,7 +83,10 @@
};
private Bundle mSavedInstanceState;
- private EngineInitializer mEngineInitializer;
+ private EngineInitializer.ActivityScheduler mActivityScheduler;
+ public EngineInitializer.ActivityScheduler getScheduler() {
+ return mActivityScheduler;
+ }
@Override
public void onCreate(Bundle icicle) {
@@ -115,8 +117,7 @@
}
*/
- mEngineInitializer = EngineInitializer.getInstance();
- mEngineInitializer.onActivityCreate(BrowserActivity.this);
+ mActivityScheduler = EngineInitializer.onActivityCreate(BrowserActivity.this);
Thread.setDefaultUncaughtExceptionHandler(new CrashLogExceptionHandler(this));
@@ -128,23 +129,9 @@
ViewGroup topLayout = (ViewGroup) findViewById(R.id.main_content);
topLayout.requestTransparentRegion(topLayout);
- // Add pre-draw listener to start the controller after engine initialization.
- final ViewTreeObserver observer = getWindow().getDecorView().getViewTreeObserver();
- observer.addOnPreDrawListener(this);
-
- mEngineInitializer.initializeResourceExtractor(this);
+ EngineInitializer.onPostActivityCreate(BrowserActivity.this);
}
- @Override
- public boolean onPreDraw()
- {
- final ViewTreeObserver observer = getWindow().getDecorView().getViewTreeObserver();
- observer.removeOnPreDrawListener(this);
- mEngineInitializer.onPreDraw();
- return true;
- }
-
-
public static boolean isTablet(Context context) {
return context.getResources().getBoolean(R.bool.isTablet);
}
@@ -166,7 +153,7 @@
return controller;
}
- public void onEngineInitializationComplete() {
+ public void startController() {
Intent intent = (mSavedInstanceState == null) ? getIntent() : null;
mController.start(intent);
}
@@ -180,7 +167,7 @@
@Override
protected void onNewIntent(Intent intent) {
if (shouldIgnoreIntents()) return;
- mEngineInitializer.onNewIntent(intent);
+ EngineInitializer.onNewIntent(BrowserActivity.this, intent);
// Note: Do not add any more application logic in this method.
// Move any additional app logic into handleOnNewIntent().
}
@@ -221,7 +208,7 @@
@Override
protected void onStart() {
super.onStart();
- mEngineInitializer.onActivityStart();
+ EngineInitializer.onActivityStart(BrowserActivity.this);
}
@Override
@@ -230,7 +217,7 @@
if (LOGV_ENABLED) {
Log.v(LOGTAG, "BrowserActivity.onResume: this=" + this);
}
- mEngineInitializer.onActivityResume();
+ EngineInitializer.onActivityResume(BrowserActivity.this);
// Note: Do not add any more application logic in this method.
// Move any additional app logic into handleOnResume().
}
@@ -245,12 +232,17 @@
@Override
protected void onStop() {
- mEngineInitializer.onActivityStop();
+ EngineInitializer.onActivityStop(BrowserActivity.this);
super.onStop();
// Note: Do not add any more application logic in this method.
// Move any additional app logic into handleOnStop().
}
+ protected void handleOnStop() {
+ CookieManager.getInstance().flushCookieStore();
+ mController.onPause();
+ }
+
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
if (Window.FEATURE_OPTIONS_PANEL == featureId) {
@@ -285,7 +277,7 @@
@Override
protected void onPause() {
- mEngineInitializer.onActivityPause();
+ EngineInitializer.onActivityPause(BrowserActivity.this);
super.onPause();
// Note: Do not add any more application logic in this method.
// Move any additional app logic into handleOnPause().
@@ -295,21 +287,13 @@
// Note: Intentionally left blank
}
- protected void handleOnStop() {
- CookieManager.getInstance().flushCookieStore();
- mController.onPause();
- }
-
@Override
protected void onDestroy() {
if (LOGV_ENABLED) {
Log.v(LOGTAG, "BrowserActivity.onDestroy: this=" + this);
}
super.onDestroy();
- // mEngineInitializer can be null if onCreate is not called before onDestroy
- // it happens when starting the activity with an intent while the screen is locked.
- if (mEngineInitializer != null)
- mEngineInitializer.onActivityDestroy();
+ EngineInitializer.onActivityDestroy(BrowserActivity.this);
mController.onDestroy();
mController = NullController.INSTANCE;
if (!Locale.getDefault().equals(mCurrentLocale) || killOnExitDialog) {
@@ -402,7 +386,7 @@
@Override
protected void onActivityResult (int requestCode, int resultCode,
Intent intent) {
- mEngineInitializer.onActivityResult(requestCode, resultCode, intent);
+ EngineInitializer.onActivityResult(BrowserActivity.this, requestCode, resultCode, intent);
}
protected void handleOnActivityResult (int requestCode, int resultCode, Intent intent) {