From 550116576cce028d3c435f7c3ae9f6e3b92b5cf2 Mon Sep 17 00:00:00 2001 From: RoboErik Date: Wed, 9 Jul 2014 15:05:53 -0700 Subject: [PATCH 1/2] Add API to set a default session in Activity We may have multiple remote sessions at once so an app needs a way to specify a default session to route media and volume commands to when its activity is in the foreground. This adds an api that works in parallel with the default stream api on Activity. bug:15727927 Change-Id: I5b67cb3e20647f9437d90aa65be63efe8c7865cf --- api/current.txt | 4 + core/java/android/app/Activity.java | 790 +++++++++--------- core/java/android/view/Window.java | 99 ++- .../internal/policy/impl/PhoneWindow.java | 84 +- .../android/onemedia/PlayerController.java | 12 +- 5 files changed, 561 insertions(+), 428 deletions(-) diff --git a/api/current.txt b/api/current.txt index 623c2815bf63b..c5df7b26d2c57 100644 --- a/api/current.txt +++ b/api/current.txt @@ -3309,6 +3309,7 @@ package android.app { method public android.view.LayoutInflater getLayoutInflater(); method public android.app.LoaderManager getLoaderManager(); method public java.lang.String getLocalClassName(); + method public final android.media.session.MediaController getMediaController(); method public android.view.MenuInflater getMenuInflater(); method public final android.app.Activity getParent(); method public android.content.Intent getParentActivityIntent(); @@ -3432,6 +3433,7 @@ package android.app { method public void setFinishOnTouchOutside(boolean); method public void setImmersive(boolean); method public void setIntent(android.content.Intent); + method public final void setMediaController(android.media.session.MediaController); method public boolean setMediaPlaying(boolean); method public final void setProgress(int); method public final void setProgressBarIndeterminate(boolean); @@ -34276,6 +34278,7 @@ package android.view { method protected final int getForcedWindowFlags(); method public abstract android.view.LayoutInflater getLayoutInflater(); method protected final int getLocalFeatures(); + method public android.media.session.MediaController getMediaController(); method public abstract int getNavigationBarColor(); method public android.transition.Transition getSharedElementEnterTransition(); method public android.transition.Transition getSharedElementExitTransition(); @@ -34332,6 +34335,7 @@ package android.view { method public void setLayout(int, int); method public void setLocalFocus(boolean, boolean); method public void setLogo(int); + method public void setMediaController(android.media.session.MediaController); method public abstract void setNavigationBarColor(int); method public void setSharedElementEnterTransition(android.transition.Transition); method public void setSharedElementExitTransition(android.transition.Transition); diff --git a/core/java/android/app/Activity.java b/core/java/android/app/Activity.java index d20a5dcf06d6a..cac646d1c32af 100644 --- a/core/java/android/app/Activity.java +++ b/core/java/android/app/Activity.java @@ -23,6 +23,7 @@ import android.transition.TransitionManager; import android.util.ArrayMap; import android.util.SuperNotCalledException; import android.widget.Toolbar; + import com.android.internal.app.IVoiceInteractor; import com.android.internal.app.WindowDecorActionBar; import com.android.internal.app.ToolbarActionBar; @@ -51,6 +52,8 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.media.AudioManager; +import android.media.session.MediaController; +import android.media.session.MediaSession; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -109,14 +112,14 @@ import java.util.HashMap; * or embedded inside of another activity (using {@link ActivityGroup}). * * There are two methods almost all subclasses of Activity will implement: - * + * *