From 0f36ad4e1db8789fb012a54b8b6f81dbca49e828 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Wed, 26 Feb 2020 22:40:15 +0800 Subject: Prepare to add different themes. Try fixing timeout issue in okhttp3. --- .../AccessTokenAuthenticator.java | 8 ++- .../Activity/PostImageActivity.java | 40 ++++++++---- .../Activity/PostLinkActivity.java | 38 +++++++---- .../Activity/PostTextActivity.java | 38 +++++++---- .../Activity/PostVideoActivity.java | 40 ++++++++---- .../Activity/ViewSubredditDetailActivity.java | 13 ++-- .../Activity/ViewUserDetailActivity.java | 35 +++++----- .../Adapter/CommentAndPostRecyclerViewAdapter.java | 76 ++++++++++++---------- .../CommentsListingRecyclerViewAdapter.java | 40 +++++++----- .../Adapter/MessageRecyclerViewAdapter.java | 10 +-- .../Adapter/PostRecyclerViewAdapter.java | 60 +++++++++-------- .../infinityforreddit/AppModule.java | 8 ++- .../infinityforreddit/Utils/Utils.java | 7 ++ 13 files changed, 248 insertions(+), 165 deletions(-) (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java index 8440fec7..22483fad 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AccessTokenAuthenticator.java @@ -19,13 +19,17 @@ import okhttp3.Response; import okhttp3.Route; import retrofit2.Call; import retrofit2.Retrofit; +import retrofit2.converter.scalars.ScalarsConverterFactory; class AccessTokenAuthenticator implements Authenticator { private Retrofit mRetrofit; private RedditDataRoomDatabase mRedditDataRoomDatabase; - AccessTokenAuthenticator(Retrofit retrofit, RedditDataRoomDatabase accountRoomDatabase) { - mRetrofit = retrofit; + AccessTokenAuthenticator(RedditDataRoomDatabase accountRoomDatabase) { + mRetrofit = new Retrofit.Builder() + .baseUrl(RedditUtils.API_BASE_URI) + .addConverterFactory(ScalarsConverterFactory.create()) + .build(); mRedditDataRoomDatabase = accountRoomDatabase; } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostImageActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostImageActivity.java index 93e6ed69..ee68d38d 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostImageActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostImageActivity.java @@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Resources; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -52,6 +53,7 @@ import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.Service.SubmitPostService; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -128,9 +130,13 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF private boolean loadSubredditIconSuccessful = true; private boolean isPosting; private Uri imageUri; + private int flairColor; + private int spoilerColor; + private int nsfwColor; private Flair flair; private boolean isSpoiler = false; private boolean isNSFW = false; + private Resources resources; private Menu mMemu; private RequestManager mGlide; private FlairBottomSheetFragment flairSelectionBottomSheetFragment; @@ -155,6 +161,12 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF mPostingSnackbar = Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_INDEFINITE); + flairColor = Utils.getAttributeColor(this, R.attr.flairColor); + spoilerColor = Utils.getAttributeColor(this, R.attr.spoilerColor); + nsfwColor = Utils.getAttributeColor(this, R.attr.nsfwColor); + + resources = getResources(); + if (savedInstanceState != null) { mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE); mAccessToken = savedInstanceState.getString(ACCESS_TOKEN_STATE); @@ -180,7 +192,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF } if (subredditName != null) { - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); if (!loadSubredditIconSuccessful) { @@ -195,13 +207,13 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF if (flair != null) { flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } if (isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); } if (isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); } } else { getCurrentAccount(); @@ -212,7 +224,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF loadSubredditIconSuccessful = false; subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME); subredditSelected = true; - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); loadSubredditIcon(); } else { @@ -260,7 +272,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF flairSelectionBottomSheetFragment.setArguments(bundle); flairSelectionBottomSheetFragment.show(getSupportFragmentManager(), flairSelectionBottomSheetFragment.getTag()); } else { - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -268,20 +280,20 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF spoilerTextView.setOnClickListener(view -> { if (!isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); isSpoiler = true; } else { - spoilerTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + spoilerTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isSpoiler = false; } }); nsfwTextView.setOnClickListener(view -> { if (!isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); isNSFW = true; } else { - nsfwTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + nsfwTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isNSFW = false; } }); @@ -306,7 +318,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); - startActivityForResult(Intent.createChooser(intent, getResources().getString(R.string.select_from_gallery)), PICK_IMAGE_REQUEST_CODE); + startActivityForResult(Intent.createChooser(intent, resources.getString(R.string.select_from_gallery)), PICK_IMAGE_REQUEST_CODE); }); selectAgainTextView.setOnClickListener(view -> { @@ -495,12 +507,12 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF subredditSelected = true; subredditIsUser = data.getExtras().getBoolean(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER); - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); displaySubredditIcon(); flairTextView.setVisibility(View.VISIBLE); - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -531,7 +543,7 @@ public class PostImageActivity extends BaseActivity implements FlairBottomSheetF public void flairSelected(Flair flair) { this.flair = flair; flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } @Subscribe diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostLinkActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostLinkActivity.java index afa9fc3d..094a7757 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostLinkActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostLinkActivity.java @@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -42,6 +43,7 @@ import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.Service.SubmitPostService; import ml.docilealligator.infinityforreddit.Utils.RedditUtils; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -102,9 +104,13 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr private boolean subredditIsUser; private boolean loadSubredditIconSuccessful = true; private boolean isPosting; + private int flairColor; + private int spoilerColor; + private int nsfwColor; private Flair flair; private boolean isSpoiler = false; private boolean isNSFW = false; + private Resources resources; private Menu mMemu; private RequestManager mGlide; private FlairBottomSheetFragment flairSelectionBottomSheetFragment; @@ -129,6 +135,12 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr mPostingSnackbar = Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_INDEFINITE); + flairColor = Utils.getAttributeColor(this, R.attr.flairColor); + spoilerColor = Utils.getAttributeColor(this, R.attr.spoilerColor); + nsfwColor = Utils.getAttributeColor(this, R.attr.nsfwColor); + + resources = getResources(); + if (savedInstanceState != null) { mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE); mAccessToken = savedInstanceState.getString(ACCESS_TOKEN_STATE); @@ -148,7 +160,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr isNSFW = savedInstanceState.getBoolean(IS_NSFW_STATE); if (subredditName != null) { - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); if (!loadSubredditIconSuccessful) { @@ -163,13 +175,13 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr if (flair != null) { flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } if (isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); } if (isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); } } else { getCurrentAccount(); @@ -180,7 +192,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr loadSubredditIconSuccessful = false; subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME); subredditSelected = true; - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); loadSubredditIcon(); @@ -229,7 +241,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr flairSelectionBottomSheetFragment.setArguments(bundle); flairSelectionBottomSheetFragment.show(getSupportFragmentManager(), flairSelectionBottomSheetFragment.getTag()); } else { - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -237,20 +249,20 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr spoilerTextView.setOnClickListener(view -> { if (!isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); isSpoiler = true; } else { - spoilerTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + spoilerTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isSpoiler = false; } }); nsfwTextView.setOnClickListener(view -> { if (!isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); isNSFW = true; } else { - nsfwTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + nsfwTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isNSFW = false; } }); @@ -415,12 +427,12 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr subredditSelected = true; subredditIsUser = data.getExtras().getBoolean(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER); - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); displaySubredditIcon(); flairTextView.setVisibility(View.VISIBLE); - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -437,7 +449,7 @@ public class PostLinkActivity extends BaseActivity implements FlairBottomSheetFr public void flairSelected(Flair flair) { this.flair = flair; flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } @Subscribe diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostTextActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostTextActivity.java index 7cb8a95f..4f10e848 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostTextActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostTextActivity.java @@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -42,6 +43,7 @@ import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.Service.SubmitPostService; import ml.docilealligator.infinityforreddit.Utils.RedditUtils; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -102,9 +104,13 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr private boolean subredditIsUser; private boolean loadSubredditIconSuccessful = true; private boolean isPosting; + private int flairColor; + private int spoilerColor; + private int nsfwColor; private Flair flair; private boolean isSpoiler = false; private boolean isNSFW = false; + private Resources resources; private Menu mMemu; private RequestManager mGlide; private FlairBottomSheetFragment flairSelectionBottomSheetFragment; @@ -129,6 +135,12 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr mPostingSnackbar = Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_INDEFINITE); + flairColor = Utils.getAttributeColor(this, R.attr.flairColor); + spoilerColor = Utils.getAttributeColor(this, R.attr.spoilerColor); + nsfwColor = Utils.getAttributeColor(this, R.attr.nsfwColor); + + resources = getResources(); + if (savedInstanceState != null) { mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE); mAccessToken = savedInstanceState.getString(ACCESS_TOKEN_STATE); @@ -148,7 +160,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr isNSFW = savedInstanceState.getBoolean(IS_NSFW_STATE); if (subredditName != null) { - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); if (!loadSubredditIconSuccessful) { @@ -163,13 +175,13 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr if (flair != null) { flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } if (isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); } if (isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); } } else { getCurrentAccount(); @@ -180,7 +192,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr loadSubredditIconSuccessful = false; subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME); subredditSelected = true; - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); loadSubredditIcon(); @@ -233,7 +245,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr flairSelectionBottomSheetFragment.setArguments(bundle); flairSelectionBottomSheetFragment.show(getSupportFragmentManager(), flairSelectionBottomSheetFragment.getTag()); } else { - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -241,20 +253,20 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr spoilerTextView.setOnClickListener(view -> { if (!isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); isSpoiler = true; } else { - spoilerTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + spoilerTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isSpoiler = false; } }); nsfwTextView.setOnClickListener(view -> { if (!isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); isNSFW = true; } else { - nsfwTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + nsfwTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isNSFW = false; } }); @@ -415,12 +427,12 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr subredditSelected = true; subredditIsUser = data.getExtras().getBoolean(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER); - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); displaySubredditIcon(); flairTextView.setVisibility(View.VISIBLE); - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -437,7 +449,7 @@ public class PostTextActivity extends BaseActivity implements FlairBottomSheetFr public void flairSelected(Flair flair) { this.flair = flair; flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } @Subscribe diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostVideoActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostVideoActivity.java index 2fb18a16..91ea4157 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostVideoActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/PostVideoActivity.java @@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Resources; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -54,6 +55,7 @@ import ml.docilealligator.infinityforreddit.Infinity; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; import ml.docilealligator.infinityforreddit.Service.SubmitPostService; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -134,9 +136,13 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF private boolean loadSubredditIconSuccessful = true; private boolean isPosting; private boolean wasPlaying; + private int flairColor; + private int spoilerColor; + private int nsfwColor; private Flair flair; private boolean isSpoiler = false; private boolean isNSFW = false; + private Resources resources; private Menu mMemu; private RequestManager mGlide; private FlairBottomSheetFragment mFlairSelectionBottomSheetFragment; @@ -169,6 +175,12 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF mPostingSnackbar = Snackbar.make(coordinatorLayout, R.string.posting, Snackbar.LENGTH_INDEFINITE); + flairColor = Utils.getAttributeColor(this, R.attr.flairColor); + spoilerColor = Utils.getAttributeColor(this, R.attr.spoilerColor); + nsfwColor = Utils.getAttributeColor(this, R.attr.nsfwColor); + + resources = getResources(); + if (savedInstanceState != null) { subredditName = savedInstanceState.getString(SUBREDDIT_NAME_STATE); iconUrl = savedInstanceState.getString(SUBREDDIT_ICON_STATE); @@ -193,7 +205,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF } if (subredditName != null) { - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); flairTextView.setVisibility(View.VISIBLE); if (!loadSubredditIconSuccessful) { @@ -208,13 +220,13 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF if (flair != null) { flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } if (isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); } if (isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); } } else { getCurrentAccount(); @@ -225,7 +237,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF loadSubredditIconSuccessful = false; subredditName = getIntent().getStringExtra(EXTRA_SUBREDDIT_NAME); subredditSelected = true; - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); loadSubredditIcon(); } else { @@ -273,7 +285,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF mFlairSelectionBottomSheetFragment.setArguments(bundle); mFlairSelectionBottomSheetFragment.show(getSupportFragmentManager(), mFlairSelectionBottomSheetFragment.getTag()); } else { - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -281,20 +293,20 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF spoilerTextView.setOnClickListener(view -> { if (!isSpoiler) { - spoilerTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + spoilerTextView.setBackgroundColor(spoilerColor); isSpoiler = true; } else { - spoilerTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + spoilerTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isSpoiler = false; } }); nsfwTextView.setOnClickListener(view -> { if (!isNSFW) { - nsfwTextView.setBackgroundColor(getResources().getColor(R.color.colorAccent)); + nsfwTextView.setBackgroundColor(nsfwColor); isNSFW = true; } else { - nsfwTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + nsfwTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); isNSFW = false; } }); @@ -310,7 +322,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF Intent intent = new Intent(); intent.setType("video/*"); intent.setAction(Intent.ACTION_GET_CONTENT); - startActivityForResult(Intent.createChooser(intent, getResources().getString(R.string.select_from_gallery)), PICK_VIDEO_REQUEST_CODE); + startActivityForResult(Intent.createChooser(intent, resources.getString(R.string.select_from_gallery)), PICK_VIDEO_REQUEST_CODE); }); selectAgainTextView.setOnClickListener(view -> { @@ -516,12 +528,12 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF subredditSelected = true; subredditIsUser = data.getBooleanExtra(SubredditSelectionActivity.EXTRA_RETURN_SUBREDDIT_IS_USER, false); - subredditNameTextView.setTextColor(getResources().getColor(R.color.primaryTextColor)); + subredditNameTextView.setTextColor(resources.getColor(R.color.primaryTextColor)); subredditNameTextView.setText(subredditName); displaySubredditIcon(); flairTextView.setVisibility(View.VISIBLE); - flairTextView.setBackgroundColor(getResources().getColor(android.R.color.transparent)); + flairTextView.setBackgroundColor(resources.getColor(android.R.color.transparent)); flairTextView.setText(getString(R.string.flair)); flair = null; } @@ -559,7 +571,7 @@ public class PostVideoActivity extends BaseActivity implements FlairBottomSheetF public void flairSelected(Flair flair) { this.flair = flair; flairTextView.setText(flair.getText()); - flairTextView.setBackgroundColor(getResources().getColor(R.color.backgroundColorPrimaryDark)); + flairTextView.setBackgroundColor(flairColor); } @Subscribe diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewSubredditDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewSubredditDetailActivity.java index 72e90cd7..99374dc5 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewSubredditDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewSubredditDetailActivity.java @@ -2,6 +2,7 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; @@ -69,6 +70,7 @@ import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditData; import ml.docilealligator.infinityforreddit.SubredditDatabase.SubredditViewModel; import ml.docilealligator.infinityforreddit.SubredditSubscription; import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -458,6 +460,9 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp fab.setVisibility(View.GONE); } + int unsubscribedColor = Utils.getAttributeColor(this, R.attr.unsubscribed); + int subscribedColor = Utils.getAttributeColor(this, R.attr.subscribed); + subscribeSubredditChip.setOnClickListener(view -> { if (mAccessToken == null) { Toast.makeText(ViewSubredditDetailActivity.this, R.string.login_first, Toast.LENGTH_SHORT).show(); @@ -473,7 +478,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp @Override public void onSubredditSubscriptionSuccess() { subscribeSubredditChip.setText(R.string.unsubscribe); - subscribeSubredditChip.setChipBackgroundColor(getResources().getColorStateList(R.color.colorAccent)); + subscribeSubredditChip.setChipBackgroundColor(ColorStateList.valueOf(subscribedColor)); makeSnackbar(R.string.subscribed, false); subscriptionReady = true; } @@ -491,7 +496,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp @Override public void onSubredditSubscriptionSuccess() { subscribeSubredditChip.setText(R.string.subscribe); - subscribeSubredditChip.setChipBackgroundColor(getResources().getColorStateList(R.color.backgroundColorPrimaryDark)); + subscribeSubredditChip.setChipBackgroundColor(ColorStateList.valueOf(unsubscribedColor)); makeSnackbar(R.string.unsubscribed, false); subscriptionReady = true; } @@ -511,14 +516,14 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp @Override public void isSubscribed() { subscribeSubredditChip.setText(R.string.unsubscribe); - subscribeSubredditChip.setChipBackgroundColor(getResources().getColorStateList(R.color.colorAccent)); + subscribeSubredditChip.setChipBackgroundColor(ColorStateList.valueOf(subscribedColor)); subscriptionReady = true; } @Override public void isNotSubscribed() { subscribeSubredditChip.setText(R.string.subscribe); - subscribeSubredditChip.setChipBackgroundColor(getResources().getColorStateList(R.color.backgroundColorPrimaryDark)); + subscribeSubredditChip.setChipBackgroundColor(ColorStateList.valueOf(unsubscribedColor)); subscriptionReady = true; } }).execute(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewUserDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewUserDetailActivity.java index 53eb9720..35a98f69 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewUserDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewUserDetailActivity.java @@ -2,12 +2,12 @@ package ml.docilealligator.infinityforreddit.Activity; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; -import android.util.TypedValue; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; @@ -65,7 +65,6 @@ import ml.docilealligator.infinityforreddit.Post.PostDataSource; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.ReadMessage; import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase; -import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils; import ml.docilealligator.infinityforreddit.SortType; import ml.docilealligator.infinityforreddit.SortTypeSelectionCallback; import ml.docilealligator.infinityforreddit.SubscribedUserDatabase.SubscribedUserDao; @@ -73,6 +72,8 @@ import ml.docilealligator.infinityforreddit.User.UserDao; import ml.docilealligator.infinityforreddit.User.UserData; import ml.docilealligator.infinityforreddit.User.UserViewModel; import ml.docilealligator.infinityforreddit.UserFollowing; +import ml.docilealligator.infinityforreddit.Utils.SharedPreferencesUtils; +import ml.docilealligator.infinityforreddit.Utils.Utils; import pl.droidsonroids.gif.GifImageView; import retrofit2.Retrofit; @@ -205,19 +206,12 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele setSupportActionBar(toolbar); - expandedTabTextColor = resources.getColor(R.color.tabLayoutWithExpandedCollapsingToolbarTextColor); - expandedTabIndicatorColor = resources.getColor(R.color.tabLayoutWithExpandedCollapsingToolbarTabIndicator); - - TypedValue expandedTabBackgroundColorTypedValue = new TypedValue(); - getTheme().resolveAttribute(R.attr.tabLayoutWithExpandedCollapsingToolbarTabBackground, expandedTabBackgroundColorTypedValue, true); - expandedTabBackgroundColor = expandedTabBackgroundColorTypedValue.data; - - collapsedTabTextColor = resources.getColor(R.color.tabLayoutWithCollapsedCollapsingToolbarTextColor); - collapsedTabIndicatorColor = resources.getColor(R.color.tabLayoutWithCollapsedCollapsingToolbarTabIndicator); - - TypedValue collapsedTabBackgroundColorTypedValue = new TypedValue(); - getTheme().resolveAttribute(R.attr.tabLayoutWithCollapsedCollapsingToolbarTabBackground, collapsedTabBackgroundColorTypedValue, true); - collapsedTabBackgroundColor = collapsedTabBackgroundColorTypedValue.data; + expandedTabTextColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithExpandedCollapsingToolbarTextColor); + expandedTabIndicatorColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithExpandedCollapsingToolbarTabIndicator); + expandedTabBackgroundColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithExpandedCollapsingToolbarTabBackground); + collapsedTabTextColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithCollapsedCollapsingToolbarTextColor); + collapsedTabIndicatorColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithCollapsedCollapsingToolbarTabIndicator); + collapsedTabBackgroundColor = Utils.getAttributeColor(this, R.attr.tabLayoutWithCollapsedCollapsingToolbarTabBackground); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1 && (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT @@ -315,6 +309,9 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele }); } + int unsubscribedColor = Utils.getAttributeColor(this, R.attr.unsubscribed); + int subscribedColor = Utils.getAttributeColor(this, R.attr.subscribed); + if (userData.isCanBeFollowed()) { subscribeUserChip.setVisibility(View.VISIBLE); subscribeUserChip.setOnClickListener(view -> { @@ -331,7 +328,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele @Override public void onUserFollowingSuccess() { subscribeUserChip.setText(R.string.unfollow); - subscribeUserChip.setChipBackgroundColor(resources.getColorStateList(R.color.colorAccent)); + subscribeUserChip.setChipBackgroundColor(ColorStateList.valueOf(subscribedColor)); showMessage(R.string.followed, false); subscriptionReady = true; } @@ -348,7 +345,7 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele @Override public void onUserFollowingSuccess() { subscribeUserChip.setText(R.string.follow); - subscribeUserChip.setChipBackgroundColor(resources.getColorStateList(R.color.backgroundColorPrimaryDark)); + subscribeUserChip.setChipBackgroundColor(ColorStateList.valueOf(unsubscribedColor)); showMessage(R.string.unfollowed, false); subscriptionReady = true; } @@ -367,14 +364,14 @@ public class ViewUserDetailActivity extends BaseActivity implements SortTypeSele @Override public void isSubscribed() { subscribeUserChip.setText(R.string.unfollow); - subscribeUserChip.setChipBackgroundColor(resources.getColorStateList(R.color.colorAccent)); + subscribeUserChip.setChipBackgroundColor(ColorStateList.valueOf(subscribedColor)); subscriptionReady = true; } @Override public void isNotSubscribed() { subscribeUserChip.setText(R.string.follow); - subscribeUserChip.setChipBackgroundColor(resources.getColorStateList(R.color.backgroundColorPrimaryDark)); + subscribeUserChip.setChipBackgroundColor(ColorStateList.valueOf(unsubscribedColor)); subscriptionReady = true; } }).execute(); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java index 5545e1e8..7aa282f1 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Adapter/CommentAndPostRecyclerViewAdapter.java @@ -11,7 +11,6 @@ import android.text.Spannable; import android.text.Spanned; import android.text.style.SuperscriptSpan; import android.text.util.Linkify; -import android.util.TypedValue; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -131,6 +130,12 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter { Intent intent = new Intent(mContext, ViewUserDetailActivity.class); intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, comment.getLinkAuthor()); @@ -146,7 +150,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter { Intent intent = new Intent(mContext, ViewSubredditDetailActivity.class); intent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY, comment.getSubredditName()); @@ -169,13 +173,13 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter { @@ -57,6 +57,7 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter { @@ -879,7 +887,7 @@ public class PostRecyclerViewAdapter extends PagedListAdapter { @@ -946,13 +954,13 @@ public class PostRecyclerViewAdapter extends PagedListAdapter