Let users pick LED Notification colors different from their account chip colors

This commit is contained in:
Jesse Vincent 2010-05-15 20:35:59 +00:00
parent 384803076d
commit ea6bb0000e
5 changed files with 55 additions and 3 deletions

View File

@ -477,6 +477,9 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="account_settings_color_label">Account color</string>
<string name="account_settings_color_summary">Choose the color of the account used in folder and account list</string>
<string name="account_settings_led_color_label">Notification LED color</string>
<string name="account_settings_led_color_summary">Choose the color your your phone LED should blink for this account</string>
<string name="account_settings_mail_display_count_label">Number of messages to display</string>
<string name="account_settings_folder_display_mode_label">Folders to display</string>

View File

@ -46,6 +46,12 @@
android:title="@string/account_settings_color_label"
android:summary="@string/account_settings_color_summary"
/>
<Preference
android:key="led_color"
android:singleLine="true"
android:title="@string/account_settings_led_color_label"
android:summary="@string/account_settings_led_color_summary"
/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/account_settings_message_view">

View File

@ -61,6 +61,7 @@ public class Account implements BaseAccount
private int mAutomaticCheckIntervalMinutes;
private int mDisplayCount;
private int mChipColor;
private int mLedColor;
private long mLastAutomaticCheckTime;
private boolean mNotifyNewMail;
private boolean mNotifySelfNewMail;
@ -134,6 +135,7 @@ public class Account implements BaseAccount
mAutoExpandFolderName = "INBOX";
mMaxPushFolders = 10;
mChipColor = (new Random()).nextInt(0xffffff) + 0xff000000;
mLedColor = mChipColor;
goToUnreadMessageSearch = false;
searchableFolders = Searchable.ALL;
@ -235,6 +237,8 @@ public class Account implements BaseAccount
(random.nextInt(0x70) * 0xffff) +
0xff000000);
mLedColor = preferences.getPreferences().getInt(mUuid+".chipColor", mChipColor);
mVibrate = preferences.getPreferences().getBoolean(mUuid + ".vibrate", false);
mRing = preferences.getPreferences().getBoolean(mUuid + ".ring", true);
@ -438,6 +442,7 @@ public class Account implements BaseAccount
editor.putInt(mUuid + ".maxPushFolders", mMaxPushFolders);
editor.putString(mUuid + ".searchableFolders", searchableFolders.name());
editor.putInt(mUuid + ".chipColor", mChipColor);
editor.putInt(mUuid + ".ledColor", mLedColor);
editor.putBoolean(mUuid + ".goToUnreadMessageSearch", goToUnreadMessageSearch);
for (String type : networkTypes)
@ -532,6 +537,17 @@ public class Account implements BaseAccount
return mChipColor;
}
public void setLedColor(int color)
{
mLedColor = color;
}
public int getLedColor()
{
return mLedColor;
}
public String getUuid()
{
return mUuid;

View File

@ -4148,7 +4148,7 @@ public class MessagingController implements Runnable
if (K9.NOTIFICATION_LED_WHILE_SYNCING)
{
notif.flags |= Notification.FLAG_SHOW_LIGHTS;
notif.ledARGB = account.getChipColor();
notif.ledARGB = account.getLedColor();
notif.ledOnMS = K9.NOTIFICATION_LED_FAST_ON_TIME;
notif.ledOffMS = K9.NOTIFICATION_LED_FAST_OFF_TIME;
}
@ -4254,7 +4254,7 @@ public class MessagingController implements Runnable
if (K9.NOTIFICATION_LED_WHILE_SYNCING)
{
notif.flags |= Notification.FLAG_SHOW_LIGHTS;
notif.ledARGB = account.getChipColor();
notif.ledARGB = account.getLedColor();
notif.ledOnMS = K9.NOTIFICATION_LED_FAST_ON_TIME;
notif.ledOffMS = K9.NOTIFICATION_LED_FAST_OFF_TIME;
}
@ -4577,7 +4577,7 @@ public class MessagingController implements Runnable
}
notif.flags |= Notification.FLAG_SHOW_LIGHTS;
notif.ledARGB = account.getChipColor();
notif.ledARGB = account.getLedColor();
notif.ledOnMS = K9.NOTIFICATION_LED_ON_TIME;
notif.ledOffMS = K9.NOTIFICATION_LED_OFF_TIME;
notif.audioStreamType = AudioManager.STREAM_NOTIFICATION;

View File

@ -49,6 +49,7 @@ public class AccountSettings extends K9PreferenceActivity
private static final String PREFERENCE_AUTO_EXPAND_FOLDER = "account_setup_auto_expand_folder";
private static final String PREFERENCE_SEARCHABLE_FOLDERS = "searchable_folders";
private static final String PREFERENCE_CHIP_COLOR = "chip_color";
private static final String PREFERENCE_LED_COLOR = "led_color";
private static final String PREFERENCE_NOTIFICATION_OPENS_UNREAD = "notification_opens_unread";
@ -74,6 +75,7 @@ public class AccountSettings extends K9PreferenceActivity
private ListPreference mSearchableFolders;
private Preference mAutoExpandFolder;
private Preference mChipColor;
private Preference mLedColor;
private boolean mIncomingChanged = false;
private CheckBoxPreference mNotificationOpensUnread;
@ -338,6 +340,19 @@ public class AccountSettings extends K9PreferenceActivity
}
);
mLedColor = (Preference)findPreference(PREFERENCE_LED_COLOR);
mLedColor.setOnPreferenceClickListener(
new Preference.OnPreferenceClickListener()
{
public boolean onPreferenceClick(Preference preference)
{
onChooseLedColor();
return false;
}
}
);
findPreference(PREFERENCE_COMPOSITION).setOnPreferenceClickListener(
@ -510,6 +525,18 @@ public class AccountSettings extends K9PreferenceActivity
mAccount.getChipColor()).show();
}
public void onChooseLedColor()
{
new ColorPickerDialog(this, new ColorPickerDialog.OnColorChangedListener()
{
public void colorChanged(int color)
{
mAccount.setLedColor(color);
}
},
mAccount.getLedColor()).show();
}
public void onChooseAutoExpandFolder()
{
Intent selectIntent = new Intent(this, ChooseFolder.class);