diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/DeleteThing.java b/app/src/main/java/eu/toldi/infinityforlemmy/DeleteThing.java index c6f20bde..35fd777e 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/DeleteThing.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/DeleteThing.java @@ -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 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() { + retrofit.create(LemmyBetaAPI.class).postDelete(new DeletePostDTO(post_id, true, accessToken)).enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response 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 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() { + retrofit.create(LemmyBetaAPI.class).commentDelete(new DeleteCommentDTO(comment_id, true, accessToken)).enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { if (response.isSuccessful()) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/FetchSubscribedThing.java b/app/src/main/java/eu/toldi/infinityforlemmy/FetchSubscribedThing.java index b29518fd..2bbe5ddd 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/FetchSubscribedThing.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/FetchSubscribedThing.java @@ -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, final ArrayList subredditData, final FetchSubscribedThingListener fetchSubscribedThingListener) { - LemmyAPI api = retrofit.create(LemmyAPI.class); + LemmyBetaAPI api = retrofit.create(LemmyBetaAPI.class); Call subredditDataCall = api.listCommunities("Subscribed",null,page,null,accessToken); subredditDataCall.enqueue(new Callback() { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/NetworkModule.java b/app/src/main/java/eu/toldi/infinityforlemmy/NetworkModule.java index 4db16c77..0e86cafb 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/NetworkModule.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/NetworkModule.java @@ -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 diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/PullNotificationWorker.java b/app/src/main/java/eu/toldi/infinityforlemmy/PullNotificationWorker.java index 31da6e5f..d246ee73 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/PullNotificationWorker.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/PullNotificationWorker.java @@ -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 call = mRetrofit.getRetrofit().create(LemmyAPI.class).userReplies("New", 1, 25, true, account.getAccessToken()); + Call call = mRetrofit.getRetrofit().create(LemmyBetaAPI.class).userReplies("New", 1, 25, true, account.getAccessToken()); Response response = call.execute(); if (response.isSuccessful()) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/SaveComment.java b/app/src/main/java/eu/toldi/infinityforlemmy/SaveComment.java deleted file mode 100644 index cff7264a..00000000 --- a/app/src/main/java/eu/toldi/infinityforlemmy/SaveComment.java +++ /dev/null @@ -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() { - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (response.isSuccessful()) { - saveThingListener.success(); - } else { - saveThingListener.failed(); - } - } - - @Override - public void onFailure(@NonNull Call 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() { - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (response.isSuccessful()) { - saveThingListener.success(); - } else { - saveThingListener.failed(); - } - } - - @Override - public void onFailure(@NonNull Call call, @NonNull Throwable t) { - saveThingListener.failed(); - } - }); - } -} diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/SavePost.java b/app/src/main/java/eu/toldi/infinityforlemmy/SavePost.java deleted file mode 100644 index 27aa3ad8..00000000 --- a/app/src/main/java/eu/toldi/infinityforlemmy/SavePost.java +++ /dev/null @@ -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() { - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (response.isSuccessful()) { - saveThingListener.success(); - } else { - saveThingListener.failed(); - } - } - - @Override - public void onFailure(@NonNull Call 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() { - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (response.isSuccessful()) { - saveThingListener.success(); - } else { - saveThingListener.failed(); - } - } - - @Override - public void onFailure(@NonNull Call call, @NonNull Throwable t) { - saveThingListener.failed(); - } - }); - } -} diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/VoteThing.java b/app/src/main/java/eu/toldi/infinityforlemmy/VoteThing.java deleted file mode 100644 index 831cdf1f..00000000 --- a/app/src/main/java/eu/toldi/infinityforlemmy/VoteThing.java +++ /dev/null @@ -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 voteThingCall = api.postLike(new PostVoteDTO(postID, point, accessToken)); - voteThingCall.enqueue(new Callback() { - @Override - public void onResponse(@NonNull Call call, @NonNull retrofit2.Response 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 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 voteThingCall = api.postLike(new PostVoteDTO(postID, point, accessToken)); - voteThingCall.enqueue(new Callback() { - @Override - public void onResponse(@NonNull Call call, @NonNull retrofit2.Response 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 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 voteThingCall = api.commentLike(new CommentVoteDTO(commentId, point, accessToken)); - voteThingCall.enqueue(new Callback() { - @Override - public void onResponse(@NonNull Call call, @NonNull retrofit2.Response 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 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 voteThingCall = api.commentLike(new CommentVoteDTO(commentId, point, accessToken)); - voteThingCall.enqueue(new Callback() { - @Override - public void onResponse(@NonNull Call call, @NonNull retrofit2.Response 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 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(); - } -} diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/account/FetchBlockedThings.java b/app/src/main/java/eu/toldi/infinityforlemmy/account/FetchBlockedThings.java index def4846f..a755828c 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/account/FetchBlockedThings.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/account/FetchBlockedThings.java @@ -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 call = lemmyAPI.getSiteInfo(accessToken); + Call call = lemmyBetaAPI.getSiteInfo(accessToken); call.enqueue(new Callback() { @Override public void onResponse(Call call, retrofit2.Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java index 32fbf00d..e17b800d 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditCommentActivity.java @@ -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() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditPostActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditPostActivity.java index 8337b54e..a4999c92 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditPostActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/EditPostActivity.java @@ -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() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LinkResolverActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LinkResolverActivity.java index 22da6766..ef31f240 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LinkResolverActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LinkResolverActivity.java @@ -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); } } diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java index 3614a12b..fb6d5168 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/LoginActivity.java @@ -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 accessTokenCall = api.userLogin(accountLoginDTO); String finalInstance = instance; accessTokenCall.enqueue(new Callback() { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/MainActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/MainActivity.java index 1b766468..8b997662 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/MainActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/MainActivity.java @@ -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"); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewPostDetailActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewPostDetailActivity.java index f8bf1109..b95bb6a3 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewPostDetailActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewPostDetailActivity.java @@ -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 call; switch (postType) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/CommentsListingRecyclerViewAdapter.java b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/CommentsListingRecyclerViewAdapter.java index da7e72f9..8ae6b632 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/CommentsListingRecyclerViewAdapter.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/CommentsListingRecyclerViewAdapter.java @@ -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 mStreamableApiProvider; private RedditDataRoomDatabase mRedditDataRoomDatabase; @@ -226,7 +223,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter streamableApiProvider, RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide, boolean separatePostAndComments, String accessToken, @@ -241,6 +238,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter { @@ -1528,8 +1525,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter mStreamableApiProvider; private String mAccessToken; @@ -267,7 +267,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter streamableApiProvider, CustomThemeWrapper customThemeWrapper, Locale locale, String accessToken, String accountName, int postType, int postLayout, boolean displaySubredditName, @@ -283,6 +283,7 @@ public class PostRecyclerViewAdapter extends PagingDataAdapter userLogin(@Body AccountLoginDTO params); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/ApiHandler.kt b/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/ApiHandler.kt new file mode 100644 index 00000000..c0f00cfb --- /dev/null +++ b/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/ApiHandler.kt @@ -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) + fun onFailure() + } + + interface FetchSubscribedThingsListener { + fun onSuccess(blockedUsers: List, blockedCommunities: List, blockedInstances: List) + 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, + expandedComments: ArrayList, + parentId: Int, moreChildrenIds: ArrayList) + 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() + } +} + + diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/LemmyBetaApiHandler.kt b/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/LemmyBetaApiHandler.kt new file mode 100644 index 00000000..20314af8 --- /dev/null +++ b/app/src/main/java/eu/toldi/infinityforlemmy/apis/apihandler/LemmyBetaApiHandler.kt @@ -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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onSuccess() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + override fun unblockCommunity( + communityId: Int, + auth: String, + listener: ApiHandler.BlockCommunityListener + ) { + api.communityBlock(BlockCommunityDTO(communityId, false, auth)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onSuccess() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + // Instance Block + override fun blockInstance( + instanceId: Int, + block: Boolean, + listener: ApiHandler.BlockInstanceListener + ) { + + + + api.blockInstance(BlockInstanceDTO(instanceId, block)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onResponse() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + override fun unblockInstance( + instanceId: Int, + listener: ApiHandler.BlockInstanceListener + ) { + api.blockInstance(BlockInstanceDTO(instanceId, false)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onResponse() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.failed() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.failed() + } + }) + + } + + override fun unblockUser( + userId: Int, + auth: String, + listener: ApiHandler.BlockUserListener + ) { + api.userBlock(UserBlockDTO(userId, false, auth)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.failed() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + override fun unsavePost( + postId: Int, + auth: String, + listener: ApiHandler.SavePostListener + ) { + api.postSave(SavePostDTO(postId, false, auth)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + override fun unsaveComment( + commentId: Int, + auth: String, + listener: ApiHandler.SaveCommentListener + ) { + api.commentSave(SaveCommentDTO(commentId, false, auth)) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure(call: Call, 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 { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.success() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + ParseComment.parseComments( + executor, handler, response.body(), commentId, + expandChildren, commentFilter, + object : ParseCommentListener { + override fun onParseCommentSuccess( + topLevelComments: ArrayList, + expandedComments: ArrayList, + parentId: Int, moreChildrenIds: ArrayList + ) { + listener.onSuccess( topLevelComments, expandedComments, parentId, moreChildrenIds) + } + + override fun onParseCommentFailed() { + listener.onFailure() + } + }) + } else { + listener.onFailure() + } + } + + override fun onFailure(call: Call, 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + // Parse and return the data + listener.onSuccess(listOf(), listOf(), listOf()) + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + t: Throwable + ) { + listener.onFailure() + } + }) + + } + + // Fetch Site Info + override fun fetchSiteInfo( + retrofit: Retrofit, + accessToken: String, + listener: ApiHandler.FetchSiteInfoListener + ) { + api.getSiteInfo(accessToken) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + t: Throwable + ) { + listener.onFailure(false) + } + }) + + } + + // Fetch Comment + override fun fetchComment( + commentId: Int, + accessToken: String, + listener: ApiHandler.FetchCommentListener + ) { + api.getComment(commentId, accessToken) + .enqueue(object : Callback { + override fun onResponse( + call: Call, + response: Response + ) { + 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, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onSuccess() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse( + call: Call, + response: Response + ) { + if (response.isSuccessful) { + listener.onSuccess() + } else { + listener.onFailure() + } + } + + override fun onFailure( + call: Call, + 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 { + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + listener.onVoteThingSuccess() + } else { + listener.onVoteThingFail() + } + } + + override fun onFailure(call: Call, 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 { + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + listener.onVoteThingSuccess() + } else { + listener.onVoteThingFail() + } + } + + override fun onFailure(call: Call, t: Throwable) { + listener.onVoteThingFail() + } + }) + } + +} \ No newline at end of file diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/apis/provider/ApiHandlerProvider.kt b/app/src/main/java/eu/toldi/infinityforlemmy/apis/provider/ApiHandlerProvider.kt new file mode 100644 index 00000000..c5bba6f9 --- /dev/null +++ b/app/src/main/java/eu/toldi/infinityforlemmy/apis/provider/ApiHandlerProvider.kt @@ -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() + } +} \ No newline at end of file diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/comment/CommentDataSource.java b/app/src/main/java/eu/toldi/infinityforlemmy/comment/CommentDataSource.java index 4fbd29aa..5be0dd70 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/comment/CommentDataSource.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/comment/CommentDataSource.java @@ -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 { @Override public void loadInitial(@NonNull LoadInitialParams params, @NonNull LoadInitialCallback 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 params, @NonNull Loa public void loadAfter(@NonNull LoadParams params, @NonNull LoadCallback 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 { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/comment/FetchComment.java b/app/src/main/java/eu/toldi/infinityforlemmy/comment/FetchComment.java index 9768f9c5..d57bb302 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/comment/FetchComment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/comment/FetchComment.java @@ -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 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 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 comment = api.getComment(commentId, accessToken); comment.enqueue(new Callback() { @Override diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/comment/ParseComment.java b/app/src/main/java/eu/toldi/infinityforlemmy/comment/ParseComment.java index 4157ce94..391a253f 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/comment/ParseComment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/comment/ParseComment.java @@ -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); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/comment/SendComment.java b/app/src/main/java/eu/toldi/infinityforlemmy/comment/SendComment.java index 347af74e..803b3924 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/comment/SendComment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/comment/SendComment.java @@ -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() { + retrofit.create(LemmyBetaAPI.class).postComment(new CommentDTO(commentMarkdown, post_id,parent_id, null,null,account.getAccessToken())).enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { if (response.isSuccessful()) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/CommentsListingFragment.java b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/CommentsListingFragment.java index 935a52b7..f40a29b3 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/CommentsListingFragment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/CommentsListingFragment.java @@ -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()); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/PostFragment.java b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/PostFragment.java index f66cdec8..10781310 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/PostFragment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/PostFragment.java @@ -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, diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/ViewPostDetailFragment.java b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/ViewPostDetailFragment.java index 7a371eae..568b602b 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/fragments/ViewPostDetailFragment.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/fragments/ViewPostDetailFragment.java @@ -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 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() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { @@ -1651,7 +1652,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic Map 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() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/message/FetchCommentInteractions.java b/app/src/main/java/eu/toldi/infinityforlemmy/message/FetchCommentInteractions.java index 01edef2d..03dd5c52 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/message/FetchCommentInteractions.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/message/FetchCommentInteractions.java @@ -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() { @@ -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() { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/message/ReadMessage.java b/app/src/main/java/eu/toldi/infinityforlemmy/message/ReadMessage.java index b0516eee..c23646e3 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/message/ReadMessage.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/message/ReadMessage.java @@ -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() { @Override public void onResponse(@NonNull Call call, @NonNull Response 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() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/FetchPost.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/FetchPost.java index d4e802d5..e4a7ca85 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/FetchPost.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/FetchPost.java @@ -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 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 diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/MarkPostAsRead.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/MarkPostAsRead.java index b7da035a..bb486c7d 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/MarkPostAsRead.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/MarkPostAsRead.java @@ -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() { + lemmyBetaAPI.postRead(new ReadPostDTO(post_id, markAsRead, auth)).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { if (response.isSuccessful() diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/ObjectResolver.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/ObjectResolver.java index 73594e8d..bff43e19 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/ObjectResolver.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/ObjectResolver.java @@ -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 response = lemmyAPI.resolveObject(query, auth); + Call response = lemmyBetaAPI.resolveObject(query, auth); response.enqueue(new Callback() { @Override public void onResponse(Call call, Response 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 response = lemmyAPI.resolveObject(query, auth); + Call response = lemmyBetaAPI.resolveObject(query, auth); response.enqueue( new Callback() { @Override diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/PostPagingSource.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/PostPagingSource.java index f882264b..b50138db 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/PostPagingSource.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/PostPagingSource.java @@ -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> loadFuture(@NonNull LoadParams 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> loadHomePosts(@NonNull LoadParams loadParams, LemmyAPI api) { + private ListenableFuture> loadHomePosts(@NonNull LoadParams loadParams, LemmyBetaAPI api) { ListenableFuture> bestPost; Integer page; if (loadParams.getKey() == null) { @@ -249,7 +249,7 @@ public class PostPagingSource extends ListenableFuturePagingSource> loadSubredditPosts(@NonNull LoadParams loadParams, LemmyAPI api) { + private ListenableFuture> loadSubredditPosts(@NonNull LoadParams loadParams, LemmyBetaAPI api) { ListenableFuture> subredditPost; subredditPost = api.getPostsListenableFuture(null, sortType.getType().value, loadParams.getKey(), 25, null, subredditOrUserName, false, accessToken); @@ -265,7 +265,7 @@ public class PostPagingSource extends ListenableFuturePagingSource> loadUserPosts(@NonNull LoadParams loadParams, LemmyAPI api) { + private ListenableFuture> loadUserPosts(@NonNull LoadParams loadParams, LemmyBetaAPI api) { ListenableFuture> 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> loadSearchPosts(@NonNull LoadParams loadParams, LemmyAPI api) { + private ListenableFuture> loadSearchPosts(@NonNull LoadParams loadParams, LemmyBetaAPI api) { ListenableFuture> 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> undisplayedPosts = new HashMap<>(); - private ListenableFuture> loadMultipleSubredditPosts(@NonNull LoadParams loadParams, LemmyAPI api, List communities) { + private ListenableFuture> loadMultipleSubredditPosts(@NonNull LoadParams loadParams, LemmyBetaAPI api, List communities) { List>> futures = new ArrayList<>(); List combinedPostsFromCache = new ArrayList<>(); @@ -352,7 +352,7 @@ public class PostPagingSource extends ListenableFuturePagingSource> fetchPostsFromCommunity(LemmyAPI api, LoadParams loadParams, String community) { + private ListenableFuture> fetchPostsFromCommunity(LemmyBetaAPI api, LoadParams loadParams, String community) { ListenableFuture> subredditPost; @@ -390,7 +390,7 @@ public class PostPagingSource extends ListenableFuturePagingSource> loadAnonymousHomePosts(@NonNull LoadParams loadParams, LemmyAPI api) { + private ListenableFuture> loadAnonymousHomePosts(@NonNull LoadParams loadParams, LemmyBetaAPI api) { if (subredditOrUserName == null) { // Return empty list return Futures.immediateFuture(new LoadResult.Page<>(new ArrayList<>(), null, null)); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/PostViewModel.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/PostViewModel.java index 7830a499..c3b3ce13 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/PostViewModel.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/PostViewModel.java @@ -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: diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/post/SubmitPost.java b/app/src/main/java/eu/toldi/infinityforlemmy/post/SubmitPost.java index 435f6e07..58c638dd 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/post/SubmitPost.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/post/SubmitPost.java @@ -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 submitPostCall = api.postCreate(new SubmitPostDTO(title, communityId, posterUrl, content, null, isNSFW, null, accessToken)); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/site/FetchSiteInfo.java b/app/src/main/java/eu/toldi/infinityforlemmy/site/FetchSiteInfo.java index 8ba2a1e7..a6cc4824 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/site/FetchSiteInfo.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/site/FetchSiteInfo.java @@ -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() { @Override public void onResponse(retrofit2.Call call, retrofit2.Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/CommunitySubscription.java b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/CommunitySubscription.java index 08032f59..ff681cce 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/CommunitySubscription.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/CommunitySubscription.java @@ -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 subredditSubscriptionCall = api.communityFollow(new FollowCommunityDTO(communityId, action.equals("sub"), accessToken)); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/FetchSubredditData.java b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/FetchSubredditData.java index c181a88e..3c3b459f 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/FetchSubredditData.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/FetchSubredditData.java @@ -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 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 subredditDataCall = api.search(query, null, null, null, "Communities", sortType.value, "All", page, 25, accessToken); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/ParseSubredditData.java b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/ParseSubredditData.java index dd89c7ea..4cefeea2 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/ParseSubredditData.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/subreddit/ParseSubredditData.java @@ -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(); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/user/BlockUser.java b/app/src/main/java/eu/toldi/infinityforlemmy/user/BlockUser.java index fcf751d7..ea08ec6b 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/user/BlockUser.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/user/BlockUser.java @@ -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 call, @NonNull Response response) { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/user/FetchUserData.java b/app/src/main/java/eu/toldi/infinityforlemmy/user/FetchUserData.java index 6288a701..2a6a518f 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/user/FetchUserData.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/user/FetchUserData.java @@ -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 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 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 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 validateAuthToken = api.userValidateAuth(); validateAuthToken.enqueue(new Callback<>() { diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/user/ParseUserData.java b/app/src/main/java/eu/toldi/infinityforlemmy/user/ParseUserData.java index 8bfa4247..35f13826 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/user/ParseUserData.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/user/ParseUserData.java @@ -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(); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/utils/UploadImageUtils.java b/app/src/main/java/eu/toldi/infinityforlemmy/utils/UploadImageUtils.java index 59cda530..185cb196 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/utils/UploadImageUtils.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/utils/UploadImageUtils.java @@ -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 uploadMedia = api.uploadImage("jwt=" + accessToken, fileToUpload); Response uploadMediaResponse = uploadMedia.execute(); if (uploadMediaResponse.isSuccessful()) { diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/comment/LemmyCommentAPI.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/comment/LemmyCommentAPI.kt index 559ffe85..8f86ca48 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/comment/LemmyCommentAPI.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/comment/LemmyCommentAPI.kt @@ -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 { override fun onResponse( call: retrofit2.Call, diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/community/BlockCommunity.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/community/BlockCommunity.kt index 0b09d3d8..5238a17f 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/community/BlockCommunity.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/community/BlockCommunity.kt @@ -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 { override fun onResponse(call: Call, response: Response) { @@ -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 { override fun onResponse(call: Call, response: Response) { diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/multicommunity/MultiCommunityPostPagingSource.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/multicommunity/MultiCommunityPostPagingSource.kt index f702fb03..96d42539 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/multicommunity/MultiCommunityPostPagingSource.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/multicommunity/MultiCommunityPostPagingSource.kt @@ -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, 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> { diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/post/LemmyPostAPI.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/post/LemmyPostAPI.kt index a889d219..9d56501b 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/post/LemmyPostAPI.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/post/LemmyPostAPI.kt @@ -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 { override fun onResponse( call: retrofit2.Call, diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/privatemessage/LemmyPrivateMessageAPI.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/privatemessage/LemmyPrivateMessageAPI.kt index 30edd597..94c028a4 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/privatemessage/LemmyPrivateMessageAPI.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/privatemessage/LemmyPrivateMessageAPI.kt @@ -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 { 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 { 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 { diff --git a/app/src/main/kotlin/eu/toldi/infinityforlemmy/site/BlockInstance.kt b/app/src/main/kotlin/eu/toldi/infinityforlemmy/site/BlockInstance.kt index cae561b0..6d1c75f4 100644 --- a/app/src/main/kotlin/eu/toldi/infinityforlemmy/site/BlockInstance.kt +++ b/app/src/main/kotlin/eu/toldi/infinityforlemmy/site/BlockInstance.kt @@ -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 { override fun onResponse(call: retrofit2.Call, response: retrofit2.Response) { if (response.isSuccessful) {