From ca31d037bed3ca1d85a5a213b073328230f85b67 Mon Sep 17 00:00:00 2001 From: Braden Farmer Date: Sun, 8 Jan 2017 22:01:52 -0700 Subject: [PATCH] Replace color picker library with something better --- app/build.gradle | 2 +- .../java/com/farmerbb/taskbar/MainActivity.java | 30 +++++++++++++++++++++- .../taskbar/fragment/AppearanceFragment.java | 8 ++++-- .../taskbar/fragment/SettingsFragment.java | 28 +++++++++++++------- .../farmerbb/taskbar/service/StartMenuService.java | 12 +++++++++ app/src/main/res/xml/pref_appearance.xml | 10 +++----- 6 files changed, 71 insertions(+), 19 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4803e8e3..2c8c87f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,7 +57,7 @@ dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile "com.android.support:appcompat-v7:${SUPPORT_LIBRARY_VERSION}" compile "com.android.support:design:${SUPPORT_LIBRARY_VERSION}" - compile 'com.github.yukuku:ambilwarna:2.0.1' + compile 'com.github.enricocid:cpl:1.0.2' compile 'moe.banana:toast-compat:1.0.5' } diff --git a/app/src/main/java/com/farmerbb/taskbar/MainActivity.java b/app/src/main/java/com/farmerbb/taskbar/MainActivity.java index 3b6dbf3e..9b68111a 100644 --- a/app/src/main/java/com/farmerbb/taskbar/MainActivity.java +++ b/app/src/main/java/com/farmerbb/taskbar/MainActivity.java @@ -37,12 +37,14 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.provider.Settings; +import android.support.v4.app.DialogFragment; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.SwitchCompat; import android.widget.CompoundButton; +import com.enrico.colorpicker.colorDialog; import com.farmerbb.taskbar.activity.HomeActivity; import com.farmerbb.taskbar.activity.ImportSettingsActivity; import com.farmerbb.taskbar.activity.KeyboardShortcutActivity; @@ -54,6 +56,7 @@ import com.farmerbb.taskbar.fragment.AppearanceFragment; import com.farmerbb.taskbar.fragment.FreeformModeFragment; import com.farmerbb.taskbar.fragment.GeneralFragment; import com.farmerbb.taskbar.fragment.RecentAppsFragment; +import com.farmerbb.taskbar.fragment.SettingsFragment; import com.farmerbb.taskbar.service.DashboardService; import com.farmerbb.taskbar.service.NotificationService; import com.farmerbb.taskbar.service.StartMenuService; @@ -66,7 +69,7 @@ import com.farmerbb.taskbar.util.U; import java.io.File; import java.util.Arrays; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends AppCompatActivity implements colorDialog.ColorSelectedListener { private SwitchCompat theSwitch; @@ -77,6 +80,9 @@ public class MainActivity extends AppCompatActivity { } }; + public final int BACKGROUND_TINT = 1; + public final int ACCENT_COLOR = 2; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -418,4 +424,26 @@ public class MainActivity extends AppCompatActivity { return false; } } + + @Override + public void onColorSelection(DialogFragment dialogFragment, int color) { + SharedPreferences pref = U.getSharedPreferences(this); + String preferenceId = null; + + switch(Integer.parseInt(dialogFragment.getTag())) { + case BACKGROUND_TINT: + preferenceId = "background_tint"; + break; + case ACCENT_COLOR: + preferenceId = "accent_color"; + break; + } + + pref.edit().putInt(preferenceId, color).apply(); + + SettingsFragment fragment = (SettingsFragment) getFragmentManager().findFragmentById(R.id.fragmentContainer); + colorDialog.setColorPreferenceSummary(fragment.findPreference(preferenceId + "_pref"), color, this, getResources()); + + fragment.restartTaskbar(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java b/app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java index 73568a60..50f00cf1 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/AppearanceFragment.java @@ -22,6 +22,7 @@ import android.preference.Preference; import android.support.v7.app.ActionBar; import android.support.v7.app.AppCompatActivity; +import com.enrico.colorpicker.colorDialog; import com.farmerbb.taskbar.BuildConfig; import com.farmerbb.taskbar.R; import com.farmerbb.taskbar.util.U; @@ -40,13 +41,13 @@ public class AppearanceFragment extends SettingsFragment { // Set OnClickListeners for certain preferences findPreference("icon_pack_list").setOnPreferenceClickListener(this); findPreference("reset_colors").setOnPreferenceClickListener(this); + findPreference("background_tint_pref").setOnPreferenceClickListener(this); + findPreference("accent_color_pref").setOnPreferenceClickListener(this); bindPreferenceSummaryToValue(findPreference("theme")); bindPreferenceSummaryToValue(findPreference("invisible_button")); bindPreferenceSummaryToValue(findPreference("app_drawer_icon")); bindPreferenceSummaryToValue(findPreference("icon_pack_use_mask")); - bindPreferenceSummaryToValue(findPreference("background_tint")); - bindPreferenceSummaryToValue(findPreference("accent_color")); bindPreferenceSummaryToValue(findPreference("visual_feedback")); bindPreferenceSummaryToValue(findPreference("shortcut_icon")); @@ -56,6 +57,9 @@ public class AppearanceFragment extends SettingsFragment { if(actionBar != null) actionBar.setDisplayHomeAsUpEnabled(true); + colorDialog.setColorPreferenceSummary(findPreference("background_tint_pref"), U.getBackgroundTint(getActivity()), getActivity(), getResources()); + colorDialog.setColorPreferenceSummary(findPreference("accent_color_pref"), U.getAccentColor(getActivity()), getActivity(), getResources()); + finishedLoadingPrefs = true; } 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 5e9c4404..a9087bf4 100644 --- a/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java +++ b/app/src/main/java/com/farmerbb/taskbar/fragment/SettingsFragment.java @@ -49,6 +49,7 @@ import android.widget.ListView; import android.widget.SeekBar; import android.widget.TextView; +import com.enrico.colorpicker.colorDialog; import com.farmerbb.taskbar.BuildConfig; import com.farmerbb.taskbar.MainActivity; import com.farmerbb.taskbar.R; @@ -71,8 +72,6 @@ import java.text.NumberFormat; import java.util.Currency; import java.util.Locale; -import yuku.ambilwarna.widget.AmbilWarnaPreference; - public class SettingsFragment extends PreferenceFragment implements OnPreferenceClickListener { boolean finishedLoadingPrefs; @@ -140,7 +139,7 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference getActivity().overridePendingTransition(0, 0); } - } else if(!(preference instanceof CheckBoxPreference || preference instanceof AmbilWarnaPreference)) { + } else if(!(preference instanceof CheckBoxPreference)) { // For all other preferences, set the summary to the value's // simple string representation. preference.setSummary(stringValue); @@ -158,7 +157,7 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference // Trigger the listener immediately with the preference's // current value. - if(!(preference instanceof CheckBoxPreference || preference instanceof AmbilWarnaPreference)) + if(!(preference instanceof CheckBoxPreference)) sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, PreferenceManager.getDefaultSharedPreferences(preference.getContext()).getString(preference.getKey(), "")); } @@ -469,11 +468,10 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference public void onClick(DialogInterface dialog, int which) { finishedLoadingPrefs = false; - AmbilWarnaPreference backgroundTintPref = (AmbilWarnaPreference) findPreference("background_tint"); - backgroundTintPref.forceSetValue(getResources().getInteger(R.integer.translucent_gray)); + pref.edit().remove("background_tint").remove("accent_color").apply(); - AmbilWarnaPreference accentColorPref = (AmbilWarnaPreference) findPreference("accent_color"); - accentColorPref.forceSetValue(getResources().getInteger(R.integer.translucent_white)); + colorDialog.setColorPreferenceSummary(findPreference("background_tint_pref"), U.getBackgroundTint(getActivity()), getActivity(), getResources()); + colorDialog.setColorPreferenceSummary(findPreference("accent_color_pref"), U.getAccentColor(getActivity()), getActivity(), getResources()); finishedLoadingPrefs = true; restartTaskbar(); @@ -583,6 +581,18 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference AlertDialog dialog7 = builder7.create(); dialog7.show(); break; + case "background_tint_pref": + MainActivity activity = (MainActivity) getActivity(); + + colorDialog.setPickerColor(activity, activity.BACKGROUND_TINT, U.getBackgroundTint(activity)); + colorDialog.showColorPicker(activity, activity.BACKGROUND_TINT); + break; + case "accent_color_pref": + MainActivity activity2 = (MainActivity) getActivity(); + + colorDialog.setPickerColor(activity2, activity2.ACCENT_COLOR, U.getAccentColor(activity2)); + colorDialog.showColorPicker(activity2, activity2.ACCENT_COLOR); + break; } return true; @@ -602,7 +612,7 @@ public class SettingsFragment extends PreferenceFragment implements OnPreference if(fullRestart) getActivity().stopService(new Intent(getActivity(), NotificationService.class)); } - private void restartTaskbar() { + public void restartTaskbar() { SharedPreferences pref = U.getSharedPreferences(getActivity()); if(pref.getBoolean("taskbar_active", false) && !pref.getBoolean("is_hidden", false)) { pref.edit().putBoolean("is_restarting", true).apply(); diff --git a/app/src/main/java/com/farmerbb/taskbar/service/StartMenuService.java b/app/src/main/java/com/farmerbb/taskbar/service/StartMenuService.java index 1a738776..8f40d807 100644 --- a/app/src/main/java/com/farmerbb/taskbar/service/StartMenuService.java +++ b/app/src/main/java/com/farmerbb/taskbar/service/StartMenuService.java @@ -47,6 +47,7 @@ import android.support.v7.widget.SearchView; import android.view.ContextThemeWrapper; import android.view.Display; import android.view.Gravity; +import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -369,6 +370,17 @@ public class StartMenuService extends Service { searchView.setImeOptions(EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI); + searchView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View v, int keyCode, KeyEvent event) { + + System.out.println(keyCode); + System.out.println(event.getAction()); + + return false; + } + }); + LinearLayout powerButton = (LinearLayout) layout.findViewById(R.id.power_button); powerButton.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/res/xml/pref_appearance.xml b/app/src/main/res/xml/pref_appearance.xml index 5c8b4c2a..5b4b943b 100644 --- a/app/src/main/res/xml/pref_appearance.xml +++ b/app/src/main/res/xml/pref_appearance.xml @@ -30,16 +30,14 @@ android:key="icon_pack_list" android:title="@string/icon_pack" /> - -