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

Commit c54459fb authored by John Spurlock's avatar John Spurlock
Browse files

Zen: Remove hardcoded package name filters.

Bug:15474885
Change-Id: I282cc3d597b2a8855bcb4e987a11cea04f956bad
parent 13c72679
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

public class ZenLog {
    private static final String TAG = "ZenLog";
@@ -41,6 +43,10 @@ public class ZenLog {
    private static final String[] MSGS = new String[SIZE];

    private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS");
    private static final Set<String> SYSTEM_PACKAGES = new HashSet<String>(Arrays.asList(
            "android",
            "com.android.systemui"
            ));

    private static final int TYPE_INTERCEPTED = 1;
    private static final int TYPE_ALLOW_DISABLE = 2;
@@ -61,6 +67,7 @@ public class ZenLog {
    }

    public static void traceAllowDisable(String pkg, boolean allowDisable, String reason) {
        if (SYSTEM_PACKAGES.contains(pkg)) return;
        append(TYPE_ALLOW_DISABLE, allowDisable + "," + pkg + "," + reason);
    }

+11 −20
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.net.Uri;
import android.os.Handler;
import android.os.IBinder;
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
import android.service.notification.ZenModeConfig;
import android.telecomm.TelecommManager;
import android.util.Slog;
@@ -53,11 +54,9 @@ import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.Objects;

/**
 * NotificationManagerService helper for functionality related to zen mode.
@@ -84,17 +83,6 @@ public class ZenModeHelper {
    private AudioManager mAudioManager;
    private int mPreviousRingerMode = -1;

    // temporary, until we update apps to provide metadata
    private static final Set<String> MESSAGE_PACKAGES = new HashSet<String>(Arrays.asList(
            "com.google.android.talk",
            "com.android.mms",
            "com.android.example.notificationshowcase"
            ));
    private static final Set<String> SYSTEM_PACKAGES = new HashSet<String>(Arrays.asList(
            "android",
            "com.android.systemui"
            ));

    public ZenModeHelper(Context context, Handler handler) {
        mContext = context;
        mHandler = handler;
@@ -249,9 +237,7 @@ public class ZenModeHelper {
            allowDisable = mZenMode == Global.ZEN_MODE_OFF || mConfig.allowCalls;
            reason = mZenMode == Global.ZEN_MODE_OFF ? "zenOff" : "allowCalls";
        }
        if (!SYSTEM_PACKAGES.contains(pkg)) {
        ZenLog.traceAllowDisable(pkg, allowDisable, reason);
        }
        return allowDisable;
    }

@@ -305,8 +291,7 @@ public class ZenModeHelper {
    }

    private boolean isSystem(NotificationRecord record) {
        return SYSTEM_PACKAGES.contains(record.sbn.getPackageName())
                && record.isCategory(Notification.CATEGORY_SYSTEM);
        return record.isCategory(Notification.CATEGORY_SYSTEM);
    }

    private boolean isAlarm(NotificationRecord record) {
@@ -330,8 +315,14 @@ public class ZenModeHelper {
                && pkg.equals(mDefaultPhoneApp.getPackageName());
    }

    private boolean isDefaultMessagingApp(NotificationRecord record) {
        final String defaultApp = Secure.getStringForUser(mContext.getContentResolver(),
                Secure.SMS_DEFAULT_APPLICATION, record.getUserId());
        return Objects.equals(defaultApp, record.sbn.getPackageName());
    }

    private boolean isMessage(NotificationRecord record) {
        return MESSAGE_PACKAGES.contains(record.sbn.getPackageName());
        return record.isCategory(Notification.CATEGORY_MESSAGE) || isDefaultMessagingApp(record);
    }

    private boolean audienceMatches(NotificationRecord record) {