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