Distinguish unread threads with background color.

fork-5.53.8
Moxie Marlinspike 2013-02-09 10:03:38 -08:00
rodzic 0a8c62e0e3
commit 71f43075a9
10 zmienionych plików z 71 dodań i 1 usunięć

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 156 B

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 748 B

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 151 B

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 562 B

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 160 B

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 985 B

Wyświetl plik

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@android:color/transparent" />
<item android:state_pressed="true" android:state_selected="false"
android:drawable="@android:color/transparent" />
<item android:state_selected="false" android:state_activated="false"
android:drawable="@color/read_bgcolor" />
<item android:state_activated="true"
android:drawable="@drawable/list_selector_background_selected" />
</selector>

Wyświetl plik

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"
android:drawable="@android:color/transparent" />
<item android:state_pressed="true" android:state_selected="false"
android:drawable="@android:color/transparent" />
<item android:state_selected="false" android:state_activated="false"
android:drawable="@color/unread_bgcolor" />
<item android:state_activated="true"
android:drawable="@drawable/list_selector_background_selected" />
</selector>

Wyświetl plik

@ -2,4 +2,7 @@
<resources>
<drawable name="white_background">#ffffffff</drawable>
<drawable name="text_color_black">#ff000000</drawable>
<color name="unread_bgcolor">#ffffffff</color>
<color name="read_bgcolor">#ffeeeeee</color>
</resources>

Wyświetl plik

@ -113,7 +113,9 @@ public class ConversationListItem extends RelativeLayout
this.subjectView.setText(thread.getBody(), TextView.BufferType.SPANNABLE);
if (thread.getEmphasis())
((Spannable)this.subjectView.getText()).setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0, this.subjectView.getText().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
((Spannable)this.subjectView.getText()).setSpan(new StyleSpan(android.graphics.Typeface.ITALIC), 0,
this.subjectView.getText().length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
if (thread.getDate() > 0)
this.dateView.setText(DateUtils.getRelativeTimeSpanString(getContext(), thread.getDate(), false));
@ -124,6 +126,7 @@ public class ConversationListItem extends RelativeLayout
if (batchMode) checkbox.setVisibility(View.VISIBLE);
else checkbox.setVisibility(View.GONE);
setBackground(read, batchMode);
setContactPhoto(this.recipients.getPrimaryRecipient());
}
@ -167,6 +170,16 @@ public class ConversationListItem extends RelativeLayout
}
}
private void setBackground(boolean read, boolean batch) {
if (batch && checkbox.isChecked()) {
setBackgroundResource(R.drawable.list_selected_holo_light);
} else if (read) {
setBackgroundResource(R.drawable.conversation_list_item_background_read);
} else {
setBackgroundResource(R.drawable.conversation_list_item_background_unread);
}
}
private boolean isBadgeEnabled() {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
}
@ -203,6 +216,8 @@ public class ConversationListItem extends RelativeLayout
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) selectedThreads.add(threadId);
else selectedThreads.remove(threadId);
setBackground(read, true);
}
}