Files
packages_apps_Settings/src/com/android/settings/BluetoothListItem.java
The Android Open Source Project de2d9f5f10 Initial Contribution
2008-10-21 07:00:00 -07:00

73 lines
2.0 KiB
Java

package com.android.settings;
import android.content.Context;
import android.preference.Preference;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import java.util.Map;
/**
* This class extends Preference to display bluetooth status icons. One
* icon specifies the connection/pairing status that is right-aligned.
* An optional headset icon can be added to its left as well.
*/
public class BluetoothListItem extends Preference {
private boolean mIsHeadset;
private int mWeight;
public BluetoothListItem(Context context, AttributeSet attrs) {
super(context, attrs);
setWidgetLayoutResource(R.layout.preference_widget_btdevice_status);
}
private void updateIcons(View view) {
ImageView headsetView = (ImageView) view.findViewById(R.id.device_headset);
headsetView.setVisibility(mIsHeadset ? View.VISIBLE : View.GONE);
}
@Override
public void onBindView(View view) {
super.onBindView(view);
updateIcons(view);
}
/**
* Set whether the device is of headset type
* @param headset whether or not the headset icon should be shown
*/
public void setHeadset(boolean headset) {
mIsHeadset = headset;
notifyChanged();
}
/**
* Sets the weight for ordering by signal strength or importance
* @param weight the ordering weight
*/
public void setWeight(int weight) {
mWeight = weight;
}
/**
* Returns the currently set ordering weight
* @return the current ordering weight
*/
public int getWeight() {
return mWeight;
}
@Override
public int compareTo(Preference another) {
int diff = ((BluetoothListItem)another).mWeight - mWeight;
// Let the new one be after the old one, if they are the same weight
// TODO: Implement a more reliable way to consistently order items of
// the same weight
if (diff == 0) diff = 1;
return diff;
}
}