1ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri/* 2ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * Copyright (C) 2016 The Android Open Source Project 3ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * 4ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * Licensed under the Apache License, Version 2.0 (the "License"); 5ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * you may not use this file except in compliance with the License. 6ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * You may obtain a copy of the License at 7ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * 8ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * http://www.apache.org/licenses/LICENSE-2.0 9ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * 10ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * Unless required by applicable law or agreed to in writing, software 11ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * distributed under the License is distributed on an "AS IS" BASIS, 12ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * See the License for the specific language governing permissions and 14ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri * limitations under the License. 15ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri */ 16ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 17ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiripackage com.example.android.leanback; 18ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 19ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiriimport android.os.Bundle; 20def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport android.widget.Toast; 21def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas 22ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.preference.LeanbackPreferenceFragment; 23ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.leanback.preference.LeanbackSettingsFragment; 24ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.preference.Preference; 25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.preference.PreferenceFragment; 26ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikasimport androidx.preference.PreferenceScreen; 27ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 28ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiriimport java.util.Arrays; 29ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 30ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 31ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 32ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiripublic class SettingsFragment extends LeanbackSettingsFragment { 33ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 34ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 35ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri private static final int sPreferenceResId = R.xml.prefs; 36ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 37ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 38ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public void onPreferenceStartInitialScreen() { 39ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri startPreferenceFragment(buildPreferenceFragment(null)); 40ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 41ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 42ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 43ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public boolean onPreferenceStartFragment(PreferenceFragment preferenceFragment, 44ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri Preference preference) { 45ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri return false; 46ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 47ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 48ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 49ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public boolean onPreferenceStartScreen(PreferenceFragment preferenceFragment, 50ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri PreferenceScreen preferenceScreen) { 51ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri PreferenceFragment frag = buildPreferenceFragment(preferenceScreen.getKey()); 52ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri frag.setTargetFragment(preferenceFragment, 0); 53ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri startPreferenceFragment(frag); 54ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri return true; 55ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 56ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 57ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 58ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri private PreferenceFragment buildPreferenceFragment(String rootKey) { 59ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri PreferenceFragment fragment = new PrefFragment(); 60ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri Bundle args = new Bundle(); 61ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri args.putString(PreferenceFragment.ARG_PREFERENCE_ROOT, rootKey); 62ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri fragment.setArguments(args); 63ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri return fragment; 64ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 65ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 66ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public static class PrefFragment extends LeanbackPreferenceFragment { 67ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 68ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 69ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public void onCreate(Bundle savedInstanceState) { 70ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri super.onCreate(savedInstanceState); 71ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 72ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 73ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 74ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public void onCreatePreferences(Bundle bundle, String rootKey) { 75ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri setPreferencesFromResource(sPreferenceResId, rootKey); 76ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 77ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 78ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri @Override 79ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri public boolean onPreferenceTreeClick(Preference preference) { 80ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri final String[] keys = {"prefs_wifi_connect_wps", "prefs_date", "prefs_time", 81ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri "prefs_date_time_use_timezone", "app_banner_sample_app", "pref_force_stop", 82ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri "pref_uninstall", "pref_more_info"}; 83ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri if (Arrays.asList(keys).contains(preference.getKey())) { 84ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri Toast.makeText(getActivity(), "Implement your own action handler.", 85ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri Toast.LENGTH_SHORT).show(); 86ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri return true; 87ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 88ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri return super.onPreferenceTreeClick(preference); 89ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 90ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri 91ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri } 92ad3b46937808b5bf0afde9b5500af0d1f7e13149Keyvan Amiri} 93