Search in sources :

Example 31 with LocalBluetoothProfile

use of com.android.settingslib.bluetooth.LocalBluetoothProfile in project android_packages_apps_Settings by LineageOS.

the class Utils method getBtClassDrawableWithDescription.

static Pair<Drawable, String> getBtClassDrawableWithDescription(Context context, CachedBluetoothDevice cachedDevice, float iconScale) {
    BluetoothClass btClass = cachedDevice.getBtClass();
    final int level = cachedDevice.getBatteryLevel();
    if (btClass != null) {
        switch(btClass.getMajorDeviceClass()) {
            case BluetoothClass.Device.Major.COMPUTER:
                return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_laptop, level, iconScale), context.getString(R.string.bluetooth_talkback_computer));
            case BluetoothClass.Device.Major.PHONE:
                return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_cellphone, level, iconScale), context.getString(R.string.bluetooth_talkback_phone));
            case BluetoothClass.Device.Major.PERIPHERAL:
                return new Pair<>(getBluetoothDrawable(context, HidProfile.getHidClassDrawable(btClass), level, iconScale), context.getString(R.string.bluetooth_talkback_input_peripheral));
            case BluetoothClass.Device.Major.IMAGING:
                return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_settings_print, level, iconScale), context.getString(R.string.bluetooth_talkback_imaging));
            default:
        }
    }
    List<LocalBluetoothProfile> profiles = cachedDevice.getProfiles();
    for (LocalBluetoothProfile profile : profiles) {
        int resId = profile.getDrawableResource(btClass);
        if (resId != 0) {
            return new Pair<>(getBluetoothDrawable(context, resId, level, iconScale), null);
        }
    }
    if (btClass != null) {
        if (btClass.doesClassMatch(BluetoothClass.PROFILE_HEADSET)) {
            return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_headset_hfp, level, iconScale), context.getString(R.string.bluetooth_talkback_headset));
        }
        if (btClass.doesClassMatch(BluetoothClass.PROFILE_A2DP)) {
            return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_bt_headphones_a2dp, level, iconScale), context.getString(R.string.bluetooth_talkback_headphone));
        }
    }
    return new Pair<>(getBluetoothDrawable(context, R.drawable.ic_settings_bluetooth, level, iconScale), context.getString(R.string.bluetooth_talkback_bluetooth));
}
Also used : LocalBluetoothProfile(com.android.settingslib.bluetooth.LocalBluetoothProfile) BluetoothClass(android.bluetooth.BluetoothClass) Pair(android.util.Pair)

Example 32 with LocalBluetoothProfile

use of com.android.settingslib.bluetooth.LocalBluetoothProfile in project android_packages_apps_Settings by LineageOS.

the class BluetoothDetailsProfilesControllerTest method addFakeProfile.

/**
 * Creates and adds a mock LocalBluetoothProfile to the list of connectable profiles for the
 * device.
 *     @param profileNameResId  the resource id for the name used by this profile
 *     @param deviceIsPreferred  whether this profile should start out as enabled for the device
 */
private LocalBluetoothProfile addFakeProfile(int profileNameResId, boolean deviceIsPreferred) {
    LocalBluetoothProfile profile = new FakeBluetoothProfile(mContext, profileNameResId);
    profile.setPreferred(mDevice, deviceIsPreferred);
    mConnectableProfiles.add(profile);
    when(mProfileManager.getProfileByName(eq(profile.toString()))).thenReturn(profile);
    return profile;
}
Also used : LocalBluetoothProfile(com.android.settingslib.bluetooth.LocalBluetoothProfile)

Example 33 with LocalBluetoothProfile

use of com.android.settingslib.bluetooth.LocalBluetoothProfile in project android_packages_apps_Settings by omnirom.

the class DeviceProfilesSettings method onClick.

@Override
public void onClick(View v) {
    if (v instanceof CheckBox) {
        LocalBluetoothProfile prof = getProfileOf(v);
        onProfileClicked(prof, (CheckBox) v);
    }
}
Also used : LocalBluetoothProfile(com.android.settingslib.bluetooth.LocalBluetoothProfile) CheckBox(android.widget.CheckBox)

Example 34 with LocalBluetoothProfile

use of com.android.settingslib.bluetooth.LocalBluetoothProfile in project android_packages_apps_Settings by omnirom.

