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

Commit a7accd20 authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Allow importance to be reset.

Change-Id: Ib2c2289631dfe4eb2aa09baf84d401eb2000c0d9
parent 33e9656a
Loading
Loading
Loading
Loading
+2 −27
Original line number Diff line number Diff line
@@ -23,35 +23,11 @@
        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
        android:orientation="vertical"
        android:clickable="false"
        android:focusable="false"
        android:paddingTop="8dip"
        android:paddingBottom="8dip">

        <TextView
                android:id="@android:id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:textAppearance="@android:style/TextAppearance.Material.Subhead"
                android:textColor="?android:attr/textColorPrimary"
                android:ellipsize="marquee"
                android:fadingEdge="horizontal" />

        <TextView
                android:id="@android:id/summary"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignStart="@android:id/title"
                android:textAlignment="viewStart"
                android:textAppearance="@android:style/TextAppearance.Material.Body1"
                android:textColor="?android:attr/textColorSecondary"
                android:maxLines="10"
                android:minLines="2" />
        android:focusable="false" >

        <FrameLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="6dp">
                android:layout_height="wrap_content" >

            <ImageView
                    android:id="@+id/low_importance"
@@ -82,5 +58,4 @@
                    android:tint="@color/importance_icon_tint" />

        </FrameLayout>

</LinearLayout>
+6 −0
Original line number Diff line number Diff line
@@ -5839,6 +5839,9 @@
    <!-- [CHAR LIMIT=100] Notification importance slider title -->
    <string name="notification_importance_title">Importance</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: unset importance level description -->
    <string name="notification_importance_none">Not set</string>
    <!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description -->
    <string name="notification_importance_blocked">Blocked: Never show these notifications</string>
@@ -5854,6 +5857,9 @@
    <!-- [CHAR LIMIT=100] Notification Importance slider: max importance level description -->
    <string name="notification_importance_max">Urgent: Peek onto the screen and make sound</string>
    <!-- [CHAR LIMIT=60] Notification importance reset button -->
    <string name="importance_reset">Reset</string>
    <!-- Default Apps > Default notification assistant -->
    <string name="default_notification_assistant">Notification assistant</string>
+42 −1
Original line number Diff line number Diff line
@@ -22,6 +22,47 @@
    <Preference
            android:key="app_settings"
            android:title="@string/app_notification_preferences"
            android:persistent="false" />
            android:order="1" />

    <!-- Apps without topics -->
    <!-- Importance -->
    <Preference
            android:key="importance_title"
            android:title="@string/notification_importance_title"
            android:order="2" />
    <com.android.settings.notification.ImportanceSeekBarPreference
            android:key="importance"
            android:order="3"/>

    <com.android.settings.applications.LayoutPreference
            android:key="importance_reset_button"
            android:layout="@layout/two_buttons_panel"
            android:order="4" />

    <!-- Sensitive -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="sensitive"
            android:title="@string/app_notification_sensitive_title"
            android:summary="@string/app_notification_sensitive_summary"
            android:order="5" />

    <!-- Bypass DND -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="bypass_dnd"
            android:title="@string/app_notification_override_dnd_title"
            android:summary="@string/app_notification_override_dnd_summary"
            android:order="6" />

    <!-- Apps with topics -->
    <!-- Block -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="block"
            android:title="@string/app_notification_block_title"
            android:summary="@string/app_notification_block_summary"
            android:order="7" />
    <PreferenceCategory
            android:key="categories"
            android:title="@string/notification_topic_categories"
            android:order="8" />

</PreferenceScreen>
+18 −13
Original line number Diff line number Diff line
@@ -19,26 +19,31 @@
        android:key="topic_notification_settings">

    <!-- Importance -->
    <Preference
            android:key="importance_title"
            android:title="@string/notification_importance_title"
            android:order="1" />
    <com.android.settings.notification.ImportanceSeekBarPreference
            android:key="importance"
            android:title="@string/notification_importance_title"
            android:order="1"
            android:persistent="false" />
            android:order="2" />

    <!-- Bypass DND -->
    <SwitchPreference
            android:key="bypass_dnd"
            android:title="@string/app_notification_override_dnd_title"
            android:summary="@string/app_notification_override_dnd_summary"
            android:order="2"
            android:persistent="false" />
    <com.android.settings.applications.LayoutPreference
            android:key="importance_reset_button"
            android:order="3"
            android:layout="@layout/two_buttons_panel" />

    <!-- Sensitive -->
    <SwitchPreference
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="sensitive"
            android:title="@string/app_notification_sensitive_title"
            android:summary="@string/app_notification_sensitive_summary"
            android:order="4"
            android:persistent="false" />
            android:order="4" />

    <!-- Bypass DND -->
    <com.android.settingslib.RestrictedSwitchPreference
            android:key="bypass_dnd"
            android:title="@string/app_notification_override_dnd_title"
            android:summary="@string/app_notification_override_dnd_summary"
            android:order="5" />

