diff options
author | yuemingw <yuemingw@google.com> | 2018-10-24 13:02:05 +0100 |
---|---|---|
committer | yuemingw <yuemingw@google.com> | 2018-12-10 19:39:29 +0000 |
commit | a35990b63396851c273aebac09e21329a2324def (patch) | |
tree | b7c4efb7dcd1926272950ddeba9abcfa3c4d7cfd /src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java | |
parent | 09b130529cf11cf6d556e801a37812f276260269 (diff) | |
download | packages_apps_Settings-a35990b63396851c273aebac09e21329a2324def.tar.gz packages_apps_Settings-a35990b63396851c273aebac09e21329a2324def.tar.bz2 packages_apps_Settings-a35990b63396851c273aebac09e21329a2324def.zip |
Add Cross profile calendar Settings UI.
Bug: 117976974
Test: make ROBOTEST_FILTER=CrossProfileCalendarPreferenceControllerTest -j40 RunSettingsRoboTests
Change-Id: Ieb4dcfb8091e2c63f4372af220695297c7bb116d
Diffstat (limited to 'src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java')
-rw-r--r-- | src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java new file mode 100644 index 0000000000..38c95dcc7a --- /dev/null +++ b/src/com/android/settings/accounts/CrossProfileCalendarPreferenceController.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package com.android.settings.accounts; + +import static android.provider.Settings.Secure.CROSS_PROFILE_CALENDAR_ENABLED; + +import android.content.Context; +import android.os.UserHandle; +import android.provider.Settings; + +import com.android.settings.core.BasePreferenceController; +import com.android.settings.core.TogglePreferenceController; +import com.android.settings.slices.SliceData; +import com.android.settingslib.RestrictedLockUtils; +import com.android.settingslib.RestrictedLockUtilsInternal; +import com.android.settingslib.RestrictedSwitchPreference; + +import androidx.preference.Preference; + +public class CrossProfileCalendarPreferenceController extends TogglePreferenceController { + + private UserHandle mManagedUser; + + public CrossProfileCalendarPreferenceController(Context context, String key) { + super(context, key); + } + + public void setManagedUser(UserHandle managedUser) { + mManagedUser = managedUser; + } + + @Override + public int getAvailabilityStatus() { + return (mManagedUser != null) ? AVAILABLE : DISABLED_FOR_USER; + } + + @Override + public void updateState(Preference preference) { + super.updateState(preference); + if (preference instanceof RestrictedSwitchPreference && mManagedUser != null) { + final RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference; + final RestrictedLockUtils.EnforcedAdmin enforcedAdmin = + RestrictedLockUtilsInternal.getCrossProfileCalendarEnforcingAdmin( + mContext, mManagedUser.getIdentifier()); + pref.setDisabledByAdmin(enforcedAdmin); + } + } + + @Override + public boolean isChecked() { + if (mManagedUser == null) { + return false; + } + return Settings.Secure.getIntForUser(mContext.getContentResolver(), + CROSS_PROFILE_CALENDAR_ENABLED, /* default= */ 0, + mManagedUser.getIdentifier()) == 1; + } + + @Override + public boolean setChecked(boolean isChecked) { + if (mManagedUser == null) { + return false; + } + final int value = isChecked ? 1 : 0; + return Settings.Secure.putIntForUser(mContext.getContentResolver(), + CROSS_PROFILE_CALENDAR_ENABLED, value, mManagedUser.getIdentifier()); + } +}
\ No newline at end of file |