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

Commit b4365070 authored by Danny Baumann's avatar Danny Baumann Committed by LuK1337
Browse files

Add setup UI for minimum delay between an app's notification sounds

Change-Id: I70e9cc308b4f7c7681457a0b09dd73e5d1aebb73
parent 3d313201
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -23,4 +23,26 @@
        <item>@string/security_settings_fingerprint_sensor_location_left</item>
        <item>@string/security_settings_fingerprint_sensor_location_right</item>
    </string-array>

    <!-- Per-app notification settings: Timeout period in which the app notifications are muted. These are shown in a list dialog. -->
    <string-array name="app_notification_sound_timeout_entries" translatable="false">
        <item>@string/app_notification_sound_timeout_value_none</item>
        <item>@string/app_notification_sound_timeout_value_10_seconds</item>
        <item>@string/app_notification_sound_timeout_value_30_seconds</item>
        <item>@string/app_notification_sound_timeout_value_1_minute</item>
        <item>@string/app_notification_sound_timeout_value_5_minutes</item>
        <item>@string/app_notification_sound_timeout_value_15_minutes</item>
        <item>@string/app_notification_sound_timeout_value_30_minutes</item>
    </string-array>

    <!-- Do not translate. -->
    <string-array name="app_notification_sound_timeout_values" translatable="false">
        <item>0</item>
        <item>10000</item>
        <item>30000</item>
        <item>60000</item>
        <item>300000</item>
        <item>900000</item>
        <item>1800000</item>
    </string-array>
</resources>
+11 −0
Original line number Diff line number Diff line
@@ -378,4 +378,15 @@
    <!-- Battery saving mode for Location - GPS will be disabled -->
    <string name="location_mode_battery_saving_title">Battery saving mode</string>
    <string name="location_mode_battery_saving_summary">Use only Wi\u2011Fi, Bluetooth, or cellular networks to determine location (less accurate)</string>

    <!-- Notification sound timeout -->
    <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
    <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
    <string name="app_notification_sound_timeout_value_none">No restriction</string>
    <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
    <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
    <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
    <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
    <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
    <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
</resources>
+8 −1
Original line number Diff line number Diff line
@@ -60,9 +60,16 @@
            settings:useAdditionalSummary="true"
            android:order="1001"
            settings:restrictedSwitchSummary="@string/enabled_by_admin" />
        <com.android.settings.RestrictedListPreference
            android:key="sound_timeout"
            android:title="@string/app_notification_sound_timeout_title"
            android:entries="@array/app_notification_sound_timeout_entries"
            android:entryValues="@array/app_notification_sound_timeout_values"
            android:order="1002"
            android:persistent="false" />
        <Preference
            android:key="app_link"
            android:order="1002"
            android:order="1003"
            android:title="@string/app_settings_link" />

    </PreferenceCategory>
+1 −0
Original line number Diff line number Diff line
@@ -130,6 +130,7 @@ public class AppNotificationSettings extends NotificationSettingsBase {
        mControllers.add(new HeaderPreferenceController(context, this));
        mControllers.add(new BlockPreferenceController(context, mImportanceListener, mBackend));
        mControllers.add(new BadgePreferenceController(context, mBackend));
        mControllers.add(new SoundTimeoutPreferenceController(context, mBackend));
        mControllers.add(new AllowSoundPreferenceController(
                context, mImportanceListener, mBackend));
        mControllers.add(new ImportancePreferenceController(
+21 −0
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ public class NotificationBackend {
        row.userId = UserHandle.getUserId(row.uid);
        row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
        row.channelCount = getChannelCount(row.pkg, row.uid);
        row.soundTimeout = getNotificationSoundTimeout(row.pkg, row.uid);
        return row;
    }

@@ -259,6 +260,25 @@ public class NotificationBackend {
        }
    }

    public long getNotificationSoundTimeout(String pkg, int uid) {
        try {
            return sINM.getNotificationSoundTimeout(pkg, uid);
        } catch (Exception e) {
            Log.w(TAG, "Error calling NoMan", e);
            return 0;
        }
    }

    public boolean setNotificationSoundTimeout(String pkg, int uid, long timeout) {
        try {
            sINM.setNotificationSoundTimeout(pkg, uid, timeout);
            return true;
        } catch (Exception e) {
            Log.w(TAG, "Error calling NoMan", e);
            return false;
        }
    }

    static class Row {
        public String section;
    }
@@ -278,5 +298,6 @@ public class NotificationBackend {
        public int userId;
        public int blockedChannelCount;
        public int channelCount;
        public long soundTimeout;
    }
}
Loading