diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java index d0e09e5fe..f9c8a198b 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java @@ -1259,6 +1259,7 @@ public class API { status.setVisibility(resobj.get("visibility").toString()); status.setLanguage(resobj.get("language").toString()); status.setUrl(resobj.get("url").toString()); + status.setReplies(null); //TODO: replace by the value status.setApplication(new Application()); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index c1c2f7040..0f2b8a9f7 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -157,6 +157,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf if (convertView == null) { convertView = layoutInflater.inflate(R.layout.drawer_status, parent, false); holder = new ViewHolder(); + holder.loader_replies = (LinearLayout) convertView.findViewById(R.id.loader_replies); holder.card_status_container = (CardView) convertView.findViewById(R.id.card_status_container); holder.status_document_container = (LinearLayout) convertView.findViewById(R.id.status_document_container); holder.status_content = (TextView) convertView.findViewById(R.id.status_content); @@ -207,33 +208,43 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf //Display a preview for accounts that have replied *if enabled and only for home timeline* if( type == RetrieveFeedsAsyncTask.Type.HOME ) { boolean showPreview = sharedpreferences.getBoolean(Helper.SET_PREVIEW_REPLIES, true); - if ( !showPreview || status.getReplies() == null || status.getReplies().size() == 0){ - holder.status_replies.setVisibility(View.GONE); - }else if(status.getReplies().size() > 0 ){ - ArrayList addedPictures = new ArrayList<>(); - holder.status_replies_profile_pictures.removeAllViews(); - int i = 0; - for(Status replies: status.getReplies()){ - if( i > 4 ) - break; - if( !addedPictures.contains(replies.getAccount().getAcct())){ - ImageView imageView = new ImageView(context); - imageView.setMaxHeight((int) Helper.convertDpToPixel(40, context)); - imageView.setMaxWidth((int) Helper.convertDpToPixel(40, context)); - imageLoader.displayImage(replies.getAccount().getAvatar(), imageView, options); - LinearLayout.LayoutParams imParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); - imParams.setMargins(10, 5, 10, 5); - imParams.height = (int) Helper.convertDpToPixel(40, context); - imParams.width = (int) Helper.convertDpToPixel(40, context); - holder.status_replies_profile_pictures.addView(imageView, imParams); - i++; - addedPictures.add(replies.getAccount().getAcct()); + if( showPreview){ + if( status.getReplies() == null){ + holder.loader_replies.setVisibility(View.VISIBLE); + }else if(status.getReplies().size() == 0){ + holder.status_replies.setVisibility(View.GONE); + holder.loader_replies.setVisibility(View.GONE); + }else if(status.getReplies().size() > 0 ){ + ArrayList addedPictures = new ArrayList<>(); + holder.status_replies_profile_pictures.removeAllViews(); + int i = 0; + for(Status replies: status.getReplies()){ + if( i > 4 ) + break; + if( !addedPictures.contains(replies.getAccount().getAcct())){ + ImageView imageView = new ImageView(context); + imageView.setMaxHeight((int) Helper.convertDpToPixel(40, context)); + imageView.setMaxWidth((int) Helper.convertDpToPixel(40, context)); + imageLoader.displayImage(replies.getAccount().getAvatar(), imageView, options); + LinearLayout.LayoutParams imParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); + imParams.setMargins(10, 5, 10, 5); + imParams.height = (int) Helper.convertDpToPixel(40, context); + imParams.width = (int) Helper.convertDpToPixel(40, context); + holder.status_replies_profile_pictures.addView(imageView, imParams); + i++; + addedPictures.add(replies.getAccount().getAcct()); + } } + holder.status_replies_text.setText(context.getResources().getQuantityString(R.plurals.preview_replies, status.getReplies().size(), status.getReplies().size())); + holder.status_replies.setVisibility(View.VISIBLE); + holder.status_replies_text.setVisibility(View.VISIBLE); + holder.loader_replies.setVisibility(View.GONE); } - holder.status_replies_text.setText(context.getResources().getQuantityString(R.plurals.preview_replies, status.getReplies().size(), status.getReplies().size())); - holder.status_replies.setVisibility(View.VISIBLE); - holder.status_replies_text.setVisibility(View.VISIBLE); + }else{ + holder.loader_replies.setVisibility(View.GONE); + holder.status_replies.setVisibility(View.GONE); } + } int iconSizePercent = sharedpreferences.getInt(Helper.SET_ICON_SIZE, 130); int textSizePercent = sharedpreferences.getInt(Helper.SET_TEXT_SIZE, 110); @@ -942,6 +953,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf LinearLayout status_replies; LinearLayout status_replies_profile_pictures; TextView status_replies_text; + LinearLayout loader_replies; } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java index d369077fa..a5f7dbc7e 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java @@ -23,6 +23,7 @@ import android.os.Parcelable; import android.support.v4.app.Fragment; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.widget.SwipeRefreshLayout; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -329,7 +330,6 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn @Override public void onRetrieveReplies(APIResponse apiResponse) { - if( apiResponse.getError() != null || apiResponse.getStatuses() == null || apiResponse.getStatuses().size() == 0){ return; } @@ -337,7 +337,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn for(Status stmp: modifiedStatus){ for(Status status: statuses){ if( status.getId().equals(stmp.getId())) - statuses.set(0,stmp); + status.setReplies(stmp.getReplies()); } } statusListAdapter.notifyDataSetChanged(); diff --git a/app/src/main/res/layout/drawer_status.xml b/app/src/main/res/layout/drawer_status.xml index 40b39289b..8bdfcefdf 100644 --- a/app/src/main/res/layout/drawer_status.xml +++ b/app/src/main/res/layout/drawer_status.xml @@ -392,6 +392,27 @@ tools:ignore="ContentDescription" /> + + + + Médias Partager avec Partagé via Mastalab + Réponses Accueil Fil public local diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c31dbacfe..46757e6c1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,6 +57,7 @@ Media Share with Shared via Mastalab + Replies Home Local timeline @@ -88,6 +89,7 @@ The toot is no longer boosted! Shared via %1$s + Add this toot to your favourites? Remove this toot from your favourites? Boost this toot?