From 3b0eb15646cc9ac60a7661cf25d5a1a528bae404 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Tue, 27 Aug 2019 16:46:46 +0800 Subject: This app now has an icon (finally)git statusgit statusgit status Add a credits page in settings. Use another error view and no comment placeholder. --- .../java/Settings/AboutPreferenceFragment.java | 19 ++++ .../java/Settings/CreditsPreferenceFragment.java | 110 +++++++++++++++++++++ .../main/java/Settings/MainPreferenceFragment.java | 1 + .../CommentAndPostRecyclerViewAdapter.java | 1 - .../infinityforreddit/CommentsListingFragment.java | 2 +- .../FollowedUsersListingFragment.java | 2 +- .../infinityforreddit/NotificationUtils.java | 4 +- .../infinityforreddit/PostFragment.java | 2 +- .../infinityforreddit/PostRecyclerViewAdapter.java | 1 - .../infinityforreddit/SharedPreferencesUtils.java | 8 ++ .../SubredditListingFragment.java | 2 +- .../SubscribedSubredditsListingFragment.java | 2 +- .../infinityforreddit/UserListingFragment.java | 2 +- .../infinityforreddit/ViewMessageActivity.java | 2 +- .../infinityforreddit/ViewPostDetailActivity.java | 2 +- 15 files changed, 148 insertions(+), 12 deletions(-) create mode 100644 app/src/main/java/Settings/AboutPreferenceFragment.java create mode 100644 app/src/main/java/Settings/CreditsPreferenceFragment.java (limited to 'app/src/main/java') diff --git a/app/src/main/java/Settings/AboutPreferenceFragment.java b/app/src/main/java/Settings/AboutPreferenceFragment.java new file mode 100644 index 00000000..40873284 --- /dev/null +++ b/app/src/main/java/Settings/AboutPreferenceFragment.java @@ -0,0 +1,19 @@ +package Settings; + + +import android.os.Bundle; + +import androidx.preference.PreferenceFragmentCompat; + +import ml.docilealligator.infinityforreddit.R; + +/** + * A simple {@link PreferenceFragmentCompat} subclass. + */ +public class AboutPreferenceFragment extends PreferenceFragmentCompat { + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.about_preferences, rootKey); + } +} diff --git a/app/src/main/java/Settings/CreditsPreferenceFragment.java b/app/src/main/java/Settings/CreditsPreferenceFragment.java new file mode 100644 index 00000000..6bc3b467 --- /dev/null +++ b/app/src/main/java/Settings/CreditsPreferenceFragment.java @@ -0,0 +1,110 @@ +package Settings; + + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; + +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + +import ml.docilealligator.infinityforreddit.LinkResolverActivity; +import ml.docilealligator.infinityforreddit.R; +import ml.docilealligator.infinityforreddit.SharedPreferencesUtils; + +/** + * A simple {@link PreferenceFragmentCompat} subclass. + */ +public class CreditsPreferenceFragment extends PreferenceFragmentCompat { + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + setPreferencesFromResource(R.xml.credits_preferences, rootKey); + + Preference iconForegroundPreference = findPreference(SharedPreferencesUtils.ICON_FOREGROUND_KEY); + Preference iconBackgroundPreference = findPreference(SharedPreferencesUtils.ICON_BACKGROUND_KEY); + Preference errorImagePreference = findPreference(SharedPreferencesUtils.ERROR_IMAGE_KEY); + Preference placeholderPreference = findPreference(SharedPreferencesUtils.SUBREDDIT_AND_USER_PLACEHOLDER_KEY); + Preference gildedIconPreference = findPreference(SharedPreferencesUtils.GILDED_ICON_KEY); + Preference crosspostIconPreference = findPreference(SharedPreferencesUtils.CROSSPOST_ICON_KEY); + Preference thumbtackIconPreference = findPreference(SharedPreferencesUtils.THUMBTACK_ICON_KEY); + Preference materialIconsPreference = findPreference(SharedPreferencesUtils.MATERIAL_ICONS_KEY); + + Activity activity = getActivity(); + + if(activity != null) { + if(iconForegroundPreference != null) { + iconForegroundPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.freepik.com/free-photos-vectors/technology")); + startActivity(intent); + return true; + }); + } + + if(iconBackgroundPreference != null) { + iconBackgroundPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.freepik.com/free-photos-vectors/background")); + startActivity(intent); + return true; + }); + } + + if(errorImagePreference != null) { + errorImagePreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.freepik.com/free-photos-vectors/technology")); + startActivity(intent); + return true; + }); + } + + if(placeholderPreference != null) { + placeholderPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.freepik.com/free-photos-vectors/technology")); + startActivity(intent); + return true; + }); + } + + if(gildedIconPreference != null) { + gildedIconPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://br.flaticon.com/icone-gratis/medalha_1007239")); + startActivity(intent); + return true; + }); + } + + if(crosspostIconPreference != null) { + crosspostIconPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.flaticon.com/free-icon/crossed-arrows_2291")); + startActivity(intent); + return true; + }); + } + + if(thumbtackIconPreference != null) { + thumbtackIconPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://www.flaticon.com/free-icon/tack-save-button_61845#term=thumbtack&page=1&position=3")); + startActivity(intent); + return true; + }); + } + + if(materialIconsPreference != null) { + materialIconsPreference.setOnPreferenceClickListener(preference -> { + Intent intent = new Intent(activity, LinkResolverActivity.class); + intent.setData(Uri.parse("https://material.io/resources/icons/")); + startActivity(intent); + return true; + }); + } + } + } +} diff --git a/app/src/main/java/Settings/MainPreferenceFragment.java b/app/src/main/java/Settings/MainPreferenceFragment.java index c8234fb5..fbe97347 100644 --- a/app/src/main/java/Settings/MainPreferenceFragment.java +++ b/app/src/main/java/Settings/MainPreferenceFragment.java @@ -24,6 +24,7 @@ import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES; * A simple {@link PreferenceFragmentCompat} subclass. */ public class MainPreferenceFragment extends PreferenceFragmentCompat { + @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.main_preferences, rootKey); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java index 095abbaa..8952cf12 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java @@ -325,7 +325,6 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter 0) { ((PostDetailViewHolder) holder).mGildedImageView.setVisibility(View.VISIBLE); - mGlide.load(R.drawable.gold).into(((PostDetailViewHolder) holder).mGildedImageView); ((PostDetailViewHolder) holder).mGildedNumberTextView.setVisibility(View.VISIBLE); String gildedNumber = mActivity.getResources().getString(R.string.gilded_count, mPost.getGilded()); ((PostDetailViewHolder) holder).mGildedNumberTextView.setText(gildedNumber); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java index 272ed624..3721d839 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingFragment.java @@ -156,7 +156,7 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni if(activity != null && isAdded()) { mFetchCommentInfoLinearLayout.setVisibility(View.VISIBLE); mFetchCommentInfoTextView.setText(stringResId); - mGlide.load(R.drawable.load_post_error_indicator).into(mFetchCommentInfoImageView); + mGlide.load(R.drawable.error_image).into(mFetchCommentInfoImageView); } } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java index 9a371b8a..83a30838 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/FollowedUsersListingFragment.java @@ -86,7 +86,7 @@ public class FollowedUsersListingFragment extends Fragment { if (subscribedUserData == null || subscribedUserData.size() == 0) { mRecyclerView.setVisibility(View.GONE); mLinearLayout.setVisibility(View.VISIBLE); - mGlide.load(R.drawable.load_post_error_indicator).into(mImageView); + mGlide.load(R.drawable.error_image).into(mImageView); } else { mLinearLayout.setVisibility(View.GONE); mRecyclerView.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/NotificationUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/NotificationUtils.java index 2fc832d5..7d09608f 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/NotificationUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/NotificationUtils.java @@ -29,7 +29,7 @@ class NotificationUtils { return new NotificationCompat.Builder(context.getApplicationContext(), channelId) .setContentTitle(title) .setContentText(content) - .setSmallIcon(R.mipmap.ic_launcher) + .setSmallIcon(R.drawable.ic_launcher_foreground) .setStyle(new NotificationCompat.BigTextStyle() .setSummaryText(summary) .bigText(content)) @@ -49,7 +49,7 @@ class NotificationUtils { .setContentTitle(title) //set content text to support devices running API level < 24 .setContentText(content) - .setSmallIcon(R.mipmap.ic_launcher) + .setSmallIcon(R.drawable.ic_launcher_foreground) .setGroup(group) .setGroupSummary(true) .setAutoCancel(true); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java index 7420893e..db10f91f 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostFragment.java @@ -416,7 +416,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator { if(activity != null && isAdded()) { mFetchPostInfoLinearLayout.setVisibility(View.VISIBLE); mFetchPostInfoTextView.setText(stringResId); - mGlide.load(R.drawable.load_post_error_indicator).into(mFetchPostInfoImageView); + mGlide.load(R.drawable.error_image).into(mFetchPostInfoImageView); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java index 5a1ec974..fc2b4024 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java @@ -299,7 +299,6 @@ class PostRecyclerViewAdapter extends PagedListAdapter 0) { ((DataViewHolder) holder).gildedImageView.setVisibility(View.VISIBLE); - mGlide.load(R.drawable.gold).into(((DataViewHolder) holder).gildedImageView); ((DataViewHolder) holder).gildedNumberTextView.setVisibility(View.VISIBLE); String gildedNumber = mContext.getResources().getString(R.string.gilded_count, gilded); ((DataViewHolder) holder).gildedNumberTextView.setText(gildedNumber); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java index 061c94df..d54e83cb 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SharedPreferencesUtils.java @@ -10,4 +10,12 @@ public class SharedPreferencesUtils { public static final String LAZY_MODE_INTERVAL_KEY = "lazy_mode_interval"; public static final String NSFW_KEY = "nsfw"; public static final String THEME_KEY = "theme"; + public static final String ICON_FOREGROUND_KEY = "icon_foreground"; + public static final String ICON_BACKGROUND_KEY = "icon_background"; + public static final String ERROR_IMAGE_KEY = "error_image"; + public static final String SUBREDDIT_AND_USER_PLACEHOLDER_KEY = "subreddit_and_user_profile_placeholder"; + public static final String GILDED_ICON_KEY = "gilded_icon"; + public static final String CROSSPOST_ICON_KEY = "crosspost_icon"; + public static final String THUMBTACK_ICON_KEY = "thumbtack_icon"; + public static final String MATERIAL_ICONS_KEY = "material_icons"; } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java index dce606c6..61bd8fdd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubredditListingFragment.java @@ -162,7 +162,7 @@ public class SubredditListingFragment extends Fragment implements FragmentCommun if(getActivity() != null && isAdded()) { mFetchSubredditListingInfoLinearLayout.setVisibility(View.VISIBLE); mFetchSubredditListingInfoTextView.setText(stringResId); - Glide.with(this).load(R.drawable.load_post_error_indicator).into(mFetchSubredditListingInfoImageView); + Glide.with(this).load(R.drawable.error_image).into(mFetchSubredditListingInfoImageView); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java index 6006da7f..150cd509 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/SubscribedSubredditsListingFragment.java @@ -100,7 +100,7 @@ public class SubscribedSubredditsListingFragment extends Fragment { if (subscribedSubredditData == null || subscribedSubredditData.size() == 0) { mRecyclerView.setVisibility(View.GONE); mLinearLayout.setVisibility(View.VISIBLE); - mGlide.load(R.drawable.load_post_error_indicator).into(mImageView); + mGlide.load(R.drawable.error_image).into(mImageView); } else { mLinearLayout.setVisibility(View.GONE); mRecyclerView.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java index 495890e5..c3471b9a 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/UserListingFragment.java @@ -141,7 +141,7 @@ public class UserListingFragment extends Fragment implements FragmentCommunicato if(getActivity() != null && isAdded()) { mFetchUserListingInfoLinearLayout.setVisibility(View.VISIBLE); mFetchUserListingInfoTextView.setText(stringResId); - Glide.with(this).load(R.drawable.load_post_error_indicator).into(mFetchUserListingInfoImageView); + Glide.with(this).load(R.drawable.error_image).into(mFetchUserListingInfoImageView); } } diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewMessageActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewMessageActivity.java index 629440f1..5d052cbd 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewMessageActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewMessageActivity.java @@ -258,7 +258,7 @@ public class ViewMessageActivity extends AppCompatActivity { mProgressBar.setVisibility(View.GONE); mFetchMessageInfoLinearLayout.setVisibility(View.VISIBLE); mFetchMessageInfoTextView.setText(stringResId); - mGlide.load(R.drawable.load_post_error_indicator).into(mFetchMessageInfoImageView); + mGlide.load(R.drawable.error_image).into(mFetchMessageInfoImageView); } @Override diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java index 8bdff436..bdff4479 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ViewPostDetailActivity.java @@ -655,7 +655,7 @@ public class ViewPostDetailActivity extends AppCompatActivity implements FlairBo mFetchPostInfoLinearLayout.setVisibility(View.VISIBLE); mFetchPostInfoLinearLayout.setOnClickListener(view -> fetchPostAndCommentsById(subredditId)); mFetchPostInfoTextView.setText(R.string.load_posts_error); - mGlide.load(R.drawable.load_post_error_indicator).into(mFetchPostInfoImageView); + mGlide.load(R.drawable.error_image).into(mFetchPostInfoImageView); } private void showMessage(int resId) { -- cgit v1.2.3