New hearing device pairing page (1/2)

Rewrite a new hearing device pairing page with update UI for "See more
devices".

Bug: 307473972
Test: atest HearingDevicePairingFragmentTest
Test: flip the flag com.android.settings.flags.new_hearing_device_pairing_page && atest HearingAidPairingDialogFragmentTest AddDevicePreferenceControllerTest
Change-Id: Ic60601905e3d0d7d7c5b1ef9733652118a211f1d
This commit is contained in:
Angela Wang
2023-11-22 12:39:17 +00:00
parent 4ee6d84eb4
commit 3e9f1ff659
13 changed files with 905 additions and 13 deletions

View File

@@ -15,18 +15,25 @@
*/
package com.android.settings.connecteddevice;
import static com.android.settings.accessibility.AccessibilityHearingAidsFragment.KEY_HEARING_DEVICE_ADD_BT_DEVICES;
import android.bluetooth.BluetoothAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.text.TextUtils;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.accessibility.HearingDevicePairingDetail;
import com.android.settings.accessibility.HearingDevicePairingFragment;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.flags.Flags;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -75,6 +82,21 @@ public class AddDevicePreferenceController extends BasePreferenceController
}
}
@Override
public boolean handlePreferenceTreeClick(Preference preference) {
if (TextUtils.equals(preference.getKey(), KEY_HEARING_DEVICE_ADD_BT_DEVICES)) {
String destination = Flags.newHearingDevicePairingPage()
? HearingDevicePairingFragment.class.getName()
: HearingDevicePairingDetail.class.getName();
new SubSettingLauncher(preference.getContext())
.setDestination(destination)
.setSourceMetricsCategory(getMetricsCategory())
.launch();
return true;
}
return super.handlePreferenceTreeClick(preference);
}
@Override
public int getAvailabilityStatus() {
return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)