1c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka/* 2c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka * Copyright (C) 2012 The Android Open Source Project 3c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka * 48aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * Licensed under the Apache License, Version 2.0 (the "License"); 58aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * you may not use this file except in compliance with the License. 68aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * You may obtain a copy of the License at 7c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka * 88aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * http://www.apache.org/licenses/LICENSE-2.0 9c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka * 10c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka * Unless required by applicable law or agreed to in writing, software 118aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * distributed under the License is distributed on an "AS IS" BASIS, 128aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * See the License for the specific language governing permissions and 148aa9963a895f9dd5bb1bc92ab2e4f461e058f87aTadashi G. Takaoka * limitations under the License. 15c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka */ 16c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka 17a7d2fc6befa1b16883200a653fc01deb4d94944dKen Wakasapackage com.android.inputmethod.latin.settings; 18c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka 19604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheikimport com.android.inputmethod.latin.permissions.PermissionsManager; 2064f64bdf58ebcfb412c810646eb12e22b586aa87Satoshi Kataokaimport com.android.inputmethod.latin.utils.FragmentUtils; 2193d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheikimport com.android.inputmethod.latin.utils.StatsUtils; 2293d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheikimport com.android.inputmethod.latin.utils.StatsUtilsManager; 2364f64bdf58ebcfb412c810646eb12e22b586aa87Satoshi Kataoka 2476cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaokaimport android.app.ActionBar; 25c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaokaimport android.content.Intent; 2676cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaokaimport android.os.Bundle; 27c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaokaimport android.preference.PreferenceActivity; 28604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheikimport android.support.v4.app.ActivityCompat; 2976cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaokaimport android.view.MenuItem; 30c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka 31604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheikpublic final class SettingsActivity extends PreferenceActivity 32604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik implements ActivityCompat.OnRequestPermissionsResultCallback { 33cbee8a33d58f438b1e616947df282944c0046498Tadashi G. Takaoka private static final String DEFAULT_FRAGMENT = SettingsFragment.class.getName(); 3493d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik 3593d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_SHOW_HOME_AS_UP = "show_home_as_up"; 3693d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_ENTRY_KEY = "entry"; 3793d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_ENTRY_VALUE_LONG_PRESS_COMMA = "long_press_comma"; 3893d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_ENTRY_VALUE_APP_ICON = "app_icon"; 3993d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_ENTRY_VALUE_NOTICE_DIALOG = "important_notice"; 4093d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik public static final String EXTRA_ENTRY_VALUE_SYSTEM_SETTINGS = "system_settings"; 4193d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik 4276cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka private boolean mShowHomeAsUp; 4376cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka 4476cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka @Override 4576cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka protected void onCreate(final Bundle savedState) { 4676cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka super.onCreate(savedState); 4776cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka final ActionBar actionBar = getActionBar(); 4893d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik final Intent intent = getIntent(); 4976cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka if (actionBar != null) { 5093d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik mShowHomeAsUp = intent.getBooleanExtra(EXTRA_SHOW_HOME_AS_UP, true); 5176cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka actionBar.setDisplayHomeAsUpEnabled(mShowHomeAsUp); 5276cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka actionBar.setHomeButtonEnabled(mShowHomeAsUp); 5376cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka } 5493d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik StatsUtils.onSettingsActivity( 5593d2ab38577fb3d7c919bc4fd19a769f5c93e654Mohammadinamul Sheik intent.hasExtra(EXTRA_ENTRY_KEY) ? intent.getStringExtra(EXTRA_ENTRY_KEY) 562fb8e5eecf0b472c00c40ab01d7bae81bdd4459fJatin Matani : EXTRA_ENTRY_VALUE_SYSTEM_SETTINGS); 5776cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka } 5876cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka 5976cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka @Override 6076cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka public boolean onOptionsItemSelected(final MenuItem item) { 6176cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka if (mShowHomeAsUp && item.getItemId() == android.R.id.home) { 6276cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka finish(); 6376cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka return true; 6476cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka } 6576cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka return super.onOptionsItemSelected(item); 6676cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka } 67c27fe6253c1d8b3ad3c2f891a48ec5c54d77a3f1Tadashi G. Takaoka 68c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka @Override 69c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka public Intent getIntent() { 70c27fe6253c1d8b3ad3c2f891a48ec5c54d77a3f1Tadashi G. Takaoka final Intent intent = super.getIntent(); 71262d5bd9f964d7fb18d96ec2ccf821b042aa3a3aTadashi G. Takaoka final String fragment = intent.getStringExtra(EXTRA_SHOW_FRAGMENT); 72262d5bd9f964d7fb18d96ec2ccf821b042aa3a3aTadashi G. Takaoka if (fragment == null) { 73262d5bd9f964d7fb18d96ec2ccf821b042aa3a3aTadashi G. Takaoka intent.putExtra(EXTRA_SHOW_FRAGMENT, DEFAULT_FRAGMENT); 74262d5bd9f964d7fb18d96ec2ccf821b042aa3a3aTadashi G. Takaoka } 75c27fe6253c1d8b3ad3c2f891a48ec5c54d77a3f1Tadashi G. Takaoka intent.putExtra(EXTRA_NO_HEADERS, true); 76c27fe6253c1d8b3ad3c2f891a48ec5c54d77a3f1Tadashi G. Takaoka return intent; 77c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka } 78c5182c9a4ae66e75df8c959bf625d08ef99f81d2Satoshi Kataoka 79bfcd98edc7c5ac28fdc1e4b7a97b2912124e622aTadashi G. Takaoka @Override 8076cffec78834a2db525608587eae1a5a7ef998ddTadashi G. Takaoka public boolean isValidFragment(final String fragmentName) { 8164f64bdf58ebcfb412c810646eb12e22b586aa87Satoshi Kataoka return FragmentUtils.isValidFragment(fragmentName); 82c5182c9a4ae66e75df8c959bf625d08ef99f81d2Satoshi Kataoka } 83604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik 84604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik @Override 85604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 86604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik PermissionsManager.get(this).onRequestPermissionsResult(requestCode, permissions, grantResults); 87604158669b407a40cd0f23538fad4dce5d738f24Mohammadinamul Sheik } 88c206d0462354b3bf1ad0cec61534da567829555dTadashi G. Takaoka} 89