Added home button

This commit is contained in:
M66B 2019-05-09 16:25:12 +02:00
parent 7bd1b0171f
commit a95387d147
3 changed files with 44 additions and 2 deletions

View File

@ -117,6 +117,7 @@ public class FragmentMessages extends FragmentBase {
private TextView tvNoEmail; private TextView tvNoEmail;
private FixedRecyclerView rvMessage; private FixedRecyclerView rvMessage;
private SeekBar seekBar; private SeekBar seekBar;
private ImageButton ibUp;
private BottomNavigationView bottom_navigation; private BottomNavigationView bottom_navigation;
private ContentLoadingProgressBar pbWait; private ContentLoadingProgressBar pbWait;
private Group grpSupport; private Group grpSupport;
@ -272,6 +273,7 @@ public class FragmentMessages extends FragmentBase {
tvNoEmail = view.findViewById(R.id.tvNoEmail); tvNoEmail = view.findViewById(R.id.tvNoEmail);
rvMessage = view.findViewById(R.id.rvMessage); rvMessage = view.findViewById(R.id.rvMessage);
seekBar = view.findViewById(R.id.seekBar); seekBar = view.findViewById(R.id.seekBar);
ibUp = view.findViewById(R.id.ibUp);
bottom_navigation = view.findViewById(R.id.bottom_navigation); bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait); pbWait = view.findViewById(R.id.pbWait);
grpSupport = view.findViewById(R.id.grpSupport); grpSupport = view.findViewById(R.id.grpSupport);
@ -333,7 +335,7 @@ public class FragmentMessages extends FragmentBase {
rvMessage.setHasFixedSize(false); rvMessage.setHasFixedSize(false);
//rvMessage.setItemViewCacheSize(10); //rvMessage.setItemViewCacheSize(10);
//rvMessage.getRecycledViewPool().setMaxRecycledViews(0, 10); //rvMessage.getRecycledViewPool().setMaxRecycledViews(0, 10);
LinearLayoutManager llm = new LinearLayoutManager(getContext()); final LinearLayoutManager llm = new LinearLayoutManager(getContext());
rvMessage.setLayoutManager(llm); rvMessage.setLayoutManager(llm);
DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) { DividerItemDecoration itemDecorator = new DividerItemDecoration(getContext(), llm.getOrientation()) {
@ -461,6 +463,22 @@ public class FragmentMessages extends FragmentBase {
} }
}); });
ibUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int pos = llm.findLastVisibleItemPosition();
if (pos != RecyclerView.NO_POSITION)
do {
Long key = adapter.getKeyAtPosition(pos);
if (key != null && isExpanded(key)) {
rvMessage.scrollToPosition(pos);
break;
}
pos--;
} while (pos >= 0);
}
});
bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
@ -558,6 +576,7 @@ public class FragmentMessages extends FragmentBase {
swipeRefresh.setEnabled(pull); swipeRefresh.setEnabled(pull);
tvNoEmail.setVisibility(View.GONE); tvNoEmail.setVisibility(View.GONE);
seekBar.setVisibility(View.GONE); seekBar.setVisibility(View.GONE);
ibUp.setVisibility(viewType == AdapterMessage.ViewType.THREAD ? View.VISIBLE : View.GONE);
bottom_navigation.getMenu().findItem(R.id.action_prev).setEnabled(false); bottom_navigation.getMenu().findItem(R.id.action_prev).setEnabled(false);
bottom_navigation.getMenu().findItem(R.id.action_next).setEnabled(false); bottom_navigation.getMenu().findItem(R.id.action_next).setEnabled(false);
bottom_navigation.setVisibility(View.GONE); bottom_navigation.setVisibility(View.GONE);
@ -1054,7 +1073,7 @@ public class FragmentMessages extends FragmentBase {
if (message == null || message.uid == null) if (message == null || message.uid == null)
return null; return null;
if (values.containsKey("expanded") && values.get("expanded").contains(message.id)) if (isExpanded(message.id))
return null; return null;
if (EntityFolder.OUTBOX.equals(message.folderType)) if (EntityFolder.OUTBOX.equals(message.folderType))
@ -1064,6 +1083,10 @@ public class FragmentMessages extends FragmentBase {
} }
}; };
private boolean isExpanded(long id) {
return (values.containsKey("expanded") && values.get("expanded").contains(id));
}
private void onActionMove(String folderType) { private void onActionMove(String folderType) {
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("account", account); args.putLong("account", account);

View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>

View File

@ -182,6 +182,15 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" /> app:layout_constraintStart_toStartOf="parent" />
<ImageButton
android:id="@+id/ibUp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:src="@drawable/baseline_home_24"
app:layout_constraintBottom_toTopOf="@id/seekBar"
app:layout_constraintEnd_toEndOf="@id/seekBar" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation" android:id="@+id/bottom_navigation"
android:layout_width="match_parent" android:layout_width="match_parent"