Merge "Show only 1 entry for hearing aid devices without killing the activity." into pi-dev
This commit is contained in:
@@ -22,11 +22,14 @@ import android.support.v14.preference.PreferenceFragment;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.applications.LayoutPreference;
|
||||
import com.android.settings.widget.EntityHeaderController;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
|
||||
import com.android.settingslib.bluetooth.LocalBluetoothManager;
|
||||
|
||||
/**
|
||||
* This class adds a header with device name and status (connected/disconnected, etc.).
|
||||
@@ -35,10 +38,15 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController
|
||||
private static final String KEY_DEVICE_HEADER = "bluetooth_device_header";
|
||||
|
||||
private EntityHeaderController mHeaderController;
|
||||
private LocalBluetoothManager mLocalManager;
|
||||
private CachedBluetoothDeviceManager mDeviceManager;
|
||||
|
||||
public BluetoothDetailsHeaderController(Context context, PreferenceFragment fragment,
|
||||
CachedBluetoothDevice device, Lifecycle lifecycle) {
|
||||
CachedBluetoothDevice device, Lifecycle lifecycle,
|
||||
LocalBluetoothManager bluetoothManager) {
|
||||
super(context, fragment, device, lifecycle);
|
||||
mLocalManager = bluetoothManager;
|
||||
mDeviceManager = mLocalManager.getCachedDeviceManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -55,6 +63,12 @@ public class BluetoothDetailsHeaderController extends BluetoothDetailsController
|
||||
.getBtClassDrawableWithDescription(mContext, mCachedDevice,
|
||||
mContext.getResources().getFraction(R.fraction.bt_battery_scale_fraction, 1, 1));
|
||||
String summaryText = mCachedDevice.getConnectionSummary();
|
||||
// If both the hearing aids are connected, two battery status should be shown.
|
||||
final String pairDeviceSummary = mDeviceManager
|
||||
.getHearingAidPairDeviceSummary(mCachedDevice);
|
||||
if (pairDeviceSummary != null) {
|
||||
mHeaderController.setSecondSummary(pairDeviceSummary);
|
||||
}
|
||||
mHeaderController.setLabel(mCachedDevice.getName());
|
||||
mHeaderController.setIcon(pair.first);
|
||||
mHeaderController.setIconContentDescription(pair.second);
|
||||
|
@@ -142,7 +142,7 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
|
||||
if (mCachedDevice != null) {
|
||||
Lifecycle lifecycle = getLifecycle();
|
||||
controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice,
|
||||
lifecycle));
|
||||
lifecycle, mManager));
|
||||
controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice,
|
||||
lifecycle));
|
||||
controllers.add(new BluetoothDetailsProfilesController(context, this, mManager,
|
||||
|
@@ -152,7 +152,12 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {}
|
||||
public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
|
||||
// Used to combine the hearing aid entries just after pairing. Once both the hearing aids
|
||||
// get connected and their hiSyncId gets populated, this gets called for one of the
|
||||
// 2 hearing aids so that only one entry in the connected devices list will be seen.
|
||||
removePreference(cachedDevice);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
|
||||
|
@@ -85,6 +85,8 @@ public class EntityHeaderController {
|
||||
private String mIconContentDescription;
|
||||
private CharSequence mLabel;
|
||||
private CharSequence mSummary;
|
||||
// Required for hearing aid devices.
|
||||
private CharSequence mSecondSummary;
|
||||
private String mPackageName;
|
||||
private Intent mAppNotifPrefIntent;
|
||||
@UserIdInt
|
||||
@@ -181,6 +183,18 @@ public class EntityHeaderController {
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityHeaderController setSecondSummary(CharSequence summary) {
|
||||
mSecondSummary = summary;
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityHeaderController setSecondSummary(PackageInfo packageInfo) {
|
||||
if (packageInfo != null) {
|
||||
mSummary = packageInfo.versionName;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public EntityHeaderController setHasAppInfoLink(boolean hasAppInfoLink) {
|
||||
mHasAppInfoLink = hasAppInfoLink;
|
||||
return this;
|
||||
@@ -242,6 +256,7 @@ public class EntityHeaderController {
|
||||
}
|
||||
setText(R.id.entity_header_title, mLabel);
|
||||
setText(R.id.entity_header_summary, mSummary);
|
||||
setText(R.id.entity_header_second_summary, mSecondSummary);
|
||||
if (mIsInstantApp) {
|
||||
setText(R.id.install_type,
|
||||
mHeader.getResources().getString(R.string.install_type_instant));
|
||||
|
Reference in New Issue
Block a user