Skip to content

Commit 829a92d

Browse files
committed
contact selection reactive to dark theme
// FREEBIE
1 parent 559228a commit 829a92d

File tree

4 files changed

+56
-23
lines changed

4 files changed

+56
-23
lines changed

res/values/attrs.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@
3636
<attr name="conversation_item_sent_push_background" format="reference" />
3737
<attr name="conversation_item_sent_push_triangle_background" format="reference" />
3838

39+
<attr name="contact_selection_push_user" format="reference|color" />
40+
<attr name="contact_selection_lay_user" format="reference|color" />
41+
<attr name="contact_selection_push_label" format="reference|color" />
42+
<attr name="contact_selection_lay_label" format="reference|color" />
43+
3944
<attr name="navigation_drawer_background" format="reference|color"/>
4045
<attr name="navigation_drawer_text_color" format="color"/>
4146
<attr name="navigation_drawer_icons" format="reference"/>

res/values/themes.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
<item name="conversation_received_text_primary_color">#ff111111</item>
2020
<item name="conversation_received_text_secondary_color">#33000000</item>
2121

22+
<item name="contact_selection_push_user">#ff000000</item>
23+
<item name="contact_selection_lay_user">#a0000000</item>
24+
<item name="contact_selection_push_label">#ff64a926</item>
25+
<item name="contact_selection_lay_label">#99000000</item>
26+
2227
<item name="conversation_background">#ffdddddd</item>
2328
<item name="conversation_editor_background">#eeeeee</item>
2429
<item name="conversation_editor_text_color">@color/edit_text_light_theme</item>
@@ -77,6 +82,11 @@
7782
<item name="conversation_received_text_primary_color">#ffeeeeee</item>
7883
<item name="conversation_received_text_secondary_color">#44eeeeee</item>
7984

85+
<item name="contact_selection_push_user">#ffdddddd</item>
86+
<item name="contact_selection_lay_user">#ffcccccc</item>
87+
<item name="contact_selection_push_label">#ff64a926</item>
88+
<item name="contact_selection_lay_label">#11ffffff</item>
89+
8090
<item name="conversation_item_received_background">@drawable/conversation_item_received_shape_dark</item>
8191
<item name="conversation_item_received_triangle_background">@drawable/conversation_item_received_triangle_shape_dark</item>
8292
<item name="conversation_item_sent_background">@drawable/conversation_item_sent_shape_dark</item>

