OSDN Git Service

Click left side of list in "previously connected devices" should connect to the device
authortimhypeng <timhypeng@google.com>
Tue, 24 Apr 2018 13:45:23 +0000 (21:45 +0800)
committerhughchen <hughchen@google.com>
Mon, 14 May 2018 03:26:43 +0000 (11:26 +0800)
* For fix the TreeHugger error in pi-dev, cherry pick the ag/3943978 in
  master and fix TreeHugger error. Change android.support.v7.* to androidx.*
* In "previously connected devices", to connect device
* In "Available media devices", to activate device

Bug: 77607104
Test: make -j50 RunSettingsRoboTests
Change-Id: If5005031bd3f5dc4950abf2c77575785cd6f67b1

src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdater.java
src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java

index 856410e..9a287f1 100644 (file)
@@ -18,8 +18,9 @@ package com.android.settings.bluetooth;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.media.AudioManager;
-import androidx.annotation.VisibleForTesting;
 import android.util.Log;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
@@ -29,7 +30,8 @@ import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 /**
  * Controller to maintain available media Bluetooth devices
  */
-public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
+public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
+        implements Preference.OnPreferenceClickListener {
 
     private static final String TAG = "AvailableMediaBluetoothDeviceUpdater";
     private static final boolean DBG = false;
@@ -116,5 +118,12 @@ public class AvailableMediaBluetoothDeviceUpdater extends BluetoothDeviceUpdater
         }
         return isFilterMatched;
     }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
+                .getBluetoothDevice();
+        return device.setActive();
+    }
 }
 
index 4dc6a24..f7fadf2 100644 (file)
@@ -59,24 +59,12 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
     protected DashboardFragment mFragment;
 
     private final boolean mShowDeviceWithoutNames;
-    private Preference.OnPreferenceClickListener mDevicePreferenceClickListener = null;
 
     @VisibleForTesting
     final GearPreference.OnGearClickListener mDeviceProfilesListener = pref -> {
         launchDeviceDetails(pref);
     };
 
-    private class PreferenceClickListener implements
-        Preference.OnPreferenceClickListener {
-        @Override
-        public boolean onPreferenceClick(Preference preference) {
-            final CachedBluetoothDevice device =
-                ((BluetoothDevicePreference) preference).getBluetoothDevice();
-            Log.i(TAG, "OnPreferenceClickListener: device=" + device);
-            return device.setActive();
-        }
-    }
-
     public BluetoothDeviceUpdater(Context context, DashboardFragment fragment,
             DevicePreferenceCallback devicePreferenceCallback) {
         this(fragment, devicePreferenceCallback, Utils.getLocalBtManager(context));
@@ -91,7 +79,6 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
                 BLUETOOTH_SHOW_DEVICES_WITHOUT_NAMES_PROPERTY, false);
         mPreferenceMap = new HashMap<>();
         mLocalManager = localManager;
-        mDevicePreferenceClickListener = new PreferenceClickListener();
     }
 
     /**
@@ -212,7 +199,10 @@ public abstract class BluetoothDeviceUpdater implements BluetoothCallback,
                     new BluetoothDevicePreference(mPrefContext, cachedDevice,
                             mShowDeviceWithoutNames);
             btPreference.setOnGearClickListener(mDeviceProfilesListener);
-            btPreference.setOnPreferenceClickListener(mDevicePreferenceClickListener);
+            if (this instanceof Preference.OnPreferenceClickListener) {
+                btPreference.setOnPreferenceClickListener(
+                        (Preference.OnPreferenceClickListener)this);
+            }
             mPreferenceMap.put(device, btPreference);
             mDevicePreferenceCallback.onDeviceAdded(btPreference);
         }
index 1cefea1..b5cdaa6 100644 (file)
@@ -19,16 +19,20 @@ import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import android.util.Log;
 
 /**
  * Maintain and update saved bluetooth devices(bonded but not connected)
  */
-public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
+public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater
+        implements Preference.OnPreferenceClickListener {
+    private static final String TAG = "SavedBluetoothDeviceUpdater";
 
     public SavedBluetoothDeviceUpdater(Context context, DashboardFragment fragment,
             DevicePreferenceCallback devicePreferenceCallback) {
@@ -57,4 +61,12 @@ public class SavedBluetoothDeviceUpdater extends BluetoothDeviceUpdater {
         final BluetoothDevice device = cachedDevice.getDevice();
         return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
     }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference) {
+        final CachedBluetoothDevice device = ((BluetoothDevicePreference) preference)
+                .getBluetoothDevice();
+        device.connect(true);
+        return true;
+    }
 }
index ed95015..ced8fc4 100644 (file)
@@ -73,6 +73,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
     private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
     private Collection<CachedBluetoothDevice> cachedDevices;
     private ShadowAudioManager mShadowAudioManager;
+    private BluetoothDevicePreference mPreference;
 
     @Before
     public void setUp() {
@@ -93,6 +94,7 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
         mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mDashboardFragment,
                 mDevicePreferenceCallback, mLocalManager));
         mBluetoothDeviceUpdater.setPrefContext(mContext);
+        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
         doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
         doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
     }
@@ -208,5 +210,12 @@ public class AvailableMediaBluetoothDeviceUpdaterTest {
 
         verify(mBluetoothDeviceUpdater).removePreference(mCachedBluetoothDevice);
     }
+
+    @Test
+    public void onClick_Preference_setActive() {
+        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
+
+        verify(mCachedBluetoothDevice).setActive();
+    }
 }
 
index fae014f..547727b 100644 (file)
@@ -57,7 +57,8 @@ public class SavedBluetoothDeviceUpdaterTest {
     private LocalBluetoothProfileManager mLocalBluetoothProfileManager;
 
     private Context mContext;
-    private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
+    private SavedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
+    private BluetoothDevicePreference mPreference;
 
     @Before
     public void setUp() {
@@ -71,6 +72,7 @@ public class SavedBluetoothDeviceUpdaterTest {
         mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mDashboardFragment,
                 mDevicePreferenceCallback, mLocalManager));
         mBluetoothDeviceUpdater.setPrefContext(mContext);
+        mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice, false);
         doNothing().when(mBluetoothDeviceUpdater).addPreference(any());
         doNothing().when(mBluetoothDeviceUpdater).removePreference(any());
     }
@@ -110,4 +112,11 @@ public class SavedBluetoothDeviceUpdaterTest {
 
         verify(mBluetoothDeviceUpdater).addPreference(mCachedBluetoothDevice);
     }
+
+    @Test
+    public void onClick_Preference_setConnect() {
+        mBluetoothDeviceUpdater.onPreferenceClick(mPreference);
+
+        verify(mCachedBluetoothDevice).connect(true);
+    }
 }