Prevent crash

This commit is contained in:
M66B 2022-01-06 17:32:56 +01:00
parent 583a82051e
commit e24481e0b4
6 changed files with 18 additions and 4 deletions

View File

@ -195,7 +195,7 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
int pos = parent.getChildAdapterPosition(view);
NavMenuItem menu = adapter.get(pos);
NavMenuItem menu = (adapter == null ? null : adapter.get(pos));
outRect.set(0, 0, 0, menu != null && menu.isSeparated() ? d.getIntrinsicHeight() : 0);
}
};

View File

@ -553,7 +553,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
int pos = parent.getChildAdapterPosition(view);
NavMenuItem menu = adapterNavMenuExtra.get(pos);
NavMenuItem menu = (adapterNavMenuExtra == null ? null : adapterNavMenuExtra.get(pos));
outRect.set(0, 0, 0, menu != null && menu.isSeparated() ? d.getIntrinsicHeight() : 0);
}
};

View File

@ -45,6 +45,7 @@ import androidx.appcompat.widget.PopupMenu;
import androidx.constraintlayout.widget.Group;
import androidx.core.view.MenuCompat;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Observer;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.DividerItemDecoration;
@ -177,6 +178,9 @@ public class FragmentAccounts extends FragmentBase {
if (pos == NO_POSITION)
return null;
if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
return null;
TupleAccountEx prev = adapter.getItemAtPosition(pos - 1);
TupleAccountEx account = adapter.getItemAtPosition(pos);
if (pos > 0 && prev == null)

View File

@ -58,6 +58,7 @@ import androidx.constraintlayout.widget.Group;
import androidx.core.app.NotificationCompat;
import androidx.core.view.MenuCompat;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Observer;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.DividerItemDecoration;
@ -249,6 +250,9 @@ public class FragmentFolders extends FragmentBase {
if (pos == NO_POSITION)
return null;
if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
return null;
TupleFolderEx prev = adapter.getItemAtPosition(pos - 1);
TupleFolderEx account = adapter.getItemAtPosition(pos);
if (pos > 0 && prev == null)

View File

@ -36,6 +36,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.Observer;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.DividerItemDecoration;
@ -124,6 +125,9 @@ public class FragmentIdentities extends FragmentBase {
if (pos == NO_POSITION)
return null;
if (!getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED))
return null;
TupleIdentityEx prev = adapter.getItemAtPosition(pos - 1);
TupleIdentityEx identity = adapter.getItemAtPosition(pos);
if (pos > 0 && prev == null)

View File

@ -697,8 +697,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
@Override
public void onDraw(@NonNull Canvas canvas, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
int count = parent.getChildCount();
String sort = (adapter == null ? null : adapter.getSort());
if (date_fixed)
if ("time".equals(adapter.getSort()))
if ("time".equals(sort))
inGroup.setVisibility(count > 0 ? View.VISIBLE : View.INVISIBLE);
else
inGroup.setVisibility(View.GONE);
@ -707,7 +709,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
View view = parent.getChildAt(i);
int pos = parent.getChildAdapterPosition(view);
if (i == 0 && date_fixed && "time".equals(adapter.getSort())) {
if (i == 0 && date_fixed && "time".equals(sort)) {
TupleMessageEx top = adapter.getItemAtPosition(pos);
tvFixedDate.setVisibility(top == null ? View.INVISIBLE : View.VISIBLE);
if (!cards)