QuickContact: onLongClick save item data to clipboard
We should be able to copy phone numbers, email address
etc from the QuickCOntact Dialog itself. Going into
the Contact page to be able to copy that data is
cumbersome.
Change-Id: I3620f156ad0a5e387dc3819adb012f1c945d35e6
Signed-off-by: Arnav Gupta <championswimmer@aokp.co>
diff --git a/src/com/android/contacts/quickcontact/QuickContactListFragment.java b/src/com/android/contacts/quickcontact/QuickContactListFragment.java
index 6a0b27b..761c854 100644
--- a/src/com/android/contacts/quickcontact/QuickContactListFragment.java
+++ b/src/com/android/contacts/quickcontact/QuickContactListFragment.java
@@ -17,6 +17,9 @@
package com.android.contacts.quickcontact;
import android.app.Fragment;
+import android.content.ClipboardManager;
+import android.content.ClipData;
+import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -25,12 +28,14 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
+import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
+import android.widget.Toast;
import com.android.contacts.common.ContactPresenceIconUtil;
import com.android.contacts.R;
@@ -44,6 +49,8 @@
private RelativeLayout mFragmentContainer;
private Listener mListener;
private String mMimeType;
+ private ClipboardManager mClipBoard;
+ private Toast mLongPressToast;
public QuickContactListFragment(String mimeType) {
setRetainInstance(true);
@@ -58,6 +65,10 @@
mListView.setItemsCanFocus(true);
mFragmentContainer.setOnClickListener(mOutsideClickListener);
+ mClipBoard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
+ mLongPressToast = Toast.makeText(getActivity(),
+ R.string.toast_text_copied, Toast.LENGTH_SHORT);
+
configureAdapter();
return mFragmentContainer;
}
@@ -121,6 +132,7 @@
(ImageView) resultView.findViewById(R.id.presence_icon);
actionsContainer.setOnClickListener(mPrimaryActionClickListener);
+ actionsContainer.setOnLongClickListener(mPrimaryActionLongClickListener);
actionsContainer.setTag(action);
alternateActionButton.setOnClickListener(mSecondaryActionClickListener);
alternateActionButton.setTag(action);
@@ -176,6 +188,19 @@
}
};
+ /** A data item was long clicked */
+ protected final OnLongClickListener mPrimaryActionLongClickListener = new OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ final Action action = (Action) v.getTag();
+ ClipData clip = android.content.ClipData.newPlainText(
+ action.getSubtitle(), action.getBody());
+ mClipBoard.setPrimaryClip(clip);
+ mLongPressToast.show();
+ return true;
+ }
+ };
+
/** A secondary action (SMS) was clicked */
protected final OnClickListener mSecondaryActionClickListener = new OnClickListener() {
@Override