mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-04 21:09:53 +02:00
Initial API rewrite
This commit is contained in:
@@ -5,7 +5,7 @@ import androidx.annotation.NonNull;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.DeleteCommentDTO;
|
||||
import eu.toldi.infinityforlemmy.dto.DeletePostDTO;
|
||||
import eu.toldi.infinityforlemmy.utils.APIUtils;
|
||||
@@ -19,7 +19,7 @@ public class DeleteThing {
|
||||
public static void deletePost(Retrofit retrofit, int post_id, String accessToken, DeleteThingListener deleteThingListener) {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put(APIUtils.ID_KEY, String.valueOf(post_id));
|
||||
retrofit.create(LemmyAPI.class).postDelete(new DeletePostDTO(post_id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
retrofit.create(LemmyBetaAPI.class).postDelete(new DeletePostDTO(post_id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
@@ -39,7 +39,7 @@ public class DeleteThing {
|
||||
public static void deleteComment(Retrofit retrofit, int comment_id, String accessToken, DeleteThingListener deleteThingListener) {
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put(APIUtils.ID_KEY, String.valueOf(comment_id));
|
||||
retrofit.create(LemmyAPI.class).commentDelete(new DeleteCommentDTO(comment_id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
retrofit.create(LemmyBetaAPI.class).commentDelete(new DeleteCommentDTO(comment_id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
|
@@ -4,7 +4,7 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.subreddit.SubredditData;
|
||||
import eu.toldi.infinityforlemmy.subscribedsubreddit.SubscribedSubredditData;
|
||||
import eu.toldi.infinityforlemmy.subscribeduser.SubscribedUserData;
|
||||
@@ -19,7 +19,7 @@ public class FetchSubscribedThing {
|
||||
final ArrayList<SubscribedUserData> subscribedUserData,
|
||||
final ArrayList<SubredditData> subredditData,
|
||||
final FetchSubscribedThingListener fetchSubscribedThingListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> subredditDataCall = api.listCommunities("Subscribed",null,page,null,accessToken);
|
||||
subredditDataCall.enqueue(new Callback<String>() {
|
||||
|
@@ -11,6 +11,7 @@ import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import eu.toldi.infinityforlemmy.apis.RedgifsAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.StreamableAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.comment.LemmyCommentAPI;
|
||||
import eu.toldi.infinityforlemmy.post.LemmyPostAPI;
|
||||
import eu.toldi.infinityforlemmy.privatemessage.LemmyPrivateMessageAPI;
|
||||
@@ -58,6 +59,12 @@ abstract class NetworkModule {
|
||||
return new RetrofitHolder(okHttpClient);
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
static ApiHandlerProvider provideApiHandlerProvider(@Named("base") OkHttpClient okHttpClient) {
|
||||
return new ApiHandlerProvider(okHttpClient);
|
||||
}
|
||||
|
||||
/*@Provides
|
||||
@Named("base")
|
||||
@Singleton
|
||||
|
@@ -30,7 +30,7 @@ import javax.inject.Named;
|
||||
import eu.toldi.infinityforlemmy.account.Account;
|
||||
import eu.toldi.infinityforlemmy.activities.InboxActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.LinkResolverActivity;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
@@ -182,7 +182,7 @@ public class PullNotificationWorker extends Worker {
|
||||
if (retryCount < 0) {
|
||||
return null;
|
||||
}
|
||||
Call<String> call = mRetrofit.getRetrofit().create(LemmyAPI.class).userReplies("New", 1, 25, true, account.getAccessToken());
|
||||
Call<String> call = mRetrofit.getRetrofit().create(LemmyBetaAPI.class).userReplies("New", 1, 25, true, account.getAccessToken());
|
||||
Response<String> response = call.execute();
|
||||
|
||||
if (response.isSuccessful()) {
|
||||
|
@@ -1,53 +0,0 @@
|
||||
package eu.toldi.infinityforlemmy;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.SaveCommentDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class SaveComment implements SaveThing {
|
||||
@Override
|
||||
public void saveThing(Retrofit retrofit, String accessToken, int id, SaveThingListener saveThingListener) {
|
||||
|
||||
retrofit.create(LemmyAPI.class).commentSave(new SaveCommentDTO(id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
saveThingListener.success();
|
||||
} else {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsaveThing(Retrofit retrofit, String accessToken, int id, SaveThingListener saveThingListener) {
|
||||
|
||||
retrofit.create(LemmyAPI.class).commentSave(new SaveCommentDTO(id, false, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
saveThingListener.success();
|
||||
} else {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,55 +0,0 @@
|
||||
package eu.toldi.infinityforlemmy;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.SavePostDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class SavePost implements SaveThing {
|
||||
|
||||
@Override
|
||||
public void saveThing(Retrofit retrofit, String accessToken, int id, SaveThingListener saveThingListener) {
|
||||
|
||||
|
||||
retrofit.create(LemmyAPI.class).postSave(new SavePostDTO(id, true, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
saveThingListener.success();
|
||||
} else {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsaveThing(Retrofit retrofit, String accessToken, int id, SaveThingListener saveThingListener) {
|
||||
|
||||
retrofit.create(LemmyAPI.class).postSave(new SavePostDTO(id, false, accessToken)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
saveThingListener.success();
|
||||
} else {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
saveThingListener.failed();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,136 +0,0 @@
|
||||
package eu.toldi.infinityforlemmy;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.CommentVoteDTO;
|
||||
import eu.toldi.infinityforlemmy.dto.PostVoteDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
/**
|
||||
* Created by alex on 3/14/18.
|
||||
*/
|
||||
|
||||
public class VoteThing {
|
||||
|
||||
public static void votePost(Context context, final Retrofit retrofit, String accessToken,
|
||||
final VoteThingListener voteThingListener, final int postID,
|
||||
final int point, final int position) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
|
||||
|
||||
Call<String> voteThingCall = api.postLike(new PostVoteDTO(postID, point, accessToken));
|
||||
voteThingCall.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
voteThingListener.onVoteThingSuccess(position);
|
||||
} else {
|
||||
voteThingListener.onVoteThingFail(position);
|
||||
Toast.makeText(context, "Code " + response.code() + " Body: " + response.body(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
voteThingListener.onVoteThingFail(position);
|
||||
Toast.makeText(context, "Network error " + "Body: " + t.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void votePost(Context context, final Retrofit retrofit, String accessToken,
|
||||
final VoteThingWithoutPositionListener voteThingWithoutPositionListener,
|
||||
final int postID, final int point) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
|
||||
|
||||
Call<String> voteThingCall = api.postLike(new PostVoteDTO(postID, point, accessToken));
|
||||
voteThingCall.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
voteThingWithoutPositionListener.onVoteThingSuccess();
|
||||
} else {
|
||||
voteThingWithoutPositionListener.onVoteThingFail();
|
||||
Toast.makeText(context, "Code " + response.code() + " Body: " + response.body(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
voteThingWithoutPositionListener.onVoteThingFail();
|
||||
Toast.makeText(context, "Network error " + "Body: " + t.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void voteComment(Context context, final Retrofit retrofit, String accessToken,
|
||||
final VoteThingListener voteThingListener, final int commentId,
|
||||
final int point, final int position) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
|
||||
|
||||
Call<String> voteThingCall = api.commentLike(new CommentVoteDTO(commentId, point, accessToken));
|
||||
voteThingCall.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
voteThingListener.onVoteThingSuccess(position);
|
||||
} else {
|
||||
voteThingListener.onVoteThingFail(position);
|
||||
Toast.makeText(context, "Code " + response.code() + " Body: " + response.body(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
voteThingListener.onVoteThingFail(position);
|
||||
Toast.makeText(context, "Network error " + "Body: " + t.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static void voteComment(Context context, final Retrofit retrofit, String accessToken,
|
||||
final VoteThingWithoutPositionListener voteThingWithoutPositionListener,
|
||||
final int commentId, final int point) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
|
||||
|
||||
Call<String> voteThingCall = api.commentLike(new CommentVoteDTO(commentId, point, accessToken));
|
||||
voteThingCall.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
voteThingWithoutPositionListener.onVoteThingSuccess();
|
||||
} else {
|
||||
voteThingWithoutPositionListener.onVoteThingFail();
|
||||
Toast.makeText(context, "Code " + response.code() + " Body: " + response.body(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
|
||||
voteThingWithoutPositionListener.onVoteThingFail();
|
||||
Toast.makeText(context, "Network error " + "Body: " + t.getMessage(), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public interface VoteThingListener {
|
||||
void onVoteThingSuccess(int position);
|
||||
|
||||
void onVoteThingFail(int position);
|
||||
}
|
||||
|
||||
public interface VoteThingWithoutPositionListener {
|
||||
void onVoteThingSuccess();
|
||||
|
||||
void onVoteThingFail();
|
||||
}
|
||||
}
|
@@ -7,7 +7,7 @@ import org.json.JSONObject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.blockedcommunity.BlockedCommunityData;
|
||||
import eu.toldi.infinityforlemmy.blockedinstances.BlockedInstanceData;
|
||||
import eu.toldi.infinityforlemmy.blockeduser.BlockedUserData;
|
||||
@@ -21,9 +21,9 @@ import retrofit2.Retrofit;
|
||||
public class FetchBlockedThings {
|
||||
|
||||
public static void fetchBlockedThings(Retrofit mRetrofit, String accessToken, String accountName, FetchBlockedThingsListener fetchBlockedThingsListener) {
|
||||
LemmyAPI lemmyAPI = mRetrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI lemmyBetaAPI = mRetrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> call = lemmyAPI.getSiteInfo(accessToken);
|
||||
Call<String> call = lemmyBetaAPI.getSiteInfo(accessToken);
|
||||
call.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(Call<String> call, retrofit2.Response<String> response) {
|
||||
|
@@ -45,7 +45,7 @@ import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.UploadImageEnabledActivity;
|
||||
import eu.toldi.infinityforlemmy.UploadedImage;
|
||||
import eu.toldi.infinityforlemmy.adapters.MarkdownBottomBarRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.UploadedImagesBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
@@ -227,7 +227,7 @@ public class EditCommentActivity extends BaseActivity implements UploadImageEnab
|
||||
|
||||
String content = contentEditText.getText().toString();
|
||||
|
||||
retrofit.getRetrofit().create(LemmyAPI.class).commentEdit(new EditCommentDTO(mCommentId, content, null, null, mAccessToken))
|
||||
retrofit.getRetrofit().create(LemmyBetaAPI.class).commentEdit(new EditCommentDTO(mCommentId, content, null, null, mAccessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
|
@@ -55,7 +55,7 @@ import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.UploadImageEnabledActivity;
|
||||
import eu.toldi.infinityforlemmy.UploadedImage;
|
||||
import eu.toldi.infinityforlemmy.adapters.MarkdownBottomBarRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.UploadedImagesBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
@@ -308,7 +308,7 @@ public class EditPostActivity extends BaseActivity implements UploadImageEnabled
|
||||
isSubmitting = true;
|
||||
|
||||
Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_SHORT).show();
|
||||
mRetrofit.getRetrofit().create(LemmyAPI.class).postUpdate(new EditPostDTO(mPost.getId(), titleEditText.getText().toString(), (linkEditText.getText().toString().isEmpty()) ? null : linkEditText.getText().toString(), contentEditText.getText().toString(), mPost.isNSFW(), null, mAccessToken))
|
||||
mRetrofit.getRetrofit().create(LemmyBetaAPI.class).postUpdate(new EditPostDTO(mPost.getId(), titleEditText.getText().toString(), (linkEditText.getText().toString().isEmpty()) ? null : linkEditText.getText().toString(), contentEditText.getText().toString(), mPost.isNSFW(), null, mAccessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
|
@@ -32,6 +32,7 @@ import eu.toldi.infinityforlemmy.Infinity;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.SwitchAccount;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.comment.FetchComment;
|
||||
@@ -87,6 +88,9 @@ public class LinkResolverActivity extends AppCompatActivity {
|
||||
@Named("no_oauth")
|
||||
RetrofitHolder mRetrofit;
|
||||
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
|
||||
@Inject
|
||||
Executor mExecutor;
|
||||
|
||||
@@ -116,6 +120,7 @@ public class LinkResolverActivity extends AppCompatActivity {
|
||||
mRetrofit.setBaseURL(instance);
|
||||
if (mCurrentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.BEARER_TOKEN_AUTH, true)) {
|
||||
mRetrofit.setAccessToken(mAccessToken);
|
||||
apiHandlerProvider.setAccessToken(mAccessToken);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -44,7 +44,7 @@ import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.adapters.CustomArrayAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.ParseAndInsertNewAccount;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.slidr.Slidr;
|
||||
@@ -196,7 +196,7 @@ public class LoginActivity extends BaseActivity {
|
||||
Log.i("LoginActivity", "Instance: " + instance);
|
||||
AccountLoginDTO accountLoginDTO = new AccountLoginDTO(username, password_input.getText().toString(), token_2fa_input.getText().toString());
|
||||
mRetrofit.setBaseURL(instance);
|
||||
LemmyAPI api = mRetrofit.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = mRetrofit.getRetrofit().create(LemmyBetaAPI.class);
|
||||
Call<String> accessTokenCall = api.userLogin(accountLoginDTO);
|
||||
String finalInstance = instance;
|
||||
accessTokenCall.enqueue(new Callback<String>() {
|
||||
|
@@ -90,6 +90,7 @@ import eu.toldi.infinityforlemmy.account.AccountViewModel;
|
||||
import eu.toldi.infinityforlemmy.adapters.SubredditAutocompleteRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.adapters.navigationdrawer.NavigationDrawerRecyclerViewMergedAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.RedditAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.InsertSubscribedThings;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.SwitchAccount;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.SwitchToAnonymousMode;
|
||||
@@ -183,6 +184,8 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
@Named("no_oauth")
|
||||
RetrofitHolder mRetrofit;
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
@Inject
|
||||
@Named("oauth")
|
||||
Retrofit mOauthRetrofit;
|
||||
@Inject
|
||||
@@ -347,6 +350,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
|
||||
mAccessToken = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, null);
|
||||
mRetrofit.setAccessToken(mAccessToken);
|
||||
apiHandlerProvider.setAccessToken(mAccessToken);
|
||||
mBearerTokenUsed = mCurrentAccountSharedPreferences.getBoolean(SharedPreferencesUtils.BEARER_TOKEN_AUTH, true);
|
||||
|
||||
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, null);
|
||||
@@ -354,6 +358,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
String instance = (mAccessToken == null) ? mSharedPreferences.getString(SharedPreferencesUtils.ANONYMOUS_ACCOUNT_INSTANCE, APIUtils.API_BASE_URI) : mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_INSTANCE, null);
|
||||
if (instance != null) {
|
||||
mRetrofit.setBaseURL(instance);
|
||||
apiHandlerProvider.setBaseUrl(instance);
|
||||
}
|
||||
|
||||
if (savedInstanceState != null) {
|
||||
@@ -379,6 +384,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
String instancePreference = mSharedPreferences.getString(SharedPreferencesUtils.ANONYMOUS_ACCOUNT_INSTANCE, APIUtils.API_BASE_URI);
|
||||
if (!instancePreference.startsWith(mRetrofit.getBaseURL())) {
|
||||
mRetrofit.setBaseURL(instancePreference);
|
||||
apiHandlerProvider.setBaseUrl(instancePreference);
|
||||
this.recreate();
|
||||
}
|
||||
} else {
|
||||
@@ -1162,10 +1168,12 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
int minorVersion = Integer.parseInt(version[1]);
|
||||
if (majorVersion > 0 || (majorVersion == 0 && minorVersion >= 19)) {
|
||||
mRetrofit.setAccessToken(mAccessToken);
|
||||
apiHandlerProvider.setAccessToken(mAccessToken);
|
||||
mCurrentAccountSharedPreferences.edit().putBoolean(SharedPreferencesUtils.BEARER_TOKEN_AUTH, true).apply();
|
||||
checkUserToken();
|
||||
} else {
|
||||
mRetrofit.setAccessToken(null);
|
||||
apiHandlerProvider.setAccessToken(null);
|
||||
mCurrentAccountSharedPreferences.edit().putBoolean(SharedPreferencesUtils.BEARER_TOKEN_AUTH, false).apply();
|
||||
}
|
||||
}
|
||||
@@ -1519,6 +1527,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
url = urlObj.getProtocol() + "://" + urlObj.getHost() + "/";
|
||||
mSharedPreferences.edit().putString(SharedPreferencesUtils.ANONYMOUS_ACCOUNT_INSTANCE, url).apply();
|
||||
mRetrofit.setBaseURL(url);
|
||||
apiHandlerProvider.setBaseUrl(url);
|
||||
sectionsPagerAdapter.getCurrentFragment().refresh();
|
||||
} catch (MalformedURLException e) {
|
||||
thingEditText.setError("Invalid URL");
|
||||
@@ -1548,6 +1557,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
|
||||
url = urlObj.getProtocol() + "://" + urlObj.getHost() + "/";
|
||||
mSharedPreferences.edit().putString(SharedPreferencesUtils.ANONYMOUS_ACCOUNT_INSTANCE, url).apply();
|
||||
mRetrofit.setBaseURL(url);
|
||||
apiHandlerProvider.setBaseUrl(url);
|
||||
sectionsPagerAdapter.getCurrentFragment().refresh();
|
||||
} catch (MalformedURLException e) {
|
||||
thingEditText.setError("Invalid URL");
|
||||
|
@@ -63,12 +63,12 @@ import eu.toldi.infinityforlemmy.LoadingMorePostsStatus;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SaveComment;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.SortTypeSelectionCallback;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.RedditAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.SwitchAccount;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
@@ -139,6 +139,8 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
@Named("oauth")
|
||||
Retrofit mOauthRetrofit;
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
@Inject
|
||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||
@Inject
|
||||
@Named("default")
|
||||
@@ -456,10 +458,10 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
}
|
||||
|
||||
public void saveComment(@NonNull Comment comment, int position) {
|
||||
SaveComment saveComment = new SaveComment();
|
||||
|
||||
if (comment.isSaved()) {
|
||||
comment.setSaved(false);
|
||||
saveComment.unsaveThing(mOauthRetrofit, mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().unsaveComment(comment.getId(),mAccessToken, new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
ViewPostDetailFragment fragment = sectionsPagerAdapter.getCurrentFragment();
|
||||
@@ -470,7 +472,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
ViewPostDetailFragment fragment = sectionsPagerAdapter.getCurrentFragment();
|
||||
if (fragment != null) {
|
||||
fragment.saveComment(position, true);
|
||||
@@ -480,7 +482,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
});
|
||||
} else {
|
||||
comment.setSaved(true);
|
||||
saveComment.saveThing(mRetrofit.getRetrofit(), mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().saveComment(comment.getId(), mAccessToken,new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
ViewPostDetailFragment fragment = sectionsPagerAdapter.getCurrentFragment();
|
||||
@@ -491,7 +493,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
ViewPostDetailFragment fragment = sectionsPagerAdapter.getCurrentFragment();
|
||||
if (fragment != null) {
|
||||
fragment.saveComment(position, false);
|
||||
@@ -537,7 +539,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
|
||||
int nextPage = posts.size() / 25 + 1;
|
||||
|
||||
mExecutor.execute(() -> {
|
||||
LemmyAPI api = mRetrofit.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = mRetrofit.getRetrofit().create(LemmyBetaAPI.class);
|
||||
Call<String> call;
|
||||
|
||||
switch (postType) {
|
||||
|
@@ -33,21 +33,17 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import eu.toldi.infinityforlemmy.NetworkState;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.SaveComment;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.VoteThing;
|
||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.LinkResolverActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewPostDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewSubredditDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.CommentMoreBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.UrlMenuBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.CommentIndentationView;
|
||||
import eu.toldi.infinityforlemmy.customviews.CustomMarkwonAdapter;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
import eu.toldi.infinityforlemmy.customviews.SpoilerOnClickTextView;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockInterface;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockLinearLayoutManager;
|
||||
import eu.toldi.infinityforlemmy.databinding.ItemCommentBinding;
|
||||
@@ -80,6 +76,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
};
|
||||
private BaseActivity mActivity;
|
||||
private Retrofit retrofit;
|
||||
private ApiHandler apiHandler;
|
||||
private Locale mLocale;
|
||||
private Markwon mMarkwon;
|
||||
private RecyclerView.RecycledViewPool recycledViewPool;
|
||||
@@ -106,13 +103,14 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
private NetworkState networkState;
|
||||
private RetryLoadingMoreCallback mRetryLoadingMoreCallback;
|
||||
|
||||
public CommentsListingRecyclerViewAdapter(BaseActivity activity, Retrofit oauthRetrofit,
|
||||
public CommentsListingRecyclerViewAdapter(BaseActivity activity, Retrofit oauthRetrofit,ApiHandler apiHandler,
|
||||
CustomThemeWrapper customThemeWrapper, Locale locale,
|
||||
SharedPreferences sharedPreferences, String accessToken,
|
||||
String accountName, RetryLoadingMoreCallback retryLoadingMoreCallback) {
|
||||
super(DIFF_CALLBACK);
|
||||
mActivity = activity;
|
||||
retrofit = oauthRetrofit;
|
||||
this.apiHandler = apiHandler;
|
||||
mCommentColor = customThemeWrapper.getCommentColor();
|
||||
int commentSpoilerBackgroundColor = mCommentColor | 0xFF000000;
|
||||
mLocale = locale;
|
||||
@@ -536,40 +534,39 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
comment.getScore() + comment.getVoteType()));
|
||||
|
||||
apiHandler.voteComment(comment.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_UPVOTE);
|
||||
if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
|
||||
scoreTextView.setTextColor(mUpvotedColor);
|
||||
}
|
||||
} else {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE);
|
||||
if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
scoreTextView.setTextColor(mCommentIconAndInfoColor);
|
||||
}
|
||||
}
|
||||
|
||||
VoteThing.voteComment(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_UPVOTE);
|
||||
if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
|
||||
scoreTextView.setTextColor(mUpvotedColor);
|
||||
if (currentPosition == position) {
|
||||
downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
comment.getScore() + comment.getVoteType()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE);
|
||||
if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
scoreTextView.setTextColor(mCommentIconAndInfoColor);
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail() {
|
||||
}
|
||||
}
|
||||
|
||||
if (currentPosition == position) {
|
||||
downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
comment.getScore() + comment.getVoteType()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position) {
|
||||
}
|
||||
}, comment.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -616,9 +613,9 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
comment.getScore() + comment.getVoteType()));
|
||||
|
||||
|
||||
VoteThing.voteComment(mActivity, retrofit, mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandler.voteComment(comment.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_DOWNVOTE);
|
||||
@@ -645,9 +642,9 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
}
|
||||
}, comment.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -658,10 +655,10 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
}
|
||||
Comment comment = getItem(position);
|
||||
if (comment != null) {
|
||||
SaveComment saveComment = new SaveComment();
|
||||
|
||||
if (comment.isSaved()) {
|
||||
comment.setSaved(false);
|
||||
saveComment.unsaveThing(retrofit, mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
apiHandler.unsaveComment(comment.getId(), mAccessToken, new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
comment.setSaved(false);
|
||||
@@ -672,7 +669,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
comment.setSaved(true);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
@@ -682,7 +679,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
});
|
||||
} else {
|
||||
comment.setSaved(true);
|
||||
saveComment.saveThing(retrofit, mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
apiHandler.saveComment(comment.getId(), mAccessToken, new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
comment.setSaved(true);
|
||||
@@ -693,7 +690,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
comment.setSaved(false);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
|
@@ -46,15 +46,13 @@ import butterknife.ButterKnife;
|
||||
import eu.toldi.infinityforlemmy.DualBadgeDrawable;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SaveComment;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.VoteThing;
|
||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.CommentActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.LinkResolverActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewPostDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewUserDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.CommentMoreBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.UrlMenuBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
@@ -62,9 +60,7 @@ import eu.toldi.infinityforlemmy.comment.FetchComment;
|
||||
import eu.toldi.infinityforlemmy.commentfilter.CommentFilter;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.CommentIndentationView;
|
||||
import eu.toldi.infinityforlemmy.customviews.CustomMarkwonAdapter;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
import eu.toldi.infinityforlemmy.customviews.SpoilerOnClickTextView;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockInterface;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockLinearLayoutManager;
|
||||
import eu.toldi.infinityforlemmy.databinding.ItemCommentBinding;
|
||||
@@ -101,6 +97,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
private ViewPostDetailFragment mFragment;
|
||||
private Executor mExecutor;
|
||||
private RetrofitHolder mRetrofit;
|
||||
private ApiHandler mApiHandler;
|
||||
private Retrofit mOauthRetrofit;
|
||||
private Markwon mCommentMarkwon;
|
||||
private String mAccessToken;
|
||||
@@ -173,7 +170,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
|
||||
public CommentsRecyclerViewAdapter(BaseActivity activity, ViewPostDetailFragment fragment,
|
||||
CustomThemeWrapper customThemeWrapper,
|
||||
Executor executor, RetrofitHolder retrofit,
|
||||
Executor executor, RetrofitHolder retrofit, ApiHandler apiHandler,
|
||||
String accessToken, String accountName,
|
||||
Post post, Locale locale, Integer singleCommentId,
|
||||
boolean isSingleCommentThreadMode,
|
||||
@@ -184,6 +181,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
mFragment = fragment;
|
||||
mExecutor = executor;
|
||||
mRetrofit = retrofit;
|
||||
mApiHandler = apiHandler;
|
||||
mGlide = Glide.with(activity.getApplicationContext());
|
||||
mSecondaryTextColor = customThemeWrapper.getSecondaryTextColor();
|
||||
mCommentTextColor = customThemeWrapper.getCommentColor();
|
||||
@@ -1516,31 +1514,31 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
comment.getScore() + comment.getVoteType())));
|
||||
}
|
||||
|
||||
VoteThing.voteComment(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
mApiHandler.voteComment(comment.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_UPVOTE);
|
||||
if (currentPosition == position) {
|
||||
// if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
|
||||
scoreTextView.setTextColor(mUpvotedColor);
|
||||
topScoreTextView.setTextColor(mUpvotedColor);
|
||||
downvoteTextView.setTextColor(mCommentIconAndInfoColor);
|
||||
}
|
||||
//}
|
||||
} else {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_NO_VOTE);
|
||||
if (currentPosition == position) {
|
||||
// if (currentPosition == position) {
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
scoreTextView.setTextColor(mCommentIconAndInfoColor);
|
||||
topScoreTextView.setTextColor(mSecondaryTextColor);
|
||||
downvoteTextView.setTextColor(mCommentIconAndInfoColor);
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
if (currentPosition == position) {
|
||||
//if (currentPosition == position) {
|
||||
downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(mCommentIconAndInfoColor));
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
@@ -1559,13 +1557,13 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
comment.getScore() + comment.getVoteType())));
|
||||
}
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position) {
|
||||
public void onVoteThingFail() {
|
||||
}
|
||||
}, comment.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1637,9 +1635,9 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
|
||||
int position = getBindingAdapterPosition();
|
||||
VoteThing.voteComment(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
mApiHandler.voteComment(comment.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
comment.setVoteType(Comment.VOTE_TYPE_DOWNVOTE);
|
||||
@@ -1686,9 +1684,9 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
}
|
||||
}, comment.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1696,10 +1694,10 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
Comment comment = getCurrentComment(this);
|
||||
if (comment != null) {
|
||||
int position = getBindingAdapterPosition();
|
||||
SaveComment saveComment = new SaveComment();
|
||||
|
||||
if (comment.isSaved()) {
|
||||
comment.setSaved(false);
|
||||
saveComment.unsaveThing(mRetrofit.getRetrofit(), mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
mApiHandler.unsaveComment(comment.getId(),mAccessToken, new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
comment.setSaved(false);
|
||||
@@ -1710,7 +1708,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
comment.setSaved(true);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
@@ -1720,7 +1718,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
});
|
||||
} else {
|
||||
comment.setSaved(true);
|
||||
saveComment.saveThing(mRetrofit.getRetrofit(), mAccessToken, comment.getId(), new SaveThing.SaveThingListener() {
|
||||
mApiHandler.saveComment(comment.getId(),mAccessToken, new ApiHandler.SaveCommentListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
comment.setSaved(true);
|
||||
@@ -1731,7 +1729,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
comment.setSaved(false);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
|
@@ -65,10 +65,7 @@ import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||
import eu.toldi.infinityforlemmy.SavePost;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.StreamableVideo;
|
||||
import eu.toldi.infinityforlemmy.VoteThing;
|
||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.CommentActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.FilteredPostsActivity;
|
||||
@@ -81,6 +78,7 @@ import eu.toldi.infinityforlemmy.activities.ViewUserDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewVideoActivity;
|
||||
import eu.toldi.infinityforlemmy.apis.RedgifsAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.StreamableAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.LoadSubredditIcon;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.LoadUserData;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.CopyTextBottomSheetFragment;
|
||||
@@ -89,8 +87,6 @@ import eu.toldi.infinityforlemmy.bottomsheetfragments.UrlMenuBottomSheetFragment
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.AspectRatioGifImageView;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockInterface;
|
||||
import eu.toldi.infinityforlemmy.customviews.SwipeLockLinearLayoutManager;
|
||||
import eu.toldi.infinityforlemmy.databinding.ItemPostDetailGalleryBinding;
|
||||
import eu.toldi.infinityforlemmy.databinding.ItemPostDetailImageAndGifAutoplayBinding;
|
||||
import eu.toldi.infinityforlemmy.databinding.ItemPostDetailLinkBinding;
|
||||
@@ -140,6 +136,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
private ViewPostDetailFragment mFragment;
|
||||
private Executor mExecutor;
|
||||
private RetrofitHolder mRetrofit;
|
||||
private ApiHandler apiHandler;
|
||||
private Retrofit mRedgifsRetrofit;
|
||||
private final Provider<StreamableAPI> mStreamableApiProvider;
|
||||
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||
@@ -226,7 +223,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
|
||||
public PostDetailRecyclerViewAdapter(BaseActivity activity, ViewPostDetailFragment fragment,
|
||||
Executor executor, CustomThemeWrapper customThemeWrapper,
|
||||
RetrofitHolder retrofit,
|
||||
RetrofitHolder retrofit, ApiHandler apiHandler1,
|
||||
Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
||||
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
|
||||
boolean separatePostAndComments, String accessToken,
|
||||
@@ -241,6 +238,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
mFragment = fragment;
|
||||
mExecutor = executor;
|
||||
mRetrofit = retrofit;
|
||||
apiHandler = apiHandler1;
|
||||
mRedgifsRetrofit = redgifsRetrofit;
|
||||
mStreamableApiProvider = streamableApiProvider;
|
||||
mRedditDataRoomDatabase = redditDataRoomDatabase;
|
||||
@@ -1406,65 +1404,64 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
apiHandler.votePost(mPost.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess() {
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
mPost.setVoteType(1);
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
|
||||
scoreTextView.setTextColor(mUpvotedColor);
|
||||
} else {
|
||||
mPost.setVoteType(0);
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
|
||||
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess() {
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
mPost.setVoteType(1);
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_filled_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mUpvotedColor));
|
||||
scoreTextView.setTextColor(mUpvotedColor);
|
||||
} else {
|
||||
mPost.setVoteType(0);
|
||||
upvoteButton.setIconResource(R.drawable.ic_upvote_24dp);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
|
||||
scoreTextView.setTextColor(mPostIconAndInfoColor);
|
||||
}
|
||||
downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
if (mSeperateUpvoteAndDownvote) {
|
||||
int upvotes = (mPost.getVoteType() == 1) ? mPost.getUpvotes() + 1 : mPost.getUpvotes();
|
||||
int downvotes = (mPost.getVoteType() == -1) ? mPost.getDownvotes() + 1 : Math.max(mPost.getDownvotes(), 0);
|
||||
;
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, upvotes));
|
||||
mDownvoteTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, downvotes));
|
||||
} else {
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
mPost.getScore() + mPost.getVoteType()));
|
||||
}
|
||||
}
|
||||
|
||||
downvoteButton.setIconResource(R.drawable.ic_downvote_24dp);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(mPostIconAndInfoColor));
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
if (mSeperateUpvoteAndDownvote) {
|
||||
int upvotes = (mPost.getVoteType() == 1) ? mPost.getUpvotes() + 1 : mPost.getUpvotes();
|
||||
int downvotes = (mPost.getVoteType() == -1) ? mPost.getDownvotes() + 1 : Math.max(mPost.getDownvotes(), 0);
|
||||
;
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, upvotes));
|
||||
mDownvoteTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, downvotes));
|
||||
} else {
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
mPost.getScore() + mPost.getVoteType()));
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
}
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
@Override
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
mPost.setVoteType(previousVoteType);
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
if (mSeperateUpvoteAndDownvote) {
|
||||
int upvotes = (previousVoteType == 1) ? mPost.getUpvotes() + 1 : mPost.getUpvotes();
|
||||
int downvotes = (previousVoteType == -1) ? mPost.getDownvotes() - 1 : Math.max(mPost.getDownvotes(), 0);
|
||||
;
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, upvotes));
|
||||
mDownvoteTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, downvotes));
|
||||
} else {
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
mPost.getScore() + previousVoteType));
|
||||
}
|
||||
}
|
||||
upvoteButton.setIcon(previousUpvoteButtonDrawable);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(previousUpvoteButtonTextColor));
|
||||
scoreTextView.setTextColor(previousScoreTextViewColor);
|
||||
downvoteButton.setIcon(previousDownvoteButtonDrawable);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(previousDownvoteButtonTextColor));
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
mPost.setVoteType(previousVoteType);
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
if (mSeperateUpvoteAndDownvote) {
|
||||
int upvotes = (previousVoteType == 1) ? mPost.getUpvotes() + 1 : mPost.getUpvotes();
|
||||
int downvotes = (previousVoteType == -1) ? mPost.getDownvotes() - 1 : Math.max(mPost.getDownvotes(), 0);
|
||||
;
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, upvotes));
|
||||
mDownvoteTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, downvotes));
|
||||
} else {
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes,
|
||||
mPost.getScore() + previousVoteType));
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
}
|
||||
upvoteButton.setIcon(previousUpvoteButtonDrawable);
|
||||
upvoteButton.setIconTint(ColorStateList.valueOf(previousUpvoteButtonTextColor));
|
||||
scoreTextView.setTextColor(previousScoreTextViewColor);
|
||||
downvoteButton.setIcon(previousDownvoteButtonDrawable);
|
||||
downvoteButton.setIconTint(ColorStateList.valueOf(previousDownvoteButtonTextColor));
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
}, mPost.getId(), newVoteType);
|
||||
});
|
||||
});
|
||||
|
||||
scoreTextView.setOnClickListener(view -> {
|
||||
@@ -1528,8 +1525,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
|
||||
VoteThing.votePost(mActivity, mRetrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingWithoutPositionListener() {
|
||||
apiHandler.votePost(mPost.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess() {
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
@@ -1590,7 +1586,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
|
||||
mPostDetailRecyclerViewAdapterCallback.updatePost(mPost);
|
||||
}
|
||||
}, mPost.getId(), newVoteType);
|
||||
});
|
||||
});
|
||||
|
||||
if (!mHideTheNumberOfComments) {
|
||||
@@ -1628,11 +1624,11 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
SavePost savePost = new SavePost();
|
||||
|
||||
if (mPost.isSaved()) {
|
||||
this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
savePost.unsaveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandler.unsavePost(mPost.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(false);
|
||||
@@ -1642,7 +1638,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
mPost.setSaved(true);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_unsaved_failed, Toast.LENGTH_SHORT).show();
|
||||
@@ -1651,8 +1647,10 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
});
|
||||
} else {
|
||||
this.saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
savePost.saveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
|
||||
|
||||
apiHandler.savePost(mPost.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
mPost.setSaved(true);
|
||||
@@ -1662,7 +1660,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
mPost.setSaved(false);
|
||||
PostDetailBaseViewHolder.this.saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
Toast.makeText(mActivity, R.string.post_saved_failed, Toast.LENGTH_SHORT).show();
|
||||
|
@@ -74,10 +74,7 @@ import eu.toldi.infinityforlemmy.MarkPostAsReadInterface;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SaveMemoryCenterInisdeDownsampleStrategy;
|
||||
import eu.toldi.infinityforlemmy.SavePost;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.StreamableVideo;
|
||||
import eu.toldi.infinityforlemmy.VoteThing;
|
||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.FilteredPostsActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.LinkResolverActivity;
|
||||
@@ -89,6 +86,8 @@ import eu.toldi.infinityforlemmy.activities.ViewUserDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewVideoActivity;
|
||||
import eu.toldi.infinityforlemmy.apis.RedgifsAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.StreamableAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.ShareLinkBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.AspectRatioGifImageView;
|
||||
@@ -171,6 +170,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
private SharedPreferences mCurrentAccountSharedPreferences;
|
||||
private Executor mExecutor;
|
||||
private RetrofitHolder retrofit;
|
||||
private ApiHandlerProvider apiHandlerProvider;
|
||||
private Retrofit mRedgifsRetrofit;
|
||||
private Provider<StreamableAPI> mStreamableApiProvider;
|
||||
private String mAccessToken;
|
||||
@@ -267,7 +267,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
private boolean canPlayVideo = true;
|
||||
private RecyclerView.RecycledViewPool mGalleryRecycledViewPool;
|
||||
|
||||
public PostRecyclerViewAdapter(BaseActivity activity, PostFragment fragment, Executor executor, RetrofitHolder retrofit,
|
||||
public PostRecyclerViewAdapter(BaseActivity activity, PostFragment fragment, Executor executor, RetrofitHolder retrofit, ApiHandlerProvider apiHandler,
|
||||
Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
|
||||
CustomThemeWrapper customThemeWrapper, Locale locale,
|
||||
String accessToken, String accountName, int postType, int postLayout, boolean displaySubredditName,
|
||||
@@ -283,6 +283,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
mCurrentAccountSharedPreferences = currentAccountSharedPreferences;
|
||||
mExecutor = executor;
|
||||
this.retrofit = retrofit;
|
||||
this.apiHandlerProvider = apiHandler;
|
||||
mRedgifsRetrofit = redgifsRetrofit;
|
||||
mStreamableApiProvider = streamableApiProvider;
|
||||
mAccessToken = accessToken;
|
||||
@@ -3212,10 +3213,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||
}
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
post.setVoteType(1);
|
||||
@@ -3252,7 +3252,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -3268,7 +3268,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -3342,9 +3342,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
post.setVoteType(-1);
|
||||
@@ -3386,7 +3386,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -3402,7 +3402,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -3419,11 +3419,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
SavePost savePost = new SavePost();
|
||||
|
||||
if (post.isSaved()) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
savePost.unsaveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().unsavePost(post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(false);
|
||||
@@ -3435,7 +3435,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(true);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
@@ -3446,8 +3446,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
});
|
||||
} else {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
savePost.saveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().savePost(post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(true);
|
||||
@@ -3459,7 +3459,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(false);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
@@ -4641,9 +4641,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
post.setVoteType(1);
|
||||
@@ -4673,7 +4673,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -4689,7 +4689,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4756,9 +4756,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
post.setVoteType(-1);
|
||||
@@ -4798,7 +4798,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -4814,7 +4814,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -4832,11 +4832,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
Post post = getItem(position);
|
||||
if (post != null) {
|
||||
SavePost postSave = new SavePost();
|
||||
|
||||
if (post.isSaved()) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
postSave.unsaveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().unsavePost(post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(false);
|
||||
@@ -4848,7 +4848,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(true);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
@@ -4859,8 +4859,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
});
|
||||
} else {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
postSave.saveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().savePost( post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(true);
|
||||
@@ -4872,7 +4872,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(false);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
@@ -6122,9 +6122,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_UPVOTE)) {
|
||||
post.setVoteType(1);
|
||||
@@ -6154,7 +6154,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -6170,7 +6170,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6226,10 +6226,9 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
if (!mHideTheNumberOfVotes) {
|
||||
scoreTextView.setText(Utils.getNVotes(mShowAbsoluteNumberOfVotes, post.getScore() + post.getVoteType()));
|
||||
}
|
||||
|
||||
VoteThing.votePost(mActivity, retrofit.getRetrofit(), mAccessToken, new VoteThing.VoteThingListener() {
|
||||
apiHandlerProvider.getApiHandler().votePost(post.getId(), newVoteType, mAccessToken, new ApiHandler.VoteListener() {
|
||||
@Override
|
||||
public void onVoteThingSuccess(int position1) {
|
||||
public void onVoteThingSuccess() {
|
||||
int currentPosition = getBindingAdapterPosition();
|
||||
if (newVoteType == Integer.parseInt(APIUtils.DIR_DOWNVOTE)) {
|
||||
post.setVoteType(-1);
|
||||
@@ -6260,7 +6259,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onVoteThingFail(int position1) {
|
||||
public void onVoteThingFail() {
|
||||
Toast.makeText(mActivity, R.string.vote_failed, Toast.LENGTH_SHORT).show();
|
||||
post.setVoteType(previousVoteType);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
@@ -6276,7 +6275,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
|
||||
EventBus.getDefault().post(new PostUpdateEventToPostDetailFragment(post));
|
||||
}
|
||||
}, post.getId(), newVoteType, getBindingAdapterPosition());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -6293,11 +6292,11 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
Toast.makeText(mActivity, R.string.login_first, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
SavePost savePost = new SavePost();
|
||||
|
||||
if (post.isSaved()) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
savePost.unsaveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().unsavePost(post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(false);
|
||||
@@ -6309,7 +6308,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(true);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
@@ -6320,8 +6319,8 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
});
|
||||
} else {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_grey_24dp);
|
||||
savePost.saveThing(retrofit.getRetrofit(), mAccessToken, post.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().savePost(post.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
post.setSaved(true);
|
||||
@@ -6333,7 +6332,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter<Post, RecyclerVie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
post.setSaved(false);
|
||||
if (getBindingAdapterPosition() == position) {
|
||||
saveButton.setIconResource(R.drawable.ic_bookmark_border_grey_24dp);
|
||||
|
@@ -43,7 +43,7 @@ import retrofit2.http.PUT;
|
||||
import retrofit2.http.Part;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
public interface LemmyAPI {
|
||||
public interface LemmyBetaAPI {
|
||||
@Headers("Content-Type: application/json")
|
||||
@POST("api/v3/user/login")
|
||||
Call<String> userLogin(@Body AccountLoginDTO params);
|
@@ -0,0 +1,351 @@
|
||||
package eu.toldi.infinityforlemmy.apis.apihandler
|
||||
|
||||
import android.os.Handler
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase
|
||||
import eu.toldi.infinityforlemmy.SortType
|
||||
import eu.toldi.infinityforlemmy.blockedcommunity.BlockedCommunityData
|
||||
import eu.toldi.infinityforlemmy.blockedinstances.BlockedInstanceData
|
||||
import eu.toldi.infinityforlemmy.blockeduser.BlockedUserData
|
||||
import eu.toldi.infinityforlemmy.comment.Comment
|
||||
import eu.toldi.infinityforlemmy.commentfilter.CommentFilter
|
||||
import eu.toldi.infinityforlemmy.post.Post
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher
|
||||
import eu.toldi.infinityforlemmy.site.SiteInfo
|
||||
import eu.toldi.infinityforlemmy.subreddit.SubredditData
|
||||
import eu.toldi.infinityforlemmy.user.MyUserInfo
|
||||
import eu.toldi.infinityforlemmy.user.UserData
|
||||
import retrofit2.Retrofit
|
||||
import java.util.concurrent.Executor
|
||||
|
||||
interface ApiHandler {
|
||||
// Community-related
|
||||
fun blockCommunity(
|
||||
communityId: Int,
|
||||
auth: String,
|
||||
listener: BlockCommunityListener
|
||||
)
|
||||
fun unblockCommunity(
|
||||
communityId: Int,
|
||||
auth: String,
|
||||
listener: BlockCommunityListener
|
||||
)
|
||||
|
||||
// Instance-related
|
||||
fun blockInstance(
|
||||
instanceId: Int,
|
||||
block: Boolean,
|
||||
listener: BlockInstanceListener
|
||||
)
|
||||
fun unblockInstance(
|
||||
instanceId: Int,
|
||||
listener: BlockInstanceListener
|
||||
)
|
||||
|
||||
// User-related
|
||||
fun blockUser(
|
||||
userId: Int,
|
||||
auth: String,
|
||||
listener: BlockUserListener
|
||||
)
|
||||
fun unblockUser(
|
||||
userId: Int,
|
||||
auth: String,
|
||||
listener: BlockUserListener
|
||||
)
|
||||
|
||||
// Post-related
|
||||
fun reportPost(
|
||||
postId: Int,
|
||||
reason: String,
|
||||
auth: String,
|
||||
listener: ReportPostListener
|
||||
)
|
||||
fun savePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: SavePostListener
|
||||
)
|
||||
fun unsavePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: SavePostListener
|
||||
)
|
||||
|
||||
// Comment-related
|
||||
fun reportComment(
|
||||
commentId: Int,
|
||||
reason: String,
|
||||
auth: String,
|
||||
listener: ReportCommentListener
|
||||
)
|
||||
fun saveComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: SaveCommentListener
|
||||
)
|
||||
fun unsaveComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: SaveCommentListener
|
||||
)
|
||||
|
||||
// Post-related (submit, edit, delete)
|
||||
fun submitPost(
|
||||
executor: Executor,
|
||||
handler: Handler,
|
||||
accessToken: String,
|
||||
communityId: Int,
|
||||
title: String,
|
||||
content: String,
|
||||
isNSFW: Boolean,
|
||||
receivePostReplyNotifications: Boolean,
|
||||
kind: String,
|
||||
posterUrl: String?,
|
||||
postEnricher: PostEnricher,
|
||||
submitPostListener: SubmitPostListener
|
||||
)
|
||||
fun editPost(
|
||||
postId: Int,
|
||||
title: String,
|
||||
content: String,
|
||||
posterUrl: String,
|
||||
isNSFW: Boolean,
|
||||
auth: String,
|
||||
listener: ApiHandler.EditPostListener
|
||||
)
|
||||
fun deletePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: DeletePostListener
|
||||
)
|
||||
|
||||
// Comment-related (submit, edit, delete)
|
||||
fun submitComment(
|
||||
executor:Executor,
|
||||
handler: Handler,
|
||||
postId: Int,
|
||||
content: String,
|
||||
parentId: Int?,
|
||||
auth: String,
|
||||
listener: SubmitCommentListener
|
||||
)
|
||||
fun editComment(
|
||||
commentId: Int,
|
||||
content: String,
|
||||
auth: String,
|
||||
listener: EditCommentListener
|
||||
)
|
||||
fun deleteComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: DeleteCommentListener
|
||||
)
|
||||
|
||||
// Fetch-related
|
||||
fun fetchComments(
|
||||
executor: Executor,
|
||||
handler: Handler,
|
||||
retrofit: Retrofit,
|
||||
accessToken: String?,
|
||||
article: Int,
|
||||
commentId: Int,
|
||||
sortType: SortType.Type,
|
||||
expandChildren: Boolean,
|
||||
page: Int,
|
||||
commentFilter: CommentFilter,
|
||||
listener: FetchCommentListListener
|
||||
)
|
||||
|
||||
|
||||
fun fetchSubscribedThings(
|
||||
retrofit: Retrofit,
|
||||
accessToken: String,
|
||||
accountName: String,
|
||||
listener: FetchSubscribedThingsListener
|
||||
)
|
||||
fun fetchCommunityData(
|
||||
retrofit: Retrofit,
|
||||
subredditName: String,
|
||||
accessToken: String,
|
||||
listener: FetchCommunityDataListener
|
||||
)
|
||||
fun fetchPost(
|
||||
executor: Executor,
|
||||
handler: Handler,
|
||||
postId: Int,
|
||||
accessToken: String,
|
||||
postEnricher: PostEnricher,
|
||||
listener: ApiHandler.FetchPostListener
|
||||
)
|
||||
fun fetchUser(
|
||||
redditDataRoomDatabase: RedditDataRoomDatabase,
|
||||
username: String,
|
||||
auth: String?,
|
||||
listener: ApiHandler.FetchUserListener
|
||||
)
|
||||
fun fetchSiteInfo(
|
||||
retrofit: Retrofit,
|
||||
accessToken: String,
|
||||
listener: FetchSiteInfoListener
|
||||
)
|
||||
fun fetchComment(
|
||||
commentId: Int,
|
||||
accessToken: String,
|
||||
listener: FetchCommentListener
|
||||
)
|
||||
|
||||
// Other operations
|
||||
fun markPostAsRead(
|
||||
postId: Int,
|
||||
isRead: Boolean,
|
||||
auth: String,
|
||||
listener: MarkPostAsReadListener
|
||||
)
|
||||
fun markCommentAsRead(
|
||||
commentId: Int,
|
||||
isRead: Boolean,
|
||||
auth: String,
|
||||
listener: MarkCommentAsReadListener
|
||||
)
|
||||
|
||||
//Voting
|
||||
fun votePost(
|
||||
postId: Int,
|
||||
point: Int,
|
||||
accessToken: String,
|
||||
listener: VoteListener
|
||||
)
|
||||
|
||||
|
||||
fun voteComment(
|
||||
commentId: Int,
|
||||
point: Int,
|
||||
accessToken: String,
|
||||
listener: VoteListener
|
||||
)
|
||||
|
||||
interface BlockCommunityListener {
|
||||
fun onSuccess()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface BlockInstanceListener {
|
||||
fun onResponse()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface BlockUserListener {
|
||||
fun success()
|
||||
fun failed()
|
||||
}
|
||||
|
||||
interface ReportPostListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface SavePostListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface SaveCommentListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface SubmitPostListener {
|
||||
fun success(post: Post)
|
||||
fun onFailure(error: String?)
|
||||
}
|
||||
|
||||
interface SubmitCommentListener {
|
||||
fun success(comment: Comment)
|
||||
fun onFailure(error: String?)
|
||||
}
|
||||
|
||||
interface EditPostListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface EditCommentListener {
|
||||
fun success(comment: Comment)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface DeletePostListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface DeleteCommentListener {
|
||||
fun success()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchCommentsListener {
|
||||
fun onSuccess(comments: List<Comment>)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchSubscribedThingsListener {
|
||||
fun onSuccess(blockedUsers: List<BlockedUserData>, blockedCommunities: List<BlockedCommunityData>, blockedInstances: List<BlockedInstanceData>)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchCommunityDataListener {
|
||||
fun onSuccess(subredditData: SubredditData)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchPostListener {
|
||||
fun onSuccess(post: Post)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchUserListener {
|
||||
fun onSuccess(userData: UserData)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchSiteInfoListener {
|
||||
fun onSuccess(siteInfo: SiteInfo, myUserInfo: MyUserInfo)
|
||||
fun onFailure(parseFailed: Boolean)
|
||||
}
|
||||
|
||||
interface FetchCommentListListener {
|
||||
fun onSuccess(topLevelComments: ArrayList<Comment>,
|
||||
expandedComments: ArrayList<Comment>,
|
||||
parentId: Int, moreChildrenIds: ArrayList<Int>)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface FetchCommentListener {
|
||||
fun onSuccess(comment: Comment)
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface MarkPostAsReadListener {
|
||||
fun onSuccess()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface MarkCommentAsReadListener {
|
||||
fun onSuccess()
|
||||
fun onFailure()
|
||||
}
|
||||
|
||||
interface VoteListener {
|
||||
fun onVoteThingSuccess()
|
||||
fun onVoteThingFail()
|
||||
}
|
||||
|
||||
|
||||
interface ReportCommentListener {
|
||||
fun onSuccess()
|
||||
fun onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,972 @@
|
||||
package eu.toldi.infinityforlemmy.apis.apihandler
|
||||
|
||||
import android.os.Handler
|
||||
import android.widget.Toast
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase
|
||||
import eu.toldi.infinityforlemmy.SortType
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler.SubmitPostListener
|
||||
import eu.toldi.infinityforlemmy.comment.Comment
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment.ParseCommentListener
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment.ParseSentCommentListener
|
||||
import eu.toldi.infinityforlemmy.commentfilter.CommentFilter
|
||||
import eu.toldi.infinityforlemmy.dto.*
|
||||
import eu.toldi.infinityforlemmy.post.ParsePost
|
||||
import eu.toldi.infinityforlemmy.post.ParsePost.ParsePostListener
|
||||
import eu.toldi.infinityforlemmy.post.Post
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher
|
||||
import eu.toldi.infinityforlemmy.site.SiteInfo
|
||||
import eu.toldi.infinityforlemmy.subreddit.ParseSubredditData
|
||||
import eu.toldi.infinityforlemmy.subreddit.ParseSubredditData.ParseSubredditDataListener
|
||||
import eu.toldi.infinityforlemmy.subreddit.SubredditData
|
||||
import eu.toldi.infinityforlemmy.user.MyUserInfo
|
||||
import eu.toldi.infinityforlemmy.user.ParseUserData
|
||||
import eu.toldi.infinityforlemmy.user.ParseUserData.ParseUserDataListener
|
||||
import eu.toldi.infinityforlemmy.user.UserData
|
||||
import org.json.JSONException
|
||||
import org.json.JSONObject
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
import retrofit2.Response
|
||||
import retrofit2.Retrofit
|
||||
import java.io.IOException
|
||||
import java.util.concurrent.Executor
|
||||
|
||||
class LemmyBetaApiHandler(private val retrofit: Retrofit) : ApiHandler {
|
||||
|
||||
private val api: LemmyBetaAPI = retrofit.create(LemmyBetaAPI::class.java)
|
||||
|
||||
// Community Block
|
||||
override fun blockCommunity(
|
||||
communityId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.BlockCommunityListener
|
||||
) {
|
||||
api.communityBlock(BlockCommunityDTO(communityId, true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onSuccess()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun unblockCommunity(
|
||||
communityId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.BlockCommunityListener
|
||||
) {
|
||||
api.communityBlock(BlockCommunityDTO(communityId, false, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onSuccess()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Instance Block
|
||||
override fun blockInstance(
|
||||
instanceId: Int,
|
||||
block: Boolean,
|
||||
listener: ApiHandler.BlockInstanceListener
|
||||
) {
|
||||
|
||||
|
||||
|
||||
api.blockInstance(BlockInstanceDTO(instanceId, block))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onResponse()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun unblockInstance(
|
||||
instanceId: Int,
|
||||
listener: ApiHandler.BlockInstanceListener
|
||||
) {
|
||||
api.blockInstance(BlockInstanceDTO(instanceId, false))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onResponse()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// User Block
|
||||
override fun blockUser(
|
||||
userId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.BlockUserListener
|
||||
) {
|
||||
api.userBlock(UserBlockDTO(userId, true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.failed()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.failed()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun unblockUser(
|
||||
userId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.BlockUserListener
|
||||
) {
|
||||
api.userBlock(UserBlockDTO(userId, false, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.failed()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.failed()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Report Post
|
||||
override fun reportPost(
|
||||
postId: Int,
|
||||
reason: String,
|
||||
auth: String,
|
||||
listener: ApiHandler.ReportPostListener
|
||||
) {
|
||||
api.postReport(ReportPostDTO(postId, reason, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Save Post
|
||||
override fun savePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.SavePostListener
|
||||
) {
|
||||
api.postSave(SavePostDTO(postId, true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun unsavePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.SavePostListener
|
||||
) {
|
||||
api.postSave(SavePostDTO(postId, false, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun reportComment(
|
||||
commentId: Int,
|
||||
reason: String,
|
||||
auth: String,
|
||||
listener: ApiHandler.ReportCommentListener
|
||||
) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
// Save Comment
|
||||
override fun saveComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.SaveCommentListener
|
||||
) {
|
||||
api.commentSave(SaveCommentDTO(commentId, true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun unsaveComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.SaveCommentListener
|
||||
) {
|
||||
api.commentSave(SaveCommentDTO(commentId, false, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Submit Post
|
||||
override fun submitPost(executor:Executor,
|
||||
handler: Handler, accessToken: String,
|
||||
communityId: Int, title: String, content: String,
|
||||
isNSFW: Boolean,
|
||||
receivePostReplyNotifications: Boolean, kind: String,
|
||||
posterUrl: String?, postEnricher: PostEnricher,
|
||||
submitPostListener: SubmitPostListener
|
||||
){
|
||||
val submitPostCall = api.postCreate(
|
||||
SubmitPostDTO(
|
||||
title,
|
||||
communityId,
|
||||
posterUrl,
|
||||
content,
|
||||
null,
|
||||
isNSFW,
|
||||
null,
|
||||
accessToken
|
||||
)
|
||||
)
|
||||
|
||||
try {
|
||||
val response = submitPostCall.execute()
|
||||
if (response.isSuccessful) {
|
||||
|
||||
|
||||
ParsePost.parsePost(
|
||||
executor,
|
||||
handler,
|
||||
postEnricher,
|
||||
response.body(),
|
||||
object : ParsePostListener {
|
||||
override fun onParsePostSuccess(post: Post) {
|
||||
submitPostListener.success(post)
|
||||
}
|
||||
|
||||
override fun onParsePostFail() {
|
||||
submitPostListener.onFailure(null)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
submitPostListener.onFailure(response.message())
|
||||
}
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
submitPostListener.onFailure(e.message)
|
||||
} catch (e: JSONException) {
|
||||
e.printStackTrace()
|
||||
submitPostListener.onFailure(e.message)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Submit Comment
|
||||
override fun submitComment(
|
||||
executor:Executor,
|
||||
handler: Handler,
|
||||
postId: Int,
|
||||
content: String,
|
||||
parentId: Int?,
|
||||
auth: String,
|
||||
listener: ApiHandler.SubmitCommentListener
|
||||
) {
|
||||
api.postComment(
|
||||
CommentDTO(content, postId, parentId, null, null, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
ParseComment.parseSentComment(
|
||||
executor,
|
||||
handler,
|
||||
response.body(),
|
||||
object : ParseSentCommentListener {
|
||||
override fun onParseSentCommentSuccess(comment: Comment) {
|
||||
listener.success(comment)
|
||||
}
|
||||
|
||||
override fun onParseSentCommentFailed(errorMessage: String?) {
|
||||
listener.onFailure(errorMessage)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
listener.onFailure(null)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure(null)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun editComment(
|
||||
commentId: Int,
|
||||
content: String,
|
||||
auth: String,
|
||||
listener: ApiHandler.EditCommentListener
|
||||
) {
|
||||
TODO("Not yet implemented")
|
||||
}
|
||||
|
||||
// Edit Post
|
||||
override fun editPost(
|
||||
postId: Int,
|
||||
title: String,
|
||||
content: String,
|
||||
posterUrl: String,
|
||||
isNSFW: Boolean,
|
||||
auth: String,
|
||||
listener: ApiHandler.EditPostListener
|
||||
) {
|
||||
api.postUpdate(
|
||||
EditPostDTO(postId, title, content,posterUrl, isNSFW,null, auth)
|
||||
)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Delete Post
|
||||
override fun deletePost(
|
||||
postId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.DeletePostListener
|
||||
) {
|
||||
api.postDelete(DeletePostDTO(postId,true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Delete Comment
|
||||
override fun deleteComment(
|
||||
commentId: Int,
|
||||
auth: String,
|
||||
listener: ApiHandler.DeleteCommentListener
|
||||
) {
|
||||
api.commentDelete(DeleteCommentDTO(commentId,true, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.success()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch Comments
|
||||
override fun fetchComments(
|
||||
executor: Executor,
|
||||
handler: Handler,
|
||||
retrofit: Retrofit,
|
||||
accessToken: String?,
|
||||
article: Int,
|
||||
commentId: Int,
|
||||
sortType: SortType.Type,
|
||||
expandChildren: Boolean,
|
||||
page: Int,
|
||||
commentFilter: CommentFilter,
|
||||
listener: ApiHandler.FetchCommentListListener
|
||||
) {
|
||||
val comments = api.getComments(
|
||||
"All",
|
||||
sortType.value,
|
||||
8,
|
||||
page,
|
||||
25,
|
||||
null,
|
||||
null,
|
||||
article,
|
||||
commentId,
|
||||
false,
|
||||
accessToken
|
||||
)
|
||||
|
||||
|
||||
comments.enqueue(object : Callback<String?> {
|
||||
override fun onResponse(call: Call<String?>, response: Response<String?>) {
|
||||
if (response.isSuccessful) {
|
||||
ParseComment.parseComments(
|
||||
executor, handler, response.body(), commentId,
|
||||
expandChildren, commentFilter,
|
||||
object : ParseCommentListener {
|
||||
override fun onParseCommentSuccess(
|
||||
topLevelComments: ArrayList<Comment>,
|
||||
expandedComments: ArrayList<Comment>,
|
||||
parentId: Int, moreChildrenIds: ArrayList<Int>
|
||||
) {
|
||||
listener.onSuccess( topLevelComments, expandedComments, parentId, moreChildrenIds)
|
||||
}
|
||||
|
||||
override fun onParseCommentFailed() {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<String?>, t: Throwable) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// Fetch Subscribed Things
|
||||
override fun fetchSubscribedThings(
|
||||
retrofit: Retrofit,
|
||||
accessToken: String,
|
||||
accountName: String,
|
||||
listener: ApiHandler.FetchSubscribedThingsListener
|
||||
) {
|
||||
api.listCommunities("Subscribed", null, 1, null, accessToken)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
// Parse and return the data
|
||||
listener.onSuccess(listOf(), listOf(), listOf())
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch Subreddit Data
|
||||
override fun fetchCommunityData(
|
||||
retrofit: Retrofit,
|
||||
subredditName: String,
|
||||
accessToken: String,
|
||||
listener: ApiHandler.FetchCommunityDataListener
|
||||
) {
|
||||
api.communityInfo(subredditName, accessToken)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
ParseSubredditData.parseSubredditData(
|
||||
response.body(),
|
||||
object : ParseSubredditDataListener {
|
||||
override fun onParseSubredditDataSuccess(
|
||||
subredditData: SubredditData,
|
||||
nCurrentOnlineSubscribers: Int
|
||||
) {
|
||||
listener.onSuccess(
|
||||
subredditData
|
||||
)
|
||||
}
|
||||
|
||||
override fun onParseSubredditDataFail() {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch Post
|
||||
override fun fetchPost(
|
||||
executor: Executor,
|
||||
handler: Handler,
|
||||
postId: Int,
|
||||
accessToken: String,
|
||||
postEnricher: PostEnricher,
|
||||
listener: ApiHandler.FetchPostListener
|
||||
) {
|
||||
api.postInfo(postId, null, accessToken)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
ParsePost.parsePost(
|
||||
executor,
|
||||
handler,
|
||||
postEnricher,
|
||||
response.body(),
|
||||
object : ParsePostListener {
|
||||
override fun onParsePostSuccess(post: Post) {
|
||||
listener.onSuccess(post)
|
||||
}
|
||||
|
||||
override fun onParsePostFail() {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch User
|
||||
override fun fetchUser(
|
||||
redditDataRoomDatabase: RedditDataRoomDatabase,
|
||||
username: String,
|
||||
auth: String?,
|
||||
listener: ApiHandler.FetchUserListener
|
||||
) {
|
||||
api.userInfo(username,auth)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
ParseUserData.parseUserData(
|
||||
redditDataRoomDatabase,
|
||||
response.body(),
|
||||
object : ParseUserDataListener {
|
||||
override fun onParseUserDataSuccess(
|
||||
userData: UserData,
|
||||
inboxCount: Int
|
||||
) {
|
||||
listener.onSuccess(
|
||||
userData
|
||||
)
|
||||
}
|
||||
|
||||
override fun onParseUserDataFailed() {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch Site Info
|
||||
override fun fetchSiteInfo(
|
||||
retrofit: Retrofit,
|
||||
accessToken: String,
|
||||
listener: ApiHandler.FetchSiteInfoListener
|
||||
) {
|
||||
api.getSiteInfo(accessToken)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
try {
|
||||
val siteInfoJson = response.body()
|
||||
val siteInfo = SiteInfo.parseSiteInfo(siteInfoJson)
|
||||
val myUserInfo = MyUserInfo.parseFromSiteInfo(siteInfoJson)
|
||||
listener.onSuccess(siteInfo, myUserInfo)
|
||||
} catch (e: JSONException) {
|
||||
listener.onFailure(true)
|
||||
}
|
||||
} else {
|
||||
listener.onFailure(false)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure(false)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Fetch Comment
|
||||
override fun fetchComment(
|
||||
commentId: Int,
|
||||
accessToken: String,
|
||||
listener: ApiHandler.FetchCommentListener
|
||||
) {
|
||||
api.getComment(commentId, accessToken)
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
try {
|
||||
val comment = ParseComment.parseSingleComment(
|
||||
response.body()
|
||||
?.let { JSONObject(it).getJSONObject("comment_view") }
|
||||
)
|
||||
listener.onSuccess(comment)
|
||||
} catch (e: JSONException) {
|
||||
listener.onFailure()
|
||||
}
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Mark Post as Read
|
||||
override fun markPostAsRead(
|
||||
postId: Int,
|
||||
isRead: Boolean,
|
||||
auth: String,
|
||||
listener: ApiHandler.MarkPostAsReadListener
|
||||
) {
|
||||
api.postRead(ReadPostDTO(postId, isRead, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onSuccess()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
// Mark Comment as Read
|
||||
override fun markCommentAsRead(
|
||||
commentId: Int,
|
||||
isRead: Boolean,
|
||||
auth: String,
|
||||
listener: ApiHandler.MarkCommentAsReadListener
|
||||
) {
|
||||
api.commentMarkAsRead(ReadCommentDTO(commentId, isRead, auth))
|
||||
.enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: Call<String>,
|
||||
response: Response<String>
|
||||
) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onSuccess()
|
||||
} else {
|
||||
listener.onFailure()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(
|
||||
call: Call<String>,
|
||||
t: Throwable
|
||||
) {
|
||||
listener.onFailure()
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun votePost(
|
||||
postId: Int,
|
||||
point: Int,
|
||||
accessToken: String,
|
||||
listener: ApiHandler.VoteListener
|
||||
) {
|
||||
val voteThingCall = api.postLike(PostVoteDTO(postId, point, accessToken))
|
||||
voteThingCall.enqueue(object : Callback<String> {
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onVoteThingSuccess()
|
||||
} else {
|
||||
listener.onVoteThingFail()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
listener.onVoteThingFail()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
override fun voteComment(
|
||||
commentId: Int,
|
||||
point: Int,
|
||||
accessToken: String,
|
||||
listener: ApiHandler.VoteListener
|
||||
) {
|
||||
val voteThingCall = api.commentLike(CommentVoteDTO(commentId, point, accessToken))
|
||||
voteThingCall.enqueue(object : Callback<String> {
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
if (response.isSuccessful) {
|
||||
listener.onVoteThingSuccess()
|
||||
} else {
|
||||
listener.onVoteThingFail()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFailure(call: Call<String>, t: Throwable) {
|
||||
listener.onVoteThingFail()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,66 @@
|
||||
package eu.toldi.infinityforlemmy.apis.provider
|
||||
|
||||
import android.util.Log
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.LemmyBetaApiHandler
|
||||
import eu.toldi.infinityforlemmy.network.SortTypeConverterFactory
|
||||
import eu.toldi.infinityforlemmy.utils.APIUtils
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.OkHttpClient
|
||||
import retrofit2.Retrofit
|
||||
import retrofit2.adapter.guava.GuavaCallAdapterFactory
|
||||
import retrofit2.converter.gson.GsonConverterFactory
|
||||
import retrofit2.converter.scalars.ScalarsConverterFactory
|
||||
|
||||
class ApiHandlerProvider(private val okHttpClientBase: OkHttpClient) {
|
||||
|
||||
private var _baseURL = APIUtils.API_BASE_URI
|
||||
private var retrofit = createRetrofit(okHttpClientBase,_baseURL)
|
||||
private var _accessToken: String? = null;
|
||||
private var oAuthInterceptor: Interceptor? = null
|
||||
private var okHttpClient = okHttpClientBase
|
||||
private var _apiHandler : ApiHandler = LemmyBetaApiHandler(retrofit)
|
||||
var baseUrl: String
|
||||
get() {
|
||||
var result: String = _baseURL
|
||||
if (_baseURL.endsWith("/")) {
|
||||
result = _baseURL.substring(0, _baseURL.length - 1)
|
||||
}
|
||||
return result
|
||||
}
|
||||
set(value) {
|
||||
_baseURL = value
|
||||
retrofit = createRetrofit(okHttpClientBase,_baseURL)
|
||||
_apiHandler = LemmyBetaApiHandler(retrofit)
|
||||
}
|
||||
|
||||
var accessToken: String?
|
||||
get() = _accessToken
|
||||
set(value) {
|
||||
_accessToken = value
|
||||
val builder = okHttpClientBase.newBuilder()
|
||||
Log.d("ApiHandlerProvider", "Access token changed")
|
||||
if (accessToken != null && accessToken != "") {
|
||||
Log.i("ApiHandlerProvider", "Setting access token interceptor")
|
||||
oAuthInterceptor = APIUtils.getOAuthInterceptor(accessToken)
|
||||
builder.addInterceptor(oAuthInterceptor!!)
|
||||
}
|
||||
okHttpClient = builder.build()
|
||||
retrofit = createRetrofit(okHttpClient, baseUrl)
|
||||
_apiHandler = LemmyBetaApiHandler(retrofit)
|
||||
}
|
||||
|
||||
val apiHandler: ApiHandler
|
||||
get() = _apiHandler
|
||||
|
||||
private fun createRetrofit(okHttpClient: OkHttpClient, baseUrl: String): Retrofit {
|
||||
return Retrofit.Builder()
|
||||
.baseUrl(baseUrl)
|
||||
.client(okHttpClient)
|
||||
.addConverterFactory(ScalarsConverterFactory.create())
|
||||
.addConverterFactory(SortTypeConverterFactory.create())
|
||||
.addCallAdapterFactory(GuavaCallAdapterFactory.create())
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build()
|
||||
}
|
||||
}
|
@@ -16,7 +16,7 @@ import java.util.Locale;
|
||||
|
||||
import eu.toldi.infinityforlemmy.NetworkState;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
@@ -73,7 +73,7 @@ public class CommentDataSource extends PageKeyedDataSource<Integer, Comment> {
|
||||
@Override
|
||||
public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull LoadInitialCallback<Integer, Comment> callback) {
|
||||
updateNetworkState(initialLoadStateLiveData, NetworkState.LOADING);
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
if (query != null && !query.isEmpty()) {
|
||||
fetchComments(api.search(query, null, null, null,"Comments", sortType.getType().value,"All",1, 25, accessToken), callback, true);
|
||||
} else {
|
||||
@@ -85,7 +85,7 @@ public void loadInitial(@NonNull LoadInitialParams<Integer> params, @NonNull Loa
|
||||
public void loadAfter(@NonNull LoadParams<Integer> params, @NonNull LoadCallback<Integer, Comment> callback) {
|
||||
this.params = params;
|
||||
updateNetworkState(paginationNetworkStateLiveData, NetworkState.LOADING);
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
if (query != null && !query.isEmpty()) {
|
||||
fetchComments(api.search(query, null, null, null,"Comments", sortType.getType().value,"All",params.key, 25, accessToken), callback, false);
|
||||
} else {
|
||||
|
@@ -12,7 +12,8 @@ import java.util.ArrayList;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
|
||||
import eu.toldi.infinityforlemmy.commentfilter.CommentFilter;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
@@ -24,7 +25,7 @@ public class FetchComment {
|
||||
@Nullable String accessToken, Integer article,
|
||||
Integer commentId, SortType.Type sortType, boolean expandChildren,
|
||||
Integer page, CommentFilter commentFilter, FetchCommentListener fetchCommentListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
Call<String> comments;
|
||||
|
||||
comments = api.getComments("All", sortType.value, 8, page, 25, null, null, article, commentId, false, accessToken);
|
||||
@@ -66,7 +67,7 @@ public class FetchComment {
|
||||
@Nullable String accessToken, int article,
|
||||
int commentId, SortType.Type sortType, boolean expandChildren,
|
||||
Integer page, FetchMoreCommentListener fetchMoreCommentListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
Call<String> moreComments;
|
||||
|
||||
moreComments = api.getComments("All", sortType.value, 8, page, 25, null, null, article, commentId, false, accessToken);
|
||||
@@ -105,7 +106,7 @@ public class FetchComment {
|
||||
|
||||
public static void fetchSingleComment(Retrofit retrofit, @Nullable String accessToken, int commentId,
|
||||
FetchCommentListener fetchCommentListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
Call<String> comment = api.getComment(commentId, accessToken);
|
||||
comment.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
|
@@ -201,7 +201,7 @@ public class ParseComment {
|
||||
});
|
||||
}
|
||||
|
||||
static void parseSentComment(Executor executor, Handler handler, String response,
|
||||
public static void parseSentComment(Executor executor, Handler handler, String response,
|
||||
ParseSentCommentListener parseSentCommentListener) {
|
||||
executor.execute(() -> {
|
||||
try {
|
||||
@@ -432,7 +432,7 @@ public class ParseComment {
|
||||
void onParseCommentFailed();
|
||||
}
|
||||
|
||||
interface ParseSentCommentListener {
|
||||
public interface ParseSentCommentListener {
|
||||
void onParseSentCommentSuccess(Comment comment);
|
||||
|
||||
void onParseSentCommentFailed(@Nullable String errorMessage);
|
||||
|
@@ -5,15 +5,11 @@ import android.os.Handler;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import eu.toldi.infinityforlemmy.account.Account;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.RedditAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.CommentDTO;
|
||||
import eu.toldi.infinityforlemmy.utils.APIUtils;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
@@ -27,7 +23,7 @@ public class SendComment {
|
||||
|
||||
|
||||
|
||||
retrofit.create(LemmyAPI.class).postComment(new CommentDTO(commentMarkdown, post_id,parent_id, null,null,account.getAccessToken())).enqueue(new Callback<String>() {
|
||||
retrofit.create(LemmyBetaAPI.class).postComment(new CommentDTO(commentMarkdown, post_id,parent_id, null,null,account.getAccessToken())).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
if (response.isSuccessful()) {
|
||||
|
@@ -47,6 +47,7 @@ import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.activities.BaseActivity;
|
||||
import eu.toldi.infinityforlemmy.adapters.CommentsListingRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.comment.CommentViewModel;
|
||||
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
|
||||
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
|
||||
@@ -99,6 +100,8 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
|
||||
CustomThemeWrapper customThemeWrapper;
|
||||
@Inject
|
||||
Executor mExecutor;
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
private String mAccessToken;
|
||||
private RequestManager mGlide;
|
||||
private BaseActivity mActivity;
|
||||
@@ -261,7 +264,7 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
|
||||
mLinearLayoutManager = new LinearLayoutManagerBugFixed(mActivity);
|
||||
mCommentRecyclerView.setLayoutManager(mLinearLayoutManager);
|
||||
|
||||
mAdapter = new CommentsListingRecyclerViewAdapter(mActivity, mRetrofit.getRetrofit(), customThemeWrapper,
|
||||
mAdapter = new CommentsListingRecyclerViewAdapter(mActivity, mRetrofit.getRetrofit(), apiHandlerProvider.getApiHandler(), customThemeWrapper,
|
||||
getResources().getConfiguration().locale, mSharedPreferences,
|
||||
getArguments().getString(EXTRA_ACCESS_TOKEN), getArguments().getString(EXTRA_ACCOUNT_NAME),
|
||||
() -> mCommentViewModel.retryLoadingMore());
|
||||
|
@@ -84,6 +84,7 @@ import eu.toldi.infinityforlemmy.activities.ViewSubredditDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.adapters.Paging3LoadingStateAdapter;
|
||||
import eu.toldi.infinityforlemmy.adapters.PostRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.StreamableAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.LoadSubredditIcon;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.LoadUserData;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.FABMoreOptionsBottomSheetFragment;
|
||||
@@ -184,6 +185,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
@Named("no_oauth")
|
||||
RetrofitHolder mRetrofit;
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
@Inject
|
||||
@Named("oauth")
|
||||
Retrofit mOauthRetrofit;
|
||||
@Inject
|
||||
@@ -465,7 +468,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
sortType = new SortType(st == null ? SortType.Type.TOP_ALL : st,sortTime != null ? SortType.Time.valueOf(sortTime) : null);
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SEARCH_POST, defaultPostLayout);
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -540,7 +543,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_SUBREDDIT_POST_BASE + subredditName, defaultPostLayout);
|
||||
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, displaySubredditName,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -609,7 +612,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
defaultPostLayout);
|
||||
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -675,7 +678,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_USER_POST_BASE + username, defaultPostLayout);
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -737,7 +740,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -796,7 +799,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_MULTI_REDDIT_POST_BASE + multiRedditPath, defaultPostLayout);
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
@@ -852,7 +855,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
||||
sortType = newSortType(sort, sortTime);
|
||||
postLayout = mPostLayoutSharedPreferences.getInt(SharedPreferencesUtils.POST_LAYOUT_FRONT_PAGE_POST, defaultPostLayout);
|
||||
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit,
|
||||
mAdapter = new PostRecyclerViewAdapter(activity, this, mExecutor, mRetrofit, apiHandlerProvider,
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mCustomThemeWrapper, locale,
|
||||
accessToken, accountName, postType, postLayout, true,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostHistorySharedPreferences,
|
||||
|
@@ -77,8 +77,6 @@ import eu.toldi.infinityforlemmy.Infinity;
|
||||
import eu.toldi.infinityforlemmy.R;
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SavePost;
|
||||
import eu.toldi.infinityforlemmy.SaveThing;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.activities.CommentActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.EditPostActivity;
|
||||
@@ -87,8 +85,10 @@ import eu.toldi.infinityforlemmy.activities.SubmitCrosspostActivity;
|
||||
import eu.toldi.infinityforlemmy.activities.ViewPostDetailActivity;
|
||||
import eu.toldi.infinityforlemmy.adapters.CommentsRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.adapters.PostDetailRecyclerViewAdapter;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.StreamableAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.apihandler.ApiHandler;
|
||||
import eu.toldi.infinityforlemmy.apis.provider.ApiHandlerProvider;
|
||||
import eu.toldi.infinityforlemmy.asynctasks.LoadUserData;
|
||||
import eu.toldi.infinityforlemmy.bottomsheetfragments.PostCommentSortTypeBottomSheetFragment;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
@@ -161,6 +161,8 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
@Named("no_oauth")
|
||||
RetrofitHolder mRetrofit;
|
||||
@Inject
|
||||
ApiHandlerProvider apiHandlerProvider;
|
||||
@Inject
|
||||
@Named("pushshift")
|
||||
Retrofit pushshiftRetrofit;
|
||||
@Inject
|
||||
@@ -619,13 +621,13 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
setupMenu();
|
||||
|
||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||
this, mExecutor, mCustomThemeWrapper, mRetrofit,
|
||||
this, mExecutor, mCustomThemeWrapper, mRetrofit, apiHandlerProvider.getApiHandler(),
|
||||
mRedgifsRetrofit, mStreamableApiProvider, mRedditDataRoomDatabase, mGlide,
|
||||
mSeparatePostAndComments, mAccessToken, mAccountName, mPost, mLocale,
|
||||
mSharedPreferences, mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences, mPostDetailsSharedPreferences,
|
||||
mExoCreator, post -> EventBus.getDefault().post(new PostUpdateEventToPostList(mPost, postListPosition)));
|
||||
mCommentsAdapter = new CommentsRecyclerViewAdapter(activity,
|
||||
this, mCustomThemeWrapper, mExecutor, mRetrofit,
|
||||
this, mCustomThemeWrapper, mExecutor, mRetrofit, apiHandlerProvider.getApiHandler(),
|
||||
mAccessToken, mAccountQualifiedName, mPost, mLocale, mSingleCommentId
|
||||
, isSingleCommentThreadMode, mSharedPreferences, mCurrentAccountSharedPreferences,
|
||||
new CommentsRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() {
|
||||
@@ -959,11 +961,10 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
return true;
|
||||
} else if (itemId == R.id.action_save_view_post_detail_fragment) {
|
||||
if (mPost != null && mAccessToken != null) {
|
||||
SavePost savePost = new SavePost();
|
||||
if (mPost.isSaved()) {
|
||||
item.setIcon(mUnsavedIcon);
|
||||
savePost.unsaveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().unsavePost(mPost.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
if (isAdded()) {
|
||||
@@ -975,7 +976,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
if (isAdded()) {
|
||||
mPost.setSaved(true);
|
||||
item.setIcon(mSavedIcon);
|
||||
@@ -986,8 +987,8 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
});
|
||||
} else {
|
||||
item.setIcon(mSavedIcon);
|
||||
savePost.saveThing(mRetrofit.getRetrofit(), mAccessToken, mPost.getId(),
|
||||
new SaveThing.SaveThingListener() {
|
||||
apiHandlerProvider.getApiHandler().savePost(mPost.getId(),mAccessToken,
|
||||
new ApiHandler.SavePostListener() {
|
||||
@Override
|
||||
public void success() {
|
||||
if (isAdded()) {
|
||||
@@ -999,7 +1000,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
}
|
||||
|
||||
@Override
|
||||
public void failed() {
|
||||
public void onFailure() {
|
||||
if (isAdded()) {
|
||||
mPost.setSaved(false);
|
||||
item.setIcon(mUnsavedIcon);
|
||||
@@ -1355,7 +1356,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
mPost = post;
|
||||
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
|
||||
ViewPostDetailFragment.this, mExecutor, mCustomThemeWrapper,
|
||||
mRetrofit, mRedgifsRetrofit,
|
||||
mRetrofit, apiHandlerProvider.getApiHandler(),mRedgifsRetrofit,
|
||||
mStreamableApiProvider, mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
|
||||
mAccessToken, mAccountName, mPost, mLocale, mSharedPreferences,
|
||||
mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences,
|
||||
@@ -1368,7 +1369,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
pages_loaded++;
|
||||
mCommentsAdapter = new CommentsRecyclerViewAdapter(activity,
|
||||
ViewPostDetailFragment.this, mCustomThemeWrapper, mExecutor,
|
||||
mRetrofit, mAccessToken, mAccountQualifiedName, mPost, mLocale,
|
||||
mRetrofit, apiHandlerProvider.getApiHandler(), mAccessToken, mAccountQualifiedName, mPost, mLocale,
|
||||
mSingleCommentId, isSingleCommentThreadMode, mSharedPreferences, mCurrentAccountSharedPreferences,
|
||||
new CommentsRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() {
|
||||
@Override
|
||||
@@ -1613,7 +1614,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put(APIUtils.ID_KEY, mPost.getFullName());
|
||||
mRetrofit.getRetrofit().create(LemmyAPI.class).postUpdate(new EditPostDTO(mPost.getId(), mPost.getTitle(), mPost.getUrl(), mPost.getSelfText(), true, null, mAccessToken))
|
||||
mRetrofit.getRetrofit().create(LemmyBetaAPI.class).postUpdate(new EditPostDTO(mPost.getId(), mPost.getTitle(), mPost.getUrl(), mPost.getSelfText(), true, null, mAccessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
@@ -1651,7 +1652,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
|
||||
|
||||
Map<String, String> params = new HashMap<>();
|
||||
params.put(APIUtils.ID_KEY, mPost.getFullName());
|
||||
mRetrofit.getRetrofit().create(LemmyAPI.class).postUpdate(new EditPostDTO(mPost.getId(), mPost.getTitle(), mPost.getUrl(), mPost.getSelfText(), false, null, mAccessToken))
|
||||
mRetrofit.getRetrofit().create(LemmyBetaAPI.class).postUpdate(new EditPostDTO(mPost.getId(), mPost.getTitle(), mPost.getUrl(), mPost.getSelfText(), false, null, mAccessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
|
@@ -7,7 +7,7 @@ import org.json.JSONObject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment;
|
||||
import retrofit2.Call;
|
||||
@@ -17,7 +17,7 @@ import retrofit2.Retrofit;
|
||||
|
||||
public class FetchCommentInteractions {
|
||||
public static void fetchReplies(Retrofit retrofit, Integer page, boolean unreadOnly, String auth, FetchCommentInteractionsListener fetchMessagesListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
api.userReplies("New", page, 25, unreadOnly, auth).enqueue(
|
||||
new Callback<String>() {
|
||||
@@ -55,7 +55,7 @@ public class FetchCommentInteractions {
|
||||
}
|
||||
|
||||
static void fetchMentions(Retrofit retrofit, Integer page, boolean unreadOnly, String auth, FetchCommentInteractionsListener fetchMessagesListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
api.userMentions("New", page, 25, unreadOnly, auth).enqueue(
|
||||
new Callback<String>() {
|
||||
|
@@ -2,7 +2,7 @@ package eu.toldi.infinityforlemmy.message;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.AuthDTO;
|
||||
import eu.toldi.infinityforlemmy.dto.ReadCommentDTO;
|
||||
import retrofit2.Call;
|
||||
@@ -13,7 +13,7 @@ import retrofit2.Retrofit;
|
||||
public class ReadMessage {
|
||||
public static void readMessage(Retrofit oauthRetrofit, String accessToken, int messageId,
|
||||
ReadMessageListener readMessageListener) {
|
||||
oauthRetrofit.create(LemmyAPI.class).commentMarkAsRead(new ReadCommentDTO(messageId, true, accessToken))
|
||||
oauthRetrofit.create(LemmyBetaAPI.class).commentMarkAsRead(new ReadCommentDTO(messageId, true, accessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
@@ -33,7 +33,7 @@ public class ReadMessage {
|
||||
|
||||
public static void readAllMessages(Retrofit retrofit, String accessToken,
|
||||
ReadMessageListener readMessageListener) {
|
||||
retrofit.create(LemmyAPI.class).userMarkAllAsRead(new AuthDTO(accessToken))
|
||||
retrofit.create(LemmyBetaAPI.class).userMarkAllAsRead(new AuthDTO(accessToken))
|
||||
.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
|
@@ -6,7 +6,7 @@ import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.RedditAPI;
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher;
|
||||
import retrofit2.Call;
|
||||
@@ -19,7 +19,7 @@ public class FetchPost {
|
||||
PostEnricher postEnricher, FetchPostListener fetchPostListener) {
|
||||
Call<String> postCall;
|
||||
// Use LemmyAPI.postInfo() instead of RedditAPI.getPost()
|
||||
postCall = retrofit.create(LemmyAPI.class).postInfo(Integer.parseInt(id), null, accessToken);
|
||||
postCall = retrofit.create(LemmyBetaAPI.class).postInfo(Integer.parseInt(id), null, accessToken);
|
||||
|
||||
postCall.enqueue(new Callback<>() {
|
||||
@Override
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package eu.toldi.infinityforlemmy.post;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.ReadPostDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
@@ -15,9 +15,9 @@ public class MarkPostAsRead {
|
||||
}
|
||||
|
||||
private void setPostAsRead(int post_id, boolean markAsRead, String auth, MarkPostAsReadListener markPostAsReadListener) {
|
||||
LemmyAPI lemmyAPI = retrofitHolder.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI lemmyBetaAPI = retrofitHolder.getRetrofit().create(LemmyBetaAPI.class);
|
||||
|
||||
lemmyAPI.postRead(new ReadPostDTO(post_id, markAsRead, auth)).enqueue(new Callback<String>() {
|
||||
lemmyBetaAPI.postRead(new ReadPostDTO(post_id, markAsRead, auth)).enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(Call<String> call, Response<String> response) {
|
||||
if (response.isSuccessful()
|
||||
|
@@ -6,7 +6,7 @@ import org.json.JSONObject;
|
||||
import java.util.Objects;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.comment.Comment;
|
||||
import eu.toldi.infinityforlemmy.comment.ParseComment;
|
||||
import retrofit2.Call;
|
||||
@@ -22,9 +22,9 @@ public class ObjectResolver {
|
||||
}
|
||||
|
||||
public void resolvePost(String query, String auth, ObjectResolverListener objectResolverListener) {
|
||||
LemmyAPI lemmyAPI = retrofitHolder.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI lemmyBetaAPI = retrofitHolder.getRetrofit().create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> response = lemmyAPI.resolveObject(query, auth);
|
||||
Call<String> response = lemmyBetaAPI.resolveObject(query, auth);
|
||||
response.enqueue(new Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(Call<String> call, Response<String> response) {
|
||||
@@ -52,9 +52,9 @@ public class ObjectResolver {
|
||||
}
|
||||
|
||||
public void resolveComment(String query, String auth, ObjectResolverListener objectResolverListener) {
|
||||
LemmyAPI lemmyAPI = retrofitHolder.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI lemmyBetaAPI = retrofitHolder.getRetrofit().create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> response = lemmyAPI.resolveObject(query, auth);
|
||||
Call<String> response = lemmyBetaAPI.resolveObject(query, auth);
|
||||
response.enqueue(
|
||||
new Callback<String>() {
|
||||
@Override
|
||||
|
@@ -24,7 +24,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher;
|
||||
import eu.toldi.infinityforlemmy.postfilter.PostFilter;
|
||||
import eu.toldi.infinityforlemmy.utils.MultiCommunityUtils;
|
||||
@@ -169,7 +169,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
@NonNull
|
||||
@Override
|
||||
public ListenableFuture<LoadResult<Integer, Post>> loadFuture(@NonNull LoadParams<Integer> loadParams) {
|
||||
LemmyAPI api = retrofit.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.getRetrofit().create(LemmyBetaAPI.class);
|
||||
switch (postType) {
|
||||
|
||||
case TYPE_FRONT_PAGE:
|
||||
@@ -220,7 +220,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
}
|
||||
}
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadHomePosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadHomePosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api) {
|
||||
ListenableFuture<Response<String>> bestPost;
|
||||
Integer page;
|
||||
if (loadParams.getKey() == null) {
|
||||
@@ -249,7 +249,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
IOException.class, LoadResult.Error::new, executor);
|
||||
}
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api) {
|
||||
ListenableFuture<Response<String>> subredditPost;
|
||||
|
||||
subredditPost = api.getPostsListenableFuture(null, sortType.getType().value, loadParams.getKey(), 25, null, subredditOrUserName, false, accessToken);
|
||||
@@ -265,7 +265,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
IOException.class, LoadResult.Error::new, executor);
|
||||
}
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadUserPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadUserPosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api) {
|
||||
ListenableFuture<Response<String>> userPosts;
|
||||
userPosts = api.getUserPostsListenableFuture(subredditOrUserName, sortType.getType().value, loadParams.getKey(), 25, userWhere.equals(USER_WHERE_SAVED), accessToken);
|
||||
|
||||
@@ -280,7 +280,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
IOException.class, LoadResult.Error::new, executor);
|
||||
}
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadSearchPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadSearchPosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api) {
|
||||
ListenableFuture<Response<String>> searchPosts;
|
||||
|
||||
searchPosts = api.searchLive(query, null, subredditOrUserName, null, "Posts", sortType.getType().value, "All", loadParams.getKey(), 25, accessToken);
|
||||
@@ -298,7 +298,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
|
||||
Map<String, List<Post>> undisplayedPosts = new HashMap<>();
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadMultipleSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api, List<String> communities) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadMultipleSubredditPosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api, List<String> communities) {
|
||||
List<ListenableFuture<LoadResult<Integer, Post>>> futures = new ArrayList<>();
|
||||
List<Post> combinedPostsFromCache = new ArrayList<>();
|
||||
|
||||
@@ -352,7 +352,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
}, executor);
|
||||
}
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> fetchPostsFromCommunity(LemmyAPI api, LoadParams<Integer> loadParams, String community) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> fetchPostsFromCommunity(LemmyBetaAPI api, LoadParams<Integer> loadParams, String community) {
|
||||
|
||||
ListenableFuture<Response<String>> subredditPost;
|
||||
|
||||
@@ -390,7 +390,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<Integer, Post
|
||||
IOException.class, LoadResult.Error::new, executor);
|
||||
}*/
|
||||
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadAnonymousHomePosts(@NonNull LoadParams<Integer> loadParams, LemmyAPI api) {
|
||||
private ListenableFuture<LoadResult<Integer, Post>> loadAnonymousHomePosts(@NonNull LoadParams<Integer> loadParams, LemmyBetaAPI api) {
|
||||
if (subredditOrUserName == null) {
|
||||
// Return empty list
|
||||
return Futures.immediateFuture(new LoadResult.Page<>(new ArrayList<>(), null, null));
|
||||
|
@@ -26,7 +26,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.multicommunity.MulticommunityPagingSource;
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher;
|
||||
import eu.toldi.infinityforlemmy.postfilter.PostFilter;
|
||||
@@ -252,7 +252,7 @@ public class PostViewModel extends ViewModel {
|
||||
case PostPagingSource.TYPE_MULTI_REDDIT:
|
||||
case PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE:
|
||||
String[] communities = (name != null) ? name.split(Pattern.quote(",")) : new String[0];
|
||||
paging3PagingSource = new MulticommunityPagingSource(retrofit.getRetrofit().create(LemmyAPI.class), List.of(communities), accessToken,
|
||||
paging3PagingSource = new MulticommunityPagingSource(retrofit.getRetrofit().create(LemmyBetaAPI.class), List.of(communities), accessToken,
|
||||
sortType, executor, postFilter, (readPostList != null) ? readPostList : new ArrayList<>(), postEnricher);
|
||||
break;
|
||||
case PostPagingSource.TYPE_SEARCH:
|
||||
|
@@ -13,7 +13,7 @@ import java.util.concurrent.Executor;
|
||||
|
||||
import eu.toldi.infinityforlemmy.Flair;
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.SubmitPostDTO;
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher;
|
||||
import eu.toldi.infinityforlemmy.utils.APIUtils;
|
||||
@@ -68,7 +68,7 @@ public class SubmitPost {
|
||||
boolean receivePostReplyNotifications, String kind,
|
||||
@Nullable String posterUrl, PostEnricher postEnricher,
|
||||
SubmitPostListener submitPostListener) {
|
||||
LemmyAPI api = oauthRetrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = oauthRetrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
|
||||
Call<String> submitPostCall = api.postCreate(new SubmitPostDTO(title, communityId, posterUrl, content, null, isNSFW, null, accessToken));
|
||||
|
@@ -2,14 +2,14 @@ package eu.toldi.infinityforlemmy.site;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.user.MyUserInfo;
|
||||
import retrofit2.Retrofit;
|
||||
|
||||
public class FetchSiteInfo {
|
||||
|
||||
public static void fetchSiteInfo(Retrofit retrofit, String accesToken, FetchSiteInfoListener fetchSiteInfoListener) {
|
||||
retrofit.create(LemmyAPI.class).getSiteInfo(accesToken).enqueue(
|
||||
retrofit.create(LemmyBetaAPI.class).getSiteInfo(accesToken).enqueue(
|
||||
new retrofit2.Callback<String>() {
|
||||
@Override
|
||||
public void onResponse(retrofit2.Call<String> call, retrofit2.Response<String> response) {
|
||||
|
@@ -8,7 +8,7 @@ import java.util.concurrent.Executor;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.account.Account;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.FollowCommunityDTO;
|
||||
import eu.toldi.infinityforlemmy.subscribedsubreddit.SubscribedSubredditData;
|
||||
import eu.toldi.infinityforlemmy.utils.LemmyUtils;
|
||||
@@ -63,7 +63,7 @@ public class CommunitySubscription {
|
||||
String accountName, String action,
|
||||
RedditDataRoomDatabase redditDataRoomDatabase,
|
||||
SubredditSubscriptionListener subredditSubscriptionListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
|
||||
Call<String> subredditSubscriptionCall = api.communityFollow(new FollowCommunityDTO(communityId, action.equals("sub"), accessToken));
|
||||
|
@@ -5,7 +5,7 @@ import androidx.annotation.NonNull;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
@@ -13,7 +13,7 @@ import retrofit2.Retrofit;
|
||||
|
||||
public class FetchSubredditData {
|
||||
public static void fetchSubredditData(Retrofit retrofit, String subredditName, String accessToken, final FetchSubredditDataListener fetchSubredditDataListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> subredditData;
|
||||
subredditData = api.communityInfo(subredditName, accessToken);
|
||||
@@ -47,7 +47,7 @@ public class FetchSubredditData {
|
||||
|
||||
static void fetchSubredditListingData(Retrofit retrofit, String query, Integer page, SortType.Type sortType, String accessToken,
|
||||
boolean nsfw, final FetchSubredditListingDataListener fetchSubredditListingDataListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
|
||||
Call<String> subredditDataCall = api.search(query, null, null, null, "Communities", sortType.value, "All", page, 25, accessToken);
|
||||
|
@@ -85,7 +85,7 @@ public class ParseSubredditData {
|
||||
return new SubredditData(id, name, title, description, removed, published, updated, deleted, isNSFW, actorId, local, iconUrl, bannerImageUrl, hidden, postingRestrictedToMods, instanceId, subscribers, blocked, stats);
|
||||
}
|
||||
|
||||
interface ParseSubredditDataListener {
|
||||
public interface ParseSubredditDataListener {
|
||||
void onParseSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers);
|
||||
|
||||
void onParseSubredditDataFail();
|
||||
|
@@ -2,7 +2,7 @@ package eu.toldi.infinityforlemmy.user;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.dto.UserBlockDTO;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
@@ -17,7 +17,7 @@ public class BlockUser {
|
||||
}
|
||||
|
||||
public static void blockUser(Retrofit retrofit, String accessToken, int userID, boolean block, BlockUserListener blockUserListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
api.userBlock(new UserBlockDTO(userID, block, accessToken)).enqueue(new Callback<>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
|
||||
|
@@ -6,7 +6,7 @@ import java.util.ArrayList;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.SortType;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import eu.toldi.infinityforlemmy.message.MessageCount;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
@@ -19,7 +19,7 @@ public class FetchUserData {
|
||||
|
||||
public static void fetchUserData(RedditDataRoomDatabase redditDataRoomDatabase, Retrofit retrofit,
|
||||
String accessToken, String userName, FetchUserDataListener fetchUserDataListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> userInfo;
|
||||
if (redditDataRoomDatabase == null) {
|
||||
@@ -56,7 +56,7 @@ public class FetchUserData {
|
||||
|
||||
public static void fetchUserListingData(Retrofit retrofit, String query, Integer page, SortType.Type sortType, boolean nsfw,
|
||||
FetchUserListingDataListener fetchUserListingDataListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> userInfo = api.search(query, null, null, null, "Users", sortType.value, "All", page, 25, null);
|
||||
userInfo.enqueue(new Callback<>() {
|
||||
@@ -87,7 +87,7 @@ public class FetchUserData {
|
||||
}
|
||||
|
||||
public static void fetchUnreadCount(Retrofit retrofit, String accessToken, FetchUserUnreadCountListener fetchUserUnreadCountListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<MessageCount> userUnreadCount = api.userUnreadCount(accessToken);
|
||||
userUnreadCount.enqueue(new Callback<>() {
|
||||
@@ -108,7 +108,7 @@ public class FetchUserData {
|
||||
}
|
||||
|
||||
public static void validateAuthToken(Retrofit retrofit, ValidateAuthTokenListener validateAuthTokenListener) {
|
||||
LemmyAPI api = retrofit.create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class);
|
||||
|
||||
Call<String> validateAuthToken = api.userValidateAuth();
|
||||
validateAuthToken.enqueue(new Callback<>() {
|
||||
|
@@ -12,7 +12,7 @@ import eu.toldi.infinityforlemmy.RedditDataRoomDatabase;
|
||||
import eu.toldi.infinityforlemmy.utils.JSONUtils;
|
||||
|
||||
public class ParseUserData {
|
||||
static void parseUserData(RedditDataRoomDatabase redditDataRoomDatabase, String response,
|
||||
public static void parseUserData(RedditDataRoomDatabase redditDataRoomDatabase, String response,
|
||||
ParseUserDataListener parseUserDataListener) {
|
||||
new ParseUserDataAsyncTask(redditDataRoomDatabase, response, parseUserDataListener).execute();
|
||||
}
|
||||
@@ -69,7 +69,7 @@ public class ParseUserData {
|
||||
return new UserData(account_id, userName, title, iconImageUrl, isBanned, cakeday, actor_id, isLocal, isDeleted, isAdmin, isBot, instance_id, userStats);
|
||||
}
|
||||
|
||||
interface ParseUserDataListener {
|
||||
public interface ParseUserDataListener {
|
||||
void onParseUserDataSuccess(UserData userData, int inboxCount);
|
||||
|
||||
void onParseUserDataFailed();
|
||||
|
@@ -18,7 +18,7 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI;
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI;
|
||||
import okhttp3.MediaType;
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.RequestBody;
|
||||
@@ -43,7 +43,7 @@ public class UploadImageUtils {
|
||||
RequestBody fileBody = RequestBody.create(byteArray, MediaType.parse("application/octet-stream"));
|
||||
MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("images[]", "post_image.jpg", fileBody);
|
||||
|
||||
LemmyAPI api = mRetrofit.getRetrofit().create(LemmyAPI.class);
|
||||
LemmyBetaAPI api = mRetrofit.getRetrofit().create(LemmyBetaAPI.class);
|
||||
Call<String> uploadMedia = api.uploadImage("jwt=" + accessToken, fileToUpload);
|
||||
Response<String> uploadMediaResponse = uploadMedia.execute();
|
||||
if (uploadMediaResponse.isSuccessful()) {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package eu.toldi.infinityforlemmy.comment
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.dto.ReportCommentDTO
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
@@ -9,7 +9,7 @@ import retrofit2.Callback
|
||||
class LemmyCommentAPI(val retrofitHolder: RetrofitHolder) {
|
||||
|
||||
fun reportComment(id: Int, reason: String, auth: String, callback: ReportCommentCallback) {
|
||||
val api = retrofitHolder.retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofitHolder.retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.commentReport(ReportCommentDTO(id, reason, auth)).enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: retrofit2.Call<String>,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package eu.toldi.infinityforlemmy.community
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.dto.BlockCommunityDTO
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
@@ -15,7 +15,7 @@ object BlockCommunity {
|
||||
auth: String,
|
||||
blockCommunityListener: BlockCommunityListener
|
||||
) {
|
||||
val api = retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.communityBlock(BlockCommunityDTO(communityId, true, auth))?.enqueue(
|
||||
object : Callback<String> {
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
@@ -39,7 +39,7 @@ object BlockCommunity {
|
||||
auth: String,
|
||||
blockCommunityListener: BlockCommunityListener
|
||||
) {
|
||||
val api = retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.communityBlock(BlockCommunityDTO(communityId, false, auth))?.enqueue(
|
||||
object : Callback<String> {
|
||||
override fun onResponse(call: Call<String>, response: Response<String>) {
|
||||
|
@@ -6,7 +6,7 @@ import com.google.common.base.Function
|
||||
import com.google.common.util.concurrent.Futures
|
||||
import com.google.common.util.concurrent.ListenableFuture
|
||||
import eu.toldi.infinityforlemmy.SortType
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.post.ParsePost
|
||||
import eu.toldi.infinityforlemmy.post.Post
|
||||
import eu.toldi.infinityforlemmy.post.enrich.PostEnricher
|
||||
@@ -21,7 +21,7 @@ import java.util.concurrent.Executor
|
||||
|
||||
|
||||
class MulticommunityPagingSource(
|
||||
private val api: LemmyAPI,
|
||||
private val api: LemmyBetaAPI,
|
||||
private val communities: List<String>,
|
||||
private val accessToken: String?,
|
||||
private val sortType: SortType,
|
||||
@@ -133,7 +133,7 @@ class MulticommunityPagingSource(
|
||||
}
|
||||
|
||||
private fun fetchPostsFromCommunity(
|
||||
api: LemmyAPI,
|
||||
api: LemmyBetaAPI,
|
||||
pageNumber: Int,
|
||||
community: String
|
||||
): ListenableFuture<LoadResult<Int, Post>> {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package eu.toldi.infinityforlemmy.post
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.dto.ReportPostDTO
|
||||
import retrofit2.Call
|
||||
import retrofit2.Callback
|
||||
@@ -9,7 +9,7 @@ import retrofit2.Callback
|
||||
class LemmyPostAPI(val retrofitHolder: RetrofitHolder) {
|
||||
|
||||
fun reportPost(postId: Int, reason: String, auth: String, callback: ReportPostCallback) {
|
||||
val api = retrofitHolder.retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofitHolder.retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.postReport(ReportPostDTO(postId, reason, auth)).enqueue(object : Callback<String> {
|
||||
override fun onResponse(
|
||||
call: retrofit2.Call<String>,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package eu.toldi.infinityforlemmy.privatemessage
|
||||
|
||||
import eu.toldi.infinityforlemmy.RetrofitHolder
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.dto.PrivateMessageDTO
|
||||
import eu.toldi.infinityforlemmy.dto.PrivateMessageReadDTO
|
||||
import eu.toldi.infinityforlemmy.utils.LemmyUtils
|
||||
@@ -17,7 +17,7 @@ class LemmyPrivateMessageAPI(val retrofitHolder: RetrofitHolder) {
|
||||
limit: Int = 25,
|
||||
unreadOnly: Boolean = false
|
||||
) {
|
||||
val api = retrofitHolder.retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofitHolder.retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.privateMessagesList(page, limit, unreadOnly, auth).enqueue(
|
||||
object : retrofit2.Callback<String> {
|
||||
override fun onResponse(
|
||||
@@ -51,7 +51,7 @@ class LemmyPrivateMessageAPI(val retrofitHolder: RetrofitHolder) {
|
||||
privateMessageId: Int,
|
||||
listener: PrivateMessageMarkedAsReadListener
|
||||
) {
|
||||
val api = retrofitHolder.retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofitHolder.retrofit.create(LemmyBetaAPI::class.java)
|
||||
api.privateMessageMarkAsRead(PrivateMessageReadDTO(privateMessageId, auth, true)).enqueue(
|
||||
object : retrofit2.Callback<String> {
|
||||
override fun onResponse(
|
||||
@@ -78,7 +78,7 @@ class LemmyPrivateMessageAPI(val retrofitHolder: RetrofitHolder) {
|
||||
content: String,
|
||||
listener: PrivateMessageSentListener
|
||||
) {
|
||||
val api = retrofitHolder.retrofit.create(LemmyAPI::class.java)
|
||||
val api = retrofitHolder.retrofit.create(LemmyBetaAPI::class.java)
|
||||
|
||||
api.privateMessageSend(PrivateMessageDTO(recipientId, content, auth)).enqueue(
|
||||
object : retrofit2.Callback<String> {
|
||||
|
@@ -1,13 +1,13 @@
|
||||
package eu.toldi.infinityforlemmy.site
|
||||
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyAPI
|
||||
import eu.toldi.infinityforlemmy.apis.LemmyBetaAPI
|
||||
import eu.toldi.infinityforlemmy.dto.BlockInstanceDTO
|
||||
import retrofit2.Retrofit
|
||||
|
||||
object BlockInstance {
|
||||
fun blockInstance(retrofit: Retrofit, instance_id: Int, block: Boolean, blockInstanceResponse: BlockInstanceResponse) {
|
||||
val LemmyAPI = retrofit.create(LemmyAPI::class.java)
|
||||
val response = LemmyAPI.blockInstance(BlockInstanceDTO(instance_id,block)).enqueue(
|
||||
val LemmyBetaAPI = retrofit.create(LemmyBetaAPI::class.java)
|
||||
val response = LemmyBetaAPI.blockInstance(BlockInstanceDTO(instance_id,block)).enqueue(
|
||||
object : retrofit2.Callback<String> {
|
||||
override fun onResponse(call: retrofit2.Call<String>, response: retrofit2.Response<String>) {
|
||||
if (response.isSuccessful) {
|
||||
|
Reference in New Issue
Block a user