mirror of
https://github.com/M66B/FairEmail.git
synced 2025-03-05 11:08:17 +00:00
Set transient state on expand only
This commit is contained in:
parent
deab962e8a
commit
8979eab674
2 changed files with 33 additions and 2 deletions
|
@ -247,8 +247,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
tvBody.setMovementMethod(new UrlHandler());
|
||||
|
||||
if (viewType == ViewType.THREAD)
|
||||
itemView.setHasTransientState(true);
|
||||
}
|
||||
|
||||
private void wire() {
|
||||
|
@ -313,6 +311,20 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
boolean show_addresses = properties.showAddresses(message.id);
|
||||
boolean show_headers = properties.showHeaders(message.id);
|
||||
|
||||
if (viewType == ViewType.THREAD) {
|
||||
if (show_expanded) {
|
||||
if (!properties.isFrozen(message.id)) {
|
||||
itemView.setHasTransientState(true);
|
||||
properties.setFrozen(message.id, true);
|
||||
}
|
||||
} else {
|
||||
if (properties.isFrozen(message.id)) {
|
||||
itemView.setHasTransientState(false);
|
||||
properties.setFrozen(message.id, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pbLoading.setVisibility(View.GONE);
|
||||
|
||||
if (viewType == ViewType.THREAD) {
|
||||
|
@ -1664,6 +1676,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
interface IProperties {
|
||||
void setExpanded(long id, boolean expand);
|
||||
|
||||
void setFrozen(long id, boolean freeze);
|
||||
|
||||
void setAddresses(long id, boolean show);
|
||||
|
||||
void setHeaders(long id, boolean show);
|
||||
|
@ -1672,6 +1686,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
|
||||
boolean isExpanded(long id);
|
||||
|
||||
boolean isFrozen(long id);
|
||||
|
||||
boolean showAddresses(long id);
|
||||
|
||||
boolean showHeaders(long id);
|
||||
|
|
|
@ -117,6 +117,7 @@ public class FragmentMessages extends FragmentEx {
|
|||
private int autoCloseCount = 0;
|
||||
private boolean autoExpand = true;
|
||||
private List<Long> expanded = new ArrayList<>();
|
||||
private List<Long> frozen = new ArrayList<>();
|
||||
private List<Long> addresses = new ArrayList<>();
|
||||
private List<Long> headers = new ArrayList<>();
|
||||
private List<Long> images = new ArrayList<>();
|
||||
|
@ -310,6 +311,15 @@ public class FragmentMessages extends FragmentEx {
|
|||
expanded.remove(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFrozen(long id, boolean freeze) {
|
||||
Log.i(Helper.TAG, "Freeze=" + freeze + " id=" + id);
|
||||
if (freeze)
|
||||
frozen.add(id);
|
||||
else
|
||||
frozen.remove(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAddresses(long id, boolean show) {
|
||||
if (show)
|
||||
|
@ -339,6 +349,11 @@ public class FragmentMessages extends FragmentEx {
|
|||
return expanded.contains(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFrozen(long id) {
|
||||
return frozen.contains(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showAddresses(long id) {
|
||||
return !addresses.contains(id);
|
||||
|
|
Loading…
Add table
Reference in a new issue