diff --git a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java index 582ca3d1a..10816dd1c 100644 --- a/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/HashTagActivity.java @@ -186,6 +186,7 @@ public class HashTagActivity extends BaseActivity implements OnRetrieveFeedsInte SQLiteDatabase db = Sqlite.getInstance(HashTagActivity.this, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open(); new SearchDAO(HashTagActivity.this, db).insertSearch(tag); Intent intent = new Intent(HashTagActivity.this, MainActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); intent.putExtra(Helper.INTENT_ACTION, Helper.SEARCH_TAG); intent.putExtra(Helper.SEARCH_KEYWORD, tag); startActivity(intent); diff --git a/app/src/main/java/app/fedilab/android/client/API.java b/app/src/main/java/app/fedilab/android/client/API.java index 0d71a7cae..9ff029644 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -5166,6 +5166,10 @@ public class API { List filters = null; try { String response = new HttpsConnection(context, this.instance).get(getAbsoluteUrl("/filters"), 10, null, prefKeyOauthTokenT); + if (response == null) { + apiResponse.setFilters(new ArrayList<>()); + return apiResponse; + } filters = parseFilters(new JSONArray(response)); } catch (HttpsConnection.HttpsConnectionException e) { setError(e.getStatusCode(), e); diff --git a/app/src/main/java/app/fedilab/android/client/HttpsConnection.java b/app/src/main/java/app/fedilab/android/client/HttpsConnection.java index a5da8ac1f..43a10aea3 100644 --- a/app/src/main/java/app/fedilab/android/client/HttpsConnection.java +++ b/app/src/main/java/app/fedilab/android/client/HttpsConnection.java @@ -209,6 +209,13 @@ public class HttpsConnection { int code = httpresponse.code(); String error = httpresponse.message(); if (code >= 200 && code < 400) { + if (!cache.isClosed()) { + try { + cache.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } getOKHttpHeader(httpresponse.headers().toMultimap()); return response; } else { @@ -224,7 +231,7 @@ public class HttpsConnection { } } } - return null; + throw new HttpsConnectionException(500, context.getString(R.string.toast_error)); }else{ if (proxy != null)