From 9b77aad8b73eaa111ce95717e96b0d7db368db9e Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 6 Jun 2012 15:09:45 +0200 Subject: [PATCH] Use the framework to manage the color picker dialog in account settings This way the dialog will survive orientation changes. --- .../fsck/k9/activity/ColorPickerDialog.java | 5 ++ .../k9/activity/setup/AccountSettings.java | 49 ++++++++++++++----- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/src/com/fsck/k9/activity/ColorPickerDialog.java b/src/com/fsck/k9/activity/ColorPickerDialog.java index b5f93edee..adfee8d8b 100644 --- a/src/com/fsck/k9/activity/ColorPickerDialog.java +++ b/src/com/fsck/k9/activity/ColorPickerDialog.java @@ -10,6 +10,7 @@ package com.fsck.k9.activity; import com.fsck.k9.R; import android.app.AlertDialog; +import android.app.Dialog; import android.content.*; import android.graphics.Color; import android.util.Log; @@ -177,4 +178,8 @@ public class ColorPickerDialog { public void show() { dialog.show(); } + + public Dialog create() { + return dialog; + } } diff --git a/src/com/fsck/k9/activity/setup/AccountSettings.java b/src/com/fsck/k9/activity/setup/AccountSettings.java index f38cfa20f..4ca3e0879 100644 --- a/src/com/fsck/k9/activity/setup/AccountSettings.java +++ b/src/com/fsck/k9/activity/setup/AccountSettings.java @@ -1,6 +1,7 @@ package com.fsck.k9.activity.setup; +import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -39,6 +40,9 @@ import com.fsck.k9.mail.store.LocalStore.LocalFolder; public class AccountSettings extends K9PreferenceActivity { private static final String EXTRA_ACCOUNT = "account"; + private static final int DIALOG_COLOR_PICKER_ACCOUNT = 1; + private static final int DIALOG_COLOR_PICKER_LED = 2; + private static final int SELECT_AUTO_EXPAND_FOLDER = 1; private static final int ACTIVITY_MANAGE_IDENTITIES = 2; @@ -809,21 +813,44 @@ public class AccountSettings extends K9PreferenceActivity { } public void onChooseChipColor() { - new ColorPickerDialog(this, new ColorPickerDialog.OnColorChangedListener() { - public void colorChanged(int color) { - mAccount.setChipColor(color); - } - }, - mAccount.getChipColor()).show(); + showDialog(DIALOG_COLOR_PICKER_ACCOUNT); } + public void onChooseLedColor() { - new ColorPickerDialog(this, new ColorPickerDialog.OnColorChangedListener() { - public void colorChanged(int color) { - mAccount.getNotificationSetting().setLedColor(color); + showDialog(DIALOG_COLOR_PICKER_LED); + } + + @Override + public Dialog onCreateDialog(int id) { + Dialog dialog = null; + + switch (id) { + case DIALOG_COLOR_PICKER_ACCOUNT: { + dialog = new ColorPickerDialog(this, + new ColorPickerDialog.OnColorChangedListener() { + public void colorChanged(int color) { + mAccount.setChipColor(color); + } + }, + mAccount.getChipColor()).create(); + + break; } - }, - mAccount.getNotificationSetting().getLedColor()).show(); + case DIALOG_COLOR_PICKER_LED: { + dialog = new ColorPickerDialog(this, + new ColorPickerDialog.OnColorChangedListener() { + public void colorChanged(int color) { + mAccount.getNotificationSetting().setLedColor(color); + } + }, + mAccount.getNotificationSetting().getLedColor()).create(); + + break; + } + } + + return dialog; } public void onChooseAutoExpandFolder() {