From bc91260e8a36524294c635970051f902ed533cfc Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Wed, 10 Jul 2019 15:59:47 +0800 Subject: [PATCH] Place all the subscribed subreddits and users to SubscribedThingListingActivity instead of the navigation drawer in MainActivity. --- .idea/caches/build_file_checksums.ser | Bin 533 -> 533 bytes .idea/caches/gradle_models.ser | Bin 251125 -> 251125 bytes app/src/main/AndroidManifest.xml | 13 +- .../infinityforreddit/AppComponent.java | 1 + .../FollowedUsersListingFragment.java | 76 +++++++++ .../infinityforreddit/MainActivity.java | 90 ++--------- .../infinityforreddit/PostFragment.java | 6 +- .../infinityforreddit/PostTextActivity.java | 19 +++ .../infinityforreddit/SearchActivity.java | 10 +- .../SubredditSelectionActivity.java | 53 ++++++ .../SubscribedSubredditsListingFragment.java | 77 +++++++++ ...scribedSubredditsRecyclerViewAdapter.java} | 18 +-- .../SubscribedThingListingActivity.java | 153 ++++++++++++++++++ .../SubscribedUserRecyclerViewAdapter.java | 9 +- app/src/main/res/layout/activity_main.xml | 70 +++++--- .../main/res/layout/activity_post_text.xml | 8 +- .../layout/activity_subreddit_selection.xml | 14 ++ .../activity_subscribed_thing_listing.xml | 45 ++++++ .../fragment_followed_users_listing.xml | 34 ++++ ...fragment_subscribed_subreddits_listing.xml | 34 ++++ .../main/res/layout/item_subscribed_thing.xml | 3 +- app/src/main/res/values/strings.xml | 7 +- 22 files changed, 603 insertions(+), 137 deletions(-) create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/SubredditSelectionActivity.java create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java rename app/src/main/java/ml/docilealligator/infinityforreddit/{SubscribedSubredditRecyclerViewAdapter.java => SubscribedSubredditsRecyclerViewAdapter.java} (88%) create mode 100644 app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java create mode 100644 app/src/main/res/layout/activity_subreddit_selection.xml create mode 100644 app/src/main/res/layout/activity_subscribed_thing_listing.xml create mode 100644 app/src/main/res/layout/fragment_followed_users_listing.xml create mode 100644 app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 56e64e24b5d878edbf59a82c7e547e98e7dd26c5..455a9a4b393869af67c0ada9bf128c2125551559 100644 GIT binary patch delta 15 XcmbQrGL>b*43=AagLiD4Q^^PbG#3WQ delta 15 XcmbQrGL>b*43?`01G6{IsbmBIGJXbl diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index 0e0bc50c8ba7c0dfe78a1824905baa54411f96bc..d0f1a29375d2badc01494d5d37ee9c043f2097d5 100644 GIT binary patch literal 251125 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 z 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

