diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
index 1b44cede..c744f14f 100644
--- a/.idea/assetWizardSettings.xml
+++ b/.idea/assetWizardSettings.xml
@@ -159,8 +159,8 @@
diff --git a/app/src/main/java/Settings/AboutPreferenceFragment.java b/app/src/main/java/Settings/AboutPreferenceFragment.java
index 8d93bd6c..f2ba0518 100644
--- a/app/src/main/java/Settings/AboutPreferenceFragment.java
+++ b/app/src/main/java/Settings/AboutPreferenceFragment.java
@@ -27,6 +27,7 @@ public class AboutPreferenceFragment extends PreferenceFragmentCompat {
Preference reviewPreference = findPreference(SharedPreferencesUtils.RATE_KEY);
Preference emailPreference = findPreference(SharedPreferencesUtils.EMAIL_KEY);
Preference redditAccountPreference = findPreference(SharedPreferencesUtils.REDDIT_ACCOUNT_KEY);
+ Preference subredditPreference = findPreference(SharedPreferencesUtils.SUBREDDIT_KEY);
Activity activity = getActivity();
@@ -76,6 +77,15 @@ public class AboutPreferenceFragment extends PreferenceFragmentCompat {
return true;
});
}
+
+ if(subredditPreference != null) {
+ subredditPreference.setOnPreferenceClickListener(preference -> {
+ Intent intent = new Intent(activity, LinkResolverActivity.class);
+ intent.setData(Uri.parse("https://www.reddit.com/r/Infinity_For_Reddit"));
+ startActivity(intent);
+ return true;
+ });
+ }
}
}
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/AccountPostsActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/AccountPostsActivity.java
index d7ee9918..e2e0a5b8 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/AccountPostsActivity.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/AccountPostsActivity.java
@@ -139,8 +139,6 @@ public class AccountPostsActivity extends AppCompatActivity implements UserThing
toolbar.setTitle(R.string.upvoted);
} else if(mUserWhere.equals(PostDataSource.USER_WHERE_DOWNVOTED)) {
toolbar.setTitle(R.string.downvoted);
- } else if(mUserWhere.equals(PostDataSource.USER_WHERE_SAVED)) {
- toolbar.setTitle(R.string.saved);
} else if(mUserWhere.equals(PostDataSource.USER_WHERE_HIDDEN)) {
toolbar.setTitle(R.string.hidden);
} else if(mUserWhere.equals(PostDataSource.USER_WHERE_GILDED)){
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java
index b68628fb..b3c501c0 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentAndPostRecyclerViewAdapter.java
@@ -747,6 +747,50 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter {
+ if (comment.isSaved()) {
+ comment.setSaved(false);
+ SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, comment.getFullName(), new SaveThing.SaveThingListener() {
+ @Override
+ public void success() {
+ comment.setSaved(false);
+ ((CommentViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_border_24px);
+ Toast.makeText(mActivity, R.string.comment_unsaved_success, Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void failed() {
+ comment.setSaved(true);
+ ((CommentViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_24px);
+ Toast.makeText(mActivity, R.string.comment_unsaved_failed, Toast.LENGTH_SHORT).show();
+ }
+ });
+ } else {
+ comment.setSaved(true);
+ SaveThing.saveThing(mOauthRetrofit, mAccessToken, comment.getFullName(), new SaveThing.SaveThingListener() {
+ @Override
+ public void success() {
+ comment.setSaved(true);
+ ((CommentViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_24px);
+ Toast.makeText(mActivity, R.string.comment_saved_success, Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void failed() {
+ comment.setSaved(false);
+ ((CommentViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_border_24px);
+ Toast.makeText(mActivity, R.string.comment_saved_failed, Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ });
} else if(holder instanceof LoadMoreChildCommentsViewHolder) {
CommentData placeholder;
placeholder = mIsSingleCommentThreadMode ? mVisibleComments.get(holder.getAdapterPosition() - 2)
@@ -1314,6 +1358,7 @@ class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter children;
private ArrayList moreChildrenFullnames;
@@ -38,7 +39,7 @@ class CommentData implements Parcelable {
CommentData(String id, String fullName, String author, String linkAuthor, String commentTime, String commentContent,
String linkId, String subredditName, String parentId, int score, int voteType, boolean isSubmitter, String permalink,
- int depth, boolean collapsed, boolean hasReply, boolean scoreHidden) {
+ int depth, boolean collapsed, boolean hasReply, boolean scoreHidden, boolean saved) {
this.id = id;
this.fullName = fullName;
this.author = author;
@@ -56,6 +57,7 @@ class CommentData implements Parcelable {
this.collapsed = collapsed;
this.hasReply = hasReply;
this.scoreHidden = scoreHidden;
+ this.saved = saved;
this.isExpanded = false;
moreChildrenStartingIndex = 0;
isPlaceHolder = false;
@@ -192,6 +194,14 @@ class CommentData implements Parcelable {
return scoreHidden;
}
+ public boolean isSaved() {
+ return saved;
+ }
+
+ public void setSaved(boolean saved) {
+ this.saved = saved;
+ }
+
public boolean isExpanded() {
return isExpanded;
}
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java
index d148f026..0a2ec243 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/CommentsListingRecyclerViewAdapter.java
@@ -287,6 +287,50 @@ class CommentsListingRecyclerViewAdapter extends PagedListAdapter {
+ if (comment.isSaved()) {
+ comment.setSaved(false);
+ SaveThing.unsaveThing(mOauthRetrofit, mAccessToken, comment.getFullName(), new SaveThing.SaveThingListener() {
+ @Override
+ public void success() {
+ comment.setSaved(false);
+ ((DataViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_border_24px);
+ Toast.makeText(mContext, R.string.comment_unsaved_success, Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void failed() {
+ comment.setSaved(true);
+ ((DataViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_24px);
+ Toast.makeText(mContext, R.string.comment_unsaved_failed, Toast.LENGTH_SHORT).show();
+ }
+ });
+ } else {
+ comment.setSaved(true);
+ SaveThing.saveThing(mOauthRetrofit, mAccessToken, comment.getFullName(), new SaveThing.SaveThingListener() {
+ @Override
+ public void success() {
+ comment.setSaved(true);
+ ((DataViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_24px);
+ Toast.makeText(mContext, R.string.comment_saved_success, Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void failed() {
+ comment.setSaved(false);
+ ((DataViewHolder) holder).saveButton.setImageResource(R.drawable.ic_baseline_bookmark_border_24px);
+ Toast.makeText(mContext, R.string.comment_saved_failed, Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+ });
}
}
}
@@ -352,6 +396,7 @@ class CommentsListingRecyclerViewAdapter extends PagedListAdapter {
- Intent intent = new Intent(getActivity(), EditCommentActivity.class);
+ Intent intent = new Intent(activity, EditCommentActivity.class);
intent.putExtra(EditCommentActivity.EXTRA_ACCESS_TOKEN, accessToken);
intent.putExtra(EditCommentActivity.EXTRA_FULLNAME, fullName);
intent.putExtra(EditCommentActivity.EXTRA_CONTENT, content);
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java b/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java
index 7f48d8ea..e84b8e24 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/ParseComment.java
@@ -232,6 +232,7 @@ class ParseComment {
}
long submitTime = singleCommentData.getLong(JSONUtils.CREATED_UTC_KEY) * 1000;
boolean scoreHidden = singleCommentData.getBoolean(JSONUtils.SCORE_HIDDEN_KEY);
+ boolean saved = singleCommentData.getBoolean(JSONUtils.SAVED_KEY);
Calendar submitTimeCalendar = Calendar.getInstance();
submitTimeCalendar.setTimeInMillis(submitTime);
@@ -247,7 +248,7 @@ class ParseComment {
return new CommentData(id, fullName, author, linkAuthor, formattedSubmitTime, commentContent,
linkId, subredditName, parentId, score, voteType, isSubmitter, permalink, depth, collapsed,
- hasReply, scoreHidden);
+ hasReply, scoreHidden, saved);
}
@Nullable
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java b/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java
index e671bda5..15b5187b 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/PostRecyclerViewAdapter.java
@@ -360,7 +360,7 @@ class PostRecyclerViewAdapter extends PagedListAdapter
+
+
diff --git a/app/src/main/res/drawable/thumbtack.png b/app/src/main/res/drawable/thumbtack.png
deleted file mode 100644
index b537f614..00000000
Binary files a/app/src/main/res/drawable/thumbtack.png and /dev/null differ
diff --git a/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml b/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml
index a419912e..c637e910 100644
--- a/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml
+++ b/app/src/main/res/layout/fragment_modify_comment_bottom_sheet.xml
@@ -7,6 +7,20 @@
android:orientation="vertical"
tools:context=".ModifyCommentBottomSheetFragment">
+
+
-
+ android:textColor="@color/colorPrimaryDarkDayNightTheme"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toStartOf="@id/comment_time_text_view_item_post_comment"
+ app:layout_constraintHorizontal_bias="0" />
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent" />
-
+
+
+
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index f82fc670..196fc489 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -38,6 +38,8 @@
+ - 1s
+ - 2s
- 2.5s
- 3s
- 5s
@@ -46,6 +48,8 @@
+ - 1
+ - 2
- 2.5
- 3
- 5
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 51149699..094846ee 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -300,6 +300,8 @@
docilealligator.app@gmail.com
Reddit Account
u/Hostilenemy
+ Subreddit
+ r/Infinity_For_Reddit
Cannot get the link
@@ -318,4 +320,9 @@
Share
No Email client found
+
+ Comment saved
+ Unable to save comment
+ Comment unsaved
+ Unable to unsave comment
diff --git a/app/src/main/res/xml/about_preferences.xml b/app/src/main/res/xml/about_preferences.xml
index e27844fc..942a0cd4 100644
--- a/app/src/main/res/xml/about_preferences.xml
+++ b/app/src/main/res/xml/about_preferences.xml
@@ -30,4 +30,9 @@
app:title="@string/settings_reddit_account_title"
app:summary="@string/settings_reddit_account_summary" />
+
+
\ No newline at end of file