@@ -241,6 +241,7 @@ private void initReconnection() {
241241 threadBinding .setViewModel (mViewModel );
242242 channel = channelResponse .getChannel ();
243243 channelMessages = channelResponse .getMessages ();
244+ checkEphemeralMessages ();
244245 messageFunction = new MessageFunction (this .channelResponse );
245246 sendFileFunction = new SendFileFunction (this , binding , channelResponse );
246247 checkReadMark ();
@@ -249,21 +250,32 @@ private void initReconnection() {
249250 Global .eventFunction .setChannel (this .channel );
250251 }
251252
253+ private void checkEphemeralMessages () {
254+ List <Message > ephemeralMainMessages = Global .getEphemeralMessages (channel .getId (), null );
255+ if (ephemeralMainMessages != null && !ephemeralMainMessages .isEmpty ()) {
256+ for (int i = 0 ; i < ephemeralMainMessages .size (); i ++) {
257+ Message message = ephemeralMainMessages .get (i );
258+ if (channelMessages .contains (message )) continue ;
259+ channelMessages .add (message );
260+ }
261+ }
262+ }
263+
252264 private boolean lockRVScrollListener = false ;
253265
254- private void getChannel (Channel channel ) {
266+ private void getChannel (Channel channel_ ) {
255267
256268 binding .setShowMainProgressbar (true );
257- channel .setType (ModelType .channel_messaging );
269+ channel_ .setType (ModelType .channel_messaging );
258270 Map <String , Object > messages = new HashMap <>();
259271 messages .put ("limit" , Constant .DEFAULT_LIMIT );
260272
261273 // Additional Field
262274 Map <String , Object > data = new HashMap <>();
263- if (channel .getExtraData () != null ) {
264- Set <String > keys = channel .getExtraData ().keySet ();
275+ if (channel_ .getExtraData () != null ) {
276+ Set <String > keys = channel_ .getExtraData ().keySet ();
265277 for (String key : keys ) {
266- Object value = channel .getExtraData ().get (key );
278+ Object value = channel_ .getExtraData ().get (key );
267279 if (value != null )
268280 data .put (key , value );
269281 }
@@ -272,21 +284,14 @@ private void getChannel(Channel channel) {
272284
273285 ChannelDetailRequest request = new ChannelDetailRequest (messages , data , true , true );
274286
275- Global .mRestController .channelDetailWithID (channel .getId (), request , (ChannelResponse response ) -> {
287+ Global .mRestController .channelDetailWithID (channel_ .getId (), request , (ChannelResponse response ) -> {
276288 Log .d (TAG , "Channel Connected" );
277289 binding .setShowMainProgressbar (false );
278290 if (!response .getMessages ().isEmpty ())
279291 Global .setStartDay (response .getMessages (), null );
280292 Global .addChannelResponse (response );
281293 channelResponse = response ;
282294 initReconnection ();
283- // Check Ephemeral Messages
284- List <Message > ephemeralMessages = Global .getEphemeralMessages (channel .getId (), thread_parentMessage .getId ());
285- if (ephemeralMessages != null && !ephemeralMessages .isEmpty ()) {
286- for (int i = 0 ; i < ephemeralMessages .size (); i ++) {
287- channelMessages .add (ephemeralMessages .get (i ));
288- }
289- }
290295 setDeliverLastMessage ();
291296 configUIs ();
292297
@@ -318,17 +323,17 @@ private void configUIs() {
318323 configMessageInputView (); // Message Input box
319324 configMessageRecyclerView (); // Message RecyclerView
320325 // Bottom View
321- binding .tvNewMessage .setVisibility (View .GONE );
322- binding .tvNewMessage .setOnClickListener ((View v ) -> {
323- scrollPosition = 0 ;
324- recyclerView ().scrollToPosition (messages ().size ());
325- binding .tvNewMessage .setVisibility (View .GONE );
326- });
326+ // binding.tvNewMessage.setVisibility(View.GONE);
327+ // binding.tvNewMessage.setOnClickListener((View v) -> {
328+ // scrollPosition = 0;
329+ // recyclerView().scrollToPosition(messages().size());
330+ // binding.tvNewMessage.setVisibility(View.GONE);
331+ // });
327332 // File Attachment
328333 configAttachmentUIs ();
329334 }
330335
331- private void configActionBar (){
336+ private void configActionBar () {
332337 try {
333338 getSupportActionBar ().hide ();
334339 } catch (Exception e ) {
@@ -400,7 +405,7 @@ private void configHeaderView() {
400405 binding .tvBack .setOnClickListener ((View v ) -> finish ());
401406 }
402407
403- private void configMessageInputView (){
408+ private void configMessageInputView () {
404409 binding .setActiveMessageComposer (false );
405410 binding .setActiveMessageSend (false );
406411 binding .setShowLoadMoreProgressbar (false );
@@ -444,7 +449,7 @@ public void onTextChanged(CharSequence s, int start,
444449 binding .tvSend .setOnClickListener (this ::sendMessage );
445450 }
446451
447- private void configMessageRecyclerView (){
452+ private void configMessageRecyclerView () {
448453 mLayoutManager .scrollToPosition (channelMessages .size ());
449454 binding .rvMessage .setLayoutManager (mLayoutManager );
450455 setScrollDownHideKeyboard (binding .rvMessage );
@@ -471,7 +476,7 @@ private void configHeaderLastActive(@Nullable Message message) {
471476 }
472477 }
473478
474- private void configAttachmentUIs (){
479+ private void configAttachmentUIs () {
475480 binding .rvMedia .setLayoutManager (new GridLayoutManager (this , 4 , LinearLayoutManager .VERTICAL , false ));
476481 binding .rvMedia .hasFixedSize ();
477482 binding .rvComposer .setLayoutManager (new GridLayoutManager (this , 1 , LinearLayoutManager .HORIZONTAL , false ));
@@ -548,9 +553,8 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
548553 Utils .hideSoftKeyboard (ChatActivity .this );
549554 binding .etMessage .clearFocus ();
550555 if (currentFirstVisible == 0 && !isNoHistory ()) loadMore ();
551- if (currentLastVisible >= messages ().size () - 1 )
552- binding .tvNewMessage .setVisibility (View .GONE );
553-
556+ // if (currentLastVisible >= messages().size() - 1)
557+ // binding.tvNewMessage.setVisibility(View.GONE);
554558 }
555559
556560 new Handler ().postDelayed (() -> {
@@ -717,7 +721,7 @@ private void editMessage(Message message) {
717721 binding .etMessage .setSelection (binding .etMessage .getText ().length ());
718722 }
719723 if (message .getAttachments () != null && !message .getAttachments ().isEmpty ()) {
720- for (Attachment attachment : message .getAttachments ())
724+ for (Attachment attachment : message .getAttachments ())
721725 attachment .config .setUploaded (true );
722726
723727 if (message .getAttachments ().get (0 ).getType ().equals (ModelType .attach_file )) {
@@ -1130,12 +1134,8 @@ public void onReceive(Context context, Intent intent) {
11301134 Global .setStartDay (channelResponse .getMessages (), null );
11311135 initReconnection ();
11321136 // Check Ephemeral Messages
1133- List <Message > ephemeralMainMessages = Global .getEphemeralMessages (channel .getId (), null );
1134- if (ephemeralMainMessages != null && !ephemeralMainMessages .isEmpty ()) {
1135- for (int i = 0 ; i < ephemeralMainMessages .size (); i ++) {
1136- channelMessages .add (ephemeralMainMessages .get (i ));
1137- }
1138- }
1137+ checkEphemeralMessages ();
1138+
11391139 runOnUiThread (() -> {
11401140 setDeliverLastMessage ();
11411141 configUIs ();
@@ -1240,7 +1240,7 @@ private void newMessageEvent(Message message) {
12401240
12411241 if (message .isIncoming () && !isShowLastMessage ) {
12421242 scrollPosition = -1 ;
1243- binding .tvNewMessage .setVisibility (View .VISIBLE );
1243+ // binding.tvNewMessage.setVisibility(View.VISIBLE);
12441244 } else {
12451245 scrollPosition = 0 ;
12461246 }
0 commit comments