Revert "Call ActivityCallbacks after corresponding activity methods"

This reverts commit 660cf30e21.

bug: 34415265
bug: 34914977
Test: chrome launches

Change-Id: I170365fd47313bafb0d722e6d55ee119336137c4
This commit is contained in:
Narayan Kamath
2017-02-02 13:31:33 +00:00
parent 3084ec2df4
commit ff5659fbc3
6 changed files with 23 additions and 80 deletions

View File

@@ -4171,7 +4171,6 @@ package android.app {
method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle); method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityDestroyed(android.app.Activity); method public abstract void onActivityDestroyed(android.app.Activity);
method public abstract void onActivityPaused(android.app.Activity); method public abstract void onActivityPaused(android.app.Activity);
method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityResumed(android.app.Activity); method public abstract void onActivityResumed(android.app.Activity);
method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle); method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
method public abstract void onActivityStarted(android.app.Activity); method public abstract void onActivityStarted(android.app.Activity);

View File

@@ -4313,7 +4313,6 @@ package android.app {
method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle); method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityDestroyed(android.app.Activity); method public abstract void onActivityDestroyed(android.app.Activity);
method public abstract void onActivityPaused(android.app.Activity); method public abstract void onActivityPaused(android.app.Activity);
method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityResumed(android.app.Activity); method public abstract void onActivityResumed(android.app.Activity);
method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle); method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
method public abstract void onActivityStarted(android.app.Activity); method public abstract void onActivityStarted(android.app.Activity);

View File

@@ -4181,7 +4181,6 @@ package android.app {
method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle); method public abstract void onActivityCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityDestroyed(android.app.Activity); method public abstract void onActivityDestroyed(android.app.Activity);
method public abstract void onActivityPaused(android.app.Activity); method public abstract void onActivityPaused(android.app.Activity);
method public default void onActivityPreCreated(android.app.Activity, android.os.Bundle);
method public abstract void onActivityResumed(android.app.Activity); method public abstract void onActivityResumed(android.app.Activity);
method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle); method public abstract void onActivitySaveInstanceState(android.app.Activity, android.os.Bundle);
method public abstract void onActivityStarted(android.app.Activity); method public abstract void onActivityStarted(android.app.Activity);

View File

