From 3f27dc97d3649559a4ddb4b0d0ad6ad144ea5fec Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 6 Jun 2020 18:42:12 +0200 Subject: [PATCH] Release 2.35.5 --- app/build.gradle | 6 +++--- app/src/main/assets/changelogs/369.txt | 3 ++- .../android/activities/LoginActivity.java | 7 ++++++- .../activities/WebviewConnectActivity.java | 5 ++++- .../android/client/Entities/Status.java | 18 +++++++++--------- .../fedilab/android/sqlite/StatusCacheDAO.java | 5 ++++- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 8 files changed, 31 insertions(+), 19 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e187c9ba9..dc61365fd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { defaultConfig { minSdkVersion 19 targetSdkVersion 29 - versionCode 368 - versionName "2.35.4" + versionCode 369 + versionName "2.35.5" multiDexEnabled true renderscriptTargetApi 28 as int renderscriptSupportModeEnabled true @@ -89,7 +89,7 @@ dependencies { annotationProcessor 'com.android.support:support-annotations:28.0.0' implementation "org.conscrypt:conscrypt-android:2.4.0" implementation "com.evernote:android-job:1.2.6" - implementation "com.google.code.gson:gson:2.8.5" + implementation "com.google.code.gson:gson:2.8.6" implementation "com.google.guava:guava:28.2-android" implementation "com.github.chrisbanes:PhotoView:2.3.0" implementation 'com.r0adkll:slidableactivity:2.1.0' diff --git a/app/src/main/assets/changelogs/369.txt b/app/src/main/assets/changelogs/369.txt index afde48c65..1bf9975c3 100644 --- a/app/src/main/assets/changelogs/369.txt +++ b/app/src/main/assets/changelogs/369.txt @@ -6,4 +6,5 @@ Changed: Fixed: - Some URLs not clickable -- Empty home timeline \ No newline at end of file +- Empty home timeline +- Some crashes when scrolling \ No newline at end of file diff --git a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java index 692f0c430..5207547ff 100644 --- a/app/src/main/java/app/fedilab/android/activities/LoginActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/LoginActivity.java @@ -593,7 +593,12 @@ public class LoginActivity extends BaseActivity { editor.putString(Helper.PREF_KEY_OAUTH_TOKEN, token); editor.apply(); //Update the account with the token; - new UpdateAccountInfoAsyncTask(LoginActivity.this, token, client_id, client_secret, refresh_token, instance, socialNetwork).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + if (instance != null) { + new UpdateAccountInfoAsyncTask(LoginActivity.this, token, client_id, client_secret, refresh_token, instance, socialNetwork).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + } else { + connectionButton.setEnabled(true); + Toasty.error(LoginActivity.this, getString(R.string.toast_error), Toast.LENGTH_LONG).show(); + } } catch (JSONException e) { e.printStackTrace(); } diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java index f360dcc3c..ffddd14ff 100644 --- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java @@ -150,7 +150,9 @@ public class WebviewConnectActivity extends BaseActivity { } }); - + if (instance == null) { + finish(); + } webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { @@ -200,6 +202,7 @@ public class WebviewConnectActivity extends BaseActivity { }); webView.loadUrl(LoginActivity.redirectUserToAuthorizeAndLogin(WebviewConnectActivity.this, clientId, instance)); + } @Override 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 063f477d3..b9cd3f100 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 @@ -145,17 +145,17 @@ public class Status implements Parcelable { private Card card; private String language; private boolean isTranslated = false; - private boolean isEmojiFound = false; - private boolean isPollEmojiFound = false; - private boolean isImageFound = false; - private boolean isEmojiTranslateFound = false; + private transient boolean isEmojiFound = false; + private transient boolean isPollEmojiFound = false; + private transient boolean isImageFound = false; + private transient boolean isEmojiTranslateFound = false; private boolean isTranslationShown = false; private boolean isNew = false; private boolean isVisible = true; private boolean fetchMore = false; private String content, contentCW, contentTranslated; private SpannableString contentSpan, contentSpanCW, contentSpanTranslated; - private RetrieveFeedsAsyncTask.Type type; + private transient RetrieveFeedsAsyncTask.Type type; private int itemViewType; private String conversationId; private boolean isExpanded = false; @@ -184,9 +184,9 @@ public class Status implements Parcelable { private List imageURL; private int viewType; private boolean isFocused = false; - private long db_id; - private boolean commentsFetched = false; - private List comments = new ArrayList<>(); + private transient long db_id; + private transient boolean commentsFetched = false; + private transient List comments = new ArrayList<>(); public Status() { } @@ -1314,7 +1314,7 @@ public class Status implements Parcelable { } public String getContent() { - return content; + return content.replaceAll("\\p{C}", "?"); } public void setContent(Context context, String content) { diff --git a/app/src/main/java/app/fedilab/android/sqlite/StatusCacheDAO.java b/app/src/main/java/app/fedilab/android/sqlite/StatusCacheDAO.java index bc72083d9..014caf65c 100644 --- a/app/src/main/java/app/fedilab/android/sqlite/StatusCacheDAO.java +++ b/app/src/main/java/app/fedilab/android/sqlite/StatusCacheDAO.java @@ -78,7 +78,10 @@ public class StatusCacheDAO { values.put(Sqlite.COL_ACCOUNT, Helper.accountToStringStorage(status.getAccount())); values.put(Sqlite.COL_IN_REPLY_TO_ID, status.getIn_reply_to_id()); values.put(Sqlite.COL_IN_REPLY_TO_ACCOUNT_ID, status.getIn_reply_to_account_id()); - values.put(Sqlite.COL_REBLOG, status.getReblog() != null ? Helper.statusToStringStorage(status.getReblog()) : null); + try { + values.put(Sqlite.COL_REBLOG, status.getReblog() != null ? Helper.statusToStringStorage(status.getReblog()) : ""); + } catch (Exception ignored) { + } values.put(Sqlite.COL_CONTENT, status.getContent()); values.put(Sqlite.COL_EMOJIS, status.getEmojis() != null ? Helper.emojisToStringStorage(status.getEmojis()) : null); values.put(Sqlite.COL_POLL, status.getPoll() != null ? Helper.pollToStringStorage(status.getPoll()) : null); diff --git a/build.gradle b/build.gradle index db1fb473c..7d3471549 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.2' + classpath 'com.android.tools.build:gradle:4.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f9fed6430..b49bbba78 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Fri Mar 06 19:14:19 CET 2020 +#Sat Jun 06 18:24:49 CEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip