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