Added fail safe

This commit is contained in:
M66B 2022-03-23 18:19:14 +01:00
parent 9abb755fb8
commit 3ab55e2bf9
19 changed files with 134 additions and 19 deletions

View File

@ -674,7 +674,12 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
void setCompact(boolean compact) {

View File

@ -357,7 +357,12 @@ public class AdapterAnswer extends RecyclerView.Adapter<AdapterAnswer.ViewHolder
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void search(String query) {

View File

@ -413,7 +413,12 @@ public class AdapterAttachment extends RecyclerView.Adapter<AdapterAttachment.Vi
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -250,7 +250,12 @@ public class AdapterCertificate extends RecyclerView.Adapter<AdapterCertificate.
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -444,7 +444,12 @@ public class AdapterContact extends RecyclerView.Adapter<AdapterContact.ViewHold
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(AdapterContact.this);
try {
diff.dispatchUpdatesTo(AdapterContact.this);
} catch (Throwable ex) {
Log.e(ex);
}
}
@Override

View File

@ -1361,7 +1361,32 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
/*
java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling eu.faircode.email.FixedRecyclerView{bc0fa01 VFED..... ........ 0,0-1080,1984 #7f0a0533 app:id/rvFolder}, adapter:eu.faircode.email.AdapterFolder@b1cf0a6, layout:androidx.recyclerview.widget.LinearLayoutManager@3093ae7, context:eu.faircode.email.ActivityView@832e020
at androidx.recyclerview.widget.RecyclerView.assertNotInLayoutOrScroll(SourceFile:3)
at androidx.recyclerview.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(SourceFile:1)
at androidx.recyclerview.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(SourceFile:3)
at androidx.recyclerview.widget.RecyclerView$Adapter.notifyItemRangeChanged(SourceFile:2)
at androidx.recyclerview.widget.AdapterListUpdateCallback.onChanged(SourceFile:1)
at androidx.recyclerview.widget.BatchingListUpdateCallback.dispatchLastEvent(SourceFile:2)
at androidx.recyclerview.widget.BatchingListUpdateCallback.onChanged(SourceFile:4)
at androidx.recyclerview.widget.DiffUtil$DiffResult.dispatchUpdatesTo(SourceFile:34)
at androidx.recyclerview.widget.DiffUtil$DiffResult.dispatchUpdatesTo(SourceFile:1)
at eu.faircode.email.AdapterFolder.set(SourceFile:46)
at eu.faircode.email.FragmentFolders$12.onChanged(SourceFile:3)
at eu.faircode.email.FragmentFolders$12.onChanged(SourceFile:1)
at androidx.lifecycle.LiveData.considerNotify(SourceFile:6)
at androidx.lifecycle.LiveData.dispatchingValue(SourceFile:8)
at androidx.lifecycle.LiveData.setValue(SourceFile:4)
at androidx.lifecycle.LiveData$1.run(SourceFile:5)
at android.os.Handler.handleCallback(Handler.java:938)
*/
}
}
public void search(String query) {

View File

@ -476,7 +476,12 @@ public class AdapterIdentity extends RecyclerView.Adapter<AdapterIdentity.ViewHo
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -340,7 +340,12 @@ public class AdapterImage extends RecyclerView.Adapter<AdapterImage.ViewHolder>
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -272,7 +272,12 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}

View File

@ -159,7 +159,12 @@ public class AdapterLog extends RecyclerView.Adapter<AdapterLog.ViewHolder> {
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(AdapterLog.this);
try {
diff.dispatchUpdatesTo(AdapterLog.this);
} catch (Throwable ex) {
Log.e(ex);
}
}
@Override

View File

@ -373,7 +373,12 @@ public class AdapterNavAccountFolder extends RecyclerView.Adapter<AdapterNavAcco
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void setExpanded(boolean expanded) {

View File

@ -195,7 +195,12 @@ public class AdapterNavMenu extends RecyclerView.Adapter<AdapterNavMenu.ViewHold
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void setExpanded(boolean expanded) {

View File

@ -168,7 +168,12 @@ public class AdapterNavSearch extends RecyclerView.Adapter<AdapterNavSearch.View
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void setExpanded(boolean expanded) {

View File

@ -242,7 +242,12 @@ public class AdapterNavUnified extends RecyclerView.Adapter<AdapterNavUnified.Vi
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void setExpanded(boolean expanded) {

View File

@ -304,7 +304,12 @@ public class AdapterOperation extends RecyclerView.Adapter<AdapterOperation.View
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -117,7 +117,12 @@ public class AdapterOrder extends RecyclerView.Adapter<AdapterOrder.ViewHolder>
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -596,7 +596,12 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
public void search(String query) {

View File

@ -121,7 +121,12 @@ public class AdapterRuleMatch extends RecyclerView.Adapter<AdapterRuleMatch.View
Log.d("Changed @" + position + " #" + count);
}
});
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private static class DiffCallback extends DiffUtil.Callback {

View File

@ -686,7 +686,12 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, accounts), false);
items = accounts;
diff.dispatchUpdatesTo(this);
try {
diff.dispatchUpdatesTo(this);
} catch (Throwable ex) {
Log.e(ex);
}
}
private class DiffCallback extends DiffUtil.Callback {