From b7715323308674cfd0902615124192442159449e Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Wed, 2 Oct 2013 00:16:19 -0400 Subject: [PATCH] Longpress any row in Status to copy text to the clipboard. Really convenient for grabbing IMEI/MAC/serial/etc. Change-Id: I30dd6109d76f342108b10571cf043158b09743d0 --- .../android/settings/deviceinfo/Status.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/com/android/settings/deviceinfo/Status.java b/src/com/android/settings/deviceinfo/Status.java index 6a15027e117..b5f7b828253 100644 --- a/src/com/android/settings/deviceinfo/Status.java +++ b/src/com/android/settings/deviceinfo/Status.java @@ -18,6 +18,7 @@ package com.android.settings.deviceinfo; 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.PhoneStateListener; 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 @@ public class Status extends PreferenceActivity { } 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