1
1
package com .mxt .anitrend .view .fragment .detail ;
2
2
3
+ import android .content .ClipData ;
4
+ import android .content .ClipboardManager ;
5
+ import android .content .Context ;
3
6
import android .content .Intent ;
4
7
import android .graphics .Color ;
5
8
import android .net .Uri ;
9
+ import android .os .Build ;
6
10
import android .os .Bundle ;
7
11
import android .view .LayoutInflater ;
8
12
import android .view .View ;
9
13
import android .view .ViewGroup ;
14
+ import android .widget .Toast ;
10
15
11
16
import androidx .annotation .NonNull ;
12
17
import androidx .annotation .Nullable ;
36
41
import com .mxt .anitrend .util .ChartUtil ;
37
42
import com .mxt .anitrend .util .CompatUtil ;
38
43
import com .mxt .anitrend .util .KeyUtil ;
44
+ import com .mxt .anitrend .util .NotifyUtil ;
39
45
import com .mxt .anitrend .util .graphql .GraphUtil ;
40
46
import com .mxt .anitrend .util .media .MediaBrowseUtil ;
41
47
import com .mxt .anitrend .util .media .MediaUtil ;
@@ -55,6 +61,7 @@ public class MediaStatsFragment extends FragmentBase<Media, MediaPresenter, Medi
55
61
56
62
private FragmentSeriesStatsBinding binding ;
57
63
private Media model ;
64
+ private ClipboardManager clipboardManager ;
58
65
59
66
private RankAdapter rankAdapter ;
60
67
private LinkAdapter linkAdapter ;
@@ -75,6 +82,7 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
75
82
mediaId = getArguments ().getLong (KeyUtil .arg_id );
76
83
mediaType = getArguments ().getString (KeyUtil .arg_mediaType );
77
84
}
85
+ clipboardManager = (ClipboardManager ) getContext ().getSystemService (Context .CLIPBOARD_SERVICE );
78
86
isMenuDisabled = true ; mColumnSize = R .integer .grid_list_x2 ;
79
87
setPresenter (new MediaPresenter (getContext ()));
80
88
setViewModel (true );
@@ -165,7 +173,11 @@ public void onItemClick(View target, IntPair<ExternalLink> data) {
165
173
166
174
@ Override
167
175
public void onItemLongClick (View target , IntPair <ExternalLink > data ) {
168
-
176
+ clipboardManager .setPrimaryClip (ClipData .newPlainText ("" , data .getSecond ().getUrl ()));
177
+ if (Build .VERSION .SDK_INT < Build .VERSION_CODES .TIRAMISU ) {
178
+ // Android 13 shows a clipboard editor overlay, thus we don't need a toast msg for it.
179
+ NotifyUtil .INSTANCE .makeText (getContext (), R .string .text_url_copied_to_clipboard , Toast .LENGTH_SHORT ).show ();
180
+ }
169
181
}
170
182
});
171
183
}
0 commit comments