1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-24 02:12:15 -05:00

make the Delete, Select and Star buttons share the same screenspace.

right now we toggle per row. next up is toggle all at once
This commit is contained in:
Jesse Vincent 2009-11-25 02:25:56 +00:00
parent 695aa42347
commit 622155a57a
4 changed files with 84 additions and 80 deletions

View File

@ -6,15 +6,6 @@
android:paddingRight="1dip" android:paddingRight="1dip"
android:paddingTop="2dip" android:paddingTop="2dip"
android:background="@drawable/message_list_item_background"> android:background="@drawable/message_list_item_background">
<CheckBox
android:id="@+id/flagged"
android:layout_width="wrap_content"
android:layout_height="23dip"
android:focusable="false"
style="?android:attr/starStyle"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
/>
<View <View
android:id="@+id/chip" android:id="@+id/chip"
android:background="@drawable/appointment_indicator_leftside_1" android:background="@drawable/appointment_indicator_leftside_1"
@ -22,15 +13,18 @@
android:layout_height="20dip" android:layout_height="20dip"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_alignParentLeft="true" /> android:layout_alignParentLeft="true" />
<include layout="@layout/message_list_widgets" android:id="@+id/widgets" />
<TextView <TextView
android:id="@+id/date" android:id="@+id/date"
android:ellipsize="end"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:singleLine="true" android:singleLine="true"
android:textColor="?android:attr/textColorPrimary" android:textColor="?android:attr/textColorPrimary"
android:layout_width="70dip" android:layout_width="70dip"
android:paddingRight="3dip"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/flagged" /> android:gravity="right|bottom"
android:layout_alignWithParentIfMissing="true"
android:layout_toLeftOf="@+id/widgets" />
<TextView <TextView
android:id="@+id/from" android:id="@+id/from"
android:ellipsize="end" android:ellipsize="end"
@ -52,6 +46,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dip" android:paddingLeft="10dip"
android:layout_marginRight="1dip" android:layout_marginRight="1dip"
android:layout_alignWithParentIfMissing="true"
android:layout_toRightOf="@+id/chip" android:layout_toRightOf="@+id/chip"
android:layout_toLeftOf="@+id/from" /> android:layout_toLeftOf="@+id/from" />
</RelativeLayout> </RelativeLayout>

View File

@ -13,26 +13,7 @@
android:layout_width="4dip" android:layout_width="4dip"
android:layout_height="fill_parent" android:layout_height="fill_parent"
android:layout_centerVertical="true" /> android:layout_centerVertical="true" />
<CheckBox <include layout="@layout/message_list_widgets" android:id="@+id/widgets" />
android:id="@+id/flagged"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
style="?android:attr/starStyle"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
/>
<!-- http://stackoverflow.com/questions/1121192/android-custom-listview-unable-to-click-on-items -->
<CheckBox
android:id="@+id/selected_checkbox"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:button="@drawable/checkbox"
android:layout_toRightOf="@+id/chip"
android:layout_centerVertical="true"
android:focusable="false"
android:text=""
/>
<TextView <TextView
android:id="@+id/subject" android:id="@+id/subject"
android:ellipsize="end" android:ellipsize="end"
@ -42,8 +23,8 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="10dip" android:paddingLeft="10dip"
android:layout_toLeftOf="@id/flagged" android:layout_toLeftOf="@id/widgets"
android:layout_toRightOf="@+id/selected_checkbox" android:layout_toRightOf="@+id/chip"
android:layout_marginRight="1dip" /> android:layout_marginRight="1dip" />
<TextView <TextView
android:id="@+id/date" android:id="@+id/date"
@ -51,12 +32,14 @@
android:paddingRight="5dip" android:paddingRight="5dip"
android:paddingLeft="5dip" android:paddingLeft="5dip"
android:singleLine="true" android:singleLine="true"
android:gravity="right|bottom"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toLeftOf="@id/flagged" android:layout_toLeftOf="@id/widgets"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:background="@android:color/transparent" android:background="@android:color/transparent"
/> />
<TextView <TextView
android:id="@+id/from" android:id="@+id/from"
@ -67,8 +50,9 @@
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary" android:textColor="?android:attr/textColorSecondary"
android:paddingLeft="12dip" android:paddingLeft="12dip"
android:layout_toLeftOf="@id/date"
android:layout_toRightOf="@+id/selected_checkbox"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_toLeftOf="@id/date"
android:layout_toRightOf="@id/chip"
/> />
</RelativeLayout> </RelativeLayout>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_alignParentRight="true"
android:layout_width="30dip"
android:layout_height="30dip"
>
<ImageButton
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:focusable="true"
style="?android:attr/buttonStyleSmall"
android:src="@drawable/ic_delete"
/>
<CheckBox
android:id="@+id/flagged"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
style="?android:attr/starStyle"
android:layout_gravity="center_vertical"
/>
<!-- http://stackoverflow.com/questions/1121192/android-custom-listview-unable-to-click-on-items
we want something a bit bigger than it is right now -->
<CheckBox
android:id="@+id/selected_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:focusable="false"
android:button="@drawable/checkbox"
android:text=""
/>
</LinearLayout>

