diff options
7 files changed, 45 insertions, 16 deletions
diff --git a/app/build.gradle b/app/build.gradle index c95776d95..e0b441b6e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { defaultConfig { minSdkVersion 18 targetSdkVersion 29 - versionCode 307 - versionName "2.16.0-beta-1" + versionCode 308 + versionName "2.16.0" multiDexEnabled true renderscriptTargetApi 28 as int renderscriptSupportModeEnabled true diff --git a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java index a1c8ab809..45db69125 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java @@ -1626,7 +1626,7 @@ public abstract class BaseMainActivity extends BaseActivity //Refresh home if needed if( dateAllowed.after(date) ) { for (ManageTimelines tl : timelines) { - if (tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap.containsKey(tl.getPosition())) { + if (tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap != null && mPageReferenceMap.containsKey(tl.getPosition())) { DisplayStatusFragment homeTimeline = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if (homeTimeline != null) { homeTimeline.retrieveMissingHome(); diff --git a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java index 010242e73..72b9f7770 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/ManageTimelines.java @@ -463,9 +463,11 @@ public class ManageTimelines { popup.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { - TabLayoutNotificationsFragment tabLayoutNotificationsFragment = (TabLayoutNotificationsFragment) mPageReferenceMap.get(tl.getPosition()); - assert tabLayoutNotificationsFragment != null; - tabLayoutNotificationsFragment.refreshAll(); + if( mPageReferenceMap != null) { + TabLayoutNotificationsFragment tabLayoutNotificationsFragment = (TabLayoutNotificationsFragment) mPageReferenceMap.get(tl.getPosition()); + assert tabLayoutNotificationsFragment != null; + tabLayoutNotificationsFragment.refreshAll(); + } } }); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @@ -564,12 +566,14 @@ public class ManageTimelines { @Override public void onDismiss(PopupMenu menu) { if(changes[0]) { - FragmentTransaction fragTransaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction(); - DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); - assert displayStatusFragment != null; - fragTransaction.detach(displayStatusFragment); - fragTransaction.attach(displayStatusFragment); - fragTransaction.commit(); + if( mPageReferenceMap != null) { + FragmentTransaction fragTransaction = ((MainActivity) context).getSupportFragmentManager().beginTransaction(); + DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); + assert displayStatusFragment != null; + fragTransaction.detach(displayStatusFragment); + fragTransaction.attach(displayStatusFragment); + fragTransaction.commit(); + } } } }); @@ -608,8 +612,10 @@ public class ManageTimelines { final MenuItem itemShowBoosts = menu.findItem(R.id.action_show_boosts); final MenuItem itemShowReplies = menu.findItem(R.id.action_show_replies); final MenuItem itemFilter = menu.findItem(R.id.action_filter); + if( mPageReferenceMap == null) { + return; + } DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); - if(tl.getType() != Type.HOME){ itemShowBoosts.setVisible(false); itemShowReplies.setVisible(false); @@ -789,6 +795,8 @@ public class ManageTimelines { @Override public void onDismiss(PopupMenu menu) { if(changes[0]) { + if( mPageReferenceMap == null) + return; FragmentTransaction fragTransaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction(); DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if( displayStatusFragment == null) @@ -1013,6 +1021,8 @@ public class ManageTimelines { }); changes[0] = true; FragmentTransaction fragTransaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction(); + if( mPageReferenceMap == null) + return true; DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if( displayStatusFragment == null) return false; @@ -1053,6 +1063,8 @@ public class ManageTimelines { @Override public boolean onMenuItemClick(MenuItem item) { FragmentTransaction fragTransaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction(); + if( mPageReferenceMap == null) + return true; DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if( displayStatusFragment == null) return false; @@ -1135,6 +1147,8 @@ public class ManageTimelines { public void onDismiss(PopupMenu menu) { if(changes[0]) { FragmentTransaction fragTransaction = ((MainActivity)context).getSupportFragmentManager().beginTransaction(); + if( mPageReferenceMap == null) + return; DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if( displayStatusFragment == null) return; diff --git a/app/src/main/java/app/fedilab/android/client/Entities/Status.java b/app/src/main/java/app/fedilab/android/client/Entities/Status.java index b15a374ce..34e6db535 100644 --- a/app/src/main/java/app/fedilab/android/client/Entities/Status.java +++ b/app/src/main/java/app/fedilab/android/client/Entities/Status.java @@ -651,7 +651,7 @@ public class Status implements Parcelable{ i++; } status.setImageURL(imgs); - content = content.replaceAll("(<\\s?p\\s?>)>(((?!(<\\/p>)|(<br)).){5,})(<\\s?\\/p\\s?><\\s?p\\s?>|<\\s?br\\s?\\/?>)","<blockquote>$2</blockquote><p>"); + content = content.replaceAll("(<\\s?p\\s?>)>(((?!(<\\/p>)|(<br)).){5,})(<\\s?\\/p\\s?><\\s?p\\s?>|<\\s?br\\s?\\/?>|<\\s?\\/p\\s?>$)","<blockquote>$2</blockquote><p>"); content = content.replaceAll("^<\\s?p\\s?>(.*)<\\s?\\/p\\s?>$","$1"); spannableStringContent = new SpannableString(content); final int[] j = {0}; 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 73fcc309e..0d7f542da 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -1902,7 +1902,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List<ManageTimelines> timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); for(ManageTimelines tl: timelines) { - if( tl.getType() == ManageTimelines.Type.HOME) { + if( tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap != null) { DisplayStatusFragment homeFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if (homeFragment != null) homeFragment.fetchMore(status.getId()); @@ -1924,7 +1924,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List<ManageTimelines> timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); for(ManageTimelines tl: timelines) { - if( tl.getType() == ManageTimelines.Type.HOME) { + if( tl.getType() == ManageTimelines.Type.HOME && mPageReferenceMap != null) { DisplayStatusFragment homeFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); if (homeFragment != null) { fetch_all_more = true; diff --git a/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java b/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java index 33ef8e04b..c3c98fc43 100644 --- a/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/DisplayFiltersFragment.java @@ -265,6 +265,9 @@ public class DisplayFiltersFragment extends Fragment implements OnFilterActionIn MainActivity.filters = apiResponse.getFilters(); SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); List<ManageTimelines> timelines = new TimelinesDAO(context, db).getDisplayedTimelines(); + if( mPageReferenceMap == null) { + return; + } for(ManageTimelines tl: timelines) { if( tl.getType() == ManageTimelines.Type.HOME || tl.getType() == ManageTimelines.Type.LOCAL || tl.getType() == ManageTimelines.Type.PUBLIC) { DisplayStatusFragment displayStatusFragment = (DisplayStatusFragment) mPageReferenceMap.get(tl.getPosition()); diff --git a/fastlane/metadata/android/en-US/changelogs/308.txt b/fastlane/metadata/android/en-US/changelogs/308.txt new file mode 100644 index 000000000..db8a8f0a7 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/308.txt @@ -0,0 +1,12 @@ +Added +- Select data to remove in database with the cache cleaner +- Animated emojis in picker + +Changed +- Easier feature for cropping media +- Improve quotes + +Fixed +- Potential crashes when switching between accounts +- Autocomplete (Emoji+tag) removed a letter +- Fix recent crashes
\ No newline at end of file |