1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-08-13 17:03:48 -04:00

Bring back the checkboxes option for messagelist

This commit is contained in:
Jesse Vincent 2012-10-09 18:22:00 -04:00
parent 335c54575e
commit e9ae328164
6 changed files with 60 additions and 4 deletions

View File

@ -23,6 +23,16 @@
android:layout_marginLeft="8dip" android:layout_marginLeft="8dip"
android:layout_marginRight="8dip" android:layout_marginRight="8dip"
android:background="@android:color/transparent" /> android:background="@android:color/transparent" />
<CheckBox
android:id="@+id/selected_checkbox"
android:layout_width="36dip"
android:layout_below="@+id/chip"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent"
android:focusable="false"
android:gravity="bottom|center"
android:visibility="gone" />
</RelativeLayout> </RelativeLayout>
<TextView <TextView

View File

@ -109,6 +109,12 @@
android:entryValues="@array/settings_preview_lines_values" android:entryValues="@array/settings_preview_lines_values"
android:dialogTitle="@string/global_settings_preview_lines_label" android:dialogTitle="@string/global_settings_preview_lines_label"
/> />
<CheckBoxPreference
android:persistent="false"
android:key="messagelist_checkboxes"
android:title="@string/global_settings_checkbox_label"
android:summary="@string/global_settings_checkbox_summary" />
<CheckBoxPreference <CheckBoxPreference
android:persistent="false" android:persistent="false"
android:key="messagelist_show_correspondent_names" android:key="messagelist_show_correspondent_names"

View File

