From 1e3b91e7b3d108485c9463e17a9aaf18f20fc5d6 Mon Sep 17 00:00:00 2001 From: tom79 Date: Thu, 11 Jul 2019 17:55:35 +0200 Subject: [PATCH] some fixes --- .../android/activities/BaseMainActivity.java | 2 +- .../java/app/fedilab/android/client/API.java | 65 +++++-------------- .../android/drawers/StatusListAdapter.java | 18 ++--- .../fragments/ContentSettingsFragment.java | 2 +- .../app/fedilab/android/helper/Helper.java | 2 +- build.gradle | 2 +- 6 files changed, 31 insertions(+), 60 deletions(-) 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 7baf6ad19..8f22d46dd 100644 --- a/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/BaseMainActivity.java @@ -1119,7 +1119,7 @@ public abstract class BaseMainActivity extends BaseActivity } MenuItem news = navigationView.getMenu().findItem(R.id.nav_news); if( news != null){ - boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, false); + boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true); if( ! display_news ){ news.setVisible(false); } 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 4a94da019..fa6361e29 100644 --- a/app/src/main/java/app/fedilab/android/client/API.java +++ b/app/src/main/java/app/fedilab/android/client/API.java @@ -2019,64 +2019,35 @@ public class API { */ public APIResponse getNews(String max_id){ - HashMap params = new HashMap<>(); - if (max_id != null) + HashMap params = null; + if (max_id != null) { + params = new HashMap<>(); params.put("max_id", max_id); - - params.put("exclude_replies", "true"); - params.put("reblogs","false"); - params.put("limit", "40"); - params.put("tagged", "Fedilab"); - statuses = new ArrayList<>(); - final SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - String userId = sharedpreferences.getString(Helper.PREF_KEY_ID, null); - String instance = Helper.getLiveInstance(context); - - String accountID = sharedpreferences.getString(Helper.NEWS_ACCOUNT_ID+userId+instance, null); - if( accountID == null){ - HashMap params2 = new HashMap<>(); - try { - params2.put("q", URLEncoder.encode("https://framapiaf.org/@fedilab", "UTF-8")); - } catch (UnsupportedEncodingException e) { - params2.put("q", "https://framapiaf.org/@fedilab"); - } - HttpsConnection httpsConnection = new HttpsConnection(context, this.instance); - try { - String response = httpsConnection.get(getAbsoluteUrl("/search"), 60, params2, prefKeyOauthTokenT); - Results res = parseResultsResponse(new JSONObject(response)); - if( res != null && res.getAccounts() != null && res.getAccounts().size() > 0 ){ - accountID = res.getAccounts().get(0).getId(); - SharedPreferences.Editor editor = sharedpreferences.edit(); - editor.putString(Helper.NEWS_ACCOUNT_ID+userId+instance, accountID); - editor.apply(); - } - } catch (IOException e) { - e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } catch (KeyManagementException e) { - e.printStackTrace(); - } catch (HttpsConnection.HttpsConnectionException e) { - e.printStackTrace(); - } catch (JSONException e) { - e.printStackTrace(); - } } + + statuses = new ArrayList<>(); + apiResponse = new APIResponse(); try { HttpsConnection httpsConnection = new HttpsConnection(context, this.instance); - String response = httpsConnection.get(getAbsoluteUrl(String.format("/accounts/%s/statuses", accountID)), 60, params, prefKeyOauthTokenT); - statuses = parseStatuses(context, new JSONArray(response)); + String response = httpsConnection.get("https://framapiaf.org/api/v1/timelines/tag/fedilab", 60, params, prefKeyOauthTokenT); apiResponse.setSince_id(httpsConnection.getSince_id()); apiResponse.setMax_id(httpsConnection.getMax_id()); - } catch (HttpsConnection.HttpsConnectionException e) { - setError(e.getStatusCode(), e); + List tmp_status = parseStatuses(context, new JSONArray(response)); + if( tmp_status != null && tmp_status.size() > 0){ + for(Status status: tmp_status){ + if( status.getAccount().getAcct().equals("fedilab")){ + statuses.add(status); + } + } + } + } catch (IOException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); } catch (KeyManagementException e) { e.printStackTrace(); + } catch (HttpsConnection.HttpsConnectionException e) { + e.printStackTrace(); } catch (JSONException e) { e.printStackTrace(); } 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 0069b89b2..dd0df4f90 100644 --- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java +++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java @@ -786,7 +786,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct boolean isConsoleMode = sharedpreferences.getBoolean(Helper.SET_CONSOLE_MODE, false); if( !isConsoleMode && type == RetrieveFeedsAsyncTask.Type.CONTEXT && position == conversationPosition) return FOCUSED_STATUS; - else if( type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && !Helper.filterToots(context, statuses.get(position), timedMute, type)) + else if( type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS && !Helper.filterToots(context, statuses.get(position), timedMute, type)) return HIDDEN_STATUS; else { if( isCompactMode) @@ -1358,7 +1358,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct return false; }); - if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE){ + if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS){ holder.custom_feature_timed_mute.setVisibility(View.GONE); holder.custom_feature_schedule.setVisibility(View.GONE); holder.custom_feature_cache.setVisibility(View.GONE); @@ -1480,7 +1480,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_spoiler.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { + if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) { Intent intent = new Intent(context, ShowConversationActivity.class); int position = closePanels(); if( holder.getAdapterPosition() == position) @@ -1505,7 +1505,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_content.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { + if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) { Intent intent = new Intent(context, ShowConversationActivity.class); int position = closePanels(); if( holder.getAdapterPosition() == position) @@ -1530,7 +1530,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.main_container.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { + if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) { Intent intent = new Intent(context, ShowConversationActivity.class); int position = closePanels(); if( holder.getAdapterPosition() == position) @@ -2288,7 +2288,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct holder.status_pin.setVisibility(View.GONE); } - if( (isAdmin || isModerator) && !isCompactMode && !isConsoleMode && getItemViewType(viewHolder.getAdapterPosition()) != FOCUSED_STATUS && type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE){ + if( (isAdmin || isModerator) && !isCompactMode && !isConsoleMode && getItemViewType(viewHolder.getAdapterPosition()) != FOCUSED_STATUS && type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS){ holder.status_remove.setVisibility(View.VISIBLE); }else { holder.status_remove.setVisibility(View.GONE); @@ -2465,7 +2465,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct @Override public void onClick(View v) { - if (quick_reply && type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { + if (quick_reply && type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) { if( context instanceof BaseMainActivity){ FloatingActionButton toot = ((BaseMainActivity) context).findViewById(R.id.toot); @@ -2833,7 +2833,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct }); - if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) + if (type == RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE || type == RetrieveFeedsAsyncTask.Type.NEWS) holder.status_more.setVisibility(View.GONE); final View attached = holder.status_more; @@ -3207,7 +3207,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct }); - if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE) { + if (type != RetrieveFeedsAsyncTask.Type.REMOTE_INSTANCE && type != RetrieveFeedsAsyncTask.Type.NEWS) { holder.status_account_profile.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java index db28b70eb..f11e1adf3 100644 --- a/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java +++ b/app/src/main/java/app/fedilab/android/fragments/ContentSettingsFragment.java @@ -718,7 +718,7 @@ public class ContentSettingsFragment extends Fragment implements ScreenShotable }); - boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, false); + boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true); final CheckBox set_display_news = rootView.findViewById(R.id.set_display_news); set_display_news.setChecked(display_news); diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index e2fffe61a..69f45f016 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -2919,7 +2919,7 @@ public class Helper { } MenuItem news = navigationView.getMenu().findItem(R.id.nav_news); if( news != null){ - boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, false); + boolean display_news = sharedpreferences.getBoolean(Helper.SET_DISPLAY_NEWS_FROM_FEDILAB, true); if( ! display_news ){ news.setVisible(false); } diff --git a/build.gradle b/build.gradle index 5ea98810f..c5c31db06 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.4.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files