Merge "Notification history should always be accessed as uid 1000" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6e44121b66
@@ -108,7 +108,9 @@ public class NotificationHistoryDatabase {
|
|||||||
public void init() {
|
public void init() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
try {
|
try {
|
||||||
mHistoryDir.mkdir();
|
if (!mHistoryDir.mkdir()) {
|
||||||
|
throw new IllegalStateException("could not create history directory");
|
||||||
|
}
|
||||||
mVersionFile.createNewFile();
|
mVersionFile.createNewFile();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Slog.e(TAG, "could not create needed files", e);
|
Slog.e(TAG, "could not create needed files", e);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import android.content.Context;
|
|||||||
import android.content.pm.UserInfo;
|
import android.content.pm.UserInfo;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Binder;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -37,6 +38,7 @@ import android.util.SparseBooleanArray;
|
|||||||
|
|
||||||
import com.android.internal.annotations.GuardedBy;
|
import com.android.internal.annotations.GuardedBy;
|
||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
|
import com.android.internal.util.FunctionalUtils;
|
||||||
import com.android.server.IoThread;
|
import com.android.server.IoThread;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -198,16 +200,18 @@ public class NotificationHistoryManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void addNotification(@NonNull final HistoricalNotification notification) {
|
public void addNotification(@NonNull final HistoricalNotification notification) {
|
||||||
synchronized (mLock) {
|
Binder.withCleanCallingIdentity(() -> {
|
||||||
final NotificationHistoryDatabase userHistory =
|
synchronized (mLock) {
|
||||||
getUserHistoryAndInitializeIfNeededLocked(notification.getUserId());
|
final NotificationHistoryDatabase userHistory =
|
||||||
if (userHistory == null) {
|
getUserHistoryAndInitializeIfNeededLocked(notification.getUserId());
|
||||||
Slog.w(TAG, "Attempted to add notif for locked/gone/disabled user "
|
if (userHistory == null) {
|
||||||
+ notification.getUserId());
|
Slog.w(TAG, "Attempted to add notif for locked/gone/disabled user "
|
||||||
return;
|
+ notification.getUserId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
userHistory.addNotification(notification);
|
||||||
}
|
}
|
||||||
userHistory.addNotification(notification);
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public @NonNull NotificationHistory readNotificationHistory(@UserIdInt int[] userIds) {
|
public @NonNull NotificationHistory readNotificationHistory(@UserIdInt int[] userIds) {
|
||||||
|
|||||||
Reference in New Issue
Block a user