17
17
18
18
package org.quantumbadger.redreader.reddit.api
19
19
20
- import android.content.*
20
+ import android.content.ActivityNotFoundException
21
+ import android.content.ClipData
22
+ import android.content.ClipboardManager
23
+ import android.content.Context
24
+ import android.content.DialogInterface
25
+ import android.content.Intent
21
26
import android.graphics.Color
22
27
import android.view.LayoutInflater
23
28
import android.widget.ImageButton
@@ -28,10 +33,22 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
28
33
import org.apache.commons.text.StringEscapeUtils
29
34
import org.quantumbadger.redreader.R
30
35
import org.quantumbadger.redreader.account.RedditAccountManager
31
- import org.quantumbadger.redreader.activities.*
36
+ import org.quantumbadger.redreader.activities.BaseActivity
37
+ import org.quantumbadger.redreader.activities.BugReportActivity
38
+ import org.quantumbadger.redreader.activities.CommentEditActivity
39
+ import org.quantumbadger.redreader.activities.CommentReplyActivity
40
+ import org.quantumbadger.redreader.activities.MainActivity
41
+ import org.quantumbadger.redreader.activities.PostListingActivity
42
+ import org.quantumbadger.redreader.activities.WebViewActivity
32
43
import org.quantumbadger.redreader.cache.CacheManager
33
- import org.quantumbadger.redreader.common.*
44
+ import org.quantumbadger.redreader.common.AndroidCommon
45
+ import org.quantumbadger.redreader.common.Constants
46
+ import org.quantumbadger.redreader.common.FileUtils
47
+ import org.quantumbadger.redreader.common.General
48
+ import org.quantumbadger.redreader.common.LinkHandler
49
+ import org.quantumbadger.redreader.common.PrefsUtility
34
50
import org.quantumbadger.redreader.common.PrefsUtility.PostFlingAction
51
+ import org.quantumbadger.redreader.common.RRError
35
52
import org.quantumbadger.redreader.common.time.TimestampUTC
36
53
import org.quantumbadger.redreader.fragments.PostPropertiesDialog
37
54
import org.quantumbadger.redreader.reddit.APIResponseHandler.ActionResponseHandler
@@ -42,13 +59,15 @@ import org.quantumbadger.redreader.reddit.prepared.RedditChangeDataManager
42
59
import org.quantumbadger.redreader.reddit.prepared.RedditPreparedPost
43
60
import org.quantumbadger.redreader.reddit.things.InvalidSubredditNameException
44
61
import org.quantumbadger.redreader.reddit.things.SubredditCanonicalId
62
+ import org.quantumbadger.redreader.reddit.url.PostCommentListingURL
45
63
import org.quantumbadger.redreader.reddit.url.SubredditPostListURL
46
64
import org.quantumbadger.redreader.reddit.url.UserProfileURL
47
65
import org.quantumbadger.redreader.views.AccessibilityActionManager
48
66
import org.quantumbadger.redreader.views.RedditPostView.PostSelectionListener
49
67
import org.quantumbadger.redreader.views.bezelmenu.SideToolbarOverlay
50
68
import org.quantumbadger.redreader.views.bezelmenu.VerticalToolbar
51
69
70
+
52
71
object RedditPostActions {
53
72
54
73
enum class Action (@StringRes val descriptionResId : Int ) {
@@ -85,7 +104,9 @@ object RedditPostActions {
85
104
PIN (R .string.action_pin_subreddit),
86
105
UNPIN (R .string.action_unpin_subreddit),
87
106
SUBSCRIBE (R .string.action_subscribe_subreddit),
88
- UNSUBSCRIBE (R .string.action_unsubscribe_subreddit)
107
+ UNSUBSCRIBE (R .string.action_unsubscribe_subreddit),
108
+ CROSSPOST_ORIGIN (R .string.action_crosspost_origin)
109
+
89
110
}
90
111
91
112
data class ActionDescriptionPair (
@@ -346,6 +367,11 @@ object RedditPostActions {
346
367
.setNegativeButton(R .string.dialog_cancel, null )
347
368
.show()
348
369
370
+ Action .CROSSPOST_ORIGIN -> {
371
+ val crosspostOriginPost = PostCommentListingURL .forPostId(post.src.isCrosspost)
372
+ LinkHandler .onLinkClicked(activity, crosspostOriginPost.toString())
373
+ }
374
+
349
375
Action .EXTERNAL -> {
350
376
try {
351
377
val url = if (activity is WebViewActivity ) activity.currentUrl else post.src.url
@@ -669,6 +695,18 @@ object RedditPostActions {
669
695
)
670
696
)
671
697
}
698
+ if (post.src.isCrosspost != null ) {
699
+ if (itemPref.contains(Action .CROSSPOST_ORIGIN )) {
700
+ menu.add(
701
+ RPVMenuItem (
702
+ String .format(
703
+ activity.getText(R .string.action_crosspost_origin).toString(),
704
+ ),
705
+ Action .CROSSPOST_ORIGIN
706
+ )
707
+ )
708
+ }
709
+ }
672
710
if (! RedditAccountManager .getInstance(activity).defaultAccount.isAnonymous) {
673
711
if (itemPref.contains(Action .SAVE )) {
674
712
if (! post.isSaved) {
0 commit comments