Index: chrome/android/java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java |
index c65ab4ea3de1c3d6420075605fbdf1d5b0d99c50..91b11d27c54dc272bdf58e1920402ade86052a22 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/MediaRouteControllerDialogManager.java |
@@ -4,15 +4,11 @@ |
package org.chromium.chrome.browser.media.router; |
-import android.app.Dialog; |
import android.content.Context; |
import android.content.DialogInterface; |
-import android.content.DialogInterface.OnCancelListener; |
-import android.content.DialogInterface.OnDismissListener; |
import android.support.v4.app.DialogFragment; |
import android.support.v4.app.FragmentManager; |
import android.support.v7.app.MediaRouteControllerDialogFragment; |
-import android.support.v7.app.MediaRouteDialogFactory; |
import android.support.v7.media.MediaRouter; |
import org.chromium.chrome.browser.media.router.cast.MediaSource; |
@@ -20,13 +16,13 @@ import org.chromium.chrome.browser.media.router.cast.MediaSource; |
/** |
* Manages the dialog responsible for controlling an existing media route. |
*/ |
-public class MediaRouteControllerDialogManager extends BaseMediaRouteDialogManager implements |
- OnCancelListener, OnDismissListener { |
+public class MediaRouteControllerDialogManager extends BaseMediaRouteDialogManager { |
private static final String DIALOG_FRAGMENT_TAG = |
"android.support.v7.mediarouter:MediaRouteControllerDialogFragment"; |
private final String mMediaRouteId; |
+ |
private final MediaRouter.Callback mCallback = new MediaRouter.Callback() { |
@Override |
public void onRouteUnselected(MediaRouter router, MediaRouter.RouteInfo route) { |
@@ -42,32 +38,38 @@ public class MediaRouteControllerDialogManager extends BaseMediaRouteDialogManag |
} |
@Override |
- protected DialogFragment openDialogInternal(FragmentManager fm, |
- MediaRouteDialogFactory factory) { |
+ protected DialogFragment openDialogInternal(FragmentManager fm) { |
if (fm.findFragmentByTag(DIALOG_FRAGMENT_TAG) != null) return null; |
- MediaRouteControllerDialogFragment fragment = factory.onCreateControllerDialogFragment(); |
+ MediaRouteControllerDialogFragment fragment = new MediaRouteControllerDialogFragment() { |
+ final SystemVisibilitySaver mVisibilitySaver = new SystemVisibilitySaver(); |
+ |
+ @Override |
+ public void onStart() { |
+ mVisibilitySaver.saveSystemVisibility(getActivity()); |
+ super.onStart(); |
+ } |
+ |
+ @Override |
+ public void onStop() { |
+ super.onStop(); |
+ mVisibilitySaver.restoreSystemVisibility(getActivity()); |
+ } |
+ |
+ @Override |
+ public void onDismiss(DialogInterface dialog) { |
+ delegate().onDialogCancelled(); |
+ androidMediaRouter().removeCallback(mCallback); |
+ mDialogFragment = null; |
+ super.onDismiss(dialog); |
+ } |
+ }; |
+ |
fragment.show(fm, DIALOG_FRAGMENT_TAG); |
fm.executePendingTransactions(); |
- Dialog dialog = fragment.getDialog(); |
- if (dialog == null) return null; |
- |
- dialog.setOnCancelListener(this); |
- dialog.setOnDismissListener(this); |
androidMediaRouter().addCallback(mediaSource().buildRouteSelector(), mCallback); |
return fragment; |
} |
- |
- @Override |
- public void onCancel(DialogInterface dialog) { |
- delegate().onDialogCancelled(); |
- } |
- |
- @Override |
- public void onDismiss(DialogInterface dialog) { |
- androidMediaRouter().removeCallback(mCallback); |
- closeDialog(); |
- } |
} |