Merge "Replace withCleanCallingIdentity with [clear|restore]CallingIdentity"

This commit is contained in:
Lucas Lin
2021-01-07 04:32:54 +00:00
committed by Gerrit Code Review
3 changed files with 78 additions and 41 deletions

View File

@@ -623,32 +623,41 @@ public class ConnectivityDiagnosticsManager {
/** @hide */
@VisibleForTesting
public void onConnectivityReportAvailable(@NonNull ConnectivityReport report) {
Binder.withCleanCallingIdentity(() -> {
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mCb.onConnectivityReportAvailable(report);
});
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
/** @hide */
@VisibleForTesting
public void onDataStallSuspected(@NonNull DataStallReport report) {
Binder.withCleanCallingIdentity(() -> {
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mCb.onDataStallSuspected(report);
});
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
/** @hide */
@VisibleForTesting
public void onNetworkConnectivityReported(
@NonNull Network network, boolean hasConnectivity) {
Binder.withCleanCallingIdentity(() -> {
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mCb.onNetworkConnectivityReported(network, hasConnectivity);
});
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
}

View File

@@ -1833,30 +1833,42 @@ public class ConnectivityManager {
mCallback = new ISocketKeepaliveCallback.Stub() {
@Override
public void onStarted(int slot) {
Binder.withCleanCallingIdentity(() ->
mExecutor.execute(() -> {
mSlot = slot;
callback.onStarted();
}));
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mSlot = slot;
callback.onStarted();
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
@Override
public void onStopped() {
Binder.withCleanCallingIdentity(() ->
mExecutor.execute(() -> {
mSlot = null;
callback.onStopped();
}));
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mSlot = null;
callback.onStopped();
});
} finally {
Binder.restoreCallingIdentity(token);
}
mExecutor.shutdown();
}
@Override
public void onError(int error) {
Binder.withCleanCallingIdentity(() ->
mExecutor.execute(() -> {
mSlot = null;
callback.onError(error);
}));
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mSlot = null;
callback.onError(error);
});
} finally {
Binder.restoreCallingIdentity(token);
}
mExecutor.shutdown();
}

View File

@@ -187,38 +187,54 @@ public abstract class SocketKeepalive implements AutoCloseable {
mCallback = new ISocketKeepaliveCallback.Stub() {
@Override
public void onStarted(int slot) {
Binder.withCleanCallingIdentity(() ->
mExecutor.execute(() -> {
mSlot = slot;
callback.onStarted();
}));
final long token = Binder.clearCallingIdentity();
try {
mExecutor.execute(() -> {
mSlot = slot;
callback.onStarted();
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
@Override
public void onStopped() {
Binder.withCleanCallingIdentity(() ->
executor.execute(() -> {
mSlot = null;
callback.onStopped();
}));
final long token = Binder.clearCallingIdentity();
try {
executor.execute(() -> {
mSlot = null;
callback.onStopped();
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
@Override
public void onError(int error) {
Binder.withCleanCallingIdentity(() ->
executor.execute(() -> {
mSlot = null;
callback.onError(error);
}));
final long token = Binder.clearCallingIdentity();
try {
executor.execute(() -> {
mSlot = null;
callback.onError(error);
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
@Override
public void onDataReceived() {
Binder.withCleanCallingIdentity(() ->
executor.execute(() -> {
mSlot = null;
callback.onDataReceived();
}));
final long token = Binder.clearCallingIdentity();
try {
executor.execute(() -> {
mSlot = null;
callback.onDataReceived();
});
} finally {
Binder.restoreCallingIdentity(token);
}
}
};
}