the class DeviceProfilesSettings method addPreferencesForProfiles.

private void addPreferencesForProfiles() {
    mProfileContainer.removeAllViews();
    for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
        CheckBox pref = createProfilePreference(profile);
        mProfileContainer.addView(pref);
        if (profile instanceof A2dpProfile) {
            BluetoothDevice device = mCachedDevice.getDevice();
            A2dpProfile a2dpProfile = (A2dpProfile) profile;
            if (a2dpProfile.supportsHighQualityAudio(device)) {
                CheckBox highQualityPref = new CheckBox(getActivity());
                highQualityPref.setTag(HIGH_QUALITY_AUDIO_PREF_TAG);
                highQualityPref.setOnClickListener(v -> {
                    a2dpProfile.setHighQualityAudioEnabled(device, highQualityPref.isChecked());
                });
                highQualityPref.setVisibility(View.GONE);
                mProfileContainer.addView(highQualityPref);
            }
            refreshProfilePreference(pref, profile);
        }
    }
    final int pbapPermission = mCachedDevice.getPhonebookPermissionChoice();
    // Only provide PBAP cabability if the client device has requested PBAP.
    if (pbapPermission != CachedBluetoothDevice.ACCESS_UNKNOWN) {
        final PbapServerProfile psp = mManager.getProfileManager().getPbapProfile();
        CheckBox pbapPref = createProfilePreference(psp);
        mProfileContainer.addView(pbapPref);
    }
    final MapProfile mapProfile = mManager.getProfileManager().getMapProfile();
    final int mapPermission = mCachedDevice.getMessagePermissionChoice();
    if (mapPermission != CachedBluetoothDevice.ACCESS_UNKNOWN) {
        CheckBox mapPreference = createProfilePreference(mapProfile);
        mProfileContainer.addView(mapPreference);
    }
    showOrHideProfileGroup();
}
Also used : LocalBluetoothProfile(com.android.settingslib.bluetooth.LocalBluetoothProfile) PbapServerProfile(com.android.settingslib.bluetooth.PbapServerProfile) MapProfile(com.android.settingslib.bluetooth.MapProfile) A2dpProfile(com.android.settingslib.bluetooth.A2dpProfile) BluetoothDevice(android.bluetooth.BluetoothDevice) CachedBluetoothDevice(com.android.settingslib.bluetooth.CachedBluetoothDevice) CheckBox(android.widget.CheckBox)

Example 35 with LocalBluetoothProfile

use of com.android.settingslib.bluetooth.LocalBluetoothProfile in project android_packages_apps_Settings by omnirom.

the class DeviceProfilesSettings method refreshProfiles.

private void refreshProfiles() {
    for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
        CheckBox profilePref = findProfile(profile.toString());
        if (profilePref == null) {
            profilePref = createProfilePreference(profile);
            mProfileContainer.addView(profilePref);
        } else {
            refreshProfilePreference(profilePref, profile);
        }
    }
    for (LocalBluetoothProfile profile : mCachedDevice.getRemovedProfiles()) {
        CheckBox profilePref = findProfile(profile.toString());
        if (profilePref != null) {
            Log.d(TAG, "Removing " + profile.toString() + " from profile list");
            mProfileContainer.removeView(profilePref);
        }
    }
    showOrHideProfileGroup();
}
Also used : LocalBluetoothProfile(com.android.settingslib.bluetooth.LocalBluetoothProfile) CheckBox(android.widget.CheckBox)

Aggregations

LocalBluetoothProfile (com.android.settingslib.bluetooth.LocalBluetoothProfile)57 PbapServerProfile (com.android.settingslib.bluetooth.PbapServerProfile)22 CheckBox (android.widget.CheckBox)20 CachedBluetoothDevice (com.android.settingslib.bluetooth.CachedBluetoothDevice)15 MapProfile (com.android.settingslib.bluetooth.MapProfile)15 BluetoothDevice (android.bluetooth.BluetoothDevice)13 SwitchPreference (android.support.v14.preference.SwitchPreference)12 BluetoothClass (android.bluetooth.BluetoothClass)7 Pair (android.util.Pair)7 A2dpProfile (com.android.settingslib.bluetooth.A2dpProfile)6 SwitchPreference (androidx.preference.SwitchPreference)2