Skip to content

Commit 6f24e3c

Browse files
committed
break out big methods and i18n
1 parent 7cef734 commit 6f24e3c

2 files changed

Lines changed: 55 additions & 32 deletions

File tree

res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,10 @@
233233
<string name="KeyScanningActivity_install_barcode_Scanner">Install Barcode Scanner?</string>
234234
<string name="KeyScanningActivity_this_application_requires_barcode_scanner_would_you_like_to_install_it">TextSecure needs Barcode Scanner for QR codes.</string>
235235

236+
<!-- MessageDetailsRecipient -->
237+
<string name="MessageDetailsRecipient_failed_to_send">Failed to send</string>
238+
<string name="MessageDetailsRecipient_new_identity">New identity</string>
239+
236240
<!-- MmsDownloader -->
237241
<string name="MmsDownloader_error_storing_mms">Error storing MMS!</string>
238242
<string name="MmsDownloader_error_connecting_to_mms_provider">Error connecting to MMS provider...</string>

src/org/thoughtcrime/securesms/MessageDetailsRecipient.java

Lines changed: 51 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ public class MessageDetailsRecipient extends RelativeLayout
5151
{
5252
private final static String TAG = MessageDetailsRecipient.class.getSimpleName();
5353

54-
private Context context;
5554
private Recipient recipient;
5655
private TextView fromView;
5756
private TextView errorDescription;
@@ -63,12 +62,10 @@ public class MessageDetailsRecipient extends RelativeLayout
6362

6463
public MessageDetailsRecipient(Context context) {
6564
super(context);
66-
this.context = context;
6765
}
6866

6967
public MessageDetailsRecipient(Context context, AttributeSet attrs) {
7068
super(context, attrs);
71-
this.context = context;
7269
}
7370

7471
@Override
@@ -87,54 +84,50 @@ public void set(final MasterSecret masterSecret, final MessageRecord record, fin
8784

8885
setContactPhoto(recipient);
8986

90-
int conflictVisibility = View.GONE;
91-
int resendVisibility = View.GONE;
92-
int errorVisibility = View.GONE;
87+
boolean hasNetworkFailures = populateNetworkFailures(masterSecret, record);
88+
boolean hasConflicts = !hasNetworkFailures && populateConflicts(masterSecret, record);
89+
90+
resendButton.setVisibility(hasNetworkFailures || hasConflicts ? View.VISIBLE : View.GONE);
91+
conflictButton.setVisibility(hasConflicts ? View.VISIBLE : View.GONE);
92+
errorDescription.setVisibility(hasNetworkFailures ? View.VISIBLE : View.GONE);
93+
}
94+
95+
private boolean populateNetworkFailures(final MasterSecret masterSecret, final MessageRecord record) {
96+
boolean applicableFailures = false;
9397
if (record.hasNetworkFailures()) {
9498
for (final NetworkFailure failure : record.getNetworkFailures()) {
9599
if (failure.getRecipientId() == recipient.getRecipientId()) {
96-
resendVisibility = View.VISIBLE;
97-
errorVisibility = View.VISIBLE;
98-
errorDescription.setText("Failed to send");
100+
applicableFailures = true;
101+
errorDescription.setText(R.string.MessageDetailsRecipient_failed_to_send);
99102
resendButton.setOnClickListener(new OnClickListener() {
100103
@Override
101104
public void onClick(View v) {
102-
new AsyncTask<Void, Void, Void>() {
103-
@Override
104-
protected Void doInBackground(Void... params) {
105-
MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(getContext());
106-
mmsDatabase.removeFailure(record.getId(), failure);
107-
108-
if (record.getRecipients().isGroupRecipient()) {
109-
MessageSender.resendGroupMessage(getContext(), masterSecret, record, failure.getRecipientId());
110-
} else {
111-
MessageSender.resend(getContext(), masterSecret, record);
112-
}
113-
return null;
114-
}
115-
}.execute();
105+
new ResendAsyncTask(masterSecret, record, failure).execute();
116106
}
117107
});
118108
}
119109
}
120-
} else if (record.isIdentityMismatchFailure()) {
110+
}
111+
return applicableFailures;
112+
}
113+
114+
private boolean populateConflicts(final MasterSecret masterSecret, final MessageRecord record) {
115+
boolean applicableFailures = false;
116+
if (record.isIdentityMismatchFailure()) {
121117
for (final IdentityKeyMismatch mismatch : record.getIdentityKeyMismatches()) {
122118
if (mismatch.getRecipientId() == recipient.getRecipientId()) {
123-
conflictVisibility = View.VISIBLE;
124-
errorVisibility = View.VISIBLE;
125-
errorDescription.setText("New identity");
119+
applicableFailures = true;
120+
errorDescription.setText(R.string.MessageDetailsRecipient_new_identity);
126121
conflictButton.setOnClickListener(new OnClickListener() {
127122
@Override
128123
public void onClick(View v) {
129-
new ConfirmIdentityDialog(context, masterSecret, record, mismatch).show();
124+
new ConfirmIdentityDialog(getContext(), masterSecret, record, mismatch).show();
130125
}
131126
});
132127
}
133128
}
134129
}
135-
resendButton.setVisibility(resendVisibility);
136-
conflictButton.setVisibility(conflictVisibility);
137-
errorDescription.setVisibility(errorVisibility);
130+
return applicableFailures;
138131
}
139132

140133
public void unbind() {
@@ -150,7 +143,7 @@ private CharSequence formatFrom(Recipient from) {
150143
final String fromString;
151144
final boolean isUnnamedGroup = from.isGroupRecipient() && TextUtils.isEmpty(from.getName());
152145
if (isUnnamedGroup) {
153-
fromString = context.getString(R.string.ConversationActivity_unnamed_group);
146+
fromString = getContext().getString(R.string.ConversationActivity_unnamed_group);
154147
} else {
155148
fromString = from.toShortString();
156149
}
@@ -176,4 +169,30 @@ public void run() {
176169
}
177170
});
178171
}
172+
173+
private class ResendAsyncTask extends AsyncTask<Void,Void,Void> {
174+
private final MasterSecret masterSecret;
175+
private final MessageRecord record;
176+
private final NetworkFailure failure;
177+
178+
public ResendAsyncTask(MasterSecret masterSecret, MessageRecord record, NetworkFailure failure) {
179+
this.masterSecret = masterSecret;
180+
this.record = record;
181+
this.failure = failure;
182+
}
183+
184+
@Override
185+
protected Void doInBackground(Void... params) {
186+
MmsDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(getContext());
187+
mmsDatabase.removeFailure(record.getId(), failure);
188+
189+
if (record.getRecipients().isGroupRecipient()) {
190+
MessageSender.resendGroupMessage(getContext(), masterSecret, record, failure.getRecipientId());
191+
} else {
192+
MessageSender.resend(getContext(), masterSecret, record);
193+
}
194+
return null;
195+
}
196+
}
197+
179198
}

0 commit comments

Comments
 (0)