summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/profiles/ProfilesList.java
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2014-11-12 17:14:27 -0800
committerAdnan Begovic <adnan@cyngn.com>2015-10-26 16:11:13 -0700
commitd40cd5728a415efd72ee192fa6f67727411ed959 (patch)
treeae0afabb0d80930130005dd09c6c864e9177cfb1 /src/com/android/settings/profiles/ProfilesList.java
parentcf65d3f14dce8dae3590daac56bdd59be28e1779 (diff)
downloadpackages_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.java103
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();
+ }
+ }
+}