src/org/thoughtcrime/securesms/PushContactSelectionListFragment.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.app.AlertDialog;
2121
import android.content.Context;
2222
import android.content.DialogInterface;
23+
import android.content.res.TypedArray;
2324
import android.database.Cursor;
2425
import android.database.MergeCursor;
2526
import android.os.AsyncTask;
@@ -61,9 +62,15 @@
6162
public class PushContactSelectionListFragment extends SherlockListFragment
6263
implements LoaderManager.LoaderCallbacks<Cursor>
6364
{
65+
private final int STYLE_ATTRIBUTES[] = new int[]{R.attr.contact_selection_push_user,
66+
R.attr.contact_selection_lay_user,
67+
R.attr.contact_selection_push_label,
68+
R.attr.contact_selection_lay_label};
6469

6570
private final HashMap<Long, ContactData> selectedContacts = new HashMap<Long, ContactData>();
6671
private static LayoutInflater li;
72+
private TypedArray drawables;
73+
6774

6875
@Override
6976
public void onActivityCreated(Bundle icicle) {
@@ -88,8 +95,12 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
8895
public boolean onOptionsItemSelected(MenuItem item) {
8996

9097
switch (item.getItemId()) {
91-
case R.id.menu_select_all: handleSelectAll(); return true;
92-
case R.id.menu_unselect_all: handleUnselectAll(); return true;
98+
case R.id.menu_select_all:
99+
handleSelectAll();
100+
return true;
101+
case R.id.menu_unselect_all:
102+
handleUnselectAll();
103+
return true;
93104
}
94105

95106
super.onOptionsItemSelected(item);
@@ -105,7 +116,7 @@ public List<ContactData> getSelectedContacts() {
105116

106117
private void handleUnselectAll() {
107118
selectedContacts.clear();
108-
((CursorAdapter)getListView().getAdapter()).notifyDataSetChanged();
119+
((CursorAdapter) getListView().getAdapter()).notifyDataSetChanged();
109120
}
110121

111122
private void handleSelectAll() {
@@ -119,16 +130,16 @@ private void handleSelectAll() {
119130
while (cursor != null && cursor.moveToNext()) {
120131
ContactData contactData = ContactAccessor.getInstance().getContactData(getActivity(), cursor);
121132

122-
if (contactData.numbers.isEmpty()) continue;
133+
if (contactData.numbers.isEmpty()) continue;
123134
else if (contactData.numbers.size() == 1) addSingleNumberContact(contactData);
124-
else addMultipleNumberContact(contactData, null, null);
135+
else addMultipleNumberContact(contactData, null, null);
125136
}
126137
} finally {
127138
if (cursor != null)
128139
cursor.close();
129140
}
130141

131-
((CursorAdapter)getListView().getAdapter()).notifyDataSetChanged();
142+
((CursorAdapter) getListView().getAdapter()).notifyDataSetChanged();
132143
}
133144

134145
private void addSingleNumberContact(ContactData contactData) {
@@ -162,6 +173,7 @@ private void initializeCursor() {
162173

163174
private void initializeResources() {
164175
this.getListView().setFocusable(true);
176+
this.drawables = getActivity().obtainStyledAttributes(STYLE_ATTRIBUTES);
165177
}
166178

167179
@Override
@@ -244,13 +256,13 @@ public void set(PushContactData pushContactData) {
244256
this.pushSupport = pushContactData.pushSupport;
245257

246258
if (!pushSupport) {
247-
this.name.setTextColor(0xa0000000);
248-
this.number.setTextColor(0xa0000000);
249-
this.pushLabel.setBackgroundColor(0x99000000);
259+
this.name.setTextColor(drawables.getColor(1, 0xff000000));
260+
this.number.setTextColor(drawables.getColor(1, 0xff000000));
261+
this.pushLabel.setBackgroundColor(drawables.getColor(3, 0x99000000));
250262
} else {
251-
this.name.setTextColor(0xff000000);
252-
this.number.setTextColor(0xff000000);
253-
this.pushLabel.setBackgroundColor(0xff64a926);
263+
this.name.setTextColor(drawables.getColor(0, 0xa0000000));
264+
this.number.setTextColor(drawables.getColor(0, 0xa0000000));
265+
this.pushLabel.setBackgroundColor(drawables.getColor(2, 0xff64a926));
254266
}
255267

256268
if (selectedContacts.containsKey(contactData.id))

src/org/thoughtcrime/securesms/SingleContactSelectionListFragment.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import android.app.AlertDialog;
2121
import android.content.Context;
2222
import android.content.DialogInterface;
23+
import android.content.res.TypedArray;
2324
import android.database.Cursor;
2425
import android.database.MergeCursor;
2526
import android.os.Bundle;
@@ -55,11 +56,15 @@
5556
public class SingleContactSelectionListFragment extends SherlockListFragment
5657
implements LoaderManager.LoaderCallbacks<Cursor>
5758
{
58-
private final String TAG = SingleContactSelectionListFragment.class.getSimpleName();
59+
private final String TAG = SingleContactSelectionListFragment.class.getSimpleName();
60+
private final int STYLE_ATTRIBUTES[] = new int[]{R.attr.contact_selection_push_user,
61+
R.attr.contact_selection_lay_user,
62+
R.attr.contact_selection_push_label,
63+
R.attr.contact_selection_lay_label};
5964

60-
private final HashMap<Long, ContactData> selectedContacts = new HashMap<Long, ContactData>();
61-
private static LayoutInflater li;
62-
private OnContactSelectedListener onContactSelectedListener;
65+
private static LayoutInflater li;
66+
private OnContactSelectedListener onContactSelectedListener;
67+
private TypedArray drawables;
6368

6469
@Override
6570
public void onActivityCreated(Bundle icicle) {
@@ -86,7 +91,7 @@ private void addSingleNumberContact(ContactData contactData) {
8691

8792
private void addMultipleNumberContact(ContactData contactData, TextView textView) {
8893
String[] options = new String[contactData.numbers.size()];
89-
int i = 0;
94+
int i = 0;
9095

9196
for (NumberData option : contactData.numbers) {
9297
options[i++] = option.type + " " + option.number;
@@ -108,6 +113,7 @@ private void initializeCursor() {
108113

109114
private void initializeResources() {
110115
this.getListView().setFocusable(true);
116+
this.drawables = getActivity().obtainStyledAttributes(STYLE_ATTRIBUTES);
111117
}
112118

113119
@Override
@@ -181,13 +187,13 @@ public void set(PushContactData pushContactData) {
181187
this.pushSupport = pushContactData.pushSupport;
182188

183189
if (!pushSupport) {
184-
this.name.setTextColor(0xa0000000);
185-
this.number.setTextColor(0xa0000000);
186-
this.pushLabel.setBackgroundColor(0x99000000);
190+
this.name.setTextColor(drawables.getColor(1, 0xff000000));
191+
this.number.setTextColor(drawables.getColor(1, 0xff000000));
192+
this.pushLabel.setBackgroundColor(drawables.getColor(3, 0x99000000));
187193
} else {
188-
this.name.setTextColor(0xff000000);
189-
this.number.setTextColor(0xff000000);
190-
this.pushLabel.setBackgroundColor(0xff64a926);
194+
this.name.setTextColor(drawables.getColor(0, 0xa0000000));
195+
this.number.setTextColor(drawables.getColor(0, 0xa0000000));
196+
this.pushLabel.setBackgroundColor(drawables.getColor(2, 0xff64a926));
191197
}
192198

193199
this.name.setText(contactData.name);

0 commit comments

Comments
 (0)