1e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan/* 2e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * Copyright (C) 2012 The Android Open Source Project 3e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * 4e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * Licensed under the Apache License, Version 2.0 (the "License"); 5e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * you may not use this file except in compliance with the License. 6e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * You may obtain a copy of the License at 7e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * 8e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * http://www.apache.org/licenses/LICENSE-2.0 9e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * 10e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * Unless required by applicable law or agreed to in writing, software 11e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * distributed under the License is distributed on an "AS IS" BASIS, 12e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * See the License for the specific language governing permissions and 14e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * limitations under the License. 15e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan */ 16e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 17e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanpackage com.android.calendar; 18e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 19e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.app.Activity; 20e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.os.Bundle; 21e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.preference.EditTextPreference; 22e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.preference.Preference; 23e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.preference.Preference.OnPreferenceChangeListener; 24e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.preference.PreferenceFragment; 25e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.preference.PreferenceScreen; 26e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport android.util.Log; 27e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 28e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanimport java.util.Arrays; 29e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 30e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan/** 31e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * Fragment to facilitate editing of quick responses when emailing guests 32e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan * 33e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan */ 34e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chanpublic class QuickResponseSettings extends PreferenceFragment implements OnPreferenceChangeListener { 35e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan private static final String TAG = "QuickResponseSettings"; 36e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 37e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan EditTextPreference[] mEditTextPrefs; 38e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan String[] mResponses; 39e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 40e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan @Override 41e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan public void onCreate(Bundle savedInstanceState) { 42e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan super.onCreate(savedInstanceState); 43e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 44e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan PreferenceScreen ps = getPreferenceManager().createPreferenceScreen(getActivity()); 45e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan ps.setTitle(R.string.quick_response_settings_title); 46e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 47e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mResponses = Utils.getQuickResponses(getActivity()); 48e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 49e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan if (mResponses != null) { 50e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mEditTextPrefs = new EditTextPreference[mResponses.length]; 51e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 52e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan Arrays.sort(mResponses); 53e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan int i = 0; 54e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan for (String response : mResponses) { 55e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan EditTextPreference et = new EditTextPreference(getActivity()); 56e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan et.setDialogTitle(R.string.quick_response_settings_edit_title); 57e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan et.setTitle(response); // Display Text 58e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan et.setText(response); // Value to edit 59e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan et.setOnPreferenceChangeListener(this); 60e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mEditTextPrefs[i++] = et; 61e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan ps.addPreference(et); 62e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 63e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } else { 64e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan Log.wtf(TAG, "No responses found"); 65e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 66e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan setPreferenceScreen(ps); 67e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 68e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 69e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan @Override 70e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan public void onAttach(Activity activity) { 71e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan super.onAttach(activity); 72e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan ((CalendarSettingsActivity) activity).hideMenuButtons(); 73e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 74e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 75e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan @Override 76e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan public void onResume() { 77e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan super.onResume(); 78e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan CalendarSettingsActivity activity = (CalendarSettingsActivity) getActivity(); 79e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan if (!activity.isMultiPane()) { 80e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan activity.setTitle(R.string.quick_response_settings_title); 81e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 82e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 83e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan 84e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan // Implements OnPreferenceChangeListener 85e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan @Override 86e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan public boolean onPreferenceChange(Preference preference, Object newValue) { 87e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan for (int i = 0; i < mEditTextPrefs.length; i++) { 88e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan if (mEditTextPrefs[i].compareTo(preference) == 0) { 89e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan if (!mResponses[i].equals(newValue)) { 90e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mResponses[i] = (String) newValue; 91e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mEditTextPrefs[i].setTitle(mResponses[i]); 92e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan mEditTextPrefs[i].setText(mResponses[i]); 93e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan Utils.setSharedPreference(getActivity(), Utils.KEY_QUICK_RESPONSES, mResponses); 94e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 95e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan return true; 96e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 97e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 98e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan return false; 99e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan } 100e98dca7e0042f7b36788b0e5d8dc6e94048c895cMichael Chan} 101