Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e65b99bc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only show work profile notifs if enabled" into rvc-dev am: 43d6bd38

Change-Id: I9a5a8969ec1998d0988ce1acc0ed68e3ec24d8a8
parents 01b3da1d 43d6bd38
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -265,7 +265,7 @@ public class NotificationHistoryActivity extends Activity {
            LinearLayoutManager lm = new LinearLayoutManager(NotificationHistoryActivity.this);
            mSnoozedRv.setLayoutManager(lm);
            mSnoozedRv.setAdapter(
                    new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
                    new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm, mUm));
            mSnoozedRv.setNestedScrollingEnabled(false);

            if (snoozed == null || snoozed.length == 0) {
@@ -280,7 +280,7 @@ public class NotificationHistoryActivity extends Activity {
                new LinearLayoutManager(NotificationHistoryActivity.this);
            mDismissedRv.setLayoutManager(dismissLm);
            mDismissedRv.setAdapter(
                new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm));
                new NotificationSbnAdapter(NotificationHistoryActivity.this, mPm, mUm));
            mDismissedRv.setNestedScrollingEnabled(false);

            if (dismissed == null || dismissed.length == 0) {
+24 −4
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.content.res.Configuration;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.Log;
@@ -47,6 +48,7 @@ import com.android.internal.util.ContrastColorUtil;
import com.android.settings.R;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -62,8 +64,9 @@ public class NotificationSbnAdapter extends
    private @ColorInt int mBackgroundColor;
    private boolean mInNightMode;
    private @UserIdInt int mCurrentUser;
    private List<Integer> mEnabledProfiles = new ArrayList<>();

    public NotificationSbnAdapter(Context context, PackageManager pm) {
    public NotificationSbnAdapter(Context context, PackageManager pm, UserManager um) {
        mContext = context;
        mPm = pm;
        mUserBadgeCache = new HashMap<>();
@@ -74,6 +77,12 @@ public class NotificationSbnAdapter extends
        mInNightMode = (currentConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
                == Configuration.UI_MODE_NIGHT_YES;
        mCurrentUser = ActivityManager.getCurrentUser();
        int[] enabledUsers = um.getEnabledProfileIds(mCurrentUser);
        for (int id : enabledUsers) {
            if (!um.isQuietModeEnabled(UserHandle.of(id))) {
                mEnabledProfiles.add(id);
            }
        }
        setHasStableIds(true);
    }

@@ -115,10 +124,9 @@ public class NotificationSbnAdapter extends
    }

    public void onRebuildComplete(List<StatusBarNotification> notifications) {
        // summaries are low content; don't bother showing them
        for (int i = notifications.size() - 1; i >= 0; i--) {
            StatusBarNotification sbn = notifications.get(i);
            if (sbn.isGroup() && sbn.getNotification().isGroupSummary()) {
            if (!shouldShowSbn(sbn)) {
                notifications.remove(i);
            }
        }
@@ -127,13 +135,25 @@ public class NotificationSbnAdapter extends
    }

    public void addSbn(StatusBarNotification sbn) {
        if (sbn.isGroup() && sbn.getNotification().isGroupSummary()) {
        if (!shouldShowSbn(sbn)) {
            return;
        }
        mValues.add(0, sbn);
        notifyDataSetChanged();
    }

    private boolean shouldShowSbn(StatusBarNotification sbn) {
        // summaries are low content; don't bother showing them
        if (sbn.isGroup() && sbn.getNotification().isGroupSummary()) {
            return false;
        }
        // also don't show profile notifications if the profile is currently disabled
        if (!mEnabledProfiles.contains(normalizeUserId(sbn))) {
            return false;
        }
        return true;
    }

    private @NonNull CharSequence loadPackageLabel(String pkg) {
        try {
            ApplicationInfo info = mPm.getApplicationInfo(pkg,