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:
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user