aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java41
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java16
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/FlairBottomSheetFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java48
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/PostTypeBottomSheetFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SearchPostSortTypeBottomSheetFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SearchResultActivity.java36
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SearchUserAndSubredditSortTypeBottomSheetFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SortTypeBottomSheetFragment.java7
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java36
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java14
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java40
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java163
-rw-r--r--app/src/main/res/layout/activity_search_result.xml52
-rw-r--r--app/src/main/res/layout/activity_subscribed_thing_listing.xml20
-rw-r--r--app/src/main/res/layout/app_bar_main.xml2
-rw-r--r--app/src/main/res/layout/fragment_comments_listing.xml3
-rw-r--r--app/src/main/res/layout/fragment_followed_users_listing.xml3
-rw-r--r--app/src/main/res/layout/fragment_post.xml3
-rw-r--r--app/src/main/res/layout/fragment_subreddit_listing.xml3
-rw-r--r--app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml3
-rw-r--r--app/src/main/res/layout/fragment_user_listing.xml3
-rw-r--r--app/src/main/res/values-night/colors.xml2
-rw-r--r--app/src/main/res/values-sw600dp/attr.xml4
-rw-r--r--app/src/main/res/values/attr.xml4
-rw-r--r--app/src/main/res/values/colors.xml2
-rw-r--r--app/src/main/res/values/styles.xml2
31 files changed, 476 insertions, 115 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java
new file mode 100644
index 00000000..dcb034bf
--- /dev/null
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AppBarStateChangeListener.java
@@ -0,0 +1,41 @@
+package ml.docilealligator.infinityforreddit;
+
+import com.google.android.material.appbar.AppBarLayout;
+
+abstract class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
+ // State
+ public enum State {
+ EXPANDED,
+ COLLAPSED,
+ IDLE
+ }
+
+ private AppBarStateChangeListener.State mCurrentState = AppBarStateChangeListener.State.IDLE;
+
+ @Override
+ public final void onOffsetChanged(AppBarLayout appBarLayout, int i) {
+ if (i == 0) {
+ if (mCurrentState != AppBarStateChangeListener.State.EXPANDED) {
+ onStateChanged(appBarLayout, AppBarStateChangeListener.State.EXPANDED);
+ }
+ mCurrentState = AppBarStateChangeListener.State.EXPANDED;
+ } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) {
+ if (mCurrentState != AppBarStateChangeListener.State.COLLAPSED) {
+ onStateChanged(appBarLayout, AppBarStateChangeListener.State.COLLAPSED);
+ }
+ mCurrentState = AppBarStateChangeListener.State.COLLAPSED;
+ } else {
+ if (mCurrentState != AppBarStateChangeListener.State.IDLE) {
+ onStateChanged(appBarLayout, AppBarStateChangeListener.State.IDLE);
+ }
+ mCurrentState = AppBarStateChangeListener.State.IDLE;
+ }
+ }
+
+ /**
+ * Notifies on state change
+ * @param appBarLayout Layout
+ * @param state Collapse state
+ */
+ abstract void onStateChanged(AppBarLayout appBarLayout, AppBarStateChangeListener.State state);
+}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java
index dc584f00..63eefa89 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java
@@ -3,6 +3,9 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
import android.content.Context;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -76,6 +79,17 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
mGlide = Glide.with(activity);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mCommentRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
mCommentRecyclerView.setLayoutManager(new LinearLayoutManager(activity));
mAdapter = new CommentsListingRecyclerViewAdapter(activity, mOauthRetrofit,
@@ -85,7 +99,7 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
mCommentRecyclerView.setAdapter(mAdapter);
- CommentViewModel.Factory factory = new CommentViewModel.Factory(mRetrofit, getResources().getConfiguration().locale, username);
+ CommentViewModel.Factory factory = new CommentViewModel.Factory(mRetrofit, resources.getConfiguration().locale, username);
mCommentViewModel = ViewModelProviders.of(this, factory).get(CommentViewModel.class);
mCommentViewModel.getComments().observe(this, comments -> mAdapter.submitList(comments));
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FlairBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FlairBottomSheetFragment.java
index 5ccec346..bd8af127 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/FlairBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FlairBottomSheetFragment.java
@@ -2,6 +2,8 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -67,6 +69,11 @@ public class FlairBottomSheetFragment extends BottomSheetDialogFragment {
((Infinity) mAcitivity.getApplication()).getAppComponent().inject(this);
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+ && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
+ rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+
mAdapter = new FlairBottomSheetRecyclerViewAdapter(flair -> ((FlairSelectionCallback) mAcitivity).flairSelected(flair));
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
recyclerView.setAdapter(mAdapter);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java
index 53fb9506..ffd2cf95 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java
@@ -2,6 +2,9 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -59,6 +62,17 @@ public class FollowedUsersListingFragment extends Fragment {
((Infinity) mActivity.getApplication()).getAppComponent().inject(this);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
mGlide = Glide.with(this);
mRecyclerView.setLayoutManager(new LinearLayoutManager(mActivity));
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java
index 07e545b4..3fd746aa 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/MainActivity.java
@@ -2,11 +2,16 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -15,6 +20,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
+import androidx.coordinatorlayout.widget.CoordinatorLayout;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.Fragment;
@@ -62,6 +68,8 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
private static final int LOGIN_ACTIVITY_REQUEST_CODE = 0;
@BindView(R.id.drawer_layout) DrawerLayout drawer;
+ @BindView(R.id.coordinator_layout_main_activity) CoordinatorLayout coordinatorLayout;
+ @BindView(R.id.appbar_layout_main_activity) AppBarLayout appBarLayout;
@BindView(R.id.view_pager_main_activity) ViewPager viewPager;
@BindView(R.id.collapsing_toolbar_layout_main_activity) CollapsingToolbarLayout collapsingToolbarLayout;
@BindView(R.id.toolbar) Toolbar toolbar;
@@ -119,6 +127,41 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
((Infinity) getApplication()).getAppComponent().inject(this);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ Resources resources = getResources();
+
+ if(resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ Window window = getWindow();
+ window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
+
+ View decorView = window.getDecorView();
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if(state == State.COLLAPSED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ } else if(state == State.EXPANDED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+ }
+ });
+
+ int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (statusBarResourceId > 0) {
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ params.topMargin = getResources().getDimensionPixelSize(statusBarResourceId);
+ toolbar.setLayoutParams(params);
+ }
+
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
+ params.bottomMargin = resources.getDimensionPixelSize(navBarResourceId);
+ fab.setLayoutParams(params);
+ }
+ }
+ }
+
postTypeBottomSheetFragment = new PostTypeBottomSheetFragment();
bestSortTypeBottomSheetFragment = new SortTypeBottomSheetFragment();
@@ -390,10 +433,9 @@ public class MainActivity extends AppCompatActivity implements SortTypeBottomShe
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == LOGIN_ACTIVITY_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
- Intent intent = getIntent();
- finish();
+ Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
- overridePendingTransition(0, 0);
+ finish();
}
super.onActivityResult(requestCode, resultCode, data);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java
index 2506dde8..851d351a 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java
@@ -4,6 +4,9 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
@@ -125,6 +128,17 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
window = activity.getWindow();
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mPostRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
mGlide = Glide.with(activity);
lazyModeRunnable = new Runnable() {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostTypeBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostTypeBottomSheetFragment.java
index c8dd0d28..338821c0 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostTypeBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostTypeBottomSheetFragment.java
@@ -2,6 +2,8 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -48,6 +50,11 @@ public class PostTypeBottomSheetFragment extends RoundedBottomSheetDialogFragmen
Activity activity = getActivity();
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+ && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
+ rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+
textTypeLinearLayout.setOnClickListener(view -> {
((PostTypeSelectionCallback) activity).postTypeSelected(TYPE_TEXT);
dismiss();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchPostSortTypeBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchPostSortTypeBottomSheetFragment.java
index f54cf5b4..d0b2bf6b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchPostSortTypeBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchPostSortTypeBottomSheetFragment.java
@@ -2,6 +2,8 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -44,6 +46,11 @@ public class SearchPostSortTypeBottomSheetFragment extends RoundedBottomSheetDia
Activity activity = getActivity();
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+ && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
+ rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+
relevanceTypeTextView.setOnClickListener(view -> {
((SearchSortTypeSelectionCallback) activity).searchSortTypeSelected(PostDataSource.SORT_TYPE_RELEVANCE);
dismiss();
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchResultActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchResultActivity.java
index 7e663e03..d528488d 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchResultActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchResultActivity.java
@@ -1,10 +1,16 @@
package ml.docilealligator.infinityforreddit;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
+import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
@@ -14,6 +20,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
+import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.tabs.TabLayout;
import javax.inject.Inject;
@@ -36,6 +43,7 @@ public class SearchResultActivity extends AppCompatActivity implements SearchPos
private String mQuery;
private String mSubredditName;
+ @BindView(R.id.appbar_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;
@@ -57,6 +65,34 @@ public class SearchResultActivity extends AppCompatActivity implements SearchPos
((Infinity) getApplication()).getAppComponent().inject(this);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ Resources resources = getResources();
+
+ if(resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ Window window = getWindow();
+ window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
+
+ View decorView = window.getDecorView();
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if(state == State.COLLAPSED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ } else if(state == State.EXPANDED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+ }
+ });
+
+ int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (statusBarResourceId > 0) {
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ params.topMargin = getResources().getDimensionPixelSize(statusBarResourceId);
+ toolbar.setLayoutParams(params);
+ }
+ }
+ }
+
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchUserAndSubredditSortTypeBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchUserAndSubredditSortTypeBottomSheetFragment.java
index ae652fd4..5579d220 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SearchUserAndSubredditSortTypeBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SearchUserAndSubredditSortTypeBottomSheetFragment.java
@@ -2,6 +2,8 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -43,6 +45,11 @@ public class SearchUserAndSubredditSortTypeBottomSheetFragment extends RoundedBo
Activity activity = getActivity();
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+ && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
+ rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+
int position = getArguments().getInt(EXTRA_FRAGMENT_POSITION);
relevanceTypeTextView.setOnClickListener(view -> {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SortTypeBottomSheetFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SortTypeBottomSheetFragment.java
index 76ebbea4..b4825274 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SortTypeBottomSheetFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SortTypeBottomSheetFragment.java
@@ -2,6 +2,8 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -49,6 +51,11 @@ public class SortTypeBottomSheetFragment extends RoundedBottomSheetDialogFragmen
Activity activity = getActivity();
+ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
+ && (getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) != Configuration.UI_MODE_NIGHT_YES) {
+ rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+
if(getArguments().getBoolean(EXTRA_NO_BEST_TYPE)) {
bestTypeTextView.setVisibility(View.GONE);
} else {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java
index 058143bb..bf6e3894 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java
@@ -3,6 +3,9 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -78,6 +81,17 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun
ButterKnife.bind(this, rootView);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mSubredditListingRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
mLinearLayoutManager = new LinearLayoutManager(getActivity());
mSubredditListingRecyclerView.setLayoutManager(mLinearLayoutManager);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java
index d4c877d8..15da8748 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java
@@ -2,6 +2,9 @@ package ml.docilealligator.infinityforreddit;
import android.app.Activity;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -63,6 +66,17 @@ public class SubscribedSubredditsListingFragment extends Fragment {
((Infinity) mActivity.getApplication()).getAppComponent().inject(this);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
String accountName = getArguments().getString(EXTRA_ACCOUNT_NAME);
mGlide = Glide.with(this);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java
index 1f35288d..85ad1196 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedThingListingActivity.java
@@ -1,8 +1,14 @@
package ml.docilealligator.infinityforreddit;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
+import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
@@ -12,6 +18,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
+import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.tabs.TabLayout;
import java.util.ArrayList;
@@ -33,6 +40,7 @@ public class SubscribedThingListingActivity extends AppCompatActivity {
private static final String ACCESS_TOKEN_STATE = "ATS";
private static final String ACCOUNT_NAME_STATE = "ANS";
+ @BindView(R.id.appbar_subscribed_thing_listing_activity) AppBarLayout appBarLayout;
@BindView(R.id.toolbar_subscribed_thing_listing_activity) Toolbar toolbar;
@BindView(R.id.tab_layout_subscribed_thing_listing_activity) TabLayout tabLayout;
@BindView(R.id.view_pager_subscribed_thing_listing_activity) ViewPager viewPager;
@@ -60,6 +68,34 @@ public class SubscribedThingListingActivity extends AppCompatActivity {
((Infinity) getApplication()).getAppComponent().inject(this);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ Resources resources = getResources();
+
+ if(resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ Window window = getWindow();
+ window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
+
+ View decorView = window.getDecorView();
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if(state == State.COLLAPSED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ } else if(state == State.EXPANDED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+ }
+ });
+
+ int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (statusBarResourceId > 0) {
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ params.topMargin = getResources().getDimensionPixelSize(statusBarResourceId);
+ toolbar.setLayoutParams(params);
+ }
+ }
+ }
+
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java
index 04fe267d..46971ffe 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java
@@ -1,6 +1,9 @@
package ml.docilealligator.infinityforreddit;
+import android.content.res.Configuration;
+import android.content.res.Resources;
+import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -74,6 +77,17 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato
ButterKnife.bind(this, rootView);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ if (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ mUserListingRecyclerView.setPadding(0, 0, 0, resources.getDimensionPixelSize(navBarResourceId));
+ }
+ }
+ }
+
mLinearLayoutManager = new LinearLayoutManager(getActivity());
mUserListingRecyclerView.setLayoutManager(mLinearLayoutManager);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java
index 4c734251..efbc07a1 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewSubredditDetailActivity.java
@@ -1,12 +1,17 @@
package ml.docilealligator.infinityforreddit;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -99,6 +104,41 @@ public class ViewSubredditDetailActivity extends AppCompatActivity implements So
((Infinity) getApplication()).getAppComponent().inject(this);
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
+ Resources resources = getResources();
+
+ if(resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || resources.getBoolean(R.bool.isTablet)) {
+ Window window = getWindow();
+ window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
+
+ View decorView = window.getDecorView();
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if (state == State.COLLAPSED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ } else if (state == State.EXPANDED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ }
+ }
+ });
+
+ int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (statusBarResourceId > 0) {
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ params.topMargin = getResources().getDimensionPixelSize(statusBarResourceId);
+ toolbar.setLayoutParams(params);
+ }
+
+ int navBarResourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
+ if (navBarResourceId > 0) {
+ CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
+ params.bottomMargin = resources.getDimensionPixelSize(navBarResourceId);
+ fab.setLayoutParams(params);
+ }
+ }
+ }
+
subredditName = getIntent().getExtras().getString(EXTRA_SUBREDDIT_NAME_KEY);
if(savedInstanceState == null) {
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java
index 1901f179..f88b5ac8 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewUserDetailActivity.java
@@ -1,12 +1,17 @@
package ml.docilealligator.infinityforreddit;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.os.AsyncTask;
+import android.os.Build;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -51,16 +56,26 @@ public class ViewUserDetailActivity extends AppCompatActivity {
private static final String ACCOUNT_NAME_STATE = "ANS";
private static final String IS_IN_LAZY_MODE_STATE = "IILMS";
- @BindView(R.id.coordinator_layout_view_user_detail_activity) CoordinatorLayout coordinatorLayout;
- @BindView(R.id.view_pager_view_user_detail_activity) ViewPager viewPager;
- @BindView(R.id.appbar_layout_view_user_detail) AppBarLayout appBarLayout;
- @BindView(R.id.tab_layout_view_user_detail_activity) TabLayout tabLayout;
- @BindView(R.id.collapsing_toolbar_layout_view_user_detail_activity) 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;
+ @BindView(R.id.coordinator_layout_view_user_detail_activity)
+ CoordinatorLayout coordinatorLayout;
+ @BindView(R.id.view_pager_view_user_detail_activity)
+ ViewPager viewPager;
+ @BindView(R.id.appbar_layout_view_user_detail)
+ AppBarLayout appBarLayout;
+ @BindView(R.id.tab_layout_view_user_detail_activity)
+ TabLayout tabLayout;
+ @BindView(R.id.collapsing_toolbar_layout_view_user_detail_activity)
+ 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;
private SectionsPagerAdapter sectionsPagerAdapter;
@@ -106,7 +121,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
username = getIntent().getExtras().getString(EXTRA_USER_NAME_KEY);
- if(savedInstanceState == null) {
+ if (savedInstanceState == null) {
getCurrentAccountAndInitializeViewPager();
} else {
mFetchUserInfoSuccess = savedInstanceState.getBoolean(FETCH_USER_INFO_STATE);
@@ -115,7 +130,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
mAccountName = savedInstanceState.getString(ACCOUNT_NAME_STATE);
isInLazyMode = savedInstanceState.getBoolean(IS_IN_LAZY_MODE_STATE);
- if(!mNullAccessToken && mAccessToken == null) {
+ if (!mNullAccessToken && mAccessToken == null) {
getCurrentAccountAndInitializeViewPager();
} else {
initializeViewPager();
@@ -140,8 +155,8 @@ public class ViewUserDetailActivity extends AppCompatActivity {
toolbar.setTitle(title);
setSupportActionBar(toolbar);
- ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
- params.topMargin = statusBarHeight;
+ ViewGroup.MarginLayoutParams toolbarLayoutParams = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ toolbarLayoutParams.topMargin = statusBarHeight;
expandedTabTextColor = getResources().getColor(R.color.tabLayoutWithExpandedCollapsingToolbarTextColor);
expandedTabBackgroundColor = getResources().getColor(R.color.tabLayoutWithExpandedCollapsingToolbarTabBackground);
@@ -151,20 +166,54 @@ public class ViewUserDetailActivity extends AppCompatActivity {
collapsedTabBackgroundColor = getResources().getColor(R.color.tabLayoutWithCollapsedCollapsingToolbarTabBackground);
collapsedTabIndicatorColor = getResources().getColor(R.color.tabLayoutWithCollapsedCollapsingToolbarTabIndicator);
- appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
- @Override
- void onStateChanged(AppBarLayout appBarLayout, State state) {
- if(state == State.EXPANDED) {
- tabLayout.setTabTextColors(expandedTabTextColor, expandedTabTextColor);
- tabLayout.setSelectedTabIndicatorColor(expandedTabIndicatorColor);
- tabLayout.setBackgroundColor(expandedTabBackgroundColor);
- } else if(state == State.COLLAPSED) {
- tabLayout.setTabTextColors(collapsedTabTextColor, collapsedTabTextColor);
- tabLayout.setSelectedTabIndicatorColor(collapsedTabIndicatorColor);
- tabLayout.setBackgroundColor(collapsedTabBackgroundColor);
+ Resources resources = getResources();
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1
+ && (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT
+ || resources.getBoolean(R.bool.isTablet))) {
+ Window window = getWindow();
+ window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
+
+ View decorView = window.getDecorView();
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if (state == State.COLLAPSED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ tabLayout.setTabTextColors(collapsedTabTextColor, collapsedTabTextColor);
+ tabLayout.setSelectedTabIndicatorColor(collapsedTabIndicatorColor);
+ tabLayout.setBackgroundColor(collapsedTabBackgroundColor);
+ } else if (state == State.EXPANDED) {
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
+ tabLayout.setTabTextColors(expandedTabTextColor, expandedTabTextColor);
+ tabLayout.setSelectedTabIndicatorColor(expandedTabIndicatorColor);
+ tabLayout.setBackgroundColor(expandedTabBackgroundColor);
+ }
}
+ });
+
+ int statusBarResourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
+ if (statusBarResourceId > 0) {
+ ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) toolbar.getLayoutParams();
+ params.topMargin = getResources().getDimensionPixelSize(statusBarResourceId);
+ toolbar.setLayoutParams(params);
}
- });
+ } else {
+ appBarLayout.addOnOffsetChangedListener(new AppBarStateChangeListener() {
+ @Override
+ void onStateChanged(AppBarLayout appBarLayout, State state) {
+ if (state == State.EXPANDED) {
+ tabLayout.setTabTextColors(expandedTabTextColor, expandedTabTextColor);
+ tabLayout.setSelectedTabIndicatorColor(expandedTabIndicatorColor);
+ tabLayout.setBackgroundColor(expandedTabBackgroundColor);
+ } else if (state == State.COLLAPSED) {
+ tabLayout.setTabTextColors(collapsedTabTextColor, collapsedTabTextColor);
+ tabLayout.setSelectedTabIndicatorColor(collapsedTabIndicatorColor);
+ tabLayout.setBackgroundColor(collapsedTabBackgroundColor);
+ }
+ }
+ });
+ }
subscribedUserDao = mRedditDataRoomDatabase.subscribedUserDao();
glide = Glide.with(this);
@@ -172,8 +221,8 @@ public class ViewUserDetailActivity extends AppCompatActivity {
userViewModel = ViewModelProviders.of(this, new UserViewModel.Factory(getApplication(), mRedditDataRoomDatabase, username))
.get(UserViewModel.class);
userViewModel.getUserLiveData().observe(this, userData -> {
- if(userData != null) {
- if(userData.getBanner().equals("")) {
+ if (userData != null) {
+ if (userData.getBanner().equals("")) {
bannerImageView.setOnClickListener(view -> {
//Do nothing since the user has no banner image
});
@@ -188,7 +237,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
});
}
- if(userData.getIconUrl().equals("")) {
+ if (userData.getIconUrl().equals("")) {
glide.load(getDrawable(R.drawable.subreddit_default_icon))
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(216, 0)))
.into(iconGifImageView);
@@ -211,12 +260,12 @@ public class ViewUserDetailActivity extends AppCompatActivity {
});
}
- if(userData.isCanBeFollowed()) {
+ if (userData.isCanBeFollowed()) {
subscribeUserChip.setVisibility(View.VISIBLE);
subscribeUserChip.setOnClickListener(view -> {
- if(subscriptionReady) {
+ if (subscriptionReady) {
subscriptionReady = false;
- if(subscribeUserChip.getText().equals(getResources().getString(R.string.follow))) {
+ if (subscribeUserChip.getText().equals(getResources().getString(R.string.follow))) {
UserFollowing.followUser(mOauthRetrofit, mRetrofit, mAccessToken,
username, mAccountName, subscribedUserDao, new UserFollowing.UserFollowingListener() {
@Override
@@ -275,7 +324,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
String userFullName = "u/" + userData.getName();
userNameTextView.setText(userFullName);
- if(!title.equals(userFullName)) {
+ if (!title.equals(userFullName)) {
getSupportActionBar().setTitle(userFullName);
}
String karma = getString(R.string.karma_info, userData.getKarma());
@@ -286,7 +335,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
private void getCurrentAccountAndInitializeViewPager() {
new GetCurrentAccountAsyncTask(mRedditDataRoomDatabase.accountDao(), account -> {
- if(account == null) {
+ if (account == null) {
mNullAccessToken = true;
} else {
mAccessToken = account.getAccessToken();
@@ -304,7 +353,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
}
private void fetchUserInfo() {
- if(!mFetchUserInfoSuccess) {
+ if (!mFetchUserInfoSuccess) {
FetchUserData.fetchUserData(mRetrofit, username, new FetchUserData.FetchUserDataListener() {
@Override
public void onFetchUserDataSuccess(UserData userData) {
@@ -326,7 +375,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
getMenuInflater().inflate(R.menu.view_user_detail_activity, menu);
mMenu = menu;
MenuItem lazyModeItem = mMenu.findItem(R.id.action_lazy_mode_view_user_detail_activity);
- if(isInLazyMode) {
+ if (isInLazyMode) {
lazyModeItem.setTitle(R.string.action_stop_lazy_mode);
params.setScrollFlags(AppBarLayout.LayoutParams.SCROLL_FLAG_SCROLL | AppBarLayout.LayoutParams.SCROLL_FLAG_EXIT_UNTIL_COLLAPSED);
collapsingToolbarLayout.setLayoutParams(params);
@@ -389,7 +438,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
}
private void makeSnackbar(int resId, boolean retry) {
- if(retry) {
+ if (retry) {
Snackbar.make(coordinatorLayout, resId, Snackbar.LENGTH_SHORT).setAction(R.string.retry,
view -> fetchUserInfo()).show();
} else {
@@ -397,44 +446,6 @@ public class ViewUserDetailActivity extends AppCompatActivity {
}
}
- public abstract static class AppBarStateChangeListener implements AppBarLayout.OnOffsetChangedListener {
- // State
- public enum State {
- EXPANDED,
- COLLAPSED,
- IDLE
- }
-
- private State mCurrentState = State.IDLE;
-
- @Override
- public final void onOffsetChanged(AppBarLayout appBarLayout, int i) {
- if (i == 0) {
- if (mCurrentState != State.EXPANDED) {
- onStateChanged(appBarLayout, State.EXPANDED);
- }
- mCurrentState = State.EXPANDED;
- } else if (Math.abs(i) >= appBarLayout.getTotalScrollRange()) {
- if (mCurrentState != State.COLLAPSED) {
- onStateChanged(appBarLayout, State.COLLAPSED);
- }
- mCurrentState = State.COLLAPSED;
- } else {
- if (mCurrentState != State.IDLE) {
- onStateChanged(appBarLayout, State.IDLE);
- }
- mCurrentState = State.IDLE;
- }
- }
-
- /**
- * Notifies on state change
- * @param appBarLayout Layout
- * @param state Collapse state
- */
- abstract void onStateChanged(AppBarLayout appBarLayout, State state);
- }
-
private static class InsertUserDataAsyncTask extends AsyncTask<Void, Void, Void> {
interface InsertUserDataAsyncTaskListener {
@@ -524,7 +535,7 @@ public class ViewUserDetailActivity extends AppCompatActivity {
}
public void refresh() {
- if(viewPager.getCurrentItem() == 0) {
+ if (viewPager.getCurrentItem() == 0) {
postFragment.refresh();
} else {
commentsListingFragment.refresh();
diff --git a/app/src/main/res/layout/activity_search_result.xml b/app/src/main/res/layout/activity_search_result.xml
index 797b08d3..8620b0ec 100644
--- a/app/src/main/res/layout/activity_search_result.xml
+++ b/app/src/main/res/layout/activity_search_result.xml
@@ -11,38 +11,48 @@
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
- <FrameLayout
+ <com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="match_parent"
+ app:layout_scrollFlags="scroll|enterAlways"
+ app:titleEnabled="false"
+ app:toolbarId="@+id/toolbar_search_result_activity">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar_search_result_activity"
+ <FrameLayout
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- app:popupTheme="@style/AppTheme.PopupOverlay" />
+ android:layout_height="wrap_content">
- <com.ferfalk.simplesearchview.SimpleSearchView
- android:id="@+id/search_view_search_result_activity"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:textColor="@android:color/white"
- app:voiceSearch="true"
- app:searchBackground="@color/colorPrimary"
- app:cursorColor="@android:color/white"
- app:hintColor="#E0E0E0"
- app:iconsTint="@android:color/white"
- app:backIconTint="@android:color/white"
- app:iconsAlpha="1"
- app:backIconAlpha="1" />
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar_search_result_activity"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ app:popupTheme="@style/AppTheme.PopupOverlay" />
+
+ <com.ferfalk.simplesearchview.SimpleSearchView
+ android:id="@+id/search_view_search_result_activity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:textColor="@android:color/white"
+ app:voiceSearch="true"
+ app:searchBackground="@color/colorPrimary"
+ app:cursorColor="@android:color/white"
+ app:hintColor="#E0E0E0"
+ app:iconsTint="@android:color/white"
+ app:backIconTint="@android:color/white"
+ app:iconsAlpha="1"
+ app:backIconAlpha="1" />
+
+ </FrameLayout>
- </FrameLayout>
+ </com.google.android.material.appbar.CollapsingToolbarLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout_search_result_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
+ app:layout_scrollFlags="scroll|enterAlways"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabIndicatorColor="@android:color/white"
diff --git a/app/src/main/res/layout/activity_subscribed_thing_listing.xml b/app/src/main/res/layout/activity_subscribed_thing_listing.xml
index c448e631..45092748 100644
--- a/app/src/main/res/layout/activity_subscribed_thing_listing.xml
+++ b/app/src/main/res/layout/activity_subscribed_thing_listing.xml
@@ -12,18 +12,28 @@
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar_subscribed_thing_listing_activity"
+ <com.google.android.material.appbar.CollapsingToolbarLayout
android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:background="?attr/colorPrimary"
- app:popupTheme="@style/AppTheme.PopupOverlay" />
+ android:layout_height="match_parent"
+ app:layout_scrollFlags="scroll|enterAlways"
+ app:titleEnabled="false"
+ app:toolbarId="@+id/toolbar_subscribed_thing_listing_activity">
+
+ <androidx.appcompat.widget.Toolbar
+ android:id="@+id/toolbar_subscribed_thing_listing_activity"
+ android:layout_width="match_parent"
+ android:layout_height="?attr/actionBarSize"
+ android:background="?attr/colorPrimary"
+ app:popupTheme="@style/AppTheme.PopupOverlay" />
+
+ </com.google.android.material.appbar.CollapsingToolbarLayout>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout_subscribed_thing_listing_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
+ app:layout_scrollFlags="scroll|enterAlways"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabIndicatorColor="@android:color/white"
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
index 46a388a9..27a54b4c 100644
--- a/app/src/main/res/layout/app_bar_main.xml
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -4,9 +4,11 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:id="@+id/coordinator_layout_main_activity"
tools:application="ml.docilealligator.infinityforreddit.MainActivity">
<com.google.android.material.appbar.AppBarLayout
+ android:id="@+id/appbar_layout_main_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
diff --git a/app/src/main/res/layout/fragment_comments_listing.xml b/app/src/main/res/layout/fragment_comments_listing.xml
index e0741118..7dfb31e4 100644
--- a/app/src/main/res/layout/fragment_comments_listing.xml
+++ b/app/src/main/res/layout/fragment_comments_listing.xml
@@ -21,7 +21,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_comments_listing_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/fetch_comments_info_linear_layout_comments_listing_fragment"
diff --git a/app/src/main/res/layout/fragment_followed_users_listing.xml b/app/src/main/res/layout/fragment_followed_users_listing.xml
index c7e33729..e5b64728 100644
--- a/app/src/main/res/layout/fragment_followed_users_listing.xml
+++ b/app/src/main/res/layout/fragment_followed_users_listing.xml
@@ -8,7 +8,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_followed_users_listing_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/no_subscriptions_linear_layout_followed_users_listing_fragment"
diff --git a/app/src/main/res/layout/fragment_post.xml b/app/src/main/res/layout/fragment_post.xml
index 27add5a2..dcacaf49 100644
--- a/app/src/main/res/layout/fragment_post.xml
+++ b/app/src/main/res/layout/fragment_post.xml
@@ -20,7 +20,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_post_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/fetch_post_info_linear_layout_post_fragment"
diff --git a/app/src/main/res/layout/fragment_subreddit_listing.xml b/app/src/main/res/layout/fragment_subreddit_listing.xml
index 1b789601..d460b569 100644
--- a/app/src/main/res/layout/fragment_subreddit_listing.xml
+++ b/app/src/main/res/layout/fragment_subreddit_listing.xml
@@ -21,7 +21,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_subreddit_listing_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/fetch_subreddit_listing_info_linear_layout_subreddit_listing_fragment"
diff --git a/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml b/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml
index 2263dd7c..25294baf 100644
--- a/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml
+++ b/app/src/main/res/layout/fragment_subscribed_subreddits_listing.xml
@@ -8,7 +8,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_subscribed_subreddits_listing_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/no_subscriptions_linear_layout_subreddits_listing_fragment"
diff --git a/app/src/main/res/layout/fragment_user_listing.xml b/app/src/main/res/layout/fragment_user_listing.xml
index b2e55538..91eb926e 100644
--- a/app/src/main/res/layout/fragment_user_listing.xml
+++ b/app/src/main/res/layout/fragment_user_listing.xml
@@ -21,7 +21,8 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view_user_listing_fragment"
android:layout_width="match_parent"
- android:layout_height="match_parent" />
+ android:layout_height="match_parent"
+ android:clipToPadding="false" />
<LinearLayout
android:id="@+id/fetch_user_listing_info_linear_layout_user_listing_fragment"
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index e79b7fa2..4827628f 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -26,7 +26,7 @@
<color name="roundedBottomSheetPrimaryBackground">#242424</color>
- <color name="roundedBottomSheetPrimaryNavigationBarColor">#000000</color>
+ <color name="roundedBottomSheetPrimaryNavigationBarColor">@color/roundedBottomSheetPrimaryBackground</color>
<color name="voteUnavailableVoteButtonColor">#3C3C3C</color>
diff --git a/app/src/main/res/values-sw600dp/attr.xml b/app/src/main/res/values-sw600dp/attr.xml
new file mode 100644
index 00000000..d3a0e92c
--- /dev/null
+++ b/app/src/main/res/values-sw600dp/attr.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <bool name="isTablet">true</bool>
+</resources> \ No newline at end of file
diff --git a/app/src/main/res/values/attr.xml b/app/src/main/res/values/attr.xml
new file mode 100644
index 00000000..f855de6a
--- /dev/null
+++ b/app/src/main/res/values/attr.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <bool name="isTablet">false</bool>
+</resources> \ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b69907f3..2f5b389f 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -26,7 +26,7 @@
<color name="roundedBottomSheetPrimaryBackground">#FFFFFF</color>
- <color name="roundedBottomSheetPrimaryNavigationBarColor">#000000</color>
+ <color name="roundedBottomSheetPrimaryNavigationBarColor">@color/roundedBottomSheetPrimaryBackground</color>
<color name="voteUnavailableVoteButtonColor">#F0F0F0</color>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 596e3813..75f23b15 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,4 +1,4 @@
-<resources>
+<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">