diff options
author | Danny Baumann <dannybaumann@web.de> | 2014-11-12 17:14:27 -0800 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-26 16:11:13 -0700 |
commit | d40cd5728a415efd72ee192fa6f67727411ed959 (patch) | |
tree | ae0afabb0d80930130005dd09c6c864e9177cfb1 /src/com/android/settings/profiles/ProfilesList.java | |
parent | cf65d3f14dce8dae3590daac56bdd59be28e1779 (diff) | |
download | packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.zip packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.tar.gz packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.tar.bz2 |
Profiles : Settings
Change-Id: I072758a1c5ec04ef34077551220b6611068fe71d
Diffstat (limited to 'src/com/android/settings/profiles/ProfilesList.java')
-rw-r--r-- | src/com/android/settings/profiles/ProfilesList.java | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/com/android/settings/profiles/ProfilesList.java b/src/com/android/settings/profiles/ProfilesList.java new file mode 100644 index 0000000..13fa16b --- /dev/null +++ b/src/com/android/settings/profiles/ProfilesList.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2012 The CyanogenMod 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.profiles; + +import java.util.UUID; + +import android.app.Profile; +import android.app.ProfileManager; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.PreferenceScreen; +import android.provider.Settings; +import android.text.TextUtils; + +import com.android.settings.R; +import com.android.settings.SettingsPreferenceFragment; +import com.android.settings.Utils; + +public class ProfilesList extends SettingsPreferenceFragment implements + Preference.OnPreferenceChangeListener { + static final String TAG = "ProfilesSettings"; + public static final String PROFILE_SERVICE = "profile"; + + private ProfileManager mProfileManager; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + addPreferencesFromResource(R.xml.profiles_settings); + mProfileManager = (ProfileManager) getActivity().getSystemService(PROFILE_SERVICE); + } + + @Override + public void onResume() { + super.onResume(); + refreshList(); + + // On tablet devices remove the padding + if (Utils.isTablet(getActivity())) { + getListView().setPadding(0, 0, 0, 0); + } + } + + public void refreshList() { + PreferenceScreen plist = getPreferenceScreen(); + plist.removeAll(); + + // Get active profile, if null + Profile prof = mProfileManager.getActiveProfile(); + String selectedKey = prof != null ? prof.getUuid().toString() : null; + + for (Profile profile : mProfileManager.getProfiles()) { + Bundle args = new Bundle(); + args.putParcelable("Profile", profile); + + ProfilesPreference ppref = new ProfilesPreference(this, args); + ppref.setKey(profile.getUuid().toString()); + ppref.setTitle(profile.getName()); + ppref.setPersistent(false); + ppref.setOnPreferenceChangeListener(this); + ppref.setSelectable(true); + ppref.setEnabled(true); + + if (TextUtils.equals(selectedKey, ppref.getKey())) { + ppref.setChecked(true); + } + + plist.addPreference(ppref); + } + } + + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (newValue instanceof String) { + setSelectedProfile((String) newValue); + refreshList(); + } + return true; + } + + private void setSelectedProfile(String key) { + try { + UUID selectedUuid = UUID.fromString(key); + mProfileManager.setActiveProfile(selectedUuid); + } catch (IllegalArgumentException ex) { + ex.printStackTrace(); + } + } +} |