diff --git a/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java b/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
index e08f8a8b..2b10c904 100644
--- a/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
+++ b/app/src/main/java/io/lbry/browser/adapter/ClaimListAdapter.java
@@ -1,9 +1,12 @@
package io.lbry.browser.adapter;
import android.content.Context;
+import android.content.Intent;
import android.text.format.DateUtils;
import android.util.Log;
+import android.view.Gravity;
import android.view.LayoutInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -11,6 +14,7 @@
import android.widget.TextView;
import android.widget.Toast;
+import androidx.appcompat.widget.PopupMenu;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
@@ -23,6 +27,7 @@
import java.util.List;
import java.util.Map;
+import io.lbry.browser.MainActivity;
import io.lbry.browser.R;
import io.lbry.browser.exceptions.LbryUriException;
import io.lbry.browser.listener.SelectionModeListener;
@@ -374,19 +379,8 @@ public void onClick(View view) {
@Override
public boolean onLongClick(View view) {
- //THIS IS FOR SHARING THE VIDEO ON LONG PRESS
- Toast.makeText(context, "LONG CLICKED: " + original.getTitle(), Toast.LENGTH_SHORT).show(); //Don't need, but it's nice to see it on the UI
- Log.d(TAG, "LONG CLICKED: " + original.getTitle());
-
- try{
- String shareUrl = LbryUri.parse(
- !Helper.isNullOrEmpty(original.getCanonicalUrl()) ? original.getCanonicalUrl() :
- (!Helper.isNullOrEmpty(original.getShortUrl()) ? original.getShortUrl() : original.getPermanentUrl())).toTvString();
-
- Log.d(TAG, "LONG CLICKED, SHARE " + shareUrl);
-
- } catch (LbryUriException lbryUriException){
- lbryUriException.printStackTrace();
+ if (original != null) {
+ showClaimPopupMenu(view, original);
}
if (!canEnterSelectionMode) {
@@ -539,6 +533,79 @@ private void toggleSelectedClaim(Claim claim) {
notifyDataSetChanged();
}
+ public void showClaimPopupMenu(View view, Claim claim) {
+
+ Toast.makeText(context, "LONG CLICKED: " + claim.getTitle(), Toast.LENGTH_SHORT).show(); //Don't need, but it's nice to see it on the UI
+ Log.d(TAG, "LONG CLICKED: " + claim.getTitle());
+
+ //do I need to do a check if context is null?
+ PopupMenu popup = new PopupMenu(context, view);
+
+ popup.getMenuInflater().inflate(R.menu.menu_claim_popup, popup.getMenu());
+ popup.setGravity(Gravity.END);
+
+ popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ public boolean onMenuItemClick(MenuItem item) {
+ int i = item.getItemId();
+ if (i == R.id.menu_claim_popup_share) {
+ //share the claim
+ Log.d(TAG, "Let's share: " + claim.getTitle());
+ try{
+ String shareUrl = LbryUri.parse(
+ !Helper.isNullOrEmpty(claim.getCanonicalUrl()) ? claim.getCanonicalUrl() :
+ (!Helper.isNullOrEmpty(claim.getShortUrl()) ? claim.getShortUrl() : claim.getPermanentUrl())).toTvString();
+
+ Intent shareIntent = new Intent();
+ shareIntent.setAction(Intent.ACTION_SEND);
+ shareIntent.setType("text/plain");
+ shareIntent.putExtra(Intent.EXTRA_TEXT, shareUrl);
+
+ MainActivity.startingShareActivity = true;
+ Intent shareUrlIntent = Intent.createChooser(shareIntent, context.getString(R.string.share_lbry_content));
+ shareUrlIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+ context.startActivity(shareUrlIntent);
+ Log.d(TAG, "Sharing: " + shareUrl);
+
+ } catch (LbryUriException lbryUriException){
+ lbryUriException.printStackTrace();
+ }
+ return true;
+ }
+ else if (i == R.id.menu_claim_popup_support){
+ //support the claim
+ Log.d(TAG, "Let's support: " + claim.getTitle());
+
+ return true;
+ }
+ else if (i == R.id.menu_claim_popup_repost) {
+ //repost the claim
+ Log.d(TAG, "Let's repost: " + claim.getTitle());
+
+ return true;
+ }
+ else if (i == R.id.menu_claim_popup_download) {
+ //download the claim
+ Log.d(TAG, "Let's download: " + claim.getTitle());
+
+ return true;
+ }
+ else if (i == R.id.menu_claim_popup_report) {
+ //report the claim
+ Log.d(TAG, "Let's report: " + claim.getTitle());
+
+ return true;
+ }
+ else {
+ return onMenuItemClick(item);
+ }
+ }
+ });
+
+ popup.show();
+
+ }
+
public interface ClaimListItemListener {
void onClaimClicked(Claim claim);
}
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 7c5e55a2..89067826 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -9,6 +9,7 @@
- true
- @color/colorPrimaryDark
- @style/AppTheme.DrawerArrowStyle
+ - @style/ClaimPopupMenu
@@ -32,4 +33,9 @@
- @color/actionBarForeground
+
+