17fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi/* 27fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * Copyright (C) 2015 The Android Open Source Project 37fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * 47fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * Licensed under the Apache License, Version 2.0 (the "License"); 57fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * you may not use this file except in compliance with the License. 67fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * You may obtain a copy of the License at 77fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * 87fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * http://www.apache.org/licenses/LICENSE-2.0 97fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * 107fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * Unless required by applicable law or agreed to in writing, software 117fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * distributed under the License is distributed on an "AS IS" BASIS, 127fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * See the License for the specific language governing permissions and 147fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * limitations under the License. 157fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi */ 167fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi 177fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedipackage com.android.launcher3; 187fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi 197fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvediimport android.app.Activity; 207fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvediimport android.os.Bundle; 21799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvediimport android.preference.Preference; 227779d62308b87ca26e3be47df836893f6f7693ecSunny Goyalimport android.preference.Preference.OnPreferenceChangeListener; 237fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvediimport android.preference.PreferenceFragment; 247779d62308b87ca26e3be47df836893f6f7693ecSunny Goyalimport android.preference.SwitchPreference; 257fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi 267fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi/** 27799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvedi * Settings activity for Launcher. Currently implements the following setting: Allow rotation 287fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi */ 297fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedipublic class SettingsActivity extends Activity { 307fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi @Override 317fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi protected void onCreate(Bundle savedInstanceState) { 327fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi super.onCreate(savedInstanceState); 337fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi 347fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi // Display the fragment as the main content. 357fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi getFragmentManager().beginTransaction() 367fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi .replace(android.R.id.content, new LauncherSettingsFragment()) 377fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi .commit(); 387fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi } 397fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi 407fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi /** 417fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi * This fragment shows the launcher preferences. 427fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi */ 437779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal public static class LauncherSettingsFragment extends PreferenceFragment 447779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal implements OnPreferenceChangeListener { 457fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi @Override 467fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi public void onCreate(Bundle savedInstanceState) { 477fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi super.onCreate(savedInstanceState); 487fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi addPreferencesFromResource(R.xml.launcher_preferences); 497779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal 507779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal SwitchPreference pref = (SwitchPreference) findPreference( 517779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal Utilities.ALLOW_ROTATION_PREFERENCE_KEY); 527779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal pref.setPersistent(false); 537779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal 547779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal Bundle extras = new Bundle(); 557779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal extras.putBoolean(LauncherSettings.Settings.EXTRA_DEFAULT_VALUE, false); 567779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal Bundle value = getActivity().getContentResolver().call( 577779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal LauncherSettings.Settings.CONTENT_URI, 587779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal LauncherSettings.Settings.METHOD_GET_BOOLEAN, 597779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal Utilities.ALLOW_ROTATION_PREFERENCE_KEY, extras); 607779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal pref.setChecked(value.getBoolean(LauncherSettings.Settings.EXTRA_VALUE)); 617779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal 627779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal pref.setOnPreferenceChangeListener(this); 637fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi } 64799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvedi 65799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvedi @Override 667779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal public boolean onPreferenceChange(Preference preference, Object newValue) { 677779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal Bundle extras = new Bundle(); 687779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal extras.putBoolean(LauncherSettings.Settings.EXTRA_VALUE, (Boolean) newValue); 697779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal getActivity().getContentResolver().call( 707779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal LauncherSettings.Settings.CONTENT_URI, 717779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal LauncherSettings.Settings.METHOD_SET_BOOLEAN, 727779d62308b87ca26e3be47df836893f6f7693ecSunny Goyal preference.getKey(), extras); 73799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvedi return true; 74799aa04f2f961742a2f99bc0dc5a19f6bbbe2f56Rahul Chaturvedi } 757fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi } 767fc77cad3d06bd3647e550f7419e89116471240aRahul Chaturvedi} 77