Add conversations for private messages #829
This commit is contained in:
parent
baee599f4f
commit
82aee9b79c
|
@ -257,7 +257,8 @@ public class ShowConversationActivity extends BaseActivity implements OnRetriev
|
|||
finish();
|
||||
if( conversationId != null)
|
||||
statusIdToFetch = conversationId;
|
||||
new RetrieveContextAsyncTask(getApplicationContext(), expanded, statusIdToFetch, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
|
||||
new RetrieveContextAsyncTask(getApplicationContext(),expanded, detailsStatus.getVisibility().equals("direct"), statusIdToFetch, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||
switch (theme){
|
||||
case Helper.THEME_LIGHT:
|
||||
swipeRefreshLayout.setColorSchemeResources(R.color.mastodonC4,
|
||||
|
|
|
@ -39,12 +39,15 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
private Error error;
|
||||
private WeakReference<Context> contextReference;
|
||||
private boolean expanded;
|
||||
private boolean directtimeline;
|
||||
|
||||
public RetrieveContextAsyncTask(Context context, boolean expanded, String statusId, OnRetrieveContextInterface onRetrieveContextInterface){
|
||||
|
||||
public RetrieveContextAsyncTask(Context context, boolean expanded, boolean directtimeline, String statusId, OnRetrieveContextInterface onRetrieveContextInterface){
|
||||
this.contextReference = new WeakReference<>(context);
|
||||
this.statusId = statusId;
|
||||
this.listener = onRetrieveContextInterface;
|
||||
this.expanded = expanded;
|
||||
this.directtimeline = directtimeline;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -59,10 +62,10 @@ public class RetrieveContextAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||
error = api.getError();
|
||||
}else{
|
||||
GNUAPI gnuapi = new GNUAPI(this.contextReference.get());
|
||||
statusContext = gnuapi.getStatusContext(statusId);
|
||||
statusContext = gnuapi.getStatusContext(statusId, directtimeline);
|
||||
//Retrieves the first toot
|
||||
if (expanded && statusContext != null && statusContext.getAncestors() != null && statusContext.getAncestors().size() > 0) {
|
||||
statusContext = gnuapi.getStatusContext(statusContext.getAncestors().get(0).getId());
|
||||
statusContext = gnuapi.getStatusContext(statusContext.getAncestors().get(0).getId(), directtimeline);
|
||||
}
|
||||
error = gnuapi.getError();
|
||||
}
|
||||
|
|
|
@ -544,11 +544,18 @@ public class GNUAPI {
|
|||
* @param statusId Id of the status
|
||||
* @return List<Status>
|
||||
*/
|
||||
public fr.gouv.etalab.mastodon.client.Entities.Context getStatusContext(String statusId) {
|
||||
public fr.gouv.etalab.mastodon.client.Entities.Context getStatusContext(String statusId, boolean directtimeline) {
|
||||
fr.gouv.etalab.mastodon.client.Entities.Context statusContext = new fr.gouv.etalab.mastodon.client.Entities.Context();
|
||||
try {
|
||||
HttpsConnection httpsConnection = new HttpsConnection(context);
|
||||
String response = httpsConnection.get(getAbsoluteUrl(String.format("/statusnet/conversation/%s.json", statusId)), 60, null, prefKeyOauthTokenT);
|
||||
String response;
|
||||
if( !directtimeline)
|
||||
response = httpsConnection.get(getAbsoluteUrl(String.format("/statusnet/conversation/%s.json", statusId)), 60, null, prefKeyOauthTokenT);
|
||||
else {
|
||||
HashMap<String, String> params = new HashMap<>();
|
||||
params.put("uri", statusId);
|
||||
response = httpsConnection.get(getAbsoluteUrl("/direct_messages/conversation.json"), 60, params, prefKeyOauthTokenT);
|
||||
}
|
||||
statuses = parseStatuses(context, new JSONArray(response));
|
||||
if( statuses != null && statuses.size() > 0){
|
||||
ArrayList<Status> descendants = new ArrayList<>();
|
||||
|
@ -1831,7 +1838,10 @@ public class GNUAPI {
|
|||
try {
|
||||
status.setConversationId(resobj.get("statusnet_conversation_id").toString());
|
||||
}catch (Exception ignored){
|
||||
status.setConversationId(resobj.get("id").toString());
|
||||
if( resobj.has("friendica_parent_uri"))
|
||||
status.setConversationId(resobj.get("friendica_parent_uri").toString());
|
||||
else
|
||||
status.setConversationId(resobj.get("id").toString());
|
||||
}
|
||||
//Retrieves mentions
|
||||
List<Mention> mentions = new ArrayList<>();
|
||||
|
|
Loading…
Reference in New Issue