1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-27 11:42:16 -05:00

Revert "Add a series of predefined account colors and pick those if any remain before generating complete random one."

This reverts commit 6735592204.

Totally not ready yet. Doesn't even build
This commit is contained in:
Jesse Vincent 2013-02-25 22:06:47 -08:00
parent cda2597d07
commit 396b01aac7
3 changed files with 6 additions and 96 deletions

View File

@ -10,15 +10,12 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.HashMap;
import java.util.HashSet;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Color;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.Uri; import android.net.Uri;
import android.util.Log; import android.util.Log;
@ -44,6 +41,8 @@ import com.fsck.k9.search.SearchSpecification.Searchfield;
import com.fsck.k9.view.ColorChip; import com.fsck.k9.view.ColorChip;
import com.larswerkman.colorpicker.ColorPicker; import com.larswerkman.colorpicker.ColorPicker;
import java.util.HashMap;
/** /**
* Account stores all of the settings for a single account defined by the user. It is able to save * Account stores all of the settings for a single account defined by the user. It is able to save
* and delete itself given a Preferences to work with. Each account is defined by a UUID. * and delete itself given a Preferences to work with. Each account is defined by a UUID.
@ -91,20 +90,6 @@ public class Account implements BaseAccount {
public static final String IDENTITY_EMAIL_KEY = "email"; public static final String IDENTITY_EMAIL_KEY = "email";
public static final String IDENTITY_DESCRIPTION_KEY = "description"; public static final String IDENTITY_DESCRIPTION_KEY = "description";
private static final String EMPTY = "empty";
/*
http://developer.android.com/design/style/color.html
Note: Order does matter, it's the order in which they will be picked.
*/
public static final Integer[] PREDEFINED_COLORS = new Integer[] {
Color.parseColor("#0099CC"), // blue
Color.parseColor("#669900"), // green
Color.parseColor("#FF8800"), // orange
Color.parseColor("#CC0000"), // red
Color.parseColor("#9933CC") // purple
};
public enum SortType { public enum SortType {
SORT_DATE(R.string.sort_earliest_first, R.string.sort_latest_first, false), SORT_DATE(R.string.sort_earliest_first, R.string.sort_latest_first, false),
SORT_ARRIVAL(R.string.sort_earliest_first, R.string.sort_latest_first, false), SORT_ARRIVAL(R.string.sort_earliest_first, R.string.sort_latest_first, false),
@ -295,7 +280,7 @@ public class Account implements BaseAccount {
mAutoExpandFolderName = INBOX; mAutoExpandFolderName = INBOX;
mInboxFolderName = INBOX; mInboxFolderName = INBOX;
mMaxPushFolders = 10; mMaxPushFolders = 10;
mChipColor = pickColor(context); mChipColor = ColorPicker.getRandomColor();
goToUnreadMessageSearch = false; goToUnreadMessageSearch = false;
mNotificationShowsUnreadCount = true; mNotificationShowsUnreadCount = true;
subscribedFoldersOnly = false; subscribedFoldersOnly = false;
@ -341,65 +326,6 @@ public class Account implements BaseAccount {
cacheChips(); cacheChips();
} }
/*
* Pick a nice Android guidelines color if we haven't used them all yet.
*/
private int pickColor(Context context) {
SharedPreferences prefs = Preferences.getPreferences(context).getPreferences();
String availableColors = prefs.getString("availableColors","");
if (!availableColors.equals(EMPTY)) {
// first run
if (availableColors.isEmpty()) {
availableColors = Utility.combine(Account.PREDEFINED_COLORS, ',');
}
String[] colors = availableColors.split(",");
// determine remaining colors
String remainingColors = "";
if (colors.length > 1) {
remainingColors = Utility.combine(Arrays.copyOfRange(colors, 1, colors.length), ',');
} else {
remainingColors = EMPTY;
}
// save remaining colors
SharedPreferences.Editor editor = prefs.edit();
editor.putString("availableColors", remainingColors);
editor.commit();
return Integer.parseInt(colors[0]);
} else {
return ColorPicker.getRandomColor();
}
}
/*
Put the account color back in circulation if it's a predefined one,
we also want to maintain the order of preference.
*/
private String calculateAvailableColors(Preferences preferences, int currentColor) {
ArrayList<Integer> newAvailableColors = new ArrayList<Integer>();
HashSet<Integer> oldAvailableColors = new HashSet<Integer>();
String oldColors = preferences.getPreferences().getString("availableColors", "");
if (!oldColors.equals(EMPTY)) {
for (String color : oldColors.split(",")) {
oldAvailableColors.add(Integer.parseInt(color));
}
}
for (Integer color : PREDEFINED_COLORS) {
if (color == currentColor || oldAvailableColors.contains(color)) {
newAvailableColors.add(color);
}
}
return Utility.combine(newAvailableColors.toArray(), ',');
}
protected Account(Preferences preferences, String uuid) { protected Account(Preferences preferences, String uuid) {
this.mUuid = uuid; this.mUuid = uuid;
loadAccount(preferences); loadAccount(preferences);
@ -566,11 +492,6 @@ public class Account implements BaseAccount {
editor.putString("accountUuids", accountUuids); editor.putString("accountUuids", accountUuids);
} }
// Put color back in circulation if necesarry
if (Arrays.asList(PREDEFINED_COLORS).contains(mChipColor)) {
editor.putString("availableColors", calculateAvailableColors(preferences, mChipColor));
}
editor.remove(mUuid + ".storeUri"); editor.remove(mUuid + ".storeUri");
editor.remove(mUuid + ".localStoreUri"); editor.remove(mUuid + ".localStoreUri");
editor.remove(mUuid + ".transportUri"); editor.remove(mUuid + ".transportUri");
@ -884,17 +805,10 @@ public class Account implements BaseAccount {
} }
public synchronized void setChipColor(Context context, int color) { public synchronized void setChipColor(int color) {
// release current color if predefined one
if (Arrays.asList(PREDEFINED_COLORS).contains(mChipColor)) {
String availableColors = calculateAvailableColors(Preferences.getPreferences(context), color);
SharedPreferences.Editor editor = Preferences.getPreferences(context).getPreferences().edit();
editor.putString("availableColors", availableColors);
editor.commit();
}
mChipColor = color; mChipColor = color;
cacheChips(); cacheChips();
} }
public synchronized void cacheChips() { public synchronized void cacheChips() {

View File

@ -21,7 +21,6 @@ import com.fsck.k9.K9.SplitViewMode;
import com.fsck.k9.K9.Theme; import com.fsck.k9.K9.Theme;
import com.fsck.k9.R; import com.fsck.k9.R;
import com.fsck.k9.Account.SortType; import com.fsck.k9.Account.SortType;
import com.fsck.k9.helper.Utility;
import com.fsck.k9.preferences.Settings.*; import com.fsck.k9.preferences.Settings.*;
public class GlobalSettings { public class GlobalSettings {
@ -222,9 +221,6 @@ public class GlobalSettings {
s.put("showContactPicture", Settings.versions( s.put("showContactPicture", Settings.versions(
new V(25, new BooleanSetting(true)) new V(25, new BooleanSetting(true))
)); ));
s.put("availableColors", Settings.versions(
new V(26, new StringSetting(Utility.combine(Account.PREDEFINED_COLORS, ',')))
));
SETTINGS = Collections.unmodifiableMap(s); SETTINGS = Collections.unmodifiableMap(s);

View File

@ -35,7 +35,7 @@ public class Settings {
* *
* @see SettingsExporter * @see SettingsExporter
*/ */
public static final int VERSION = 27; public static final int VERSION = 26;
public static Map<String, Object> validate(int version, Map<String, public static Map<String, Object> validate(int version, Map<String,
TreeMap<Integer, SettingsDescription>> settings, TreeMap<Integer, SettingsDescription>> settings,