Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 152e040

Browse files
kunall17Sam1301
authored andcommitted
Fetch raw content while copying to clipboard and copy that instead.
1 parent 133ebaa commit 152e040

File tree

2 files changed

+45
-12
lines changed

2 files changed

+45
-12
lines changed

app/src/main/java/com/zulip/android/activities/MessageListFragment.java

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ public boolean onContextItemSelected(MenuItem item) {
234234
return true;
235235
case R.id.copy_message:
236236
copyMessage(message);
237-
Toast.makeText(getContext(), R.string.message_copied, Toast.LENGTH_SHORT).show();
238237
return true;
239238
case R.id.edit_message:
240239
editMessage(message, adapter.getContextMenuItemSelectedPosition());
@@ -510,17 +509,49 @@ public void onFailure(Call<EditResponse> call, Throwable t) {
510509

511510
@SuppressWarnings("deprecation")
512511
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
513-
private void copyMessage(Message msg) {
514-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
515-
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) app
516-
.getSystemService(Context.CLIPBOARD_SERVICE);
517-
clipboard.setPrimaryClip(ClipData.newPlainText("Zulip Message",
518-
msg.getContent()));
519-
} else {
520-
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) app
521-
.getSystemService(Context.CLIPBOARD_SERVICE);
522-
clipboard.setText(msg.getContent());
523-
}
512+
private void copyMessage(final Message message) {
513+
final CommonProgressDialog commonProgressDialog = new CommonProgressDialog(getContext());
514+
commonProgressDialog.showWithMessage(getString(R.string.copy_message_fetch));
515+
app.getZulipServices()
516+
.fetchRawMessage(message.getID())
517+
.enqueue(new DefaultCallback<RawMessageResponse>() {
518+
@Override
519+
public void onSuccess(Call<RawMessageResponse> call, Response<RawMessageResponse> response) {
520+
RawMessageResponse messageResponse = response.body();
521+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
522+
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) app
523+
.getSystemService(Context.CLIPBOARD_SERVICE);
524+
clipboard.setPrimaryClip(ClipData.newPlainText("Zulip Message",
525+
messageResponse.getRawContent()));
526+
} else {
527+
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) app
528+
.getSystemService(Context.CLIPBOARD_SERVICE);
529+
clipboard.setText(messageResponse.getRawContent());
530+
}
531+
Toast.makeText(getActivity(), R.string.message_copied, Toast.LENGTH_SHORT).show();
532+
commonProgressDialog.dismiss();
533+
}
534+
535+
@Override
536+
public void onError(Call<RawMessageResponse> call, Response<RawMessageResponse> response) {
537+
RawMessageResponse messageResponse = response.body();
538+
if (messageResponse != null) {
539+
Toast.makeText(getActivity(), (TextUtils.isEmpty(messageResponse.getMsg())) ? getString(R.string.copy_failed) :
540+
messageResponse.getMsg(), Toast.LENGTH_SHORT).show();
541+
} else {
542+
Toast.makeText(getActivity(), R.string.copy_failed, Toast.LENGTH_SHORT).show();
543+
}
544+
//If something fails msg will have something to display
545+
commonProgressDialog.dismiss();
546+
}
547+
548+
@Override
549+
public void onFailure(Call<RawMessageResponse> call, Throwable t) {
550+
super.onFailure(call, t);
551+
commonProgressDialog.dismiss();
552+
Toast.makeText(getActivity(), R.string.copy_failed, Toast.LENGTH_SHORT).show();
553+
}
554+
});
524555
}
525556

526557
public void onNewMessages(Message[] messages) {

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,4 +153,6 @@
153153
<string name="logging_out">Logging out</string>
154154
<string name="fetch_edit_message">Preparing Message for edit</string>
155155
<string name="no_edit">No edits detected</string>
156+
<string name="copy_message_fetch">Copying message to clipboard</string>
157+
<string name="copy_failed">Copying to clipboard failed</string>
156158
</resources>

0 commit comments

Comments
 (0)