Merge "Notification history should always be accessed as uid 1000" into rvc-dev am: 6e44121b66

Change-Id: I3bcdad5162f5fc09e2233e01854b66f6ae4a4055
This commit is contained in:
TreeHugger Robot
2020-04-23 21:32:06 +00:00
committed by Automerger Merge Worker
2 changed files with 16 additions and 10 deletions

View File

@@ -108,7 +108,9 @@ public class NotificationHistoryDatabase {
public void init() {
synchronized (mLock) {
try {
mHistoryDir.mkdir();
if (!mHistoryDir.mkdir()) {
throw new IllegalStateException("could not create history directory");
}
mVersionFile.createNewFile();
} catch (Exception e) {
Slog.e(TAG, "could not create needed files", e);

View File

@@ -26,6 +26,7 @@ import android.content.Context;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Binder;
import android.os.Environment;
import android.os.Handler;
import android.os.UserHandle;
@@ -37,6 +38,7 @@ import android.util.SparseBooleanArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FunctionalUtils;
import com.android.server.IoThread;
import java.io.File;
@@ -198,16 +200,18 @@ public class NotificationHistoryManager {
}
public void addNotification(@NonNull final HistoricalNotification notification) {
synchronized (mLock) {
final NotificationHistoryDatabase userHistory =
getUserHistoryAndInitializeIfNeededLocked(notification.getUserId());
if (userHistory == null) {
Slog.w(TAG, "Attempted to add notif for locked/gone/disabled user "
+ notification.getUserId());
return;
Binder.withCleanCallingIdentity(() -> {
synchronized (mLock) {
final NotificationHistoryDatabase userHistory =
getUserHistoryAndInitializeIfNeededLocked(notification.getUserId());
if (userHistory == null) {
Slog.w(TAG, "Attempted to add notif for locked/gone/disabled user "
+ notification.getUserId());
return;
}
userHistory.addNotification(notification);
}
userHistory.addNotification(notification);
}
});
}
public @NonNull NotificationHistory readNotificationHistory(@UserIdInt int[] userIds) {