/* * Copyright (C) 2013 The ChameleonOS 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.aokp.romcontrol.fragments.applauncher; import android.app.ActionBar; import android.app.Activity; import android.app.ActivityManager; import android.app.Fragment; import android.content.ContentResolver; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.preference.SwitchPreference; import android.provider.Settings; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import com.aokp.romcontrol.R; import com.aokp.romcontrol.widgets.SeekBarPreferenceCham; public class GestureAnywhereSettings extends Fragment { public GestureAnywhereSettings() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_gesture_anywhere_main, container, false); Resources res = getResources(); super.onCreate(savedInstanceState); getChildFragmentManager().beginTransaction() .replace(R.id.gesture_anywhere_main, new GestureAnywhereSettingsPreferenceFragment()) .commit(); return v; } public static class GestureAnywhereSettingsPreferenceFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener { public GestureAnywhereSettingsPreferenceFragment() { } private static final String TAG = "GestureAnywhereSettings"; private static final String KEY_ENABLED = "gesture_anywhere_enabled"; private static final String KEY_POSITION = "gesture_anywhere_position"; private static final String KEY_GESTURES = "gesture_anywhere_gestures"; private static final String KEY_TRIGGER_WIDTH = "gesture_anywhere_trigger_width"; private static final String KEY_TRIGGER_TOP = "gesture_anywhere_trigger_top"; private static final String KEY_TRIGGER_BOTTOM = "gesture_anywhere_trigger_bottom"; private SwitchPreference mEnabledPref; private ListPreference mPositionPref; private SeekBarPreferenceCham mTriggerWidthPref; private SeekBarPreferenceCham mTriggerTopPref; private SeekBarPreferenceCham mTriggerBottomPref; private CharSequence mPreviousTitle; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.fragment_gesture_anywhere); mEnabledPref = (SwitchPreference) findPreference(KEY_ENABLED); mEnabledPref.setChecked((Settings.System.getInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_ENABLED, 0) == 1)); mEnabledPref.setOnPreferenceChangeListener(this); PreferenceScreen prefSet = getPreferenceScreen(); mPositionPref = (ListPreference) prefSet.findPreference(KEY_POSITION); mPositionPref.setOnPreferenceChangeListener(this); int position = Settings.System.getInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_POSITION, Gravity.LEFT); mPositionPref.setValue(String.valueOf(position)); updatePositionSummary(position); mTriggerWidthPref = (SeekBarPreferenceCham) findPreference(KEY_TRIGGER_WIDTH); mTriggerWidthPref.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_WIDTH, 10)); mTriggerWidthPref.setOnPreferenceChangeListener(this); mTriggerTopPref = (SeekBarPreferenceCham) findPreference(KEY_TRIGGER_TOP); mTriggerTopPref.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_TOP, 0)); mTriggerTopPref.setOnPreferenceChangeListener(this); mTriggerBottomPref = (SeekBarPreferenceCham) findPreference(KEY_TRIGGER_BOTTOM); mTriggerBottomPref.setValue(Settings.System.getInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_HEIGHT, 100)); mTriggerBottomPref.setOnPreferenceChangeListener(this); Preference pref = findPreference(KEY_GESTURES); pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { startActivity(new Intent(getActivity(), GestureAnywhereBuilderActivity.class)); return true; } }); } @Override public void onStart() { super.onStart(); final ActionBar bar = getActivity().getActionBar(); mPreviousTitle = bar.getTitle(); bar.setTitle(R.string.gesture_anywhere_title); } @Override public void onStop() { super.onStop(); getActivity().getActionBar().setTitle(mPreviousTitle); } public boolean onPreferenceChange(Preference preference, Object newValue) { if (preference == mPositionPref) { int position = Integer.valueOf((String) newValue); updatePositionSummary(position); return true; } else if (preference == mEnabledPref) { Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_ENABLED, ((Boolean) newValue).booleanValue() ? 1 : 0); return true; } else if (preference == mTriggerWidthPref) { int width = ((Integer)newValue).intValue(); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_WIDTH, width); return true; } else if (preference == mTriggerTopPref) { int top = ((Integer)newValue).intValue(); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_TOP, top); return true; } else if (preference == mTriggerBottomPref) { int bottom = ((Integer)newValue).intValue(); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_TRIGGER_HEIGHT, bottom); return true; } return false; } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { boolean value; return true; } private void updatePositionSummary(int value) { mPositionPref.setSummary(mPositionPref.getEntries()[mPositionPref.findIndexOfValue("" + value)]); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_POSITION, value); } @Override public void onPause() { super.onPause(); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_SHOW_TRIGGER, 0); } @Override public void onResume() { super.onResume(); Settings.System.putInt(getActivity().getContentResolver(), Settings.System.GESTURE_ANYWHERE_SHOW_TRIGGER, 1); } } }