Merge "Moving some methods to PendingIntentController" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6210ac615e
@@ -5375,34 +5375,13 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
|
||||
@Override
|
||||
public void registerIntentSenderCancelListener(IIntentSender sender, IResultReceiver receiver) {
|
||||
if (!(sender instanceof PendingIntentRecord)) {
|
||||
return;
|
||||
}
|
||||
boolean isCancelled;
|
||||
synchronized(this) {
|
||||
PendingIntentRecord pendingIntent = (PendingIntentRecord) sender;
|
||||
isCancelled = pendingIntent.canceled;
|
||||
if (!isCancelled) {
|
||||
pendingIntent.registerCancelListenerLocked(receiver);
|
||||
}
|
||||
}
|
||||
if (isCancelled) {
|
||||
try {
|
||||
receiver.send(Activity.RESULT_CANCELED, null);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
mPendingIntentController.registerIntentSenderCancelListener(sender, receiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterIntentSenderCancelListener(IIntentSender sender,
|
||||
IResultReceiver receiver) {
|
||||
if (!(sender instanceof PendingIntentRecord)) {
|
||||
return;
|
||||
}
|
||||
synchronized(this) {
|
||||
((PendingIntentRecord)sender).unregisterCancelListenerLocked(receiver);
|
||||
}
|
||||
mPendingIntentController.unregisterIntentSenderCancelListener(sender, receiver);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -17679,13 +17658,8 @@ public class ActivityManagerService extends IActivityManager.Stub
|
||||
@Override
|
||||
public void setPendingIntentWhitelistDuration(IIntentSender target, IBinder whitelistToken,
|
||||
long duration) {
|
||||
if (!(target instanceof PendingIntentRecord)) {
|
||||
Slog.w(TAG, "markAsSentFromNotification(): not a PendingIntentRecord: " + target);
|
||||
return;
|
||||
}
|
||||
synchronized (ActivityManagerService.this) {
|
||||
((PendingIntentRecord) target).setWhitelistDurationLocked(whitelistToken, duration);
|
||||
}
|
||||
mPendingIntentController.setPendingIntentWhitelistDuration(target, whitelistToken,
|
||||
duration);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package com.android.server.am;
|
||||
|
||||
import static android.content.pm.PackageManager.MATCH_DEBUG_TRIAGED_MISSING;
|
||||
|
||||
import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_MU;
|
||||
import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_MU;
|
||||
import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM;
|
||||
@@ -39,6 +40,7 @@ import android.os.RemoteException;
|
||||
import android.os.UserHandle;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Slog;
|
||||
|
||||
import com.android.internal.os.IResultReceiver;
|
||||
import com.android.internal.util.function.pooled.PooledLambda;
|
||||
import com.android.server.LocalServices;
|
||||
@@ -242,6 +244,47 @@ public class PendingIntentController {
|
||||
}
|
||||
}
|
||||
|
||||
void registerIntentSenderCancelListener(IIntentSender sender, IResultReceiver receiver) {
|
||||
if (!(sender instanceof PendingIntentRecord)) {
|
||||
return;
|
||||
}
|
||||
boolean isCancelled;
|
||||
synchronized (mLock) {
|
||||
PendingIntentRecord pendingIntent = (PendingIntentRecord) sender;
|
||||
isCancelled = pendingIntent.canceled;
|
||||
if (!isCancelled) {
|
||||
pendingIntent.registerCancelListenerLocked(receiver);
|
||||
}
|
||||
}
|
||||
if (isCancelled) {
|
||||
try {
|
||||
receiver.send(Activity.RESULT_CANCELED, null);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void unregisterIntentSenderCancelListener(IIntentSender sender,
|
||||
IResultReceiver receiver) {
|
||||
if (!(sender instanceof PendingIntentRecord)) {
|
||||
return;
|
||||
}
|
||||
synchronized (mLock) {
|
||||
((PendingIntentRecord) sender).unregisterCancelListenerLocked(receiver);
|
||||
}
|
||||
}
|
||||
|
||||
void setPendingIntentWhitelistDuration(IIntentSender target, IBinder whitelistToken,
|
||||
long duration) {
|
||||
if (!(target instanceof PendingIntentRecord)) {
|
||||
Slog.w(TAG, "markAsSentFromNotification(): not a PendingIntentRecord: " + target);
|
||||
return;
|
||||
}
|
||||
synchronized (mLock) {
|
||||
((PendingIntentRecord) target).setWhitelistDurationLocked(whitelistToken, duration);
|
||||
}
|
||||
}
|
||||
|
||||
private void makeIntentSenderCanceled(PendingIntentRecord rec) {
|
||||
rec.canceled = true;
|
||||
final RemoteCallbackList<IResultReceiver> callbacks = rec.detachCancelListenersLocked();
|
||||
|
||||
Reference in New Issue
Block a user