Skip to content

Commit

Permalink
Ability to go to the origin of a crosspost
Browse files Browse the repository at this point in the history
  • Loading branch information
folkemat committed Jan 13, 2024
1 parent 7acc3a5 commit 0023b6f
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,12 @@

package org.quantumbadger.redreader.reddit.api

import android.content.*
import android.content.ActivityNotFoundException
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.DialogInterface
import android.content.Intent
import android.graphics.Color
import android.view.LayoutInflater
import android.widget.ImageButton
Expand All @@ -28,10 +33,22 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.apache.commons.text.StringEscapeUtils
import org.quantumbadger.redreader.R
import org.quantumbadger.redreader.account.RedditAccountManager
import org.quantumbadger.redreader.activities.*
import org.quantumbadger.redreader.activities.BaseActivity
import org.quantumbadger.redreader.activities.BugReportActivity
import org.quantumbadger.redreader.activities.CommentEditActivity
import org.quantumbadger.redreader.activities.CommentReplyActivity
import org.quantumbadger.redreader.activities.MainActivity
import org.quantumbadger.redreader.activities.PostListingActivity
import org.quantumbadger.redreader.activities.WebViewActivity
import org.quantumbadger.redreader.cache.CacheManager
import org.quantumbadger.redreader.common.*
import org.quantumbadger.redreader.common.AndroidCommon
import org.quantumbadger.redreader.common.Constants
import org.quantumbadger.redreader.common.FileUtils
import org.quantumbadger.redreader.common.General
import org.quantumbadger.redreader.common.LinkHandler
import org.quantumbadger.redreader.common.PrefsUtility
import org.quantumbadger.redreader.common.PrefsUtility.PostFlingAction
import org.quantumbadger.redreader.common.RRError
import org.quantumbadger.redreader.common.time.TimestampUTC
import org.quantumbadger.redreader.fragments.PostPropertiesDialog
import org.quantumbadger.redreader.reddit.APIResponseHandler.ActionResponseHandler
Expand All @@ -42,13 +59,15 @@ import org.quantumbadger.redreader.reddit.prepared.RedditChangeDataManager
import org.quantumbadger.redreader.reddit.prepared.RedditPreparedPost
import org.quantumbadger.redreader.reddit.things.InvalidSubredditNameException
import org.quantumbadger.redreader.reddit.things.SubredditCanonicalId
import org.quantumbadger.redreader.reddit.url.PostCommentListingURL
import org.quantumbadger.redreader.reddit.url.SubredditPostListURL
import org.quantumbadger.redreader.reddit.url.UserProfileURL
import org.quantumbadger.redreader.views.AccessibilityActionManager
import org.quantumbadger.redreader.views.RedditPostView.PostSelectionListener
import org.quantumbadger.redreader.views.bezelmenu.SideToolbarOverlay
import org.quantumbadger.redreader.views.bezelmenu.VerticalToolbar


object RedditPostActions {

enum class Action(@StringRes val descriptionResId: Int) {
Expand Down Expand Up @@ -85,7 +104,9 @@ object RedditPostActions {
PIN(R.string.action_pin_subreddit),
UNPIN(R.string.action_unpin_subreddit),
SUBSCRIBE(R.string.action_subscribe_subreddit),
UNSUBSCRIBE(R.string.action_unsubscribe_subreddit)
UNSUBSCRIBE(R.string.action_unsubscribe_subreddit),
CROSSPOST_ORIGIN(R.string.action_crosspost_origin)

}

data class ActionDescriptionPair(
Expand Down Expand Up @@ -346,6 +367,11 @@ object RedditPostActions {
.setNegativeButton(R.string.dialog_cancel, null)
.show()

Action.CROSSPOST_ORIGIN -> {
val crosspostOriginPost = PostCommentListingURL.forPostId(post.src.isCrosspost)
LinkHandler.onLinkClicked(activity, crosspostOriginPost.toString())
}

Action.EXTERNAL -> {
try {
val url = if (activity is WebViewActivity) activity.currentUrl else post.src.url
Expand Down Expand Up @@ -669,6 +695,18 @@ object RedditPostActions {
)
)
}
if (post.src.isCrosspost != null) {
if (itemPref.contains(Action.CROSSPOST_ORIGIN)) {
menu.add(
RPVMenuItem(
String.format(
activity.getText(R.string.action_crosspost_origin).toString(),
),
Action.CROSSPOST_ORIGIN
)
)
}
}
if (!RedditAccountManager.getInstance(activity).defaultAccount.isAnonymous) {
if (itemPref.contains(Action.SAVE)) {
if (!post.isSaved) {
Expand Down
3 changes: 3 additions & 0 deletions src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,7 @@
<item>@string/action_upvote</item>
<item>@string/action_downvote</item>
<item>@string/action_comments</item>
<item>@string/action_crosspost_origin</item>
<item>@string/action_save</item>
<item>@string/action_hide</item>
<item>@string/action_delete</item>
Expand Down Expand Up @@ -466,6 +467,7 @@
<item>upvote</item>
<item>downvote</item>
<item>comments</item>
<item>crosspost_origin</item>
<item>save</item>
<item>hide</item>
<item>delete</item>
Expand Down Expand Up @@ -1127,6 +1129,7 @@
<item>user_profile</item>
<item>properties</item>
<item>edit</item>
<item>crosspost_origin</item>
</string-array>

<!-- 2020-10-31 -->
Expand Down
1 change: 1 addition & 0 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1833,4 +1833,5 @@
<string name="crosspost">Crosspost</string>
<string name="pref_appearance_post_subtitle_items_crosspost">Crosspost tag</string>
<string name="accessibility_subtitle_crosspost">Crosspost.</string>
<string name="action_crosspost_origin">Go to Crosspost Origin</string>
</resources>

0 comments on commit 0023b6f

Please sign in to comment.