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

Commit 81c15c05 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Notification summary updates" into pi-dev

parents dc8fff76 f5d1f165
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2639,6 +2639,8 @@
            </intent-filter>
            <meta-data android:name="com.android.settings.category"
                android:value="com.android.settings.category.ia.apps"/>
            <meta-data android:name="com.android.settings.summary"
                       android:resource="@string/summary_empty"/>
            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                android:value="com.android.settings.notification.ConfigureNotificationSettings" />
            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+3 −3
Original line number Diff line number Diff line
@@ -7647,11 +7647,11 @@
    <string name="app_settings_link">Additional settings in the app</string>
    <!-- [CHAR LIMIT=45] App notification listing summary, blocked apps -->
    <string name="app_notification_listing_summary_zero">Turned on for all apps</string>
    <string name="app_notification_listing_summary_zero">On for all apps</string>
    <!-- [CHAR LIMIT=45] App notification listing summary, blocked apps -->
    <plurals name="app_notification_listing_summary_others">
        <item quantity="one">Turned off for <xliff:g id="count" example="1">%d</xliff:g> app</item>
        <item quantity="other">Turned off for <xliff:g id="count" example="10">%d</xliff:g> apps</item>
        <item quantity="one">Off for <xliff:g id="count" example="1">%d</xliff:g> app</item>
        <item quantity="other">Off for <xliff:g id="count" example="10">%d</xliff:g> apps</item>
    </plurals>
    <!-- [CHAR LIMIT=NONE] Footer listing a count of deleted channels. -->
+7 −3
Original line number Diff line number Diff line
@@ -81,11 +81,15 @@ public class AppNotificationPreferenceController extends AppInfoPreferenceContro
        if (appRow == null) {
            return "";
        }
        if (appRow.banned || appRow.channelCount == appRow.blockedChannelCount) {
            return context.getString(R.string.notifications_disabled);
        if (appRow.banned) {
            return context.getText(R.string.notifications_disabled);
        } else if (appRow.channelCount == 0) {
            return context.getText(R.string.notifications_enabled);
        } else if (appRow.channelCount == appRow.blockedChannelCount) {
            return context.getText(R.string.notifications_disabled);
        } else {
            if (appRow.blockedChannelCount == 0) {
                return context.getString(R.string.notifications_enabled);
                return context.getText(R.string.notifications_enabled);
            }
            return context.getString(R.string.notifications_enabled_with_info,
                    context.getResources().getQuantityString(R.plurals.notifications_categories_off,
+50 −0
Original line number Diff line number Diff line
@@ -26,11 +26,13 @@ import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.text.TextUtils;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.RingtonePreference;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.gestures.SwipeToNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
@@ -151,6 +153,54 @@ public class ConfigureNotificationSettings extends DashboardFragment {
        }
    }

    /**
     * For summary
     */
    static class SummaryProvider implements SummaryLoader.SummaryProvider {

        private final Context mContext;
        private final SummaryLoader mSummaryLoader;
        private NotificationBackend mBackend;

        public SummaryProvider(Context context, SummaryLoader summaryLoader) {
            mContext = context;
            mSummaryLoader = summaryLoader;
            mBackend = new NotificationBackend();
        }

        @VisibleForTesting
        protected void setBackend(NotificationBackend backend) {
            mBackend = backend;
        }

        @Override
        public void setListening(boolean listening) {
            if (!listening) {
                return;
            }
            int blockedAppCount = mBackend.getBlockedAppCount();
            if (blockedAppCount == 0) {
                mSummaryLoader.setSummary(this,
                        mContext.getText(R.string.app_notification_listing_summary_zero));
            } else {
                mSummaryLoader.setSummary(this,
                        mContext.getResources().getQuantityString(
                                R.plurals.app_notification_listing_summary_others,
                                blockedAppCount, blockedAppCount));
            }
        }
    }

    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY =
            new SummaryLoader.SummaryProviderFactory() {
                @Override
                public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
                        SummaryLoader summaryLoader) {
                    return new ConfigureNotificationSettings.SummaryProvider(
                            activity, summaryLoader);
                }
            };

    /**
     * For Search.
     */
+9 −0
Original line number Diff line number Diff line
@@ -250,6 +250,15 @@ public class NotificationBackend {
        }
    }

    public int getBlockedAppCount() {
        try {
            return sINM.getBlockedAppCount(UserHandle.myUserId());
        } catch (Exception e) {
            Log.w(TAG, "Error calling NoMan", e);
            return 0;
        }
    }

    static class Row {
        public String section;
    }
Loading