@@ -969,9 +969,7 @@ public class Activity extends ContextThemeWrapper
? mLastNonConfigurationInstances.fragments : null); ? mLastNonConfigurationInstances.fragments : null);
} }
mFragments.dispatchCreate(); mFragments.dispatchCreate();
if (!isAtLeastO()) {
getApplication().dispatchActivityCreated(this, savedInstanceState); getApplication().dispatchActivityCreated(this, savedInstanceState);
}
if (mVoiceInteractor != null) { if (mVoiceInteractor != null) {
mVoiceInteractor.attachActivity(this); mVoiceInteractor.attachActivity(this);
} }
@@ -1199,10 +1197,9 @@ public class Activity extends ContextThemeWrapper
mCalled = true; mCalled = true;
mFragments.doLoaderStart(); mFragments.doLoaderStart();
if (!isAtLeastO()) {
getApplication().dispatchActivityStarted(this); getApplication().dispatchActivityStarted(this);
} }
}
/** /**
* Called after {@link #onStop} when the current activity is being * Called after {@link #onStop} when the current activity is being
@@ -1262,9 +1259,7 @@ public class Activity extends ContextThemeWrapper
@CallSuper @CallSuper
protected void onResume() { protected void onResume() {
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this); if (DEBUG_LIFECYCLE) Slog.v(TAG, "onResume " + this);
if (!isAtLeastO()) {
getApplication().dispatchActivityResumed(this); getApplication().dispatchActivityResumed(this);
}
mActivityTransitionState.onResume(this, isTopOfTask()); mActivityTransitionState.onResume(this, isTopOfTask());
mCalled = true; mCalled = true;
} }
@@ -1431,9 +1426,6 @@ public class Activity extends ContextThemeWrapper
saveManagedDialogs(outState); saveManagedDialogs(outState);
mActivityTransitionState.saveState(outState); mActivityTransitionState.saveState(outState);
storeHasCurrentPermissionRequest(outState); storeHasCurrentPermissionRequest(outState);
if (isAtLeastO()) {
getApplication().dispatchActivitySaveInstanceState(this, outState);
}
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState); if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState);
} }
@@ -1450,9 +1442,6 @@ public class Activity extends ContextThemeWrapper
onSaveInstanceState(outState, outPersistentState); onSaveInstanceState(outState, outPersistentState);
saveManagedDialogs(outState); saveManagedDialogs(outState);
storeHasCurrentPermissionRequest(outState); storeHasCurrentPermissionRequest(outState);
if (isAtLeastO()) {
getApplication().dispatchActivitySaveInstanceState(this, outState);
}
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState + if (DEBUG_LIFECYCLE) Slog.v(TAG, "onSaveInstanceState " + this + ": " + outState +
", " + outPersistentState); ", " + outPersistentState);
} }
@@ -1508,10 +1497,8 @@ public class Activity extends ContextThemeWrapper
if (p != null) { if (p != null) {
outState.putParcelable(FRAGMENTS_TAG, p); outState.putParcelable(FRAGMENTS_TAG, p);
} }
if (!isAtLeastO()) {
getApplication().dispatchActivitySaveInstanceState(this, outState); getApplication().dispatchActivitySaveInstanceState(this, outState);
} }
}
/** /**
* This is the same as {@link #onSaveInstanceState} but is called for activities * This is the same as {@link #onSaveInstanceState} but is called for activities
@@ -1608,9 +1595,7 @@ public class Activity extends ContextThemeWrapper
@CallSuper @CallSuper
protected void onPause() { protected void onPause() {
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onPause " + this); if (DEBUG_LIFECYCLE) Slog.v(TAG, "onPause " + this);
if (!isAtLeastO()) {
getApplication().dispatchActivityPaused(this); getApplication().dispatchActivityPaused(this);
}
mCalled = true; mCalled = true;
} }
@@ -1810,9 +1795,7 @@ public class Activity extends ContextThemeWrapper
if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this); if (DEBUG_LIFECYCLE) Slog.v(TAG, "onStop " + this);
if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false); if (mActionBar != null) mActionBar.setShowHideAnimationEnabled(false);
mActivityTransitionState.onStop(); mActivityTransitionState.onStop();
if (!isAtLeastO()) {
getApplication().dispatchActivityStopped(this); getApplication().dispatchActivityStopped(this);
}
mTranslucentCallback = null; mTranslucentCallback = null;
mCalled = true; mCalled = true;
} }
@@ -1882,10 +1865,9 @@ public class Activity extends ContextThemeWrapper
if (mActionBar != null) { if (mActionBar != null) {
mActionBar.onDestroy(); mActionBar.onDestroy();
} }
if (!isAtLeastO()) {
getApplication().dispatchActivityDestroyed(this); getApplication().dispatchActivityDestroyed(this);
} }
}
/** /**
* Report to the system that your app is now fully drawn, purely for diagnostic * Report to the system that your app is now fully drawn, purely for diagnostic
@@ -6768,33 +6750,25 @@ public class Activity extends ContextThemeWrapper
return mParent != null ? mParent.getActivityToken() : mToken; return mParent != null ? mParent.getActivityToken() : mToken;
} }
final void performCreateCommon(Bundle icicle) { final void performCreateCommon() {
mActivityTransitionState.readState(icicle);
mVisibleFromClient = !mWindow.getWindowStyle().getBoolean( mVisibleFromClient = !mWindow.getWindowStyle().getBoolean(
com.android.internal.R.styleable.Window_windowNoDisplay, false); com.android.internal.R.styleable.Window_windowNoDisplay, false);
mFragments.dispatchActivityCreated(); mFragments.dispatchActivityCreated();
mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions()); mActivityTransitionState.setEnterActivityOptions(this, getActivityOptions());
if (isAtLeastO()) {
getApplication().dispatchActivityCreated(this, icicle);
}
} }
final void performCreate(Bundle icicle) { final void performCreate(Bundle icicle) {
restoreHasCurrentPermissionRequest(icicle); restoreHasCurrentPermissionRequest(icicle);
if (isAtLeastO()) {
getApplication().dispatchActivityPreCreated(this, icicle);
}
onCreate(icicle); onCreate(icicle);
performCreateCommon(icicle); mActivityTransitionState.readState(icicle);
performCreateCommon();
} }
final void performCreate(Bundle icicle, PersistableBundle persistentState) { final void performCreate(Bundle icicle, PersistableBundle persistentState) {
restoreHasCurrentPermissionRequest(icicle); restoreHasCurrentPermissionRequest(icicle);
if (isAtLeastO()) {
getApplication().dispatchActivityPreCreated(this, icicle);
}
onCreate(icicle, persistentState); onCreate(icicle, persistentState);
performCreateCommon(icicle); mActivityTransitionState.readState(icicle);
performCreateCommon();
} }
final void performStart() { final void performStart() {
@@ -6837,9 +6811,6 @@ public class Activity extends ContextThemeWrapper
} }
mActivityTransitionState.enterReady(this); mActivityTransitionState.enterReady(this);
if (isAtLeastO()) {
getApplication().dispatchActivityStarted(this);
}
} }
final void performRestart() { final void performRestart() {
@@ -6915,9 +6886,7 @@ public class Activity extends ContextThemeWrapper
mFragments.dispatchResume(); mFragments.dispatchResume();
mFragments.execPendingActions(); mFragments.execPendingActions();
if (isAtLeastO()) {
getApplication().dispatchActivityResumed(this);
}
onPostResume(); onPostResume();
if (!mCalled) { if (!mCalled) {
throw new SuperNotCalledException( throw new SuperNotCalledException(
@@ -6932,15 +6901,13 @@ public class Activity extends ContextThemeWrapper
mCalled = false; mCalled = false;
onPause(); onPause();
mResumed = false; mResumed = false;
if (isAtLeastO()) {
getApplication().dispatchActivityPaused(this);
}
if (!mCalled && getApplicationInfo().targetSdkVersion if (!mCalled && getApplicationInfo().targetSdkVersion
>= android.os.Build.VERSION_CODES.GINGERBREAD) { >= android.os.Build.VERSION_CODES.GINGERBREAD) {
throw new SuperNotCalledException( throw new SuperNotCalledException(
"Activity " + mComponent.toShortString() + "Activity " + mComponent.toShortString() +
" did not call through to super.onPause()"); " did not call through to super.onPause()");
} }
mResumed = false;
} }
final void performUserLeaving() { final void performUserLeaving() {
@@ -6951,7 +6918,7 @@ public class Activity extends ContextThemeWrapper
final void performStop(boolean preserveWindow) { final void performStop(boolean preserveWindow) {
mDoReportFullyDrawn = false; mDoReportFullyDrawn = false;
mFragments.doLoaderStop(mChangingConfigurations /*retain*/); mFragments.doLoaderStop(mChangingConfigurations /*retain*/);
boolean dispatchActivityStopped = !mStopped;
if (!mStopped) { if (!mStopped) {
if (mWindow != null) { if (mWindow != null) {
mWindow.closeAllPanels(); mWindow.closeAllPanels();
@@ -6988,9 +6955,6 @@ public class Activity extends ContextThemeWrapper
mStopped = true; mStopped = true;
} }
mResumed = false; mResumed = false;
if (dispatchActivityStopped && isAtLeastO()) {
getApplication().dispatchActivityStopped(this);
}
} }
final void performDestroy() { final void performDestroy() {
@@ -7002,13 +6966,6 @@ public class Activity extends ContextThemeWrapper
if (mVoiceInteractor != null) { if (mVoiceInteractor != null) {
mVoiceInteractor.detachActivity(); mVoiceInteractor.detachActivity();
} }
if (isAtLeastO()) {
getApplication().dispatchActivityDestroyed(this);
}
}
private boolean isAtLeastO() {
return getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.O;
} }
final void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode) { final void dispatchMultiWindowModeChanged(boolean isInMultiWindowMode) {

View File

@@ -55,7 +55,6 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
public LoadedApk mLoadedApk; public LoadedApk mLoadedApk;
public interface ActivityLifecycleCallbacks { public interface ActivityLifecycleCallbacks {
default void onActivityPreCreated(Activity activity, Bundle savedInstanceState) {}
void onActivityCreated(Activity activity, Bundle savedInstanceState); void onActivityCreated(Activity activity, Bundle savedInstanceState);
void onActivityStarted(Activity activity); void onActivityStarted(Activity activity);
void onActivityResumed(Activity activity); void onActivityResumed(Activity activity);
@@ -191,16 +190,6 @@ public class Application extends ContextWrapper implements ComponentCallbacks2 {
mLoadedApk = ContextImpl.getImpl(context).mPackageInfo; mLoadedApk = ContextImpl.getImpl(context).mPackageInfo;
} }
/* package */ void dispatchActivityPreCreated(Activity activity, Bundle savedInstanceState) {
Object[] callbacks = collectActivityLifecycleCallbacks();
if (callbacks != null) {
for (int i = 0; i < callbacks.length; i++) {
((ActivityLifecycleCallbacks) callbacks[i]).onActivityPreCreated(activity,
savedInstanceState);
}
}
}
/* package */ void dispatchActivityCreated(Activity activity, Bundle savedInstanceState) { /* package */ void dispatchActivityCreated(Activity activity, Bundle savedInstanceState) {
Object[] callbacks = collectActivityLifecycleCallbacks(); Object[] callbacks = collectActivityLifecycleCallbacks();
if (callbacks != null) { if (callbacks != null) {

View File

@@ -2747,15 +2747,15 @@ public class PackageParser {
String cls = clsSeq.toString(); String cls = clsSeq.toString();
char c = cls.charAt(0); char c = cls.charAt(0);
if (c == '.') { if (c == '.') {
return (pkg + cls).intern(); return pkg + cls;
} }
if (cls.indexOf('.') < 0) { if (cls.indexOf('.') < 0) {
StringBuilder b = new StringBuilder(pkg); StringBuilder b = new StringBuilder(pkg);
b.append('.'); b.append('.');
b.append(cls); b.append(cls);
return b.toString().intern(); return b.toString();
} }
return cls.intern(); return cls;
} }
private static String buildCompoundName(String pkg, private static String buildCompoundName(String pkg,
@@ -2775,7 +2775,7 @@ public class PackageParser {
+ pkg + ": " + nameError; + pkg + ": " + nameError;
return null; return null;
} }
return (pkg + proc).intern(); return pkg + proc;
} }
String nameError = validateName(proc, true, false); String nameError = validateName(proc, true, false);
if (nameError != null && !"system".equals(proc)) { if (nameError != null && !"system".equals(proc)) {
@@ -2783,7 +2783,7 @@ public class PackageParser {
+ pkg + ": " + nameError; + pkg + ": " + nameError;
return null; return null;
} }
return proc.intern(); return proc;
} }
private static String buildProcessName(String pkg, String defProc, private static String buildProcessName(String pkg, String defProc,
@@ -5103,7 +5103,7 @@ public class PackageParser {
if (v != null) { if (v != null) {
if (v.type == TypedValue.TYPE_STRING) { if (v.type == TypedValue.TYPE_STRING) {
CharSequence cs = v.coerceToString(); CharSequence cs = v.coerceToString();
data.putString(name, cs != null ? cs.toString().intern() : null); data.putString(name, cs != null ? cs.toString() : null);
} else if (v.type == TypedValue.TYPE_INT_BOOLEAN) { } else if (v.type == TypedValue.TYPE_INT_BOOLEAN) {
data.putBoolean(name, v.data != 0); data.putBoolean(name, v.data != 0);
} else if (v.type >= TypedValue.TYPE_FIRST_INT } else if (v.type >= TypedValue.TYPE_FIRST_INT