9999import java .util .ArrayList ;
100100import java .util .HashMap ;
101101import java .util .List ;
102+ import java .util .Locale ;
102103import java .util .Timer ;
103104import java .util .TimerTask ;
104105
@@ -2303,6 +2304,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
23032304 boolean deleteVisible = UISettings .isEnableDeleteMessage ();
23042305 boolean forwardVisible = UISettings .isEnableShareCopyForward ();
23052306 boolean reactionVisible = UISettings .isReactionVisible ();
2307+ boolean translateVisible = UISettings .isTranslationAllowed ();
23062308 List <BaseMessage > textMessageList = new ArrayList <>();
23072309 List <BaseMessage > mediaMessageList = new ArrayList <>();
23082310 List <BaseMessage > locationMessageList = new ArrayList <>();
@@ -2332,6 +2334,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
23322334 }
23332335 }
23342336 if (textMessageList .size () == 1 ) {
2337+ translateVisible = UISettings .isTranslationAllowed ();
23352338 BaseMessage basemessage = textMessageList .get (0 );
23362339 if (basemessage != null && basemessage .getSender () != null ) {
23372340 if (!(basemessage instanceof Action ) && basemessage .getDeletedAt () == 0 ) {
@@ -2356,6 +2359,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
23562359 }
23572360
23582361 if (mediaMessageList .size () == 1 ) {
2362+ translateVisible = false ;
23592363 BaseMessage basemessage = mediaMessageList .get (0 );
23602364 if (basemessage != null && basemessage .getSender () != null ) {
23612365 if (!(basemessage instanceof Action ) && basemessage .getDeletedAt () == 0 ) {
@@ -2380,6 +2384,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
23802384 }
23812385 }
23822386 if (locationMessageList .size () == 1 ){
2387+ translateVisible = false ;
23832388 BaseMessage basemessage = locationMessageList .get (0 );
23842389 if (basemessage != null && basemessage .getSender () != null ) {
23852390 if (!(basemessage instanceof Action ) && basemessage .getDeletedAt () == 0 ) {
@@ -2408,6 +2413,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
24082413 }
24092414 if (pollsMessageList .size () == 1 ){
24102415 forwardVisible = false ;
2416+ translateVisible = false ;
24112417 copyVisible = false ;
24122418 editVisible = false ;
24132419 shareVisible = false ;
@@ -2436,8 +2442,9 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
24362442 forwardVisible = false ;
24372443 copyVisible = false ;
24382444 editVisible = false ;
2445+ translateVisible = false ;
24392446 shareVisible = false ;
2440- replyVisible = UISettings .isStickerVisible ();
2447+ replyVisible = UISettings .isEnableReplyToMessage ();
24412448 BaseMessage basemessage = stickerMessageList .get (0 );
24422449 if (basemessage !=null && basemessage .getSender ()!=null ) {
24432450 if (basemessage .getDeletedAt () == 0 ) {
@@ -2461,9 +2468,10 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
24612468 if (whiteBoardMessageList .size ()==1 ) {
24622469 forwardVisible = false ;
24632470 copyVisible = false ;
2471+ translateVisible = false ;
24642472 editVisible = false ;
24652473 shareVisible = false ;
2466- replyVisible = UISettings .isStickerVisible ();
2474+ replyVisible = UISettings .isEnableReplyToMessage ();
24672475 BaseMessage basemessage = whiteBoardMessageList .get (0 );
24682476 if (basemessage !=null && basemessage .getSender ()!=null ) {
24692477 if (basemessage .getDeletedAt () == 0 ) {
@@ -2489,8 +2497,9 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
24892497 forwardVisible = false ;
24902498 copyVisible = false ;
24912499 editVisible = false ;
2500+ translateVisible = false ;
24922501 shareVisible = false ;
2493- replyVisible = UISettings .isStickerVisible ();
2502+ replyVisible = UISettings .isEnableReplyToMessage ();
24942503 BaseMessage basemessage = writeBoardMessageList .get (0 );
24952504 if (basemessage !=null && basemessage .getSender ()!=null ) {
24962505 if (basemessage .getDeletedAt () == 0 ) {
@@ -2522,6 +2531,7 @@ public void setLongMessageClick(List<BaseMessage> baseMessagesList) {
25222531 bundle .putBoolean ("deleteVisible" ,deleteVisible );
25232532 bundle .putBoolean ("replyVisible" ,replyVisible );
25242533 bundle .putBoolean ("forwardVisible" ,forwardVisible );
2534+ bundle .putBoolean ("translateVisible" ,translateVisible );
25252535 if (CometChat .isExtensionEnabled ("reactions" ))
25262536 bundle .putBoolean ("isReactionVisible" ,reactionVisible );
25272537 if (baseMessage .getReceiverType ().equals (CometChatConstants .RECEIVER_TYPE_GROUP ) &&
@@ -2658,6 +2668,50 @@ public void onEmojiClicked(Reaction emojicon) {
26582668 sendReaction (reaction );
26592669 }
26602670 }
2671+
2672+ @ Override
2673+ public void onTranslateMessageClick () {
2674+ try {
2675+ String localeLanguage = Locale .getDefault ().getLanguage ();
2676+ JSONObject body = new JSONObject ();
2677+ JSONArray languages = new JSONArray ();
2678+ languages .put (localeLanguage );
2679+ body .put ("msgId" , baseMessage .getId ());
2680+ body .put ("languages" , languages );
2681+ body .put ("text" , ((TextMessage )baseMessage ).getText ());
2682+
2683+ CometChat .callExtension ("message-translation" , "POST" , "/v2/translate" , body ,
2684+ new CometChat .CallbackListener <JSONObject >() {
2685+ @ Override
2686+ public void onSuccess (JSONObject jsonObject ) {
2687+ if (Extensions .isMessageTranslated (jsonObject ,((TextMessage )baseMessage ).getText ())) {
2688+ if (baseMessage .getMetadata ()!=null ) {
2689+ JSONObject meta = baseMessage .getMetadata ();
2690+ try {
2691+ meta .accumulate ("values" ,jsonObject );
2692+ baseMessage .setMetadata (meta );
2693+ updateMessage (baseMessage );
2694+ } catch (JSONException e ) {
2695+ e .printStackTrace ();
2696+ }
2697+ } else {
2698+ baseMessage .setMetadata (jsonObject );
2699+ updateMessage (baseMessage );
2700+ }
2701+ } else {
2702+ Snackbar .make (rvChatListView ,context .getString (R .string .no_translation_available ),Snackbar .LENGTH_LONG ).show ();
2703+ }
2704+ }
2705+
2706+ @ Override
2707+ public void onError (CometChatException e ) {
2708+ Toast .makeText (context ,e .getCode (),Toast .LENGTH_LONG ).show ();
2709+ }
2710+ });
2711+ } catch (Exception e ) {
2712+ Toast .makeText (context ,e .getMessage (),Toast .LENGTH_LONG ).show ();
2713+ }
2714+ }
26612715 });
26622716 }
26632717
0 commit comments