@ -167,6 +167,7 @@ public class K9 extends Application {
NEVER NEVER
} }
private static boolean mMessageListCheckboxes = false;
private static int mMessageListPreviewLines = 2; private static int mMessageListPreviewLines = 2;
private static boolean mShowCorrespondentNames = true; private static boolean mShowCorrespondentNames = true;
@ -440,7 +441,7 @@ public class K9 extends Application {
editor.putBoolean("messageListSenderAboveSubject", mMessageListSenderAboveSubject); editor.putBoolean("messageListSenderAboveSubject", mMessageListSenderAboveSubject);
editor.putBoolean("hideSpecialAccounts", mHideSpecialAccounts); editor.putBoolean("hideSpecialAccounts", mHideSpecialAccounts);
editor.putInt("messageListPreviewLines", mMessageListPreviewLines); editor.putInt("messageListPreviewLines", mMessageListPreviewLines);
editor.putBoolean("messageListCheckboxes", mMessageListCheckboxes);
editor.putBoolean("showCorrespondentNames", mShowCorrespondentNames); editor.putBoolean("showCorrespondentNames", mShowCorrespondentNames);
editor.putBoolean("showContactName", mShowContactName); editor.putBoolean("showContactName", mShowContactName);
editor.putBoolean("changeRegisteredNameColor", mChangeContactNameColor); editor.putBoolean("changeRegisteredNameColor", mChangeContactNameColor);
@ -590,6 +591,7 @@ public class K9 extends Application {
mCountSearchMessages = sprefs.getBoolean("countSearchMessages", true); mCountSearchMessages = sprefs.getBoolean("countSearchMessages", true);
mHideSpecialAccounts = sprefs.getBoolean("hideSpecialAccounts", false); mHideSpecialAccounts = sprefs.getBoolean("hideSpecialAccounts", false);
mMessageListSenderAboveSubject = sprefs.getBoolean("messageListSenderAboveSubject", false); mMessageListSenderAboveSubject = sprefs.getBoolean("messageListSenderAboveSubject", false);
mMessageListCheckboxes = sprefs.getBoolean("messageListCheckboxes", false);
mMessageListPreviewLines = sprefs.getInt("messageListPreviewLines", 2); mMessageListPreviewLines = sprefs.getInt("messageListPreviewLines", 2);
mMobileOptimizedLayout = sprefs.getBoolean("mobileOptimizedLayout", false); mMobileOptimizedLayout = sprefs.getBoolean("mobileOptimizedLayout", false);
@ -884,6 +886,15 @@ public class K9 extends Application {
mMessageListPreviewLines = lines; mMessageListPreviewLines = lines;
} }
public static boolean messageListCheckboxes() {
return mMessageListCheckboxes;
}
public static void setMessageListCheckboxes(boolean checkboxes) {
mMessageListCheckboxes = checkboxes;
}
public static boolean showCorrespondentNames() { public static boolean showCorrespondentNames() {
return mShowCorrespondentNames; return mShowCorrespondentNames;
} }

View File

@ -59,6 +59,7 @@ public class Prefs extends K9PreferenceActivity {
private static final String PREFERENCE_MEASURE_ACCOUNTS = "measure_accounts"; private static final String PREFERENCE_MEASURE_ACCOUNTS = "measure_accounts";
private static final String PREFERENCE_COUNT_SEARCH = "count_search"; private static final String PREFERENCE_COUNT_SEARCH = "count_search";
private static final String PREFERENCE_HIDE_SPECIAL_ACCOUNTS = "hide_special_accounts"; private static final String PREFERENCE_HIDE_SPECIAL_ACCOUNTS = "hide_special_accounts";
private static final String PREFERENCE_MESSAGELIST_CHECKBOXES = "messagelist_checkboxes";
private static final String PREFERENCE_MESSAGELIST_PREVIEW_LINES = "messagelist_preview_lines"; private static final String PREFERENCE_MESSAGELIST_PREVIEW_LINES = "messagelist_preview_lines";
private static final String PREFERENCE_MESSAGELIST_SENDER_ABOVE_SUBJECT = "messagelist_sender_above_subject"; private static final String PREFERENCE_MESSAGELIST_SENDER_ABOVE_SUBJECT = "messagelist_sender_above_subject";
private static final String PREFERENCE_MESSAGELIST_SHOW_CORRESPONDENT_NAMES = "messagelist_show_correspondent_names"; private static final String PREFERENCE_MESSAGELIST_SHOW_CORRESPONDENT_NAMES = "messagelist_show_correspondent_names";
@ -102,6 +103,7 @@ public class Prefs extends K9PreferenceActivity {
private CheckBoxPreference mHideSpecialAccounts; private CheckBoxPreference mHideSpecialAccounts;
private ListPreference mPreviewLines; private ListPreference mPreviewLines;
private CheckBoxPreference mSenderAboveSubject; private CheckBoxPreference mSenderAboveSubject;
private CheckBoxPreference mCheckboxes;
private CheckBoxPreference mShowCorrespondentNames; private CheckBoxPreference mShowCorrespondentNames;
private CheckBoxPreference mShowContactName; private CheckBoxPreference mShowContactName;
private CheckBoxPreference mChangeContactNameColor; private CheckBoxPreference mChangeContactNameColor;
@ -218,6 +220,9 @@ public class Prefs extends K9PreferenceActivity {
mSenderAboveSubject = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SENDER_ABOVE_SUBJECT); mSenderAboveSubject = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SENDER_ABOVE_SUBJECT);
mSenderAboveSubject.setChecked(K9.messageListSenderAboveSubject()); mSenderAboveSubject.setChecked(K9.messageListSenderAboveSubject());
mCheckboxes = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_CHECKBOXES);
mCheckboxes.setChecked(K9.messageListCheckboxes());
mShowCorrespondentNames = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SHOW_CORRESPONDENT_NAMES); mShowCorrespondentNames = (CheckBoxPreference)findPreference(PREFERENCE_MESSAGELIST_SHOW_CORRESPONDENT_NAMES);
mShowCorrespondentNames.setChecked(K9.showCorrespondentNames()); mShowCorrespondentNames.setChecked(K9.showCorrespondentNames());
@ -408,6 +413,7 @@ public class Prefs extends K9PreferenceActivity {
K9.setCountSearchMessages(mCountSearch.isChecked()); K9.setCountSearchMessages(mCountSearch.isChecked());
K9.setHideSpecialAccounts(mHideSpecialAccounts.isChecked()); K9.setHideSpecialAccounts(mHideSpecialAccounts.isChecked());
K9.setMessageListPreviewLines(Integer.parseInt(mPreviewLines.getValue())); K9.setMessageListPreviewLines(Integer.parseInt(mPreviewLines.getValue()));
K9.setMessageListCheckboxes(mCheckboxes.isChecked());
K9.setShowCorrespondentNames(mShowCorrespondentNames.isChecked()); K9.setShowCorrespondentNames(mShowCorrespondentNames.isChecked());
K9.setMessageListSenderAboveSubject(mSenderAboveSubject.isChecked()); K9.setMessageListSenderAboveSubject(mSenderAboveSubject.isChecked());
K9.setShowContactName(mShowContactName.isChecked()); K9.setShowContactName(mShowContactName.isChecked());

View File

@ -40,6 +40,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton; import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView; import android.widget.ListView;
@ -359,6 +360,7 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
private boolean mSortAscending = true; private boolean mSortAscending = true;
private boolean mSortDateAscending = false; private boolean mSortDateAscending = false;
private boolean mSenderAboveSubject = false; private boolean mSenderAboveSubject = false;
private boolean mCheckboxes = true;
private int mSelectedCount = 0; private int mSelectedCount = 0;
@ -691,6 +693,7 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
mController = MessagingController.getInstance(getActivity().getApplication()); mController = MessagingController.getInstance(getActivity().getApplication());
mPreviewLines = K9.messageListPreviewLines(); mPreviewLines = K9.messageListPreviewLines();
mCheckboxes = K9.messageListCheckboxes();
decodeArguments(); decodeArguments();
} }
@ -1915,7 +1918,16 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
holder = new MessageViewHolder(); holder = new MessageViewHolder();
holder.date = (TextView) view.findViewById(R.id.date); holder.date = (TextView) view.findViewById(R.id.date);
holder.chip = view.findViewById(R.id.chip); holder.chip = view.findViewById(R.id.chip);
holder.selected = (CheckBox) view.findViewById(R.id.selected_checkbox);
holder.preview = (TextView) view.findViewById(R.id.preview); holder.preview = (TextView) view.findViewById(R.id.preview);
if (mCheckboxes) {
holder.selected.setVisibility(View.VISIBLE);
}
if (holder.selected != null) {
holder.selected.setOnCheckedChangeListener(holder);
}
if (mSenderAboveSubject) { if (mSenderAboveSubject) {
holder.from = (TextView) view.findViewById(R.id.subject); holder.from = (TextView) view.findViewById(R.id.subject);
@ -1969,6 +1981,11 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
//WARNING: Order of the next 2 lines matter //WARNING: Order of the next 2 lines matter
holder.position = -1; holder.position = -1;
holder.selected.setChecked(false);
if (!mCheckboxes) {
holder.selected.setVisibility(View.GONE);
}
} }
@ -2001,7 +2018,9 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
// when a user checks the checkbox (vs code) // when a user checks the checkbox (vs code)
holder.position = -1; holder.position = -1;
if (message.selected) { holder.selected.setChecked(message.selected);
if (!mCheckboxes && message.selected) {
holder.chip.setBackgroundDrawable(message.message.getFolder().getAccount().getCheckmarkChip().drawable()); holder.chip.setBackgroundDrawable(message.message.getFolder().getAccount().getCheckmarkChip().drawable());
} }
@ -2132,6 +2151,7 @@ public class MessageListFragment extends SherlockFragment implements OnItemClick
public TextView time; public TextView time;
public TextView date; public TextView date;
public View chip; public View chip;
public CheckBox selected;
public int position = -1; public int position = -1;
@Override @Override

View File

@ -137,6 +137,9 @@ public class GlobalSettings {
s.put("measureAccounts", Settings.versions( s.put("measureAccounts", Settings.versions(
new V(1, new BooleanSetting(true)) new V(1, new BooleanSetting(true))
)); ));
s.put("messageListCheckboxes", Settings.versions(
new V(1, new BooleanSetting(false))
));
s.put("messageListPreviewLines", Settings.versions( s.put("messageListPreviewLines", Settings.versions(
new V(1, new IntegerRangeSetting(1, 100, 2)) new V(1, new IntegerRangeSetting(1, 100, 2))
)); ));