mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-02-03 05:14:45 +01:00
Clean up code.
This commit is contained in:
parent
456429725b
commit
76204ac044
@ -29,20 +29,20 @@ import javax.inject.Inject;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
|
||||||
|
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
||||||
@ -59,26 +59,25 @@ public class AccountPostsActivity extends AppCompatActivity implements UserThing
|
|||||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||||
private static final String FRAGMENT_OUT_STATE = "FOS";
|
private static final String FRAGMENT_OUT_STATE = "FOS";
|
||||||
|
|
||||||
@BindView(R.id.collapsing_toolbar_layout_account_posts_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.collapsing_toolbar_layout_account_posts_activity)
|
||||||
@BindView(R.id.appbar_layout_account_posts_activity) AppBarLayout appBarLayout;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
@BindView(R.id.toolbar_account_posts_activity) Toolbar toolbar;
|
@BindView(R.id.appbar_layout_account_posts_activity)
|
||||||
|
AppBarLayout appBarLayout;
|
||||||
|
@BindView(R.id.toolbar_account_posts_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean isInLazyMode = false;
|
private boolean isInLazyMode = false;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private String mUserWhere;
|
private String mUserWhere;
|
||||||
|
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -34,19 +34,19 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.CommentsListingFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.CommentsListingFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -62,31 +62,31 @@ public class AccountSavedThingActivity extends AppCompatActivity {
|
|||||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||||
private static final String IS_IN_LAZY_MODE_STATE = "IILMS";
|
private static final String IS_IN_LAZY_MODE_STATE = "IILMS";
|
||||||
|
|
||||||
@BindView(R.id.collapsing_toolbar_layout_account_saved_thing_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.collapsing_toolbar_layout_account_saved_thing_activity)
|
||||||
@BindView(R.id.appbar_layout_account_saved_thing_activity) AppBarLayout appBarLayout;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
@BindView(R.id.toolbar_account_saved_thing_activity) Toolbar toolbar;
|
@BindView(R.id.appbar_layout_account_saved_thing_activity)
|
||||||
@BindView(R.id.tab_layout_tab_layout_account_saved_thing_activity_activity) TabLayout tabLayout;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.view_pager_account_saved_thing_activity) ViewPager viewPager;
|
@BindView(R.id.toolbar_account_saved_thing_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
@BindView(R.id.tab_layout_tab_layout_account_saved_thing_activity_activity)
|
||||||
|
TabLayout tabLayout;
|
||||||
|
@BindView(R.id.view_pager_account_saved_thing_activity)
|
||||||
|
ViewPager viewPager;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private SectionsPagerAdapter sectionsPagerAdapter;
|
private SectionsPagerAdapter sectionsPagerAdapter;
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
|
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private boolean isInLazyMode = false;
|
private boolean isInLazyMode = false;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -39,16 +39,16 @@ import io.noties.markwon.AbstractMarkwonPlugin;
|
|||||||
import io.noties.markwon.Markwon;
|
import io.noties.markwon.Markwon;
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.linkify.LinkifyPlugin;
|
import io.noties.markwon.linkify.LinkifyPlugin;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.CommentData;
|
import ml.docilealligator.infinityforreddit.CommentData;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SendComment;
|
import ml.docilealligator.infinityforreddit.SendComment;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -70,11 +70,21 @@ public class CommentActivity extends AppCompatActivity {
|
|||||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_comment_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_comment_activity)
|
||||||
@BindView(R.id.toolbar_comment_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.comment_parent_markwon_view_comment_activity) TextView commentParentMarkwonView;
|
@BindView(R.id.toolbar_comment_activity)
|
||||||
@BindView(R.id.comment_edit_text_comment_activity) EditText commentEditText;
|
Toolbar toolbar;
|
||||||
|
@BindView(R.id.comment_parent_markwon_view_comment_activity)
|
||||||
|
TextView commentParentMarkwonView;
|
||||||
|
@BindView(R.id.comment_edit_text_comment_activity)
|
||||||
|
EditText commentEditText;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String parentFullname;
|
private String parentFullname;
|
||||||
@ -82,16 +92,6 @@ public class CommentActivity extends AppCompatActivity {
|
|||||||
private int parentPosition;
|
private int parentPosition;
|
||||||
private boolean isReplying;
|
private boolean isReplying;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -35,13 +35,13 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||||
import ml.docilealligator.infinityforreddit.RedditUtils;
|
import ml.docilealligator.infinityforreddit.RedditUtils;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@ -63,20 +63,20 @@ public class EditCommentActivity extends AppCompatActivity {
|
|||||||
static final String EXTRA_EDITED_COMMENT_CONTENT = "EECC";
|
static final String EXTRA_EDITED_COMMENT_CONTENT = "EECC";
|
||||||
static final String EXTRA_EDITED_COMMENT_POSITION = "EECP";
|
static final String EXTRA_EDITED_COMMENT_POSITION = "EECP";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_edit_comment_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_edit_comment_activity)
|
||||||
@BindView(R.id.toolbar_edit_comment_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.post_text_content_edit_text_edit_comment_activity) EditText contentEditText;
|
@BindView(R.id.toolbar_edit_comment_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
private String mFullName;
|
@BindView(R.id.post_text_content_edit_text_edit_comment_activity)
|
||||||
private String mAccessToken;
|
EditText contentEditText;
|
||||||
private boolean isSubmitting = false;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private String mFullName;
|
||||||
|
private String mAccessToken;
|
||||||
|
private boolean isSubmitting = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -36,13 +36,13 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||||
import ml.docilealligator.infinityforreddit.RedditUtils;
|
import ml.docilealligator.infinityforreddit.RedditUtils;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@ -61,21 +61,22 @@ public class EditPostActivity extends AppCompatActivity {
|
|||||||
static final String EXTRA_FULLNAME = "EF";
|
static final String EXTRA_FULLNAME = "EF";
|
||||||
static final String EXTRA_ACCESS_TOKEN = "EAT";
|
static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_edit_post_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_edit_post_activity)
|
||||||
@BindView(R.id.toolbar_edit_post_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.post_title_text_view_edit_post_activity) TextView titleTextView;
|
@BindView(R.id.toolbar_edit_post_activity)
|
||||||
@BindView(R.id.post_text_content_edit_text_edit_post_activity) EditText contentEditText;
|
Toolbar toolbar;
|
||||||
|
@BindView(R.id.post_title_text_view_edit_post_activity)
|
||||||
private String mFullName;
|
TextView titleTextView;
|
||||||
private String mAccessToken;
|
@BindView(R.id.post_text_content_edit_text_edit_post_activity)
|
||||||
private boolean isSubmitting = false;
|
EditText contentEditText;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private String mFullName;
|
||||||
|
private String mAccessToken;
|
||||||
|
private boolean isSubmitting = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -29,22 +29,22 @@ import javax.inject.Inject;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.SearchPostSortTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.SortTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.Post;
|
import ml.docilealligator.infinityforreddit.Post;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SearchPostSortTypeBottomSheetFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SortTypeBottomSheetFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
|
||||||
|
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
||||||
@ -66,32 +66,30 @@ public class FilteredThingActivity extends AppCompatActivity implements SortType
|
|||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
private static final String FRAGMENT_OUT_STATE = "FOS";
|
private static final String FRAGMENT_OUT_STATE = "FOS";
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_filtered_posts_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.appbar_layout_filtered_posts_activity)
|
||||||
@BindView(R.id.collapsing_toolbar_layout_filtered_posts_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.toolbar_filtered_posts_activity) Toolbar toolbar;
|
@BindView(R.id.collapsing_toolbar_layout_filtered_posts_activity)
|
||||||
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
|
@BindView(R.id.toolbar_filtered_posts_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean isInLazyMode = false;
|
private boolean isInLazyMode = false;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String name;
|
private String name;
|
||||||
private int postType;
|
private int postType;
|
||||||
|
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
|
|
||||||
private SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment;
|
||||||
private SortTypeBottomSheetFragment popularAndAllSortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment popularAndAllSortTypeBottomSheetFragment;
|
||||||
private SortTypeBottomSheetFragment subredditSortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment subredditSortTypeBottomSheetFragment;
|
||||||
private UserThingSortTypeBottomSheetFragment userThingSortTypeBottomSheetFragment;
|
private UserThingSortTypeBottomSheetFragment userThingSortTypeBottomSheetFragment;
|
||||||
private SearchPostSortTypeBottomSheetFragment searchPostSortTypeBottomSheetFragment;
|
private SearchPostSortTypeBottomSheetFragment searchPostSortTypeBottomSheetFragment;
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -43,6 +43,10 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
|
||||||
|
public static Uri getRedditUriByPath(String path) {
|
||||||
|
return Uri.parse("https://www.reddit.com" + path);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -208,8 +212,4 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
Toast.makeText(this, R.string.no_browser_found, Toast.LENGTH_SHORT).show();
|
Toast.makeText(this, R.string.no_browser_found, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Uri getRedditUriByPath(String path) {
|
|
||||||
return Uri.parse("https://www.reddit.com" + path);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -29,9 +29,9 @@ import javax.inject.Named;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.ParseAndInsertNewAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.FetchMyInfo;
|
import ml.docilealligator.infinityforreddit.FetchMyInfo;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.ParseAndInsertNewAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo;
|
import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||||
@ -50,23 +50,19 @@ import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
|
|||||||
|
|
||||||
public class LoginActivity extends AppCompatActivity {
|
public class LoginActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@BindView(R.id.toolbar_login_activity) Toolbar toolbar;
|
@BindView(R.id.toolbar_login_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
private String authCode;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private String authCode;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -114,7 +110,8 @@ public class LoginActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
String url = uriBuilder.toString();
|
String url = uriBuilder.toString();
|
||||||
|
|
||||||
CookieManager.getInstance().removeAllCookies(aBoolean -> {});
|
CookieManager.getInstance().removeAllCookies(aBoolean -> {
|
||||||
|
});
|
||||||
|
|
||||||
webView.loadUrl(url);
|
webView.loadUrl(url);
|
||||||
webView.setWebViewClient(new WebViewClient() {
|
webView.setWebViewClient(new WebViewClient() {
|
||||||
|
@ -57,39 +57,39 @@ import java.util.concurrent.TimeUnit;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.Account.Account;
|
import ml.docilealligator.infinityforreddit.Account.Account;
|
||||||
import ml.docilealligator.infinityforreddit.Account.AccountViewModel;
|
import ml.docilealligator.infinityforreddit.Account.AccountViewModel;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.AccountRecyclerViewAdapter;
|
import ml.docilealligator.infinityforreddit.Adapter.AccountRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.InsertSubscribedThingsAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchToAnonymousAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeFontSizeEvent;
|
import ml.docilealligator.infinityforreddit.Event.ChangeFontSizeEvent;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FetchMyInfo;
|
import ml.docilealligator.infinityforreddit.FetchMyInfo;
|
||||||
import ml.docilealligator.infinityforreddit.FetchSubscribedThing;
|
import ml.docilealligator.infinityforreddit.FetchSubscribedThing;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.InsertSubscribedThingsAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo;
|
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostTypeBottomSheetFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.PostTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.SortTypeBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
|
import ml.docilealligator.infinityforreddit.ParseAndSaveAccountInfo;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.PullNotificationWorker;
|
import ml.docilealligator.infinityforreddit.PullNotificationWorker;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.ReadMessage;
|
import ml.docilealligator.infinityforreddit.ReadMessage;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SortTypeBottomSheetFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditData;
|
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditData;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchToAnonymousAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
@ -121,44 +121,71 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
|
|||||||
|
|
||||||
private static final int LOGIN_ACTIVITY_REQUEST_CODE = 0;
|
private static final int LOGIN_ACTIVITY_REQUEST_CODE = 0;
|
||||||
|
|
||||||
@BindView(R.id.drawer_layout) DrawerLayout drawer;
|
@BindView(R.id.drawer_layout)
|
||||||
@BindView(R.id.coordinator_layout_main_activity) CoordinatorLayout coordinatorLayout;
|
DrawerLayout drawer;
|
||||||
@BindView(R.id.appbar_layout_main_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.coordinator_layout_main_activity)
|
||||||
@BindView(R.id.view_pager_main_activity) ViewPager viewPager;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.collapsing_toolbar_layout_main_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.appbar_layout_main_activity)
|
||||||
@BindView(R.id.toolbar) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.nested_scroll_view_main_activity) NestedScrollView nestedScrollView;
|
@BindView(R.id.view_pager_main_activity)
|
||||||
@BindView(R.id.all_drawer_items_linear_layout_main_activity) LinearLayout allDrawerItemsLinearLayout;
|
ViewPager viewPager;
|
||||||
@BindView(R.id.account_label_main_activity) TextView accountLabelTextView;
|
@BindView(R.id.collapsing_toolbar_layout_main_activity)
|
||||||
@BindView(R.id.profile_linear_layout_main_activity) LinearLayout profileLinearLayout;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
@BindView(R.id.subscriptions_linear_layout_main_activity) LinearLayout subscriptionLinearLayout;
|
@BindView(R.id.toolbar)
|
||||||
@BindView(R.id.inbox_linear_layout_main_activity) LinearLayout inboxLinearLayout;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.post_label_main_activity) TextView postLabelTextView;
|
@BindView(R.id.nested_scroll_view_main_activity)
|
||||||
@BindView(R.id.upvoted_linear_layout_main_activity) LinearLayout upvotedLinearLayout;
|
NestedScrollView nestedScrollView;
|
||||||
@BindView(R.id.downvoted_linear_layout_main_activity) LinearLayout downvotedLinearLayout;
|
@BindView(R.id.all_drawer_items_linear_layout_main_activity)
|
||||||
@BindView(R.id.hidden_linear_layout_main_activity) LinearLayout hiddenLinearLayout;
|
LinearLayout allDrawerItemsLinearLayout;
|
||||||
@BindView(R.id.saved_linear_layout_main_activity) LinearLayout savedLinearLayout;
|
@BindView(R.id.account_label_main_activity)
|
||||||
@BindView(R.id.gilded_linear_layout_main_activity) LinearLayout gildedLinearLayout;
|
TextView accountLabelTextView;
|
||||||
@BindView(R.id.divider_main_activity) View divider;
|
@BindView(R.id.profile_linear_layout_main_activity)
|
||||||
@BindView(R.id.settings_linear_layout_main_activity) LinearLayout settingsLinearLayout;
|
LinearLayout profileLinearLayout;
|
||||||
@BindView(R.id.account_recycler_view_main_activity) RecyclerView accountRecyclerView;
|
@BindView(R.id.subscriptions_linear_layout_main_activity)
|
||||||
@BindView(R.id.tab_layout_main_activity) TabLayout tabLayout;
|
LinearLayout subscriptionLinearLayout;
|
||||||
@BindView(R.id.fab_main_activity) FloatingActionButton fab;
|
@BindView(R.id.inbox_linear_layout_main_activity)
|
||||||
|
LinearLayout inboxLinearLayout;
|
||||||
|
@BindView(R.id.post_label_main_activity)
|
||||||
|
TextView postLabelTextView;
|
||||||
|
@BindView(R.id.upvoted_linear_layout_main_activity)
|
||||||
|
LinearLayout upvotedLinearLayout;
|
||||||
|
@BindView(R.id.downvoted_linear_layout_main_activity)
|
||||||
|
LinearLayout downvotedLinearLayout;
|
||||||
|
@BindView(R.id.hidden_linear_layout_main_activity)
|
||||||
|
LinearLayout hiddenLinearLayout;
|
||||||
|
@BindView(R.id.saved_linear_layout_main_activity)
|
||||||
|
LinearLayout savedLinearLayout;
|
||||||
|
@BindView(R.id.gilded_linear_layout_main_activity)
|
||||||
|
LinearLayout gildedLinearLayout;
|
||||||
|
@BindView(R.id.divider_main_activity)
|
||||||
|
View divider;
|
||||||
|
@BindView(R.id.settings_linear_layout_main_activity)
|
||||||
|
LinearLayout settingsLinearLayout;
|
||||||
|
@BindView(R.id.account_recycler_view_main_activity)
|
||||||
|
RecyclerView accountRecyclerView;
|
||||||
|
@BindView(R.id.tab_layout_main_activity)
|
||||||
|
TabLayout tabLayout;
|
||||||
|
@BindView(R.id.fab_main_activity)
|
||||||
|
FloatingActionButton fab;
|
||||||
|
AccountViewModel accountViewModel;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private SectionsPagerAdapter sectionsPagerAdapter;
|
private SectionsPagerAdapter sectionsPagerAdapter;
|
||||||
|
|
||||||
private TextView mAccountNameTextView;
|
private TextView mAccountNameTextView;
|
||||||
private TextView mKarmaTextView;
|
private TextView mKarmaTextView;
|
||||||
private GifImageView mProfileImageView;
|
private GifImageView mProfileImageView;
|
||||||
private ImageView mBannerImageView;
|
private ImageView mBannerImageView;
|
||||||
private ImageView mDropIconImageView;
|
private ImageView mDropIconImageView;
|
||||||
|
|
||||||
private RequestManager glide;
|
private RequestManager glide;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
private PostTypeBottomSheetFragment postTypeBottomSheetFragment;
|
private PostTypeBottomSheetFragment postTypeBottomSheetFragment;
|
||||||
private SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment;
|
||||||
private SortTypeBottomSheetFragment popularAndAllSortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment popularAndAllSortTypeBottomSheetFragment;
|
||||||
|
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
@ -170,23 +197,9 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
|
|||||||
private boolean mDrawerOnAccountSwitch = false;
|
private boolean mDrawerOnAccountSwitch = false;
|
||||||
private String mMessageFullname;
|
private String mMessageFullname;
|
||||||
private String mNewAccountName;
|
private String mNewAccountName;
|
||||||
|
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
|
|
||||||
private boolean isInLazyMode = false;
|
private boolean isInLazyMode = false;
|
||||||
|
|
||||||
AccountViewModel accountViewModel;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
setTheme(R.style.AppTheme_NoActionBarWithTransparentStatusBar);
|
setTheme(R.style.AppTheme_NoActionBarWithTransparentStatusBar);
|
||||||
@ -469,7 +482,8 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
|
|||||||
|
|
||||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageSelected(int position) {
|
public void onPageSelected(int position) {
|
||||||
@ -484,7 +498,8 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrollStateChanged(int state) {}
|
public void onPageScrollStateChanged(int state) {
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
loadSubscriptions();
|
loadSubscriptions();
|
||||||
@ -1002,8 +1017,7 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount()
|
public int getCount() {
|
||||||
{
|
|
||||||
if (mAccessToken == null) {
|
if (mAccessToken == null) {
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
|
@ -91,21 +91,47 @@ public class PostImageActivity extends AppCompatActivity implements FlairBottomS
|
|||||||
private static final int PICK_IMAGE_REQUEST_CODE = 1;
|
private static final int PICK_IMAGE_REQUEST_CODE = 1;
|
||||||
private static final int CAPTURE_IMAGE_REQUEST_CODE = 2;
|
private static final int CAPTURE_IMAGE_REQUEST_CODE = 2;
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_post_image_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_post_image_activity)
|
||||||
@BindView(R.id.toolbar_post_image_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.subreddit_icon_gif_image_view_post_image_activity) GifImageView iconGifImageView;
|
@BindView(R.id.toolbar_post_image_activity)
|
||||||
@BindView(R.id.subreddit_name_text_view_post_image_activity) TextView subredditNameTextView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.rules_button_post_image_activity) Button rulesButton;
|
@BindView(R.id.subreddit_icon_gif_image_view_post_image_activity)
|
||||||
@BindView(R.id.flair_custom_text_view_post_image_activity) CustomTextView flairTextView;
|
GifImageView iconGifImageView;
|
||||||
@BindView(R.id.spoiler_custom_text_view_post_image_activity) CustomTextView spoilerTextView;
|
@BindView(R.id.subreddit_name_text_view_post_image_activity)
|
||||||
@BindView(R.id.nsfw_custom_text_view_post_image_activity) CustomTextView nsfwTextView;
|
TextView subredditNameTextView;
|
||||||
@BindView(R.id.post_title_edit_text_post_image_activity) EditText titleEditText;
|
@BindView(R.id.rules_button_post_image_activity)
|
||||||
@BindView(R.id.select_image_constraint_layout_post_image_activity) ConstraintLayout constraintLayout;
|
Button rulesButton;
|
||||||
@BindView(R.id.capture_fab_post_image_activity) FloatingActionButton captureFab;
|
@BindView(R.id.flair_custom_text_view_post_image_activity)
|
||||||
@BindView(R.id.select_from_library_fab_post_image_activity) FloatingActionButton selectFromLibraryFab;
|
CustomTextView flairTextView;
|
||||||
@BindView(R.id.select_again_text_view_post_image_activity) TextView selectAgainTextView;
|
@BindView(R.id.spoiler_custom_text_view_post_image_activity)
|
||||||
@BindView(R.id.image_view_post_image_activity) ImageView imageView;
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.nsfw_custom_text_view_post_image_activity)
|
||||||
|
CustomTextView nsfwTextView;
|
||||||
|
@BindView(R.id.post_title_edit_text_post_image_activity)
|
||||||
|
EditText titleEditText;
|
||||||
|
@BindView(R.id.select_image_constraint_layout_post_image_activity)
|
||||||
|
ConstraintLayout constraintLayout;
|
||||||
|
@BindView(R.id.capture_fab_post_image_activity)
|
||||||
|
FloatingActionButton captureFab;
|
||||||
|
@BindView(R.id.select_from_library_fab_post_image_activity)
|
||||||
|
FloatingActionButton selectFromLibraryFab;
|
||||||
|
@BindView(R.id.select_again_text_view_post_image_activity)
|
||||||
|
TextView selectAgainTextView;
|
||||||
|
@BindView(R.id.image_view_post_image_activity)
|
||||||
|
ImageView imageView;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("upload_media")
|
||||||
|
Retrofit mUploadMediaRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
@ -116,34 +142,14 @@ public class PostImageActivity extends AppCompatActivity implements FlairBottomS
|
|||||||
private boolean loadSubredditIconSuccessful = true;
|
private boolean loadSubredditIconSuccessful = true;
|
||||||
private boolean isPosting;
|
private boolean isPosting;
|
||||||
private Uri imageUri;
|
private Uri imageUri;
|
||||||
|
|
||||||
private Flair flair;
|
private Flair flair;
|
||||||
private boolean isSpoiler = false;
|
private boolean isSpoiler = false;
|
||||||
private boolean isNSFW = false;
|
private boolean isNSFW = false;
|
||||||
|
|
||||||
private Menu mMemu;
|
private Menu mMemu;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
||||||
private Snackbar mPostingSnackbar;
|
private Snackbar mPostingSnackbar;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("upload_media")
|
|
||||||
Retrofit mUploadMediaRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -79,17 +79,36 @@ public class PostLinkActivity extends AppCompatActivity implements FlairBottomSh
|
|||||||
|
|
||||||
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_post_link_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_post_link_activity)
|
||||||
@BindView(R.id.toolbar_post_link_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.subreddit_icon_gif_image_view_post_link_activity) GifImageView iconGifImageView;
|
@BindView(R.id.toolbar_post_link_activity)
|
||||||
@BindView(R.id.subreddit_name_text_view_post_link_activity) TextView subredditNameTextView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.rules_button_post_link_activity) Button rulesButton;
|
@BindView(R.id.subreddit_icon_gif_image_view_post_link_activity)
|
||||||
@BindView(R.id.flair_custom_text_view_post_link_activity) CustomTextView flairTextView;
|
GifImageView iconGifImageView;
|
||||||
@BindView(R.id.spoiler_custom_text_view_post_link_activity) CustomTextView spoilerTextView;
|
@BindView(R.id.subreddit_name_text_view_post_link_activity)
|
||||||
@BindView(R.id.nsfw_custom_text_view_post_link_activity) CustomTextView nsfwTextView;
|
TextView subredditNameTextView;
|
||||||
@BindView(R.id.post_title_edit_text_post_link_activity) EditText titleEditText;
|
@BindView(R.id.rules_button_post_link_activity)
|
||||||
@BindView(R.id.post_link_edit_text_post_link_activity) EditText contentEditText;
|
Button rulesButton;
|
||||||
|
@BindView(R.id.flair_custom_text_view_post_link_activity)
|
||||||
|
CustomTextView flairTextView;
|
||||||
|
@BindView(R.id.spoiler_custom_text_view_post_link_activity)
|
||||||
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.nsfw_custom_text_view_post_link_activity)
|
||||||
|
CustomTextView nsfwTextView;
|
||||||
|
@BindView(R.id.post_title_edit_text_post_link_activity)
|
||||||
|
EditText titleEditText;
|
||||||
|
@BindView(R.id.post_link_edit_text_post_link_activity)
|
||||||
|
EditText contentEditText;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String iconUrl;
|
private String iconUrl;
|
||||||
@ -98,30 +117,14 @@ public class PostLinkActivity extends AppCompatActivity implements FlairBottomSh
|
|||||||
private boolean subredditIsUser;
|
private boolean subredditIsUser;
|
||||||
private boolean loadSubredditIconSuccessful = true;
|
private boolean loadSubredditIconSuccessful = true;
|
||||||
private boolean isPosting;
|
private boolean isPosting;
|
||||||
|
|
||||||
private Flair flair;
|
private Flair flair;
|
||||||
private boolean isSpoiler = false;
|
private boolean isSpoiler = false;
|
||||||
private boolean isNSFW = false;
|
private boolean isNSFW = false;
|
||||||
|
|
||||||
private Menu mMemu;
|
private Menu mMemu;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
||||||
private Snackbar mPostingSnackbar;
|
private Snackbar mPostingSnackbar;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -79,17 +79,36 @@ public class PostTextActivity extends AppCompatActivity implements FlairBottomSh
|
|||||||
|
|
||||||
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_post_text_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_post_text_activity)
|
||||||
@BindView(R.id.toolbar_post_text_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.subreddit_icon_gif_image_view_search_activity) GifImageView iconGifImageView;
|
@BindView(R.id.toolbar_post_text_activity)
|
||||||
@BindView(R.id.subreddit_name_text_view_search_activity) TextView subredditNameTextView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.rules_button_post_text_activity) Button rulesButton;
|
@BindView(R.id.subreddit_icon_gif_image_view_search_activity)
|
||||||
@BindView(R.id.flair_custom_text_view_post_text_activity) CustomTextView flairTextView;
|
GifImageView iconGifImageView;
|
||||||
@BindView(R.id.spoiler_custom_text_view_post_text_activity) CustomTextView spoilerTextView;
|
@BindView(R.id.subreddit_name_text_view_search_activity)
|
||||||
@BindView(R.id.nsfw_custom_text_view_post_text_activity) CustomTextView nsfwTextView;
|
TextView subredditNameTextView;
|
||||||
@BindView(R.id.post_title_edit_text_post_text_activity) EditText titleEditText;
|
@BindView(R.id.rules_button_post_text_activity)
|
||||||
@BindView(R.id.post_text_content_edit_text_post_text_activity) EditText contentEditText;
|
Button rulesButton;
|
||||||
|
@BindView(R.id.flair_custom_text_view_post_text_activity)
|
||||||
|
CustomTextView flairTextView;
|
||||||
|
@BindView(R.id.spoiler_custom_text_view_post_text_activity)
|
||||||
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.nsfw_custom_text_view_post_text_activity)
|
||||||
|
CustomTextView nsfwTextView;
|
||||||
|
@BindView(R.id.post_title_edit_text_post_text_activity)
|
||||||
|
EditText titleEditText;
|
||||||
|
@BindView(R.id.post_text_content_edit_text_post_text_activity)
|
||||||
|
EditText contentEditText;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String iconUrl;
|
private String iconUrl;
|
||||||
@ -98,30 +117,14 @@ public class PostTextActivity extends AppCompatActivity implements FlairBottomSh
|
|||||||
private boolean subredditIsUser;
|
private boolean subredditIsUser;
|
||||||
private boolean loadSubredditIconSuccessful = true;
|
private boolean loadSubredditIconSuccessful = true;
|
||||||
private boolean isPosting;
|
private boolean isPosting;
|
||||||
|
|
||||||
private Flair flair;
|
private Flair flair;
|
||||||
private boolean isSpoiler = false;
|
private boolean isSpoiler = false;
|
||||||
private boolean isNSFW = false;
|
private boolean isNSFW = false;
|
||||||
|
|
||||||
private Menu mMemu;
|
private Menu mMemu;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
private FlairBottomSheetFragment flairSelectionBottomSheetFragment;
|
||||||
private Snackbar mPostingSnackbar;
|
private Snackbar mPostingSnackbar;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -49,19 +49,19 @@ import javax.inject.Named;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.Flair;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SubmitVideoPostEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Flair;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.SubmitPostService;
|
import ml.docilealligator.infinityforreddit.SubmitPostService;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SubmitVideoPostEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
@ -93,21 +93,50 @@ public class PostVideoActivity extends AppCompatActivity implements FlairBottomS
|
|||||||
private static final int PICK_VIDEO_REQUEST_CODE = 1;
|
private static final int PICK_VIDEO_REQUEST_CODE = 1;
|
||||||
private static final int CAPTURE_VIDEO_REQUEST_CODE = 2;
|
private static final int CAPTURE_VIDEO_REQUEST_CODE = 2;
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_post_video_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_post_video_activity)
|
||||||
@BindView(R.id.toolbar_post_video_activity) Toolbar toolbar;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.subreddit_icon_gif_image_view_post_video_activity) GifImageView iconGifImageView;
|
@BindView(R.id.toolbar_post_video_activity)
|
||||||
@BindView(R.id.subreddit_name_text_view_post_video_activity) TextView subredditNameTextView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.rules_button_post_video_activity) Button rulesButton;
|
@BindView(R.id.subreddit_icon_gif_image_view_post_video_activity)
|
||||||
@BindView(R.id.flair_custom_text_view_post_video_activity) CustomTextView flairTextView;
|
GifImageView iconGifImageView;
|
||||||
@BindView(R.id.spoiler_custom_text_view_post_video_activity) CustomTextView spoilerTextView;
|
@BindView(R.id.subreddit_name_text_view_post_video_activity)
|
||||||
@BindView(R.id.nsfw_custom_text_view_post_video_activity) CustomTextView nsfwTextView;
|
TextView subredditNameTextView;
|
||||||
@BindView(R.id.post_title_edit_text_post_video_activity) EditText titleEditText;
|
@BindView(R.id.rules_button_post_video_activity)
|
||||||
@BindView(R.id.select_video_constraint_layout_post_video_activity) ConstraintLayout constraintLayout;
|
Button rulesButton;
|
||||||
@BindView(R.id.capture_fab_post_video_activity) FloatingActionButton captureFab;
|
@BindView(R.id.flair_custom_text_view_post_video_activity)
|
||||||
@BindView(R.id.select_from_library_fab_post_video_activity) FloatingActionButton selectFromLibraryFab;
|
CustomTextView flairTextView;
|
||||||
@BindView(R.id.select_again_text_view_post_video_activity) TextView selectAgainTextView;
|
@BindView(R.id.spoiler_custom_text_view_post_video_activity)
|
||||||
@BindView(R.id.player_view_post_video_activity) PlayerView videoPlayerView;
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.nsfw_custom_text_view_post_video_activity)
|
||||||
|
CustomTextView nsfwTextView;
|
||||||
|
@BindView(R.id.post_title_edit_text_post_video_activity)
|
||||||
|
EditText titleEditText;
|
||||||
|
@BindView(R.id.select_video_constraint_layout_post_video_activity)
|
||||||
|
ConstraintLayout constraintLayout;
|
||||||
|
@BindView(R.id.capture_fab_post_video_activity)
|
||||||
|
FloatingActionButton captureFab;
|
||||||
|
@BindView(R.id.select_from_library_fab_post_video_activity)
|
||||||
|
FloatingActionButton selectFromLibraryFab;
|
||||||
|
@BindView(R.id.select_again_text_view_post_video_activity)
|
||||||
|
TextView selectAgainTextView;
|
||||||
|
@BindView(R.id.player_view_post_video_activity)
|
||||||
|
PlayerView videoPlayerView;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("upload_media")
|
||||||
|
Retrofit mUploadMediaRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("upload_video")
|
||||||
|
Retrofit mUploadVideoRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
@ -119,41 +148,16 @@ public class PostVideoActivity extends AppCompatActivity implements FlairBottomS
|
|||||||
private boolean loadSubredditIconSuccessful = true;
|
private boolean loadSubredditIconSuccessful = true;
|
||||||
private boolean isPosting;
|
private boolean isPosting;
|
||||||
private boolean wasPlaying;
|
private boolean wasPlaying;
|
||||||
|
|
||||||
private Flair flair;
|
private Flair flair;
|
||||||
private boolean isSpoiler = false;
|
private boolean isSpoiler = false;
|
||||||
private boolean isNSFW = false;
|
private boolean isNSFW = false;
|
||||||
|
|
||||||
private Menu mMemu;
|
private Menu mMemu;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private FlairBottomSheetFragment mFlairSelectionBottomSheetFragment;
|
private FlairBottomSheetFragment mFlairSelectionBottomSheetFragment;
|
||||||
private Snackbar mPostingSnackbar;
|
private Snackbar mPostingSnackbar;
|
||||||
|
|
||||||
private DataSource.Factory dataSourceFactory;
|
private DataSource.Factory dataSourceFactory;
|
||||||
private SimpleExoPlayer player;
|
private SimpleExoPlayer player;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("upload_media")
|
|
||||||
Retrofit mUploadMediaRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("upload_video")
|
|
||||||
Retrofit mUploadVideoRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -63,22 +63,23 @@ public class RulesActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
static final String EXTRA_SUBREDDIT_NAME = "ESN";
|
static final String EXTRA_SUBREDDIT_NAME = "ESN";
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_rules_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.appbar_layout_rules_activity)
|
||||||
@BindView(R.id.toolbar_rules_activity) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.progress_bar_rules_activity) ProgressBar progressBar;
|
@BindView(R.id.toolbar_rules_activity)
|
||||||
@BindView(R.id.recycler_view_rules_activity) RecyclerView recyclerView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.error_text_view_rules_activity) TextView errorTextView;
|
@BindView(R.id.progress_bar_rules_activity)
|
||||||
|
ProgressBar progressBar;
|
||||||
private String mSubredditName;
|
@BindView(R.id.recycler_view_rules_activity)
|
||||||
|
RecyclerView recyclerView;
|
||||||
private RulesRecyclerViewAdapter mAdapter;
|
@BindView(R.id.error_text_view_rules_activity)
|
||||||
|
TextView errorTextView;
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private String mSubredditName;
|
||||||
|
private RulesRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
@ -196,7 +197,8 @@ public class RulesActivity extends AppCompatActivity {
|
|||||||
if (rules == null || rules.size() == 0) {
|
if (rules == null || rules.size() == 0) {
|
||||||
errorTextView.setVisibility(View.VISIBLE);
|
errorTextView.setVisibility(View.VISIBLE);
|
||||||
errorTextView.setText(R.string.no_rule);
|
errorTextView.setText(R.string.no_rule);
|
||||||
errorTextView.setOnClickListener(view -> {});
|
errorTextView.setOnClickListener(view -> {
|
||||||
|
});
|
||||||
}
|
}
|
||||||
mAdapter.changeDataset(rules);
|
mAdapter.changeDataset(rules);
|
||||||
}
|
}
|
||||||
@ -250,11 +252,6 @@ public class RulesActivity extends AppCompatActivity {
|
|||||||
private String response;
|
private String response;
|
||||||
private ParseRulesAsyncTaskListener parseRulesAsyncTaskListener;
|
private ParseRulesAsyncTaskListener parseRulesAsyncTaskListener;
|
||||||
|
|
||||||
interface ParseRulesAsyncTaskListener {
|
|
||||||
void parseSuccessful(ArrayList<Rule> rules);
|
|
||||||
void parseFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
ParseRulesAsyncTask(String response, ParseRulesAsyncTaskListener parseRulesAsyncTaskListener) {
|
ParseRulesAsyncTask(String response, ParseRulesAsyncTaskListener parseRulesAsyncTaskListener) {
|
||||||
this.response = response;
|
this.response = response;
|
||||||
this.parseRulesAsyncTaskListener = parseRulesAsyncTaskListener;
|
this.parseRulesAsyncTaskListener = parseRulesAsyncTaskListener;
|
||||||
@ -288,5 +285,11 @@ public class RulesActivity extends AppCompatActivity {
|
|||||||
parseRulesAsyncTaskListener.parseFailed();
|
parseRulesAsyncTaskListener.parseFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParseRulesAsyncTaskListener {
|
||||||
|
void parseSuccessful(ArrayList<Rule> rules);
|
||||||
|
|
||||||
|
void parseFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,11 +32,11 @@ import javax.inject.Inject;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
|
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||||
@ -59,18 +59,20 @@ public class SearchActivity extends AppCompatActivity {
|
|||||||
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
private static final int SUBREDDIT_SELECTION_REQUEST_CODE = 0;
|
||||||
private static final int SUBREDDIT_SEARCH_REQUEST_CODE = 1;
|
private static final int SUBREDDIT_SEARCH_REQUEST_CODE = 1;
|
||||||
|
|
||||||
@BindView(R.id.toolbar) Toolbar toolbar;
|
@BindView(R.id.toolbar)
|
||||||
@BindView(R.id.search_view_search_activity) SimpleSearchView simpleSearchView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.subreddit_name_relative_layout_search_activity) RelativeLayout subredditNameRelativeLayout;
|
@BindView(R.id.search_view_search_activity)
|
||||||
@BindView(R.id.subreddit_name_text_view_search_activity) TextView subredditNameTextView;
|
SimpleSearchView simpleSearchView;
|
||||||
|
@BindView(R.id.subreddit_name_relative_layout_search_activity)
|
||||||
|
RelativeLayout subredditNameRelativeLayout;
|
||||||
|
@BindView(R.id.subreddit_name_text_view_search_activity)
|
||||||
|
TextView subredditNameTextView;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private String query;
|
private String query;
|
||||||
private String subredditName;
|
private String subredditName;
|
||||||
private boolean subredditIsUser;
|
private boolean subredditIsUser;
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -33,23 +33,23 @@ import javax.inject.Inject;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SearchPostSortTypeBottomSheetFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.SearchPostSortTypeBottomSheetFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SearchUserAndSubredditSortTypeBottomSheetFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.SearchUserAndSubredditSortTypeBottomSheetFragment;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SubredditListingFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.SubredditListingFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.UserListingFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.UserListingFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
|
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM;
|
||||||
@ -64,29 +64,27 @@ public class SearchResultActivity extends AppCompatActivity implements SearchPos
|
|||||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||||
|
@BindView(R.id.appbar_layout_search_result_activity)
|
||||||
|
AppBarLayout appBarLayout;
|
||||||
|
@BindView(R.id.toolbar_search_result_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
@BindView(R.id.tab_layout_search_result_activity)
|
||||||
|
TabLayout tabLayout;
|
||||||
|
@BindView(R.id.view_pager_search_result_activity)
|
||||||
|
ViewPager viewPager;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private String mQuery;
|
private String mQuery;
|
||||||
private String mSubredditName;
|
private String mSubredditName;
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_search_result_activity) AppBarLayout appBarLayout;
|
|
||||||
@BindView(R.id.toolbar_search_result_activity) Toolbar toolbar;
|
|
||||||
@BindView(R.id.tab_layout_search_result_activity) TabLayout tabLayout;
|
|
||||||
@BindView(R.id.view_pager_search_result_activity) ViewPager viewPager;
|
|
||||||
|
|
||||||
private SectionsPagerAdapter sectionsPagerAdapter;
|
private SectionsPagerAdapter sectionsPagerAdapter;
|
||||||
|
|
||||||
private SearchPostSortTypeBottomSheetFragment searchPostSortTypeBottomSheetFragment;
|
private SearchPostSortTypeBottomSheetFragment searchPostSortTypeBottomSheetFragment;
|
||||||
private SearchUserAndSubredditSortTypeBottomSheetFragment searchUserAndSubredditSortTypeBottomSheetFragment;
|
private SearchUserAndSubredditSortTypeBottomSheetFragment searchUserAndSubredditSortTypeBottomSheetFragment;
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -29,15 +29,15 @@ import javax.inject.Inject;
|
|||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.SubredditListingFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.SubredditListingFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
|
|
||||||
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY;
|
||||||
@ -56,21 +56,19 @@ public class SearchSubredditsResultActivity extends AppCompatActivity {
|
|||||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||||
private static final String FRAGMENT_OUT_STATE = "FOS";
|
private static final String FRAGMENT_OUT_STATE = "FOS";
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_search_subreddits_result_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.appbar_layout_search_subreddits_result_activity)
|
||||||
@BindView(R.id.toolbar_search_subreddits_result_activity) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
|
@BindView(R.id.toolbar_search_subreddits_result_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
Fragment mFragment;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
|
|
||||||
Fragment mFragment;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -19,14 +19,14 @@ import androidx.preference.PreferenceFragmentCompat;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.Settings.AboutPreferenceFragment;
|
import ml.docilealligator.infinityforreddit.Settings.AboutPreferenceFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
|
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
|
|
||||||
@ -40,7 +40,8 @@ public class SettingsActivity extends AppCompatActivity implements
|
|||||||
|
|
||||||
private static final String TITLE_STATE = "TS";
|
private static final String TITLE_STATE = "TS";
|
||||||
|
|
||||||
@BindView(R.id.toolbar_settings_activity) Toolbar toolbar;
|
@BindView(R.id.toolbar_settings_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
@ -8,10 +8,6 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.PostImageActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.PostLinkActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.PostTextActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.PostVideoActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
|
|
||||||
public class ShareDataResolverActivity extends AppCompatActivity {
|
public class ShareDataResolverActivity extends AppCompatActivity {
|
||||||
|
@ -71,27 +71,24 @@ public class SubredditSelectionActivity extends AppCompatActivity {
|
|||||||
private static final String ACCOUNT_PROFILE_IMAGE_URL = "APIU";
|
private static final String ACCOUNT_PROFILE_IMAGE_URL = "APIU";
|
||||||
private static final String FRAGMENT_OUT_STATE = "FOS";
|
private static final String FRAGMENT_OUT_STATE = "FOS";
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_subreddit_selection_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.appbar_layout_subreddit_selection_activity)
|
||||||
@BindView(R.id.toolbar_subreddit_selection_activity) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
|
@BindView(R.id.toolbar_subreddit_selection_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private String mAccountProfileImageUrl;
|
private String mAccountProfileImageUrl;
|
||||||
private boolean mInsertSuccess = false;
|
private boolean mInsertSuccess = false;
|
||||||
|
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -64,28 +64,27 @@ public class SubscribedThingListingActivity extends AppCompatActivity {
|
|||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
private static final String ACCOUNT_NAME_STATE = "ANS";
|
private static final String ACCOUNT_NAME_STATE = "ANS";
|
||||||
|
|
||||||
@BindView(R.id.appbar_layout_subscribed_thing_listing_activity) AppBarLayout appBarLayout;
|
@BindView(R.id.appbar_layout_subscribed_thing_listing_activity)
|
||||||
@BindView(R.id.toolbar_subscribed_thing_listing_activity) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.tab_layout_subscribed_thing_listing_activity) TabLayout tabLayout;
|
@BindView(R.id.toolbar_subscribed_thing_listing_activity)
|
||||||
@BindView(R.id.view_pager_subscribed_thing_listing_activity) ViewPager viewPager;
|
Toolbar toolbar;
|
||||||
|
@BindView(R.id.tab_layout_subscribed_thing_listing_activity)
|
||||||
|
TabLayout tabLayout;
|
||||||
|
@BindView(R.id.view_pager_subscribed_thing_listing_activity)
|
||||||
|
ViewPager viewPager;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private boolean mInsertSuccess = false;
|
private boolean mInsertSuccess = false;
|
||||||
|
|
||||||
private SectionsPagerAdapter sectionsPagerAdapter;
|
private SectionsPagerAdapter sectionsPagerAdapter;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -280,8 +279,7 @@ public class SubscribedThingListingActivity extends AppCompatActivity {
|
|||||||
fragment.setArguments(bundle);
|
fragment.setArguments(bundle);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
default:
|
default: {
|
||||||
{
|
|
||||||
FollowedUsersListingFragment fragment = new FollowedUsersListingFragment();
|
FollowedUsersListingFragment fragment = new FollowedUsersListingFragment();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString(FollowedUsersListingFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
bundle.putString(FollowedUsersListingFragment.EXTRA_ACCOUNT_NAME, mAccountName);
|
||||||
|
@ -59,35 +59,31 @@ import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
|||||||
|
|
||||||
public class ViewImageActivity extends AppCompatActivity {
|
public class ViewImageActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
|
|
||||||
|
|
||||||
public static final String TITLE_KEY = "TK";
|
public static final String TITLE_KEY = "TK";
|
||||||
public static final String IMAGE_URL_KEY = "IUK";
|
public static final String IMAGE_URL_KEY = "IUK";
|
||||||
public static final String FILE_NAME_KEY = "FNK";
|
public static final String FILE_NAME_KEY = "FNK";
|
||||||
|
private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
|
||||||
@BindView(R.id.parent_relative_layout_view_image_activity) RelativeLayout mRelativeLayout;
|
@BindView(R.id.parent_relative_layout_view_image_activity)
|
||||||
@BindView(R.id.progress_bar_view_image_activity) ProgressBar mProgressBar;
|
RelativeLayout mRelativeLayout;
|
||||||
@BindView(R.id.image_view_view_image_activity) GestureImageView mImageView;
|
@BindView(R.id.progress_bar_view_image_activity)
|
||||||
@BindView(R.id.load_image_error_linear_layout_view_image_activity) LinearLayout mLoadErrorLinearLayout;
|
ProgressBar mProgressBar;
|
||||||
|
@BindView(R.id.image_view_view_image_activity)
|
||||||
|
GestureImageView mImageView;
|
||||||
|
@BindView(R.id.load_image_error_linear_layout_view_image_activity)
|
||||||
|
LinearLayout mLoadErrorLinearLayout;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean isActionBarHidden = false;
|
private boolean isActionBarHidden = false;
|
||||||
private boolean isDownloading = false;
|
private boolean isDownloading = false;
|
||||||
|
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private Swipe swipe;
|
private Swipe swipe;
|
||||||
|
|
||||||
private String mImageUrl;
|
private String mImageUrl;
|
||||||
private String mImageFileName;
|
private String mImageFileName;
|
||||||
|
|
||||||
private float totalLengthY = 0.0f;
|
private float totalLengthY = 0.0f;
|
||||||
private float touchY = -1.0f;
|
private float touchY = -1.0f;
|
||||||
private float zoom = 1.0f;
|
private float zoom = 1.0f;
|
||||||
|
|
||||||
private boolean isSwiping = false;
|
private boolean isSwiping = false;
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
@ -39,20 +39,20 @@ import javax.inject.Named;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.MessageRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FetchMessages;
|
import ml.docilealligator.infinityforreddit.FetchMessages;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.MessageRecyclerViewAdapter;
|
|
||||||
import ml.docilealligator.infinityforreddit.MessageViewModel;
|
import ml.docilealligator.infinityforreddit.MessageViewModel;
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -69,34 +69,35 @@ public class ViewMessageActivity extends AppCompatActivity {
|
|||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
||||||
|
|
||||||
@BindView(R.id.collapsing_toolbar_layout_view_message_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.collapsing_toolbar_layout_view_message_activity)
|
||||||
@BindView(R.id.appbar_layout_view_message_activity) AppBarLayout appBarLayout;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
@BindView(R.id.toolbar_view_message_activity) Toolbar toolbar;
|
@BindView(R.id.appbar_layout_view_message_activity)
|
||||||
@BindView(R.id.progress_bar_view_message_activity) CircleProgressBar mProgressBar;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.recycler_view_view_message_activity) RecyclerView recyclerView;
|
@BindView(R.id.toolbar_view_message_activity)
|
||||||
@BindView(R.id.fetch_messages_info_linear_layout_view_message_activity) LinearLayout mFetchMessageInfoLinearLayout;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.fetch_messages_info_image_view_view_message_activity) ImageView mFetchMessageInfoImageView;
|
@BindView(R.id.progress_bar_view_message_activity)
|
||||||
@BindView(R.id.fetch_messages_info_text_view_view_message_activity) TextView mFetchMessageInfoTextView;
|
CircleProgressBar mProgressBar;
|
||||||
|
@BindView(R.id.recycler_view_view_message_activity)
|
||||||
private boolean mNullAccessToken = false;
|
RecyclerView recyclerView;
|
||||||
private String mAccessToken;
|
@BindView(R.id.fetch_messages_info_linear_layout_view_message_activity)
|
||||||
private String mNewAccountName;
|
LinearLayout mFetchMessageInfoLinearLayout;
|
||||||
|
@BindView(R.id.fetch_messages_info_image_view_view_message_activity)
|
||||||
private MessageRecyclerViewAdapter mAdapter;
|
ImageView mFetchMessageInfoImageView;
|
||||||
|
@BindView(R.id.fetch_messages_info_text_view_view_message_activity)
|
||||||
private RequestManager mGlide;
|
TextView mFetchMessageInfoTextView;
|
||||||
|
|
||||||
MessageViewModel mMessageViewModel;
|
MessageViewModel mMessageViewModel;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private boolean mNullAccessToken = false;
|
||||||
|
private String mAccessToken;
|
||||||
|
private String mNewAccountName;
|
||||||
|
private MessageRecyclerViewAdapter mAdapter;
|
||||||
|
private RequestManager mGlide;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -48,26 +48,28 @@ import javax.inject.Named;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWBlurEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeSpoilerBlurEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.CommentAndPostRecyclerViewAdapter;
|
import ml.docilealligator.infinityforreddit.Adapter.CommentAndPostRecyclerViewAdapter;
|
||||||
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.CommentData;
|
import ml.docilealligator.infinityforreddit.CommentData;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.DeleteThing;
|
import ml.docilealligator.infinityforreddit.DeleteThing;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWBlurEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.ChangeSpoilerBlurEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToDetailActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToPostList;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FetchComment;
|
import ml.docilealligator.infinityforreddit.FetchComment;
|
||||||
import ml.docilealligator.infinityforreddit.FetchPost;
|
import ml.docilealligator.infinityforreddit.FetchPost;
|
||||||
import ml.docilealligator.infinityforreddit.Flair;
|
import ml.docilealligator.infinityforreddit.Flair;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
import ml.docilealligator.infinityforreddit.Fragment.FlairBottomSheetFragment;
|
||||||
import ml.docilealligator.infinityforreddit.HidePost;
|
import ml.docilealligator.infinityforreddit.HidePost;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.ParseComment;
|
import ml.docilealligator.infinityforreddit.ParseComment;
|
||||||
import ml.docilealligator.infinityforreddit.ParsePost;
|
import ml.docilealligator.infinityforreddit.ParsePost;
|
||||||
import ml.docilealligator.infinityforreddit.Post;
|
import ml.docilealligator.infinityforreddit.Post;
|
||||||
import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToDetailActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.PostUpdateEventToPostList;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.ReadMessage;
|
import ml.docilealligator.infinityforreddit.ReadMessage;
|
||||||
import ml.docilealligator.infinityforreddit.RedditAPI;
|
import ml.docilealligator.infinityforreddit.RedditAPI;
|
||||||
@ -75,8 +77,6 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
|||||||
import ml.docilealligator.infinityforreddit.RedditUtils;
|
import ml.docilealligator.infinityforreddit.RedditUtils;
|
||||||
import ml.docilealligator.infinityforreddit.SaveThing;
|
import ml.docilealligator.infinityforreddit.SaveThing;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.Callback;
|
import retrofit2.Callback;
|
||||||
@ -98,20 +98,8 @@ public class ViewPostDetailActivity extends AppCompatActivity implements FlairBo
|
|||||||
public static final String EXTRA_SINGLE_COMMENT_ID = "ESCI";
|
public static final String EXTRA_SINGLE_COMMENT_ID = "ESCI";
|
||||||
public static final String EXTRA_MESSAGE_FULLNAME = "ENI";
|
public static final String EXTRA_MESSAGE_FULLNAME = "ENI";
|
||||||
public static final String EXTRA_NEW_ACCOUNT_NAME = "ENAN";
|
public static final String EXTRA_NEW_ACCOUNT_NAME = "ENAN";
|
||||||
|
|
||||||
private static final int EDIT_POST_REQUEST_CODE = 2;
|
|
||||||
public static final int EDIT_COMMENT_REQUEST_CODE = 3;
|
public static final int EDIT_COMMENT_REQUEST_CODE = 3;
|
||||||
|
private static final int EDIT_POST_REQUEST_CODE = 2;
|
||||||
private RequestManager mGlide;
|
|
||||||
private Locale mLocale;
|
|
||||||
private Menu mMenu;
|
|
||||||
|
|
||||||
private int orientation;
|
|
||||||
private int postListPosition = -1;
|
|
||||||
private String mSingleCommentId;
|
|
||||||
private boolean mNeedBlurNsfw;
|
|
||||||
private boolean mNeedBlurSpoiler;
|
|
||||||
|
|
||||||
@State
|
@State
|
||||||
boolean mNullAccessToken = false;
|
boolean mNullAccessToken = false;
|
||||||
@State
|
@State
|
||||||
@ -140,32 +128,43 @@ public class ViewPostDetailActivity extends AppCompatActivity implements FlairBo
|
|||||||
String mMessageFullname;
|
String mMessageFullname;
|
||||||
@State
|
@State
|
||||||
String mNewAccountName;
|
String mNewAccountName;
|
||||||
|
@BindView(R.id.coordinator_layout_view_post_detail)
|
||||||
private boolean showToast = false;
|
CoordinatorLayout mCoordinatorLayout;
|
||||||
|
@BindView(R.id.appbar_layout_view_post_detail_activity)
|
||||||
private LinearLayoutManager mLinearLayoutManager;
|
AppBarLayout appBarLayout;
|
||||||
private CommentAndPostRecyclerViewAdapter mAdapter;
|
@BindView(R.id.toolbar_view_post_detail_activity)
|
||||||
|
Toolbar toolbar;
|
||||||
@BindView(R.id.coordinator_layout_view_post_detail) CoordinatorLayout mCoordinatorLayout;
|
@BindView(R.id.progress_bar_view_post_detail_activity)
|
||||||
@BindView(R.id.appbar_layout_view_post_detail_activity) AppBarLayout appBarLayout;
|
ProgressBar mProgressBar;
|
||||||
@BindView(R.id.toolbar_view_post_detail_activity) Toolbar toolbar;
|
@BindView(R.id.recycler_view_view_post_detail)
|
||||||
@BindView(R.id.progress_bar_view_post_detail_activity) ProgressBar mProgressBar;
|
RecyclerView mRecyclerView;
|
||||||
@BindView(R.id.recycler_view_view_post_detail) RecyclerView mRecyclerView;
|
@BindView(R.id.fetch_post_info_linear_layout_view_post_detail_activity)
|
||||||
@BindView(R.id.fetch_post_info_linear_layout_view_post_detail_activity) LinearLayout mFetchPostInfoLinearLayout;
|
LinearLayout mFetchPostInfoLinearLayout;
|
||||||
@BindView(R.id.fetch_post_info_image_view_view_post_detail_activity) ImageView mFetchPostInfoImageView;
|
@BindView(R.id.fetch_post_info_image_view_view_post_detail_activity)
|
||||||
@BindView(R.id.fetch_post_info_text_view_view_post_detail_activity) TextView mFetchPostInfoTextView;
|
ImageView mFetchPostInfoImageView;
|
||||||
|
@BindView(R.id.fetch_post_info_text_view_view_post_detail_activity)
|
||||||
@Inject @Named("no_oauth")
|
TextView mFetchPostInfoTextView;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
@Inject @Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private RequestManager mGlide;
|
||||||
|
private Locale mLocale;
|
||||||
|
private Menu mMenu;
|
||||||
|
private int orientation;
|
||||||
|
private int postListPosition = -1;
|
||||||
|
private String mSingleCommentId;
|
||||||
|
private boolean mNeedBlurNsfw;
|
||||||
|
private boolean mNeedBlurSpoiler;
|
||||||
|
private boolean showToast = false;
|
||||||
|
private LinearLayoutManager mLinearLayoutManager;
|
||||||
|
private CommentAndPostRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -91,19 +91,40 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So
|
|||||||
private static final String MESSAGE_FULLNAME_STATE = "MFS";
|
private static final String MESSAGE_FULLNAME_STATE = "MFS";
|
||||||
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_view_subreddit_detail_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_view_subreddit_detail_activity)
|
||||||
@BindView(R.id.appbar_layout_view_subreddit_detail) AppBarLayout appBarLayout;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.collapsing_toolbar_layout_view_subreddit_detail_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.appbar_layout_view_subreddit_detail)
|
||||||
@BindView(R.id.toolbar) Toolbar toolbar;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.banner_image_view_view_subreddit_detail_activity) GifImageView bannerImageView;
|
@BindView(R.id.collapsing_toolbar_layout_view_subreddit_detail_activity)
|
||||||
@BindView(R.id.icon_gif_image_view_view_subreddit_detail_activity) GifImageView iconGifImageView;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
@BindView(R.id.subscribe_subreddit_chip_view_subreddit_detail_activity) Chip subscribeSubredditChip;
|
@BindView(R.id.toolbar)
|
||||||
@BindView(R.id.subreddit_name_text_view_view_subreddit_detail_activity) TextView subredditNameTextView;
|
Toolbar toolbar;
|
||||||
@BindView(R.id.subscriber_count_text_view_view_subreddit_detail_activity) TextView nSubscribersTextView;
|
@BindView(R.id.banner_image_view_view_subreddit_detail_activity)
|
||||||
@BindView(R.id.online_subscriber_count_text_view_view_subreddit_detail_activity) TextView nOnlineSubscribersTextView;
|
GifImageView bannerImageView;
|
||||||
@BindView(R.id.description_text_view_view_subreddit_detail_activity) TextView descriptionTextView;
|
@BindView(R.id.icon_gif_image_view_view_subreddit_detail_activity)
|
||||||
@BindView(R.id.fab_view_subreddit_detail_activity) FloatingActionButton fab;
|
GifImageView iconGifImageView;
|
||||||
|
@BindView(R.id.subscribe_subreddit_chip_view_subreddit_detail_activity)
|
||||||
|
Chip subscribeSubredditChip;
|
||||||
|
@BindView(R.id.subreddit_name_text_view_view_subreddit_detail_activity)
|
||||||
|
TextView subredditNameTextView;
|
||||||
|
@BindView(R.id.subscriber_count_text_view_view_subreddit_detail_activity)
|
||||||
|
TextView nSubscribersTextView;
|
||||||
|
@BindView(R.id.online_subscriber_count_text_view_view_subreddit_detail_activity)
|
||||||
|
TextView nOnlineSubscribersTextView;
|
||||||
|
@BindView(R.id.description_text_view_view_subreddit_detail_activity)
|
||||||
|
TextView descriptionTextView;
|
||||||
|
@BindView(R.id.fab_view_subreddit_detail_activity)
|
||||||
|
FloatingActionButton fab;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
@ -115,30 +136,14 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So
|
|||||||
private boolean showToast = false;
|
private boolean showToast = false;
|
||||||
private String mMessageFullname;
|
private String mMessageFullname;
|
||||||
private String mNewAccountName;
|
private String mNewAccountName;
|
||||||
|
|
||||||
private RequestManager glide;
|
private RequestManager glide;
|
||||||
private Fragment mFragment;
|
private Fragment mFragment;
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
private PostTypeBottomSheetFragment postTypeBottomSheetFragment;
|
private PostTypeBottomSheetFragment postTypeBottomSheetFragment;
|
||||||
private SortTypeBottomSheetFragment sortTypeBottomSheetFragment;
|
private SortTypeBottomSheetFragment sortTypeBottomSheetFragment;
|
||||||
|
|
||||||
private SubredditViewModel mSubredditViewModel;
|
private SubredditViewModel mSubredditViewModel;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -647,14 +652,9 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So
|
|||||||
|
|
||||||
private static class InsertSubredditDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class InsertSubredditDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
interface InsertSubredditDataAsyncTaskListener {
|
|
||||||
void insertSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
private SubredditDao mSubredditDao;
|
private SubredditDao mSubredditDao;
|
||||||
private SubredditData subredditData;
|
private SubredditData subredditData;
|
||||||
private InsertSubredditDataAsyncTaskListener insertSubredditDataAsyncTaskListener;
|
private InsertSubredditDataAsyncTaskListener insertSubredditDataAsyncTaskListener;
|
||||||
|
|
||||||
InsertSubredditDataAsyncTask(RedditDataRoomDatabase db, SubredditData subredditData,
|
InsertSubredditDataAsyncTask(RedditDataRoomDatabase db, SubredditData subredditData,
|
||||||
InsertSubredditDataAsyncTaskListener insertSubredditDataAsyncTaskListener) {
|
InsertSubredditDataAsyncTaskListener insertSubredditDataAsyncTaskListener) {
|
||||||
mSubredditDao = db.subredditDao();
|
mSubredditDao = db.subredditDao();
|
||||||
@ -672,5 +672,9 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
insertSubredditDataAsyncTaskListener.insertSuccess();
|
insertSubredditDataAsyncTaskListener.insertSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface InsertSubredditDataAsyncTaskListener {
|
||||||
|
void insertSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,35 +43,35 @@ import org.greenrobot.eventbus.Subscribe;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
import ml.docilealligator.infinityforreddit.AppBarStateChangeListener;
|
||||||
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.CheckIsFollowingUserAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.CheckIsFollowingUserAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.CommentsListingFragment;
|
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
import ml.docilealligator.infinityforreddit.ContentFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.DeleteThing;
|
import ml.docilealligator.infinityforreddit.DeleteThing;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.ChangeNSFWEvent;
|
||||||
|
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
||||||
import ml.docilealligator.infinityforreddit.FetchUserData;
|
import ml.docilealligator.infinityforreddit.FetchUserData;
|
||||||
import ml.docilealligator.infinityforreddit.FontStyle;
|
import ml.docilealligator.infinityforreddit.FontStyle;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.CommentsListingFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.GetCurrentAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.ReadMessage;
|
import ml.docilealligator.infinityforreddit.ReadMessage;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
import ml.docilealligator.infinityforreddit.SharedPreferencesUtils;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserDao;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserDao;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.SwitchAccountAsyncTask;
|
|
||||||
import ml.docilealligator.infinityforreddit.Event.SwitchAccountEvent;
|
|
||||||
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
import ml.docilealligator.infinityforreddit.TitleFontStyle;
|
||||||
import ml.docilealligator.infinityforreddit.User.UserDao;
|
import ml.docilealligator.infinityforreddit.User.UserDao;
|
||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
import ml.docilealligator.infinityforreddit.User.UserViewModel;
|
import ml.docilealligator.infinityforreddit.User.UserViewModel;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
|
||||||
import ml.docilealligator.infinityforreddit.UserFollowing;
|
import ml.docilealligator.infinityforreddit.UserFollowing;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.UserThingSortTypeBottomSheetFragment;
|
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -94,27 +94,43 @@ public class ViewUserDetailActivity extends AppCompatActivity implements UserThi
|
|||||||
private static final String MESSAGE_FULLNAME_STATE = "MFS";
|
private static final String MESSAGE_FULLNAME_STATE = "MFS";
|
||||||
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
private static final String NEW_ACCOUNT_NAME_STATE = "NANS";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_view_user_detail_activity) CoordinatorLayout coordinatorLayout;
|
@BindView(R.id.coordinator_layout_view_user_detail_activity)
|
||||||
@BindView(R.id.view_pager_view_user_detail_activity) ViewPager viewPager;
|
CoordinatorLayout coordinatorLayout;
|
||||||
@BindView(R.id.appbar_layout_view_user_detail) AppBarLayout appBarLayout;
|
@BindView(R.id.view_pager_view_user_detail_activity)
|
||||||
@BindView(R.id.tab_layout_view_user_detail_activity) TabLayout tabLayout;
|
ViewPager viewPager;
|
||||||
@BindView(R.id.collapsing_toolbar_layout_view_user_detail_activity) CollapsingToolbarLayout collapsingToolbarLayout;
|
@BindView(R.id.appbar_layout_view_user_detail)
|
||||||
@BindView(R.id.banner_image_view_view_user_detail_activity) GifImageView bannerImageView;
|
AppBarLayout appBarLayout;
|
||||||
@BindView(R.id.icon_gif_image_view_view_user_detail_activity) GifImageView iconGifImageView;
|
@BindView(R.id.tab_layout_view_user_detail_activity)
|
||||||
@BindView(R.id.user_name_text_view_view_user_detail_activity) TextView userNameTextView;
|
TabLayout tabLayout;
|
||||||
@BindView(R.id.subscribe_user_chip_view_user_detail_activity) Chip subscribeUserChip;
|
@BindView(R.id.collapsing_toolbar_layout_view_user_detail_activity)
|
||||||
@BindView(R.id.karma_text_view_view_user_detail_activity) TextView karmaTextView;
|
CollapsingToolbarLayout collapsingToolbarLayout;
|
||||||
|
@BindView(R.id.banner_image_view_view_user_detail_activity)
|
||||||
|
GifImageView bannerImageView;
|
||||||
|
@BindView(R.id.icon_gif_image_view_view_user_detail_activity)
|
||||||
|
GifImageView iconGifImageView;
|
||||||
|
@BindView(R.id.user_name_text_view_view_user_detail_activity)
|
||||||
|
TextView userNameTextView;
|
||||||
|
@BindView(R.id.subscribe_user_chip_view_user_detail_activity)
|
||||||
|
Chip subscribeUserChip;
|
||||||
|
@BindView(R.id.karma_text_view_view_user_detail_activity)
|
||||||
|
TextView karmaTextView;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private SectionsPagerAdapter sectionsPagerAdapter;
|
private SectionsPagerAdapter sectionsPagerAdapter;
|
||||||
|
|
||||||
private SubscribedUserDao subscribedUserDao;
|
private SubscribedUserDao subscribedUserDao;
|
||||||
private RequestManager glide;
|
private RequestManager glide;
|
||||||
private UserViewModel userViewModel;
|
private UserViewModel userViewModel;
|
||||||
private Menu mMenu;
|
private Menu mMenu;
|
||||||
private AppBarLayout.LayoutParams params;
|
private AppBarLayout.LayoutParams params;
|
||||||
|
|
||||||
private UserThingSortTypeBottomSheetFragment userThingSortTypeBottomSheetFragment;
|
private UserThingSortTypeBottomSheetFragment userThingSortTypeBottomSheetFragment;
|
||||||
|
|
||||||
private boolean mNullAccessToken = false;
|
private boolean mNullAccessToken = false;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
@ -132,20 +148,6 @@ public class ViewUserDetailActivity extends AppCompatActivity implements UserThi
|
|||||||
private String mMessageFullname;
|
private String mMessageFullname;
|
||||||
private String mNewAccountName;
|
private String mNewAccountName;
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
@Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@ -652,14 +654,9 @@ public class ViewUserDetailActivity extends AppCompatActivity implements UserThi
|
|||||||
|
|
||||||
private static class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
interface InsertUserDataAsyncTaskListener {
|
|
||||||
void insertSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
private UserDao userDao;
|
private UserDao userDao;
|
||||||
private UserData subredditData;
|
private UserData subredditData;
|
||||||
private InsertUserDataAsyncTaskListener insertUserDataAsyncTaskListener;
|
private InsertUserDataAsyncTaskListener insertUserDataAsyncTaskListener;
|
||||||
|
|
||||||
InsertUserDataAsyncTask(UserDao userDao, UserData userData,
|
InsertUserDataAsyncTask(UserDao userDao, UserData userData,
|
||||||
InsertUserDataAsyncTaskListener insertUserDataAsyncTaskListener) {
|
InsertUserDataAsyncTaskListener insertUserDataAsyncTaskListener) {
|
||||||
this.userDao = userDao;
|
this.userDao = userDao;
|
||||||
@ -677,6 +674,10 @@ public class ViewUserDetailActivity extends AppCompatActivity implements UserThi
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
insertUserDataAsyncTaskListener.insertSuccess();
|
insertUserDataAsyncTaskListener.insertSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface InsertUserDataAsyncTaskListener {
|
||||||
|
void insertSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SectionsPagerAdapter extends FragmentPagerAdapter {
|
private class SectionsPagerAdapter extends FragmentPagerAdapter {
|
||||||
|
@ -50,14 +50,14 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
|
|
||||||
public class ViewVideoActivity extends AppCompatActivity {
|
public class ViewVideoActivity extends AppCompatActivity {
|
||||||
|
|
||||||
private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
|
|
||||||
|
|
||||||
public static final String TITLE_KEY = "TK";
|
public static final String TITLE_KEY = "TK";
|
||||||
public static final String SUBREDDIT_KEY = "SK";
|
public static final String SUBREDDIT_KEY = "SK";
|
||||||
public static final String ID_KEY = "IK";
|
public static final String ID_KEY = "IK";
|
||||||
|
private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE = 0;
|
||||||
@BindView(R.id.relative_layout_view_video_activity) RelativeLayout relativeLayout;
|
@BindView(R.id.relative_layout_view_video_activity)
|
||||||
@BindView(R.id.player_view_view_video_activity) PlayerView videoPlayerView;
|
RelativeLayout relativeLayout;
|
||||||
|
@BindView(R.id.player_view_view_video_activity)
|
||||||
|
PlayerView videoPlayerView;
|
||||||
|
|
||||||
private Uri mVideoUri;
|
private Uri mVideoUri;
|
||||||
private SimpleExoPlayer player;
|
private SimpleExoPlayer player;
|
||||||
@ -172,10 +172,12 @@ public class ViewVideoActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationCancel(Animator animator) {}
|
public void onAnimationCancel(Animator animator) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationRepeat(Animator animator) {}
|
public void onAnimationRepeat(Animator animator) {
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.start();
|
.start();
|
||||||
} else {
|
} else {
|
||||||
@ -227,10 +229,12 @@ public class ViewVideoActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationCancel(Animator animator) {}
|
public void onAnimationCancel(Animator animator) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onAnimationRepeat(Animator animator) {}
|
public void onAnimationRepeat(Animator animator) {
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.start();
|
.start();
|
||||||
} else {
|
} else {
|
||||||
|
@ -15,28 +15,20 @@ import com.bumptech.glide.request.RequestOptions;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.Account.Account;
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
|
import ml.docilealligator.infinityforreddit.Account.Account;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
|
|
||||||
public class AccountRecyclerViewAdapter extends RecyclerView.Adapter<AccountRecyclerViewAdapter.AccountViewHolder> {
|
public class AccountRecyclerViewAdapter extends RecyclerView.Adapter<AccountRecyclerViewAdapter.AccountViewHolder> {
|
||||||
|
|
||||||
public interface ItemSelectedListener {
|
|
||||||
void accountSelected(Account account);
|
|
||||||
void addAccountSelected();
|
|
||||||
void anonymousSelected();
|
|
||||||
void logoutSelected();
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Account> mAccounts;
|
private List<Account> mAccounts;
|
||||||
private String mCurrentAccountName;
|
private String mCurrentAccountName;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private ItemSelectedListener mItemSelectedListener;
|
private ItemSelectedListener mItemSelectedListener;
|
||||||
|
|
||||||
public AccountRecyclerViewAdapter(Context context, RequestManager glide, String currentAccountName, ItemSelectedListener itemSelectedListener) {
|
public AccountRecyclerViewAdapter(Context context, RequestManager glide, String currentAccountName, ItemSelectedListener itemSelectedListener) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mGlide = glide;
|
mGlide = glide;
|
||||||
@ -118,9 +110,21 @@ public class AccountRecyclerViewAdapter extends RecyclerView.Adapter<AccountRecy
|
|||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ItemSelectedListener {
|
||||||
|
void accountSelected(Account account);
|
||||||
|
|
||||||
|
void addAccountSelected();
|
||||||
|
|
||||||
|
void anonymousSelected();
|
||||||
|
|
||||||
|
void logoutSelected();
|
||||||
|
}
|
||||||
|
|
||||||
class AccountViewHolder extends RecyclerView.ViewHolder {
|
class AccountViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.profile_image_item_account) GifImageView profileImageGifImageView;
|
@BindView(R.id.profile_image_item_account)
|
||||||
@BindView(R.id.username_text_view_item_account) TextView usernameTextView;
|
GifImageView profileImageGifImageView;
|
||||||
|
@BindView(R.id.username_text_view_item_account)
|
||||||
|
TextView usernameTextView;
|
||||||
|
|
||||||
AccountViewHolder(@NonNull View itemView) {
|
AccountViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -39,16 +39,6 @@ import com.santalu.aspectratioimageview.AspectRatioImageView;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.CommentActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.FilteredThingActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.LinkResolverActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewImageActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewPostDetailActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewVideoActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.CommentData;
|
|
||||||
import ml.docilealligator.infinityforreddit.CustomView.AspectRatioGifImageView;
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin;
|
import io.noties.markwon.AbstractMarkwonPlugin;
|
||||||
@ -59,10 +49,20 @@ import io.noties.markwon.linkify.LinkifyPlugin;
|
|||||||
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
||||||
import jp.wasabeef.glide.transformations.BlurTransformation;
|
import jp.wasabeef.glide.transformations.BlurTransformation;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.FetchComment;
|
import ml.docilealligator.infinityforreddit.Activity.CommentActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Fragment.ModifyCommentBottomSheetFragment;
|
import ml.docilealligator.infinityforreddit.Activity.FilteredThingActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.LinkResolverActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.ViewImageActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.ViewPostDetailActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Activity.ViewVideoActivity;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.LoadSubredditIconAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.LoadUserDataAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.LoadUserDataAsyncTask;
|
||||||
|
import ml.docilealligator.infinityforreddit.CommentData;
|
||||||
|
import ml.docilealligator.infinityforreddit.CustomView.AspectRatioGifImageView;
|
||||||
|
import ml.docilealligator.infinityforreddit.FetchComment;
|
||||||
|
import ml.docilealligator.infinityforreddit.Fragment.ModifyCommentBottomSheetFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Post;
|
import ml.docilealligator.infinityforreddit.Post;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
@ -107,12 +107,6 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
private boolean mHasMoreComments;
|
private boolean mHasMoreComments;
|
||||||
private boolean loadMoreCommentsFailed;
|
private boolean loadMoreCommentsFailed;
|
||||||
|
|
||||||
public interface CommentRecyclerViewAdapterCallback {
|
|
||||||
void updatePost(Post post);
|
|
||||||
void retryFetchingComments();
|
|
||||||
void retryFetchingMoreComments();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommentAndPostRecyclerViewAdapter(Activity activity, Retrofit retrofit, Retrofit oauthRetrofit,
|
public CommentAndPostRecyclerViewAdapter(Activity activity, Retrofit retrofit, Retrofit oauthRetrofit,
|
||||||
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
|
RedditDataRoomDatabase redditDataRoomDatabase, RequestManager glide,
|
||||||
String accessToken, String accountName, Post post, Locale locale,
|
String accessToken, String accountName, Post post, Locale locale,
|
||||||
@ -783,7 +777,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingFail(int position) { }
|
public void onVoteThingFail(int position) {
|
||||||
|
}
|
||||||
}, mVisibleComments.get(commentPosition).getFullName(), newVoteType, holder.getAdapterPosition());
|
}, mVisibleComments.get(commentPosition).getFullName(), newVoteType, holder.getAdapterPosition());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -839,7 +834,8 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingFail(int position1) { }
|
public void onVoteThingFail(int position1) {
|
||||||
|
}
|
||||||
}, mVisibleComments.get(commentPosition).getFullName(), newVoteType, holder.getAdapterPosition());
|
}, mVisibleComments.get(commentPosition).getFullName(), newVoteType, holder.getAdapterPosition());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1247,37 +1243,75 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface CommentRecyclerViewAdapterCallback {
|
||||||
|
void updatePost(Post post);
|
||||||
|
|
||||||
|
void retryFetchingComments();
|
||||||
|
|
||||||
|
void retryFetchingMoreComments();
|
||||||
|
}
|
||||||
|
|
||||||
class PostDetailViewHolder extends RecyclerView.ViewHolder {
|
class PostDetailViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.icon_gif_image_view_item_post_detail) AspectRatioGifImageView mIconGifImageView;
|
@BindView(R.id.icon_gif_image_view_item_post_detail)
|
||||||
@BindView(R.id.subreddit_text_view_item_post_detail) TextView mSubredditTextView;
|
AspectRatioGifImageView mIconGifImageView;
|
||||||
@BindView(R.id.user_text_view_item_post_detail) TextView mUserTextView;
|
@BindView(R.id.subreddit_text_view_item_post_detail)
|
||||||
@BindView(R.id.post_time_text_view_item_post_detail) TextView mPostTimeTextView;
|
TextView mSubredditTextView;
|
||||||
@BindView(R.id.title_text_view_item_post_detail) TextView mTitleTextView;
|
@BindView(R.id.user_text_view_item_post_detail)
|
||||||
@BindView(R.id.content_markdown_view_item_post_detail) TextView mContentMarkdownView;
|
TextView mUserTextView;
|
||||||
@BindView(R.id.type_text_view_item_post_detail) CustomTextView mTypeTextView;
|
@BindView(R.id.post_time_text_view_item_post_detail)
|
||||||
@BindView(R.id.gilded_image_view_item_post_detail) ImageView mGildedImageView;
|
TextView mPostTimeTextView;
|
||||||
@BindView(R.id.gilded_number_text_view_item_post_detail) TextView mGildedNumberTextView;
|
@BindView(R.id.title_text_view_item_post_detail)
|
||||||
@BindView(R.id.crosspost_image_view_item_post_detail) ImageView mCrosspostImageView;
|
TextView mTitleTextView;
|
||||||
@BindView(R.id.archived_image_view_item_post_detail) ImageView mArchivedImageView;
|
@BindView(R.id.content_markdown_view_item_post_detail)
|
||||||
@BindView(R.id.locked_image_view_item_post_detail) ImageView mLockedImageView;
|
TextView mContentMarkdownView;
|
||||||
@BindView(R.id.nsfw_text_view_item_post_detail) CustomTextView mNSFWTextView;
|
@BindView(R.id.type_text_view_item_post_detail)
|
||||||
@BindView(R.id.spoiler_flair_linear_layout_item_post_detail) LinearLayout spoilerFlairlinearLayout;
|
CustomTextView mTypeTextView;
|
||||||
@BindView(R.id.spoiler_custom_text_view_item_post_detail) CustomTextView spoilerTextView;
|
@BindView(R.id.gilded_image_view_item_post_detail)
|
||||||
@BindView(R.id.flair_custom_text_view_item_post_detail) CustomTextView flairTextView;
|
ImageView mGildedImageView;
|
||||||
@BindView(R.id.link_text_view_item_post_detail) TextView linkTextView;
|
@BindView(R.id.gilded_number_text_view_item_post_detail)
|
||||||
@BindView(R.id.image_view_wrapper_item_post_detail) RelativeLayout mRelativeLayout;
|
TextView mGildedNumberTextView;
|
||||||
@BindView(R.id.load_wrapper_item_post_detail) RelativeLayout mLoadWrapper;
|
@BindView(R.id.crosspost_image_view_item_post_detail)
|
||||||
@BindView(R.id.progress_bar_item_post_detail) ProgressBar mLoadImageProgressBar;
|
ImageView mCrosspostImageView;
|
||||||
@BindView(R.id.load_image_error_text_view_item_post_detail) TextView mLoadImageErrorTextView;
|
@BindView(R.id.archived_image_view_item_post_detail)
|
||||||
@BindView(R.id.image_view_item_post_detail) AspectRatioImageView mImageView;
|
ImageView mArchivedImageView;
|
||||||
@BindView(R.id.image_view_no_preview_link_item_post_detail) ImageView mNoPreviewLinkImageView;
|
@BindView(R.id.locked_image_view_item_post_detail)
|
||||||
@BindView(R.id.plus_button_item_post_detail) ImageView mUpvoteButton;
|
ImageView mLockedImageView;
|
||||||
@BindView(R.id.score_text_view_item_post_detail) TextView mScoreTextView;
|
@BindView(R.id.nsfw_text_view_item_post_detail)
|
||||||
@BindView(R.id.minus_button_item_post_detail) ImageView mDownvoteButton;
|
CustomTextView mNSFWTextView;
|
||||||
@BindView(R.id.comment_button_item_post_detail) ImageView commentButton;
|
@BindView(R.id.spoiler_flair_linear_layout_item_post_detail)
|
||||||
@BindView(R.id.comments_count_item_post_detail) TextView commentsCountTextView;
|
LinearLayout spoilerFlairlinearLayout;
|
||||||
@BindView(R.id.save_button_item_post_detail) ImageView saveButton;
|
@BindView(R.id.spoiler_custom_text_view_item_post_detail)
|
||||||
@BindView(R.id.share_button_item_post_detail) ImageView mShareButton;
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.flair_custom_text_view_item_post_detail)
|
||||||
|
CustomTextView flairTextView;
|
||||||
|
@BindView(R.id.link_text_view_item_post_detail)
|
||||||
|
TextView linkTextView;
|
||||||
|
@BindView(R.id.image_view_wrapper_item_post_detail)
|
||||||
|
RelativeLayout mRelativeLayout;
|
||||||
|
@BindView(R.id.load_wrapper_item_post_detail)
|
||||||
|
RelativeLayout mLoadWrapper;
|
||||||
|
@BindView(R.id.progress_bar_item_post_detail)
|
||||||
|
ProgressBar mLoadImageProgressBar;
|
||||||
|
@BindView(R.id.load_image_error_text_view_item_post_detail)
|
||||||
|
TextView mLoadImageErrorTextView;
|
||||||
|
@BindView(R.id.image_view_item_post_detail)
|
||||||
|
AspectRatioImageView mImageView;
|
||||||
|
@BindView(R.id.image_view_no_preview_link_item_post_detail)
|
||||||
|
ImageView mNoPreviewLinkImageView;
|
||||||
|
@BindView(R.id.plus_button_item_post_detail)
|
||||||
|
ImageView mUpvoteButton;
|
||||||
|
@BindView(R.id.score_text_view_item_post_detail)
|
||||||
|
TextView mScoreTextView;
|
||||||
|
@BindView(R.id.minus_button_item_post_detail)
|
||||||
|
ImageView mDownvoteButton;
|
||||||
|
@BindView(R.id.comment_button_item_post_detail)
|
||||||
|
ImageView commentButton;
|
||||||
|
@BindView(R.id.comments_count_item_post_detail)
|
||||||
|
TextView commentsCountTextView;
|
||||||
|
@BindView(R.id.save_button_item_post_detail)
|
||||||
|
ImageView saveButton;
|
||||||
|
@BindView(R.id.share_button_item_post_detail)
|
||||||
|
ImageView mShareButton;
|
||||||
|
|
||||||
PostDetailViewHolder(@NonNull View itemView) {
|
PostDetailViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -1461,19 +1495,32 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
|
|
||||||
class CommentViewHolder extends RecyclerView.ViewHolder {
|
class CommentViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.author_text_view_item_post_comment) TextView authorTextView;
|
@BindView(R.id.author_text_view_item_post_comment)
|
||||||
@BindView(R.id.author_type_image_view_item_comment) ImageView authorTypeImageView;
|
TextView authorTextView;
|
||||||
@BindView(R.id.comment_time_text_view_item_post_comment) TextView commentTimeTextView;
|
@BindView(R.id.author_type_image_view_item_comment)
|
||||||
@BindView(R.id.comment_markdown_view_item_post_comment) TextView commentMarkdownView;
|
ImageView authorTypeImageView;
|
||||||
@BindView(R.id.up_vote_button_item_post_comment) ImageView upVoteButton;
|
@BindView(R.id.comment_time_text_view_item_post_comment)
|
||||||
@BindView(R.id.score_text_view_item_post_comment) TextView scoreTextView;
|
TextView commentTimeTextView;
|
||||||
@BindView(R.id.down_vote_button_item_post_comment) ImageView downVoteButton;
|
@BindView(R.id.comment_markdown_view_item_post_comment)
|
||||||
@BindView(R.id.more_button_item_post_comment) ImageView moreButton;
|
TextView commentMarkdownView;
|
||||||
@BindView(R.id.save_button_item_post_comment) ImageView saveButton;
|
@BindView(R.id.up_vote_button_item_post_comment)
|
||||||
@BindView(R.id.expand_button_item_post_comment) ImageView expandButton;
|
ImageView upVoteButton;
|
||||||
@BindView(R.id.share_button_item_post_comment) ImageView shareButton;
|
@BindView(R.id.score_text_view_item_post_comment)
|
||||||
@BindView(R.id.reply_button_item_post_comment) ImageView replyButton;
|
TextView scoreTextView;
|
||||||
@BindView(R.id.vertical_block_item_post_comment) View verticalBlock;
|
@BindView(R.id.down_vote_button_item_post_comment)
|
||||||
|
ImageView downVoteButton;
|
||||||
|
@BindView(R.id.more_button_item_post_comment)
|
||||||
|
ImageView moreButton;
|
||||||
|
@BindView(R.id.save_button_item_post_comment)
|
||||||
|
ImageView saveButton;
|
||||||
|
@BindView(R.id.expand_button_item_post_comment)
|
||||||
|
ImageView expandButton;
|
||||||
|
@BindView(R.id.share_button_item_post_comment)
|
||||||
|
ImageView shareButton;
|
||||||
|
@BindView(R.id.reply_button_item_post_comment)
|
||||||
|
ImageView replyButton;
|
||||||
|
@BindView(R.id.vertical_block_item_post_comment)
|
||||||
|
View verticalBlock;
|
||||||
|
|
||||||
CommentViewHolder(View itemView) {
|
CommentViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -1529,8 +1576,10 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
|
|
||||||
class LoadMoreChildCommentsViewHolder extends RecyclerView.ViewHolder {
|
class LoadMoreChildCommentsViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.vertical_block_item_load_more_comments) View verticalBlock;
|
@BindView(R.id.vertical_block_item_load_more_comments)
|
||||||
@BindView(R.id.placeholder_text_view_item_load_more_comments) TextView placeholderTextView;
|
View verticalBlock;
|
||||||
|
@BindView(R.id.placeholder_text_view_item_load_more_comments)
|
||||||
|
TextView placeholderTextView;
|
||||||
|
|
||||||
LoadMoreChildCommentsViewHolder(View itemView) {
|
LoadMoreChildCommentsViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -1744,8 +1793,10 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
|||||||
}
|
}
|
||||||
|
|
||||||
class LoadMoreCommentsFailedViewHolder extends RecyclerView.ViewHolder {
|
class LoadMoreCommentsFailedViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.error_text_view_item_comment_footer_error) TextView errorTextView;
|
@BindView(R.id.error_text_view_item_comment_footer_error)
|
||||||
@BindView(R.id.retry_button_item_comment_footer_error) Button retryButton;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_comment_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
LoadMoreCommentsFailedViewHolder(@NonNull View itemView) {
|
LoadMoreCommentsFailedViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -43,6 +43,20 @@ import ml.docilealligator.infinityforreddit.VoteThing;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<CommentData, RecyclerView.ViewHolder> {
|
public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<CommentData, RecyclerView.ViewHolder> {
|
||||||
|
private static final int VIEW_TYPE_DATA = 0;
|
||||||
|
private static final int VIEW_TYPE_ERROR = 1;
|
||||||
|
private static final int VIEW_TYPE_LOADING = 2;
|
||||||
|
private static final DiffUtil.ItemCallback<CommentData> DIFF_CALLBACK = new DiffUtil.ItemCallback<CommentData>() {
|
||||||
|
@Override
|
||||||
|
public boolean areItemsTheSame(@NonNull CommentData commentData, @NonNull CommentData t1) {
|
||||||
|
return commentData.getId().equals(t1.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areContentsTheSame(@NonNull CommentData commentData, @NonNull CommentData t1) {
|
||||||
|
return commentData.getCommentContent().equals(t1.getCommentContent());
|
||||||
|
}
|
||||||
|
};
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private Retrofit mOauthRetrofit;
|
private Retrofit mOauthRetrofit;
|
||||||
private Markwon mMarkwon;
|
private Markwon mMarkwon;
|
||||||
@ -50,18 +64,9 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private int mTextColorPrimaryDark;
|
private int mTextColorPrimaryDark;
|
||||||
private int mColorAccent;
|
private int mColorAccent;
|
||||||
|
|
||||||
private static final int VIEW_TYPE_DATA = 0;
|
|
||||||
private static final int VIEW_TYPE_ERROR = 1;
|
|
||||||
private static final int VIEW_TYPE_LOADING = 2;
|
|
||||||
|
|
||||||
private NetworkState networkState;
|
private NetworkState networkState;
|
||||||
private RetryLoadingMoreCallback mRetryLoadingMoreCallback;
|
private RetryLoadingMoreCallback mRetryLoadingMoreCallback;
|
||||||
|
|
||||||
public interface RetryLoadingMoreCallback {
|
|
||||||
void retryLoadingMore();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommentsListingRecyclerViewAdapter(Context context, Retrofit oauthRetrofit,
|
public CommentsListingRecyclerViewAdapter(Context context, Retrofit oauthRetrofit,
|
||||||
String accessToken, String accountName,
|
String accessToken, String accountName,
|
||||||
RetryLoadingMoreCallback retryLoadingMoreCallback) {
|
RetryLoadingMoreCallback retryLoadingMoreCallback) {
|
||||||
@ -94,18 +99,6 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
mColorAccent = mContext.getResources().getColor(R.color.colorAccent);
|
mColorAccent = mContext.getResources().getColor(R.color.colorAccent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<CommentData> DIFF_CALLBACK = new DiffUtil.ItemCallback<CommentData>() {
|
|
||||||
@Override
|
|
||||||
public boolean areItemsTheSame(@NonNull CommentData commentData, @NonNull CommentData t1) {
|
|
||||||
return commentData.getId().equals(t1.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areContentsTheSame(@NonNull CommentData commentData, @NonNull CommentData t1) {
|
|
||||||
return commentData.getCommentContent().equals(t1.getCommentContent());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@ -246,7 +239,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingFail(int position) { }
|
public void onVoteThingFail(int position) {
|
||||||
|
}
|
||||||
}, comment.getFullName(), newVoteType, holder.getAdapterPosition());
|
}, comment.getFullName(), newVoteType, holder.getAdapterPosition());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -295,7 +289,8 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVoteThingFail(int position1) { }
|
public void onVoteThingFail(int position1) {
|
||||||
|
}
|
||||||
}, comment.getFullName(), newVoteType, holder.getAdapterPosition());
|
}, comment.getFullName(), newVoteType, holder.getAdapterPosition());
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -397,19 +392,35 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface RetryLoadingMoreCallback {
|
||||||
|
void retryLoadingMore();
|
||||||
|
}
|
||||||
|
|
||||||
class DataViewHolder extends RecyclerView.ViewHolder {
|
class DataViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.linear_layout_item_comment) LinearLayout linearLayout;
|
@BindView(R.id.linear_layout_item_comment)
|
||||||
@BindView(R.id.vertical_block_item_post_comment) View verticalBlock;
|
LinearLayout linearLayout;
|
||||||
@BindView(R.id.author_text_view_item_post_comment) TextView authorTextView;
|
@BindView(R.id.vertical_block_item_post_comment)
|
||||||
@BindView(R.id.comment_time_text_view_item_post_comment) TextView commentTimeTextView;
|
View verticalBlock;
|
||||||
@BindView(R.id.comment_markdown_view_item_post_comment) TextView commentMarkdownView;
|
@BindView(R.id.author_text_view_item_post_comment)
|
||||||
@BindView(R.id.up_vote_button_item_post_comment) ImageView upvoteButton;
|
TextView authorTextView;
|
||||||
@BindView(R.id.score_text_view_item_post_comment) TextView scoreTextView;
|
@BindView(R.id.comment_time_text_view_item_post_comment)
|
||||||
@BindView(R.id.down_vote_button_item_post_comment) ImageView downvoteButton;
|
TextView commentTimeTextView;
|
||||||
@BindView(R.id.more_button_item_post_comment) ImageView moreButton;
|
@BindView(R.id.comment_markdown_view_item_post_comment)
|
||||||
@BindView(R.id.save_button_item_post_comment) ImageView saveButton;
|
TextView commentMarkdownView;
|
||||||
@BindView(R.id.share_button_item_post_comment) ImageView shareButton;
|
@BindView(R.id.up_vote_button_item_post_comment)
|
||||||
@BindView(R.id.reply_button_item_post_comment) ImageView replyButton;
|
ImageView upvoteButton;
|
||||||
|
@BindView(R.id.score_text_view_item_post_comment)
|
||||||
|
TextView scoreTextView;
|
||||||
|
@BindView(R.id.down_vote_button_item_post_comment)
|
||||||
|
ImageView downvoteButton;
|
||||||
|
@BindView(R.id.more_button_item_post_comment)
|
||||||
|
ImageView moreButton;
|
||||||
|
@BindView(R.id.save_button_item_post_comment)
|
||||||
|
ImageView saveButton;
|
||||||
|
@BindView(R.id.share_button_item_post_comment)
|
||||||
|
ImageView shareButton;
|
||||||
|
@BindView(R.id.reply_button_item_post_comment)
|
||||||
|
ImageView replyButton;
|
||||||
|
|
||||||
DataViewHolder(View itemView) {
|
DataViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -418,8 +429,10 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.error_text_view_item_footer_error) TextView errorTextView;
|
@BindView(R.id.error_text_view_item_footer_error)
|
||||||
@BindView(R.id.retry_button_item_footer_error) Button retryButton;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
ErrorViewHolder(View itemView) {
|
ErrorViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -23,14 +23,9 @@ import ml.docilealligator.infinityforreddit.Flair;
|
|||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
|
|
||||||
public class FlairBottomSheetRecyclerViewAdapter extends RecyclerView.Adapter<FlairBottomSheetRecyclerViewAdapter.FlairViewHolder> {
|
public class FlairBottomSheetRecyclerViewAdapter extends RecyclerView.Adapter<FlairBottomSheetRecyclerViewAdapter.FlairViewHolder> {
|
||||||
public interface ItemClickListener {
|
|
||||||
void onClick(Flair flair);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private ArrayList<Flair> flairs;
|
private ArrayList<Flair> flairs;
|
||||||
private ItemClickListener itemClickListener;
|
private ItemClickListener itemClickListener;
|
||||||
|
|
||||||
public FlairBottomSheetRecyclerViewAdapter(Context context, ItemClickListener itemClickListener) {
|
public FlairBottomSheetRecyclerViewAdapter(Context context, ItemClickListener itemClickListener) {
|
||||||
this.context = context;
|
this.context = context;
|
||||||
this.itemClickListener = itemClickListener;
|
this.itemClickListener = itemClickListener;
|
||||||
@ -93,10 +88,16 @@ public class FlairBottomSheetRecyclerViewAdapter extends RecyclerView.Adapter<Fl
|
|||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ItemClickListener {
|
||||||
|
void onClick(Flair flair);
|
||||||
|
}
|
||||||
|
|
||||||
class FlairViewHolder extends RecyclerView.ViewHolder {
|
class FlairViewHolder extends RecyclerView.ViewHolder {
|
||||||
View itemView;
|
View itemView;
|
||||||
@BindView(R.id.flair_text_view_item_flair) TextView flairTextView;
|
@BindView(R.id.flair_text_view_item_flair)
|
||||||
@BindView(R.id.edit_flair_image_view_item_flair) ImageView editFlairImageView;
|
TextView flairTextView;
|
||||||
|
@BindView(R.id.edit_flair_image_view_item_flair)
|
||||||
|
ImageView editFlairImageView;
|
||||||
|
|
||||||
FlairViewHolder(@NonNull View itemView) {
|
FlairViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -16,10 +16,10 @@ import com.bumptech.glide.request.RequestOptions;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
|
|
||||||
public class FollowedUsersRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
public class FollowedUsersRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
|
@ -35,20 +35,25 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
private static final int VIEW_TYPE_DATA = 0;
|
private static final int VIEW_TYPE_DATA = 0;
|
||||||
private static final int VIEW_TYPE_ERROR = 1;
|
private static final int VIEW_TYPE_ERROR = 1;
|
||||||
private static final int VIEW_TYPE_LOADING = 2;
|
private static final int VIEW_TYPE_LOADING = 2;
|
||||||
|
private static final DiffUtil.ItemCallback<Message> DIFF_CALLBACK = new DiffUtil.ItemCallback<Message>() {
|
||||||
|
@Override
|
||||||
|
public boolean areItemsTheSame(@NonNull Message message, @NonNull Message t1) {
|
||||||
|
return message.getId().equals(t1.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areContentsTheSame(@NonNull Message message, @NonNull Message t1) {
|
||||||
|
return message.getBody().equals(t1.getBody());
|
||||||
|
}
|
||||||
|
};
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private Retrofit mOauthRetrofit;
|
private Retrofit mOauthRetrofit;
|
||||||
private Markwon mMarkwon;
|
private Markwon mMarkwon;
|
||||||
private String mAccessToken;
|
private String mAccessToken;
|
||||||
private Resources mResources;
|
private Resources mResources;
|
||||||
|
|
||||||
private NetworkState networkState;
|
private NetworkState networkState;
|
||||||
private RetryLoadingMoreCallback mRetryLoadingMoreCallback;
|
private RetryLoadingMoreCallback mRetryLoadingMoreCallback;
|
||||||
|
|
||||||
public interface RetryLoadingMoreCallback {
|
|
||||||
void retryLoadingMore();
|
|
||||||
}
|
|
||||||
|
|
||||||
public MessageRecyclerViewAdapter(Context context, Retrofit oauthRetrofit, String accessToken,
|
public MessageRecyclerViewAdapter(Context context, Retrofit oauthRetrofit, String accessToken,
|
||||||
RetryLoadingMoreCallback retryLoadingMoreCallback) {
|
RetryLoadingMoreCallback retryLoadingMoreCallback) {
|
||||||
super(DIFF_CALLBACK);
|
super(DIFF_CALLBACK);
|
||||||
@ -78,18 +83,6 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
mResources = context.getResources();
|
mResources = context.getResources();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<Message> DIFF_CALLBACK = new DiffUtil.ItemCallback<Message>() {
|
|
||||||
@Override
|
|
||||||
public boolean areItemsTheSame(@NonNull Message message, @NonNull Message t1) {
|
|
||||||
return message.getId().equals(t1.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areContentsTheSame(@NonNull Message message, @NonNull Message t1) {
|
|
||||||
return message.getBody().equals(t1.getBody());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@ -139,7 +132,8 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
ReadMessage.readMessage(mOauthRetrofit, mAccessToken, message.getFullname(),
|
ReadMessage.readMessage(mOauthRetrofit, mAccessToken, message.getFullname(),
|
||||||
new ReadMessage.ReadMessageListener() {
|
new ReadMessage.ReadMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void readSuccess() {}
|
public void readSuccess() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFailed() {
|
public void readFailed() {
|
||||||
@ -215,12 +209,20 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface RetryLoadingMoreCallback {
|
||||||
|
void retryLoadingMore();
|
||||||
|
}
|
||||||
|
|
||||||
class DataViewHolder extends RecyclerView.ViewHolder {
|
class DataViewHolder extends RecyclerView.ViewHolder {
|
||||||
View itemView;
|
View itemView;
|
||||||
@BindView(R.id.author_text_view_item_message) TextView authorTextView;
|
@BindView(R.id.author_text_view_item_message)
|
||||||
@BindView(R.id.subject_text_view_item_message) TextView subjectTextView;
|
TextView authorTextView;
|
||||||
@BindView(R.id.title_text_view_item_message) TextView titleTextView;
|
@BindView(R.id.subject_text_view_item_message)
|
||||||
@BindView(R.id.content_custom_markwon_view_item_message) TextView contentCustomMarkwonView;
|
TextView subjectTextView;
|
||||||
|
@BindView(R.id.title_text_view_item_message)
|
||||||
|
TextView titleTextView;
|
||||||
|
@BindView(R.id.content_custom_markwon_view_item_message)
|
||||||
|
TextView contentCustomMarkwonView;
|
||||||
|
|
||||||
DataViewHolder(View itemView) {
|
DataViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -230,8 +232,10 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.error_text_view_item_footer_error) TextView errorTextView;
|
@BindView(R.id.error_text_view_item_footer_error)
|
||||||
@BindView(R.id.retry_button_item_footer_error) Button retryButton;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
ErrorViewHolder(View itemView) {
|
ErrorViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -70,6 +70,22 @@ import retrofit2.Retrofit;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView.ViewHolder> {
|
public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView.ViewHolder> {
|
||||||
|
private static final int VIEW_TYPE_DATA = 0;
|
||||||
|
private static final int VIEW_TYPE_ERROR = 1;
|
||||||
|
private static final int VIEW_TYPE_LOADING = 2;
|
||||||
|
private static final DiffUtil.ItemCallback<Post> DIFF_CALLBACK = new DiffUtil.ItemCallback<Post>() {
|
||||||
|
@Override
|
||||||
|
public boolean areItemsTheSame(@NonNull Post post, @NonNull Post t1) {
|
||||||
|
return post.getId().equals(t1.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areContentsTheSame(@NonNull Post post, @NonNull Post t1) {
|
||||||
|
return post.getTitle().equals(t1.getTitle()) && !(post.getSelfText() != null && t1.getSelfText() != null
|
||||||
|
&& !post.getSelfText().equals(t1.getSelfText()))
|
||||||
|
&& post.getScore() == t1.getScore() && post.getVoteType() == t1.getVoteType();
|
||||||
|
}
|
||||||
|
};
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private Retrofit mOauthRetrofit;
|
private Retrofit mOauthRetrofit;
|
||||||
private Retrofit mRetrofit;
|
private Retrofit mRetrofit;
|
||||||
@ -82,19 +98,9 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
private boolean mDisplaySubredditName;
|
private boolean mDisplaySubredditName;
|
||||||
private boolean mNeedBlurNSFW;
|
private boolean mNeedBlurNSFW;
|
||||||
private boolean mNeedBlurSpoiler;
|
private boolean mNeedBlurSpoiler;
|
||||||
|
|
||||||
private static final int VIEW_TYPE_DATA = 0;
|
|
||||||
private static final int VIEW_TYPE_ERROR = 1;
|
|
||||||
private static final int VIEW_TYPE_LOADING = 2;
|
|
||||||
|
|
||||||
private NetworkState networkState;
|
private NetworkState networkState;
|
||||||
private Callback mCallback;
|
private Callback mCallback;
|
||||||
|
|
||||||
public interface Callback {
|
|
||||||
void retryLoadingMore();
|
|
||||||
void typeChipClicked(int filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
public PostRecyclerViewAdapter(Context context, Retrofit oauthRetrofit, Retrofit retrofit,
|
public PostRecyclerViewAdapter(Context context, Retrofit oauthRetrofit, Retrofit retrofit,
|
||||||
RedditDataRoomDatabase redditDataRoomDatabase, String accessToken,
|
RedditDataRoomDatabase redditDataRoomDatabase, String accessToken,
|
||||||
int postType, boolean displaySubredditName, boolean needBlurNSFW,
|
int postType, boolean displaySubredditName, boolean needBlurNSFW,
|
||||||
@ -116,20 +122,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<Post> DIFF_CALLBACK = new DiffUtil.ItemCallback<Post>() {
|
|
||||||
@Override
|
|
||||||
public boolean areItemsTheSame(@NonNull Post post, @NonNull Post t1) {
|
|
||||||
return post.getId().equals(t1.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areContentsTheSame(@NonNull Post post, @NonNull Post t1) {
|
|
||||||
return post.getTitle().equals(t1.getTitle()) && !(post.getSelfText() != null && t1.getSelfText() != null
|
|
||||||
&& !post.getSelfText().equals(t1.getSelfText()))
|
|
||||||
&& post.getScore() == t1.getScore() && post.getVoteType() == t1.getVoteType();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public void setCanStartActivity(boolean canStartActivity) {
|
public void setCanStartActivity(boolean canStartActivity) {
|
||||||
this.canStartActivity = canStartActivity;
|
this.canStartActivity = canStartActivity;
|
||||||
}
|
}
|
||||||
@ -789,66 +781,6 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class DataViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
@BindView(R.id.card_view_item_post) MaterialCardView cardView;
|
|
||||||
@BindView(R.id.icon_name_linear_layout_view_item_post) LinearLayout iconNameLinearLayout;
|
|
||||||
@BindView(R.id.icon_gif_image_view_item_post) AspectRatioGifImageView iconGifImageView;
|
|
||||||
@BindView(R.id.name_text_view_item_post) TextView nameTextView;
|
|
||||||
@BindView(R.id.stickied_post_image_view_item_post) ImageView stickiedPostImageView;
|
|
||||||
@BindView(R.id.post_time_text_view_best_item_post) TextView postTimeTextView;
|
|
||||||
@BindView(R.id.title_text_view_best_item_post) TextView titleTextView;
|
|
||||||
@BindView(R.id.type_text_view_item_post) CustomTextView typeTextView;
|
|
||||||
@BindView(R.id.gilded_image_view_item_post) ImageView gildedImageView;
|
|
||||||
@BindView(R.id.gilded_number_text_view_item_post) TextView gildedNumberTextView;
|
|
||||||
@BindView(R.id.archived_image_view_item_post) ImageView archivedImageView;
|
|
||||||
@BindView(R.id.locked_image_view_item_post) ImageView lockedImageView;
|
|
||||||
@BindView(R.id.crosspost_image_view_item_post) ImageView crosspostImageView;
|
|
||||||
@BindView(R.id.nsfw_text_view_item_post) CustomTextView nsfwTextView;
|
|
||||||
@BindView(R.id.spoiler_flair_linear_layout_item_post) LinearLayout spoilerFlairLinearLayout;
|
|
||||||
@BindView(R.id.spoiler_custom_text_view_item_post) CustomTextView spoilerTextView;
|
|
||||||
@BindView(R.id.flair_custom_text_view_item_post) CustomTextView flairTextView;
|
|
||||||
@BindView(R.id.link_text_view_item_post) TextView linkTextView;
|
|
||||||
@BindView(R.id.image_view_wrapper_item_post) RelativeLayout relativeLayout;
|
|
||||||
@BindView(R.id.progress_bar_item_post) ProgressBar progressBar;
|
|
||||||
@BindView(R.id.image_view_best_post_item) AspectRatioGifImageView imageView;
|
|
||||||
@BindView(R.id.load_image_error_relative_layout_item_post) RelativeLayout errorRelativeLayout;
|
|
||||||
@BindView(R.id.image_view_no_preview_link_item_post) ImageView noPreviewLinkImageView;
|
|
||||||
@BindView(R.id.plus_button_item_post) ImageView upvoteButton;
|
|
||||||
@BindView(R.id.score_text_view_item_post) TextView scoreTextView;
|
|
||||||
@BindView(R.id.minus_button_item_post) ImageView downvoteButton;
|
|
||||||
@BindView(R.id.comment_button_item_post) ImageView commentButton;
|
|
||||||
@BindView(R.id.comments_count_item_post) TextView commentsCountTextView;
|
|
||||||
@BindView(R.id.save_button_item_post) ImageView saveButton;
|
|
||||||
@BindView(R.id.share_button_item_post) ImageView shareButton;
|
|
||||||
|
|
||||||
DataViewHolder(View itemView) {
|
|
||||||
super(itemView);
|
|
||||||
ButterKnife.bind(this, itemView);
|
|
||||||
scoreTextView.setOnClickListener(view -> {
|
|
||||||
//Do nothing in order to prevent clicking this to start ViewPostDetailActivity
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
@BindView(R.id.error_text_view_item_footer_error) TextView errorTextView;
|
|
||||||
@BindView(R.id.retry_button_item_footer_error) Button retryButton;
|
|
||||||
|
|
||||||
ErrorViewHolder(View itemView) {
|
|
||||||
super(itemView);
|
|
||||||
ButterKnife.bind(this, itemView);
|
|
||||||
errorTextView.setText(R.string.load_posts_error);
|
|
||||||
retryButton.setOnClickListener(view -> mCallback.retryLoadingMore());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class LoadingViewHolder extends RecyclerView.ViewHolder {
|
|
||||||
LoadingViewHolder(@NonNull View itemView) {
|
|
||||||
super(itemView);
|
|
||||||
ButterKnife.bind(this, itemView);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
||||||
if (holder instanceof DataViewHolder) {
|
if (holder instanceof DataViewHolder) {
|
||||||
@ -875,4 +807,102 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
|||||||
((DataViewHolder) holder).downvoteButton.clearColorFilter();
|
((DataViewHolder) holder).downvoteButton.clearColorFilter();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface Callback {
|
||||||
|
void retryLoadingMore();
|
||||||
|
|
||||||
|
void typeChipClicked(int filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
class DataViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
@BindView(R.id.card_view_item_post)
|
||||||
|
MaterialCardView cardView;
|
||||||
|
@BindView(R.id.icon_name_linear_layout_view_item_post)
|
||||||
|
LinearLayout iconNameLinearLayout;
|
||||||
|
@BindView(R.id.icon_gif_image_view_item_post)
|
||||||
|
AspectRatioGifImageView iconGifImageView;
|
||||||
|
@BindView(R.id.name_text_view_item_post)
|
||||||
|
TextView nameTextView;
|
||||||
|
@BindView(R.id.stickied_post_image_view_item_post)
|
||||||
|
ImageView stickiedPostImageView;
|
||||||
|
@BindView(R.id.post_time_text_view_best_item_post)
|
||||||
|
TextView postTimeTextView;
|
||||||
|
@BindView(R.id.title_text_view_best_item_post)
|
||||||
|
TextView titleTextView;
|
||||||
|
@BindView(R.id.type_text_view_item_post)
|
||||||
|
CustomTextView typeTextView;
|
||||||
|
@BindView(R.id.gilded_image_view_item_post)
|
||||||
|
ImageView gildedImageView;
|
||||||
|
@BindView(R.id.gilded_number_text_view_item_post)
|
||||||
|
TextView gildedNumberTextView;
|
||||||
|
@BindView(R.id.archived_image_view_item_post)
|
||||||
|
ImageView archivedImageView;
|
||||||
|
@BindView(R.id.locked_image_view_item_post)
|
||||||
|
ImageView lockedImageView;
|
||||||
|
@BindView(R.id.crosspost_image_view_item_post)
|
||||||
|
ImageView crosspostImageView;
|
||||||
|
@BindView(R.id.nsfw_text_view_item_post)
|
||||||
|
CustomTextView nsfwTextView;
|
||||||
|
@BindView(R.id.spoiler_flair_linear_layout_item_post)
|
||||||
|
LinearLayout spoilerFlairLinearLayout;
|
||||||
|
@BindView(R.id.spoiler_custom_text_view_item_post)
|
||||||
|
CustomTextView spoilerTextView;
|
||||||
|
@BindView(R.id.flair_custom_text_view_item_post)
|
||||||
|
CustomTextView flairTextView;
|
||||||
|
@BindView(R.id.link_text_view_item_post)
|
||||||
|
TextView linkTextView;
|
||||||
|
@BindView(R.id.image_view_wrapper_item_post)
|
||||||
|
RelativeLayout relativeLayout;
|
||||||
|
@BindView(R.id.progress_bar_item_post)
|
||||||
|
ProgressBar progressBar;
|
||||||
|
@BindView(R.id.image_view_best_post_item)
|
||||||
|
AspectRatioGifImageView imageView;
|
||||||
|
@BindView(R.id.load_image_error_relative_layout_item_post)
|
||||||
|
RelativeLayout errorRelativeLayout;
|
||||||
|
@BindView(R.id.image_view_no_preview_link_item_post)
|
||||||
|
ImageView noPreviewLinkImageView;
|
||||||
|
@BindView(R.id.plus_button_item_post)
|
||||||
|
ImageView upvoteButton;
|
||||||
|
@BindView(R.id.score_text_view_item_post)
|
||||||
|
TextView scoreTextView;
|
||||||
|
@BindView(R.id.minus_button_item_post)
|
||||||
|
ImageView downvoteButton;
|
||||||
|
@BindView(R.id.comment_button_item_post)
|
||||||
|
ImageView commentButton;
|
||||||
|
@BindView(R.id.comments_count_item_post)
|
||||||
|
TextView commentsCountTextView;
|
||||||
|
@BindView(R.id.save_button_item_post)
|
||||||
|
ImageView saveButton;
|
||||||
|
@BindView(R.id.share_button_item_post)
|
||||||
|
ImageView shareButton;
|
||||||
|
|
||||||
|
DataViewHolder(View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
ButterKnife.bind(this, itemView);
|
||||||
|
scoreTextView.setOnClickListener(view -> {
|
||||||
|
//Do nothing in order to prevent clicking this to start ViewPostDetailActivity
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
@BindView(R.id.error_text_view_item_footer_error)
|
||||||
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
|
ErrorViewHolder(View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
ButterKnife.bind(this, itemView);
|
||||||
|
errorTextView.setText(R.string.load_posts_error);
|
||||||
|
retryButton.setOnClickListener(view -> mCallback.retryLoadingMore());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class LoadingViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
LoadingViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
ButterKnife.bind(this, itemView);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -84,8 +84,10 @@ public class RulesRecyclerViewAdapter extends RecyclerView.Adapter<RulesRecycler
|
|||||||
}
|
}
|
||||||
|
|
||||||
class RuleViewHolder extends RecyclerView.ViewHolder {
|
class RuleViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.short_name_text_view_item_rule) TextView shortNameTextView;
|
@BindView(R.id.short_name_text_view_item_rule)
|
||||||
@BindView(R.id.description_markwon_view_item_rule) TextView descriptionMarkwonView;
|
TextView shortNameTextView;
|
||||||
|
@BindView(R.id.description_markwon_view_item_rule)
|
||||||
|
TextView descriptionMarkwonView;
|
||||||
|
|
||||||
RuleViewHolder(@NonNull View itemView) {
|
RuleViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
|
@ -33,17 +33,21 @@ import pl.droidsonroids.gif.GifImageView;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<SubredditData, RecyclerView.ViewHolder> {
|
public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<SubredditData, RecyclerView.ViewHolder> {
|
||||||
public interface Callback {
|
|
||||||
void retryLoadingMore();
|
|
||||||
void subredditSelected(String subredditName, String iconUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RequestManager glide;
|
|
||||||
|
|
||||||
private static final int VIEW_TYPE_DATA = 0;
|
private static final int VIEW_TYPE_DATA = 0;
|
||||||
private static final int VIEW_TYPE_ERROR = 1;
|
private static final int VIEW_TYPE_ERROR = 1;
|
||||||
private static final int VIEW_TYPE_LOADING = 2;
|
private static final int VIEW_TYPE_LOADING = 2;
|
||||||
|
private static final DiffUtil.ItemCallback<SubredditData> DIFF_CALLBACK = new DiffUtil.ItemCallback<SubredditData>() {
|
||||||
|
@Override
|
||||||
|
public boolean areItemsTheSame(@NonNull SubredditData oldItem, @NonNull SubredditData newItem) {
|
||||||
|
return oldItem.getId().equals(newItem.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areContentsTheSame(@NonNull SubredditData oldItem, @NonNull SubredditData newItem) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private RequestManager glide;
|
||||||
private Context context;
|
private Context context;
|
||||||
private Retrofit oauthRetrofit;
|
private Retrofit oauthRetrofit;
|
||||||
private Retrofit retrofit;
|
private Retrofit retrofit;
|
||||||
@ -69,18 +73,6 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
|
|||||||
glide = Glide.with(context.getApplicationContext());
|
glide = Glide.with(context.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<SubredditData> DIFF_CALLBACK = new DiffUtil.ItemCallback<SubredditData>() {
|
|
||||||
@Override
|
|
||||||
public boolean areItemsTheSame(@NonNull SubredditData oldItem, @NonNull SubredditData newItem) {
|
|
||||||
return oldItem.getId().equals(newItem.getId());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areContentsTheSame(@NonNull SubredditData oldItem, @NonNull SubredditData newItem) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@ -190,11 +182,29 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
||||||
|
if (holder instanceof DataViewHolder) {
|
||||||
|
glide.clear(((DataViewHolder) holder).iconGifImageView);
|
||||||
|
((DataViewHolder) holder).subscribeButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface Callback {
|
||||||
|
void retryLoadingMore();
|
||||||
|
|
||||||
|
void subredditSelected(String subredditName, String iconUrl);
|
||||||
|
}
|
||||||
|
|
||||||
class DataViewHolder extends RecyclerView.ViewHolder {
|
class DataViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.constraint_layout_item_subreddit_listing) ConstraintLayout constraintLayout;
|
@BindView(R.id.constraint_layout_item_subreddit_listing)
|
||||||
@BindView(R.id.subreddit_icon_gif_image_view_item_subreddit_listing) GifImageView iconGifImageView;
|
ConstraintLayout constraintLayout;
|
||||||
@BindView(R.id.subreddit_name_text_view_item_subreddit_listing) TextView subredditNameTextView;
|
@BindView(R.id.subreddit_icon_gif_image_view_item_subreddit_listing)
|
||||||
@BindView(R.id.subscribe_image_view_item_subreddit_listing) ImageView subscribeButton;
|
GifImageView iconGifImageView;
|
||||||
|
@BindView(R.id.subreddit_name_text_view_item_subreddit_listing)
|
||||||
|
TextView subredditNameTextView;
|
||||||
|
@BindView(R.id.subscribe_image_view_item_subreddit_listing)
|
||||||
|
ImageView subscribeButton;
|
||||||
|
|
||||||
DataViewHolder(View itemView) {
|
DataViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -203,8 +213,10 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.error_text_view_item_footer_error) TextView errorTextView;
|
@BindView(R.id.error_text_view_item_footer_error)
|
||||||
@BindView(R.id.retry_button_item_footer_error) Button retryButton;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
ErrorViewHolder(View itemView) {
|
ErrorViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -220,12 +232,4 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter<Subred
|
|||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
|
||||||
if(holder instanceof DataViewHolder) {
|
|
||||||
glide.clear(((DataViewHolder) holder).iconGifImageView);
|
|
||||||
((DataViewHolder) holder).subscribeButton.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,10 @@ import com.bumptech.glide.request.RequestOptions;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditData;
|
import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.SubscribedSubredditData;
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
|
|
||||||
public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||||
@ -32,10 +32,6 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
private String userIconUrl;
|
private String userIconUrl;
|
||||||
private boolean hasClearSelectionRow;
|
private boolean hasClearSelectionRow;
|
||||||
|
|
||||||
public interface ItemClickListener {
|
|
||||||
void onClick(String name, String iconUrl, boolean subredditIsUser);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SubscribedSubredditsRecyclerViewAdapter(Context context) {
|
public SubscribedSubredditsRecyclerViewAdapter(Context context) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
glide = Glide.with(context.getApplicationContext());
|
glide = Glide.with(context.getApplicationContext());
|
||||||
@ -141,6 +137,10 @@ public class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapte
|
|||||||
this.userIconUrl = userIconUrl;
|
this.userIconUrl = userIconUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ItemClickListener {
|
||||||
|
void onClick(String name, String iconUrl, boolean subredditIsUser);
|
||||||
|
}
|
||||||
|
|
||||||
private class SubredditViewHolder extends RecyclerView.ViewHolder {
|
private class SubredditViewHolder extends RecyclerView.ViewHolder {
|
||||||
private final GifImageView iconGifImageView;
|
private final GifImageView iconGifImageView;
|
||||||
private final TextView subredditNameTextView;
|
private final TextView subredditNameTextView;
|
||||||
|
@ -21,30 +21,35 @@ import com.bumptech.glide.Glide;
|
|||||||
import com.bumptech.glide.RequestManager;
|
import com.bumptech.glide.RequestManager;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
import ml.docilealligator.infinityforreddit.Activity.ViewUserDetailActivity;
|
||||||
import ml.docilealligator.infinityforreddit.AsyncTask.CheckIsFollowingUserAsyncTask;
|
import ml.docilealligator.infinityforreddit.AsyncTask.CheckIsFollowingUserAsyncTask;
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserDao;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserDao;
|
||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;
|
|
||||||
import ml.docilealligator.infinityforreddit.UserFollowing;
|
import ml.docilealligator.infinityforreddit.UserFollowing;
|
||||||
import pl.droidsonroids.gif.GifImageView;
|
import pl.droidsonroids.gif.GifImageView;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, RecyclerView.ViewHolder> {
|
public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, RecyclerView.ViewHolder> {
|
||||||
public interface RetryLoadingMoreCallback {
|
|
||||||
void retryLoadingMore();
|
|
||||||
}
|
|
||||||
|
|
||||||
private RequestManager glide;
|
|
||||||
|
|
||||||
private static final int VIEW_TYPE_DATA = 0;
|
private static final int VIEW_TYPE_DATA = 0;
|
||||||
private static final int VIEW_TYPE_ERROR = 1;
|
private static final int VIEW_TYPE_ERROR = 1;
|
||||||
private static final int VIEW_TYPE_LOADING = 2;
|
private static final int VIEW_TYPE_LOADING = 2;
|
||||||
|
private static final DiffUtil.ItemCallback<UserData> DIFF_CALLBACK = new DiffUtil.ItemCallback<UserData>() {
|
||||||
|
@Override
|
||||||
|
public boolean areItemsTheSame(@NonNull UserData oldItem, @NonNull UserData newItem) {
|
||||||
|
return oldItem.getName().equals(newItem.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean areContentsTheSame(@NonNull UserData oldItem, @NonNull UserData newItem) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private RequestManager glide;
|
||||||
private Context context;
|
private Context context;
|
||||||
private Retrofit oauthRetrofit;
|
private Retrofit oauthRetrofit;
|
||||||
private Retrofit retrofit;
|
private Retrofit retrofit;
|
||||||
@ -69,18 +74,6 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
|
|||||||
glide = Glide.with(context.getApplicationContext());
|
glide = Glide.with(context.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final DiffUtil.ItemCallback<UserData> DIFF_CALLBACK = new DiffUtil.ItemCallback<UserData>() {
|
|
||||||
@Override
|
|
||||||
public boolean areItemsTheSame(@NonNull UserData oldItem, @NonNull UserData newItem) {
|
|
||||||
return oldItem.getName().equals(newItem.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean areContentsTheSame(@NonNull UserData oldItem, @NonNull UserData newItem) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@ -193,11 +186,27 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
||||||
|
if (holder instanceof UserListingRecyclerViewAdapter.DataViewHolder) {
|
||||||
|
glide.clear(((UserListingRecyclerViewAdapter.DataViewHolder) holder).iconGifImageView);
|
||||||
|
((UserListingRecyclerViewAdapter.DataViewHolder) holder).subscribeButton.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface RetryLoadingMoreCallback {
|
||||||
|
void retryLoadingMore();
|
||||||
|
}
|
||||||
|
|
||||||
class DataViewHolder extends RecyclerView.ViewHolder {
|
class DataViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.constraint_layout_item_user_listing) ConstraintLayout constraintLayout;
|
@BindView(R.id.constraint_layout_item_user_listing)
|
||||||
@BindView(R.id.user_icon_gif_image_view_item_user_listing) GifImageView iconGifImageView;
|
ConstraintLayout constraintLayout;
|
||||||
@BindView(R.id.user_name_text_view_item_user_listing) TextView UserNameTextView;
|
@BindView(R.id.user_icon_gif_image_view_item_user_listing)
|
||||||
@BindView(R.id.subscribe_image_view_item_user_listing) ImageView subscribeButton;
|
GifImageView iconGifImageView;
|
||||||
|
@BindView(R.id.user_name_text_view_item_user_listing)
|
||||||
|
TextView UserNameTextView;
|
||||||
|
@BindView(R.id.subscribe_image_view_item_user_listing)
|
||||||
|
ImageView subscribeButton;
|
||||||
|
|
||||||
DataViewHolder(View itemView) {
|
DataViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -206,8 +215,10 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
class ErrorViewHolder extends RecyclerView.ViewHolder {
|
||||||
@BindView(R.id.error_text_view_item_footer_error) TextView errorTextView;
|
@BindView(R.id.error_text_view_item_footer_error)
|
||||||
@BindView(R.id.retry_button_item_footer_error) Button retryButton;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.retry_button_item_footer_error)
|
||||||
|
Button retryButton;
|
||||||
|
|
||||||
ErrorViewHolder(View itemView) {
|
ErrorViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -223,12 +234,4 @@ public class UserListingRecyclerViewAdapter extends PagedListAdapter<UserData, R
|
|||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onViewRecycled(@NonNull RecyclerView.ViewHolder holder) {
|
|
||||||
if(holder instanceof UserListingRecyclerViewAdapter.DataViewHolder) {
|
|
||||||
glide.clear(((UserListingRecyclerViewAdapter.DataViewHolder) holder).iconGifImageView);
|
|
||||||
((UserListingRecyclerViewAdapter.DataViewHolder) holder).subscribeButton.setVisibility(View.GONE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -3,13 +3,6 @@ package ml.docilealligator.infinityforreddit;
|
|||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
|
|
||||||
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
|
public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
|
||||||
// State
|
|
||||||
public enum State {
|
|
||||||
EXPANDED,
|
|
||||||
COLLAPSED,
|
|
||||||
IDLE
|
|
||||||
}
|
|
||||||
|
|
||||||
private AppBarStateChangeListener.State mCurrentState = AppBarStateChangeListener.State.IDLE;
|
private AppBarStateChangeListener.State mCurrentState = AppBarStateChangeListener.State.IDLE;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -34,8 +27,16 @@ public abstract class AppBarStateChangeListener implements AppBarLayout.OnOffset
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Notifies on state change
|
* Notifies on state change
|
||||||
|
*
|
||||||
* @param appBarLayout Layout
|
* @param appBarLayout Layout
|
||||||
* @param state Collapse state
|
* @param state Collapse state
|
||||||
*/
|
*/
|
||||||
public abstract void onStateChanged(AppBarLayout appBarLayout, AppBarStateChangeListener.State state);
|
public abstract void onStateChanged(AppBarLayout appBarLayout, AppBarStateChangeListener.State state);
|
||||||
|
|
||||||
|
// State
|
||||||
|
public enum State {
|
||||||
|
EXPANDED,
|
||||||
|
COLLAPSED,
|
||||||
|
IDLE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit;
|
|||||||
|
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
|
||||||
|
import dagger.Component;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.AccountPostsActivity;
|
import ml.docilealligator.infinityforreddit.Activity.AccountPostsActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.AccountSavedThingActivity;
|
import ml.docilealligator.infinityforreddit.Activity.AccountSavedThingActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.CommentActivity;
|
import ml.docilealligator.infinityforreddit.Activity.CommentActivity;
|
||||||
@ -36,45 +37,79 @@ import ml.docilealligator.infinityforreddit.Fragment.SubscribedSubredditsListing
|
|||||||
import ml.docilealligator.infinityforreddit.Fragment.UserListingFragment;
|
import ml.docilealligator.infinityforreddit.Fragment.UserListingFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
|
import ml.docilealligator.infinityforreddit.Settings.MainPreferenceFragment;
|
||||||
import ml.docilealligator.infinityforreddit.Settings.NotificationPreferenceFragment;
|
import ml.docilealligator.infinityforreddit.Settings.NotificationPreferenceFragment;
|
||||||
import dagger.Component;
|
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Component(modules = AppModule.class)
|
@Component(modules = AppModule.class)
|
||||||
public interface AppComponent {
|
public interface AppComponent {
|
||||||
void inject(MainActivity mainActivity);
|
void inject(MainActivity mainActivity);
|
||||||
|
|
||||||
void inject(LoginActivity loginActivity);
|
void inject(LoginActivity loginActivity);
|
||||||
|
|
||||||
void inject(PostFragment postFragment);
|
void inject(PostFragment postFragment);
|
||||||
|
|
||||||
void inject(SubredditListingFragment subredditListingFragment);
|
void inject(SubredditListingFragment subredditListingFragment);
|
||||||
|
|
||||||
void inject(UserListingFragment userListingFragment);
|
void inject(UserListingFragment userListingFragment);
|
||||||
|
|
||||||
void inject(ViewPostDetailActivity viewPostDetailActivity);
|
void inject(ViewPostDetailActivity viewPostDetailActivity);
|
||||||
|
|
||||||
void inject(ViewSubredditDetailActivity viewSubredditDetailActivity);
|
void inject(ViewSubredditDetailActivity viewSubredditDetailActivity);
|
||||||
|
|
||||||
void inject(ViewUserDetailActivity viewUserDetailActivity);
|
void inject(ViewUserDetailActivity viewUserDetailActivity);
|
||||||
|
|
||||||
void inject(CommentActivity commentActivity);
|
void inject(CommentActivity commentActivity);
|
||||||
|
|
||||||
void inject(SubscribedThingListingActivity subscribedThingListingActivity);
|
void inject(SubscribedThingListingActivity subscribedThingListingActivity);
|
||||||
|
|
||||||
void inject(PostTextActivity postTextActivity);
|
void inject(PostTextActivity postTextActivity);
|
||||||
|
|
||||||
void inject(SubscribedSubredditsListingFragment subscribedSubredditsListingFragment);
|
void inject(SubscribedSubredditsListingFragment subscribedSubredditsListingFragment);
|
||||||
|
|
||||||
void inject(PostLinkActivity postLinkActivity);
|
void inject(PostLinkActivity postLinkActivity);
|
||||||
|
|
||||||
void inject(PostImageActivity postImageActivity);
|
void inject(PostImageActivity postImageActivity);
|
||||||
|
|
||||||
void inject(PostVideoActivity postVideoActivity);
|
void inject(PostVideoActivity postVideoActivity);
|
||||||
|
|
||||||
void inject(FlairBottomSheetFragment flairBottomSheetFragment);
|
void inject(FlairBottomSheetFragment flairBottomSheetFragment);
|
||||||
|
|
||||||
void inject(RulesActivity rulesActivity);
|
void inject(RulesActivity rulesActivity);
|
||||||
|
|
||||||
void inject(CommentsListingFragment commentsListingFragment);
|
void inject(CommentsListingFragment commentsListingFragment);
|
||||||
|
|
||||||
void inject(SubmitPostService submitPostService);
|
void inject(SubmitPostService submitPostService);
|
||||||
|
|
||||||
void inject(FilteredThingActivity filteredPostsActivity);
|
void inject(FilteredThingActivity filteredPostsActivity);
|
||||||
|
|
||||||
void inject(SearchResultActivity searchResultActivity);
|
void inject(SearchResultActivity searchResultActivity);
|
||||||
|
|
||||||
void inject(SearchSubredditsResultActivity searchSubredditsResultActivity);
|
void inject(SearchSubredditsResultActivity searchSubredditsResultActivity);
|
||||||
|
|
||||||
void inject(FollowedUsersListingFragment followedUsersListingFragment);
|
void inject(FollowedUsersListingFragment followedUsersListingFragment);
|
||||||
|
|
||||||
void inject(SubredditSelectionActivity subredditSelectionActivity);
|
void inject(SubredditSelectionActivity subredditSelectionActivity);
|
||||||
|
|
||||||
void inject(EditPostActivity editPostActivity);
|
void inject(EditPostActivity editPostActivity);
|
||||||
|
|
||||||
void inject(EditCommentActivity editCommentActivity);
|
void inject(EditCommentActivity editCommentActivity);
|
||||||
|
|
||||||
void inject(AccountPostsActivity accountPostsActivity);
|
void inject(AccountPostsActivity accountPostsActivity);
|
||||||
|
|
||||||
void inject(PullNotificationWorker pullNotificationWorker);
|
void inject(PullNotificationWorker pullNotificationWorker);
|
||||||
|
|
||||||
void inject(ViewMessageActivity viewMessageActivity);
|
void inject(ViewMessageActivity viewMessageActivity);
|
||||||
|
|
||||||
void inject(NotificationPreferenceFragment notificationPreferenceFragment);
|
void inject(NotificationPreferenceFragment notificationPreferenceFragment);
|
||||||
|
|
||||||
void inject(LinkResolverActivity linkResolverActivity);
|
void inject(LinkResolverActivity linkResolverActivity);
|
||||||
|
|
||||||
void inject(SearchActivity searchActivity);
|
void inject(SearchActivity searchActivity);
|
||||||
|
|
||||||
void inject(SettingsActivity settingsActivity);
|
void inject(SettingsActivity settingsActivity);
|
||||||
|
|
||||||
void inject(MainPreferenceFragment mainPreferenceFragment);
|
void inject(MainPreferenceFragment mainPreferenceFragment);
|
||||||
|
|
||||||
void inject(AccountSavedThingActivity accountSavedThingActivity);
|
void inject(AccountSavedThingActivity accountSavedThingActivity);
|
||||||
|
|
||||||
void inject(ViewImageActivity viewImageActivity);
|
void inject(ViewImageActivity viewImageActivity);
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,8 @@ class AppModule {
|
|||||||
mApplication = application;
|
mApplication = application;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides @Named("oauth")
|
@Provides
|
||||||
|
@Named("oauth")
|
||||||
@Singleton
|
@Singleton
|
||||||
Retrofit provideOauthRetrofit(OkHttpClient okHttpClient) {
|
Retrofit provideOauthRetrofit(OkHttpClient okHttpClient) {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
@ -32,7 +33,8 @@ class AppModule {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides @Named("oauth_without_authenticator")
|
@Provides
|
||||||
|
@Named("oauth_without_authenticator")
|
||||||
@Singleton
|
@Singleton
|
||||||
Retrofit provideOauthWithoutAuthenticatorRetrofit() {
|
Retrofit provideOauthWithoutAuthenticatorRetrofit() {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
@ -41,7 +43,8 @@ class AppModule {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides @Named("no_oauth")
|
@Provides
|
||||||
|
@Named("no_oauth")
|
||||||
@Singleton
|
@Singleton
|
||||||
Retrofit provideRetrofit() {
|
Retrofit provideRetrofit() {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
@ -50,7 +53,8 @@ class AppModule {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides @Named("upload_media")
|
@Provides
|
||||||
|
@Named("upload_media")
|
||||||
@Singleton
|
@Singleton
|
||||||
Retrofit provideUploadMediaRetrofit() {
|
Retrofit provideUploadMediaRetrofit() {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
@ -59,7 +63,8 @@ class AppModule {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides @Named("upload_video")
|
@Provides
|
||||||
|
@Named("upload_video")
|
||||||
@Singleton
|
@Singleton
|
||||||
Retrofit provideUploadVideoRetrofit() {
|
Retrofit provideUploadVideoRetrofit() {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
|
@ -12,11 +12,6 @@ public class CheckIsFollowingUserAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
private SubscribedUserData subscribedUserData;
|
private SubscribedUserData subscribedUserData;
|
||||||
private CheckIsFollowingUserListener checkIsFollowingUserListener;
|
private CheckIsFollowingUserListener checkIsFollowingUserListener;
|
||||||
|
|
||||||
public interface CheckIsFollowingUserListener {
|
|
||||||
void isSubscribed();
|
|
||||||
void isNotSubscribed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CheckIsFollowingUserAsyncTask(SubscribedUserDao subscribedUserDao, String username, String accountName,
|
public CheckIsFollowingUserAsyncTask(SubscribedUserDao subscribedUserDao, String username, String accountName,
|
||||||
CheckIsFollowingUserListener checkIsFollowingUserListener) {
|
CheckIsFollowingUserListener checkIsFollowingUserListener) {
|
||||||
this.subscribedUserDao = subscribedUserDao;
|
this.subscribedUserDao = subscribedUserDao;
|
||||||
@ -40,4 +35,10 @@ public class CheckIsFollowingUserAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
checkIsFollowingUserListener.isNotSubscribed();
|
checkIsFollowingUserListener.isNotSubscribed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface CheckIsFollowingUserListener {
|
||||||
|
void isSubscribed();
|
||||||
|
|
||||||
|
void isNotSubscribed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,11 +13,6 @@ public class CheckIsSubscribedToSubredditAsyncTask extends AsyncTask<Void, Void,
|
|||||||
private SubscribedSubredditData subscribedSubredditData;
|
private SubscribedSubredditData subscribedSubredditData;
|
||||||
private CheckIsSubscribedToSubredditListener checkIsSubscribedToSubredditListener;
|
private CheckIsSubscribedToSubredditListener checkIsSubscribedToSubredditListener;
|
||||||
|
|
||||||
public interface CheckIsSubscribedToSubredditListener {
|
|
||||||
void isSubscribed();
|
|
||||||
void isNotSubscribed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public CheckIsSubscribedToSubredditAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase,
|
public CheckIsSubscribedToSubredditAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase,
|
||||||
String subredditName, String accountName,
|
String subredditName, String accountName,
|
||||||
CheckIsSubscribedToSubredditListener checkIsSubscribedToSubredditListener) {
|
CheckIsSubscribedToSubredditListener checkIsSubscribedToSubredditListener) {
|
||||||
@ -42,4 +37,10 @@ public class CheckIsSubscribedToSubredditAsyncTask extends AsyncTask<Void, Void,
|
|||||||
checkIsSubscribedToSubredditListener.isNotSubscribed();
|
checkIsSubscribedToSubredditListener.isNotSubscribed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface CheckIsSubscribedToSubredditListener {
|
||||||
|
void isSubscribed();
|
||||||
|
|
||||||
|
void isNotSubscribed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,9 @@ import ml.docilealligator.infinityforreddit.Account.AccountDao;
|
|||||||
|
|
||||||
public class GetCurrentAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class GetCurrentAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
public interface GetCurrentAccountAsyncTaskListener {
|
|
||||||
void success(Account account);
|
|
||||||
}
|
|
||||||
|
|
||||||
Account account;
|
Account account;
|
||||||
AccountDao accountDao;
|
AccountDao accountDao;
|
||||||
GetCurrentAccountAsyncTaskListener getCurrentAccountAsyncTaskListener;
|
GetCurrentAccountAsyncTaskListener getCurrentAccountAsyncTaskListener;
|
||||||
|
|
||||||
public GetCurrentAccountAsyncTask(AccountDao accountDao, GetCurrentAccountAsyncTaskListener getCurrentAccountAsyncTaskListener) {
|
public GetCurrentAccountAsyncTask(AccountDao accountDao, GetCurrentAccountAsyncTaskListener getCurrentAccountAsyncTaskListener) {
|
||||||
this.accountDao = accountDao;
|
this.accountDao = accountDao;
|
||||||
this.getCurrentAccountAsyncTaskListener = getCurrentAccountAsyncTaskListener;
|
this.getCurrentAccountAsyncTaskListener = getCurrentAccountAsyncTaskListener;
|
||||||
@ -30,4 +25,8 @@ public class GetCurrentAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
getCurrentAccountAsyncTaskListener.success(account);
|
getCurrentAccountAsyncTaskListener.success(account);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface GetCurrentAccountAsyncTaskListener {
|
||||||
|
void success(Account account);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,6 @@ import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUse
|
|||||||
|
|
||||||
public class InsertSubscribedThingsAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class InsertSubscribedThingsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
public interface InsertSubscribedThingListener {
|
|
||||||
void insertSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
private String mAccountName;
|
private String mAccountName;
|
||||||
private SubscribedSubredditDao mSubscribedSubredditDao;
|
private SubscribedSubredditDao mSubscribedSubredditDao;
|
||||||
@ -29,7 +25,6 @@ public class InsertSubscribedThingsAsyncTask extends AsyncTask<Void, Void, Void>
|
|||||||
private List<SubscribedUserData> subscribedUserData;
|
private List<SubscribedUserData> subscribedUserData;
|
||||||
private List<SubredditData> subredditData;
|
private List<SubredditData> subredditData;
|
||||||
private InsertSubscribedThingListener insertSubscribedThingListener;
|
private InsertSubscribedThingListener insertSubscribedThingListener;
|
||||||
|
|
||||||
public InsertSubscribedThingsAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, @Nullable String accountName,
|
public InsertSubscribedThingsAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, @Nullable String accountName,
|
||||||
List<SubscribedSubredditData> subscribedSubredditData,
|
List<SubscribedSubredditData> subscribedSubredditData,
|
||||||
List<SubscribedUserData> subscribedUserData,
|
List<SubscribedUserData> subscribedUserData,
|
||||||
@ -77,4 +72,8 @@ public class InsertSubscribedThingsAsyncTask extends AsyncTask<Void, Void, Void>
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
insertSubscribedThingListener.insertSuccess();
|
insertSubscribedThingListener.insertSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface InsertSubscribedThingListener {
|
||||||
|
void insertSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,18 +2,14 @@ package ml.docilealligator.infinityforreddit.AsyncTask;
|
|||||||
|
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
|
||||||
import ml.docilealligator.infinityforreddit.User.UserDao;
|
import ml.docilealligator.infinityforreddit.User.UserDao;
|
||||||
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
|
|
||||||
public class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private UserDao userDao;
|
private UserDao userDao;
|
||||||
private UserData userData;
|
private UserData userData;
|
||||||
private InsertUserDataCallback insertUserDataCallback;
|
private InsertUserDataCallback insertUserDataCallback;
|
||||||
|
|
||||||
public interface InsertUserDataCallback {
|
|
||||||
void insertSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
public InsertUserDataAsyncTask(UserDao userDao, UserData userData, InsertUserDataCallback insertUserDataCallback) {
|
public InsertUserDataAsyncTask(UserDao userDao, UserData userData, InsertUserDataCallback insertUserDataCallback) {
|
||||||
this.userDao = userDao;
|
this.userDao = userDao;
|
||||||
this.userData = userData;
|
this.userData = userData;
|
||||||
@ -33,4 +29,8 @@ public class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
insertUserDataCallback.insertSuccess();
|
insertUserDataCallback.insertSuccess();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface InsertUserDataCallback {
|
||||||
|
void insertSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,6 @@ import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class LoadSubredditIconAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class LoadSubredditIconAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
public interface LoadSubredditIconAsyncTaskListener {
|
|
||||||
void loadIconSuccess(String iconImageUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RedditDataRoomDatabase redditDataRoomDatabase;
|
private RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
private SubredditDao subredditDao;
|
private SubredditDao subredditDao;
|
||||||
private String subredditName;
|
private String subredditName;
|
||||||
@ -22,7 +18,6 @@ public class LoadSubredditIconAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
private String iconImageUrl;
|
private String iconImageUrl;
|
||||||
private boolean hasSubredditInDb;
|
private boolean hasSubredditInDb;
|
||||||
private LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener;
|
private LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener;
|
||||||
|
|
||||||
public LoadSubredditIconAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, String subredditName, Retrofit retrofit,
|
public LoadSubredditIconAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, String subredditName, Retrofit retrofit,
|
||||||
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
|
LoadSubredditIconAsyncTaskListener loadSubredditIconAsyncTaskListener) {
|
||||||
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
||||||
@ -69,4 +64,8 @@ public class LoadSubredditIconAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface LoadSubredditIconAsyncTaskListener {
|
||||||
|
void loadIconSuccess(String iconImageUrl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,22 +3,17 @@ package ml.docilealligator.infinityforreddit.AsyncTask;
|
|||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
|
|
||||||
import ml.docilealligator.infinityforreddit.FetchUserData;
|
import ml.docilealligator.infinityforreddit.FetchUserData;
|
||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
|
||||||
import ml.docilealligator.infinityforreddit.User.UserDao;
|
import ml.docilealligator.infinityforreddit.User.UserDao;
|
||||||
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class LoadUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class LoadUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
public interface LoadUserDataAsyncTaskListener {
|
|
||||||
void loadUserDataSuccess(String iconImageUrl);
|
|
||||||
}
|
|
||||||
|
|
||||||
private UserDao userDao;
|
private UserDao userDao;
|
||||||
private String userName;
|
private String userName;
|
||||||
private String iconImageUrl;
|
private String iconImageUrl;
|
||||||
private boolean hasUserInDb;
|
private boolean hasUserInDb;
|
||||||
private Retrofit retrofit;
|
private Retrofit retrofit;
|
||||||
private LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener;
|
private LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener;
|
||||||
|
|
||||||
public LoadUserDataAsyncTask(UserDao userDao, String userName, Retrofit retrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) {
|
public LoadUserDataAsyncTask(UserDao userDao, String userName, Retrofit retrofit, LoadUserDataAsyncTaskListener loadUserDataAsyncTaskListener) {
|
||||||
this.userDao = userDao;
|
this.userDao = userDao;
|
||||||
this.userName = userName;
|
this.userName = userName;
|
||||||
@ -56,4 +51,8 @@ public class LoadUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface LoadUserDataAsyncTaskListener {
|
||||||
|
void loadUserDataSuccess(String iconImageUrl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,10 +7,6 @@ import ml.docilealligator.infinityforreddit.Account.AccountDao;
|
|||||||
|
|
||||||
public class ParseAndInsertNewAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class ParseAndInsertNewAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
public interface ParseAndInsertAccountListener {
|
|
||||||
void success();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String username;
|
private String username;
|
||||||
private String accessToken;
|
private String accessToken;
|
||||||
private String refreshToken;
|
private String refreshToken;
|
||||||
@ -20,7 +16,6 @@ public class ParseAndInsertNewAccountAsyncTask extends AsyncTask<Void, Void, Voi
|
|||||||
private String code;
|
private String code;
|
||||||
private AccountDao accountDao;
|
private AccountDao accountDao;
|
||||||
private ParseAndInsertAccountListener parseAndInsertAccountListener;
|
private ParseAndInsertAccountListener parseAndInsertAccountListener;
|
||||||
|
|
||||||
public ParseAndInsertNewAccountAsyncTask(String username, String accessToken, String refreshToken, String profileImageUrl, String bannerImageUrl,
|
public ParseAndInsertNewAccountAsyncTask(String username, String accessToken, String refreshToken, String profileImageUrl, String bannerImageUrl,
|
||||||
int karma, String code, AccountDao accountDao,
|
int karma, String code, AccountDao accountDao,
|
||||||
ParseAndInsertAccountListener parseAndInsertAccountListener) {
|
ParseAndInsertAccountListener parseAndInsertAccountListener) {
|
||||||
@ -48,4 +43,8 @@ public class ParseAndInsertNewAccountAsyncTask extends AsyncTask<Void, Void, Voi
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
parseAndInsertAccountListener.success();
|
parseAndInsertAccountListener.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ParseAndInsertAccountListener {
|
||||||
|
void success();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,15 +6,10 @@ import ml.docilealligator.infinityforreddit.Account.Account;
|
|||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
|
|
||||||
public class SwitchAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class SwitchAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
public interface SwitchAccountAsyncTaskListener {
|
|
||||||
void switched(Account account);
|
|
||||||
}
|
|
||||||
|
|
||||||
private RedditDataRoomDatabase redditDataRoomDatabase;
|
private RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
private String newAccountName;
|
private String newAccountName;
|
||||||
private Account account;
|
private Account account;
|
||||||
private SwitchAccountAsyncTaskListener switchAccountAsyncTaskListener;
|
private SwitchAccountAsyncTaskListener switchAccountAsyncTaskListener;
|
||||||
|
|
||||||
public SwitchAccountAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, String newAccountName,
|
public SwitchAccountAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, String newAccountName,
|
||||||
SwitchAccountAsyncTaskListener switchAccountAsyncTaskListener) {
|
SwitchAccountAsyncTaskListener switchAccountAsyncTaskListener) {
|
||||||
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
||||||
@ -34,4 +29,8 @@ public class SwitchAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
switchAccountAsyncTaskListener.switched(account);
|
switchAccountAsyncTaskListener.switched(account);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SwitchAccountAsyncTaskListener {
|
||||||
|
void switched(Account account);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,14 +6,9 @@ import ml.docilealligator.infinityforreddit.Account.AccountDao;
|
|||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
|
|
||||||
public class SwitchToAnonymousAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
public class SwitchToAnonymousAccountAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
public interface SwitchToAnonymousAccountAsyncTaskListener {
|
|
||||||
void logoutSuccess();
|
|
||||||
}
|
|
||||||
|
|
||||||
private RedditDataRoomDatabase redditDataRoomDatabase;
|
private RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
private boolean removeCurrentAccount;
|
private boolean removeCurrentAccount;
|
||||||
private SwitchToAnonymousAccountAsyncTaskListener switchToAnonymousAccountAsyncTaskListener;
|
private SwitchToAnonymousAccountAsyncTaskListener switchToAnonymousAccountAsyncTaskListener;
|
||||||
|
|
||||||
public SwitchToAnonymousAccountAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, boolean removeCurrentAccount,
|
public SwitchToAnonymousAccountAsyncTask(RedditDataRoomDatabase redditDataRoomDatabase, boolean removeCurrentAccount,
|
||||||
SwitchToAnonymousAccountAsyncTaskListener switchToAnonymousAccountAsyncTaskListener) {
|
SwitchToAnonymousAccountAsyncTaskListener switchToAnonymousAccountAsyncTaskListener) {
|
||||||
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
this.redditDataRoomDatabase = redditDataRoomDatabase;
|
||||||
@ -35,4 +30,8 @@ public class SwitchToAnonymousAccountAsyncTask extends AsyncTask<Void, Void, Voi
|
|||||||
protected void onPostExecute(Void aVoid) {
|
protected void onPostExecute(Void aVoid) {
|
||||||
switchToAnonymousAccountAsyncTaskListener.logoutSuccess();
|
switchToAnonymousAccountAsyncTaskListener.logoutSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SwitchToAnonymousAccountAsyncTaskListener {
|
||||||
|
void logoutSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,17 @@ public class CommentData implements Parcelable {
|
|||||||
public static final int VOTE_TYPE_NO_VOTE = 0;
|
public static final int VOTE_TYPE_NO_VOTE = 0;
|
||||||
public static final int VOTE_TYPE_UPVOTE = 1;
|
public static final int VOTE_TYPE_UPVOTE = 1;
|
||||||
public static final int VOTE_TYPE_DOWNVOTE = -1;
|
public static final int VOTE_TYPE_DOWNVOTE = -1;
|
||||||
|
public static final Creator<CommentData> CREATOR = new Creator<CommentData>() {
|
||||||
|
@Override
|
||||||
|
public CommentData createFromParcel(Parcel in) {
|
||||||
|
return new CommentData(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommentData[] newArray(int size) {
|
||||||
|
return new CommentData[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
private String id;
|
private String id;
|
||||||
private String fullName;
|
private String fullName;
|
||||||
private String author;
|
private String author;
|
||||||
@ -33,7 +43,6 @@ public class CommentData implements Parcelable {
|
|||||||
private ArrayList<CommentData> children;
|
private ArrayList<CommentData> children;
|
||||||
private ArrayList<String> moreChildrenFullnames;
|
private ArrayList<String> moreChildrenFullnames;
|
||||||
private int moreChildrenStartingIndex;
|
private int moreChildrenStartingIndex;
|
||||||
|
|
||||||
private boolean isPlaceHolder;
|
private boolean isPlaceHolder;
|
||||||
private boolean isLoadingMoreChildren;
|
private boolean isLoadingMoreChildren;
|
||||||
private boolean loadMoreChildrenFailed;
|
private boolean loadMoreChildrenFailed;
|
||||||
@ -102,18 +111,6 @@ public class CommentData implements Parcelable {
|
|||||||
loadMoreChildrenFailed = in.readByte() != 0;
|
loadMoreChildrenFailed = in.readByte() != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<CommentData> CREATOR = new Creator<CommentData>() {
|
|
||||||
@Override
|
|
||||||
public CommentData createFromParcel(Parcel in) {
|
|
||||||
return new CommentData(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CommentData[] newArray(int size) {
|
|
||||||
return new CommentData[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -184,11 +184,6 @@ public class CommentDataSource extends PageKeyedDataSource<String, CommentData>
|
|||||||
private boolean parseFailed;
|
private boolean parseFailed;
|
||||||
private ParseCommentAsyncTaskListener parseCommentAsyncTaskListener;
|
private ParseCommentAsyncTaskListener parseCommentAsyncTaskListener;
|
||||||
|
|
||||||
interface ParseCommentAsyncTaskListener {
|
|
||||||
void parseSuccessful(ArrayList<CommentData> comments, String after);
|
|
||||||
void parseFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
ParseCommentAsyncTask(String response, Locale locale, ParseCommentAsyncTaskListener parseCommentAsyncTaskListener) {
|
ParseCommentAsyncTask(String response, Locale locale, ParseCommentAsyncTaskListener parseCommentAsyncTaskListener) {
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
this.parseCommentAsyncTaskListener = parseCommentAsyncTaskListener;
|
this.parseCommentAsyncTaskListener = parseCommentAsyncTaskListener;
|
||||||
@ -214,7 +209,8 @@ public class CommentDataSource extends PageKeyedDataSource<String, CommentData>
|
|||||||
try {
|
try {
|
||||||
JSONObject commentJSON = commentsJSONArray.getJSONObject(i).getJSONObject(JSONUtils.DATA_KEY);
|
JSONObject commentJSON = commentsJSONArray.getJSONObject(i).getJSONObject(JSONUtils.DATA_KEY);
|
||||||
comments.add(ParseComment.parseSingleComment(commentJSON, 0, locale));
|
comments.add(ParseComment.parseSingleComment(commentJSON, 0, locale));
|
||||||
} catch (JSONException ignored) {}
|
} catch (JSONException ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return comments;
|
return comments;
|
||||||
}
|
}
|
||||||
@ -228,5 +224,11 @@ public class CommentDataSource extends PageKeyedDataSource<String, CommentData>
|
|||||||
parseCommentAsyncTaskListener.parseFailed();
|
parseCommentAsyncTaskListener.parseFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParseCommentAsyncTaskListener {
|
||||||
|
void parseSuccessful(ArrayList<CommentData> comments, String after);
|
||||||
|
|
||||||
|
void parseFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,11 @@ public enum ContentFontStyle {
|
|||||||
private int resId;
|
private int resId;
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
|
ContentFontStyle(int resId, String title) {
|
||||||
|
this.resId = resId;
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
public int getResId() {
|
public int getResId() {
|
||||||
return resId;
|
return resId;
|
||||||
}
|
}
|
||||||
@ -17,9 +22,4 @@ public enum ContentFontStyle {
|
|||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
ContentFontStyle(int resId, String title) {
|
|
||||||
this.resId = resId;
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,17 @@ import pl.droidsonroids.gif.GifImageView;
|
|||||||
public class AspectRatioGifImageView extends GifImageView {
|
public class AspectRatioGifImageView extends GifImageView {
|
||||||
private float ratio;
|
private float ratio;
|
||||||
|
|
||||||
|
public AspectRatioGifImageView(Context context) {
|
||||||
|
super(context);
|
||||||
|
this.ratio = 1.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AspectRatioGifImageView(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
this.ratio = 1.0F;
|
||||||
|
this.init(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
public final float getRatio() {
|
public final float getRatio() {
|
||||||
return this.ratio;
|
return this.ratio;
|
||||||
}
|
}
|
||||||
@ -40,15 +51,4 @@ public class AspectRatioGifImageView extends GifImageView {
|
|||||||
this.setMeasuredDimension(width, height);
|
this.setMeasuredDimension(width, height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AspectRatioGifImageView(Context context) {
|
|
||||||
super(context);
|
|
||||||
this.ratio = 1.0F;
|
|
||||||
}
|
|
||||||
|
|
||||||
public AspectRatioGifImageView(Context context, AttributeSet attrs) {
|
|
||||||
super(context, attrs);
|
|
||||||
this.ratio = 1.0F;
|
|
||||||
this.init(context, attrs);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class DeleteThing {
|
public class DeleteThing {
|
||||||
public interface DeleteThingListener {
|
|
||||||
void deleteSuccess();
|
|
||||||
void deleteFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void delete(Retrofit oauthRetrofit, String fullname, String accessToken, DeleteThingListener deleteThingListener) {
|
public static void delete(Retrofit oauthRetrofit, String fullname, String accessToken, DeleteThingListener deleteThingListener) {
|
||||||
Map<String, String> params = new HashMap<>();
|
Map<String, String> params = new HashMap<>();
|
||||||
params.put(RedditUtils.ID_KEY, fullname);
|
params.put(RedditUtils.ID_KEY, fullname);
|
||||||
@ -35,4 +30,10 @@ public class DeleteThing {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface DeleteThingListener {
|
||||||
|
void deleteSuccess();
|
||||||
|
|
||||||
|
void deleteFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
package ml.docilealligator.infinityforreddit.Event;
|
package ml.docilealligator.infinityforreddit.Event;
|
||||||
|
|
||||||
public class ChangeFontSizeEvent { }
|
public class ChangeFontSizeEvent {
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Event;
|
|||||||
|
|
||||||
public class ChangeNSFWBlurEvent {
|
public class ChangeNSFWBlurEvent {
|
||||||
public boolean needBlurNSFW;
|
public boolean needBlurNSFW;
|
||||||
|
|
||||||
public ChangeNSFWBlurEvent(boolean needBlurNSFW) {
|
public ChangeNSFWBlurEvent(boolean needBlurNSFW) {
|
||||||
this.needBlurNSFW = needBlurNSFW;
|
this.needBlurNSFW = needBlurNSFW;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Event;
|
|||||||
|
|
||||||
public class ChangeNSFWEvent {
|
public class ChangeNSFWEvent {
|
||||||
public boolean nsfw;
|
public boolean nsfw;
|
||||||
|
|
||||||
public ChangeNSFWEvent(boolean nsfw) {
|
public ChangeNSFWEvent(boolean nsfw) {
|
||||||
this.nsfw = nsfw;
|
this.nsfw = nsfw;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Event;
|
|||||||
|
|
||||||
public class ChangeSpoilerBlurEvent {
|
public class ChangeSpoilerBlurEvent {
|
||||||
public boolean needBlurSpoiler;
|
public boolean needBlurSpoiler;
|
||||||
|
|
||||||
public ChangeSpoilerBlurEvent(boolean needBlurSpoiler) {
|
public ChangeSpoilerBlurEvent(boolean needBlurSpoiler) {
|
||||||
this.needBlurSpoiler = needBlurSpoiler;
|
this.needBlurSpoiler = needBlurSpoiler;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,10 @@ package ml.docilealligator.infinityforreddit.Event;
|
|||||||
|
|
||||||
public class SwitchAccountEvent {
|
public class SwitchAccountEvent {
|
||||||
public String excludeActivityClassName;
|
public String excludeActivityClassName;
|
||||||
public SwitchAccountEvent() {}
|
|
||||||
|
public SwitchAccountEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
public SwitchAccountEvent(String excludeActivityClassName) {
|
public SwitchAccountEvent(String excludeActivityClassName) {
|
||||||
this.excludeActivityClassName = excludeActivityClassName;
|
this.excludeActivityClassName = excludeActivityClassName;
|
||||||
}
|
}
|
||||||
|
@ -12,16 +12,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchComment {
|
public class FetchComment {
|
||||||
public interface FetchCommentListener {
|
|
||||||
void onFetchCommentSuccess(ArrayList<CommentData> expandedComments, String parentId, ArrayList<String> children);
|
|
||||||
void onFetchCommentFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface FetchMoreCommentListener {
|
|
||||||
void onFetchMoreCommentSuccess(ArrayList<CommentData> expandedComments, int childrenStartingIndex);
|
|
||||||
void onFetchMoreCommentFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article, String commentId,
|
public static void fetchComments(Retrofit retrofit, @Nullable String accessToken, String article, String commentId,
|
||||||
Locale locale, FetchCommentListener fetchCommentListener) {
|
Locale locale, FetchCommentListener fetchCommentListener) {
|
||||||
RedditAPI api = retrofit.create(RedditAPI.class);
|
RedditAPI api = retrofit.create(RedditAPI.class);
|
||||||
@ -124,4 +114,16 @@ public class FetchComment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchCommentListener {
|
||||||
|
void onFetchCommentSuccess(ArrayList<CommentData> expandedComments, String parentId, ArrayList<String> children);
|
||||||
|
|
||||||
|
void onFetchCommentFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface FetchMoreCommentListener {
|
||||||
|
void onFetchMoreCommentSuccess(ArrayList<CommentData> expandedComments, int childrenStartingIndex);
|
||||||
|
|
||||||
|
void onFetchMoreCommentFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,11 +15,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchFlairs {
|
public class FetchFlairs {
|
||||||
public interface FetchFlairsInSubredditListener {
|
|
||||||
void fetchSuccessful(ArrayList<Flair> flairs);
|
|
||||||
void fetchFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchFlairsInSubreddit(Retrofit oauthRetrofit, String accessToken, String subredditName, FetchFlairsInSubredditListener fetchFlairsInSubredditListener) {
|
public static void fetchFlairsInSubreddit(Retrofit oauthRetrofit, String accessToken, String subredditName, FetchFlairsInSubredditListener fetchFlairsInSubredditListener) {
|
||||||
RedditAPI api = oauthRetrofit.create(RedditAPI.class);
|
RedditAPI api = oauthRetrofit.create(RedditAPI.class);
|
||||||
|
|
||||||
@ -54,15 +49,15 @@ public class FetchFlairs {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ParseFlairsAsyncTask extends AsyncTask<Void, ArrayList<Flair>, ArrayList<Flair>> {
|
public interface FetchFlairsInSubredditListener {
|
||||||
interface ParseFlairsAsyncTaskListener {
|
void fetchSuccessful(ArrayList<Flair> flairs);
|
||||||
void parseSuccessful(ArrayList<Flair> flairs);
|
|
||||||
void parseFailed();
|
void fetchFailed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class ParseFlairsAsyncTask extends AsyncTask<Void, ArrayList<Flair>, ArrayList<Flair>> {
|
||||||
private String response;
|
private String response;
|
||||||
private ParseFlairsAsyncTaskListener parseFlairsAsyncTaskListener;
|
private ParseFlairsAsyncTaskListener parseFlairsAsyncTaskListener;
|
||||||
|
|
||||||
ParseFlairsAsyncTask(String response, ParseFlairsAsyncTaskListener parseFlairsAsyncTaskListener) {
|
ParseFlairsAsyncTask(String response, ParseFlairsAsyncTaskListener parseFlairsAsyncTaskListener) {
|
||||||
this.response = response;
|
this.response = response;
|
||||||
this.parseFlairsAsyncTaskListener = parseFlairsAsyncTaskListener;
|
this.parseFlairsAsyncTaskListener = parseFlairsAsyncTaskListener;
|
||||||
@ -95,5 +90,11 @@ public class FetchFlairs {
|
|||||||
parseFlairsAsyncTaskListener.parseFailed();
|
parseFlairsAsyncTaskListener.parseFailed();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParseFlairsAsyncTaskListener {
|
||||||
|
void parseSuccessful(ArrayList<Flair> flairs);
|
||||||
|
|
||||||
|
void parseFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,6 @@ import retrofit2.Retrofit;
|
|||||||
|
|
||||||
public class FetchMessages {
|
public class FetchMessages {
|
||||||
|
|
||||||
interface FetchMessagesListener {
|
|
||||||
void fetchSuccess(ArrayList<Message> messages, @Nullable String after);
|
|
||||||
void fetchFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final String WHERE_INBOX = "inbox";
|
public static final String WHERE_INBOX = "inbox";
|
||||||
public static final String WHERE_UNREAD = "unread";
|
public static final String WHERE_UNREAD = "unread";
|
||||||
public static final String WHERE_SENT = "sent";
|
public static final String WHERE_SENT = "sent";
|
||||||
@ -100,18 +95,19 @@ public class FetchMessages {
|
|||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ParseMessageAsnycTask extends AsyncTask<Void, Void, Void> {
|
interface FetchMessagesListener {
|
||||||
|
void fetchSuccess(ArrayList<Message> messages, @Nullable String after);
|
||||||
|
|
||||||
interface ParseMessageAsyncTaskListener {
|
void fetchFailed();
|
||||||
void parseSuccess(ArrayList<Message> messages, @Nullable String after);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class ParseMessageAsnycTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
|
||||||
private String response;
|
private String response;
|
||||||
private Locale locale;
|
private Locale locale;
|
||||||
private ArrayList<Message> messages;
|
private ArrayList<Message> messages;
|
||||||
private String after;
|
private String after;
|
||||||
private ParseMessageAsyncTaskListener parseMessageAsyncTaskListener;
|
private ParseMessageAsyncTaskListener parseMessageAsyncTaskListener;
|
||||||
|
|
||||||
ParseMessageAsnycTask(String response, Locale locale, ParseMessageAsyncTaskListener parseMessageAsnycTaskListener) {
|
ParseMessageAsnycTask(String response, Locale locale, ParseMessageAsyncTaskListener parseMessageAsnycTaskListener) {
|
||||||
this.response = response;
|
this.response = response;
|
||||||
this.locale = locale;
|
this.locale = locale;
|
||||||
@ -135,5 +131,9 @@ public class FetchMessages {
|
|||||||
super.onPostExecute(aVoid);
|
super.onPostExecute(aVoid);
|
||||||
parseMessageAsyncTaskListener.parseSuccess(messages, after);
|
parseMessageAsyncTaskListener.parseSuccess(messages, after);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParseMessageAsyncTaskListener {
|
||||||
|
void parseSuccess(ArrayList<Message> messages, @Nullable String after);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package ml.docilealligator.infinityforreddit;
|
package ml.docilealligator.infinityforreddit;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
@ -10,11 +8,6 @@ import retrofit2.Retrofit;
|
|||||||
|
|
||||||
public class FetchMyInfo {
|
public class FetchMyInfo {
|
||||||
|
|
||||||
public interface FetchUserMyListener {
|
|
||||||
void onFetchMyInfoSuccess(String response);
|
|
||||||
void onFetchMyInfoFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchAccountInfo(final Retrofit retrofit, String accessToken,
|
public static void fetchAccountInfo(final Retrofit retrofit, String accessToken,
|
||||||
final FetchUserMyListener fetchUserMyListener) {
|
final FetchUserMyListener fetchUserMyListener) {
|
||||||
RedditAPI api = retrofit.create(RedditAPI.class);
|
RedditAPI api = retrofit.create(RedditAPI.class);
|
||||||
@ -36,4 +29,10 @@ public class FetchMyInfo {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchUserMyListener {
|
||||||
|
void onFetchMyInfoSuccess(String response);
|
||||||
|
|
||||||
|
void onFetchMyInfoFail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchPost {
|
public class FetchPost {
|
||||||
public interface FetchPostListener {
|
|
||||||
void fetchPostSuccess(Post post);
|
|
||||||
void fetchPostFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchPost(Retrofit retrofit, String id, String accessToken, Locale locale, FetchPostListener fetchPostListener) {
|
public static void fetchPost(Retrofit retrofit, String id, String accessToken, Locale locale, FetchPostListener fetchPostListener) {
|
||||||
Call<String> postCall;
|
Call<String> postCall;
|
||||||
if (accessToken == null) {
|
if (accessToken == null) {
|
||||||
@ -48,4 +43,10 @@ public class FetchPost {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchPostListener {
|
||||||
|
void fetchPostSuccess(Post post);
|
||||||
|
|
||||||
|
void fetchPostFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,16 +11,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchSubredditData {
|
public class FetchSubredditData {
|
||||||
public interface FetchSubredditDataListener {
|
|
||||||
void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers);
|
|
||||||
void onFetchSubredditDataFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
interface FetchSubredditListingDataListener {
|
|
||||||
void onFetchSubredditListingDataSuccess(ArrayList<SubredditData> subredditData, String after);
|
|
||||||
void onFetchSubredditListingDataFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchSubredditData(Retrofit retrofit, String subredditName, final FetchSubredditDataListener fetchSubredditDataListener) {
|
public static void fetchSubredditData(Retrofit retrofit, String subredditName, final FetchSubredditDataListener fetchSubredditDataListener) {
|
||||||
RedditAPI api = retrofit.create(RedditAPI.class);
|
RedditAPI api = retrofit.create(RedditAPI.class);
|
||||||
|
|
||||||
@ -83,4 +73,16 @@ public class FetchSubredditData {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchSubredditDataListener {
|
||||||
|
void onFetchSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers);
|
||||||
|
|
||||||
|
void onFetchSubredditDataFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
interface FetchSubredditListingDataListener {
|
||||||
|
void onFetchSubredditListingDataSuccess(ArrayList<SubredditData> subredditData, String after);
|
||||||
|
|
||||||
|
void onFetchSubredditListingDataFail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchSubscribedThing {
|
public class FetchSubscribedThing {
|
||||||
public interface FetchSubscribedThingListener {
|
|
||||||
void onFetchSubscribedThingSuccess(ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
|
||||||
ArrayList<SubscribedUserData> subscribedUserData,
|
|
||||||
ArrayList<SubredditData> subredditData);
|
|
||||||
void onFetchSubscribedThingFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchSubscribedThing(final Retrofit retrofit, String accessToken, String accountName,
|
public static void fetchSubscribedThing(final Retrofit retrofit, String accessToken, String accountName,
|
||||||
final String lastItem, final ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
final String lastItem, final ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
||||||
final ArrayList<SubscribedUserData> subscribedUserData,
|
final ArrayList<SubscribedUserData> subscribedUserData,
|
||||||
@ -67,4 +60,12 @@ public class FetchSubscribedThing {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchSubscribedThingListener {
|
||||||
|
void onFetchSubscribedThingSuccess(ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
||||||
|
ArrayList<SubscribedUserData> subscribedUserData,
|
||||||
|
ArrayList<SubredditData> subredditData);
|
||||||
|
|
||||||
|
void onFetchSubscribedThingFail();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,16 +10,6 @@ import retrofit2.Callback;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class FetchUserData {
|
public class FetchUserData {
|
||||||
public interface FetchUserDataListener {
|
|
||||||
void onFetchUserDataSuccess(UserData userData);
|
|
||||||
void onFetchUserDataFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface FetchUserListingDataListener {
|
|
||||||
void onFetchUserListingDataSuccess(ArrayList<UserData> userData, String after);
|
|
||||||
void onFetchUserListingDataFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void fetchUserData(Retrofit retrofit, String userName, FetchUserDataListener fetchUserDataListener) {
|
public static void fetchUserData(Retrofit retrofit, String userName, FetchUserDataListener fetchUserDataListener) {
|
||||||
RedditAPI api = retrofit.create(RedditAPI.class);
|
RedditAPI api = retrofit.create(RedditAPI.class);
|
||||||
|
|
||||||
@ -82,4 +72,16 @@ public class FetchUserData {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FetchUserDataListener {
|
||||||
|
void onFetchUserDataSuccess(UserData userData);
|
||||||
|
|
||||||
|
void onFetchUserDataFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface FetchUserListingDataListener {
|
||||||
|
void onFetchUserListingDataSuccess(ArrayList<UserData> userData, String after);
|
||||||
|
|
||||||
|
void onFetchUserListingDataFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,17 @@ import android.os.Parcel;
|
|||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
|
|
||||||
public class Flair implements Parcelable {
|
public class Flair implements Parcelable {
|
||||||
|
public static final Creator<Flair> CREATOR = new Creator<Flair>() {
|
||||||
|
@Override
|
||||||
|
public Flair createFromParcel(Parcel in) {
|
||||||
|
return new Flair(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Flair[] newArray(int size) {
|
||||||
|
return new Flair[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
private String id;
|
private String id;
|
||||||
private String text;
|
private String text;
|
||||||
private boolean editable;
|
private boolean editable;
|
||||||
@ -20,18 +31,6 @@ public class Flair implements Parcelable {
|
|||||||
editable = in.readByte() != 0;
|
editable = in.readByte() != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<Flair> CREATOR = new Creator<Flair>() {
|
|
||||||
@Override
|
|
||||||
public Flair createFromParcel(Parcel in) {
|
|
||||||
return new Flair(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Flair[] newArray(int size) {
|
|
||||||
return new Flair[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,11 @@ public enum FontStyle {
|
|||||||
private int resId;
|
private int resId;
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
|
FontStyle(int resId, String title) {
|
||||||
|
this.resId = resId;
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
public int getResId() {
|
public int getResId() {
|
||||||
return resId;
|
return resId;
|
||||||
}
|
}
|
||||||
@ -16,9 +21,4 @@ public enum FontStyle {
|
|||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
FontStyle(int resId, String title) {
|
|
||||||
this.resId = resId;
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -55,33 +55,32 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
|
|||||||
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
private static final String NULL_ACCESS_TOKEN_STATE = "NATS";
|
||||||
private static final String ACCESS_TOKEN_STATE = "ATS";
|
private static final String ACCESS_TOKEN_STATE = "ATS";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_comments_listing_fragment) CoordinatorLayout mCoordinatorLayout;
|
@BindView(R.id.coordinator_layout_comments_listing_fragment)
|
||||||
@BindView(R.id.recycler_view_comments_listing_fragment) RecyclerView mCommentRecyclerView;
|
CoordinatorLayout mCoordinatorLayout;
|
||||||
@BindView(R.id.progress_bar_comments_listing_fragment) CircleProgressBar mProgressBar;
|
@BindView(R.id.recycler_view_comments_listing_fragment)
|
||||||
@BindView(R.id.fetch_comments_info_linear_layout_comments_listing_fragment) LinearLayout mFetchCommentInfoLinearLayout;
|
RecyclerView mCommentRecyclerView;
|
||||||
@BindView(R.id.fetch_comments_info_image_view_comments_listing_fragment) ImageView mFetchCommentInfoImageView;
|
@BindView(R.id.progress_bar_comments_listing_fragment)
|
||||||
@BindView(R.id.fetch_comments_info_text_view_comments_listing_fragment) TextView mFetchCommentInfoTextView;
|
CircleProgressBar mProgressBar;
|
||||||
|
@BindView(R.id.fetch_comments_info_linear_layout_comments_listing_fragment)
|
||||||
private boolean mNullAccessToken = false;
|
LinearLayout mFetchCommentInfoLinearLayout;
|
||||||
private String mAccessToken;
|
@BindView(R.id.fetch_comments_info_image_view_comments_listing_fragment)
|
||||||
|
ImageView mFetchCommentInfoImageView;
|
||||||
private RequestManager mGlide;
|
@BindView(R.id.fetch_comments_info_text_view_comments_listing_fragment)
|
||||||
|
TextView mFetchCommentInfoTextView;
|
||||||
private Activity activity;
|
|
||||||
|
|
||||||
private CommentsListingRecyclerViewAdapter mAdapter;
|
|
||||||
|
|
||||||
CommentViewModel mCommentViewModel;
|
CommentViewModel mCommentViewModel;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
@Inject @Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
private boolean mNullAccessToken = false;
|
||||||
|
private String mAccessToken;
|
||||||
|
private RequestManager mGlide;
|
||||||
|
private Activity activity;
|
||||||
|
private CommentsListingRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
public CommentsListingFragment() {
|
public CommentsListingFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
|
@ -36,36 +36,29 @@ import retrofit2.Retrofit;
|
|||||||
*/
|
*/
|
||||||
public class FlairBottomSheetFragment extends BottomSheetDialogFragment {
|
public class FlairBottomSheetFragment extends BottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface FlairSelectionCallback {
|
|
||||||
void flairSelected(Flair flair);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||||
public static final String EXTRA_SUBREDDIT_NAME = "ESN";
|
public static final String EXTRA_SUBREDDIT_NAME = "ESN";
|
||||||
|
@BindView(R.id.progress_bar_flair_bottom_sheet_fragment)
|
||||||
@BindView(R.id.progress_bar_flair_bottom_sheet_fragment) ProgressBar progressBar;
|
ProgressBar progressBar;
|
||||||
@BindView(R.id.error_text_view_flair_bottom_sheet_fragment) TextView errorTextView;
|
@BindView(R.id.error_text_view_flair_bottom_sheet_fragment)
|
||||||
@BindView(R.id.recycler_view_bottom_sheet_fragment) RecyclerView recyclerView;
|
TextView errorTextView;
|
||||||
|
@BindView(R.id.recycler_view_bottom_sheet_fragment)
|
||||||
private String mAccessToken;
|
RecyclerView recyclerView;
|
||||||
private String mSubredditName;
|
|
||||||
|
|
||||||
private Activity mActivity;
|
|
||||||
private FlairBottomSheetRecyclerViewAdapter mAdapter;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
private String mAccessToken;
|
||||||
|
private String mSubredditName;
|
||||||
|
private Activity mActivity;
|
||||||
|
private FlairBottomSheetRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
public FlairBottomSheetFragment() {
|
public FlairBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -122,4 +115,8 @@ public class FlairBottomSheetFragment extends BottomSheetDialogFragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface FlairSelectionCallback {
|
||||||
|
void flairSelected(Flair flair);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,13 +22,13 @@ import com.bumptech.glide.RequestManager;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import butterknife.BindView;
|
||||||
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.FollowedUsersRecyclerViewAdapter;
|
import ml.docilealligator.infinityforreddit.Adapter.FollowedUsersRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserViewModel;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserViewModel;
|
||||||
import butterknife.BindView;
|
|
||||||
import butterknife.ButterKnife;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -38,23 +38,22 @@ public class FollowedUsersListingFragment extends Fragment {
|
|||||||
|
|
||||||
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
||||||
|
|
||||||
@BindView(R.id.recycler_view_followed_users_listing_fragment) RecyclerView mRecyclerView;
|
@BindView(R.id.recycler_view_followed_users_listing_fragment)
|
||||||
@BindView(R.id.no_subscriptions_linear_layout_followed_users_listing_fragment) LinearLayout mLinearLayout;
|
RecyclerView mRecyclerView;
|
||||||
@BindView(R.id.no_subscriptions_image_view_followed_users_listing_fragment) ImageView mImageView;
|
@BindView(R.id.no_subscriptions_linear_layout_followed_users_listing_fragment)
|
||||||
|
LinearLayout mLinearLayout;
|
||||||
|
@BindView(R.id.no_subscriptions_image_view_followed_users_listing_fragment)
|
||||||
|
ImageView mImageView;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
private Activity mActivity;
|
private Activity mActivity;
|
||||||
|
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
|
|
||||||
private SubscribedUserViewModel mSubscribedUserViewModel;
|
private SubscribedUserViewModel mSubscribedUserViewModel;
|
||||||
|
|
||||||
public FollowedUsersListingFragment() {
|
public FollowedUsersListingFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
@ -32,14 +32,14 @@ public class ModifyCommentBottomSheetFragment extends RoundedBottomSheetDialogFr
|
|||||||
public static final String EXTRA_COMMENT_CONTENT = "ECC";
|
public static final String EXTRA_COMMENT_CONTENT = "ECC";
|
||||||
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||||
public static final String EXTRA_POSITION = "EP";
|
public static final String EXTRA_POSITION = "EP";
|
||||||
|
@BindView(R.id.edit_text_view_modify_comment_bottom_sheet_fragment)
|
||||||
|
TextView editTextView;
|
||||||
|
@BindView(R.id.delete_text_view_modify_comment_bottom_sheet_fragment)
|
||||||
|
TextView deleteTextView;
|
||||||
public ModifyCommentBottomSheetFragment() {
|
public ModifyCommentBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
@BindView(R.id.edit_text_view_modify_comment_bottom_sheet_fragment) TextView editTextView;
|
|
||||||
@BindView(R.id.delete_text_view_modify_comment_bottom_sheet_fragment) TextView deleteTextView;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
@ -82,46 +82,42 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
private static final String IS_IN_LAZY_MODE_STATE = "IILMS";
|
private static final String IS_IN_LAZY_MODE_STATE = "IILMS";
|
||||||
private static final String RECYCLER_VIEW_POSITION_STATE = "RVPS";
|
private static final String RECYCLER_VIEW_POSITION_STATE = "RVPS";
|
||||||
|
|
||||||
@BindView(R.id.recycler_view_post_fragment) RecyclerView mPostRecyclerView;
|
@BindView(R.id.recycler_view_post_fragment)
|
||||||
@BindView(R.id.progress_bar_post_fragment) CircleProgressBar mProgressBar;
|
RecyclerView mPostRecyclerView;
|
||||||
@BindView(R.id.fetch_post_info_linear_layout_post_fragment) LinearLayout mFetchPostInfoLinearLayout;
|
@BindView(R.id.progress_bar_post_fragment)
|
||||||
@BindView(R.id.fetch_post_info_image_view_post_fragment) ImageView mFetchPostInfoImageView;
|
CircleProgressBar mProgressBar;
|
||||||
@BindView(R.id.fetch_post_info_text_view_post_fragment) TextView mFetchPostInfoTextView;
|
@BindView(R.id.fetch_post_info_linear_layout_post_fragment)
|
||||||
|
LinearLayout mFetchPostInfoLinearLayout;
|
||||||
|
@BindView(R.id.fetch_post_info_image_view_post_fragment)
|
||||||
|
ImageView mFetchPostInfoImageView;
|
||||||
|
@BindView(R.id.fetch_post_info_text_view_post_fragment)
|
||||||
|
TextView mFetchPostInfoTextView;
|
||||||
|
PostViewModel mPostViewModel;
|
||||||
|
@Inject
|
||||||
|
@Named("no_oauth")
|
||||||
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
|
@Named("oauth")
|
||||||
|
Retrofit mOauthRetrofit;
|
||||||
|
@Inject
|
||||||
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
@Inject
|
||||||
|
SharedPreferences mSharedPreferences;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
|
|
||||||
private Activity activity;
|
private Activity activity;
|
||||||
private LinearLayoutManager mLinearLayoutManager;
|
private LinearLayoutManager mLinearLayoutManager;
|
||||||
private StaggeredGridLayoutManager mStaggeredGridLayoutManager;
|
private StaggeredGridLayoutManager mStaggeredGridLayoutManager;
|
||||||
|
|
||||||
private boolean isInLazyMode = false;
|
private boolean isInLazyMode = false;
|
||||||
private boolean isLazyModePaused = false;
|
private boolean isLazyModePaused = false;
|
||||||
private boolean hasPost = false;
|
private boolean hasPost = false;
|
||||||
|
|
||||||
private PostRecyclerViewAdapter mAdapter;
|
private PostRecyclerViewAdapter mAdapter;
|
||||||
private RecyclerView.SmoothScroller smoothScroller;
|
private RecyclerView.SmoothScroller smoothScroller;
|
||||||
|
|
||||||
PostViewModel mPostViewModel;
|
|
||||||
|
|
||||||
private Window window;
|
private Window window;
|
||||||
private Handler lazyModeHandler;
|
private Handler lazyModeHandler;
|
||||||
private LazyModeRunnable lazyModeRunnable;
|
private LazyModeRunnable lazyModeRunnable;
|
||||||
private CountDownTimer resumeLazyModeCountDownTimer;
|
private CountDownTimer resumeLazyModeCountDownTimer;
|
||||||
|
|
||||||
private float lazyModeInterval;
|
private float lazyModeInterval;
|
||||||
|
|
||||||
@Inject @Named("no_oauth")
|
|
||||||
Retrofit mRetrofit;
|
|
||||||
|
|
||||||
@Inject @Named("oauth")
|
|
||||||
Retrofit mOauthRetrofit;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
SharedPreferences mSharedPreferences;
|
|
||||||
|
|
||||||
public PostFragment() {
|
public PostFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
@ -422,7 +418,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
|
|||||||
stopLazyMode();
|
stopLazyMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
mFetchPostInfoLinearLayout.setOnClickListener(view -> {});
|
mFetchPostInfoLinearLayout.setOnClickListener(view -> {
|
||||||
|
});
|
||||||
showErrorView(R.string.no_posts);
|
showErrorView(R.string.no_posts);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -24,25 +24,22 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
*/
|
*/
|
||||||
public class PostTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
public class PostTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface PostTypeSelectionCallback {
|
|
||||||
void postTypeSelected(int postType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final int TYPE_TEXT = 0;
|
public static final int TYPE_TEXT = 0;
|
||||||
public static final int TYPE_LINK = 1;
|
public static final int TYPE_LINK = 1;
|
||||||
public static final int TYPE_IMAGE = 2;
|
public static final int TYPE_IMAGE = 2;
|
||||||
public static final int TYPE_VIDEO = 3;
|
public static final int TYPE_VIDEO = 3;
|
||||||
|
@BindView(R.id.text_type_linear_layout_post_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.text_type_linear_layout_post_type_bottom_sheet_fragment) LinearLayout textTypeLinearLayout;
|
LinearLayout textTypeLinearLayout;
|
||||||
@BindView(R.id.link_type_linear_layout_post_type_bottom_sheet_fragment) LinearLayout linkTypeLinearLayout;
|
@BindView(R.id.link_type_linear_layout_post_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.image_type_linear_layout_post_type_bottom_sheet_fragment) LinearLayout imageTypeLinearLayout;
|
LinearLayout linkTypeLinearLayout;
|
||||||
@BindView(R.id.video_type_linear_layout_post_type_bottom_sheet_fragment) LinearLayout videoTypeLinearLayout;
|
@BindView(R.id.image_type_linear_layout_post_type_bottom_sheet_fragment)
|
||||||
|
LinearLayout imageTypeLinearLayout;
|
||||||
|
@BindView(R.id.video_type_linear_layout_post_type_bottom_sheet_fragment)
|
||||||
|
LinearLayout videoTypeLinearLayout;
|
||||||
public PostTypeBottomSheetFragment() {
|
public PostTypeBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -79,4 +76,9 @@ public class PostTypeBottomSheetFragment extends RoundedBottomSheetDialogFragmen
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface PostTypeSelectionCallback {
|
||||||
|
void postTypeSelected(int postType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,21 +25,20 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
*/
|
*/
|
||||||
public class SearchPostSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
public class SearchPostSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface SearchSortTypeSelectionCallback {
|
@BindView(R.id.relevance_type_text_view_search_sort_type_bottom_sheet_fragment)
|
||||||
void searchSortTypeSelected(String sortType);
|
TextView relevanceTypeTextView;
|
||||||
}
|
@BindView(R.id.hot_type_text_view_search_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView hotTypeTextView;
|
||||||
@BindView(R.id.relevance_type_text_view_search_sort_type_bottom_sheet_fragment) TextView relevanceTypeTextView;
|
@BindView(R.id.top_type_text_view_search_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.hot_type_text_view_search_sort_type_bottom_sheet_fragment) TextView hotTypeTextView;
|
TextView topTypeTextView;
|
||||||
@BindView(R.id.top_type_text_view_search_sort_type_bottom_sheet_fragment) TextView topTypeTextView;
|
@BindView(R.id.new_type_text_view_search_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.new_type_text_view_search_sort_type_bottom_sheet_fragment) TextView newTypeTextView;
|
TextView newTypeTextView;
|
||||||
@BindView(R.id.comments_type_text_view_search_sort_type_bottom_sheet_fragment) TextView commentsTypeTextView;
|
@BindView(R.id.comments_type_text_view_search_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView commentsTypeTextView;
|
||||||
public SearchPostSortTypeBottomSheetFragment() {
|
public SearchPostSortTypeBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -81,4 +80,9 @@ public class SearchPostSortTypeBottomSheetFragment extends RoundedBottomSheetDia
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface SearchSortTypeSelectionCallback {
|
||||||
|
void searchSortTypeSelected(String sortType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,20 +25,15 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
*/
|
*/
|
||||||
public class SearchUserAndSubredditSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
public class SearchUserAndSubredditSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface SearchUserAndSubredditSortTypeSelectionCallback {
|
|
||||||
void searchUserAndSubredditSortTypeSelected(String sortType, int fragmentPosition);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final String EXTRA_FRAGMENT_POSITION = "EFP";
|
public static final String EXTRA_FRAGMENT_POSITION = "EFP";
|
||||||
|
@BindView(R.id.relevance_type_text_view_search_user_and_subreddit_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.relevance_type_text_view_search_user_and_subreddit_sort_type_bottom_sheet_fragment) TextView relevanceTypeTextView;
|
TextView relevanceTypeTextView;
|
||||||
@BindView(R.id.activity_type_text_view_search_user_and_subreddit_sort_type_bottom_sheet_fragment) TextView activityTypeTextView;
|
@BindView(R.id.activity_type_text_view_search_user_and_subreddit_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView activityTypeTextView;
|
||||||
public SearchUserAndSubredditSortTypeBottomSheetFragment() {
|
public SearchUserAndSubredditSortTypeBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -67,4 +62,9 @@ public class SearchUserAndSubredditSortTypeBottomSheetFragment extends RoundedBo
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface SearchUserAndSubredditSortTypeSelectionCallback {
|
||||||
|
void searchUserAndSubredditSortTypeSelected(String sortType, int fragmentPosition);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,25 +26,25 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
*/
|
*/
|
||||||
public class SortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
public class SortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface SortTypeSelectionCallback {
|
|
||||||
void sortTypeSelected(String sortType);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final String EXTRA_NO_BEST_TYPE = "ENBT";
|
public static final String EXTRA_NO_BEST_TYPE = "ENBT";
|
||||||
|
@BindView(R.id.best_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.best_type_text_view_sort_type_bottom_sheet_fragment) TextView bestTypeTextView;
|
TextView bestTypeTextView;
|
||||||
@BindView(R.id.hot_type_text_view_sort_type_bottom_sheet_fragment) TextView hotTypeTextView;
|
@BindView(R.id.hot_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.new_type_text_view_sort_type_bottom_sheet_fragment) TextView newTypeTextView;
|
TextView hotTypeTextView;
|
||||||
@BindView(R.id.random_type_text_view_sort_type_bottom_sheet_fragment) TextView randomTypeTextView;
|
@BindView(R.id.new_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.rising_type_text_view_sort_type_bottom_sheet_fragment) TextView risingTypeTextView;
|
TextView newTypeTextView;
|
||||||
@BindView(R.id.top_type_text_view_sort_type_bottom_sheet_fragment) TextView topTypeTextView;
|
@BindView(R.id.random_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.controversial_type_text_view_sort_type_bottom_sheet_fragment) TextView controversialTypeTextView;
|
TextView randomTypeTextView;
|
||||||
|
@BindView(R.id.rising_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView risingTypeTextView;
|
||||||
|
@BindView(R.id.top_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView topTypeTextView;
|
||||||
|
@BindView(R.id.controversial_type_text_view_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView controversialTypeTextView;
|
||||||
public SortTypeBottomSheetFragment() {
|
public SortTypeBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -100,4 +100,9 @@ public class SortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragmen
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface SortTypeSelectionCallback {
|
||||||
|
void sortTypeSelected(String sortType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,13 +31,13 @@ import butterknife.BindView;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.SearchSubredditsResultActivity;
|
import ml.docilealligator.infinityforreddit.Activity.SearchSubredditsResultActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
import ml.docilealligator.infinityforreddit.Activity.ViewSubredditDetailActivity;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.SubredditListingRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.SubredditListingRecyclerViewAdapter;
|
|
||||||
import ml.docilealligator.infinityforreddit.SubredditListingViewModel;
|
import ml.docilealligator.infinityforreddit.SubredditListingViewModel;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -52,27 +52,29 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun
|
|||||||
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||||
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_subreddit_listing_fragment) CoordinatorLayout mCoordinatorLayout;
|
@BindView(R.id.coordinator_layout_subreddit_listing_fragment)
|
||||||
@BindView(R.id.recycler_view_subreddit_listing_fragment) RecyclerView mSubredditListingRecyclerView;
|
CoordinatorLayout mCoordinatorLayout;
|
||||||
@BindView(R.id.progress_bar_subreddit_listing_fragment) CircleProgressBar mProgressBar;
|
@BindView(R.id.recycler_view_subreddit_listing_fragment)
|
||||||
@BindView(R.id.fetch_subreddit_listing_info_linear_layout_subreddit_listing_fragment) LinearLayout mFetchSubredditListingInfoLinearLayout;
|
RecyclerView mSubredditListingRecyclerView;
|
||||||
@BindView(R.id.fetch_subreddit_listing_info_image_view_subreddit_listing_fragment) ImageView mFetchSubredditListingInfoImageView;
|
@BindView(R.id.progress_bar_subreddit_listing_fragment)
|
||||||
@BindView(R.id.fetch_subreddit_listing_info_text_view_subreddit_listing_fragment) TextView mFetchSubredditListingInfoTextView;
|
CircleProgressBar mProgressBar;
|
||||||
|
@BindView(R.id.fetch_subreddit_listing_info_linear_layout_subreddit_listing_fragment)
|
||||||
private LinearLayoutManager mLinearLayoutManager;
|
LinearLayout mFetchSubredditListingInfoLinearLayout;
|
||||||
|
@BindView(R.id.fetch_subreddit_listing_info_image_view_subreddit_listing_fragment)
|
||||||
private SubredditListingRecyclerViewAdapter mAdapter;
|
ImageView mFetchSubredditListingInfoImageView;
|
||||||
|
@BindView(R.id.fetch_subreddit_listing_info_text_view_subreddit_listing_fragment)
|
||||||
|
TextView mFetchSubredditListingInfoTextView;
|
||||||
SubredditListingViewModel mSubredditListingViewModel;
|
SubredditListingViewModel mSubredditListingViewModel;
|
||||||
|
@Inject
|
||||||
@Inject @Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
@Inject @Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase redditDataRoomDatabase;
|
RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
|
private LinearLayoutManager mLinearLayoutManager;
|
||||||
|
private SubredditListingRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
public SubredditListingFragment() {
|
public SubredditListingFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
|
@ -43,18 +43,17 @@ public class SubscribedSubredditsListingFragment extends Fragment {
|
|||||||
public static final String EXTRA_IS_SUBREDDIT_SELECTION = "EISS";
|
public static final String EXTRA_IS_SUBREDDIT_SELECTION = "EISS";
|
||||||
public static final String EXTRA_EXTRA_CLEAR_SELECTION = "EECS";
|
public static final String EXTRA_EXTRA_CLEAR_SELECTION = "EECS";
|
||||||
|
|
||||||
@BindView(R.id.recycler_view_subscribed_subreddits_listing_fragment) RecyclerView mRecyclerView;
|
@BindView(R.id.recycler_view_subscribed_subreddits_listing_fragment)
|
||||||
@BindView(R.id.no_subscriptions_linear_layout_subreddits_listing_fragment) LinearLayout mLinearLayout;
|
RecyclerView mRecyclerView;
|
||||||
@BindView(R.id.no_subscriptions_image_view_subreddits_listing_fragment) ImageView mImageView;
|
@BindView(R.id.no_subscriptions_linear_layout_subreddits_listing_fragment)
|
||||||
|
LinearLayout mLinearLayout;
|
||||||
private Activity mActivity;
|
@BindView(R.id.no_subscriptions_image_view_subreddits_listing_fragment)
|
||||||
|
ImageView mImageView;
|
||||||
private RequestManager mGlide;
|
|
||||||
|
|
||||||
private SubscribedSubredditViewModel mSubscribedSubredditViewModel;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
private Activity mActivity;
|
||||||
|
private RequestManager mGlide;
|
||||||
|
private SubscribedSubredditViewModel mSubscribedSubredditViewModel;
|
||||||
|
|
||||||
public SubscribedSubredditsListingFragment() {
|
public SubscribedSubredditsListingFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
|
@ -26,13 +26,13 @@ import javax.inject.Named;
|
|||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import ml.docilealligator.infinityforreddit.Adapter.UserListingRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
import ml.docilealligator.infinityforreddit.FragmentCommunicator;
|
||||||
import ml.docilealligator.infinityforreddit.Infinity;
|
import ml.docilealligator.infinityforreddit.Infinity;
|
||||||
import ml.docilealligator.infinityforreddit.NetworkState;
|
import ml.docilealligator.infinityforreddit.NetworkState;
|
||||||
import ml.docilealligator.infinityforreddit.PostDataSource;
|
import ml.docilealligator.infinityforreddit.PostDataSource;
|
||||||
import ml.docilealligator.infinityforreddit.R;
|
import ml.docilealligator.infinityforreddit.R;
|
||||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.UserListingRecyclerViewAdapter;
|
|
||||||
import ml.docilealligator.infinityforreddit.UserListingViewModel;
|
import ml.docilealligator.infinityforreddit.UserListingViewModel;
|
||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
@ -46,29 +46,30 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
|
|||||||
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
public static final String EXTRA_ACCESS_TOKEN = "EAT";
|
||||||
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
public static final String EXTRA_ACCOUNT_NAME = "EAN";
|
||||||
|
|
||||||
@BindView(R.id.coordinator_layout_user_listing_fragment) CoordinatorLayout mCoordinatorLayout;
|
@BindView(R.id.coordinator_layout_user_listing_fragment)
|
||||||
@BindView(R.id.recycler_view_user_listing_fragment) RecyclerView mUserListingRecyclerView;
|
CoordinatorLayout mCoordinatorLayout;
|
||||||
@BindView(R.id.progress_bar_user_listing_fragment) CircleProgressBar mProgressBar;
|
@BindView(R.id.recycler_view_user_listing_fragment)
|
||||||
@BindView(R.id.fetch_user_listing_info_linear_layout_user_listing_fragment) LinearLayout mFetchUserListingInfoLinearLayout;
|
RecyclerView mUserListingRecyclerView;
|
||||||
@BindView(R.id.fetch_user_listing_info_image_view_user_listing_fragment) ImageView mFetchUserListingInfoImageView;
|
@BindView(R.id.progress_bar_user_listing_fragment)
|
||||||
@BindView(R.id.fetch_user_listing_info_text_view_user_listing_fragment) TextView mFetchUserListingInfoTextView;
|
CircleProgressBar mProgressBar;
|
||||||
|
@BindView(R.id.fetch_user_listing_info_linear_layout_user_listing_fragment)
|
||||||
private LinearLayoutManager mLinearLayoutManager;
|
LinearLayout mFetchUserListingInfoLinearLayout;
|
||||||
|
@BindView(R.id.fetch_user_listing_info_image_view_user_listing_fragment)
|
||||||
private String mQuery;
|
ImageView mFetchUserListingInfoImageView;
|
||||||
|
@BindView(R.id.fetch_user_listing_info_text_view_user_listing_fragment)
|
||||||
private UserListingRecyclerViewAdapter mAdapter;
|
TextView mFetchUserListingInfoTextView;
|
||||||
|
|
||||||
UserListingViewModel mUserListingViewModel;
|
UserListingViewModel mUserListingViewModel;
|
||||||
|
@Inject
|
||||||
@Inject @Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
@Inject
|
||||||
@Inject @Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase redditDataRoomDatabase;
|
RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
|
private LinearLayoutManager mLinearLayoutManager;
|
||||||
|
private String mQuery;
|
||||||
|
private UserListingRecyclerViewAdapter mAdapter;
|
||||||
|
|
||||||
public UserListingFragment() {
|
public UserListingFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
|
@ -26,22 +26,19 @@ import ml.docilealligator.infinityforreddit.R;
|
|||||||
*/
|
*/
|
||||||
public class UserThingSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
public class UserThingSortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragment {
|
||||||
|
|
||||||
public interface UserThingSortTypeSelectionCallback {
|
|
||||||
void userThingSortTypeSelected(String sortType);
|
|
||||||
}
|
|
||||||
|
|
||||||
static final String EXTRA_NO_BEST_TYPE = "ENBT";
|
static final String EXTRA_NO_BEST_TYPE = "ENBT";
|
||||||
|
@BindView(R.id.new_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.new_type_text_view_user_thing_sort_type_bottom_sheet_fragment) TextView newTypeTextView;
|
TextView newTypeTextView;
|
||||||
@BindView(R.id.hot_type_text_view_user_thing_sort_type_bottom_sheet_fragment) TextView hotTypeTextView;
|
@BindView(R.id.hot_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
|
||||||
@BindView(R.id.top_type_text_view_user_thing_sort_type_bottom_sheet_fragment) TextView topTypeTextView;
|
TextView hotTypeTextView;
|
||||||
@BindView(R.id.controversial_type_text_view_user_thing_sort_type_bottom_sheet_fragment) TextView controversialTypeTextView;
|
@BindView(R.id.top_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView topTypeTextView;
|
||||||
|
@BindView(R.id.controversial_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
|
||||||
|
TextView controversialTypeTextView;
|
||||||
public UserThingSortTypeBottomSheetFragment() {
|
public UserThingSortTypeBottomSheetFragment() {
|
||||||
// Required empty public constructor
|
// Required empty public constructor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -87,4 +84,9 @@ public class UserThingSortTypeBottomSheetFragment extends RoundedBottomSheetDial
|
|||||||
return rootView;
|
return rootView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public interface UserThingSortTypeSelectionCallback {
|
||||||
|
void userThingSortTypeSelected(String sortType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,23 @@ package ml.docilealligator.infinityforreddit;
|
|||||||
|
|
||||||
public interface FragmentCommunicator {
|
public interface FragmentCommunicator {
|
||||||
void refresh();
|
void refresh();
|
||||||
default void changeNSFW(boolean nsfw) {};
|
|
||||||
|
default void changeNSFW(boolean nsfw) {
|
||||||
|
}
|
||||||
|
|
||||||
default boolean startLazyMode() {
|
default boolean startLazyMode() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
default void stopLazyMode() {}
|
|
||||||
default void resumeLazyMode(boolean resumeNow) {}
|
default void stopLazyMode() {
|
||||||
default void pauseLazyMode(boolean startTimer) {}
|
}
|
||||||
|
|
||||||
|
default void resumeLazyMode(boolean resumeNow) {
|
||||||
|
}
|
||||||
|
|
||||||
|
default void pauseLazyMode(boolean startTimer) {
|
||||||
|
}
|
||||||
|
|
||||||
default boolean isInLazyMode() {
|
default boolean isInLazyMode() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class HidePost {
|
public class HidePost {
|
||||||
public interface HidePostListener {
|
|
||||||
void success();
|
|
||||||
void failed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void hidePost(Retrofit oauthRetrofit, String accessToken, String fullname,
|
public static void hidePost(Retrofit oauthRetrofit, String accessToken, String fullname,
|
||||||
HidePostListener hidePostListener) {
|
HidePostListener hidePostListener) {
|
||||||
Map<String, String> params = new HashMap<>();
|
Map<String, String> params = new HashMap<>();
|
||||||
@ -57,4 +52,10 @@ public class HidePost {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface HidePostListener {
|
||||||
|
void success();
|
||||||
|
|
||||||
|
void failed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
package ml.docilealligator.infinityforreddit;
|
package ml.docilealligator.infinityforreddit;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.lifecycle.MutableLiveData;
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
@ -1,29 +1,22 @@
|
|||||||
package ml.docilealligator.infinityforreddit;
|
package ml.docilealligator.infinityforreddit;
|
||||||
|
|
||||||
public class NetworkState {
|
public class NetworkState {
|
||||||
public enum Status{
|
|
||||||
LOADING,
|
|
||||||
SUCCESS,
|
|
||||||
FAILED
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private final Status status;
|
|
||||||
private final String msg;
|
|
||||||
|
|
||||||
static final NetworkState LOADED;
|
static final NetworkState LOADED;
|
||||||
static final NetworkState LOADING;
|
static final NetworkState LOADING;
|
||||||
|
|
||||||
NetworkState(Status status, String msg) {
|
|
||||||
this.status = status;
|
|
||||||
this.msg = msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
LOADED = new NetworkState(Status.SUCCESS, "Success");
|
LOADED = new NetworkState(Status.SUCCESS, "Success");
|
||||||
LOADING = new NetworkState(Status.LOADING, "Loading");
|
LOADING = new NetworkState(Status.LOADING, "Loading");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final Status status;
|
||||||
|
private final String msg;
|
||||||
|
|
||||||
|
NetworkState(Status status, String msg) {
|
||||||
|
this.status = status;
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
|
||||||
public Status getStatus() {
|
public Status getStatus() {
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -31,4 +24,10 @@ public class NetworkState {
|
|||||||
public String getMsg() {
|
public String getMsg() {
|
||||||
return msg;
|
return msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum Status {
|
||||||
|
LOADING,
|
||||||
|
SUCCESS,
|
||||||
|
FAILED
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,16 +7,17 @@ import org.json.JSONException;
|
|||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
|
|
||||||
public class ParseAndSaveAccountInfo {
|
public class ParseAndSaveAccountInfo {
|
||||||
public interface ParseAndSaveAccountInfoListener {
|
|
||||||
void onParseMyInfoSuccess(String name, String profileImageUrl, String bannerImageUrl, int karma);
|
|
||||||
void onParseMyInfoFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void parseAndSaveAccountInfo(String response, RedditDataRoomDatabase redditDataRoomDatabase,
|
public static void parseAndSaveAccountInfo(String response, RedditDataRoomDatabase redditDataRoomDatabase,
|
||||||
ParseAndSaveAccountInfoListener parseAndSaveAccountInfoListener) {
|
ParseAndSaveAccountInfoListener parseAndSaveAccountInfoListener) {
|
||||||
new ParseAndSaveAccountInfoAsyncTask(response, redditDataRoomDatabase, parseAndSaveAccountInfoListener).execute();
|
new ParseAndSaveAccountInfoAsyncTask(response, redditDataRoomDatabase, parseAndSaveAccountInfoListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ParseAndSaveAccountInfoListener {
|
||||||
|
void onParseMyInfoSuccess(String name, String profileImageUrl, String bannerImageUrl, int karma);
|
||||||
|
|
||||||
|
void onParseMyInfoFail();
|
||||||
|
}
|
||||||
|
|
||||||
private static class ParseAndSaveAccountInfoAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class ParseAndSaveAccountInfoAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private JSONObject jsonResponse;
|
private JSONObject jsonResponse;
|
||||||
private RedditDataRoomDatabase redditDataRoomDatabase;
|
private RedditDataRoomDatabase redditDataRoomDatabase;
|
||||||
|
@ -19,17 +19,6 @@ import static ml.docilealligator.infinityforreddit.CommentData.VOTE_TYPE_NO_VOTE
|
|||||||
import static ml.docilealligator.infinityforreddit.CommentData.VOTE_TYPE_UPVOTE;
|
import static ml.docilealligator.infinityforreddit.CommentData.VOTE_TYPE_UPVOTE;
|
||||||
|
|
||||||
public class ParseComment {
|
public class ParseComment {
|
||||||
public interface ParseCommentListener {
|
|
||||||
void onParseCommentSuccess(ArrayList<CommentData> expandedComments, String parentId,
|
|
||||||
ArrayList<String> moreChildrenFullnames);
|
|
||||||
void onParseCommentFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ParseSentCommentListener {
|
|
||||||
void onParseSentCommentSuccess(CommentData commentData);
|
|
||||||
void onParseSentCommentFailed(@Nullable String errorMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void parseComment(String response, ArrayList<CommentData> commentData, Locale locale,
|
public static void parseComment(String response, ArrayList<CommentData> commentData, Locale locale,
|
||||||
ParseCommentListener parseCommentListener) {
|
ParseCommentListener parseCommentListener) {
|
||||||
try {
|
try {
|
||||||
@ -61,54 +50,6 @@ public class ParseComment {
|
|||||||
new ParseSentCommentAsyncTask(response, depth, locale, parseSentCommentListener).execute();
|
new ParseSentCommentAsyncTask(response, depth, locale, parseSentCommentListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ParseCommentAsyncTask extends AsyncTask<Void, Void, Void> {
|
|
||||||
private JSONArray commentsJSONArray;
|
|
||||||
private ArrayList<CommentData> comments;
|
|
||||||
private ArrayList<CommentData> newComments;
|
|
||||||
private ArrayList<CommentData> expandedNewComments;
|
|
||||||
private ArrayList<String> moreChildrenFullnames;
|
|
||||||
private Locale locale;
|
|
||||||
private String parentId;
|
|
||||||
private int depth;
|
|
||||||
private ParseCommentListener parseCommentListener;
|
|
||||||
private boolean parseFailed;
|
|
||||||
|
|
||||||
ParseCommentAsyncTask(JSONArray commentsJSONArray, ArrayList<CommentData> comments, Locale locale,
|
|
||||||
@Nullable String parentId, int depth, ParseCommentListener parseCommentListener){
|
|
||||||
this.commentsJSONArray = commentsJSONArray;
|
|
||||||
this.comments = comments;
|
|
||||||
newComments = new ArrayList<>();
|
|
||||||
expandedNewComments = new ArrayList<>();
|
|
||||||
moreChildrenFullnames = new ArrayList<>();
|
|
||||||
this.locale = locale;
|
|
||||||
this.parentId = parentId;
|
|
||||||
this.depth = depth;
|
|
||||||
parseFailed = false;
|
|
||||||
this.parseCommentListener = parseCommentListener;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... voids) {
|
|
||||||
try {
|
|
||||||
parseCommentRecursion(commentsJSONArray, newComments, moreChildrenFullnames, depth, locale);
|
|
||||||
expandChildren(newComments, expandedNewComments);
|
|
||||||
} catch (JSONException e) {
|
|
||||||
parseFailed = true;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void aVoid) {
|
|
||||||
if(!parseFailed) {
|
|
||||||
comments.addAll(expandedNewComments);
|
|
||||||
parseCommentListener.onParseCommentSuccess(comments, parentId, moreChildrenFullnames);
|
|
||||||
} else {
|
|
||||||
parseCommentListener.onParseCommentFailed();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void parseCommentRecursion(JSONArray comments, ArrayList<CommentData> newCommentData,
|
private static void parseCommentRecursion(JSONArray comments, ArrayList<CommentData> newCommentData,
|
||||||
ArrayList<String> moreChildrenFullnames, int depth, Locale locale) throws JSONException {
|
ArrayList<String> moreChildrenFullnames, int depth, Locale locale) throws JSONException {
|
||||||
int actualCommentLength;
|
int actualCommentLength;
|
||||||
@ -167,47 +108,6 @@ public class ParseComment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ParseSentCommentAsyncTask extends AsyncTask<Void, Void, Void> {
|
|
||||||
private String response;
|
|
||||||
private int depth;
|
|
||||||
private Locale locale;
|
|
||||||
private ParseSentCommentListener parseSentCommentListener;
|
|
||||||
private boolean parseFailed;
|
|
||||||
private String errorMessage;
|
|
||||||
private CommentData commentData;
|
|
||||||
|
|
||||||
ParseSentCommentAsyncTask(String response, int depth, Locale locale, ParseSentCommentListener parseSentCommentListener) {
|
|
||||||
this.response = response;
|
|
||||||
this.depth = depth;
|
|
||||||
this.locale = locale;
|
|
||||||
this.parseSentCommentListener = parseSentCommentListener;
|
|
||||||
parseFailed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... voids) {
|
|
||||||
try {
|
|
||||||
JSONObject sentCommentData = new JSONObject(response);
|
|
||||||
commentData = parseSingleComment(sentCommentData, depth, locale);
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
errorMessage = parseSentCommentErrorMessage(response);
|
|
||||||
parseFailed = true;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void aVoid) {
|
|
||||||
super.onPostExecute(aVoid);
|
|
||||||
if(parseFailed) {
|
|
||||||
parseSentCommentListener.onParseSentCommentFailed(errorMessage);
|
|
||||||
} else {
|
|
||||||
parseSentCommentListener.onParseSentCommentSuccess(commentData);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static CommentData parseSingleComment(JSONObject singleCommentData, int depth, Locale locale) throws JSONException {
|
static CommentData parseSingleComment(JSONObject singleCommentData, int depth, Locale locale) throws JSONException {
|
||||||
String id = singleCommentData.getString(JSONUtils.ID_KEY);
|
String id = singleCommentData.getString(JSONUtils.ID_KEY);
|
||||||
String fullName = singleCommentData.getString(JSONUtils.NAME_KEY);
|
String fullName = singleCommentData.getString(JSONUtils.NAME_KEY);
|
||||||
@ -280,4 +180,106 @@ public class ParseComment {
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ParseCommentListener {
|
||||||
|
void onParseCommentSuccess(ArrayList<CommentData> expandedComments, String parentId,
|
||||||
|
ArrayList<String> moreChildrenFullnames);
|
||||||
|
|
||||||
|
void onParseCommentFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ParseSentCommentListener {
|
||||||
|
void onParseSentCommentSuccess(CommentData commentData);
|
||||||
|
|
||||||
|
void onParseSentCommentFailed(@Nullable String errorMessage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ParseCommentAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
private JSONArray commentsJSONArray;
|
||||||
|
private ArrayList<CommentData> comments;
|
||||||
|
private ArrayList<CommentData> newComments;
|
||||||
|
private ArrayList<CommentData> expandedNewComments;
|
||||||
|
private ArrayList<String> moreChildrenFullnames;
|
||||||
|
private Locale locale;
|
||||||
|
private String parentId;
|
||||||
|
private int depth;
|
||||||
|
private ParseCommentListener parseCommentListener;
|
||||||
|
private boolean parseFailed;
|
||||||
|
|
||||||
|
ParseCommentAsyncTask(JSONArray commentsJSONArray, ArrayList<CommentData> comments, Locale locale,
|
||||||
|
@Nullable String parentId, int depth, ParseCommentListener parseCommentListener) {
|
||||||
|
this.commentsJSONArray = commentsJSONArray;
|
||||||
|
this.comments = comments;
|
||||||
|
newComments = new ArrayList<>();
|
||||||
|
expandedNewComments = new ArrayList<>();
|
||||||
|
moreChildrenFullnames = new ArrayList<>();
|
||||||
|
this.locale = locale;
|
||||||
|
this.parentId = parentId;
|
||||||
|
this.depth = depth;
|
||||||
|
parseFailed = false;
|
||||||
|
this.parseCommentListener = parseCommentListener;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Void... voids) {
|
||||||
|
try {
|
||||||
|
parseCommentRecursion(commentsJSONArray, newComments, moreChildrenFullnames, depth, locale);
|
||||||
|
expandChildren(newComments, expandedNewComments);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
parseFailed = true;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void aVoid) {
|
||||||
|
if (!parseFailed) {
|
||||||
|
comments.addAll(expandedNewComments);
|
||||||
|
parseCommentListener.onParseCommentSuccess(comments, parentId, moreChildrenFullnames);
|
||||||
|
} else {
|
||||||
|
parseCommentListener.onParseCommentFailed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ParseSentCommentAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
private String response;
|
||||||
|
private int depth;
|
||||||
|
private Locale locale;
|
||||||
|
private ParseSentCommentListener parseSentCommentListener;
|
||||||
|
private boolean parseFailed;
|
||||||
|
private String errorMessage;
|
||||||
|
private CommentData commentData;
|
||||||
|
|
||||||
|
ParseSentCommentAsyncTask(String response, int depth, Locale locale, ParseSentCommentListener parseSentCommentListener) {
|
||||||
|
this.response = response;
|
||||||
|
this.depth = depth;
|
||||||
|
this.locale = locale;
|
||||||
|
this.parseSentCommentListener = parseSentCommentListener;
|
||||||
|
parseFailed = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Void... voids) {
|
||||||
|
try {
|
||||||
|
JSONObject sentCommentData = new JSONObject(response);
|
||||||
|
commentData = parseSingleComment(sentCommentData, depth, locale);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
errorMessage = parseSentCommentErrorMessage(response);
|
||||||
|
parseFailed = true;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void aVoid) {
|
||||||
|
super.onPostExecute(aVoid);
|
||||||
|
if (parseFailed) {
|
||||||
|
parseSentCommentListener.onParseSentCommentFailed(errorMessage);
|
||||||
|
} else {
|
||||||
|
parseSentCommentListener.onParseSentCommentSuccess(commentData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,16 +19,6 @@ import ml.docilealligator.infinityforreddit.Fragment.PostFragment;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class ParsePost {
|
public class ParsePost {
|
||||||
interface ParsePostsListingListener {
|
|
||||||
void onParsePostsListingSuccess(ArrayList<Post> newPostData, String lastItem);
|
|
||||||
void onParsePostsListingFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public interface ParsePostListener {
|
|
||||||
void onParsePostSuccess(Post post);
|
|
||||||
void onParsePostFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void parsePosts(String response, Locale locale, int nPosts, int filter, boolean nsfw,
|
static void parsePosts(String response, Locale locale, int nPosts, int filter, boolean nsfw,
|
||||||
ParsePostsListingListener parsePostsListingListener) {
|
ParsePostsListingListener parsePostsListingListener) {
|
||||||
new ParsePostDataAsyncTask(response, locale, nPosts, filter, nsfw, parsePostsListingListener).execute();
|
new ParsePostDataAsyncTask(response, locale, nPosts, filter, nsfw, parsePostsListingListener).execute();
|
||||||
@ -38,124 +28,6 @@ public class ParsePost {
|
|||||||
new ParsePostDataAsyncTask(response, locale, true, parsePostListener).execute();
|
new ParsePostDataAsyncTask(response, locale, true, parsePostListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ParsePostDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
|
||||||
private JSONArray allData;
|
|
||||||
private Locale locale;
|
|
||||||
private int nPosts;
|
|
||||||
private int filter;
|
|
||||||
private boolean nsfw;
|
|
||||||
private ParsePostsListingListener parsePostsListingListener;
|
|
||||||
private ParsePostListener parsePostListener;
|
|
||||||
private ArrayList<Post> newPosts;
|
|
||||||
private Post post;
|
|
||||||
private String lastItem;
|
|
||||||
private boolean parseFailed;
|
|
||||||
|
|
||||||
ParsePostDataAsyncTask(String response, Locale locale, int nPosts, int filter, boolean nsfw,
|
|
||||||
ParsePostsListingListener parsePostsListingListener) {
|
|
||||||
this.parsePostsListingListener = parsePostsListingListener;
|
|
||||||
try {
|
|
||||||
JSONObject jsonResponse = new JSONObject(response);
|
|
||||||
allData = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
|
||||||
lastItem = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getString(JSONUtils.AFTER_KEY);
|
|
||||||
this.locale = locale;
|
|
||||||
this.nPosts = nPosts;
|
|
||||||
this.filter = filter;
|
|
||||||
this.nsfw = nsfw;
|
|
||||||
newPosts = new ArrayList<>();
|
|
||||||
parseFailed = false;
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
parseFailed = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ParsePostDataAsyncTask(String response, Locale locale, boolean nsfw,
|
|
||||||
ParsePostListener parsePostListener) {
|
|
||||||
this.parsePostListener = parsePostListener;
|
|
||||||
try {
|
|
||||||
allData = new JSONArray(response).getJSONObject(0).getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
|
||||||
this.locale = locale;
|
|
||||||
this.nsfw = nsfw;
|
|
||||||
parseFailed = false;
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
parseFailed = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... voids) {
|
|
||||||
if(parseFailed) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (newPosts == null) {
|
|
||||||
//Only one post
|
|
||||||
if (allData.length() == 0) {
|
|
||||||
parseFailed = true;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
JSONObject data = allData.getJSONObject(0).getJSONObject(JSONUtils.DATA_KEY);
|
|
||||||
post = parseBasicData(data, locale);
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
parseFailed = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//Posts listing
|
|
||||||
int size;
|
|
||||||
if (nPosts < 0 || nPosts > allData.length()) {
|
|
||||||
size = allData.length();
|
|
||||||
} else {
|
|
||||||
size = nPosts;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
try {
|
|
||||||
if(allData.getJSONObject(i).getString(JSONUtils.KIND_KEY).equals("t3")) {
|
|
||||||
JSONObject data = allData.getJSONObject(i).getJSONObject(JSONUtils.DATA_KEY);
|
|
||||||
Post post = parseBasicData(data, locale);
|
|
||||||
if(post != null && !(!nsfw && post.isNSFW())) {
|
|
||||||
if (filter == PostFragment.EXTRA_NO_FILTER) {
|
|
||||||
newPosts.add(post);
|
|
||||||
} else if (filter == post.getPostType()) {
|
|
||||||
newPosts.add(post);
|
|
||||||
} else if (filter == Post.LINK_TYPE && post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
|
||||||
newPosts.add(post);
|
|
||||||
} else if(filter == Post.NSFW_TYPE && post.isNSFW()) {
|
|
||||||
newPosts.add(post);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void aVoid) {
|
|
||||||
if(!parseFailed) {
|
|
||||||
if(newPosts != null) {
|
|
||||||
parsePostsListingListener.onParsePostsListingSuccess(newPosts, lastItem);
|
|
||||||
} else {
|
|
||||||
parsePostListener.onParsePostSuccess(post);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if(parsePostsListingListener != null) {
|
|
||||||
parsePostsListingListener.onParsePostsListingFail();
|
|
||||||
} else {
|
|
||||||
parsePostListener.onParsePostFail();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Post parseBasicData(JSONObject data, Locale locale) throws JSONException {
|
private static Post parseBasicData(JSONObject data, Locale locale) throws JSONException {
|
||||||
String id = data.getString(JSONUtils.ID_KEY);
|
String id = data.getString(JSONUtils.ID_KEY);
|
||||||
String fullName = data.getString(JSONUtils.NAME_KEY);
|
String fullName = data.getString(JSONUtils.NAME_KEY);
|
||||||
@ -364,4 +236,134 @@ public class ParsePost {
|
|||||||
|
|
||||||
return post;
|
return post;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParsePostsListingListener {
|
||||||
|
void onParsePostsListingSuccess(ArrayList<Post> newPostData, String lastItem);
|
||||||
|
|
||||||
|
void onParsePostsListingFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ParsePostListener {
|
||||||
|
void onParsePostSuccess(Post post);
|
||||||
|
|
||||||
|
void onParsePostFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class ParsePostDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
|
private JSONArray allData;
|
||||||
|
private Locale locale;
|
||||||
|
private int nPosts;
|
||||||
|
private int filter;
|
||||||
|
private boolean nsfw;
|
||||||
|
private ParsePostsListingListener parsePostsListingListener;
|
||||||
|
private ParsePostListener parsePostListener;
|
||||||
|
private ArrayList<Post> newPosts;
|
||||||
|
private Post post;
|
||||||
|
private String lastItem;
|
||||||
|
private boolean parseFailed;
|
||||||
|
|
||||||
|
ParsePostDataAsyncTask(String response, Locale locale, int nPosts, int filter, boolean nsfw,
|
||||||
|
ParsePostsListingListener parsePostsListingListener) {
|
||||||
|
this.parsePostsListingListener = parsePostsListingListener;
|
||||||
|
try {
|
||||||
|
JSONObject jsonResponse = new JSONObject(response);
|
||||||
|
allData = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
||||||
|
lastItem = jsonResponse.getJSONObject(JSONUtils.DATA_KEY).getString(JSONUtils.AFTER_KEY);
|
||||||
|
this.locale = locale;
|
||||||
|
this.nPosts = nPosts;
|
||||||
|
this.filter = filter;
|
||||||
|
this.nsfw = nsfw;
|
||||||
|
newPosts = new ArrayList<>();
|
||||||
|
parseFailed = false;
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
parseFailed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ParsePostDataAsyncTask(String response, Locale locale, boolean nsfw,
|
||||||
|
ParsePostListener parsePostListener) {
|
||||||
|
this.parsePostListener = parsePostListener;
|
||||||
|
try {
|
||||||
|
allData = new JSONArray(response).getJSONObject(0).getJSONObject(JSONUtils.DATA_KEY).getJSONArray(JSONUtils.CHILDREN_KEY);
|
||||||
|
this.locale = locale;
|
||||||
|
this.nsfw = nsfw;
|
||||||
|
parseFailed = false;
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
parseFailed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Void... voids) {
|
||||||
|
if (parseFailed) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newPosts == null) {
|
||||||
|
//Only one post
|
||||||
|
if (allData.length() == 0) {
|
||||||
|
parseFailed = true;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
JSONObject data = allData.getJSONObject(0).getJSONObject(JSONUtils.DATA_KEY);
|
||||||
|
post = parseBasicData(data, locale);
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
parseFailed = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Posts listing
|
||||||
|
int size;
|
||||||
|
if (nPosts < 0 || nPosts > allData.length()) {
|
||||||
|
size = allData.length();
|
||||||
|
} else {
|
||||||
|
size = nPosts;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
try {
|
||||||
|
if (allData.getJSONObject(i).getString(JSONUtils.KIND_KEY).equals("t3")) {
|
||||||
|
JSONObject data = allData.getJSONObject(i).getJSONObject(JSONUtils.DATA_KEY);
|
||||||
|
Post post = parseBasicData(data, locale);
|
||||||
|
if (post != null && !(!nsfw && post.isNSFW())) {
|
||||||
|
if (filter == PostFragment.EXTRA_NO_FILTER) {
|
||||||
|
newPosts.add(post);
|
||||||
|
} else if (filter == post.getPostType()) {
|
||||||
|
newPosts.add(post);
|
||||||
|
} else if (filter == Post.LINK_TYPE && post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
|
||||||
|
newPosts.add(post);
|
||||||
|
} else if (filter == Post.NSFW_TYPE && post.isNSFW()) {
|
||||||
|
newPosts.add(post);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (JSONException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void aVoid) {
|
||||||
|
if (!parseFailed) {
|
||||||
|
if (newPosts != null) {
|
||||||
|
parsePostsListingListener.onParsePostsListingSuccess(newPosts, lastItem);
|
||||||
|
} else {
|
||||||
|
parsePostListener.onParsePostSuccess(post);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (parsePostsListingListener != null) {
|
||||||
|
parsePostsListingListener.onParsePostsListingFail();
|
||||||
|
} else {
|
||||||
|
parsePostListener.onParsePostFail();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,16 +11,6 @@ import java.util.ArrayList;
|
|||||||
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData;
|
||||||
|
|
||||||
class ParseSubredditData {
|
class ParseSubredditData {
|
||||||
interface ParseSubredditDataListener {
|
|
||||||
void onParseSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers);
|
|
||||||
void onParseSubredditDataFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ParseSubredditListingDataListener {
|
|
||||||
void onParseSubredditListingDataSuccess(ArrayList<SubredditData> subredditData, String after);
|
|
||||||
void onParseSubredditListingDataFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void parseSubredditData(String response, ParseSubredditDataListener parseSubredditDataListener) {
|
static void parseSubredditData(String response, ParseSubredditDataListener parseSubredditDataListener) {
|
||||||
new ParseSubredditDataAsyncTask(response, parseSubredditDataListener).execute();
|
new ParseSubredditDataAsyncTask(response, parseSubredditDataListener).execute();
|
||||||
}
|
}
|
||||||
@ -29,6 +19,51 @@ class ParseSubredditData {
|
|||||||
new ParseSubredditListingDataAsyncTask(response, parseSubredditListingDataListener).execute();
|
new ParseSubredditListingDataAsyncTask(response, parseSubredditListingDataListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static SubredditData parseSubredditData(JSONObject subredditDataJsonObject) throws JSONException {
|
||||||
|
String id = subredditDataJsonObject.getString(JSONUtils.NAME_KEY);
|
||||||
|
String subredditFullName = subredditDataJsonObject.getString(JSONUtils.DISPLAY_NAME);
|
||||||
|
String description = subredditDataJsonObject.getString(JSONUtils.PUBLIC_DESCRIPTION_KEY).trim();
|
||||||
|
|
||||||
|
String bannerImageUrl;
|
||||||
|
if (subredditDataJsonObject.isNull(JSONUtils.BANNER_BACKGROUND_IMAGE_KEY)) {
|
||||||
|
bannerImageUrl = "";
|
||||||
|
} else {
|
||||||
|
bannerImageUrl = subredditDataJsonObject.getString(JSONUtils.BANNER_BACKGROUND_IMAGE_KEY);
|
||||||
|
}
|
||||||
|
if (bannerImageUrl.equals("") && !subredditDataJsonObject.isNull(JSONUtils.BANNER_IMG_KEY)) {
|
||||||
|
bannerImageUrl = subredditDataJsonObject.getString(JSONUtils.BANNER_IMG_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
String iconUrl;
|
||||||
|
if (subredditDataJsonObject.isNull(JSONUtils.COMMUNITY_ICON_KEY)) {
|
||||||
|
iconUrl = "";
|
||||||
|
} else {
|
||||||
|
iconUrl = subredditDataJsonObject.getString(JSONUtils.COMMUNITY_ICON_KEY);
|
||||||
|
}
|
||||||
|
if (iconUrl.equals("") && !subredditDataJsonObject.isNull(JSONUtils.ICON_IMG_KEY)) {
|
||||||
|
iconUrl = subredditDataJsonObject.getString(JSONUtils.ICON_IMG_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
int nSubscribers = 0;
|
||||||
|
if (!subredditDataJsonObject.isNull(JSONUtils.SUBSCRIBERS_KEY)) {
|
||||||
|
nSubscribers = subredditDataJsonObject.getInt(JSONUtils.SUBSCRIBERS_KEY);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new SubredditData(id, subredditFullName, iconUrl, bannerImageUrl, description, nSubscribers);
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ParseSubredditDataListener {
|
||||||
|
void onParseSubredditDataSuccess(SubredditData subredditData, int nCurrentOnlineSubscribers);
|
||||||
|
|
||||||
|
void onParseSubredditDataFail();
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ParseSubredditListingDataListener {
|
||||||
|
void onParseSubredditListingDataSuccess(ArrayList<SubredditData> subredditData, String after);
|
||||||
|
|
||||||
|
void onParseSubredditListingDataFail();
|
||||||
|
}
|
||||||
|
|
||||||
private static class ParseSubredditDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class ParseSubredditDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private JSONObject jsonResponse;
|
private JSONObject jsonResponse;
|
||||||
private boolean parseFailed;
|
private boolean parseFailed;
|
||||||
@ -119,37 +154,4 @@ class ParseSubredditData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static SubredditData parseSubredditData(JSONObject subredditDataJsonObject) throws JSONException {
|
|
||||||
String id = subredditDataJsonObject.getString(JSONUtils.NAME_KEY);
|
|
||||||
String subredditFullName = subredditDataJsonObject.getString(JSONUtils.DISPLAY_NAME);
|
|
||||||
String description = subredditDataJsonObject.getString(JSONUtils.PUBLIC_DESCRIPTION_KEY).trim();
|
|
||||||
|
|
||||||
String bannerImageUrl;
|
|
||||||
if(subredditDataJsonObject.isNull(JSONUtils.BANNER_BACKGROUND_IMAGE_KEY)) {
|
|
||||||
bannerImageUrl = "";
|
|
||||||
} else {
|
|
||||||
bannerImageUrl = subredditDataJsonObject.getString(JSONUtils.BANNER_BACKGROUND_IMAGE_KEY);
|
|
||||||
}
|
|
||||||
if(bannerImageUrl.equals("") && !subredditDataJsonObject.isNull(JSONUtils.BANNER_IMG_KEY)) {
|
|
||||||
bannerImageUrl= subredditDataJsonObject.getString(JSONUtils.BANNER_IMG_KEY);
|
|
||||||
}
|
|
||||||
|
|
||||||
String iconUrl;
|
|
||||||
if(subredditDataJsonObject.isNull(JSONUtils.COMMUNITY_ICON_KEY)) {
|
|
||||||
iconUrl = "";
|
|
||||||
} else {
|
|
||||||
iconUrl = subredditDataJsonObject.getString(JSONUtils.COMMUNITY_ICON_KEY);
|
|
||||||
}
|
|
||||||
if(iconUrl.equals("") && !subredditDataJsonObject.isNull(JSONUtils.ICON_IMG_KEY)) {
|
|
||||||
iconUrl = subredditDataJsonObject.getString(JSONUtils.ICON_IMG_KEY);
|
|
||||||
}
|
|
||||||
|
|
||||||
int nSubscribers = 0;
|
|
||||||
if(!subredditDataJsonObject.isNull(JSONUtils.SUBSCRIBERS_KEY)) {
|
|
||||||
nSubscribers = subredditDataJsonObject.getInt(JSONUtils.SUBSCRIBERS_KEY);
|
|
||||||
}
|
|
||||||
|
|
||||||
return new SubredditData(id, subredditFullName, iconUrl, bannerImageUrl, description, nSubscribers);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -13,14 +13,6 @@ import ml.docilealligator.infinityforreddit.SubscribedSubredditDatabase.Subscrib
|
|||||||
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserData;
|
||||||
|
|
||||||
class ParseSubscribedThing {
|
class ParseSubscribedThing {
|
||||||
interface ParseSubscribedSubredditsListener {
|
|
||||||
void onParseSubscribedSubredditsSuccess(ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
|
||||||
ArrayList<SubscribedUserData> subscribedUserData,
|
|
||||||
ArrayList<SubredditData> subredditData,
|
|
||||||
String lastItem);
|
|
||||||
void onParseSubscribedSubredditsFail();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void parseSubscribedSubreddits(String response, String accountName,
|
static void parseSubscribedSubreddits(String response, String accountName,
|
||||||
ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
||||||
ArrayList<SubscribedUserData> subscribedUserData,
|
ArrayList<SubscribedUserData> subscribedUserData,
|
||||||
@ -30,6 +22,15 @@ class ParseSubscribedThing {
|
|||||||
parseSubscribedSubredditsListener).execute();
|
parseSubscribedSubredditsListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface ParseSubscribedSubredditsListener {
|
||||||
|
void onParseSubscribedSubredditsSuccess(ArrayList<SubscribedSubredditData> subscribedSubredditData,
|
||||||
|
ArrayList<SubscribedUserData> subscribedUserData,
|
||||||
|
ArrayList<SubredditData> subredditData,
|
||||||
|
String lastItem);
|
||||||
|
|
||||||
|
void onParseSubscribedSubredditsFail();
|
||||||
|
}
|
||||||
|
|
||||||
private static class ParseSubscribedSubredditsAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class ParseSubscribedSubredditsAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private JSONObject jsonResponse;
|
private JSONObject jsonResponse;
|
||||||
private String accountName;
|
private String accountName;
|
||||||
|
@ -11,16 +11,6 @@ import java.util.ArrayList;
|
|||||||
import ml.docilealligator.infinityforreddit.User.UserData;
|
import ml.docilealligator.infinityforreddit.User.UserData;
|
||||||
|
|
||||||
public class ParseUserData {
|
public class ParseUserData {
|
||||||
interface ParseUserDataListener {
|
|
||||||
void onParseUserDataSuccess(UserData userData);
|
|
||||||
void onParseUserDataFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ParseUserListingDataListener {
|
|
||||||
void onParseUserListingDataSuccess(ArrayList<UserData> userData, String after);
|
|
||||||
void onParseUserListingDataFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void parseUserData(String response, ParseUserDataListener parseUserDataListener) {
|
static void parseUserData(String response, ParseUserDataListener parseUserDataListener) {
|
||||||
new ParseUserDataAsyncTask(response, parseUserDataListener).execute();
|
new ParseUserDataAsyncTask(response, parseUserDataListener).execute();
|
||||||
}
|
}
|
||||||
@ -29,6 +19,39 @@ public class ParseUserData {
|
|||||||
new ParseUserListingDataAsyncTask(response, parseUserListingDataListener).execute();
|
new ParseUserListingDataAsyncTask(response, parseUserListingDataListener).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static UserData parseUserDataBase(JSONObject userDataJson) throws JSONException {
|
||||||
|
userDataJson = userDataJson.getJSONObject(JSONUtils.DATA_KEY);
|
||||||
|
String userName = userDataJson.getString(JSONUtils.NAME_KEY);
|
||||||
|
String iconImageUrl = userDataJson.getString(JSONUtils.ICON_IMG_KEY);
|
||||||
|
String bannerImageUrl = "";
|
||||||
|
boolean canBeFollowed;
|
||||||
|
if (userDataJson.has(JSONUtils.SUBREDDIT_KEY) && !userDataJson.isNull(JSONUtils.SUBREDDIT_KEY)) {
|
||||||
|
bannerImageUrl = userDataJson.getJSONObject(JSONUtils.SUBREDDIT_KEY).getString(JSONUtils.BANNER_IMG_KEY);
|
||||||
|
canBeFollowed = true;
|
||||||
|
} else {
|
||||||
|
canBeFollowed = false;
|
||||||
|
}
|
||||||
|
int linkKarma = userDataJson.getInt(JSONUtils.LINK_KARMA_KEY);
|
||||||
|
int commentKarma = userDataJson.getInt(JSONUtils.COMMENT_KARMA_KEY);
|
||||||
|
int karma = linkKarma + commentKarma;
|
||||||
|
boolean isGold = userDataJson.getBoolean(JSONUtils.IS_GOLD_KEY);
|
||||||
|
boolean isFriend = userDataJson.getBoolean(JSONUtils.IS_FRIEND_KEY);
|
||||||
|
|
||||||
|
return new UserData(userName, iconImageUrl, bannerImageUrl, karma, isGold, isFriend, canBeFollowed);
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ParseUserDataListener {
|
||||||
|
void onParseUserDataSuccess(UserData userData);
|
||||||
|
|
||||||
|
void onParseUserDataFailed();
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ParseUserListingDataListener {
|
||||||
|
void onParseUserListingDataSuccess(ArrayList<UserData> userData, String after);
|
||||||
|
|
||||||
|
void onParseUserListingDataFailed();
|
||||||
|
}
|
||||||
|
|
||||||
private static class ParseUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
private static class ParseUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
|
||||||
private JSONObject jsonResponse;
|
private JSONObject jsonResponse;
|
||||||
private ParseUserDataListener parseUserDataListener;
|
private ParseUserDataListener parseUserDataListener;
|
||||||
@ -120,25 +143,4 @@ public class ParseUserData {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static UserData parseUserDataBase(JSONObject userDataJson) throws JSONException {
|
|
||||||
userDataJson = userDataJson.getJSONObject(JSONUtils.DATA_KEY);
|
|
||||||
String userName = userDataJson.getString(JSONUtils.NAME_KEY);
|
|
||||||
String iconImageUrl = userDataJson.getString(JSONUtils.ICON_IMG_KEY);
|
|
||||||
String bannerImageUrl = "";
|
|
||||||
boolean canBeFollowed;
|
|
||||||
if(userDataJson.has(JSONUtils.SUBREDDIT_KEY) && !userDataJson.isNull(JSONUtils.SUBREDDIT_KEY)) {
|
|
||||||
bannerImageUrl = userDataJson.getJSONObject(JSONUtils.SUBREDDIT_KEY).getString(JSONUtils.BANNER_IMG_KEY);
|
|
||||||
canBeFollowed = true;
|
|
||||||
} else {
|
|
||||||
canBeFollowed = false;
|
|
||||||
}
|
|
||||||
int linkKarma = userDataJson.getInt(JSONUtils.LINK_KARMA_KEY);
|
|
||||||
int commentKarma = userDataJson.getInt(JSONUtils.COMMENT_KARMA_KEY);
|
|
||||||
int karma = linkKarma + commentKarma;
|
|
||||||
boolean isGold = userDataJson.getBoolean(JSONUtils.IS_GOLD_KEY);
|
|
||||||
boolean isFriend = userDataJson.getBoolean(JSONUtils.IS_FRIEND_KEY);
|
|
||||||
|
|
||||||
return new UserData(userName, iconImageUrl, bannerImageUrl, karma, isGold, isFriend, canBeFollowed);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,17 @@ public class Post implements Parcelable {
|
|||||||
public static final int VIDEO_TYPE = 3;
|
public static final int VIDEO_TYPE = 3;
|
||||||
public static final int GIF_VIDEO_TYPE = 4;
|
public static final int GIF_VIDEO_TYPE = 4;
|
||||||
public static final int NO_PREVIEW_LINK_TYPE = 5;
|
public static final int NO_PREVIEW_LINK_TYPE = 5;
|
||||||
|
public static final Creator<Post> CREATOR = new Creator<Post>() {
|
||||||
|
@Override
|
||||||
|
public Post createFromParcel(Parcel in) {
|
||||||
|
return new Post(in);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Post[] newArray(int size) {
|
||||||
|
return new Post[size];
|
||||||
|
}
|
||||||
|
};
|
||||||
private String id;
|
private String id;
|
||||||
private String fullName;
|
private String fullName;
|
||||||
private String subredditName;
|
private String subredditName;
|
||||||
@ -175,18 +185,6 @@ public class Post implements Parcelable {
|
|||||||
crosspostParentId = in.readString();
|
crosspostParentId = in.readString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<Post> CREATOR = new Creator<Post>() {
|
|
||||||
@Override
|
|
||||||
public Post createFromParcel(Parcel in) {
|
|
||||||
return new Post(in);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Post[] newArray(int size) {
|
|
||||||
return new Post[size];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -231,22 +229,22 @@ public class Post implements Parcelable {
|
|||||||
return postTime;
|
return postTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTitle(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSelfText(String selfText) {
|
public void setTitle(String title) {
|
||||||
this.selfText = selfText;
|
this.title = title;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSelfText() {
|
public String getSelfText() {
|
||||||
return selfText;
|
return selfText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setSelfText(String selfText) {
|
||||||
|
this.selfText = selfText;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPreviewUrl() {
|
public String getPreviewUrl() {
|
||||||
return previewUrl;
|
return previewUrl;
|
||||||
}
|
}
|
||||||
@ -255,14 +253,14 @@ public class Post implements Parcelable {
|
|||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVideoUrl(String videoUrl) {
|
|
||||||
this.videoUrl = videoUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getVideoUrl() {
|
public String getVideoUrl() {
|
||||||
return videoUrl;
|
return videoUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setVideoUrl(String videoUrl) {
|
||||||
|
this.videoUrl = videoUrl;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPermalink() {
|
public String getPermalink() {
|
||||||
return permalink;
|
return permalink;
|
||||||
}
|
}
|
||||||
@ -275,46 +273,46 @@ public class Post implements Parcelable {
|
|||||||
this.flair = flair;
|
this.flair = flair;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setScore(int score) {
|
|
||||||
this.score = score;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getScore() {
|
public int getScore() {
|
||||||
return score;
|
return score;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setScore(int score) {
|
||||||
|
this.score = score;
|
||||||
|
}
|
||||||
|
|
||||||
public int getPostType() {
|
public int getPostType() {
|
||||||
return postType;
|
return postType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVoteType(int voteType) {
|
|
||||||
this.voteType = voteType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getVoteType() {
|
public int getVoteType() {
|
||||||
return voteType;
|
return voteType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setVoteType(int voteType) {
|
||||||
|
this.voteType = voteType;
|
||||||
|
}
|
||||||
|
|
||||||
public int getGilded() {
|
public int getGilded() {
|
||||||
return gilded;
|
return gilded;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPreviewWidth(int previewWidth) {
|
|
||||||
this.previewWidth = previewWidth;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPreviewWidth() {
|
public int getPreviewWidth() {
|
||||||
return previewWidth;
|
return previewWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPreviewHeight(int previewHeight) {
|
public void setPreviewWidth(int previewWidth) {
|
||||||
this.previewHeight = previewHeight;
|
this.previewWidth = previewWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPreviewHeight() {
|
public int getPreviewHeight() {
|
||||||
return previewHeight;
|
return previewHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setPreviewHeight(int previewHeight) {
|
||||||
|
this.previewHeight = previewHeight;
|
||||||
|
}
|
||||||
|
|
||||||
public int getnComments() {
|
public int getnComments() {
|
||||||
return nComments;
|
return nComments;
|
||||||
}
|
}
|
||||||
|
@ -34,22 +34,17 @@ import retrofit2.Retrofit;
|
|||||||
|
|
||||||
public class PullNotificationWorker extends Worker {
|
public class PullNotificationWorker extends Worker {
|
||||||
public static final String WORKER_TAG = "PNWT";
|
public static final String WORKER_TAG = "PNWT";
|
||||||
|
|
||||||
private Context context;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth_without_authenticator")
|
@Named("oauth_without_authenticator")
|
||||||
Retrofit mOauthWithoutAuthenticatorRetrofit;
|
Retrofit mOauthWithoutAuthenticatorRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named("no_oauth")
|
@Named("no_oauth")
|
||||||
Retrofit mRetrofit;
|
Retrofit mRetrofit;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SharedPreferences mSharedPreferences;
|
SharedPreferences mSharedPreferences;
|
||||||
|
private Context context;
|
||||||
|
|
||||||
public PullNotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
|
public PullNotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
|
||||||
super(context, workerParams);
|
super(context, workerParams);
|
||||||
|
@ -11,11 +11,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class ReadMessage {
|
public class ReadMessage {
|
||||||
public interface ReadMessageListener {
|
|
||||||
void readSuccess();
|
|
||||||
void readFailed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void readMessage(Retrofit oauthRetrofit, String accessToken, String commaSeparatedFullnames,
|
public static void readMessage(Retrofit oauthRetrofit, String accessToken, String commaSeparatedFullnames,
|
||||||
ReadMessageListener readMessageListener) {
|
ReadMessageListener readMessageListener) {
|
||||||
Map<String, String> params = new HashMap<>();
|
Map<String, String> params = new HashMap<>();
|
||||||
@ -37,4 +32,10 @@ public class ReadMessage {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface ReadMessageListener {
|
||||||
|
void readSuccess();
|
||||||
|
|
||||||
|
void readFailed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,6 @@ import ml.docilealligator.infinityforreddit.User.UserData;
|
|||||||
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
||||||
private static RedditDataRoomDatabase INSTANCE;
|
private static RedditDataRoomDatabase INSTANCE;
|
||||||
|
|
||||||
public abstract AccountDao accountDao();
|
|
||||||
public abstract SubredditDao subredditDao();
|
|
||||||
public abstract SubscribedSubredditDao subscribedSubredditDao();
|
|
||||||
public abstract UserDao userDao();
|
|
||||||
public abstract SubscribedUserDao subscribedUserDao();
|
|
||||||
|
|
||||||
public static RedditDataRoomDatabase getDatabase(final Context context) {
|
public static RedditDataRoomDatabase getDatabase(final Context context) {
|
||||||
if (INSTANCE == null) {
|
if (INSTANCE == null) {
|
||||||
synchronized (RedditDataRoomDatabase.class) {
|
synchronized (RedditDataRoomDatabase.class) {
|
||||||
@ -39,4 +33,14 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
|||||||
}
|
}
|
||||||
return INSTANCE;
|
return INSTANCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public abstract AccountDao accountDao();
|
||||||
|
|
||||||
|
public abstract SubredditDao subredditDao();
|
||||||
|
|
||||||
|
public abstract SubscribedSubredditDao subscribedSubredditDao();
|
||||||
|
|
||||||
|
public abstract UserDao userDao();
|
||||||
|
|
||||||
|
public abstract SubscribedUserDao subscribedUserDao();
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,6 @@ import retrofit2.Response;
|
|||||||
import retrofit2.Retrofit;
|
import retrofit2.Retrofit;
|
||||||
|
|
||||||
public class SaveThing {
|
public class SaveThing {
|
||||||
public interface SaveThingListener {
|
|
||||||
void success();
|
|
||||||
void failed();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void saveThing(Retrofit oauthRetrofit, String accessToken, String fullname,
|
public static void saveThing(Retrofit oauthRetrofit, String accessToken, String fullname,
|
||||||
SaveThingListener saveThingListener) {
|
SaveThingListener saveThingListener) {
|
||||||
Map<String, String> params = new HashMap<>();
|
Map<String, String> params = new HashMap<>();
|
||||||
@ -57,4 +52,10 @@ public class SaveThing {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SaveThingListener {
|
||||||
|
void success();
|
||||||
|
|
||||||
|
void failed();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,11 +14,6 @@ import retrofit2.Retrofit;
|
|||||||
|
|
||||||
public class SendComment {
|
public class SendComment {
|
||||||
|
|
||||||
public interface SendCommentListener {
|
|
||||||
void sendCommentSuccess(CommentData commentData);
|
|
||||||
void sendCommentFailed(String errorMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void sendComment(String commentMarkdown, String thingFullname, int parentDepth,
|
public static void sendComment(String commentMarkdown, String thingFullname, int parentDepth,
|
||||||
Locale locale, Retrofit oauthRetrofit, String accessToken,
|
Locale locale, Retrofit oauthRetrofit, String accessToken,
|
||||||
SendCommentListener sendCommentListener) {
|
SendCommentListener sendCommentListener) {
|
||||||
@ -58,4 +53,10 @@ public class SendComment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface SendCommentListener {
|
||||||
|
void sendCommentSuccess(CommentData commentData);
|
||||||
|
|
||||||
|
void sendCommentFailed(String errorMessage);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user