@@ -234,7 +234,6 @@ public boolean onContextItemSelected(MenuItem item) {
234
234
return true ;
235
235
case R .id .copy_message :
236
236
copyMessage (message );
237
- Toast .makeText (getContext (), R .string .message_copied , Toast .LENGTH_SHORT ).show ();
238
237
return true ;
239
238
case R .id .edit_message :
240
239
editMessage (message , adapter .getContextMenuItemSelectedPosition ());
@@ -510,17 +509,49 @@ public void onFailure(Call<EditResponse> call, Throwable t) {
510
509
511
510
@ SuppressWarnings ("deprecation" )
512
511
@ 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
+ });
524
555
}
525
556
526
557
public void onNewMessages (Message [] messages ) {
0 commit comments