import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
-import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
import android.preference.Preference;
-import android.preference.PreferenceManager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import com.farmerbb.taskbar.activity.dark.IconPackActivityDark;
import com.farmerbb.taskbar.util.U;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
public class AppearanceFragment extends SettingsFragment implements Preference.OnPreferenceClickListener {
private int alpha, red, green, blue;
super.onCreate(savedInstanceState);
+ SharedPreferences pref = U.getSharedPreferences(getActivity());
+ if(pref.getString("start_button_image", "null").equals("null"))
+ pref.edit().putString("start_button_image", U.getDefaultStartButtonImage(getActivity())).apply();
+
// Add preferences
addPreferencesFromResource(R.xml.pref_appearance);
findPreference("reset_colors").setOnPreferenceClickListener(this);
findPreference("background_tint_pref").setOnPreferenceClickListener(this);
findPreference("accent_color_pref").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("start_button_image"));
bindPreferenceSummaryToValue(findPreference("icon_pack_use_mask"));
bindPreferenceSummaryToValue(findPreference("visual_feedback"));
bindPreferenceSummaryToValue(findPreference("shortcut_icon"));
findPreference("accent_color_pref").setSummary("#" + String.format("%08x", U.getAccentColor(getActivity())).toUpperCase());
if(U.isBlissOs(getActivity()))
- findPreference("app_drawer_icon").setTitle(R.string.pref_title_app_drawer_icon_bliss);
+ ((ListPreference) findPreference("start_button_image")).setEntries(R.array.pref_start_button_image_list_alt);
finishedLoadingPrefs = true;
}
case "accent_color_pref":
showColorPicker(ColorPickerType.ACCENT_COLOR);
break;
- case "app_drawer_icon_image":
- showFileChooser();
- break;
}
return true;
}
- private void showFileChooser() {
+ protected void showFileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if(requestCode == 123 && resultCode == Activity.RESULT_OK) {
+ if(resultCode != Activity.RESULT_OK)
+ return;
+
+ if(requestCode == 123) {
U.refreshPinnedIcons(getActivity());
U.restartTaskbar(getActivity());
}
- if (requestCode == 1001 && resultCode == Activity.RESULT_OK) {
- Uri currFileURI = data.getData();
-
- if (currFileURI == null) {
+ if(requestCode == 1001) {
+ if(data.getData() == null)
return;
- }
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
- Boolean customStartImageBoolValue = prefs.getBoolean("app_drawer_icon_custom", true);
+ if(importCustomImage(data.getData()))
+ U.restartTaskbar(getActivity());
+ }
+ }
- if(customStartImageBoolValue == false) {
- prefs.edit().putBoolean("app_drawer_icon_custom", true).commit();
- ((CheckBoxPreference) findPreference("app_drawer_icon_custom")).setChecked(true);
+ private boolean importCustomImage(Uri uri) {
+ try {
+ File importedFile = new File(getActivity().getFilesDir(), "custom_image_new");
+ if(importedFile.exists()) importedFile.delete();
+
+ BufferedInputStream is = new BufferedInputStream(getActivity().getContentResolver().openInputStream(uri));
+ byte[] data = new byte[is.available()];
+
+ if(data.length > 0) {
+ BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(importedFile));
+ is.read(data);
+ os.write(data);
+ is.close();
+ os.close();
}
- prefs.edit().putString("app_drawer_icon_image", currFileURI.toString()).commit();
- bindPreferenceSummaryToValue(findPreference("app_drawer_icon_image"));
- U.restartTaskbar(getActivity());
+ File prevFile = new File(getActivity().getFilesDir(), "custom_image");
+ if(prevFile.exists()) prevFile.delete();
+
+ importedFile.renameTo(prevFile);
+ return true;
+ } catch (IOException e) {
+ return false;
}
}