View File

@ -557,23 +557,28 @@ public class MessageList extends K9ListActivity
ViewGroup vg = (ViewGroup) v; ViewGroup vg = (ViewGroup) v;
vg.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS); vg.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
ImageButton delete = (ImageButton) v.findViewById(R.id.delete); ImageButton delete = (ImageButton) v.findViewById(R.id.delete);
if (delete.getVisibility() == View.GONE)
{
delete.setVisibility(View.VISIBLE);
delete.setFocusable(true);
delete.setFocusableInTouchMode(true);
if (delete.requestFocus())
{
v.setFocusable(false);
Log.v(Email.LOG_TAG, "is in touch mode");
}
Button flagged = (Button) v.findViewById(R.id.flagged); Button flagged = (Button) v.findViewById(R.id.flagged);
CheckBox selected = (CheckBox) v.findViewById(R.id.selected_checkbox);
if (delete.getVisibility() == View.VISIBLE)
{
delete.setVisibility(View.GONE);
flagged.setVisibility(View.VISIBLE);
selected.setVisibility(View.GONE);
}
else if (flagged.getVisibility() == View.VISIBLE)
{
delete.setVisibility(View.GONE);
flagged.setVisibility(View.GONE); flagged.setVisibility(View.GONE);
selected.setVisibility(View.VISIBLE);
} }
else else
{ {
// Delete was already visible delete.setVisibility(View.VISIBLE);
delete.requestFocus(); flagged.setVisibility(View.GONE);
selected.setVisibility(View.GONE);
} }
return true; return true;
} }
@ -1770,26 +1775,17 @@ public class MessageList extends K9ListActivity
int subjectColor = holder.from.getCurrentTextColor(); // Get from another field that never changes color int subjectColor = holder.from.getCurrentTextColor(); // Get from another field that never changes color
holder.selected.setVisibility(View.GONE);
holder.delete.setVisibility(View.GONE); holder.delete.setVisibility(View.GONE);
holder.flagged.setVisibility(View.VISIBLE); holder.flagged.setVisibility(View.VISIBLE);
// XXX TODO there has to be some way to walk our view hierarchy and get this // XXX TODO there has to be some way to walk our view hierarchy and get this
holder.flagged.setTag((Integer)position); holder.flagged.setTag((Integer)position);
holder.delete.setTag((Integer)position); holder.delete.setTag((Integer)position);
holder.flagged.setChecked(message.flagged);
holder.selected.setChecked(message.selected);
if (message.flagged)
{
holder.flagged.setChecked(true);
}
else
{
holder.flagged.setChecked(false);
}
if (message.downloaded) if (message.downloaded)
@ -1814,10 +1810,6 @@ public class MessageList extends K9ListActivity
message.hasAttachments ? mAttachmentIcon : null, // right message.hasAttachments ? mAttachmentIcon : null, // right
null); // bottom null); // bottom
holder.position = position; holder.position = position;
if (holder.selected!=null)
{
holder.selected.setChecked(message.selected);
}
} }
else else
{ {
@ -1829,11 +1821,8 @@ public class MessageList extends K9ListActivity
holder.date.setText("No date"); holder.date.setText("No date");
holder.from.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); holder.from.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
holder.position = -1; holder.position = -1;
if (holder.selected!=null)
{
holder.selected.setChecked(false); holder.selected.setChecked(false);
} }
}
return view; return view;
} }