Add connect / disconnect action when connect / disconnect to bluetooth device

Bug: 215299757
Test: build pass
Change-Id: Ib6fd592f63d4035674dc60cd54f16ffd5550ecff
This commit is contained in:
Hugh Chen
2022-01-19 08:09:35 +00:00
parent 1002473fc2
commit 8849628106
3 changed files with 18 additions and 2 deletions

View File

@@ -16,6 +16,7 @@
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceFragmentCompat;
@@ -70,7 +71,11 @@ public class BluetoothDetailsButtonsController extends BluetoothDetailsControlle
mActionButtons mActionButtons
.setButton2Text(R.string.bluetooth_device_context_disconnect) .setButton2Text(R.string.bluetooth_device_context_disconnect)
.setButton2Icon(R.drawable.ic_settings_close) .setButton2Icon(R.drawable.ic_settings_close)
.setButton2OnClickListener(view -> mCachedDevice.disconnect()); .setButton2OnClickListener(view -> {
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_SETTINGS_BLUETOOTH_DISCONNECT);
mCachedDevice.disconnect();
});
mConnectButtonInitialized = true; mConnectButtonInitialized = true;
} }
} else { } else {
@@ -79,7 +84,11 @@ public class BluetoothDetailsButtonsController extends BluetoothDetailsControlle
.setButton2Text(R.string.bluetooth_device_context_connect) .setButton2Text(R.string.bluetooth_device_context_connect)
.setButton2Icon(R.drawable.ic_add_24dp) .setButton2Icon(R.drawable.ic_add_24dp)
.setButton2OnClickListener( .setButton2OnClickListener(
view -> mCachedDevice.connect()); view -> {
mMetricsFeatureProvider.action(mContext,
SettingsEnums.ACTION_SETTINGS_BLUETOOTH_CONNECT);
mCachedDevice.connect();
});
mConnectButtonInitialized = true; mConnectButtonInitialized = true;
} }
} }

View File

@@ -22,8 +22,10 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -40,6 +42,7 @@ public abstract class BluetoothDetailsController extends AbstractPreferenceContr
protected final Context mContext; protected final Context mContext;
protected final PreferenceFragmentCompat mFragment; protected final PreferenceFragmentCompat mFragment;
protected final CachedBluetoothDevice mCachedDevice; protected final CachedBluetoothDevice mCachedDevice;
protected final MetricsFeatureProvider mMetricsFeatureProvider;
public BluetoothDetailsController(Context context, PreferenceFragmentCompat fragment, public BluetoothDetailsController(Context context, PreferenceFragmentCompat fragment,
CachedBluetoothDevice device, Lifecycle lifecycle) { CachedBluetoothDevice device, Lifecycle lifecycle) {
@@ -48,6 +51,7 @@ public abstract class BluetoothDetailsController extends AbstractPreferenceContr
mFragment = fragment; mFragment = fragment;
mCachedDevice = device; mCachedDevice = device;
lifecycle.addObserver(this); lifecycle.addObserver(this);
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
} }
@Override @Override

View File

@@ -15,6 +15,7 @@
*/ */
package com.android.settings.bluetooth; package com.android.settings.bluetooth;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothDevice;
import android.content.Context; import android.content.Context;
@@ -116,6 +117,8 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
if (device.isConnected()) { if (device.isConnected()) {
return device.setActive(); return device.setActive();
} }
mMetricsFeatureProvider.action(mPrefContext,
SettingsEnums.ACTION_SETTINGS_BLUETOOTH_CONNECT);
device.connect(); device.connect();
return true; return true;
} }