From e902e3a1f09ac05dce815dccddf0a4b98852e5fa Mon Sep 17 00:00:00 2001 From: tom79 Date: Tue, 11 Jun 2019 18:27:54 +0200 Subject: [PATCH] Close panels --- .../android/drawers/StatusListAdapter.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java index 09dad534a..570ceb1a4 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -55,7 +55,6 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.view.Window; import android.webkit.URLUtil; import android.webkit.WebView; import android.webkit.WebViewClient; @@ -1000,8 +999,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.fedilab_features.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + boolean state = status.isCustomFeaturesDisplayed(); closePanels(); - status.setCustomFeaturesDisplayed(!status.isCustomFeaturesDisplayed()); + status.setCustomFeaturesDisplayed(!state); notifyStatusChanged(status); } }); @@ -1155,7 +1155,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct public void onClick(View v) { if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { Intent intent = new Intent(context, ShowConversationActivity.class); - closePanels(); + int position = closePanels(); + if( holder.getAdapterPosition() == position) + return; Bundle b = new Bundle(); if( social == UpdateAccountInfoAsyncTask.SOCIAL.GNU || social == UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA) b.putString("conversationId", status.getConversationId()); @@ -1178,7 +1180,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct public void onClick(View v) { if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { Intent intent = new Intent(context, ShowConversationActivity.class); - closePanels(); + int position = closePanels(); + if( holder.getAdapterPosition() == position) + return; Bundle b = new Bundle(); if( social == UpdateAccountInfoAsyncTask.SOCIAL.GNU || social == UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA) b.putString("conversationId", status.getConversationId()); @@ -1201,7 +1205,9 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct public void onClick(View v) { if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { Intent intent = new Intent(context, ShowConversationActivity.class); - closePanels(); + int position = closePanels(); + if( holder.getAdapterPosition() == position) + return; Bundle b = new Bundle(); if( social == UpdateAccountInfoAsyncTask.SOCIAL.GNU || social == UpdateAccountInfoAsyncTask.SOCIAL.FRIENDICA) b.putString("conversationId", status.getConversationId()); @@ -3043,19 +3049,19 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct } - private void closePanels(){ + private int closePanels(){ + int position = -1; if( statuses != null && statuses.size() > 0){ - int position = 0; for(Status status: statuses){ + position++; if( status.isCustomFeaturesDisplayed()) { status.setCustomFeaturesDisplayed(false); notifyItemChanged(position); break; } - position++; } - } + return position; } private void timedMuteAction(Status status){