From 02e31c6bd9d3f63f9bc4fd02e590cc6c1d31e13a Mon Sep 17 00:00:00 2001 From: Braden Farmer Date: Fri, 25 Nov 2016 22:24:53 -0700 Subject: [PATCH] Disable a few problematic preferences --- .../farmerbb/taskbar/fragment/AdvancedFragment.java | 12 ++++++++++++ .../farmerbb/taskbar/fragment/SettingsFragment.java | 19 ++++++++++++------- .../com/farmerbb/taskbar/service/TaskbarService.java | 3 ++- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java b/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java index eec15f8a..92150d28 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/AdvancedFragment.java @@ -15,11 +15,14 @@ package com.farmerbb.taskbar.fragment; +import android.content.SharedPreferences; +import android.os.Build; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import com.farmerbb.taskbar.R; +import com.farmerbb.taskbar.util.U; public class AdvancedFragment extends SettingsFragment { @@ -41,6 +44,15 @@ public class AdvancedFragment extends SettingsFragment { bindPreferenceSummaryToValue(findPreference("icon_pack_use_mask")); bindPreferenceSummaryToValue(findPreference("show_search_bar")); + SharedPreferences pref = U.getSharedPreferences(getActivity()); + boolean searchBarEnabled = pref.getString("show_search_bar", "keyboard").equals("always"); + findPreference("hide_when_keyboard_shown").setEnabled(!searchBarEnabled); + + if(Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP) { + findPreference("show_search_bar").setSummary(getResources().getStringArray(R.array.pref_show_search_bar_list)[2]); + findPreference("show_search_bar").setEnabled(false); + } + AppCompatActivity activity = (AppCompatActivity) getActivity(); activity.setTitle(R.string.pref_header_advanced); ActionBar actionBar = activity.getSupportActionBar(); diff --git a/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java b/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java index edc74ab2..7a5e23e8 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java @@ -121,13 +121,18 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference // Set the summary to reflect the new value. preference.setSummary(index >= 0 ? listPreference.getEntries()[index] : null); - if(finishedLoadingPrefs && preference.getKey().equals("theme")) { - // Restart MainActivity - Intent intent = new Intent(getActivity(), MainActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra("theme_change", true); - startActivity(intent); - getActivity().overridePendingTransition(0, 0); + if(finishedLoadingPrefs) { + if(preference.getKey().equals("theme")) { + // Restart MainActivity + Intent intent = new Intent(getActivity(), MainActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); + intent.putExtra("theme_change", true); + startActivity(intent); + getActivity().overridePendingTransition(0, 0); + } + + if(preference.getKey().equals("show_search_bar")) + findPreference("hide_when_keyboard_shown").setEnabled(!stringValue.equals("always")); } } else if(!(preference instanceof CheckBoxPreference)) { diff --git a/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java b/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java index 878963de..697723de 100644 --- a/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java +++ b/app/src/main/java/com/farmerbb/taskbar/service/TaskbarService.java @@ -392,7 +392,8 @@ public class TaskbarService extends Service { stopThread2 = true; SharedPreferences pref = U.getSharedPreferences(this); - showHideAutomagically = pref.getBoolean("hide_when_keyboard_shown", false); + showHideAutomagically = pref.getBoolean("hide_when_keyboard_shown", false) + && !pref.getString("show_search_bar", "keyboard").equals("always"); currentTaskbarIds.clear(); -- 2.11.0