mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 23:05:42 +00:00
Bug 1348716 - Long click to copy URL in custom tabs r=sebastian
If user long click text area of ActionBar(URL or Title), then copy current URL to clipboard. MozReview-Commit-ID: EdVoMiX0Gt3 --HG-- extra : rebase_source : eecd78325162bb5c0a41436b90d0e10f5669030c
This commit is contained in:
parent
5f07e5577d
commit
351526c469
@ -124,6 +124,15 @@ public class ActionBarPresenter {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To assign a long-click-listener to text area of ActionBar
|
||||
* @param listener then callback to trigger
|
||||
*/
|
||||
public void setTextLongClickListener(View.OnLongClickListener listener) {
|
||||
mTitleView.setOnLongClickListener(listener);
|
||||
mUrlView.setOnLongClickListener(listener);
|
||||
}
|
||||
|
||||
/**
|
||||
* To get primary color of Title of ActionBar
|
||||
*
|
||||
|
@ -19,6 +19,7 @@ import android.support.annotation.ColorInt;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.StyleRes;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.graphics.drawable.DrawableCompat;
|
||||
import android.support.v4.util.SparseArrayCompat;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
@ -36,12 +37,14 @@ import android.widget.ProgressBar;
|
||||
|
||||
import org.mozilla.gecko.GeckoApp;
|
||||
import org.mozilla.gecko.R;
|
||||
import org.mozilla.gecko.SnackbarBuilder;
|
||||
import org.mozilla.gecko.Tab;
|
||||
import org.mozilla.gecko.Tabs;
|
||||
import org.mozilla.gecko.menu.GeckoMenu;
|
||||
import org.mozilla.gecko.menu.GeckoMenuInflater;
|
||||
import org.mozilla.gecko.Telemetry;
|
||||
import org.mozilla.gecko.TelemetryContract;
|
||||
import org.mozilla.gecko.menu.GeckoMenu;
|
||||
import org.mozilla.gecko.menu.GeckoMenuInflater;
|
||||
import org.mozilla.gecko.util.Clipboard;
|
||||
import org.mozilla.gecko.util.ColorUtil;
|
||||
import org.mozilla.gecko.widget.GeckoPopupMenu;
|
||||
|
||||
@ -91,6 +94,7 @@ public class CustomTabsActivity extends GeckoApp implements Tabs.OnTabsChangedLi
|
||||
actionBarPresenter = new ActionBarPresenter(actionBar);
|
||||
actionBarPresenter.displayUrlOnly(getIntent().getDataString());
|
||||
actionBarPresenter.setBackgroundColor(toolbarColor, getWindow());
|
||||
actionBarPresenter.setTextLongClickListener(new UrlCopyListener());
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
Tabs.registerOnTabsChangedListener(this);
|
||||
@ -452,4 +456,22 @@ public class CustomTabsActivity extends GeckoApp implements Tabs.OnTabsChangedLi
|
||||
startActivity(chooserIntent);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Listener when user long-click ActionBar to copy URL.
|
||||
*/
|
||||
private class UrlCopyListener implements View.OnLongClickListener {
|
||||
@Override
|
||||
public boolean onLongClick(View v) {
|
||||
final String url = Tabs.getInstance().getSelectedTab().getURL();
|
||||
if (!TextUtils.isEmpty(url)) {
|
||||
Clipboard.setText(url);
|
||||
SnackbarBuilder.builder(CustomTabsActivity.this)
|
||||
.message(R.string.custom_tabs_hint_url_copy)
|
||||
.duration(Snackbar.LENGTH_SHORT)
|
||||
.buildAndShow();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -286,6 +286,8 @@
|
||||
default browser from user's preference, such as "Open in Firefox" -->
|
||||
<!ENTITY custom_tabs_menu_item_open_in "Open in &formatS;">
|
||||
<!ENTITY custom_tabs_menu_footer "Powered by &brandShortName;">
|
||||
<!-- Long-click title of CustomTabsActivity will copy URL to clipboard and display this hint -->
|
||||
<!ENTITY custom_tabs_hint_url_copy "URL copied">
|
||||
|
||||
<!-- Localization note (pref_activity_stream): Experimental feature, see https://testpilot.firefox.com/experiments/activity-stream -->
|
||||
<!ENTITY pref_activity_stream "Activity Stream">
|
||||
|
@ -241,6 +241,7 @@
|
||||
<string name="pref_custom_tabs_summary">&pref_custom_tabs_summary3;</string>
|
||||
<string name="custom_tabs_menu_item_open_in">&custom_tabs_menu_item_open_in;</string>
|
||||
<string name="custom_tabs_menu_footer">&custom_tabs_menu_footer;</string>
|
||||
<string name="custom_tabs_hint_url_copy">&custom_tabs_hint_url_copy;</string>
|
||||
|
||||
<string name="pref_activity_stream">&pref_activity_stream;</string>
|
||||
<string name="pref_activity_stream_summary">&pref_activity_stream_summary;</string>
|
||||
|
Loading…
Reference in New Issue
Block a user