Profiles
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package org.joinmastodon.android.api;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
@@ -10,6 +11,7 @@ import org.joinmastodon.android.model.BaseModel;
|
||||
import org.joinmastodon.android.model.Token;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -27,7 +29,7 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
private String path;
|
||||
private String method;
|
||||
private Object requestBody;
|
||||
private Map<String, String> queryParams;
|
||||
private List<Pair<String, String>> queryParams;
|
||||
Class<T> respClass;
|
||||
TypeToken<T> respTypeToken;
|
||||
Call okhttpCall;
|
||||
@@ -86,8 +88,8 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
|
||||
protected void addQueryParameter(String key, String value){
|
||||
if(queryParams==null)
|
||||
queryParams=new HashMap<>();
|
||||
queryParams.put(key, value);
|
||||
queryParams=new ArrayList<>();
|
||||
queryParams.add(new Pair<>(key, value));
|
||||
}
|
||||
|
||||
protected void addHeader(String key, String value){
|
||||
@@ -106,8 +108,8 @@ public abstract class MastodonAPIRequest<T> extends APIRequest<T>{
|
||||
.authority(domain)
|
||||
.path(getPathPrefix()+path);
|
||||
if(queryParams!=null){
|
||||
for(Map.Entry<String, String> param:queryParams.entrySet()){
|
||||
builder.appendQueryParameter(param.getKey(), param.getValue());
|
||||
for(Pair<String, String> param:queryParams){
|
||||
builder.appendQueryParameter(param.first, param.second);
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package org.joinmastodon.android.api.requests.accounts;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.model.Relationship;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class GetAccountRelationships extends MastodonAPIRequest<List<Relationship>>{
|
||||
public GetAccountRelationships(@NonNull List<String> ids){
|
||||
super(HttpMethod.GET, "/accounts/relationships", new TypeToken<>(){});
|
||||
for(String id:ids)
|
||||
addQueryParameter("id[]", id);
|
||||
}
|
||||
}
|
||||
@@ -7,8 +7,10 @@ import org.joinmastodon.android.model.Status;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public class GetAccountStatuses extends MastodonAPIRequest<List<Status>>{
|
||||
public GetAccountStatuses(String id, String maxID, String minID, int limit){
|
||||
public GetAccountStatuses(String id, String maxID, String minID, int limit, @NonNull Filter filter){
|
||||
super(HttpMethod.GET, "/accounts/"+id+"/statuses", new TypeToken<>(){});
|
||||
if(maxID!=null)
|
||||
addQueryParameter("max_id", maxID);
|
||||
@@ -16,5 +18,16 @@ public class GetAccountStatuses extends MastodonAPIRequest<List<Status>>{
|
||||
addQueryParameter("min_id", minID);
|
||||
if(limit>0)
|
||||
addQueryParameter("limit", ""+limit);
|
||||
switch(filter){
|
||||
case DEFAULT -> addQueryParameter("exclude_replies", "true");
|
||||
case INCLUDE_REPLIES -> {}
|
||||
case MEDIA -> addQueryParameter("only_media", "true");
|
||||
}
|
||||
}
|
||||
|
||||
public enum Filter{
|
||||
DEFAULT,
|
||||
INCLUDE_REPLIES,
|
||||
MEDIA
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,6 +189,10 @@ public class AccountSessionManager{
|
||||
.execNoAuth(instance.uri);
|
||||
}
|
||||
|
||||
public boolean isSelf(String id, Account other){
|
||||
return getAccount(id).self.id.equals(other.id);
|
||||
}
|
||||
|
||||
public Instance getAuthenticatingInstance(){
|
||||
return authenticatingInstance;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user