Longpress any row in Status to copy text to the clipboard.

Really convenient for grabbing IMEI/MAC/serial/etc.

Change-Id: I30dd6109d76f342108b10571cf043158b09743d0
diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java
index 6a15027..b5f7b82 100644
--- a/src/com/android/settings/deviceinfo/Status.java
+++ b/src/com/android/settings/deviceinfo/Status.java
@@ -18,6 +18,7 @@
 
 import android.bluetooth.BluetoothAdapter;
 import android.content.BroadcastReceiver;
+import android.content.ClipboardManager;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
@@ -42,6 +43,12 @@
 import android.telephony.ServiceState;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.Toast;
 
 import com.android.internal.telephony.Phone;
 import com.android.internal.telephony.PhoneConstants;
@@ -302,6 +309,27 @@
         } else {
             removePreferenceFromScreen(KEY_SERIAL_NUMBER);
         }
+
+        // Make every pref on this screen copy its data to the clipboard on longpress.
+        // Super convenient for capturing the IMEI, MAC addr, serial, etc.
+        getListView().setOnItemLongClickListener(
+            new AdapterView.OnItemLongClickListener() {
+                @Override
+                public boolean onItemLongClick(AdapterView<?> parent, View view,
+                        int position, long id) {
+                    ListAdapter listAdapter = (ListAdapter) parent.getAdapter();
+                    Preference pref = (Preference) listAdapter.getItem(position);
+
+                    ClipboardManager cm = (ClipboardManager)
+                            getSystemService(Context.CLIPBOARD_SERVICE);
+                    cm.setText(pref.getSummary());
+                    Toast.makeText(
+                        Status.this,
+                        com.android.internal.R.string.text_copied,
+                        Toast.LENGTH_SHORT).show();
+                    return true;
+                }
+            });
     }
 
     @Override