diff options
| author | Adam Powell <adamp@google.com> | 2014-05-06 20:24:23 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2014-05-06 20:24:23 +0000 |
| commit | 5f97930fc5dd44fcf1864acd53401c00b4de3a24 (patch) | |
| tree | a47f927897e43f49a977c9786d30a500bb94d0dc /core/java | |
| parent | 55d47f6be8ba5aab8d9d9cc19e3549c354f08e4f (diff) | |
| parent | c41fa708271e204a7983aba291389ea1554227b2 (diff) | |
| download | frameworks_base-5f97930fc5dd44fcf1864acd53401c00b4de3a24.zip frameworks_base-5f97930fc5dd44fcf1864acd53401c00b4de3a24.tar.gz frameworks_base-5f97930fc5dd44fcf1864acd53401c00b4de3a24.tar.bz2 | |
am c41fa708: am a0516e7a: Merge "onWindowDismissed API cleanup" into klp-modular-dev
* commit 'c41fa708271e204a7983aba291389ea1554227b2':
onWindowDismissed API cleanup
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/app/Activity.java | 6 | ||||
| -rw-r--r-- | core/java/android/app/Dialog.java | 5 | ||||
| -rw-r--r-- | core/java/android/service/dreams/DreamService.java | 4 | ||||
| -rw-r--r-- | core/java/android/view/Window.java | 16 |
4 files changed, 25 insertions, 6 deletions
diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index 5ec3117..af3a92c 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -655,7 +655,8 @@ import java.util.HashMap; public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Callback, KeyEvent.Callback, - OnCreateContextMenuListener, ComponentCallbacks2 { + OnCreateContextMenuListener, ComponentCallbacks2, + Window.OnWindowDismissedCallback { private static final String TAG = "Activity"; private static final boolean DEBUG_LIFECYCLE = false; @@ -2519,7 +2520,9 @@ public class Activity extends ContextThemeWrapper /** * Called when the main window associated with the activity has been dismissed. + * @hide */ + @Override public void onWindowDismissed() { finish(); } @@ -5437,6 +5440,7 @@ public class Activity extends ContextThemeWrapper mWindow = PolicyManager.makeNewWindow(this); mWindow.setCallback(this); + mWindow.setOnWindowDismissedCallback(this); mWindow.getLayoutInflater().setPrivateFactory(this); if (info.softInputMode != WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) { mWindow.setSoftInputMode(info.softInputMode); diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 07583fd..12d4513 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -79,7 +79,7 @@ import java.lang.ref.WeakReference; * </div> */ public class Dialog implements DialogInterface, Window.Callback, - KeyEvent.Callback, OnCreateContextMenuListener { + KeyEvent.Callback, OnCreateContextMenuListener, Window.OnWindowDismissedCallback { private static final String TAG = "Dialog"; private Activity mOwnerActivity; @@ -165,6 +165,7 @@ public class Dialog implements DialogInterface, Window.Callback, Window w = PolicyManager.makeNewWindow(mContext); mWindow = w; w.setCallback(this); + w.setOnWindowDismissedCallback(this); w.setWindowManager(mWindowManager, null, null); w.setGravity(Gravity.CENTER); mListenersHandler = new ListenersHandler(this); @@ -708,6 +709,8 @@ public class Dialog implements DialogInterface, Window.Callback, public void onDetachedFromWindow() { } + /** @hide */ + @Override public void onWindowDismissed() { dismiss(); } diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index 2303d65..b02a79d 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -300,10 +300,6 @@ public class DreamService extends Service implements Window.Callback { public void onDetachedFromWindow() { } - @Override - public void onWindowDismissed() { - } - /** {@inheritDoc} */ @Override public void onPanelClosed(int featureId, Menu menu) { diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java index 9c44bd1..375f5e3 100644 --- a/core/java/android/view/Window.java +++ b/core/java/android/view/Window.java @@ -147,6 +147,7 @@ public abstract class Window { private TypedArray mWindowStyle; private Callback mCallback; + private OnWindowDismissedCallback mOnWindowDismissedCallback; private WindowManager mWindowManager; private IBinder mAppToken; private String mAppName; @@ -405,7 +406,10 @@ public abstract class Window { * @param mode The mode that was just finished. */ public void onActionModeFinished(ActionMode mode); + } + /** @hide */ + public interface OnWindowDismissedCallback { /** * Called when a window is dismissed. This informs the callback that the * window is gone, and it should finish itself. @@ -586,6 +590,18 @@ public abstract class Window { return mCallback; } + /** @hide */ + public final void setOnWindowDismissedCallback(OnWindowDismissedCallback dcb) { + mOnWindowDismissedCallback = dcb; + } + + /** @hide */ + public final void dispatchOnWindowDismissed() { + if (mOnWindowDismissedCallback != null) { + mOnWindowDismissedCallback.onWindowDismissed(); + } + } + /** * Take ownership of this window's surface. The window's view hierarchy * will no longer draw into the surface, though it will otherwise continue |
