package com.farmerbb.taskbar.fragment;
+import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
+import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Bundle;
import android.preference.Preference;
+import android.provider.Settings;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
import android.view.View;
import android.widget.ScrollView;
import android.widget.SeekBar;
findPreference("reset_colors").setOnPreferenceClickListener(this);
findPreference("background_tint_pref").setOnPreferenceClickListener(this);
findPreference("accent_color_pref").setOnPreferenceClickListener(this);
+ findPreference("app_drawer_icon_custom").setOnPreferenceClickListener(this);
+ findPreference("app_drawer_icon_image").setOnPreferenceClickListener(this);
+
bindPreferenceSummaryToValue(findPreference("theme"));
bindPreferenceSummaryToValue(findPreference("invisible_button"));
bindPreferenceSummaryToValue(findPreference("app_drawer_icon"));
+ bindPreferenceSummaryToValue(findPreference("app_drawer_icon_custom"));
+ bindPreferenceSummaryToValue(findPreference("app_drawer_icon_image"));
bindPreferenceSummaryToValue(findPreference("icon_pack_use_mask"));
bindPreferenceSummaryToValue(findPreference("visual_feedback"));
bindPreferenceSummaryToValue(findPreference("shortcut_icon"));
case "accent_color_pref":
showColorPicker(ColorPickerType.ACCENT_COLOR);
break;
+ case "app_drawer_icon_custom":
+ //android.support.v4.app.ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 100);
+ break;
+ case "app_drawer_icon_image":
+ //android.support.v4.app.ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 100);
+ showFileChooser();
+ break;
}
return true;
}
+ private void showFileChooser() {
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+ intent.setType("image/*");
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+
+ try {
+ startActivityForResult(Intent.createChooser(intent, "Select an Image File"), 1001);
+ } catch (android.content.ActivityNotFoundException ex) {
+ // Potentially direct the user to the Market with a Dialog
+ U.showToast(getActivity(), "Please install a File Manager.", 50);
+ }
+ }
+
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == 123 && resultCode == Activity.RESULT_OK) {
U.refreshPinnedIcons(getActivity());
U.restartTaskbar(getActivity());
}
+
+ if (requestCode == 1001) {
+ android.net.Uri currFileURI = data.getData();
+ final SharedPreferences prefs = android.preference.PreferenceManager.getDefaultSharedPreferences(getActivity());
+ prefs.edit().putString("app_drawer_icon_image", currFileURI.toString()).commit();
+ if(prefs.getBoolean("app_drawer_icon_custom", true) == false) {
+ prefs.edit().putBoolean("app_drawer_icon_custom", true).commit();
+ }
+ U.restartTaskbar(getActivity());
+ }
}
@SuppressLint("SetTextI18n")
import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
+import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Point;
import android.graphics.Typeface;
padding = context.getResources().getDimensionPixelSize(R.dimen.app_drawer_icon_padding);
}
+ if(pref.getBoolean("app_drawer_icon_custom", true)) {
+ String strPath = "";
+ if (pref.getString("app_drawer_icon_image", "DEFAULT").isEmpty() == false) {
+ try {
+ strPath = pref.getString("app_drawer_icon_image", "DEFAULT");
+ startButton.setImageURI(android.net.Uri.parse(strPath));
+ padding = context.getResources().getDimensionPixelSize(R.dimen.app_drawer_icon_padding);
+ } catch (Exception e) {
+ U.showToast(this.context, "Error reading the custom image for the start menu. Try another file.", 500);
+ }
+ }
+ }
+
startButton.setPadding(padding, padding, padding, padding);
startButton.setOnClickListener(ocl);
startButton.setOnLongClickListener(view -> {