summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Kyunglyul Hyun <klhyun@google.com> 2019-07-11 16:25:31 +0900
committer Kyunglyul Hyun <klhyun@google.com> 2019-07-12 16:40:37 +0900
commit30e2c65ed490e65639b55fc80dfaf5e9c1956d4c (patch)
treec0724c983697b272657beb1c7c4829044b7e3318
parent26f2c379d0c5e6f6f37419ed06d57f252b9501e7 (diff)
Media: Use PooledLambda in MediaRouter2ServiceImpl
Instead of implementing handleMessage, use pooledlambda to ensure typesafety. Test: atest mediaroutertest Change-Id: Ie2b56d10d43236adac9440425c0b53682a5af6fd
-rw-r--r--services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java59
1 files changed, 17 insertions, 42 deletions
diff --git a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
index 01936c9159dd..12137fe8d841 100644
--- a/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaRouter2ServiceImpl.java
@@ -32,16 +32,15 @@ import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
-import android.os.Message;
import android.os.RemoteException;
import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.Log;
-import android.util.Pair;
import android.util.Slog;
import android.util.SparseArray;
import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.function.pooled.PooledLambda;
import java.io.PrintWriter;
import java.lang.ref.WeakReference;
@@ -204,13 +203,15 @@ class MediaRouter2ServiceImpl {
UserRecord oldUser = mUserRecords.get(oldUserId);
if (oldUser != null) {
- oldUser.mHandler.sendEmptyMessage(MediaRouterService.UserHandler.MSG_STOP);
+ oldUser.mHandler.sendMessage(
+ obtainMessage(UserHandler::stop, oldUser.mHandler));
disposeUserIfNeededLocked(oldUser); // since no longer current user
}
UserRecord newUser = mUserRecords.get(userId);
if (newUser != null) {
- newUser.mHandler.sendEmptyMessage(MediaRouterService.UserHandler.MSG_START);
+ newUser.mHandler.sendMessage(
+ obtainMessage(UserHandler::start, newUser.mHandler));
}
}
}
@@ -296,8 +297,9 @@ class MediaRouter2ServiceImpl {
if (clientRecord != null) {
clientRecord.mControlCategories = categories;
- clientRecord.mUserRecord.mHandler.obtainMessage(
- UserHandler.MSG_UPDATE_CLIENT_USAGE, clientRecord).sendToTarget();
+ clientRecord.mUserRecord.mHandler.sendMessage(
+ obtainMessage(UserHandler::updateClientUsage,
+ clientRecord.mUserRecord.mHandler, clientRecord));
}
}
@@ -307,9 +309,9 @@ class MediaRouter2ServiceImpl {
ClientRecord clientRecord = mAllClientRecords.get(binder);
if (clientRecord != null) {
- Pair<MediaRoute2Info, Intent> obj = new Pair<>(route, request);
- clientRecord.mUserRecord.mHandler.obtainMessage(
- UserHandler.MSG_SEND_CONTROL_REQUEST, obj).sendToTarget();
+ clientRecord.mUserRecord.mHandler.sendMessage(
+ obtainMessage(UserHandler::sendControlRequest,
+ clientRecord.mUserRecord.mHandler, route, request));
}
}
@@ -346,8 +348,9 @@ class MediaRouter2ServiceImpl {
final int count = userRecord.mClientRecords.size();
for (int i = 0; i < count; i++) {
ClientRecord clientRecord = userRecord.mClientRecords.get(i);
- clientRecord.mUserRecord.mHandler.obtainMessage(
- UserHandler.MSG_UPDATE_CLIENT_USAGE, clientRecord).sendToTarget();
+ clientRecord.mUserRecord.mHandler.sendMessage(
+ obtainMessage(UserHandler::updateClientUsage,
+ clientRecord.mUserRecord.mHandler, clientRecord));
}
}
}
@@ -381,7 +384,8 @@ class MediaRouter2ServiceImpl {
Slog.d(TAG, userRecord + ": Initialized");
}
if (userRecord.mUserId == mCurrentUserId) {
- userRecord.mHandler.sendEmptyMessage(UserHandler.MSG_START);
+ userRecord.mHandler.sendMessage(
+ obtainMessage(UserHandler::start, userRecord.mHandler));
}
}
@@ -497,13 +501,6 @@ class MediaRouter2ServiceImpl {
MediaRoute2ProviderWatcher.Callback,
MediaRoute2ProviderProxy.Callback {
- //TODO: Use PooledLambda instead.
- static final int MSG_START = 1;
- static final int MSG_STOP = 2;
-
- static final int MSG_UPDATE_CLIENT_USAGE = 11;
- static final int MSG_SEND_CONTROL_REQUEST = 12;
-
private final WeakReference<MediaRouter2ServiceImpl> mServiceRef;
private final UserRecord mUserRecord;
private final MediaRoute2ProviderWatcher mWatcher;
@@ -524,28 +521,6 @@ class MediaRouter2ServiceImpl {
this, mUserRecord.mUserId);
}
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_START: {
- start();
- break;
- }
- case MSG_STOP: {
- stop();
- break;
- }
- case MSG_UPDATE_CLIENT_USAGE: {
- updateClientUsage((ClientRecord) msg.obj);
- break;
- }
- case MSG_SEND_CONTROL_REQUEST: {
- Pair<MediaRoute2Info, Intent> obj = (Pair<MediaRoute2Info, Intent>) msg.obj;
- sendControlRequest(obj.first, obj.second);
- }
- }
- }
-
private void start() {
if (!mRunning) {
mRunning = true;
@@ -613,7 +588,7 @@ class MediaRouter2ServiceImpl {
private void scheduleUpdateManagerState() {
if (!mManagerStateUpdateScheduled) {
mManagerStateUpdateScheduled = true;
- post(this::updateManagerState);
+ sendMessage(PooledLambda.obtainMessage(UserHandler::updateManagerState, this));
}
}