diff --git a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java index eaef035f1..a7f0b7447 100644 --- a/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/ShowConversationActivity.java @@ -75,6 +75,7 @@ public class ShowConversationActivity extends BaseActivity implements OnRetriev private boolean expanded; private BroadcastReceiver receive_action; private String conversationId; + private boolean spoilerShown, spoilerBehaviour; @Override protected void onCreate(Bundle savedInstanceState) { @@ -102,7 +103,7 @@ public class ShowConversationActivity extends BaseActivity implements OnRetriev if( theme == Helper.THEME_BLACK) toolbar.setBackgroundColor(ContextCompat.getColor(ShowConversationActivity.this, R.color.black)); setSupportActionBar(toolbar); - + spoilerShown = spoilerBehaviour =sharedpreferences.getBoolean(Helper.SET_EXPAND_CW, false); Bundle b = getIntent().getExtras(); statuses = new ArrayList<>(); if(b != null) { @@ -187,11 +188,19 @@ public class ShowConversationActivity extends BaseActivity implements OnRetriev @Override public void onClick(View v) { if( statuses != null && statuses.size() > 0) { + spoilerShown = !spoilerShown; for (Status status : statuses) { - status.setShowSpoiler(!status.isShowSpoiler()); + if( spoilerBehaviour && !status.isSpoilerShown() ){ + status.setAutoHiddenCW(true); + }else{ + status.setAutoHiddenCW(false); + } + status.setSpoilerShown(spoilerShown); + status.setShowSpoiler(spoilerShown); } statusListAdapter.notifyItemRangeChanged(0, statuses.size()); } + } }); action_expand.setOnClickListener(new View.OnClickListener() { 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 5e6b7846e..4e3839b34 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -1024,10 +1024,22 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct return false; } }); + holder.status_spoiler.setOnTouchListener(new View.OnTouchListener() { + @Override + public boolean onTouch(View view, MotionEvent motionEvent) { + if (motionEvent.getAction() == MotionEvent.ACTION_UP && !view.hasFocus()) { + try { + view.requestFocus(); + } catch (Exception ignored) { + } + } + return false; + } + }); //Click on a conversation if ((getItemViewType(viewHolder.getAdapterPosition()) == DISPLAYED_STATUS || getItemViewType(viewHolder.getAdapterPosition()) == COMPACT_STATUS || getItemViewType(viewHolder.getAdapterPosition()) == CONSOLE_STATUS)) { - holder.status_spoiler_container.setOnClickListener(new View.OnClickListener() { + holder.status_spoiler.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) {