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

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

Merge "Show setting for work profile lock screen notification" into oc-dev

parents f68bb7e7 879f079e
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
    android:title="@string/lockscreen_settings_title">

    <com.android.settings.notification.RestrictedDropDownPreference
            android:key="lock_screen_notifications"
        android:key="security_setting_lock_screen_notif"
        android:title="@string/lock_screen_notifications_title"
        android:summary="@string/summary_placeholder" />

@@ -32,4 +32,15 @@
        android:title="@string/owner_info_settings_title"
        android:summary="@string/owner_info_settings_summary" />

    <PreferenceCategory
        android:key="security_setting_lock_screen_notif_work_header"
        android:title="@string/profile_section_header">

        <com.android.settings.notification.RestrictedDropDownPreference
            android:key="security_setting_lock_screen_notif_work"
            android:title="@string/lock_screen_notifications_title"
            android:summary="@string/summary_placeholder" />

    </PreferenceCategory>

</PreferenceScreen>
+4 −1
Original line number Diff line number Diff line
@@ -65,7 +65,10 @@ public class ConfigureNotificationSettings extends DashboardFragment {
        final PulseNotificationPreferenceController pulseController =
                new PulseNotificationPreferenceController(context);
        final LockScreenNotificationPreferenceController lockScreenNotificationController =
                new LockScreenNotificationPreferenceController(context);
                new LockScreenNotificationPreferenceController(context,
                        "lock_screen_notifications",
                        "lock_screen_notifications_profile_header",
                        "lock_screen_notifications_profile");
        if (lifecycle != null) {
            lifecycle.addObserver(pulseController);
            lifecycle.addObserver(lockScreenNotificationController);
+25 −18
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.UserManager;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import android.util.Log;

import com.android.internal.widget.LockPatternUtils;
@@ -46,11 +47,10 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
        Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {

    private static final String TAG = "LockScreenNotifPref";
    private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications";
    private static final String KEY_LOCK_SCREEN_PROFILE_HEADER =
            "lock_screen_notifications_profile_header";
    private static final String KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS =
            "lock_screen_notifications_profile";

    private final String mSettingKey;
    private final String mWorkSettingCategoryKey;
    private final String mWorkSettingKey;

    private RestrictedDropDownPreference mLockscreen;
    private RestrictedDropDownPreference mLockscreenProfile;
@@ -64,7 +64,16 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
    private int mLockscreenSelectedValueProfile;

    public LockScreenNotificationPreferenceController(Context context) {
        this(context, null, null, null);
    }

    public LockScreenNotificationPreferenceController(Context context,
            String settingKey, String workSettingCategoryKey, String workSettingKey) {
        super(context);
        mSettingKey = settingKey;
        mWorkSettingCategoryKey = workSettingCategoryKey;
        mWorkSettingKey = workSettingKey;

        mProfileChallengeUserId = Utils.getManagedProfileId(
                UserManager.get(context), UserHandle.myUserId());
        final LockPatternUtils utils = new LockPatternUtils(context);
@@ -79,17 +88,17 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mLockscreen =
                (RestrictedDropDownPreference) screen.findPreference(KEY_LOCK_SCREEN_NOTIFICATIONS);
                (RestrictedDropDownPreference) screen.findPreference(mSettingKey);
        if (mLockscreen == null) {
            Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_NOTIFICATIONS);
            Log.i(TAG, "Preference not found: " + mSettingKey);
            return;
        }
        if (mProfileChallengeUserId != UserHandle.USER_NULL) {
            mLockscreenProfile = (RestrictedDropDownPreference) screen.findPreference(
                    KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
                    mWorkSettingKey);
        } else {
            removePreference(screen, KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
            removePreference(screen, KEY_LOCK_SCREEN_PROFILE_HEADER);
            removePreference(screen, mWorkSettingKey);
            removePreference(screen, mWorkSettingCategoryKey);
        }
        mSettingObserver = new SettingObserver();
        initLockScreenNotificationPrefDisplay();
@@ -136,7 +145,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro

    private void initLockscreenNotificationPrefForProfile() {
        if (mLockscreenProfile == null) {
            Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS);
            Log.i(TAG, "Preference not found: " + mWorkSettingKey);
            return;
        }
        ArrayList<CharSequence> entries = new ArrayList<>();
@@ -205,8 +214,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        switch (preference.getKey()) {
            case KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS: {
        final String key = preference.getKey();
        if (TextUtils.equals(mWorkSettingKey, key)) {
                final int val = Integer.parseInt((String) newValue);
                if (val == mLockscreenSelectedValueProfile) {
                    return false;
@@ -223,8 +232,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
                        enabled ? 1 : 0, mProfileChallengeUserId);
                mLockscreenSelectedValueProfile = val;
                return true;
            }
            case KEY_LOCK_SCREEN_NOTIFICATIONS: {
        } else if (TextUtils.equals(mSettingKey, key)) {
                final int val = Integer.parseInt((String) newValue);
                if (val == mLockscreenSelectedValue) {
                    return false;
@@ -239,10 +247,8 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
                mLockscreenSelectedValue = val;
                return true;
        }
            default:
        return false;
    }
    }

    private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry,
            CharSequence entryValue, int keyguardNotificationFeatures) {
@@ -295,6 +301,7 @@ public class LockScreenNotificationPreferenceController extends PreferenceContro
        final boolean enabled = getLockscreenNotificationsEnabled(mProfileChallengeUserId);
        final boolean allowPrivate = !mSecureProfile
                || getLockscreenAllowPrivateNotifications(mProfileChallengeUserId);
        mLockscreenProfile.setSummary("%s");
        mLockscreenSelectedValueProfile = !enabled
                ? R.string.lock_screen_notifications_summary_disable_profile
                : (allowPrivate ? R.string.lock_screen_notifications_summary_show_profile
+16 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.settings.security;

import android.content.Context;
import android.provider.SearchIndexableResource;
import android.support.annotation.VisibleForTesting;

import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
@@ -26,6 +28,7 @@ import com.android.settings.core.lifecycle.Lifecycle;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -38,6 +41,15 @@ public class LockscreenDashboardFragment extends DashboardFragment

    private static final String TAG = "LockscreenDashboardFragment";

    @VisibleForTesting
    static final String KEY_LOCK_SCREEN_NOTIFICATON = "security_setting_lock_screen_notif";
    @VisibleForTesting
    static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER =
            "security_setting_lock_screen_notif_work_header";
    @VisibleForTesting
    static final String KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE =
            "security_setting_lock_screen_notif_work";

    private OwnerInfoPreferenceController mOwnerInfoPreferenceController;

    @Override
@@ -60,7 +72,10 @@ public class LockscreenDashboardFragment extends DashboardFragment
        final List<PreferenceController> controllers = new ArrayList<>();
        final Lifecycle lifecycle = getLifecycle();
        final LockScreenNotificationPreferenceController notificationController =
            new LockScreenNotificationPreferenceController(context);
            new LockScreenNotificationPreferenceController(context,
                    KEY_LOCK_SCREEN_NOTIFICATON,
                    KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER,
                    KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE);
        lifecycle.addObserver(notificationController);
        controllers.add(notificationController);
        final AddUserWhenLockedPreferenceController addUserWhenLockedController =
+0 −1
Original line number Diff line number Diff line
add_users_when_locked
additional_system_update_settings
dashboard_tile_placeholder
lock_screen_notifications
screen_zoom
usage_access
 No newline at end of file
Loading