</PreferenceScreen>
+33 −25
Original line number Diff line number Diff line
@@ -22,8 +22,7 @@ import android.content.pm.ActivityInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.service.notification.NotificationListenerService;
import android.support.v14.preference.SwitchPreference;
import android.service.notification.NotificationListenerService.Ranking;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
@@ -37,6 +36,7 @@ import com.android.settings.AppHeader;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.LayoutPreference;
import com.android.settings.notification.NotificationBackend.AppRow;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -79,7 +79,16 @@ public class AppNotificationSettings extends NotificationSettingsBase {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.app_notification_settings);
        getPreferenceScreen().setOrderingAsAdded(true);
        mCategories = (PreferenceCategory) findPreference(KEY_CATEGORIES);
        mBlock = (RestrictedSwitchPreference) findPreference(KEY_BLOCK);
        mImportance = (ImportanceSeekBarPreference) findPreference(KEY_IMPORTANCE);
        mImportanceReset = (LayoutPreference) findPreference(KEY_IMPORTANCE_RESET);
        mImportanceTitle = findPreference(KEY_IMPORTANCE_TITLE);
        mPriority =
                (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BYPASS_DND);
        mSensitive =
                (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_SENSITIVE);

        mAppRow = mBackend.loadAppRow(mPm, mPkgInfo);

        // load settings intent
@@ -90,16 +99,13 @@ public class AppNotificationSettings extends NotificationSettingsBase {
        // Add topics
        List<Notification.Topic> topics = mBackend.getTopics(mPkg, mUid);
        if (topics.size() <= 1) {
            setupImportancePref(mAppRow, null, mAppRow.appImportance);
            setupPriorityPref(null, mAppRow.appBypassDnd);
            setupSensitivePref(null, mAppRow.appSensitive);
            removeAppPrefs();
            setupImportancePrefs(mAppRow.systemApp, mAppRow.appImportance);
            setupPriorityPref(mAppRow.appBypassDnd);
            setupSensitivePref(mAppRow.appSensitive);
        } else {
            removeTopicPrefs();
            setupBlockSwitch();
            mCategories = new PreferenceCategory(getPrefContext());
            mCategories.setKey(KEY_CATEGORIES);
            mCategories.setTitle(R.string.notification_topic_categories);
            mCategories.setOrderingAsAdded(true);
            getPreferenceScreen().addPreference(mCategories);
            for (Notification.Topic topic : topics) {
                RestrictedPreference topicPreference = new RestrictedPreference(getPrefContext());
                topicPreference.setDisabledByAdmin(
@@ -138,22 +144,28 @@ public class AppNotificationSettings extends NotificationSettingsBase {

    @Override
    protected void updateDependents(int progress) {
        updateDependents(progress == NotificationListenerService.Ranking.IMPORTANCE_NONE);
        updateDependents(progress == Ranking.IMPORTANCE_NONE);
    }

    private void updateDependents(boolean banned) {
        if (mBlock != null) {
            mBlock.setEnabled(!mAppRow.systemApp);
            mBlock.setDisabledByAdmin(
                    RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
    private void removeTopicPrefs() {
        setVisible(mImportance, false);
        setVisible(mImportanceReset, false);
        setVisible(mImportanceTitle, false);
        setVisible(mPriority, false);
        setVisible(mSensitive, false);
    }
        if (mCategories != null) {
            setVisible(mCategories, !banned);

    private void removeAppPrefs() {
        setVisible(mBlock, false);
        setVisible(mCategories, false);
    }

    private void updateDependents(boolean banned) {
        mBlock.setEnabled(!mAppRow.systemApp);
        mCategories.setEnabled(!banned);
    }

    private void setupBlockSwitch() {
        mBlock = new RestrictedSwitchPreference(getPrefContext());
        mBlock.setDisabledByAdmin(
                RestrictedLockUtils.checkIfApplicationIsSuspended(mContext, mPkg, mUserId));
        mBlock.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@@ -170,10 +182,6 @@ public class AppNotificationSettings extends NotificationSettingsBase {
                return success;
            }
        });
        mBlock.setKey(KEY_BLOCK);
        mBlock.setTitle(R.string.app_notification_block_title);
        mBlock.setSummary(R.string.app_notification_block_summary);
        getPreferenceScreen().addPreference(mBlock);
        mBlock.setChecked(mAppRow.banned);
        updateDependents(mAppRow.banned);
    }
Loading