Fixes issues

This commit is contained in:
tom79 2017-10-21 14:35:36 +02:00
parent e7da61bdd3
commit 3874c3495a
3 changed files with 22 additions and 9 deletions

View File

@ -79,7 +79,7 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet
private ListView lv_status; private ListView lv_status;
private boolean isRefreshed; private boolean isRefreshed;
private ImageView pp_actionBar; private ImageView pp_actionBar;
public static int position;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -224,7 +224,7 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet
} }
@Override @Override
public void onRetrieveFeeds(Context context, Error error) { public void onRetrieveContext(Context context, Status statusFirst, Error error) {
swipeRefreshLayout.setRefreshing(false); swipeRefreshLayout.setRefreshing(false);
if( error != null){ if( error != null){
final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
@ -237,25 +237,32 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet
SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE);
int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS); int behaviorWithAttachments = sharedpreferences.getInt(Helper.SET_ATTACHMENT_ACTION, Helper.ATTACHMENT_ALWAYS);
int positionSpinnerTrans = sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX); int positionSpinnerTrans = sharedpreferences.getInt(Helper.SET_TRANSLATOR, Helper.TRANS_YANDEX);
int position = 0; position = 0;
boolean positionFound = false; boolean positionFound = false;
List<Status> statuses = new ArrayList<>(); List<Status> statuses = new ArrayList<>();
if( statusFirst != null)
statuses.add(0, statusFirst);
if( context.getAncestors() != null && context.getAncestors().size() > 0){ if( context.getAncestors() != null && context.getAncestors().size() > 0){
for(Status status: context.getAncestors()){ for(Status status: context.getAncestors()){
statuses.add(status); statuses.add(status);
if( status.getId().equals(initialStatus.getId()))
positionFound =true;
if( !positionFound) if( !positionFound)
position++; position++;
if( status.getId().equals(initialStatus.getId()))
positionFound = true;
} }
}else if( statusFirst == null){
statuses.add(0, initialStatus);
positionFound = true;
} }
if( context.getDescendants() != null && context.getDescendants().size() > 0){ if( context.getDescendants() != null && context.getDescendants().size() > 0){
for(Status status: context.getDescendants()){ for(Status status: context.getDescendants()){
statuses.add(status); statuses.add(status);
if( status.getId().equals(initialStatus.getId()))
positionFound =true;
if( !positionFound) if( !positionFound)
position++; position++;
if( status.getId().equals(initialStatus.getId()))
positionFound = true;
} }
} }
RelativeLayout loader = findViewById(R.id.loader); RelativeLayout loader = findViewById(R.id.loader);

View File

@ -16,8 +16,11 @@ package fr.gouv.etalab.mastodon.asynctasks;
import android.content.Context; import android.content.Context;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.util.Log;
import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.API;
import fr.gouv.etalab.mastodon.client.Entities.Status;
import fr.gouv.etalab.mastodon.helper.Helper;
import fr.gouv.etalab.mastodon.interfaces.OnRetrieveContextInterface; import fr.gouv.etalab.mastodon.interfaces.OnRetrieveContextInterface;
@ -30,6 +33,7 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
private Context context; private Context context;
private String statusId; private String statusId;
private fr.gouv.etalab.mastodon.client.Entities.Status statusFirst;
private fr.gouv.etalab.mastodon.client.Entities.Context statusContext; private fr.gouv.etalab.mastodon.client.Entities.Context statusContext;
private OnRetrieveContextInterface listener; private OnRetrieveContextInterface listener;
private API api; private API api;
@ -46,6 +50,7 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
statusContext = api.getStatusContext(statusId); statusContext = api.getStatusContext(statusId);
//Retrieves the first toot //Retrieves the first toot
if( statusContext.getAncestors().size() > 0 ) { if( statusContext.getAncestors().size() > 0 ) {
statusFirst = statusContext.getAncestors().get(0);
statusContext = api.getStatusContext(statusContext.getAncestors().get(0).getId()); statusContext = api.getStatusContext(statusContext.getAncestors().get(0).getId());
} }
return null; return null;
@ -53,7 +58,7 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
@Override @Override
protected void onPostExecute(Void result) { protected void onPostExecute(Void result) {
listener.onRetrieveFeeds(statusContext, api.getError()); listener.onRetrieveContext(statusContext, statusFirst, api.getError());
} }
} }

View File

@ -17,11 +17,12 @@ package fr.gouv.etalab.mastodon.interfaces;
import fr.gouv.etalab.mastodon.client.Entities.Context; import fr.gouv.etalab.mastodon.client.Entities.Context;
import fr.gouv.etalab.mastodon.client.Entities.Error; import fr.gouv.etalab.mastodon.client.Entities.Error;
import fr.gouv.etalab.mastodon.client.Entities.Status;
/** /**
* Created by Thomas on 04/05/2017. * Created by Thomas on 04/05/2017.
* Interface when a context for a status has been retrieved * Interface when a context for a status has been retrieved
*/ */
public interface OnRetrieveContextInterface { public interface OnRetrieveContextInterface {
void onRetrieveFeeds(Context context, Error error); void onRetrieveContext(Context context, Status statusFirst, Error error);
} }