diff options
author | Amith Yamasani <yamasani@google.com> | 2010-10-26 13:44:33 -0700 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2010-10-27 16:23:05 -0700 |
commit | 48e90002839e662eb1667471aebeb0483e9fb7db (patch) | |
tree | ccb7200c9703f977e52cdc74538e9483ec33299a /src/com/android/settings/bluetooth/BluetoothDevicePreference.java | |
parent | 4a5f889f80b683446e498f244d0eadfd979ca5d0 (diff) | |
download | packages_apps_Settings-48e90002839e662eb1667471aebeb0483e9fb7db.zip packages_apps_Settings-48e90002839e662eb1667471aebeb0483e9fb7db.tar.gz packages_apps_Settings-48e90002839e662eb1667471aebeb0483e9fb7db.tar.bz2 |
Bluetooth settings revamp
Added a separate scanning screen.
UI changes to not require long-press options.
Needs TODOs to be filled by BT team.
Bug: 3038327
Diffstat (limited to 'src/com/android/settings/bluetooth/BluetoothDevicePreference.java')
-rw-r--r-- | src/com/android/settings/bluetooth/BluetoothDevicePreference.java | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java index f0b1705..1f9408d 100644 --- a/src/com/android/settings/bluetooth/BluetoothDevicePreference.java +++ b/src/com/android/settings/bluetooth/BluetoothDevicePreference.java @@ -19,16 +19,22 @@ package com.android.settings.bluetooth; import com.android.settings.R; import android.content.Context; +import android.graphics.drawable.Drawable; import android.preference.Preference; import android.util.TypedValue; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; +import android.view.View.OnClickListener; import android.widget.ImageView; +import android.widget.LinearLayout; /** * BluetoothDevicePreference is the preference type used to display each remote * Bluetooth device in the Bluetooth Settings screen. */ -public class BluetoothDevicePreference extends Preference implements CachedBluetoothDevice.Callback { +public class BluetoothDevicePreference extends Preference implements + CachedBluetoothDevice.Callback, OnClickListener { private static final String TAG = "BluetoothDevicePreference"; private static int sDimAlpha = Integer.MIN_VALUE; @@ -36,6 +42,9 @@ public class BluetoothDevicePreference extends Preference implements CachedBluet private CachedBluetoothDevice mCachedDevice; private int mAccessibleProfile; + private ImageView mDeviceSettings; + private OnClickListener mOnSettingsClickListener; + /** * Cached local copy of whether the device is busy. This is only updated * from {@link #onDeviceAttributesChanged(CachedBluetoothDevice)}. @@ -66,6 +75,10 @@ public class BluetoothDevicePreference extends Preference implements CachedBluet return mCachedDevice; } + public void setOnSettingsClickListener(OnClickListener listener) { + mOnSettingsClickListener = listener; + } + @Override protected void onPrepareForRemoval() { super.onPrepareForRemoval(); @@ -117,6 +130,34 @@ public class BluetoothDevicePreference extends Preference implements CachedBluet ImageView btClass = (ImageView) view.findViewById(R.id.btClass); btClass.setImageResource(mCachedDevice.getBtClassDrawable()); btClass.setAlpha(isEnabled() ? 255 : sDimAlpha); + + mDeviceSettings = (ImageView) view.findViewById(R.id.deviceDetails); + if (mOnSettingsClickListener != null) { + mDeviceSettings.setOnClickListener(this); + mDeviceSettings.setTag(mCachedDevice); + } else { // Hide the settings icon and divider + mDeviceSettings.setVisibility(View.GONE); + ImageView divider = (ImageView) view.findViewById(R.id.divider); + if (divider != null) { + divider.setVisibility(View.GONE); + } + } + + LayoutInflater inflater = (LayoutInflater) + getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); + ViewGroup profilesGroup = (ViewGroup) view.findViewById(R.id.profileIcons); + for (Drawable icon : mCachedDevice.getProfileIcons()) { + inflater.inflate(R.layout.profile_icon_small, profilesGroup, true); + ImageView imageView = + (ImageView) profilesGroup.getChildAt(profilesGroup.getChildCount() - 1); + imageView.setImageDrawable(icon); + } + } + + public void onClick(View v) { + if (v == mDeviceSettings) { + if (mOnSettingsClickListener != null) mOnSettingsClickListener.onClick(v); + } } @Override |