am 7a64e976: Merge "MediaSessionManager: make the binder implementation static" into mnc-dev

* commit '7a64e9769f8fe5a400320de9ebd025b0b7af045d':
  MediaSessionManager: make the binder implementation static
This commit is contained in:
Dongwon Kang
2015-07-07 22:28:24 +00:00
committed by Android Git Automerger

View File

@@ -202,7 +202,8 @@ public final class MediaSessionManager {
Log.w(TAG, "Attempted to add session listener twice, ignoring."); Log.w(TAG, "Attempted to add session listener twice, ignoring.");
return; return;
} }
SessionsChangedWrapper wrapper = new SessionsChangedWrapper(sessionListener, handler); SessionsChangedWrapper wrapper = new SessionsChangedWrapper(mContext, sessionListener,
handler);
try { try {
mService.addSessionsListener(wrapper.mStub, notificationListener, userId); mService.addSessionsListener(wrapper.mStub, notificationListener, userId);
mListeners.put(sessionListener, wrapper); mListeners.put(sessionListener, wrapper);
@@ -229,6 +230,8 @@ public final class MediaSessionManager {
mService.removeSessionsListener(wrapper.mStub); mService.removeSessionsListener(wrapper.mStub);
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e(TAG, "Error in removeOnActiveSessionsChangedListener.", e); Log.e(TAG, "Error in removeOnActiveSessionsChangedListener.", e);
} finally {
wrapper.release();
} }
} }
} }
@@ -317,11 +320,14 @@ public final class MediaSessionManager {
public void onActiveSessionsChanged(@Nullable List<MediaController> controllers); public void onActiveSessionsChanged(@Nullable List<MediaController> controllers);
} }
private final class SessionsChangedWrapper { private static final class SessionsChangedWrapper {
private final OnActiveSessionsChangedListener mListener; private Context mContext;
private final Handler mHandler; private OnActiveSessionsChangedListener mListener;
private Handler mHandler;
public SessionsChangedWrapper(OnActiveSessionsChangedListener listener, Handler handler) { public SessionsChangedWrapper(Context context, OnActiveSessionsChangedListener listener,
Handler handler) {
mContext = context;
mListener = listener; mListener = listener;
mHandler = handler; mHandler = handler;
} }
@@ -333,17 +339,25 @@ public final class MediaSessionManager {
mHandler.post(new Runnable() { mHandler.post(new Runnable() {
@Override @Override
public void run() { public void run() {
ArrayList<MediaController> controllers if (mListener != null) {
= new ArrayList<MediaController>(); ArrayList<MediaController> controllers
int size = tokens.size(); = new ArrayList<MediaController>();
for (int i = 0; i < size; i++) { int size = tokens.size();
controllers.add(new MediaController(mContext, tokens.get(i))); for (int i = 0; i < size; i++) {
controllers.add(new MediaController(mContext, tokens.get(i)));
}
mListener.onActiveSessionsChanged(controllers);
} }
mListener.onActiveSessionsChanged(controllers);
} }
}); });
} }
} }
}; };
private void release() {
mContext = null;
mListener = null;
mHandler = null;
}
} }
} }