Revert^2 "Improve App notification loading"

c5f1cb11e0

Change-Id: I5a6d39e0a5f2b7bd30bcc12e207b8bb23857c6d8
This commit is contained in:
Julia Reynolds
2022-08-10 17:40:20 +00:00
parent b132484ead
commit 33710fd9e2
34 changed files with 318 additions and 272 deletions

View File

@@ -17,26 +17,24 @@
package com.android.settings.notification.app;
import static android.app.NotificationManager.IMPORTANCE_NONE;
import static android.os.UserHandle.USER_SYSTEM;
import android.annotation.Nullable;
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Drawable;
import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
import android.util.Slog;
import androidx.preference.Preference;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.NotificationBackend;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.Comparator;
import java.util.List;
@@ -46,7 +44,7 @@ import java.util.Objects;
* Parent class for preferences appearing on notification setting pages at the app,
* notification channel group, or notification channel level.
*/
public abstract class NotificationPreferenceController extends AbstractPreferenceController {
public abstract class NotificationPreferenceController extends BasePreferenceController {
private static final String TAG = "ChannelPrefContr";
@Nullable
protected NotificationChannel mChannel;
@@ -71,8 +69,11 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc
boolean overrideCanBlockValue;
boolean overrideCanConfigureValue;
public NotificationPreferenceController(Context context, NotificationBackend backend) {
super(context);
boolean mLoadedChannelState;
public NotificationPreferenceController(Context context, NotificationBackend backend,
String key) {
super(context, key);
mContext = context;
mNm = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
mBackend = backend;
@@ -81,28 +82,30 @@ public abstract class NotificationPreferenceController extends AbstractPreferenc
}
/**
* Returns true if field's parent object is not blocked.
* Returns available if field's parent object is not blocked.
*/
@Override
public boolean isAvailable() {
public int getAvailabilityStatus() {
if (mAppRow == null) {
return false;
return CONDITIONALLY_UNAVAILABLE;
}
if (mAppRow.banned) {
return false;
return CONDITIONALLY_UNAVAILABLE;
}
if (mChannelGroup != null) {
if (mChannelGroup.isBlocked()) {
return false;
return CONDITIONALLY_UNAVAILABLE;
}
}
if (mChannel != null) {
if (mPreferenceFilter != null && !isIncludedInFilter()) {
return false;
return CONDITIONALLY_UNAVAILABLE;
}
if(mChannel.getImportance() == IMPORTANCE_NONE) {
return CONDITIONALLY_UNAVAILABLE;
}
return mChannel.getImportance() != IMPORTANCE_NONE;
}
return true;
return AVAILABLE;
}
protected void onResume(NotificationBackend.AppRow appRow,