Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Chrome Custom Tabs add Copy Link to options menu

How to add 'Copy link' option to Chrome Custom Tabs options menu in Android. Adding custom menu items in CustomTabs is like this.

CustomTabsIntent.Builder customTabsIntent = new CustomTabsIntent.Builder();

String menuItemTitle = App.s(R.string.share);
PendingIntent menuItemPendingIntent = createPendingIntentShare(url);
customTabsIntent.addMenuItem(menuItemTitle, menuItemPendingIntent);

I want to add Copy Link option just like Twitter do in his app browser. I am not sure how I can copy link to Clipboard in CustomTabs.

enter image description here

like image 669
Rafael Avatar asked Feb 26 '16 10:02

Rafael


1 Answers

Create a BroadcastReceiver:

public class CustomTabsBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String url = intent.getDataString();

        Toast.makeText(context, "Copy link pressed. URL = " + url, Toast.LENGTH_SHORT).show();

        //Here you can copy the URL to the clipboard
    }
}

Register it in the AndroidManifest.xml:

<receiver
    android:name=".CustomTabsBroadcastReceiver"
    android:enabled="true">
</receiver>

Use this method to launch the Custom Tab:

private void launchCustomTab() {
    Intent intent = new Intent(this, CustomTabsBroadcastReceiver.class);

    String label = "Copy link";
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

    CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder()
            .addMenuItem(label, pendingIntent)
            .build();

    customTabsIntent.launchUrl(this, Uri.parse("http://www.google.it"));
}
like image 169
Mattia Maestrini Avatar answered Sep 20 '22 12:09

Mattia Maestrini