i@;EJ`8x3_KY21I? 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 literal 251125 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 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 744a48ea..c0b81dbf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,8 +19,17 @@ android:supportsRtl="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> - + + { + if (subscribedUserData == null || subscribedUserData.size() == 0) { + mRecyclerView.setVisibility(View.GONE); + mLinearLayout.setVisibility(View.VISIBLE); + mGlide.load(R.drawable.load_post_error_indicator).into(mImageView); + } else { + mLinearLayout.setVisibility(View.GONE); + mRecyclerView.setVisibility(View.VISIBLE); + } + adapter.setSubscribedUsers(subscribedUserData); + }); + + return rootView; + } + +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java index 4bc6870d..a711091c 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java @@ -19,9 +19,6 @@ import androidx.appcompat.widget.Toolbar; import androidx.core.view.GravityCompat; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProviders; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import com.bumptech.glide.Glide; import com.bumptech.glide.RequestManager; @@ -31,19 +28,9 @@ import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.floatingactionbutton.FloatingActionButton; -import java.util.ArrayList; - import javax.inject.Inject; import javax.inject.Named; -import SubredditDatabase.SubredditData; -import SubredditDatabase.SubredditRoomDatabase; -import SubscribedSubredditDatabase.SubscribedSubredditData; -import SubscribedSubredditDatabase.SubscribedSubredditRoomDatabase; -import SubscribedSubredditDatabase.SubscribedSubredditViewModel; -import SubscribedUserDatabase.SubscribedUserData; -import SubscribedUserDatabase.SubscribedUserRoomDatabase; -import SubscribedUserDatabase.SubscribedUserViewModel; import butterknife.BindView; import butterknife.ButterKnife; import jp.wasabeef.glide.transformations.RoundedCornersTransformation; @@ -63,11 +50,9 @@ public class MainActivity extends AppCompatActivity { @BindView(R.id.collapsing_toolbar_layout_main_activity) CollapsingToolbarLayout collapsingToolbarLayout; @BindView(R.id.search_view_main_activity) SimpleSearchView simpleSearchView; @BindView(R.id.transparent_overlay_main_activity) View transparentOverlay; - @BindView(R.id.subscribed_subreddit_recycler_view_main_activity) RecyclerView subscribedSubredditRecyclerView; - @BindView(R.id.subscriptions_label_main_activity) TextView subscriptionsLabelTextView; - @BindView(R.id.subscribed_user_recycler_view_main_activity) RecyclerView subscribedUserRecyclerView; - @BindView(R.id.following_label_main_activity) TextView followingLabelTextView; @BindView(R.id.profile_linear_layout_main_activity) LinearLayout profileLinearLayout; + @BindView(R.id.subscriptions_linear_layout_main_activity) LinearLayout subscriptionLinearLayout; + @BindView(R.id.settings_linear_layout_main_activity) LinearLayout settingsLinearLayout; @BindView(R.id.fab_main_activity) FloatingActionButton fab; private TextView mNameTextView; @@ -84,13 +69,9 @@ public class MainActivity extends AppCompatActivity { private String mBannerImageUrl; private String mKarma; private boolean mFetchUserInfoSuccess = false; - private boolean mInsertSuccess = false; private Menu mMenu; - private SubscribedSubredditViewModel mSubscribedSubredditViewModel; - private SubscribedUserViewModel mSubscribedUserViewModel; - private boolean isInLazyMode = false; @Inject @@ -109,6 +90,7 @@ public class MainActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + ButterKnife.bind(this); ((Infinity) getApplication()).getmAppComponent().inject(this); @@ -184,7 +166,6 @@ public class MainActivity extends AppCompatActivity { getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_content_main, mFragment).commit(); mFetchUserInfoSuccess = savedInstanceState.getBoolean(FETCH_USER_INFO_STATE); - mInsertSuccess = savedInstanceState.getBoolean(INSERT_SUBSCRIBED_SUBREDDIT_STATE); isInLazyMode = savedInstanceState.getBoolean(IS_IN_LAZY_MODE_STATE); } @@ -198,12 +179,6 @@ public class MainActivity extends AppCompatActivity { loadUserData(); - subscribedSubredditRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - subscribedSubredditRecyclerView.setNestedScrollingEnabled(false); - - subscribedUserRecyclerView.setLayoutManager(new LinearLayoutManager(this)); - subscribedUserRecyclerView.setNestedScrollingEnabled(false); - mName = getSharedPreferences(SharedPreferencesUtils.USER_INFO_FILE_KEY, Context.MODE_PRIVATE).getString(SharedPreferencesUtils.USER_KEY, ""); mProfileImageUrl = getSharedPreferences(SharedPreferencesUtils.USER_INFO_FILE_KEY, Context.MODE_PRIVATE).getString(SharedPreferencesUtils.PROFILE_IMAGE_URL_KEY, ""); mBannerImageUrl = getSharedPreferences(SharedPreferencesUtils.USER_INFO_FILE_KEY, Context.MODE_PRIVATE).getString(SharedPreferencesUtils.BANNER_IMAGE_URL_KEY, ""); @@ -229,37 +204,18 @@ public class MainActivity extends AppCompatActivity { } profileLinearLayout.setOnClickListener(view -> { - Intent intent = new Intent(MainActivity.this, ViewUserDetailActivity.class); + Intent intent = new Intent(this, ViewUserDetailActivity.class); intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, mName); startActivity(intent); }); - final SubscribedSubredditRecyclerViewAdapter subredditadapter = - new SubscribedSubredditRecyclerViewAdapter(this, drawer::closeDrawers); - subscribedSubredditRecyclerView.setAdapter(subredditadapter); - - mSubscribedSubredditViewModel = ViewModelProviders.of(this).get(SubscribedSubredditViewModel.class); - mSubscribedSubredditViewModel.getAllSubscribedSubreddits().observe(this, subscribedSubredditData -> { - if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) { - subscriptionsLabelTextView.setVisibility(View.GONE); - } else { - subscriptionsLabelTextView.setVisibility(View.VISIBLE); - } - - subredditadapter.setSubscribedSubreddits(subscribedSubredditData); + subscriptionLinearLayout.setOnClickListener(view -> { + Intent intent = new Intent(this, SubscribedThingListingActivity.class); + startActivity(intent); }); - final SubscribedUserRecyclerViewAdapter userAdapter = - new SubscribedUserRecyclerViewAdapter(this, drawer::closeDrawers); - subscribedUserRecyclerView.setAdapter(userAdapter); - mSubscribedUserViewModel = ViewModelProviders.of(this).get(SubscribedUserViewModel.class); - mSubscribedUserViewModel.getAllSubscribedUsers().observe(this, subscribedUserData -> { - if (subscribedUserData == null || subscribedUserData.size() == 0) { - followingLabelTextView.setVisibility(View.GONE); - } else { - followingLabelTextView.setVisibility(View.VISIBLE); - } - userAdapter.setSubscribedUsers(subscribedUserData); + settingsLinearLayout.setOnClickListener(view -> { + }); } @@ -322,32 +278,6 @@ public class MainActivity extends AppCompatActivity { } }); } - - if (!mInsertSuccess) { - FetchSubscribedThing.fetchSubscribedThing(mOauthRetrofit, mAuthInfoSharedPreferences, null, - new ArrayList<>(), new ArrayList<>(), - new ArrayList<>(), - new FetchSubscribedThing.FetchSubscribedThingListener() { - @Override - public void onFetchSubscribedThingSuccess(ArrayList subscribedSubredditData, - ArrayList subscribedUserData, - ArrayList subredditData) { - new InsertSubscribedThingsAsyncTask( - SubscribedSubredditRoomDatabase.getDatabase(MainActivity.this).subscribedSubredditDao(), - SubscribedUserRoomDatabase.getDatabase(MainActivity.this).subscribedUserDao(), - SubredditRoomDatabase.getDatabase(MainActivity.this).subredditDao(), - subscribedSubredditData, - subscribedUserData, - subredditData, - () -> mInsertSuccess = true).execute(); - } - - @Override - public void onFetchSubscribedThingFail() { - mInsertSuccess = false; - } - }); - } } @Override @@ -391,7 +321,6 @@ public class MainActivity extends AppCompatActivity { case R.id.action_refresh_main_activity: ((FragmentCommunicator) mFragment).refresh(); mFetchUserInfoSuccess = false; - mInsertSuccess = false; loadUserData(); return true; case R.id.action_lazy_mode_main_activity: @@ -437,7 +366,6 @@ public class MainActivity extends AppCompatActivity { } outState.putBoolean(FETCH_USER_INFO_STATE, mFetchUserInfoSuccess); - outState.putBoolean(INSERT_SUBSCRIBED_SUBREDDIT_STATE, mInsertSuccess); outState.putBoolean(IS_IN_LAZY_MODE_STATE, isInLazyMode); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java index d14944c1..e91d2ab9 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java @@ -25,7 +25,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearSmoothScroller; import androidx.recyclerview.widget.RecyclerView; -import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; import com.lsjwzh.widget.materialloadingprogressbar.CircleProgressBar; import org.greenrobot.eventbus.EventBus; @@ -55,6 +55,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator { @BindView(R.id.fetch_post_info_image_view_post_fragment) ImageView mFetchPostInfoImageView; @BindView(R.id.fetch_post_info_text_view_post_fragment) TextView mFetchPostInfoTextView; + private RequestManager glide; + private Activity activity; private LinearLayoutManager mLinearLayoutManager; @@ -253,7 +255,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator { if(activity != null && isAdded()) { mFetchPostInfoLinearLayout.setVisibility(View.VISIBLE); mFetchPostInfoTextView.setText(stringResId); - Glide.with(this).load(R.drawable.load_post_error_indicator).into(mFetchPostInfoImageView); + glide.load(R.drawable.load_post_error_indicator).into(mFetchPostInfoImageView); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostTextActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostTextActivity.java index d7aa6e1d..d499dae4 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostTextActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostTextActivity.java @@ -1,5 +1,6 @@ package ml.docilealligator.infinityforreddit; +import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.MenuItem; @@ -11,8 +12,13 @@ import androidx.annotation.NonNull; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; +import com.bumptech.glide.request.RequestOptions; + import butterknife.BindView; import butterknife.ButterKnife; +import jp.wasabeef.glide.transformations.RoundedCornersTransformation; import pl.droidsonroids.gif.GifImageView; public class PostTextActivity extends AppCompatActivity { @@ -25,6 +31,8 @@ public class PostTextActivity extends AppCompatActivity { @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; + private RequestManager mGlide; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -36,9 +44,20 @@ public class PostTextActivity extends AppCompatActivity { Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp); actionBar.setHomeAsUpIndicator(upArrow); + mGlide = Glide.with(this); + if(getIntent().hasExtra(EXTRA_SUBREDDIT_NAME)) { subreditNameTextView.setText(getIntent().getExtras().getString(EXTRA_SUBREDDIT_NAME)); + } else { + mGlide.load(R.drawable.subreddit_default_icon) + .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0))) + .into(iconGifImageView); } + + subreditNameTextView.setOnClickListener(view -> { + Intent intent = new Intent(this, SubredditSelectionActivity.class); + startActivity(intent); + }); } @Override diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchActivity.java index 51244e44..38147cb7 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchActivity.java @@ -7,9 +7,6 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import com.ferfalk.simplesearchview.SimpleSearchView; -import com.google.android.material.tabs.TabLayout; - import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; @@ -17,6 +14,10 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; import androidx.viewpager.widget.ViewPager; + +import com.ferfalk.simplesearchview.SimpleSearchView; +import com.google.android.material.tabs.TabLayout; + import butterknife.BindView; import butterknife.ButterKnife; @@ -37,6 +38,7 @@ public class SearchActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_search); + ButterKnife.bind(this); setSupportActionBar(toolbar); @@ -141,7 +143,7 @@ public class SearchActivity extends AppCompatActivity { super.onBackPressed(); } - public class SectionsPagerAdapter extends FragmentPagerAdapter { + private class SectionsPagerAdapter extends FragmentPagerAdapter { private PostFragment postFragment; private SubredditListingFragment subredditListingFragment; private UserListingFragment userListingFragment; diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditSelectionActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditSelectionActivity.java new file mode 100644 index 00000000..25569eb5 --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditSelectionActivity.java @@ -0,0 +1,53 @@ +package ml.docilealligator.infinityforreddit; + +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.view.MenuItem; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBar; +import androidx.appcompat.app.AppCompatActivity; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import SubscribedSubredditDatabase.SubscribedSubredditViewModel; +import butterknife.BindView; +import butterknife.ButterKnife; + +public class SubredditSelectionActivity extends AppCompatActivity { + + @BindView(R.id.recycler_view_subreddit_selection_activity) RecyclerView recyclerView; + + private SubscribedSubredditViewModel mSubscribedSubredditViewModel; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_subreddit_selection); + + ButterKnife.bind(this); + + ActionBar actionBar = getSupportActionBar(); + Drawable upArrow = getResources().getDrawable(R.drawable.ic_arrow_back_white_24dp); + actionBar.setHomeAsUpIndicator(upArrow); + + recyclerView.setLayoutManager(new LinearLayoutManager(this)); + SubscribedSubredditsRecyclerViewAdapter adapter = new SubscribedSubredditsRecyclerViewAdapter(this); + recyclerView.setAdapter(adapter); + + mSubscribedSubredditViewModel = ViewModelProviders.of(this).get(SubscribedSubredditViewModel.class); + mSubscribedSubredditViewModel.getAllSubscribedSubreddits().observe(this, adapter::setSubscribedSubreddits); + } + + @Override + public boolean onOptionsItemSelected(@NonNull MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + + return false; + } +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java new file mode 100644 index 00000000..6dd8d4fa --- /dev/null +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java @@ -0,0 +1,77 @@ +package ml.docilealligator.infinityforreddit; + + +import android.app.Activity; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.LinearLayout; + +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.RequestManager; + +import SubscribedSubredditDatabase.SubscribedSubredditViewModel; +import butterknife.BindView; +import butterknife.ButterKnife; + + +/** + * A simple {@link Fragment} subclass. + */ +public class SubscribedSubredditsListingFragment extends Fragment { + + @BindView(R.id.recycler_view_subscribed_subreddits_listing_fragment) RecyclerView mRecyclerView; + @BindView(R.id.no_subscriptions_linear_layout_subreddits_listing_fragment) LinearLayout mLinearLayout; + @BindView(R.id.no_subscriptions_image_view_subreddits_listing_fragment) ImageView mImageView; + + private Activity mActivity; + + private RequestManager mGlide; + + private SubscribedSubredditViewModel mSubscribedSubredditViewModel; + + private boolean mInsertSuccess = false; + + public SubscribedSubredditsListingFragment() { + // Required empty public constructor + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_subscribed_subreddits_listing, container, false); + + ButterKnife.bind(this, rootView); + + mActivity = getActivity(); + + mGlide = Glide.with(this); + + mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity)); + SubscribedSubredditsRecyclerViewAdapter adapter = new SubscribedSubredditsRecyclerViewAdapter(mActivity); + mRecyclerView.setAdapter(adapter); + + mSubscribedSubredditViewModel = ViewModelProviders.of(this).get(SubscribedSubredditViewModel.class); + mSubscribedSubredditViewModel.getAllSubscribedSubreddits().observe(this, subscribedSubredditData -> { + if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) { + mRecyclerView.setVisibility(View.GONE); + mLinearLayout.setVisibility(View.VISIBLE); + mGlide.load(R.drawable.load_post_error_indicator).into(mImageView); + } else { + mLinearLayout.setVisibility(View.GONE); + mRecyclerView.setVisibility(View.VISIBLE); + } + + adapter.setSubscribedSubreddits(subscribedSubredditData); + }); + + return rootView; + } +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsRecyclerViewAdapter.java similarity index 88% rename from app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditRecyclerViewAdapter.java rename to app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsRecyclerViewAdapter.java index 521086da..f3bdb63b 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsRecyclerViewAdapter.java @@ -7,6 +7,9 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + import com.bumptech.glide.Glide; import com.bumptech.glide.RequestManager; import com.bumptech.glide.request.RequestOptions; @@ -14,25 +17,17 @@ import com.bumptech.glide.request.RequestOptions; import java.util.List; import SubscribedSubredditDatabase.SubscribedSubredditData; -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; import jp.wasabeef.glide.transformations.RoundedCornersTransformation; import pl.droidsonroids.gif.GifImageView; -class SubscribedSubredditRecyclerViewAdapter extends RecyclerView.Adapter { +class SubscribedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter { private Context mContext; private List mSubscribedSubredditData; private RequestManager glide; - private OnItemClickListener mOnItemClickListener; - interface OnItemClickListener { - void onClick(); - } - - SubscribedSubredditRecyclerViewAdapter(Context context, OnItemClickListener onItemClickListener) { + SubscribedSubredditsRecyclerViewAdapter(Context context) { mContext = context; glide = Glide.with(context.getApplicationContext()); - mOnItemClickListener = onItemClickListener; } @NonNull @@ -45,7 +40,6 @@ class SubscribedSubredditRecyclerViewAdapter extends RecyclerView.Adapter { if(viewHolder.getAdapterPosition() >= 0) { - mOnItemClickListener.onClick(); Intent intent = new Intent(mContext, ViewSubredditDetailActivity.class); intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY, mSubscribedSubredditData.get(viewHolder.getAdapterPosition()).getName()); mContext.startActivity(intent); @@ -88,7 +82,7 @@ class SubscribedSubredditRecyclerViewAdapter extends RecyclerView.Adapter(), new ArrayList<>(), + new ArrayList<>(), + new FetchSubscribedThing.FetchSubscribedThingListener() { + @Override + public void onFetchSubscribedThingSuccess(ArrayList subscribedSubredditData, + ArrayList subscribedUserData, + ArrayList subredditData) { + new InsertSubscribedThingsAsyncTask( + SubscribedSubredditRoomDatabase.getDatabase(SubscribedThingListingActivity.this).subscribedSubredditDao(), + SubscribedUserRoomDatabase.getDatabase(SubscribedThingListingActivity.this).subscribedUserDao(), + SubredditRoomDatabase.getDatabase(SubscribedThingListingActivity.this).subredditDao(), + subscribedSubredditData, + subscribedUserData, + subredditData, + () -> mInsertSuccess = true).execute(); + } + + @Override + public void onFetchSubscribedThingFail() { + mInsertSuccess = false; + } + }); + } + } + + private class SectionsPagerAdapter extends FragmentPagerAdapter { + + public SectionsPagerAdapter(FragmentManager fm) { + super(fm); + } + + @NonNull + @Override + public Fragment getItem(int position) { + switch (position) { + case 0: { + return new SubscribedSubredditsListingFragment(); + } + default: + { + return new FollowedUsersListingFragment(); + } + } + } + + @Override + public int getCount() { + return 2; + } + + @Override + public CharSequence getPageTitle(int position) { + switch (position) { + case 0: + return getString(R.string.subreddits); + case 1: + return getString(R.string.users); + } + + return null; + } + + @NonNull + @Override + public Object instantiateItem(@NonNull ViewGroup container, int position) { + return super.instantiateItem(container, position); + } + } +} diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedUserRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedUserRecyclerViewAdapter.java index 84e70cbd..68c040b0 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedUserRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedUserRecyclerViewAdapter.java @@ -24,16 +24,10 @@ public class SubscribedUserRecyclerViewAdapter extends RecyclerView.Adapter mSubscribedUserData; private Context mContext; private RequestManager glide; - private OnItemClickListener mOnItemClickListener; - public interface OnItemClickListener { - void onClick(); - } - - SubscribedUserRecyclerViewAdapter(Context context, OnItemClickListener onItemClickListener) { + SubscribedUserRecyclerViewAdapter(Context context) { mContext = context; glide = Glide.with(context.getApplicationContext()); - mOnItemClickListener = onItemClickListener; } @NonNull @@ -48,7 +42,6 @@ public class SubscribedUserRecyclerViewAdapter extends RecyclerView.Adapter + + + + + + + + - - - - - + android:background="?attr/selectableItemBackground" + android:clickable="true" + android:focusable="true" + android:padding="16dp"> - + + + + + diff --git a/app/src/main/res/layout/activity_post_text.xml b/app/src/main/res/layout/activity_post_text.xml index cb08e1f2..9bc76c10 100644 --- a/app/src/main/res/layout/activity_post_text.xml +++ b/app/src/main/res/layout/activity_post_text.xml @@ -8,7 +8,8 @@ + android:layout_height="match_parent" + android:fillViewport="true"> + android:layout_centerVertical="true" /> + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_subscribed_thing_listing.xml b/app/src/main/res/layout/activity_subscribed_thing_listing.xml new file mode 100644 index 00000000..e0d3c8ee --- /dev/null +++ b/app/src/main/res/layout/activity_subscribed_thing_listing.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_followed_users_listing.xml b/app/src/main/res/layout/fragment_followed_users_listing.xml new file mode 100644 index 00000000..7e0c58f3 --- /dev/null +++ b/app/src/main/res/layout/fragment_followed_users_listing.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml b/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml new file mode 100644 index 00000000..b493d50b --- /dev/null +++ b/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_subscribed_thing.xml b/app/src/main/res/layout/item_subscribed_thing.xml index 0f4afc20..d7ede059 100644 --- a/app/src/main/res/layout/item_subscribed_thing.xml +++ b/app/src/main/res/layout/item_subscribed_thing.xml @@ -1,6 +1,7 @@ Search Add Comment Reply - Text Post + Text Post + Select a Subreddit Open navigation drawer Close navigation drawer @@ -41,6 +42,7 @@ Profile Following Subscriptions + Settings Subscribers: %1$d Online: %1$d Cannot fetch subreddit info @@ -91,4 +93,7 @@ URL Choose a subreddit Rules + + Subreddits + Users