aboutsummaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java63
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/ApplicationOnlyAccessTokenAuthenticator.java97
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/FetchRules.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/NetworkModule.java30
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/FetchRandomSubredditOrPostActivity.java6
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/LinkResolverActivity.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ReportActivity.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/RulesActivity.java12
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java11
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java57
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPrivateMessagesActivity.java8
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewSubredditDetailActivity.java12
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java19
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java6
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java11
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/SubredditListingRecyclerViewAdapter.java11
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/adapters/UserListingRecyclerViewAdapter.java8
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/apis/RedditAPI.java91
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadSubredditIcon.java37
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadUserData.java4
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/SwitchToAnonymousMode.java3
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSource.java25
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSourceFactory.java6
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentViewModel.java12
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/comment/FetchComment.java30
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/CommentsListingFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/HistoryPostFragment.java15
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java28
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SidebarFragment.java5
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SubredditListingFragment.java8
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/UserListingFragment.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java52
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/FetchPost.java22
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/HistoryPostPagingSource.java8
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/PostPagingSource.java50
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/settings/AdvancedPreferenceFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/FetchSubredditData.java46
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/SubredditSubscription.java27
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/user/FetchUserData.java17
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/user/UserFollowing.java24
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSource.java10
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSourceFactory.java8
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingViewModel.java12
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/utils/APIUtils.java15
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java4
55 files changed, 522 insertions, 535 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java
index f8da226a..43003d36 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java
@@ -48,33 +48,18 @@ class AccessTokenAuthenticator implements Authenticator {
synchronized (this) {
Account account = mRedditDataRoomDatabase.accountDao().getCurrentAccount();
if (account == null) {
- //Anonymous mode
- if (!mRedditDataRoomDatabase.accountDao().isAnonymousAccountInserted()) {
- mRedditDataRoomDatabase.accountDao().insert(Account.getAnonymousAccount());
- }
- String accessTokenFromSharedPreference = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, "");
- if (accessToken.equals(accessTokenFromSharedPreference) || accessToken.equals("null")) {
- String newAccessToken = getApplicationOnlyAccessToken();
- if (!newAccessToken.equals("")) {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(newAccessToken))).build();
- } else {
- return null;
- }
+ return null;
+ }
+ String accessTokenFromDatabase = account.getAccessToken();
+ if (accessToken.equals(accessTokenFromDatabase)) {
+ String newAccessToken = refreshAccessToken(account);
+ if (!newAccessToken.equals("")) {
+ return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(newAccessToken))).build();
} else {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(accessTokenFromSharedPreference))).build();
+ return null;
}
} else {
- String accessTokenFromDatabase = account.getAccessToken();
- if (accessToken.equals(accessTokenFromDatabase)) {
- String newAccessToken = refreshAccessToken(account);
- if (!newAccessToken.equals("")) {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(newAccessToken))).build();
- } else {
- return null;
- }
- } else {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(accessTokenFromDatabase))).build();
- }
+ return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(accessTokenFromDatabase))).build();
}
}
}
@@ -115,34 +100,4 @@ class AccessTokenAuthenticator implements Authenticator {
return "";
}
-
- //For anonymous mode
- private String getApplicationOnlyAccessToken() {
- RedditAPI api = mRetrofit.create(RedditAPI.class);
-
- Map<String, String> params = new HashMap<>();
- params.put(APIUtils.GRANT_TYPE_KEY, APIUtils.GRANT_TYPE_INSTALLED_CLIENT);
- params.put(APIUtils.DEVICE_ID_KEY, APIUtils.DEVICE_ID);
-
- Call<String> accessTokenCall = api.getAccessToken(APIUtils.getApplicationOnlyBasicAuthHeader(), params);
- try {
- retrofit2.Response<String> response = accessTokenCall.execute();
- if (response.isSuccessful() && response.body() != null) {
- JSONObject jsonObject = new JSONObject(response.body());
- String newAccessToken = jsonObject.getString(APIUtils.ACCESS_TOKEN_KEY);
- mRedditDataRoomDatabase.accountDao().updateAccessToken(Account.ANONYMOUS_ACCOUNT, newAccessToken);
- mCurrentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN, newAccessToken).apply();
- if (mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, Account.ANONYMOUS_ACCOUNT).equals(Account.ANONYMOUS_ACCOUNT)) {
- mCurrentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.ACCESS_TOKEN, newAccessToken).apply();
- }
-
- return newAccessToken;
- }
- return "";
- } catch (IOException | JSONException e) {
- e.printStackTrace();
- }
-
- return "";
- }
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ApplicationOnlyAccessTokenAuthenticator.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ApplicationOnlyAccessTokenAuthenticator.java
deleted file mode 100644
index 970b81fd..00000000
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/ApplicationOnlyAccessTokenAuthenticator.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package ml.docilealligator.infinityforreddit;
-
-import android.content.SharedPreferences;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
-import ml.docilealligator.infinityforreddit.account.Account;
-import ml.docilealligator.infinityforreddit.apis.RedditAPI;
-import ml.docilealligator.infinityforreddit.utils.APIUtils;
-import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
-import okhttp3.Authenticator;
-import okhttp3.Headers;
-import okhttp3.Request;
-import okhttp3.Response;
-import okhttp3.Route;
-import retrofit2.Call;
-import retrofit2.Retrofit;
-
-class ApplicationOnlyAccessTokenAuthenticator implements Authenticator {
- private final Retrofit mRetrofit;
- private final RedditDataRoomDatabase mRedditDataRoomDatabase;
- private final SharedPreferences mCurrentAccountSharedPreferences;
-
- ApplicationOnlyAccessTokenAuthenticator(Retrofit retrofit, RedditDataRoomDatabase accountRoomDatabase, SharedPreferences currentAccountSharedPreferences) {
- mRetrofit = retrofit;
- mRedditDataRoomDatabase = accountRoomDatabase;
- mCurrentAccountSharedPreferences = currentAccountSharedPreferences;
- }
-
- @Nullable
- @Override
- public Request authenticate(Route route, @NonNull Response response) {
- if (response.code() == 401) {
- String accessTokenHeader = response.request().header(APIUtils.AUTHORIZATION_KEY);
- if (accessTokenHeader == null) {
- return null;
- }
-
- String accessToken = accessTokenHeader.substring(APIUtils.AUTHORIZATION_BASE.length());
- synchronized (this) {
- if (!mRedditDataRoomDatabase.accountDao().isAnonymousAccountInserted()) {
- mRedditDataRoomDatabase.accountDao().insert(Account.getAnonymousAccount());
- }
- String accessTokenFromSharedPreference = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCESS_TOKEN, "");
- if (accessToken.equals(accessTokenFromSharedPreference) || accessToken.equals("null")) {
- String newAccessToken = getApplicationOnlyAccessToken();
- if (!newAccessToken.equals("")) {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(newAccessToken))).build();
- } else {
- return null;
- }
- } else {
- return response.request().newBuilder().headers(Headers.of(APIUtils.getOAuthHeader(accessTokenFromSharedPreference))).build();
- }
- }
- }
- return null;
- }
-
- //For anonymous mode
- private String getApplicationOnlyAccessToken() {
- RedditAPI api = mRetrofit.create(RedditAPI.class);
-
- Map<String, String> params = new HashMap<>();
- params.put(APIUtils.GRANT_TYPE_KEY, APIUtils.GRANT_TYPE_INSTALLED_CLIENT);
- params.put(APIUtils.DEVICE_ID_KEY, APIUtils.DEVICE_ID);
-
- Call<String> accessTokenCall = api.getAccessToken(APIUtils.getApplicationOnlyBasicAuthHeader(), params);
- try {
- retrofit2.Response<String> response = accessTokenCall.execute();
- if (response.isSuccessful() && response.body() != null) {
- JSONObject jsonObject = new JSONObject(response.body());
- String newAccessToken = jsonObject.getString(APIUtils.ACCESS_TOKEN_KEY);
- mRedditDataRoomDatabase.accountDao().updateAccessToken(Account.ANONYMOUS_ACCOUNT, newAccessToken);
- mCurrentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN, newAccessToken).apply();
- if (mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_NAME, Account.ANONYMOUS_ACCOUNT).equals(Account.ANONYMOUS_ACCOUNT)) {
- mCurrentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.ACCESS_TOKEN, newAccessToken).apply();
- }
-
- return newAccessToken;
- }
- return "";
- } catch (IOException | JSONException e) {
- e.printStackTrace();
- }
-
- return "";
- }
-}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchRules.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchRules.java
index 96debfbb..a914bb19 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/FetchRules.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FetchRules.java
@@ -12,6 +12,7 @@ import org.json.JSONObject;
import java.util.ArrayList;
import java.util.concurrent.Executor;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
import ml.docilealligator.infinityforreddit.utils.JSONUtils;
@@ -28,10 +29,12 @@ public class FetchRules {
}
public static void fetchRules(Executor executor, Handler handler, Retrofit retrofit, @Nullable String accessToken,
- String subredditName,
+ @NonNull String accountName, String subredditName,
FetchRulesListener fetchRulesListener) {
RedditAPI api = retrofit.create(RedditAPI.class);
- Call<String> rulesCall = api.getRulesOauth(APIUtils.getOAuthHeader(accessToken), subredditName);
+ Call<String> rulesCall = accountName.equals(Account.ANONYMOUS_ACCOUNT)
+ ? api.getRules(subredditName)
+ : api.getRulesOauth(APIUtils.getOAuthHeader(accessToken), subredditName);
rulesCall.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/NetworkModule.java b/app/src/main/java/ml/docilealligator/infinityforreddit/NetworkModule.java
index ffd4dcb6..2c231682 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/NetworkModule.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/NetworkModule.java
@@ -12,11 +12,9 @@ import dagger.Provides;
import ml.docilealligator.infinityforreddit.apis.StreamableAPI;
import ml.docilealligator.infinityforreddit.network.SortTypeConverterFactory;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
-import ml.docilealligator.infinityforreddit.utils.SharedPreferencesUtils;
import okhttp3.ConnectionPool;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
-import okhttp3.Request;
import retrofit2.Retrofit;
import retrofit2.adapter.guava.GuavaCallAdapterFactory;
import retrofit2.converter.scalars.ScalarsConverterFactory;
@@ -70,34 +68,6 @@ abstract class NetworkModule {
}
@Provides
- @Named("application_only_oauth")
- static Retrofit provideApplicationOnlyOAuthRetrofit(@Named("base") Retrofit retrofit,
- @Named("base") OkHttpClient httpClient,
- RedditDataRoomDatabase accountRoomDatabase,
- @Named("current_account") SharedPreferences currentAccountSharedPreferences,
- ConnectionPool connectionPool) {
- return retrofit.newBuilder()
- .baseUrl(APIUtils.OAUTH_API_BASE_URI)
- .client(httpClient.newBuilder()
- .addInterceptor(chain -> {
- if (!chain.request().headers().names().contains(APIUtils.AUTHORIZATION_KEY)) {
- Request newRequest = chain.request().newBuilder()
- .addHeader(APIUtils.AUTHORIZATION_KEY,
- APIUtils.AUTHORIZATION_BASE
- + currentAccountSharedPreferences.getString(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN, null))
- .build();
- return chain.proceed(newRequest);
- }
-
- return chain.proceed(chain.request());
- })
- .authenticator(new ApplicationOnlyAccessTokenAuthenticator(retrofit, accountRoomDatabase, currentAccountSharedPreferences))
- .connectionPool(connectionPool)
- .build())
- .build();
- }
-
- @Provides
@Named("default")
@Singleton
static OkHttpClient provideOkHttpClient(@Named("base") OkHttpClient httpClient,
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/FetchRandomSubredditOrPostActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/FetchRandomSubredditOrPostActivity.java
index d6b7a74c..1587d83f 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/FetchRandomSubredditOrPostActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/FetchRandomSubredditOrPostActivity.java
@@ -28,8 +28,8 @@ public class FetchRandomSubredditOrPostActivity extends BaseActivity {
@BindView(R.id.relative_layout_fetch_random_subreddit_or_post_activity)
RelativeLayout relativeLayout;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
+ @Named("no_oauth")
+ Retrofit mRetrofit;
@Inject
@Named("default")
SharedPreferences mSharedPreferences;
@@ -49,7 +49,7 @@ public class FetchRandomSubredditOrPostActivity extends BaseActivity {
int option = getIntent().getIntExtra(EXTRA_RANDOM_OPTION, RandomBottomSheetFragment.RANDOM_SUBREDDIT);
- FetchPost.fetchRandomPost(mExecutor, new Handler(), mApplicationOnlyOauthRetrofit,
+ FetchPost.fetchRandomPost(mExecutor, new Handler(), mRetrofit,
option == RandomBottomSheetFragment.RANDOM_NSFW_SUBREDDIT
|| option == RandomBottomSheetFragment.RANDOM_NSFW_POST, new FetchPost.FetchRandomPostListener() {
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LinkResolverActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LinkResolverActivity.java
index 56fa12f9..5a4c0311 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LinkResolverActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/LinkResolverActivity.java
@@ -62,9 +62,8 @@ public class LinkResolverActivity extends AppCompatActivity {
private static final String STREAMABLE_PATTERN = "/\\w+/?";
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
-
+ @Named("no_oauth")
+ Retrofit mRetrofit;
@Inject
@Named("default")
SharedPreferences mSharedPreferences;
@@ -266,7 +265,7 @@ public class LinkResolverActivity extends AppCompatActivity {
startActivity(intent);
} else if (uri.getPath().matches(SHARELINK_SUBREDDIT_PATTERN)
|| uri.getPath().matches(SHARELINK_USER_PATTERN)) {
- mApplicationOnlyRetrofit.callFactory().newCall(new Request.Builder().url(uri.toString()).build()).enqueue(new Callback() {
+ mRetrofit.callFactory().newCall(new Request.Builder().url(uri.toString()).build()).enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) {
if (response.isSuccessful()) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java
index 6d3913e2..4ff943fc 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostGalleryActivity.java
@@ -141,12 +141,12 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee
@BindView(R.id.images_recycler_view_post_gallery_activity)
RecyclerView imagesRecyclerView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("upload_media")
Retrofit mUploadMediaRetrofit;
@Inject
@@ -530,8 +530,8 @@ public class PostGalleryActivity extends BaseActivity implements FlairBottomShee
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java
index 5005e407..56629d96 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostImageActivity.java
@@ -136,12 +136,12 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
@BindView(R.id.image_view_post_image_activity)
ImageView imageView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("upload_media")
Retrofit mUploadMediaRetrofit;
@Inject
@@ -492,8 +492,8 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java
index 9c489dd7..effadc26 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostLinkActivity.java
@@ -131,9 +131,6 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -481,8 +478,8 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java
index 191b55e4..2f98c7de 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostPollActivity.java
@@ -154,12 +154,12 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
@BindView(R.id.option_6_text_input_layout_edit_text_post_poll_activity)
TextInputEditText option6TextInputEditText;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -528,8 +528,8 @@ public class PostPollActivity extends BaseActivity implements FlairBottomSheetFr
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java
index c45d1ced..300a34f0 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostTextActivity.java
@@ -139,12 +139,12 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr
@BindView(R.id.markdown_bottom_bar_recycler_view_post_text_activity)
RecyclerView markdownBottomBarRecyclerView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("upload_media")
Retrofit mUploadMediaRetrofit;
@Inject
@@ -485,8 +485,8 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java
index 24796c63..012b9d36 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/PostVideoActivity.java
@@ -139,12 +139,12 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
@BindView(R.id.player_view_post_video_activity)
PlayerView videoPlayerView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("upload_media")
Retrofit mUploadMediaRetrofit;
@Inject
@@ -511,8 +511,8 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ReportActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ReportActivity.java
index a0c94f20..7ecc927c 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ReportActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ReportActivity.java
@@ -54,6 +54,9 @@ public class ReportActivity extends BaseActivity {
@BindView(R.id.recycler_view_report_activity)
RecyclerView recyclerView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -119,7 +122,9 @@ public class ReportActivity extends BaseActivity {
recyclerView.setAdapter(mAdapter);
if (rulesReasons == null) {
- FetchRules.fetchRules(mExecutor, new Handler(), mOauthRetrofit, mAccessToken, mSubredditName, new FetchRules.FetchRulesListener() {
+ FetchRules.fetchRules(mExecutor, new Handler(),
+ mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit,
+ mAccessToken, mAccountName, mSubredditName, new FetchRules.FetchRulesListener() {
@Override
public void success(ArrayList<Rule> rules) {
mAdapter.setRules(ReportReason.convertRulesToReasons(rules));
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RulesActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RulesActivity.java
index d5e89738..081af098 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RulesActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/RulesActivity.java
@@ -65,6 +65,9 @@ public class RulesActivity extends BaseActivity {
@BindView(R.id.error_text_view_rules_activity)
TextView errorTextView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -134,8 +137,9 @@ public class RulesActivity extends BaseActivity {
mAdapter = new RulesRecyclerViewAdapter(this, mCustomThemeWrapper, sliderPanel, mSubredditName);
recyclerView.setAdapter(mAdapter);
- FetchRules.fetchRules(mExecutor, new Handler(), mOauthRetrofit, mAccessToken,
- mSubredditName, new FetchRules.FetchRulesListener() {
+ FetchRules.fetchRules(mExecutor, new Handler(),
+ mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit,
+ mAccessToken, mAccountName, mSubredditName, new FetchRules.FetchRulesListener() {
@Override
public void success(ArrayList<Rule> rules) {
progressBar.setVisibility(View.GONE);
@@ -183,7 +187,9 @@ public class RulesActivity extends BaseActivity {
errorTextView.setOnClickListener(view -> {
progressBar.setVisibility(View.VISIBLE);
errorTextView.setVisibility(View.GONE);
- FetchRules.fetchRules(mExecutor, new Handler(), mOauthRetrofit, mAccessToken, mSubredditName, new FetchRules.FetchRulesListener() {
+ FetchRules.fetchRules(mExecutor, new Handler(),
+ mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit,
+ mAccessToken, mAccountName, mSubredditName, new FetchRules.FetchRulesListener() {
@Override
public void success(ArrayList<Rule> rules) {
progressBar.setVisibility(View.GONE);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java
index 496c9c44..6c5bcea7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/SubmitCrosspostActivity.java
@@ -136,12 +136,12 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom
@BindView(R.id.play_button_image_view_submit_crosspost_activity)
ImageView playButton;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -500,8 +500,8 @@ public class SubmitCrosspostActivity extends BaseActivity implements FlairBottom
}
private void loadSubredditIcon() {
- LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, mApplicationOnlyRetrofit, subredditName,
- iconImageUrl -> {
+ LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditName,
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit, iconImageUrl -> {
iconUrl = iconImageUrl;
displaySubredditIcon();
loadSubredditIconSuccessful = true;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
index 79983a1d..a0b568b5 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/TrendingActivity.java
@@ -83,6 +83,9 @@ public class TrendingActivity extends BaseActivity {
@BindView(R.id.fetch_trending_search_text_view_trending_activity)
TextView errorTextView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -205,8 +208,12 @@ public class TrendingActivity extends BaseActivity {
trendingSearches = null;
adapter.setTrendingSearches(null);
Handler handler = new Handler();
- Call<String> trendingCall = mOauthRetrofit.create(RedditAPI.class)
- .getTrendingSearchesOauth(APIUtils.getOAuthHeader(mAccessToken));
+ Call<String> trendingCall;
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ trendingCall = mRetrofit.create(RedditAPI.class).getTrendingSearches();
+ } else {
+ trendingCall = mOauthRetrofit.create(RedditAPI.class).getTrendingSearchesOauth(APIUtils.getOAuthHeader(mAccessToken));
+ }
trendingCall.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java
index 9bf59eac..85751042 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPostDetailActivity.java
@@ -127,6 +127,9 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
@BindView(R.id.close_search_panel_image_view_view_post_detail_activity)
ImageView closeSearchPanelImageView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -507,18 +510,21 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
if (postType != HistoryPostPagingSource.TYPE_READ_POSTS) {
mExecutor.execute(() -> {
- RedditAPI api = mOauthRetrofit.create(RedditAPI.class);
+ RedditAPI api = (mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit).create(RedditAPI.class);
Call<String> call;
String afterKey = posts.isEmpty() ? null : posts.get(posts.size() - 1).getFullName();
switch (postType) {
case PostPagingSource.TYPE_SUBREDDIT:
- call = api.getSubredditBestPostsOauth(subredditName, sortType,
- sortTime, afterKey, APIUtils.getOAuthHeader(mAccessToken));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ call = api.getSubredditBestPosts(subredditName, sortType, sortTime, afterKey);
+ } else {
+ call = api.getSubredditBestPostsOauth(subredditName, sortType,
+ sortTime, afterKey, APIUtils.getOAuthHeader(mAccessToken));
+ }
break;
case PostPagingSource.TYPE_USER:
if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
- call = api.getUserPostsOauth(username, PostPagingSource.USER_WHERE_SUBMITTED,
- afterKey, sortType, sortTime, APIUtils.getOAuthHeader(mAccessToken));
+ call = api.getUserPosts(username, afterKey, sortType, sortTime);
} else {
call = api.getUserPostsOauth(username, userWhere, afterKey, sortType,
sortTime, APIUtils.getOAuthHeader(mAccessToken));
@@ -526,22 +532,35 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
break;
case PostPagingSource.TYPE_SEARCH:
if (subredditName == null) {
- call = api.searchPostsOauth(query, afterKey, sortType,
- sortTime, trendingSource, APIUtils.getOAuthHeader(mAccessToken));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ call = api.searchPosts(query, afterKey, sortType, sortTime,
+ trendingSource);
+ } else {
+ call = api.searchPostsOauth(query, afterKey, sortType,
+ sortTime, trendingSource, APIUtils.getOAuthHeader(mAccessToken));
+ }
} else {
- call = api.searchPostsInSpecificSubredditOauth(subredditName, query,
- sortType, sortTime, afterKey,
- APIUtils.getOAuthHeader(mAccessToken));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ call = api.searchPostsInSpecificSubreddit(subredditName, query,
+ sortType, sortTime, afterKey);
+ } else {
+ call = api.searchPostsInSpecificSubredditOauth(subredditName, query,
+ sortType, sortTime, afterKey,
+ APIUtils.getOAuthHeader(mAccessToken));
+ }
}
break;
case PostPagingSource.TYPE_MULTI_REDDIT:
- call = api.getMultiRedditPostsOauth(multiPath, afterKey,
- sortTime, APIUtils.getOAuthHeader(mAccessToken));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ call = api.getMultiRedditPosts(multiPath, afterKey, sortTime);
+ } else {
+ call = api.getMultiRedditPostsOauth(multiPath, afterKey,
+ sortTime, APIUtils.getOAuthHeader(mAccessToken));
+ }
break;
case PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE:
//case PostPagingSource.TYPE_ANONYMOUS_MULTIREDDIT
- call = api.getSubredditBestPostsOauth(subredditName, sortType, sortTime, afterKey,
- APIUtils.getOAuthHeader(mAccessToken));
+ call = api.getSubredditBestPosts(subredditName, sortType, sortTime, afterKey);
break;
default:
call = api.getBestPosts(sortType, sortTime, afterKey,
@@ -609,7 +628,7 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
}
});
} else {
- mExecutor.execute((Runnable) () -> {
+ mExecutor.execute(() -> {
long lastItem = 0;
if (!posts.isEmpty()) {
lastItem = mRedditDataRoomDatabase.readPostDao().getReadPost(posts.get(posts.size() - 1).getId()).getTime();
@@ -623,8 +642,12 @@ public class ViewPostDetailActivity extends BaseActivity implements SortTypeSele
ids.deleteCharAt(ids.length() - 1);
}
- Call<String> historyPosts = mOauthRetrofit.create(RedditAPI.class).getInfoOauth(ids.toString(),
- APIUtils.getOAuthHeader(mAccessToken));
+ Call<String> historyPosts;
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ historyPosts = mOauthRetrofit.create(RedditAPI.class).getInfoOauth(ids.toString(), APIUtils.getOAuthHeader(mAccessToken));
+ } else {
+ historyPosts = mRetrofit.create(RedditAPI.class).getInfo(ids.toString());
+ }
try {
Response<String> response = historyPosts.execute();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPrivateMessagesActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPrivateMessagesActivity.java
index 354e589d..3b338d08 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPrivateMessagesActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewPrivateMessagesActivity.java
@@ -74,12 +74,12 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
@BindView(R.id.edit_text_wrapper_linear_layout_view_private_messages_activity)
LinearLayout mEditTextLinearLayout;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -249,7 +249,7 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit
mProvideUserAvatarCallbacks.add(provideUserAvatarCallback);
if (!isLoadingUserAvatar) {
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase,
- username, mApplicationOnlyOauthRetrofit, iconImageUrl -> {
+ username, mRetrofit, iconImageUrl -> {
isLoadingUserAvatar = false;
mUserAvatar = iconImageUrl == null ? "" : iconImageUrl;
for (ProvideUserAvatarCallback provideUserAvatarCallbackInArrayList : mProvideUserAvatarCallbacks) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewSubredditDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewSubredditDetailActivity.java
index 6633b7f0..3f8c21cc 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewSubredditDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewSubredditDetailActivity.java
@@ -174,12 +174,12 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
@BindView(R.id.description_text_view_view_subreddit_detail_activity)
TextView descriptionTextView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -582,7 +582,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
private void fetchSubredditData() {
if (!mFetchSubredditInfoSuccess) {
- FetchSubredditData.fetchSubredditData(mOauthRetrofit, subredditName, mAccessToken, new FetchSubredditData.FetchSubredditDataListener() {
+ FetchSubredditData.fetchSubredditData(mOauthRetrofit, mRetrofit, subredditName, mAccessToken, new FetchSubredditData.FetchSubredditDataListener() {
@Override
public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
mNCurrentOnlineSubscribers = nCurrentOnlineSubscribers;
@@ -959,7 +959,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
subscriptionReady = false;
if (getResources().getString(R.string.subscribe).contentEquals(subscribeSubredditChip.getText())) {
SubredditSubscription.anonymousSubscribeToSubreddit(mExecutor, new Handler(),
- mApplicationOnlyOauthRetrofit, mRedditDataRoomDatabase, subredditName,
+ mRetrofit, mRedditDataRoomDatabase, subredditName,
new SubredditSubscription.SubredditSubscriptionListener() {
@Override
public void onSubredditSubscriptionSuccess() {
@@ -1000,7 +1000,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
subscriptionReady = false;
if (getResources().getString(R.string.subscribe).contentEquals(subscribeSubredditChip.getText())) {
SubredditSubscription.subscribeToSubreddit(mExecutor, new Handler(), mOauthRetrofit,
- mAccessToken, subredditName, mAccountName, mRedditDataRoomDatabase,
+ mRetrofit, mAccessToken, subredditName, mAccountName, mRedditDataRoomDatabase,
new SubredditSubscription.SubredditSubscriptionListener() {
@Override
public void onSubredditSubscriptionSuccess() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java
index 70959ace..e57881f1 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewUserDetailActivity.java
@@ -168,12 +168,12 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
@BindView(R.id.description_text_view_view_user_detail_activity)
TextView descriptionTextView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -442,7 +442,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
subscriptionReady = false;
if (resources.getString(R.string.follow).contentEquals(subscribeUserChip.getText())) {
if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
- UserFollowing.anonymousFollowUser(mExecutor, new Handler(), mApplicationOnlyOauthRetrofit,
+ UserFollowing.anonymousFollowUser(mExecutor, new Handler(), mRetrofit,
username, mRedditDataRoomDatabase, new UserFollowing.UserFollowingListener() {
@Override
public void onUserFollowingSuccess() {
@@ -459,7 +459,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
}
});
} else {
- UserFollowing.followUser(mOauthRetrofit, mApplicationOnlyOauthRetrofit, mAccessToken,
+ UserFollowing.followUser(mOauthRetrofit, mRetrofit, mAccessToken,
username, mAccountName, mRedditDataRoomDatabase, new UserFollowing.UserFollowingListener() {
@Override
public void onUserFollowingSuccess() {
@@ -494,7 +494,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
}
});
} else {
- UserFollowing.unfollowUser(mOauthRetrofit, mApplicationOnlyOauthRetrofit, mAccessToken,
+ UserFollowing.unfollowUser(mOauthRetrofit, mRetrofit, mAccessToken,
username, mAccountName, mRedditDataRoomDatabase, new UserFollowing.UserFollowingListener() {
@Override
public void onUserFollowingSuccess() {
@@ -1064,7 +1064,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele
private void fetchUserInfo() {
if (!mFetchUserInfoSuccess) {
- FetchUserData.fetchUserData(mApplicationOnlyOauthRetrofit, username, new FetchUserData.FetchUserDataListener() {
+ FetchUserData.fetchUserData(mRetrofit, username, new FetchUserData.FetchUserDataListener() {
@Override
public void onFetchUserDataSuccess(UserData userData, int inboxCount) {
new ViewUserDetailActivity.InsertUserDataAsyncTask(mRedditDataRoomDatabase.userDao(), userData,
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
index 38ca2f2f..37d3cda9 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/ViewVideoActivity.java
@@ -92,6 +92,7 @@ import ml.docilealligator.infinityforreddit.FetchStreamableVideo;
import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.StreamableVideo;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.StreamableAPI;
import ml.docilealligator.infinityforreddit.apis.VReddIt;
import ml.docilealligator.infinityforreddit.bottomsheetfragments.PlaybackSpeedBottomSheetFragment;
@@ -197,19 +198,19 @@ public class ViewVideoActivity extends AppCompatActivity implements CustomFontRe
private boolean useBottomAppBar;
@Inject
- @Named("application_only_oauth")
- Retrofit applicationOnlyOauthRetrofit;
+ @Named("no_oauth")
+ Retrofit mRetrofit;
@Inject
@Named("redgifs")
- Retrofit redgifsRetrofit;
+ Retrofit mRedgifsRetrofit;
@Inject
@Named("vReddIt")
- Retrofit vReddItRetrofit;
+ Retrofit mVReddItRetrofit;
@Inject
- Provider<StreamableAPI> streamableApiProvider;
+ Provider<StreamableAPI> mStreamableApiProvider;
@Inject
@Named("default")
@@ -711,7 +712,7 @@ public class ViewVideoActivity extends AppCompatActivity implements CustomFontRe
private void loadRedgifsVideo(String redgifsId, Bundle savedInstanceState) {
progressBar.setVisibility(View.VISIBLE);
- FetchRedgifsVideoLinks.fetchRedgifsVideoLinks(mExecutor, new Handler(), redgifsRetrofit,
+ FetchRedgifsVideoLinks.fetchRedgifsVideoLinks(mExecutor, new Handler(), mRedgifsRetrofit,
mCurrentAccountSharedPreferences, redgifsId, new FetchRedgifsVideoLinks.FetchRedgifsVideoLinksListener() {
@Override
public void success(String webm, String mp4) {
@@ -735,7 +736,7 @@ public class ViewVideoActivity extends AppCompatActivity implements CustomFontRe
private void loadVReddItVideo(Bundle savedInstanceState) {
progressBar.setVisibility(View.VISIBLE);
- vReddItRetrofit.create(VReddIt.class).getRedirectUrl(getIntent().getStringExtra(EXTRA_V_REDD_IT_URL)).enqueue(new Callback<>() {
+ mVReddItRetrofit.create(VReddIt.class).getRedirectUrl(getIntent().getStringExtra(EXTRA_V_REDD_IT_URL)).enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
Uri redirectUri = Uri.parse(response.raw().request().url().toString());
@@ -744,7 +745,7 @@ public class ViewVideoActivity extends AppCompatActivity implements CustomFontRe
List<String> segments = redirectUri.getPathSegments();
int commentsIndex = segments.lastIndexOf("comments");
String postId = segments.get(commentsIndex + 1);
- FetchPost.fetchPost(mExecutor, new Handler(), applicationOnlyOauthRetrofit, postId, null,
+ FetchPost.fetchPost(mExecutor, new Handler(), mRetrofit, postId, null, Account.ANONYMOUS_ACCOUNT,
new FetchPost.FetchPostListener() {
@Override
public void fetchPostSuccess(Post post) {
@@ -814,7 +815,7 @@ public class ViewVideoActivity extends AppCompatActivity implements CustomFontRe
private void loadStreamableVideo(String shortCode, Bundle savedInstanceState) {
progressBar.setVisibility(View.VISIBLE);
- FetchStreamableVideo.fetchStreamableVideo(mExecutor, new Handler(), streamableApiProvider, shortCode,
+ FetchStreamableVideo.fetchStreamableVideo(mExecutor, new Handler(), mStreamableApiProvider, shortCode,
new FetchStreamableVideo.FetchStreamableVideoListener() {
@Override
public void success(StreamableVideo streamableVideo) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
index 7507f21c..bd8c804d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/activities/WikiActivity.java
@@ -92,8 +92,8 @@ public class WikiActivity extends BaseActivity {
TextView mFetchWikiInfoTextView;
@Inject
- @Named("application_only_oauth")
- Retrofit applicationOnlyOauthRetrofit;
+ @Named("no_oauth")
+ Retrofit mRetrofit;
@Inject
@Named("default")
SharedPreferences mSharedPreferences;
@@ -256,7 +256,7 @@ public class WikiActivity extends BaseActivity {
Glide.with(this).clear(mFetchWikiInfoImageView);
mFetchWikiInfoLinearLayout.setVisibility(View.GONE);
- applicationOnlyOauthRetrofit.create(RedditAPI.class).getWikiPage(mSubredditName, getIntent().getStringExtra(EXTRA_WIKI_PATH)).enqueue(new Callback<>() {
+ mRetrofit.create(RedditAPI.class).getWikiPage(mSubredditName, getIntent().getStringExtra(EXTRA_WIKI_PATH)).enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
if (response.isSuccessful()) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java
index 53bb5d57..8695d14b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/CommentsRecyclerViewAdapter.java
@@ -97,6 +97,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
private final BaseActivity mActivity;
private final ViewPostDetailFragment mFragment;
private final Executor mExecutor;
+ private final Retrofit mRetrofit;
private final Retrofit mOauthRetrofit;
private final EmoteCloseBracketInlineProcessor mEmoteCloseBracketInlineProcessor;
private final EmotePlugin mEmotePlugin;
@@ -164,7 +165,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
public CommentsRecyclerViewAdapter(BaseActivity activity, ViewPostDetailFragment fragment,
CustomThemeWrapper customThemeWrapper,
- Executor executor, Retrofit oauthRetrofit,
+ Executor executor, Retrofit retrofit, Retrofit oauthRetrofit,
@Nullable String accessToken, @NonNull String accountName,
Post post, Locale locale, String singleCommentId,
boolean isSingleCommentThreadMode,
@@ -174,6 +175,7 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
mActivity = activity;
mFragment = fragment;
mExecutor = executor;
+ mRetrofit =
mOauthRetrofit = oauthRetrofit;
mAccessToken = accessToken;
mAccountName = accountName;
@@ -666,8 +668,9 @@ public class CommentsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerVi
mVisibleComments.get(commentPosition).setLoadMoreChildrenFailed(false);
((LoadMoreChildCommentsViewHolder) holder).placeholderTextView.setText(R.string.loading);
+ Retrofit retrofit = mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit;
SortType.Type sortType = mCommentRecyclerViewAdapterCallback.getSortType();
- FetchComment.fetchMoreComment(mExecutor, new Handler(), mOauthRetrofit, mAccessToken,
+ FetchComment.fetchMoreComment(mExecutor, new Handler(), retrofit, mAccessToken,
mAccountName, parentComment.getMoreChildrenIds(),
mExpandChildren, mPost.getFullName(), sortType, new FetchComment.FetchMoreCommentListener() {
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
index 150ce763..bb036181 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/PostDetailRecyclerViewAdapter.java
@@ -137,8 +137,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
private final BaseActivity mActivity;
private final ViewPostDetailFragment mFragment;
private final Executor mExecutor;
+ private final Retrofit mRetrofit;
private final Retrofit mOauthRetrofit;
- private final Retrofit mApplicationOnlyRetrofit;
private final Retrofit mRedgifsRetrofit;
private final Provider<StreamableAPI> mStreamableApiProvider;
private final RedditDataRoomDatabase mRedditDataRoomDatabase;
@@ -221,7 +221,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
public PostDetailRecyclerViewAdapter(@NonNull BaseActivity activity, ViewPostDetailFragment fragment,
Executor executor, CustomThemeWrapper customThemeWrapper,
- Retrofit oauthRetrofit, Retrofit applicationOnlyRetrofit,
+ Retrofit oauthRetrofit, Retrofit retrofit,
Retrofit redgifsRetrofit, Provider<StreamableAPI> streamableApiProvider,
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
boolean separatePostAndComments, @Nullable String accessToken,
@@ -235,8 +235,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
mActivity = activity;
mFragment = fragment;
mExecutor = executor;
+ mRetrofit = retrofit;
mOauthRetrofit = oauthRetrofit;
- mApplicationOnlyRetrofit = applicationOnlyRetrofit;
mRedgifsRetrofit = redgifsRetrofit;
mStreamableApiProvider = streamableApiProvider;
mRedditDataRoomDatabase = redditDataRoomDatabase;
@@ -523,7 +523,7 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
if (mPost.getAuthorIconUrl() == null) {
String authorName = mPost.isAuthorDeleted() ? mPost.getSubredditNamePrefixed().substring(2) : mPost.getAuthor();
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase,
- authorName, mApplicationOnlyRetrofit, iconImageUrl -> {
+ authorName, mRetrofit, iconImageUrl -> {
if (mActivity != null && getItemCount() > 0) {
if (iconImageUrl == null || iconImageUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon)
@@ -556,7 +556,8 @@ public class PostDetailRecyclerViewAdapter extends RecyclerView.Adapter<Recycler
} else {
if (mPost.getSubredditIconUrl() == null) {
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(),
- mRedditDataRoomDatabase, mApplicationOnlyRetrofit, mPost.getSubredditNamePrefixed().substring(2),
+ mRedditDataRoomDatabase, mPost.getSubredditNamePrefixed().substring(2),
+ mAccessToken, mAccountName, mOauthRetrofit, mRetrofit,
iconImageUrl -> {
if (iconImageUrl == null || iconImageUrl.equals("")) {
mGlide.load(R.drawable.subreddit_default_icon)
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/SubredditListingRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/SubredditListingRecyclerViewAdapter.java
index 39cafb9d..0c134ba9 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/SubredditListingRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/SubredditListingRecyclerViewAdapter.java
@@ -59,8 +59,8 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
private final RequestManager glide;
private final BaseActivity activity;
private final Executor executor;
+ private final Retrofit retrofit;
private final Retrofit oauthRetrofit;
- private final Retrofit applicationOnlyOauthRetrofit;
private final String accessToken;
private final String accountName;
private final RedditDataRoomDatabase redditDataRoomDatabase;
@@ -75,8 +75,7 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
private NetworkState networkState;
private final Callback callback;
- public SubredditListingRecyclerViewAdapter(BaseActivity activity, Executor executor, Retrofit oauthRetrofit,
- Retrofit applicationOnlyOauthRetrofit,
+ public SubredditListingRecyclerViewAdapter(BaseActivity activity, Executor executor, Retrofit oauthRetrofit, Retrofit retrofit,
CustomThemeWrapper customThemeWrapper,
@Nullable String accessToken, @NonNull String accountName,
RedditDataRoomDatabase redditDataRoomDatabase,
@@ -85,7 +84,7 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
this.activity = activity;
this.executor = executor;
this.oauthRetrofit = oauthRetrofit;
- this.applicationOnlyOauthRetrofit = applicationOnlyOauthRetrofit;
+ this.retrofit = retrofit;
this.accessToken = accessToken;
this.accountName = accountName;
this.redditDataRoomDatabase = redditDataRoomDatabase;
@@ -161,7 +160,7 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
((DataViewHolder) holder).subscribeButton.setOnClickListener(view -> {
if (!accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
SubredditSubscription.subscribeToSubreddit(executor, new Handler(),
- oauthRetrofit, accessToken, subredditData.getName(),
+ oauthRetrofit, retrofit, accessToken, subredditData.getName(),
accountName, redditDataRoomDatabase,
new SubredditSubscription.SubredditSubscriptionListener() {
@Override
@@ -177,7 +176,7 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
});
} else {
SubredditSubscription.anonymousSubscribeToSubreddit(executor, new Handler(),
- applicationOnlyOauthRetrofit, redditDataRoomDatabase,
+ retrofit, redditDataRoomDatabase,
subredditData.getName(),
new SubredditSubscription.SubredditSubscriptionListener() {
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/UserListingRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/UserListingRecyclerViewAdapter.java
index c29ddd80..4c9ef8f7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/UserListingRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/adapters/UserListingRecyclerViewAdapter.java
@@ -59,7 +59,7 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
private final BaseActivity activity;
private final Executor executor;
private final Retrofit oauthRetrofit;
- private final Retrofit applicationOnlyOauthRetrofit;
+ private final Retrofit retrofit;
private final String accessToken;
private final String accountName;
private final RedditDataRoomDatabase redditDataRoomDatabase;
@@ -74,7 +74,7 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
private NetworkState networkState;
private final Callback callback;
- public UserListingRecyclerViewAdapter(BaseActivity activity, Executor executor, Retrofit oauthRetrofit, Retrofit applicationOnlyOauthRetrofit,
+ public UserListingRecyclerViewAdapter(BaseActivity activity, Executor executor, Retrofit oauthRetrofit, Retrofit retrofit,
CustomThemeWrapper customThemeWrapper, @Nullable String accessToken,
@NonNull String accountName, RedditDataRoomDatabase redditDataRoomDatabase,
boolean isMultiSelection, Callback callback) {
@@ -82,7 +82,7 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
this.activity = activity;
this.executor = executor;
this.oauthRetrofit = oauthRetrofit;
- this.applicationOnlyOauthRetrofit = applicationOnlyOauthRetrofit;
+ this.retrofit = retrofit;
this.accessToken = accessToken;
this.accountName = accountName;
this.redditDataRoomDatabase = redditDataRoomDatabase;
@@ -150,7 +150,7 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
public void isNotSubscribed() {
((DataViewHolder) holder).subscribeButton.setVisibility(View.VISIBLE);
((DataViewHolder) holder).subscribeButton.setOnClickListener(view -> {
- UserFollowing.followUser(oauthRetrofit, applicationOnlyOauthRetrofit,
+ UserFollowing.followUser(oauthRetrofit, retrofit,
accessToken, userData.getName(), accountName, redditDataRoomDatabase,
new UserFollowing.UserFollowingListener() {
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/apis/RedditAPI.java b/app/src/main/java/ml/docilealligator/infinityforreddit/apis/RedditAPI.java
index 32948ff7..9db3669e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/apis/RedditAPI.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/apis/RedditAPI.java
@@ -30,6 +30,9 @@ public interface RedditAPI {
Call<String> getAccessToken(@HeaderMap Map<String, String> headers, @FieldMap Map<String, String> params);
@GET("r/{subredditName}/about.json?raw_json=1")
+ Call<String> getSubredditData(@Path("subredditName") String subredditName);
+
+ @GET("r/{subredditName}/about.json?raw_json=1")
Call<String> getSubredditDataOauth(@Path("subredditName") String subredditName, @HeaderMap Map<String, String> headers);
@GET("subreddits/mine/subscriber?raw_json=1")
@@ -45,10 +48,20 @@ public interface RedditAPI {
@GET("comments/{id}.json?raw_json=1")
Call<String> getPostOauth(@Path("id") String id, @HeaderMap Map<String, String> headers);
+ @GET("comments/{id}.json?raw_json=1")
+ Call<String> getPost(@Path("id") String id);
+
+ @GET("user/{username}/about.json?raw_json=1")
+ Call<String> getUserData(@Path("username") String username);
+
@GET("user/{username}/about.json?raw_json=1&limit=100")
Call<String> getUserDataOauth(@HeaderMap Map<String, String> headers, @Path("username") String username);
@GET("user/{username}/comments.json?raw_json=1&limit=100")
+ Call<String> getUserComments(@Path("username") String username, @Query("after") String after,
+ @Query("sort") SortType.Type sortType, @Query("t") SortType.Time sortTime);
+
+ @GET("user/{username}/comments.json?raw_json=1&limit=100")
Call<String> getUserCommentsOauth(@HeaderMap Map<String, String> headers, @Path("username") String username,
@Query("after") String after, @Query("sort") SortType.Type sortType,
@Query("t") SortType.Time sortTime);
@@ -63,6 +76,9 @@ public interface RedditAPI {
Call<String> subredditSubscription(@HeaderMap Map<String, String> headers, @FieldMap Map<String, String> params);
@GET("/api/info.json?raw_json=1")
+ Call<String> getInfo(@Query("id") String id);
+
+ @GET("/api/info.json?raw_json=1")
Call<String> getInfoOauth(@Query("id") String id, @HeaderMap Map<String, String> headers);
@GET("subreddits/search.json?raw_json=1")
@@ -94,6 +110,9 @@ public interface RedditAPI {
Call<String> getFlairs(@HeaderMap Map<String, String> headers, @Path("subredditName") String subredditName);
@GET("/r/{subredditName}/about/rules.json?raw_json=1")
+ Call<String> getRules(@Path("subredditName") String subredditName);
+
+ @GET("/r/{subredditName}/about/rules.json?raw_json=1")
Call<String> getRulesOauth(@HeaderMap Map<String, String> headers, @Path("subredditName") String subredditName);
@GET("/comments/{id}/placeholder/{singleCommentId}.json?raw_json=1")
@@ -105,6 +124,13 @@ public interface RedditAPI {
Call<String> getPostAndCommentsByIdOauth(@Path("id") String id, @Query("sort") SortType.Type sortType,
@HeaderMap Map<String, String> headers);
+ @GET("/comments/{id}/placeholder/{singleCommentId}.json?raw_json=1")
+ Call<String> getPostAndCommentsSingleThreadById(@Path("id") String id, @Path("singleCommentId") String singleCommentId,
+ @Query("sort") SortType.Type sortType, @Query("context") String contextNumber);
+
+ @GET("/comments/{id}.json?raw_json=1")
+ Call<String> getPostAndCommentsById(@Path("id") String id, @Query("sort") SortType.Type sortType);
+
@Multipart
@POST(".")
Call<String> uploadMediaToAWS(@PartMap() Map<String, RequestBody> params, @Part() MultipartBody.Part file);
@@ -206,10 +232,10 @@ public interface RedditAPI {
Call<String> awardThing(@HeaderMap Map<String, String> headers, @FieldMap Map<String, String> params);
@GET("/r/random/comments.json?limit=1&raw_json=1")
- Call<String> getRandomPostOauth();
+ Call<String> getRandomPost();
@GET("/r/randnsfw/new.json?sort=new&t=all&limit=1&raw_json=1")
- Call<String> getRandomNSFWPostOauth();
+ Call<String> getRandomNSFWPost();
@POST("/api/read_all_messages")
Call<String> readAllMessages(@HeaderMap Map<String, String> headers);
@@ -235,6 +261,9 @@ public interface RedditAPI {
Call<String> submitPollPost(@HeaderMap Map<String, String> headers, @Body String body);
@GET("/api/trending_searches_v1.json?withAds=0&raw_json=1&gilding_detail=1")
+ Call<String> getTrendingSearches();
+
+ @GET("/api/trending_searches_v1.json?withAds=0&raw_json=1&gilding_detail=1")
Call<String> getTrendingSearchesOauth(@HeaderMap Map<String, String> headers);
@GET("/r/{subredditName}/wiki/{wikiPage}.json?raw_json=1")
@@ -242,30 +271,52 @@ public interface RedditAPI {
@GET("{sortType}?raw_json=1&limit=100")
ListenableFuture<Response<String>> getBestPostsListenableFuture(@Path("sortType") SortType.Type sortType, @Query("t") SortType.Time sortTime,
- @Query("after") String lastItem, @HeaderMap Map<String, String> headers);
+ @Query("after") String lastItem, @HeaderMap Map<String, String> headers);
@GET("r/{subredditName}/{sortType}.json?raw_json=1&limit=100&always_show_media=1")
ListenableFuture<Response<String>> getSubredditBestPostsOauthListenableFuture(@Path("subredditName") String subredditName, @Path("sortType") SortType.Type sortType,
@Query("t") SortType.Time sortTime, @Query("after") String lastItem,
@HeaderMap Map<String, String> headers);
+ @GET("r/{subredditName}/{sortType}.json?raw_json=1&limit=100&always_show_media=1")
+ ListenableFuture<Response<String>> getSubredditBestPostsListenableFuture(@Path("subredditName") String subredditName, @Path("sortType") SortType.Type sortType,
+ @Query("t") SortType.Time sortTime, @Query("after") String lastItem);
+
@GET("user/{username}/{where}.json?&type=links&raw_json=1&limit=100")
ListenableFuture<Response<String>> getUserPostsOauthListenableFuture(@Path("username") String username, @Path("where") String where,
@Query("after") String lastItem, @Query("sort") SortType.Type sortType,
@Query("t") SortType.Time sortTime, @HeaderMap Map<String, String> headers);
+ @GET("user/{username}/submitted.json?raw_json=1&limit=100")
+ ListenableFuture<Response<String>> getUserPostsListenableFuture(@Path("username") String username, @Query("after") String lastItem,
+ @Query("sort") SortType.Type sortType, @Query("t") SortType.Time sortTime);
+
@GET("search.json?include_over_18=1&raw_json=1&limit=100&type=link")
ListenableFuture<Response<String>> searchPostsOauthListenableFuture(@Query("q") String query, @Query("after") String after,
@Query("sort") SortType.Type sort, @Query("t") SortType.Time sortTime,
@Query("source") String source,
@HeaderMap Map<String, String> headers);
+ @GET("search.json?include_over_18=1&raw_json=1&limit=100&type=link")
+ ListenableFuture<Response<String>> searchPostsListenableFuture(@Query("q") String query, @Query("after") String after,
+ @Query("sort") SortType.Type sort, @Query("t") SortType.Time sortTime,
+ @Query("source") String source);
+
@GET("r/{subredditName}/search.json?include_over_18=1&raw_json=1&limit=100&type=link&restrict_sr=true")
ListenableFuture<Response<String>> searchPostsInSpecificSubredditOauthListenableFuture(@Path("subredditName") String subredditName,
@Query("q") String query, @Query("sort") SortType.Type sort,
@Query("t") SortType.Time sortTime, @Query("after") String after,
@HeaderMap Map<String, String> headers);
+ @GET("r/{subredditName}/search.json?include_over_18=1&raw_json=1&limit=100&type=link&restrict_sr=true")
+ ListenableFuture<Response<String>> searchPostsInSpecificSubredditListenableFuture(@Path("subredditName") String subredditName,
+ @Query("q") String query, @Query("sort") SortType.Type sort,
+ @Query("t") SortType.Time sortTime, @Query("after") String after);
+
+ @GET("{multipath}?raw_json=1&limit=100")
+ ListenableFuture<Response<String>> getMultiRedditPostsListenableFuture(@Path(value = "multipath", encoded = true) String multiPath,
+ @Query("after") String after, @Query("t") SortType.Time sortTime);
+
@GET("{multipath}.json?raw_json=1&limit=100")
ListenableFuture<Response<String>> getMultiRedditPostsOauthListenableFuture(@Path(value = "multipath", encoded = true) String multiPath,
@Query("after") String after, @Query("t") SortType.Time sortTime,
@@ -273,30 +324,52 @@ public interface RedditAPI {
@GET("{sortType}?raw_json=1&limit=100")
Call<String> getBestPosts(@Path("sortType") SortType.Type sortType, @Query("t") SortType.Time sortTime,
- @Query("after") String lastItem, @HeaderMap Map<String, String> headers);
+ @Query("after") String lastItem, @HeaderMap Map<String, String> headers);
@GET("r/{subredditName}/{sortType}.json?raw_json=1&limit=100&always_show_media=1")
Call<String> getSubredditBestPostsOauth(@Path("subredditName") String subredditName, @Path("sortType") SortType.Type sortType,
@Query("t") SortType.Time sortTime, @Query("after") String lastItem,
@HeaderMap Map<String, String> headers);
+ @GET("r/{subredditName}/{sortType}.json?raw_json=1&limit=100&always_show_media=1")
+ Call<String> getSubredditBestPosts(@Path("subredditName") String subredditName, @Path("sortType") SortType.Type sortType,
+ @Query("t") SortType.Time sortTime, @Query("after") String lastItem);
+
@GET("user/{username}/{where}.json?&type=links&raw_json=1&limit=100")
Call<String> getUserPostsOauth(@Path("username") String username, @Path("where") String where,
@Query("after") String lastItem, @Query("sort") SortType.Type sortType,
@Query("t") SortType.Time sortTime, @HeaderMap Map<String, String> headers);
+ @GET("user/{username}/submitted.json?raw_json=1&limit=100")
+ Call<String> getUserPosts(@Path("username") String username, @Query("after") String lastItem,
+ @Query("sort") SortType.Type sortType, @Query("t") SortType.Time sortTime);
+
@GET("search.json?include_over_18=1&raw_json=1&limit=100&type=link")
Call<String> searchPostsOauth(@Query("q") String query, @Query("after") String after,
@Query("sort") SortType.Type sort, @Query("t") SortType.Time sortTime,
@Query("source") String source,
@HeaderMap Map<String, String> headers);
+ @GET("search.json?include_over_18=1&raw_json=1&limit=100&type=link")
+ Call<String> searchPosts(@Query("q") String query, @Query("after") String after,
+ @Query("sort") SortType.Type sort, @Query("t") SortType.Time sortTime,
+ @Query("source") String source);
+
@GET("r/{subredditName}/search.json?include_over_18=1&raw_json=1&limit=100&type=link&restrict_sr=true")
Call<String> searchPostsInSpecificSubredditOauth(@Path("subredditName") String subredditName,
@Query("q") String query, @Query("sort") SortType.Type sort,
@Query("t") SortType.Time sortTime, @Query("after") String after,
@HeaderMap Map<String, String> headers);
+ @GET("r/{subredditName}/search.json?include_over_18=1&raw_json=1&limit=100&type=link&restrict_sr=true")
+ Call<String> searchPostsInSpecificSubreddit(@Path("subredditName") String subredditName,
+ @Query("q") String query, @Query("sort") SortType.Type sort,
+ @Query("t") SortType.Time sortTime, @Query("after") String after);
+
+ @GET("{multipath}?raw_json=1&limit=100")
+ Call<String> getMultiRedditPosts(@Path(value = "multipath", encoded = true) String multiPath,
+ @Query("after") String after, @Query("t") SortType.Time sortTime);
+
@GET("{multipath}.json?raw_json=1&limit=100")
Call<String> getMultiRedditPostsOauth(@Path(value = "multipath", encoded = true) String multiPath,
@Query("after") String after, @Query("t") SortType.Time sortTime,
@@ -311,9 +384,9 @@ public interface RedditAPI {
@Multipart
@POST("r/{subredditName}/api/upload_sr_img")
Call<String> uploadSrImg(@HeaderMap Map<String, String> headers,
- @Path("subredditName") String subredditName,
- @PartMap Map<String, RequestBody> params,
- @Part MultipartBody.Part file);
+ @Path("subredditName") String subredditName,
+ @PartMap Map<String, RequestBody> params,
+ @Part MultipartBody.Part file);
@GET("r/{subredditName}/about/edit?raw_json=1")
Call<String> getSubredditSetting(@HeaderMap Map<String, String> headers, @Path("subredditName") String subredditName);
@@ -324,5 +397,9 @@ public interface RedditAPI {
@FormUrlEncoded
@POST("/api/morechildren.json?raw_json=1&api_type=json")
+ Call<String> moreChildren(@Field("link_id") String linkId, @Field("children") String children, @Field("sort") SortType.Type sort);
+
+ @FormUrlEncoded
+ @POST("/api/morechildren.json?raw_json=1&api_type=json")
Call<String> moreChildrenOauth(@Field("link_id") String linkId, @Field("children") String children, @Field("sort") SortType.Type sort, @HeaderMap Map<String, String> headers);
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadSubredditIcon.java b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadSubredditIcon.java
index 8e29cdde..bfdb8098 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadSubredditIcon.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadSubredditIcon.java
@@ -2,11 +2,12 @@ package ml.docilealligator.infinityforreddit.asynctasks;
import android.os.Handler;
+import androidx.annotation.NonNull;
+
import java.util.ArrayList;
import java.util.concurrent.Executor;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
-import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.subreddit.FetchSubredditData;
import ml.docilealligator.infinityforreddit.subreddit.SubredditDao;
import ml.docilealligator.infinityforreddit.subreddit.SubredditData;
@@ -15,7 +16,8 @@ import retrofit2.Retrofit;
public class LoadSubredditIcon {
public static void loadSubredditIcon(Executor executor, Handler handler, RedditDataRoomDatabase redditDataRoomDatabase,
- Retrofit applicationOnlyOauthRetrofit, String subredditName,
+ String subredditName, String accessToken, @NonNull String accountName,
+ Retrofit oauthRetrofit, Retrofit retrofit,
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
executor.execute(() -> {
SubredditDao subredditDao = redditDataRoomDatabase.subredditDao();
@@ -24,22 +26,21 @@ public class LoadSubredditIcon {
String iconImageUrl = subredditDao.getSubredditData(subredditName).getIconUrl();
handler.post(() -> loadSubredditIconAsyncTaskListener.loadIconSuccess(iconImageUrl));
} else {
- handler.post(() -> FetchSubredditData.fetchSubredditData(applicationOnlyOauthRetrofit,
- subredditName, new FetchSubredditData.FetchSubredditDataListener() {
- @Override
- public void onFetchSubredditDataSuccess(SubredditData subredditData1, int nCurrentOnlineSubscribers) {
- ArrayList<SubredditData> singleSubredditDataList = new ArrayList<>();
- singleSubredditDataList.add(subredditData1);
- InsertSubscribedThings.insertSubscribedThings(executor, handler, redditDataRoomDatabase, Account.ANONYMOUS_ACCOUNT,
- null, null, singleSubredditDataList,
- () -> loadSubredditIconAsyncTaskListener.loadIconSuccess(subredditData1.getIconUrl()));
- }
-
- @Override
- public void onFetchSubredditDataFail(boolean isQuarantined) {
- loadSubredditIconAsyncTaskListener.loadIconSuccess(null);
- }
- }));
+ handler.post(() -> FetchSubredditData.fetchSubredditData(oauthRetrofit, retrofit, subredditName, accessToken, new FetchSubredditData.FetchSubredditDataListener() {
+ @Override
+ public void onFetchSubredditDataSuccess(SubredditData subredditData1, int nCurrentOnlineSubscribers) {
+ ArrayList<SubredditData> singleSubredditDataList = new ArrayList<>();
+ singleSubredditDataList.add(subredditData1);
+ InsertSubscribedThings.insertSubscribedThings(executor, handler, redditDataRoomDatabase, accountName,
+ null, null, singleSubredditDataList,
+ () -> loadSubredditIconAsyncTaskListener.loadIconSuccess(subredditData1.getIconUrl()));
+ }
+
+ @Override
+ public void onFetchSubredditDataFail(boolean isQuarantined) {
+ loadSubredditIconAsyncTaskListener.loadIconSuccess(null);
+ }
+ }));
}
});
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadUserData.java b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadUserData.java
index c96bb821..2406f8f7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadUserData.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/LoadUserData.java
@@ -13,14 +13,14 @@ import retrofit2.Retrofit;
public class LoadUserData {
public static void loadUserData(Executor executor, Handler handler, RedditDataRoomDatabase redditDataRoomDatabase, String userName,
- Retrofit applicationOnlyOauthRetrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) {
+ Retrofit retrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) {
executor.execute(() -> {
UserDao userDao = redditDataRoomDatabase.userDao();
if (userDao.getUserData(userName) != null) {
String iconImageUrl = userDao.getUserData(userName).getIconUrl();
handler.post(() -> loadUserDataAsyncTaskListener.loadUserDataSuccess(iconImageUrl));
} else {
- handler.post(() -> FetchUserData.fetchUserData(applicationOnlyOauthRetrofit, userName, new FetchUserData.FetchUserDataListener() {
+ handler.post(() -> FetchUserData.fetchUserData(retrofit, userName, new FetchUserData.FetchUserDataListener() {
@Override
public void onFetchUserDataSuccess(UserData userData, int inboxCount) {
InsertUserData.insertUserData(executor, handler, redditDataRoomDatabase, userData,
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/SwitchToAnonymousMode.java b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/SwitchToAnonymousMode.java
index 7a858064..bc15245d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/SwitchToAnonymousMode.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/asynctasks/SwitchToAnonymousMode.java
@@ -21,12 +21,9 @@ public class SwitchToAnonymousMode {
accountDao.markAllAccountsNonCurrent();
String redgifsAccessToken = currentAccountSharedPreferences.getString(SharedPreferencesUtils.REDGIFS_ACCESS_TOKEN, "");
- String applicationOnlyAccessToken = currentAccountSharedPreferences.getString(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN, null);
currentAccountSharedPreferences.edit().clear().apply();
currentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.REDGIFS_ACCESS_TOKEN, redgifsAccessToken).apply();
- currentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN, applicationOnlyAccessToken).apply();
- currentAccountSharedPreferences.edit().putString(SharedPreferencesUtils.ACCESS_TOKEN, applicationOnlyAccessToken).apply();
handler.post(switchToAnonymousAccountAsyncTaskListener::logoutSuccess);
});
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSource.java b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSource.java
index 81daa344..abd5e266 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSource.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSource.java
@@ -15,6 +15,7 @@ import java.util.ArrayList;
import ml.docilealligator.infinityforreddit.NetworkState;
import ml.docilealligator.infinityforreddit.SortType;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
import ml.docilealligator.infinityforreddit.post.PostPagingSource;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
@@ -29,7 +30,7 @@ public class CommentDataSource extends PageKeyedDataSource<String, Comment> {
private final Retrofit retrofit;
@Nullable
private final String accessToken;
- @Nullable
+ @NonNull
private final String accountName;
private final String username;
private final SortType sortType;
@@ -83,10 +84,15 @@ public class CommentDataSource extends PageKeyedDataSource<String, Comment> {
null, sortType.getType(), sortType.getTime(),
APIUtils.getOAuthHeader(accessToken));
} else {
- commentsCall = api.getUserCommentsOauth(APIUtils.getOAuthHeader(accessToken), username,
- null, sortType.getType(), sortType.getTime());
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ commentsCall = api.getUserComments(username, null, sortType.getType(),
+ sortType.getTime());
+ } else {
+ commentsCall = api.getUserCommentsOauth(APIUtils.getOAuthHeader(accessToken), username,
+ null, sortType.getType(), sortType.getTime());
+ }
}
- commentsCall.enqueue(new Callback<String>() {
+ commentsCall.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
if (response.isSuccessful()) {
@@ -142,10 +148,15 @@ public class CommentDataSource extends PageKeyedDataSource<String, Comment> {
commentsCall = api.getUserSavedCommentsOauth(username, PostPagingSource.USER_WHERE_SAVED, params.key,
sortType.getType(), sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
} else {
- commentsCall = api.getUserCommentsOauth(APIUtils.getOAuthHeader(accessToken),
- username, params.key, sortType.getType(), sortType.getTime());
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ commentsCall = api.getUserComments(username, params.key, sortType.getType(),
+ sortType.getTime());
+ } else {
+ commentsCall = api.getUserCommentsOauth(APIUtils.getOAuthHeader(accessToken),
+ username, params.key, sortType.getType(), sortType.getTime());
+ }
}
- commentsCall.enqueue(new Callback<String>() {
+ commentsCall.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
if (response.isSuccessful()) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSourceFactory.java b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSourceFactory.java
index 5af151a0..5ae58264 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSourceFactory.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentDataSourceFactory.java
@@ -5,14 +5,11 @@ import androidx.annotation.Nullable;
import androidx.lifecycle.MutableLiveData;
import androidx.paging.DataSource;
-import java.util.Locale;
-
import ml.docilealligator.infinityforreddit.SortType;
import retrofit2.Retrofit;
class CommentDataSourceFactory extends DataSource.Factory {
private final Retrofit retrofit;
- private final Locale locale;
private final String accessToken;
private final String accountName;
private final String username;
@@ -22,11 +19,10 @@ class CommentDataSourceFactory extends DataSource.Factory {
private CommentDataSource commentDataSource;
private final MutableLiveData<CommentDataSource> commentDataSourceLiveData;
- CommentDataSourceFactory(Retrofit retrofit, Locale locale, @Nullable String accessToken, @NonNull String accountName,
+ CommentDataSourceFactory(Retrofit retrofit, @Nullable String accessToken, @NonNull String accountName,
String username, SortType sortType,
boolean areSavedComments) {
this.retrofit = retrofit;
- this.locale = locale;
this.accessToken = accessToken;
this.accountName = accountName;
this.username = username;
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentViewModel.java b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentViewModel.java
index 17574d68..df291cc6 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentViewModel.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/CommentViewModel.java
@@ -10,8 +10,6 @@ import androidx.lifecycle.ViewModelProvider;
import androidx.paging.LivePagedListBuilder;
import androidx.paging.PagedList;
-import java.util.Locale;
-
import ml.docilealligator.infinityforreddit.NetworkState;
import ml.docilealligator.infinityforreddit.SortType;
import retrofit2.Retrofit;
@@ -24,9 +22,9 @@ public class CommentViewModel extends ViewModel {
private final LiveData<PagedList<Comment>> comments;
private final MutableLiveData<SortType> sortTypeLiveData;
- public CommentViewModel(Retrofit retrofit, Locale locale, @Nullable String accessToken, @NonNull String accountName,
+ public CommentViewModel(Retrofit retrofit, @Nullable String accessToken, @NonNull String accountName,
String username, SortType sortType, boolean areSavedComments) {
- commentDataSourceFactory = new CommentDataSourceFactory(retrofit, locale, accessToken, accountName,
+ commentDataSourceFactory = new CommentDataSourceFactory(retrofit, accessToken, accountName,
username, sortType, areSavedComments);
initialLoadingState = Transformations.switchMap(commentDataSourceFactory.getCommentDataSourceLiveData(),
@@ -82,17 +80,15 @@ public class CommentViewModel extends ViewModel {
public static class Factory extends ViewModelProvider.NewInstanceFactory {
private final Retrofit retrofit;
- private final Locale locale;
private final String accessToken;
private final String accountName;
private final String username;
private final SortType sortType;
private final boolean areSavedComments;
- public Factory(Retrofit retrofit, Locale locale, @Nullable String accessToken, @NonNull String accountName, String username,
+ public Factory(Retrofit retrofit, @Nullable String accessToken, @NonNull String accountName, String username,
SortType sortType, boolean areSavedComments) {
this.retrofit = retrofit;
- this.locale = locale;
this.accessToken = accessToken;
this.accountName = accountName;
this.username = username;
@@ -103,7 +99,7 @@ public class CommentViewModel extends ViewModel {
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
- return (T) new CommentViewModel(retrofit, locale, accessToken, accountName, username,
+ return (T) new CommentViewModel(retrofit, accessToken, accountName, username,
sortType, areSavedComments);
}
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/FetchComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/FetchComment.java
index 558f1b90..0c6fce12 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/comment/FetchComment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/comment/FetchComment.java
@@ -9,6 +9,7 @@ import java.util.ArrayList;
import java.util.concurrent.Executor;
import ml.docilealligator.infinityforreddit.SortType;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
import ml.docilealligator.infinityforreddit.commentfilter.CommentFilter;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
@@ -19,17 +20,25 @@ import retrofit2.Retrofit;
public class FetchComment {
public static void fetchComments(Executor executor, Handler handler, Retrofit retrofit,
- @Nullable String accessToken, String article,
+ @Nullable String accessToken, @NonNull String accountName, String article,
String commentId, SortType.Type sortType, String contextNumber,
boolean expandChildren, CommentFilter commentFilter,
FetchCommentListener fetchCommentListener) {
RedditAPI api = retrofit.create(RedditAPI.class);
Call<String> comments;
- if (commentId == null) {
- comments = api.getPostAndCommentsByIdOauth(article, sortType, APIUtils.getOAuthHeader(accessToken));
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ if (commentId == null) {
+ comments = api.getPostAndCommentsById(article, sortType);
+ } else {
+ comments = api.getPostAndCommentsSingleThreadById(article, commentId, sortType, contextNumber);
+ }
} else {
- comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, sortType, contextNumber,
- APIUtils.getOAuthHeader(accessToken));
+ if (commentId == null) {
+ comments = api.getPostAndCommentsByIdOauth(article, sortType, APIUtils.getOAuthHeader(accessToken));
+ } else {
+ comments = api.getPostAndCommentsSingleThreadByIdOauth(article, commentId, sortType, contextNumber,
+ APIUtils.getOAuthHeader(accessToken));
+ }
}
comments.enqueue(new Callback<>() {
@@ -65,7 +74,7 @@ public class FetchComment {
}
public static void fetchMoreComment(Executor executor, Handler handler, Retrofit retrofit,
- @Nullable String accessToken, String accountName,
+ @Nullable String accessToken, @NonNull String accountName,
ArrayList<String> allChildren,
boolean expandChildren, String postFullName,
SortType.Type sortType,
@@ -81,8 +90,13 @@ public class FetchComment {
}
RedditAPI api = retrofit.create(RedditAPI.class);
- Call<String> moreComments = api.moreChildrenOauth(postFullName, childrenIds,
- sortType, APIUtils.getOAuthHeader(accessToken));
+ Call<String> moreComments;
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ moreComments = api.moreChildren(postFullName, childrenIds, sortType);
+ } else {
+ moreComments = api.moreChildrenOauth(postFullName, childrenIds,
+ sortType, APIUtils.getOAuthHeader(accessToken));
+ }
moreComments.enqueue(new Callback<>() {
@Override
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/CommentsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/CommentsListingFragment.java
index e0bfd244..4c3a2f85 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/CommentsListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/CommentsListingFragment.java
@@ -85,6 +85,9 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
TextView mFetchCommentInfoTextView;
CommentViewModel mCommentViewModel;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -301,9 +304,14 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
CommentViewModel.Factory factory;
- factory = new CommentViewModel.Factory(mOauthRetrofit,
- resources.getConfiguration().locale, mAccessToken, mAccountName, username, sortType,
- getArguments().getBoolean(EXTRA_ARE_SAVED_COMMENTS));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ factory = new CommentViewModel.Factory(mRetrofit, null, mAccountName, username, sortType,
+ getArguments().getBoolean(EXTRA_ARE_SAVED_COMMENTS));
+ } else {
+ factory = new CommentViewModel.Factory(mOauthRetrofit,
+ mAccessToken, mAccountName, username, sortType,
+ getArguments().getBoolean(EXTRA_ARE_SAVED_COMMENTS));
+ }
mCommentViewModel = new ViewModelProvider(this, factory).get(CommentViewModel.class);
mCommentViewModel.getComments().observe(getViewLifecycleOwner(), comments -> mAdapter.submitList(comments));
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/HistoryPostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/HistoryPostFragment.java
index 988c9b8f..df26b5d6 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/HistoryPostFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/HistoryPostFragment.java
@@ -70,6 +70,7 @@ import ml.docilealligator.infinityforreddit.Infinity;
import ml.docilealligator.infinityforreddit.R;
import ml.docilealligator.infinityforreddit.RecyclerViewContentScrollingInterface;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.activities.BaseActivity;
import ml.docilealligator.infinityforreddit.adapters.HistoryPostRecyclerViewAdapter;
import ml.docilealligator.infinityforreddit.adapters.Paging3LoadingStateAdapter;
@@ -157,12 +158,12 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
TextView mFetchPostInfoTextView;
HistoryPostViewModel mHistoryPostViewModel;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("redgifs")
Retrofit mRedgifsRetrofit;
@Inject
@@ -651,11 +652,11 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
private void initializeAndBindPostViewModel(String accessToken) {
if (postType == HistoryPostPagingSource.TYPE_READ_POSTS) {
mHistoryPostViewModel = new ViewModelProvider(HistoryPostFragment.this, new HistoryPostViewModel.Factory(mExecutor,
- mOauthRetrofit, mRedditDataRoomDatabase, accessToken,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, mRedditDataRoomDatabase, accessToken,
accountName, mSharedPreferences, HistoryPostPagingSource.TYPE_READ_POSTS, postFilter)).get(HistoryPostViewModel.class);
} else {
mHistoryPostViewModel = new ViewModelProvider(HistoryPostFragment.this, new HistoryPostViewModel.Factory(mExecutor,
- mOauthRetrofit, mRedditDataRoomDatabase, accessToken,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, mRedditDataRoomDatabase, accessToken,
accountName, mSharedPreferences, HistoryPostPagingSource.TYPE_READ_POSTS, postFilter)).get(HistoryPostViewModel.class);
}
@@ -928,14 +929,14 @@ public class HistoryPostFragment extends Fragment implements FragmentCommunicato
} else {
if (isSubreddit) {
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
- mApplicationOnlyRetrofit, subredditOrUserName,
+ subredditOrUserName, accessToken, accountName, mOauthRetrofit, mRetrofit,
iconImageUrl -> {
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
});
} else {
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditOrUserName,
- mApplicationOnlyRetrofit, iconImageUrl -> {
+ mRetrofit, iconImageUrl -> {
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
});
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
index 034f5a90..3d9ac681 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/PostFragment.java
@@ -180,12 +180,12 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
TextView mFetchPostInfoTextView;
PostViewModel mPostViewModel;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("redgifs")
Retrofit mRedgifsRetrofit;
@Inject
@@ -1204,22 +1204,22 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
private void initializeAndBindPostViewModel(String accessToken) {
if (postType == PostPagingSource.TYPE_SEARCH) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, accessToken, accountName, mSharedPreferences,
mPostFeedScrolledPositionSharedPreferences, mPostHistorySharedPreferences, subredditName,
query, trendingSource, postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_SUBREDDIT) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
mPostHistorySharedPreferences, subredditName, postType, sortType, postFilter, readPosts))
.get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_MULTI_REDDIT) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
mPostHistorySharedPreferences, multiRedditPath, postType, sortType, postFilter, readPosts))
.get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_USER) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
+ accountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit, accessToken, accountName, mSharedPreferences, mPostFeedScrolledPositionSharedPreferences,
mPostHistorySharedPreferences, username, postType, sortType, postFilter, where, readPosts))
.get(PostViewModel.class);
} else {
@@ -1236,28 +1236,28 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
//For anonymous user
if (postType == PostPagingSource.TYPE_SEARCH) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences,
+ mRetrofit, null, accountName, mSharedPreferences,
mPostFeedScrolledPositionSharedPreferences, null, subredditName, query, trendingSource,
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_SUBREDDIT) {
mPostViewModel = new ViewModelProvider(this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences,
+ mRetrofit, null, accountName, mSharedPreferences,
mPostFeedScrolledPositionSharedPreferences, null, subredditName, postType, sortType,
postFilter, readPosts)).get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_MULTI_REDDIT) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences,
+ mRetrofit, null, accountName, mSharedPreferences,
mPostFeedScrolledPositionSharedPreferences, null, multiRedditPath,
postType, sortType, postFilter, readPosts)).get(PostViewModel.class);
} else if (postType == PostPagingSource.TYPE_USER) {
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, accountName, mSharedPreferences,
+ mRetrofit, null, accountName, mSharedPreferences,
mPostFeedScrolledPositionSharedPreferences, null, username, postType, sortType, postFilter,
where, readPosts)).get(PostViewModel.class);
} else {
//Anonymous Front Page
mPostViewModel = new ViewModelProvider(PostFragment.this, new PostViewModel.Factory(mExecutor,
- mOauthRetrofit, accessToken, mSharedPreferences, concatenatedSubredditNames, postType, sortType, postFilter))
+ mRetrofit, mSharedPreferences, concatenatedSubredditNames, postType, sortType, postFilter))
.get(PostViewModel.class);
}
@@ -1745,14 +1745,14 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
} else {
if (isSubreddit) {
LoadSubredditIcon.loadSubredditIcon(mExecutor, new Handler(), mRedditDataRoomDatabase,
- mApplicationOnlyRetrofit, subredditOrUserName,
+ subredditOrUserName, accessToken, accountName, mOauthRetrofit, mRetrofit,
iconImageUrl -> {
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
});
} else {
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase, subredditOrUserName,
- mApplicationOnlyRetrofit, iconImageUrl -> {
+ mRetrofit, iconImageUrl -> {
subredditOrUserIcons.put(subredditOrUserName, iconImageUrl);
loadIconListener.loadIconSuccess(subredditOrUserName, iconImageUrl);
});
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SidebarFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SidebarFragment.java
index c56f7521..a8298a92 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SidebarFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SidebarFragment.java
@@ -71,6 +71,9 @@ public class SidebarFragment extends Fragment {
@BindView(R.id.markdown_recycler_view_sidebar_fragment)
RecyclerView recyclerView;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
@@ -243,7 +246,7 @@ public class SidebarFragment extends Fragment {
public void fetchSubredditData() {
swipeRefreshLayout.setRefreshing(true);
- FetchSubredditData.fetchSubredditData(mOauthRetrofit, subredditName, mAccessToken, new FetchSubredditData.FetchSubredditDataListener() {
+ FetchSubredditData.fetchSubredditData(mOauthRetrofit, mRetrofit, subredditName, mAccessToken, new FetchSubredditData.FetchSubredditDataListener() {
@Override
public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
swipeRefreshLayout.setRefreshing(false);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SubredditListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SubredditListingFragment.java
index dad3a4b4..0cf8b4cb 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SubredditListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/SubredditListingFragment.java
@@ -77,12 +77,12 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun
TextView mFetchSubredditListingInfoTextView;
SubredditListingViewModel mSubredditListingViewModel;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -143,7 +143,7 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun
sortType = new SortType(SortType.Type.valueOf(sort.toUpperCase()));
boolean nsfw = !mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_NSFW_FOREVER, false) && mNsfwAndSpoilerSharedPreferences.getBoolean((accountName.equals(Account.ANONYMOUS_ACCOUNT) ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
- mAdapter = new SubredditListingRecyclerViewAdapter(mActivity, mExecutor, mOauthRetrofit, mApplicationOnlyOauthRetrofit,
+ mAdapter = new SubredditListingRecyclerViewAdapter(mActivity, mExecutor, mOauthRetrofit, mRetrofit,
mCustomThemeWrapper, accessToken, accountName,
mRedditDataRoomDatabase, getArguments().getBoolean(EXTRA_IS_MULTI_SELECTION, false),
new SubredditListingRecyclerViewAdapter.Callback() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/UserListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/UserListingFragment.java
index 44c472e1..e0122c63 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/UserListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/UserListingFragment.java
@@ -77,12 +77,12 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
TextView mFetchUserListingInfoTextView;
UserListingViewModel mUserListingViewModel;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyOauthRetrofit;
- @Inject
RedditDataRoomDatabase mRedditDataRoomDatabase;
@Inject
@Named("default")
@@ -143,7 +143,7 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
sortType = new SortType(SortType.Type.valueOf(sort.toUpperCase()));
boolean nsfw = !mSharedPreferences.getBoolean(SharedPreferencesUtils.DISABLE_NSFW_FOREVER, false) && mNsfwAndSpoilerSharedPreferences.getBoolean((accountName.equals(Account.ANONYMOUS_ACCOUNT) ? "" : accountName) + SharedPreferencesUtils.NSFW_BASE, false);
- mAdapter = new UserListingRecyclerViewAdapter(mActivity, mExecutor, mOauthRetrofit, mApplicationOnlyOauthRetrofit,
+ mAdapter = new UserListingRecyclerViewAdapter(mActivity, mExecutor, mOauthRetrofit, mRetrofit,
mCustomThemeWrapper, accessToken, accountName, mRedditDataRoomDatabase,
getArguments().getBoolean(EXTRA_IS_MULTI_SELECTION, false),
new UserListingRecyclerViewAdapter.Callback() {
@@ -179,7 +179,7 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
});
}
- UserListingViewModel.Factory factory = new UserListingViewModel.Factory(mApplicationOnlyOauthRetrofit, mQuery,
+ UserListingViewModel.Factory factory = new UserListingViewModel.Factory(mRetrofit, mQuery,
sortType, nsfw);
mUserListingViewModel = new ViewModelProvider(this, factory).get(UserListingViewModel.class);
mUserListingViewModel.getUsers().observe(getViewLifecycleOwner(), UserData -> mAdapter.submitList(UserData));
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java
index 4a712ee0..c7dff78d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/fragments/ViewPostDetailFragment.java
@@ -151,12 +151,12 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
@Named("reveddit")
Retrofit revedditRetrofit;
@Inject
+ @Named("no_oauth")
+ Retrofit mRetrofit;
+ @Inject
@Named("oauth")
Retrofit mOauthRetrofit;
@Inject
- @Named("application_only_oauth")
- Retrofit mApplicationOnlyRetrofit;
- @Inject
@Named("redgifs")
Retrofit mRedgifsRetrofit;
@Inject
@@ -594,13 +594,13 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
setupMenu();
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
- this, mExecutor, mCustomThemeWrapper, mOauthRetrofit, mApplicationOnlyRetrofit,
+ this, mExecutor, mCustomThemeWrapper, mOauthRetrofit, mRetrofit,
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, mOauthRetrofit,
+ this, mCustomThemeWrapper, mExecutor, mRetrofit, mOauthRetrofit,
mAccessToken, mAccountName, mPost, mLocale, mSingleCommentId,
isSingleCommentThreadMode, mSharedPreferences, mNsfwAndSpoilerSharedPreferences,
new CommentsRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() {
@@ -904,7 +904,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
loadIconListener.loadIconSuccess(authorName, activity.authorIcons.get(authorName));
} else {
LoadUserData.loadUserData(mExecutor, new Handler(), mRedditDataRoomDatabase, authorName,
- mApplicationOnlyRetrofit, iconImageUrl -> {
+ mRetrofit, iconImageUrl -> {
activity.authorIcons.put(authorName, iconImageUrl);
loadIconListener.loadIconSuccess(authorName, iconImageUrl);
});
@@ -1251,12 +1251,22 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
mGlide.clear(mFetchPostInfoImageView);
Call<String> postAndComments;
- if (isSingleCommentThreadMode && mSingleCommentId != null) {
- postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadByIdOauth(subredditId,
- mSingleCommentId, sortType, mContextNumber, APIUtils.getOAuthHeader(mAccessToken));
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ if (isSingleCommentThreadMode && mSingleCommentId != null) {
+ postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadById(
+ subredditId, mSingleCommentId, sortType, mContextNumber);
+ } else {
+ postAndComments = mRetrofit.create(RedditAPI.class).getPostAndCommentsById(subredditId,
+ sortType);
+ }
} else {
- postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsByIdOauth(subredditId,
- sortType, APIUtils.getOAuthHeader(mAccessToken));
+ if (isSingleCommentThreadMode && mSingleCommentId != null) {
+ postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsSingleThreadByIdOauth(subredditId,
+ mSingleCommentId, sortType, mContextNumber, APIUtils.getOAuthHeader(mAccessToken));
+ } else {
+ postAndComments = mOauthRetrofit.create(RedditAPI.class).getPostAndCommentsByIdOauth(subredditId,
+ sortType, APIUtils.getOAuthHeader(mAccessToken));
+ }
}
postAndComments.enqueue(new Callback<>() {
@Override
@@ -1277,7 +1287,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
mPostAdapter = new PostDetailRecyclerViewAdapter(activity,
ViewPostDetailFragment.this, mExecutor, mCustomThemeWrapper,
- mOauthRetrofit, mApplicationOnlyRetrofit, mRedgifsRetrofit,
+ mOauthRetrofit, mRetrofit, mRedgifsRetrofit,
mStreamableApiProvider, mRedditDataRoomDatabase, mGlide, mSeparatePostAndComments,
mAccessToken, mAccountName, mPost, mLocale, mSharedPreferences,
mCurrentAccountSharedPreferences, mNsfwAndSpoilerSharedPreferences,
@@ -1286,7 +1296,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
mCommentsAdapter = new CommentsRecyclerViewAdapter(activity,
ViewPostDetailFragment.this, mCustomThemeWrapper, mExecutor,
- mOauthRetrofit, mAccessToken, mAccountName, mPost, mLocale,
+ mRetrofit, mOauthRetrofit, mAccessToken, mAccountName, mPost, mLocale,
mSingleCommentId, isSingleCommentThreadMode, mSharedPreferences,
mNsfwAndSpoilerSharedPreferences,
new CommentsRecyclerViewAdapter.CommentRecyclerViewAdapterCallback() {
@@ -1424,7 +1434,7 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
e.printStackTrace();
}
}
- FetchSubredditData.fetchSubredditData(mOauthRetrofit, mPost.getSubredditName(), mAccessToken,
+ FetchSubredditData.fetchSubredditData(mOauthRetrofit, mRetrofit, mPost.getSubredditName(), mAccessToken,
new FetchSubredditData.FetchSubredditDataListener() {
@Override
public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
@@ -1468,7 +1478,8 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
commentId = mSingleCommentId;
}
- FetchComment.fetchComments(mExecutor, new Handler(), mOauthRetrofit, mAccessToken, mPost.getId(), commentId, sortType,
+ Retrofit retrofit = mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit;
+ FetchComment.fetchComments(mExecutor, new Handler(), retrofit, mAccessToken, mAccountName, mPost.getId(), commentId, sortType,
mContextNumber, mExpandChildren, mCommentFilter, new FetchComment.FetchCommentListener() {
@Override
public void onFetchCommentSuccess(ArrayList<Comment> expandedComments,
@@ -1554,7 +1565,8 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
isLoadingMoreChildren = true;
- FetchComment.fetchMoreComment(mExecutor, new Handler(), mOauthRetrofit, mAccessToken, mAccountName,
+ Retrofit retrofit = mAccountName.equals(Account.ANONYMOUS_ACCOUNT) ? mRetrofit : mOauthRetrofit;
+ FetchComment.fetchMoreComment(mExecutor, new Handler(), retrofit, mAccessToken, mAccountName,
children, mExpandChildren, mPost.getFullName(), sortType, new FetchComment.FetchMoreCommentListener() {
@Override
public void onFetchMoreCommentSuccess(ArrayList<Comment> topLevelComments,
@@ -1588,7 +1600,13 @@ public class ViewPostDetailFragment extends Fragment implements FragmentCommunic
}
if (fetchPost) {
- FetchPost.fetchPost(mExecutor, new Handler(), mOauthRetrofit, mPost.getId(), mAccessToken,
+ Retrofit retrofit;
+ if (mAccountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ retrofit = mRetrofit;
+ } else {
+ retrofit = mOauthRetrofit;
+ }
+ FetchPost.fetchPost(mExecutor, new Handler(), retrofit, mPost.getId(), mAccessToken, mAccountName,
new FetchPost.FetchPostListener() {
@Override
public void fetchPostSuccess(Post post) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/FetchPost.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/FetchPost.java
index a1579d86..57895e17 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/FetchPost.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/FetchPost.java
@@ -5,9 +5,9 @@ import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
-import java.util.HashMap;
import java.util.concurrent.Executor;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
import ml.docilealligator.infinityforreddit.utils.APIUtils;
import retrofit2.Call;
@@ -16,11 +16,15 @@ import retrofit2.Response;
import retrofit2.Retrofit;
public class FetchPost {
- public static void fetchPost(Executor executor, Handler handler, Retrofit oauthRetrofit, String id,
- @Nullable String accessToken,
+ public static void fetchPost(Executor executor, Handler handler, Retrofit retrofit, String id, @Nullable String accessToken,
+ @NonNull String accountName,
FetchPostListener fetchPostListener) {
- Call<String> postCall = oauthRetrofit.create(RedditAPI.class).getPostOauth(id,
- accessToken == null ? new HashMap<>() : APIUtils.getOAuthHeader(accessToken));
+ Call<String> postCall;
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ postCall = retrofit.create(RedditAPI.class).getPost(id);
+ } else {
+ postCall = retrofit.create(RedditAPI.class).getPostOauth(id, APIUtils.getOAuthHeader(accessToken));
+ }
postCall.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
@@ -48,13 +52,13 @@ public class FetchPost {
});
}
- public static void fetchRandomPost(Executor executor, Handler handler, Retrofit applicationOnlyOauthRetrofit,
- boolean isNSFW, FetchRandomPostListener fetchRandomPostListener) {
+ public static void fetchRandomPost(Executor executor, Handler handler, Retrofit retrofit, boolean isNSFW,
+ FetchRandomPostListener fetchRandomPostListener) {
Call<String> call;
if (isNSFW) {
- call = applicationOnlyOauthRetrofit.create(RedditAPI.class).getRandomNSFWPostOauth();
+ call = retrofit.create(RedditAPI.class).getRandomNSFWPost();
} else {
- call = applicationOnlyOauthRetrofit.create(RedditAPI.class).getRandomPostOauth();
+ call = retrofit.create(RedditAPI.class).getRandomPost();
}
call.enqueue(new Callback<>() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/HistoryPostPagingSource.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/HistoryPostPagingSource.java
index 37f461e0..360496db 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/HistoryPostPagingSource.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/HistoryPostPagingSource.java
@@ -17,6 +17,7 @@ import java.util.List;
import java.util.concurrent.Executor;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
+import ml.docilealligator.infinityforreddit.account.Account;
import ml.docilealligator.infinityforreddit.apis.RedditAPI;
import ml.docilealligator.infinityforreddit.postfilter.PostFilter;
import ml.docilealligator.infinityforreddit.readpost.ReadPost;
@@ -80,7 +81,12 @@ public class HistoryPostPagingSource extends ListenableFuturePagingSource<String
ids.deleteCharAt(ids.length() - 1);
}
- Call<String> historyPosts = retrofit.create(RedditAPI.class).getInfoOauth(ids.toString(), APIUtils.getOAuthHeader(accessToken));
+ Call<String> historyPosts;
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ historyPosts = retrofit.create(RedditAPI.class).getInfo(ids.toString());
+ } else {
+ historyPosts = retrofit.create(RedditAPI.class).getInfoOauth(ids.toString(), APIUtils.getOAuthHeader(accessToken));
+ }
try {
Response<String> response = historyPosts.execute();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostPagingSource.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostPagingSource.java
index 70752e67..cc2519cf 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostPagingSource.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostPagingSource.java
@@ -233,8 +233,13 @@ public class PostPagingSource extends ListenableFuturePagingSource<String, Post>
}
private ListenableFuture<LoadResult<String, Post>> loadSubredditPosts(@NonNull LoadParams<String> loadParams, RedditAPI api) {
- ListenableFuture<Response<String>> subredditPost = api.getSubredditBestPostsOauthListenableFuture(subredditOrUserName, sortType.getType(),
- sortType.getTime(), loadParams.getKey(), APIUtils.getOAuthHeader(accessToken));
+ ListenableFuture<Response<String>> subredditPost;
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ subredditPost = api.getSubredditBestPostsListenableFuture(subredditOrUserName, sortType.getType(), sortType.getTime(), loadParams.getKey());
+ } else {
+ subredditPost = api.getSubredditBestPostsOauthListenableFuture(subredditOrUserName, sortType.getType(),
+ sortType.getTime(), loadParams.getKey(), APIUtils.getOAuthHeader(accessToken));
+ }
ListenableFuture<LoadResult<String, Post>> pageFuture = Futures.transform(subredditPost, this::transformData, executor);
@@ -249,11 +254,11 @@ public class PostPagingSource extends ListenableFuturePagingSource<String, Post>
private ListenableFuture<LoadResult<String, Post>> loadUserPosts(@NonNull LoadParams<String> loadParams, RedditAPI api) {
ListenableFuture<Response<String>> userPosts;
if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
- userPosts = api.getUserPostsOauthListenableFuture(subredditOrUserName, USER_WHERE_SUBMITTED,
- loadParams.getKey(), sortType.getType(), sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
+ userPosts = api.getUserPostsListenableFuture(subredditOrUserName, loadParams.getKey(), sortType.getType(),
+ sortType.getTime());
} else {
- userPosts = api.getUserPostsOauthListenableFuture(subredditOrUserName, userWhere, loadParams.getKey(),
- sortType.getType(), sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
+ userPosts = api.getUserPostsOauthListenableFuture(subredditOrUserName, userWhere, loadParams.getKey(), sortType.getType(),
+ sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
}
ListenableFuture<LoadResult<String, Post>> pageFuture = Futures.transform(userPosts, this::transformData, executor);
@@ -269,12 +274,22 @@ public class PostPagingSource extends ListenableFuturePagingSource<String, Post>
private ListenableFuture<LoadResult<String, Post>> loadSearchPosts(@NonNull LoadParams<String> loadParams, RedditAPI api) {
ListenableFuture<Response<String>> searchPosts;
if (subredditOrUserName == null) {
- searchPosts = api.searchPostsOauthListenableFuture(query, loadParams.getKey(), sortType.getType(),
- sortType.getTime(), trendingSource, APIUtils.getOAuthHeader(accessToken));
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ searchPosts = api.searchPostsListenableFuture(query, loadParams.getKey(), sortType.getType(), sortType.getTime(),
+ trendingSource);
+ } else {
+ searchPosts = api.searchPostsOauthListenableFuture(query, loadParams.getKey(), sortType.getType(),
+ sortType.getTime(), trendingSource, APIUtils.getOAuthHeader(accessToken));
+ }
} else {
- searchPosts = api.searchPostsInSpecificSubredditOauthListenableFuture(subredditOrUserName, query,
- sortType.getType(), sortType.getTime(), loadParams.getKey(),
- APIUtils.getOAuthHeader(accessToken));
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ searchPosts = api.searchPostsInSpecificSubredditListenableFuture(subredditOrUserName, query,
+ sortType.getType(), sortType.getTime(), loadParams.getKey());
+ } else {
+ searchPosts = api.searchPostsInSpecificSubredditOauthListenableFuture(subredditOrUserName, query,
+ sortType.getType(), sortType.getTime(), loadParams.getKey(),
+ APIUtils.getOAuthHeader(accessToken));
+ }
}
ListenableFuture<LoadResult<String, Post>> pageFuture = Futures.transform(searchPosts, this::transformData, executor);
@@ -288,8 +303,13 @@ public class PostPagingSource extends ListenableFuturePagingSource<String, Post>
}
private ListenableFuture<LoadResult<String, Post>> loadMultiRedditPosts(@NonNull LoadParams<String> loadParams, RedditAPI api) {
- ListenableFuture<Response<String>> multiRedditPosts = api.getMultiRedditPostsOauthListenableFuture(multiRedditPath, loadParams.getKey(),
- sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
+ ListenableFuture<Response<String>> multiRedditPosts;
+ if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
+ multiRedditPosts = api.getMultiRedditPostsListenableFuture(multiRedditPath, loadParams.getKey(), sortType.getTime());
+ } else {
+ multiRedditPosts = api.getMultiRedditPostsOauthListenableFuture(multiRedditPath, loadParams.getKey(),
+ sortType.getTime(), APIUtils.getOAuthHeader(accessToken));
+ }
ListenableFuture<LoadResult<String, Post>> pageFuture = Futures.transform(multiRedditPosts, this::transformData, executor);
@@ -302,9 +322,7 @@ public class PostPagingSource extends ListenableFuturePagingSource<String, Post>
}
private ListenableFuture<LoadResult<String, Post>> loadAnonymousHomePosts(@NonNull LoadParams<String> loadParams, RedditAPI api) {
- ListenableFuture<Response<String>> anonymousHomePosts;
- anonymousHomePosts = api.getSubredditBestPostsOauthListenableFuture(subredditOrUserName,
- sortType.getType(), sortType.getTime(), loadParams.getKey(), APIUtils.getOAuthHeader(accessToken));
+ ListenableFuture<Response<String>> anonymousHomePosts = api.getSubredditBestPostsListenableFuture(subredditOrUserName, sortType.getType(), sortType.getTime(), loadParams.getKey());
ListenableFuture<LoadResult<String, Post>> pageFuture = Futures.transform(anonymousHomePosts, this::transformData, executor);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java
index dfdaaa62..65f8314c 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/PostViewModel.java
@@ -270,7 +270,7 @@ public class PostViewModel extends ViewModel {
public static class Factory extends ViewModelProvider.NewInstanceFactory {
private final Executor executor;
private final Retrofit retrofit;
- private final String accessToken;
+ private String accessToken;
private String accountName;
private final SharedPreferences sharedPreferences;
private SharedPreferences postFeedScrolledPositionSharedPreferences;
@@ -360,11 +360,10 @@ public class PostViewModel extends ViewModel {
}
//Anonymous Front Page
- public Factory(Executor executor, Retrofit retrofit, String accessToken, SharedPreferences sharedPreferences,
+ public Factory(Executor executor, Retrofit retrofit, SharedPreferences sharedPreferences,
String concatenatedSubredditNames, int postType, SortType sortType, PostFilter postFilter) {
this.executor = executor;
this.retrofit = retrofit;
- this.accessToken = accessToken;
this.sharedPreferences = sharedPreferences;
this.name = concatenatedSubredditNames;
this.postType = postType;
@@ -388,7 +387,7 @@ public class PostViewModel extends ViewModel {
postFeedScrolledPositionSharedPreferences, postHistorySharedPreferences, name,
postType, sortType, postFilter, readPostList);
} else if (postType == PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE) {
- return (T) new PostViewModel(executor, retrofit, accessToken, null, sharedPreferences,
+ return (T) new PostViewModel(executor, retrofit, null, null, sharedPreferences,
null, null, name, postType, sortType,
postFilter, null);
} else {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/AdvancedPreferenceFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/AdvancedPreferenceFragment.java
index 25a3bd82..a430cb14 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/settings/AdvancedPreferenceFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/settings/AdvancedPreferenceFragment.java
@@ -51,6 +51,9 @@ public class AdvancedPreferenceFragment extends CustomFontPreferenceFragmentComp
@Named("default")
SharedPreferences mSharedPreferences;
@Inject
+ @Named("current_account")
+ SharedPreferences mCurrentAccountSharedPreferences;
+ @Inject
@Named("sort_type")
SharedPreferences mSortTypeSharedPreferences;
@Inject
@@ -242,9 +245,13 @@ public class AdvancedPreferenceFragment extends CustomFontPreferenceFragmentComp
postLayoutEditor.remove(SharedPreferencesUtils.POST_LAYOUT_ALL_POST_LEGACY);
postLayoutEditor.remove(SharedPreferencesUtils.POST_LAYOUT_POPULAR_POST_LEGACY);
+ SharedPreferences.Editor currentAccountEditor = mCurrentAccountSharedPreferences.edit();
+ currentAccountEditor.remove(SharedPreferencesUtils.APPLICATION_ONLY_ACCESS_TOKEN_LEGACY);
+
editor.apply();
sortTypeEditor.apply();
postLayoutEditor.apply();
+ currentAccountEditor.apply();
Toast.makeText(activity, R.string.delete_all_legacy_settings_success, Toast.LENGTH_SHORT).show();
})
.setNegativeButton(R.string.no, null)
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/FetchSubredditData.java b/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/FetchSubredditData.java
index a6480ead..e19e5492 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/FetchSubredditData.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/FetchSubredditData.java
@@ -1,9 +1,10 @@
package ml.docilealligator.infinityforreddit.subreddit;
+import android.text.TextUtils;
+
import androidx.annotation.NonNull;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Map;
import ml.docilealligator.infinityforreddit.SortType;
@@ -15,41 +16,16 @@ import retrofit2.Response;
import retrofit2.Retrofit;
public class FetchSubredditData {
- public static void fetchSubredditData(Retrofit oauthRetrofit, String subredditName, String accessToken,
- final FetchSubredditDataListener fetchSubredditDataListener) {
- RedditAPI oauthApi = oauthRetrofit.create(RedditAPI.class);
- Call<String> subredditData = oauthApi.getSubredditDataOauth(subredditName, APIUtils.getOAuthHeader(accessToken));
- subredditData.enqueue(new Callback<>() {
- @Override
- public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
- if (response.isSuccessful()) {
- ParseSubredditData.parseSubredditData(response.body(), new ParseSubredditData.ParseSubredditDataListener() {
- @Override
- public void onParseSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
- fetchSubredditDataListener.onFetchSubredditDataSuccess(subredditData, nCurrentOnlineSubscribers);
- }
-
- @Override
- public void onParseSubredditDataFail() {
- fetchSubredditDataListener.onFetchSubredditDataFail(false);
- }
- });
- } else {
- fetchSubredditDataListener.onFetchSubredditDataFail(response.code() == 403);
- }
- }
-
- @Override
- public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
- fetchSubredditDataListener.onFetchSubredditDataFail(false);
- }
- });
- }
+ public static void fetchSubredditData(Retrofit oauthRetrofit, Retrofit retrofit, String subredditName, String accessToken, final FetchSubredditDataListener fetchSubredditDataListener) {
+ RedditAPI api = retrofit.create(RedditAPI.class);
- public static void fetchSubredditData(Retrofit applicationOnlyOauthRetrofit, String subredditName,
- final FetchSubredditDataListener fetchSubredditDataListener) {
- Call<String> subredditData = applicationOnlyOauthRetrofit.create(RedditAPI.class)
- .getSubredditDataOauth(subredditName, new HashMap<>());
+ Call<String> subredditData;
+ if (oauthRetrofit == null || TextUtils.isEmpty(accessToken)) {
+ subredditData = api.getSubredditData(subredditName);
+ } else {
+ RedditAPI oauthApi = oauthRetrofit.create(RedditAPI.class);
+ subredditData = oauthApi.getSubredditDataOauth(subredditName, APIUtils.getOAuthHeader(accessToken));
+ }
subredditData.enqueue(new Callback<>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/SubredditSubscription.java b/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/SubredditSubscription.java
index 31c327b1..e8073caf 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/SubredditSubscription.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/subreddit/SubredditSubscription.java
@@ -3,7 +3,6 @@ package ml.docilealligator.infinityforreddit.subreddit;
import android.os.Handler;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;
@@ -20,18 +19,18 @@ import retrofit2.Retrofit;
public class SubredditSubscription {
public static void subscribeToSubreddit(Executor executor, Handler handler, Retrofit oauthRetrofit,
- @Nullable String accessToken, String subredditName,
- @NonNull String accountName, RedditDataRoomDatabase redditDataRoomDatabase,
+ Retrofit retrofit, String accessToken, String subredditName,
+ String accountName, RedditDataRoomDatabase redditDataRoomDatabase,
SubredditSubscriptionListener subredditSubscriptionListener) {
- subredditSubscription(executor, handler, oauthRetrofit, accessToken, subredditName,
+ subredditSubscription(executor, handler, oauthRetrofit, retrofit, accessToken, subredditName,
accountName, "sub", redditDataRoomDatabase, subredditSubscriptionListener);
}
- public static void anonymousSubscribeToSubreddit(Executor executor, Handler handler, Retrofit applicationOnlyOauthRetrofit,
+ public static void anonymousSubscribeToSubreddit(Executor executor, Handler handler, Retrofit retrofit,
RedditDataRoomDatabase redditDataRoomDatabase,
String subredditName,
SubredditSubscriptionListener subredditSubscriptionListener) {
- FetchSubredditData.fetchSubredditData(applicationOnlyOauthRetrofit, subredditName, new FetchSubredditData.FetchSubredditDataListener() {
+ FetchSubredditData.fetchSubredditData(null, retrofit, subredditName, "", new FetchSubredditData.FetchSubredditDataListener() {
@Override
public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
insertSubscription(executor, handler, redditDataRoomDatabase,
@@ -46,10 +45,10 @@ public class SubredditSubscription {
}
public static void unsubscribeToSubreddit(Executor executor, Handler handler, Retrofit oauthRetrofit,
- @Nullable String accessToken, String subredditName, @NonNull String accountName,
+ String accessToken, String subredditName, String accountName,
RedditDataRoomDatabase redditDataRoomDatabase,
SubredditSubscriptionListener subredditSubscriptionListener) {
- subredditSubscription(executor, handler, oauthRetrofit, accessToken, subredditName,
+ subredditSubscription(executor, handler, oauthRetrofit, null, accessToken, subredditName,
accountName, "unsub", redditDataRoomDatabase, subredditSubscriptionListener);
}
@@ -61,8 +60,8 @@ public class SubredditSubscription {
}
private static void subredditSubscription(Executor executor, Handler handler, Retrofit oauthRetrofit,
- @Nullable String accessToken, String subredditName,
- @NonNull String accountName, String action,
+ Retrofit retrofit, String accessToken, String subredditName,
+ String accountName, String action,
RedditDataRoomDatabase redditDataRoomDatabase,
SubredditSubscriptionListener subredditSubscriptionListener) {
RedditAPI api = oauthRetrofit.create(RedditAPI.class);
@@ -72,12 +71,12 @@ public class SubredditSubscription {
params.put(APIUtils.SR_NAME_KEY, subredditName);
Call<String> subredditSubscriptionCall = api.subredditSubscription(APIUtils.getOAuthHeader(accessToken), params);
- subredditSubscriptionCall.enqueue(new Callback<>() {
+ subredditSubscriptionCall.enqueue(new Callback<String>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
if (response.isSuccessful()) {
if (action.equals("sub")) {
- FetchSubredditData.fetchSubredditData(oauthRetrofit, subredditName, accessToken, new FetchSubredditData.FetchSubredditDataListener() {
+ FetchSubredditData.fetchSubredditData(oauthRetrofit, retrofit, subredditName, accessToken, new FetchSubredditData.FetchSubredditDataListener() {
@Override
public void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers) {
insertSubscription(executor, handler, redditDataRoomDatabase,
@@ -113,7 +112,7 @@ public class SubredditSubscription {
private static void insertSubscription(Executor executor, Handler handler,
RedditDataRoomDatabase redditDataRoomDatabase,
- SubredditData subredditData, @NonNull String accountName,
+ SubredditData subredditData, String accountName,
SubredditSubscriptionListener subredditSubscriptionListener) {
executor.execute(() -> {
SubscribedSubredditData subscribedSubredditData = new SubscribedSubredditData(subredditData.getId(), subredditData.getName(),
@@ -130,7 +129,7 @@ public class SubredditSubscription {
private static void removeSubscription(Executor executor, Handler handler,
RedditDataRoomDatabase redditDataRoomDatabase,
- String subredditName, @NonNull String accountName,
+ String subredditName, String accountName,
SubredditSubscriptionListener subredditSubscriptionListener) {
executor.execute(() -> {
if (accountName.equals(Account.ANONYMOUS_ACCOUNT)) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/FetchUserData.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/FetchUserData.java
index 7fab00f6..b2a69826 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/FetchUserData.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/FetchUserData.java
@@ -1,10 +1,8 @@
package ml.docilealligator.infinityforreddit.user;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import java.util.ArrayList;
-import java.util.HashMap;
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
import ml.docilealligator.infinityforreddit.SortType;
@@ -15,18 +13,17 @@ import retrofit2.Callback;
import retrofit2.Retrofit;
public class FetchUserData {
- public static void fetchUserData(Retrofit applicationOnlyOauthRetrofit, String userName,
- FetchUserDataListener fetchUserDataListener) {
- fetchUserData(null, applicationOnlyOauthRetrofit, null, userName, fetchUserDataListener);
+ public static void fetchUserData(Retrofit retrofit, String userName, FetchUserDataListener fetchUserDataListener) {
+ fetchUserData(null, retrofit, null, userName, fetchUserDataListener);
}
- public static void fetchUserData(@Nullable RedditDataRoomDatabase redditDataRoomDatabase, Retrofit retrofit,
+ public static void fetchUserData(RedditDataRoomDatabase redditDataRoomDatabase, Retrofit retrofit,
String accessToken, String userName, FetchUserDataListener fetchUserDataListener) {
RedditAPI api = retrofit.create(RedditAPI.class);
Call<String> userInfo;
- if (accessToken == null) {
- userInfo = api.getUserDataOauth(new HashMap<>(), userName);
+ if (redditDataRoomDatabase == null) {
+ userInfo = api.getUserData(userName);
} else {
userInfo = api.getUserDataOauth(APIUtils.getOAuthHeader(accessToken), userName);
}
@@ -57,9 +54,9 @@ public class FetchUserData {
});
}
- public static void fetchUserListingData(Retrofit applicationOnlyOauthRetrofit, String query, String after, SortType.Type sortType, boolean nsfw,
+ public static void fetchUserListingData(Retrofit retrofit, String query, String after, SortType.Type sortType, boolean nsfw,
FetchUserListingDataListener fetchUserListingDataListener) {
- RedditAPI api = applicationOnlyOauthRetrofit.create(RedditAPI.class);
+ RedditAPI api = retrofit.create(RedditAPI.class);
Call<String> userInfo = api.searchUsers(query, after, sortType, nsfw ? 1 : 0);
userInfo.enqueue(new Callback<>() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserFollowing.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserFollowing.java
index faac787d..260b0222 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserFollowing.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserFollowing.java
@@ -21,18 +21,18 @@ import retrofit2.Callback;
import retrofit2.Retrofit;
public class UserFollowing {
- public static void followUser(Retrofit oauthRetrofit, Retrofit applicationOnlyOauthRetrofit,
+ public static void followUser(Retrofit oauthRetrofit, Retrofit retrofit,
@Nullable String accessToken, String username, @NonNull String accountName,
RedditDataRoomDatabase redditDataRoomDatabase,
UserFollowingListener userFollowingListener) {
- userFollowing(oauthRetrofit, applicationOnlyOauthRetrofit, accessToken, username, accountName, "sub",
+ userFollowing(oauthRetrofit, retrofit, accessToken, username, accountName, "sub",
redditDataRoomDatabase.subscribedUserDao(), userFollowingListener);
}
- public static void anonymousFollowUser(Executor executor, Handler handler, Retrofit applicationOnlyOauthRetrofit,
- String username, RedditDataRoomDatabase redditDataRoomDatabase,
+ public static void anonymousFollowUser(Executor executor, Handler handler, Retrofit retrofit, String username,
+ RedditDataRoomDatabase redditDataRoomDatabase,
UserFollowingListener userFollowingListener) {
- FetchUserData.fetchUserData(applicationOnlyOauthRetrofit, username, new FetchUserData.FetchUserDataListener() {
+ FetchUserData.fetchUserData(retrofit, username, new FetchUserData.FetchUserDataListener() {
@Override
public void onFetchUserDataSuccess(UserData userData, int inboxCount) {
executor.execute(() -> {
@@ -53,17 +53,17 @@ public class UserFollowing {
});
}
- public static void unfollowUser(Retrofit oauthRetrofit, Retrofit applicationOnlyOauthRetrofit,
+ public static void unfollowUser(Retrofit oauthRetrofit, Retrofit retrofit,
@Nullable String accessToken, String username, @NonNull String accountName,
RedditDataRoomDatabase redditDataRoomDatabase,
UserFollowingListener userFollowingListener) {
- userFollowing(oauthRetrofit, applicationOnlyOauthRetrofit, accessToken, username, accountName, "unsub",
+ userFollowing(oauthRetrofit, retrofit, accessToken, username, accountName, "unsub",
redditDataRoomDatabase.subscribedUserDao(), userFollowingListener);
}
public static void anonymousUnfollowUser(Executor executor, Handler handler, String username,
- RedditDataRoomDatabase redditDataRoomDatabase,
- UserFollowingListener userFollowingListener) {
+ RedditDataRoomDatabase redditDataRoomDatabase,
+ UserFollowingListener userFollowingListener) {
executor.execute(() -> {
redditDataRoomDatabase.subscribedUserDao().deleteSubscribedUser(username, Account.ANONYMOUS_ACCOUNT);
@@ -71,7 +71,7 @@ public class UserFollowing {
});
}
- private static void userFollowing(Retrofit oauthRetrofit, Retrofit applicationOnlyOauthRetrofit, @Nullable String accessToken,
+ private static void userFollowing(Retrofit oauthRetrofit, Retrofit retrofit, @Nullable String accessToken,
String username, @NonNull String accountName, String action, SubscribedUserDao subscribedUserDao,
UserFollowingListener userFollowingListener) {
RedditAPI api = oauthRetrofit.create(RedditAPI.class);
@@ -81,12 +81,12 @@ public class UserFollowing {
params.put(APIUtils.SR_NAME_KEY, "u_" + username);
Call<String> subredditSubscriptionCall = api.subredditSubscription(APIUtils.getOAuthHeader(accessToken), params);
- subredditSubscriptionCall.enqueue(new Callback<>() {
+ subredditSubscriptionCall.enqueue(new Callback<String>() {
@Override
public void onResponse(@NonNull Call<String> call, @NonNull retrofit2.Response<String> response) {
if (response.isSuccessful()) {
if (action.equals("sub")) {
- FetchUserData.fetchUserData(applicationOnlyOauthRetrofit, username, new FetchUserData.FetchUserDataListener() {
+ FetchUserData.fetchUserData(retrofit, username, new FetchUserData.FetchUserDataListener() {
@Override
public void onFetchUserDataSuccess(UserData userData, int inboxCount) {
new UpdateSubscriptionAsyncTask(subscribedUserDao, userData, accountName, true).execute();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSource.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSource.java
index 825cd0d4..c3d922a7 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSource.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSource.java
@@ -12,7 +12,7 @@ import retrofit2.Retrofit;
public class UserListingDataSource extends PageKeyedDataSource<String, UserData> {
- private final Retrofit applicationOnlyOauthRetrofit;
+ private final Retrofit retrofit;
private final String query;
private final SortType sortType;
private final boolean nsfw;
@@ -24,8 +24,8 @@ public class UserListingDataSource extends PageKeyedDataSource<String, UserData>
private PageKeyedDataSource.LoadParams<String> params;
private PageKeyedDataSource.LoadCallback<String, UserData> callback;
- UserListingDataSource(Retrofit applicationOnlyOauthRetrofit, String query, SortType sortType, boolean nsfw) {
- this.applicationOnlyOauthRetrofit = applicationOnlyOauthRetrofit;
+ UserListingDataSource(Retrofit retrofit, String query, SortType sortType, boolean nsfw) {
+ this.retrofit = retrofit;
this.query = query;
this.sortType = sortType;
this.nsfw = nsfw;
@@ -50,7 +50,7 @@ public class UserListingDataSource extends PageKeyedDataSource<String, UserData>
public void loadInitial(@NonNull PageKeyedDataSource.LoadInitialParams<String> params, @NonNull PageKeyedDataSource.LoadInitialCallback<String, UserData> callback) {
initialLoadStateLiveData.postValue(NetworkState.LOADING);
- FetchUserData.fetchUserListingData(applicationOnlyOauthRetrofit, query, null, sortType.getType(), nsfw,
+ FetchUserData.fetchUserListingData(retrofit, query, null, sortType.getType(), nsfw,
new FetchUserData.FetchUserListingDataListener() {
@Override
public void onFetchUserListingDataSuccess(ArrayList<UserData> UserData, String after) {
@@ -81,7 +81,7 @@ public class UserListingDataSource extends PageKeyedDataSource<String, UserData>
return;
}
- FetchUserData.fetchUserListingData(applicationOnlyOauthRetrofit, query, params.key, sortType.getType(), nsfw,
+ FetchUserData.fetchUserListingData(retrofit, query, params.key, sortType.getType(), nsfw,
new FetchUserData.FetchUserListingDataListener() {
@Override
public void onFetchUserListingDataSuccess(ArrayList<UserData> UserData, String after) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSourceFactory.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSourceFactory.java
index 5bd3a51b..9d52d087 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSourceFactory.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingDataSourceFactory.java
@@ -8,7 +8,7 @@ import ml.docilealligator.infinityforreddit.SortType;
import retrofit2.Retrofit;
public class UserListingDataSourceFactory extends DataSource.Factory {
- private final Retrofit applicationOnlyOauthRetrofit;
+ private final Retrofit retrofit;
private final String query;
private SortType sortType;
private final boolean nsfw;
@@ -16,8 +16,8 @@ public class UserListingDataSourceFactory extends DataSource.Factory {
private UserListingDataSource userListingDataSource;
private final MutableLiveData<UserListingDataSource> userListingDataSourceMutableLiveData;
- UserListingDataSourceFactory(Retrofit applicationOnlyOauthRetrofit, String query, SortType sortType, boolean nsfw) {
- this.applicationOnlyOauthRetrofit = applicationOnlyOauthRetrofit;
+ UserListingDataSourceFactory(Retrofit retrofit, String query, SortType sortType, boolean nsfw) {
+ this.retrofit = retrofit;
this.query = query;
this.sortType = sortType;
this.nsfw = nsfw;
@@ -27,7 +27,7 @@ public class UserListingDataSourceFactory extends DataSource.Factory {
@NonNull
@Override
public DataSource create() {
- userListingDataSource = new UserListingDataSource(applicationOnlyOauthRetrofit, query, sortType, nsfw);
+ userListingDataSource = new UserListingDataSource(retrofit, query, sortType, nsfw);
userListingDataSourceMutableLiveData.postValue(userListingDataSource);
return userListingDataSource;
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingViewModel.java b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingViewModel.java
index 29c3c0ff..daffdf1e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingViewModel.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/user/UserListingViewModel.java
@@ -21,8 +21,8 @@ public class UserListingViewModel extends ViewModel {
private final LiveData<PagedList<UserData>> users;
private final MutableLiveData<SortType> sortTypeLiveData;
- public UserListingViewModel(Retrofit appliationOnlyOauthRetrofit, String query, SortType sortType, boolean nsfw) {
- userListingDataSourceFactory = new UserListingDataSourceFactory(appliationOnlyOauthRetrofit, query, sortType, nsfw);
+ public UserListingViewModel(Retrofit retrofit, String query, SortType sortType, boolean nsfw) {
+ userListingDataSourceFactory = new UserListingDataSourceFactory(retrofit, query, sortType, nsfw);
initialLoadingState = Transformations.switchMap(userListingDataSourceFactory.getUserListingDataSourceMutableLiveData(),
UserListingDataSource::getInitialLoadStateLiveData);
@@ -74,13 +74,13 @@ public class UserListingViewModel extends ViewModel {
}
public static class Factory extends ViewModelProvider.NewInstanceFactory {
- private final Retrofit applicationOnlyOauthRetrofit;
+ private final Retrofit retrofit;
private final String query;
private final SortType sortType;
private final boolean nsfw;
- public Factory(Retrofit applicationOnlyOauthRetrofit, String query, SortType sortType, boolean nsfw) {
- this.applicationOnlyOauthRetrofit = applicationOnlyOauthRetrofit;
+ public Factory(Retrofit retrofit, String query, SortType sortType, boolean nsfw) {
+ this.retrofit = retrofit;
this.query = query;
this.sortType = sortType;
this.nsfw = nsfw;
@@ -89,7 +89,7 @@ public class UserListingViewModel extends ViewModel {
@NonNull
@Override
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
- return (T) new UserListingViewModel(applicationOnlyOauthRetrofit, query, sortType, nsfw);
+ return (T) new UserListingViewModel(retrofit, query, sortType, nsfw);
}
}
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/APIUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/APIUtils.java
index 5953285f..87ec827e 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/APIUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/APIUtils.java
@@ -27,7 +27,6 @@ public class APIUtils {
public static final String CLIENT_ID_KEY = "client_id";
public static final String CLIENT_SECRET_KEY = "client_secret";
public static final String CLIENT_ID = "NOe2iKrPPzwscA";
- public static final String APPLICATION_ONLY_CLIENT_ID = "PLEASE_USE_YOUR_CLIENT_ID";
public static final String IMGUR_CLIENT_ID = "Client-ID cc671794e0ab397";
public static final String REDGIFS_CLIENT_ID = "1828d0bcc93-15ac-bde6-0005-d2ecbe8daab3";
public static final String REDGIFS_CLIENT_SECRET = "TJBlw7jRXW65NAGgFBtgZHu97WlzRXHYybK81sZ9dLM=";
@@ -51,10 +50,7 @@ public class APIUtils {
public static final String GRANT_TYPE_KEY = "grant_type";
public static final String GRANT_TYPE_REFRESH_TOKEN = "refresh_token";
public static final String GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials";
- public static final String GRANT_TYPE_INSTALLED_CLIENT = "https://oauth.reddit.com/grants/installed_client";
public static final String REFRESH_TOKEN_KEY = "refresh_token";
- public static final String DEVICE_ID_KEY = "device_id";
- public static final String DEVICE_ID = "DO_NOT_TRACK_THIS_DEVICE";
public static final String DIR_KEY = "dir";
public static final String ID_KEY = "id";
@@ -109,9 +105,6 @@ public class APIUtils {
public static final String NAME_KEY = "name";
- public static final String GILD_TYPE = "gild_type";
- public static final String IS_ANONYMOUS = "is_anonymous";
-
public static final String ORIGIN_KEY = "Origin";
public static final String REVEDDIT_ORIGIN = "https://www.reveddit.com";
public static final String REFERER_KEY = "Referer";
@@ -125,14 +118,6 @@ public class APIUtils {
return params;
}
- public static Map<String, String> getApplicationOnlyBasicAuthHeader() {
- Map<String, String> params = new HashMap<>();
- String credentials = String.format("%s:%s", APIUtils.APPLICATION_ONLY_CLIENT_ID, "");
- String auth = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP);
- params.put(APIUtils.AUTHORIZATION_KEY, auth);
- return params;
- }
-
public static Map<String, String> getOAuthHeader(String accessToken) {
Map<String, String> params = new HashMap<>();
params.put(APIUtils.AUTHORIZATION_KEY, APIUtils.AUTHORIZATION_BASE + accessToken);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
index 15564ce7..4343eaad 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/utils/SharedPreferencesUtils.java
@@ -338,7 +338,6 @@ public class SharedPreferencesUtils {
public static final String CURRENT_ACCOUNT_SHARED_PREFERENCES_FILE = "ml.docilealligator.infinityforreddit.current_account";
public static final String ACCOUNT_NAME = "account_name";
public static final String ACCESS_TOKEN = "access_token";
- public static final String APPLICATION_ONLY_ACCESS_TOKEN = "app_only_access_token";
public static final String ACCOUNT_IMAGE_URL = "account_image_url";
public static final String REDGIFS_ACCESS_TOKEN = "redgifs_access_token";
@@ -396,4 +395,7 @@ public class SharedPreferencesUtils {
public static final String DO_NOT_SHOW_REDDIT_API_INFO_AGAIN_LEGACY = "do_not_show_reddit_api_info_again";
public static final String HIDE_THE_NUMBER_OF_AWARDS_LEGACY = "hide_the_number_of_awards";
public static final String HIDE_COMMENT_AWARDS_LEGACY = "hide_comment_awards";
+
+ //Current account
+ public static final String APPLICATION_ONLY_ACCESS_TOKEN_LEGACY = "app_only_access_token";
}