Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5840d3a8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add PBAP client to ProfilePrioritiesEntity"

parents d45e3400 1d82962e
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -66,8 +66,6 @@ import android.util.Slog;
import android.util.SparseArray;
import android.util.StatsLog;

import androidx.room.Room;

import com.android.bluetooth.BluetoothMetricsProto;
import com.android.bluetooth.Utils;
import com.android.bluetooth.btservice.RemoteDevices.DeviceProperties;
@@ -426,9 +424,7 @@ public class AdapterService extends Service {
        mActiveDeviceManager.start();

        mDatabaseManager = new DatabaseManager(this);
        MetadataDatabase database = Room.databaseBuilder(this,
                MetadataDatabase.class, MetadataDatabase.DATABASE_NAME).build();
        mDatabaseManager.start(database);
        mDatabaseManager.start(MetadataDatabase.createDatabase(this));

        mSilenceDeviceManager = new SilenceDeviceManager(this, new ServiceFactory(),
                Looper.getMainLooper());
+10 −4
Original line number Diff line number Diff line
@@ -267,8 +267,9 @@ public class DatabaseManager {
     * {@link BluetoothProfile#HEADSET_CLIENT}, {@link BluetoothProfile#A2DP},
     * {@link BluetoothProfile#A2DP_SINK}, {@link BluetoothProfile#HID_HOST},
     * {@link BluetoothProfile#PAN}, {@link BluetoothProfile#PBAP},
     * {@link BluetoothProfile#MAP}, {@link BluetoothProfile#MAP_CLIENT},
     * {@link BluetoothProfile#SAP}, {@link BluetoothProfile#HEARING_AID}
     * {@link BluetoothProfile#PBAP_CLIENT}, {@link BluetoothProfile#MAP},
     * {@link BluetoothProfile#MAP_CLIENT}, {@link BluetoothProfile#SAP},
     * {@link BluetoothProfile#HEARING_AID}
     * @param newPriority the priority to set; one of
     * {@link BluetoothProfile#PRIORITY_UNDEFINED},
     * {@link BluetoothProfile#PRIORITY_OFF},
@@ -325,8 +326,9 @@ public class DatabaseManager {
     * {@link BluetoothProfile#HEADSET_CLIENT}, {@link BluetoothProfile#A2DP},
     * {@link BluetoothProfile#A2DP_SINK}, {@link BluetoothProfile#HID_HOST},
     * {@link BluetoothProfile#PAN}, {@link BluetoothProfile#PBAP},
     * {@link BluetoothProfile#MAP}, {@link BluetoothProfile#MAP_CLIENT},
     * {@link BluetoothProfile#SAP}, {@link BluetoothProfile#HEARING_AID}
     * {@link BluetoothProfile#PBAP_CLIENT}, {@link BluetoothProfile#MAP},
     * {@link BluetoothProfile#MAP_CLIENT}, {@link BluetoothProfile#SAP},
     * {@link BluetoothProfile#HEARING_AID}
     * @return the profile priority of the device; one of
     * {@link BluetoothProfile#PRIORITY_UNDEFINED},
     * {@link BluetoothProfile#PRIORITY_OFF},
@@ -672,6 +674,9 @@ public class DatabaseManager {
            int pbapPriority = Settings.Global.getInt(contentResolver,
                    Settings.Global.getBluetoothPbapClientPriorityKey(device.getAddress()),
                    BluetoothProfile.PRIORITY_UNDEFINED);
            int pbapClientPriority = Settings.Global.getInt(contentResolver,
                    Settings.Global.getBluetoothPbapClientPriorityKey(device.getAddress()),
                    BluetoothProfile.PRIORITY_UNDEFINED);
            int sapPriority = Settings.Global.getInt(contentResolver,
                    Settings.Global.getBluetoothSapPriorityKey(device.getAddress()),
                    BluetoothProfile.PRIORITY_UNDEFINED);
@@ -691,6 +696,7 @@ public class DatabaseManager {
            data.setProfilePriority(BluetoothProfile.HID_HOST, hidHostPriority);
            data.setProfilePriority(BluetoothProfile.PAN, panPriority);
            data.setProfilePriority(BluetoothProfile.PBAP, pbapPriority);
            data.setProfilePriority(BluetoothProfile.PBAP_CLIENT, pbapClientPriority);
            data.setProfilePriority(BluetoothProfile.MAP, mapPriority);
            data.setProfilePriority(BluetoothProfile.MAP_CLIENT, mapClientPriority);
            data.setProfilePriority(BluetoothProfile.SAP, sapPriority);
+29 −24
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ class Metadata {
    public boolean migrated;

    @Embedded
    public ProfilePrioritiesEntity profilePriorites;
    public ProfilePrioritiesEntity profilePriorities;

    @Embedded
    @NonNull
@@ -49,7 +49,7 @@ class Metadata {
    Metadata(String address) {
        this.address = address;
        migrated = false;
        profilePriorites = new ProfilePrioritiesEntity();
        profilePriorities = new ProfilePrioritiesEntity();
        publicMetadata = new CustomizedMetadataEntity();
        a2dpSupportsOptionalCodecs = BluetoothA2dp.OPTIONAL_CODECS_SUPPORT_UNKNOWN;
        a2dpOptionalCodecsEnabled = BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN;
@@ -62,37 +62,40 @@ class Metadata {
    void setProfilePriority(int profile, int priority) {
        switch (profile) {
            case BluetoothProfile.A2DP:
                profilePriorites.a2dp_priority = priority;
                profilePriorities.a2dp_priority = priority;
                break;
            case BluetoothProfile.A2DP_SINK:
                profilePriorites.a2dp_sink_priority = priority;
                profilePriorities.a2dp_sink_priority = priority;
                break;
            case BluetoothProfile.HEADSET:
                profilePriorites.hfp_priority = priority;
                profilePriorities.hfp_priority = priority;
                break;
            case BluetoothProfile.HEADSET_CLIENT:
                profilePriorites.hfp_client_priority = priority;
                profilePriorities.hfp_client_priority = priority;
                break;
            case BluetoothProfile.HID_HOST:
                profilePriorites.hid_host_priority = priority;
                profilePriorities.hid_host_priority = priority;
                break;
            case BluetoothProfile.PAN:
                profilePriorites.pan_priority = priority;
                profilePriorities.pan_priority = priority;
                break;
            case BluetoothProfile.PBAP:
                profilePriorites.pbap_priority = priority;
                profilePriorities.pbap_priority = priority;
                break;
            case BluetoothProfile.PBAP_CLIENT:
                profilePriorities.pbap_client_priority = priority;
                break;
            case BluetoothProfile.MAP:
                profilePriorites.map_priority = priority;
                profilePriorities.map_priority = priority;
                break;
            case BluetoothProfile.MAP_CLIENT:
                profilePriorites.map_client_priority = priority;
                profilePriorities.map_client_priority = priority;
                break;
            case BluetoothProfile.SAP:
                profilePriorites.sap_priority = priority;
                profilePriorities.sap_priority = priority;
                break;
            case BluetoothProfile.HEARING_AID:
                profilePriorites.hearing_aid_priority = priority;
                profilePriorities.hearing_aid_priority = priority;
                break;
            default:
                throw new IllegalArgumentException("invalid profile " + profile);
@@ -102,27 +105,29 @@ class Metadata {
    int getProfilePriority(int profile) {
        switch (profile) {
            case BluetoothProfile.A2DP:
                return profilePriorites.a2dp_priority;
                return profilePriorities.a2dp_priority;
            case BluetoothProfile.A2DP_SINK:
                return profilePriorites.a2dp_sink_priority;
                return profilePriorities.a2dp_sink_priority;
            case BluetoothProfile.HEADSET:
                return profilePriorites.hfp_priority;
                return profilePriorities.hfp_priority;
            case BluetoothProfile.HEADSET_CLIENT:
                return profilePriorites.hfp_client_priority;
                return profilePriorities.hfp_client_priority;
            case BluetoothProfile.HID_HOST:
                return profilePriorites.hid_host_priority;
                return profilePriorities.hid_host_priority;
            case BluetoothProfile.PAN:
                return profilePriorites.pan_priority;
                return profilePriorities.pan_priority;
            case BluetoothProfile.PBAP:
                return profilePriorites.pbap_priority;
                return profilePriorities.pbap_priority;
            case BluetoothProfile.PBAP_CLIENT:
                return profilePriorities.pbap_client_priority;
            case BluetoothProfile.MAP:
                return profilePriorites.map_priority;
                return profilePriorities.map_priority;
            case BluetoothProfile.MAP_CLIENT:
                return profilePriorites.map_client_priority;
                return profilePriorities.map_client_priority;
            case BluetoothProfile.SAP:
                return profilePriorites.sap_priority;
                return profilePriorities.sap_priority;
            case BluetoothProfile.HEARING_AID:
                return profilePriorites.hearing_aid_priority;
                return profilePriorities.hearing_aid_priority;
        }
        return BluetoothProfile.PRIORITY_UNDEFINED;
    }
+26 −1
Original line number Diff line number Diff line
@@ -16,15 +16,20 @@

package com.android.bluetooth.btservice.storage;

import android.content.Context;

import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;
import androidx.room.migration.Migration;
import androidx.sqlite.db.SupportSQLiteDatabase;

import java.util.List;

/**
 * MetadataDatabase is a Room database stores Bluetooth persistence data
 */
@Database(entities = {Metadata.class}, exportSchema = false, version = 100)
@Database(entities = {Metadata.class}, exportSchema = false, version = 101)
public abstract class MetadataDatabase extends RoomDatabase {
    /**
     * The database file name
@@ -33,6 +38,19 @@ public abstract class MetadataDatabase extends RoomDatabase {

    protected abstract MetadataDao mMetadataDao();

    /**
     * Create a {@link MetadataDatabase} database
     *
     * @param context the Context to create database
     * @return the created {@link MetadataDatabase}
     */
    public static MetadataDatabase createDatabase(Context context) {
        return Room.databaseBuilder(context,
                MetadataDatabase.class, DATABASE_NAME)
                .addMigrations(MIGRATION_100_101)
                .build();
    }

    /**
     * Insert a {@link Metadata} to database
     *
@@ -66,4 +84,11 @@ public abstract class MetadataDatabase extends RoomDatabase {
    public void deleteAll() {
        mMetadataDao().deleteAll();
    }

    private static final Migration MIGRATION_100_101 = new Migration(100, 101) {
        @Override
        public void migrate(SupportSQLiteDatabase database) {
                database.execSQL("ALTER TABLE metadata ADD COLUMN `pbap_client_priority` INTEGER");
        }
    };
}
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ class ProfilePrioritiesEntity {
    public int hid_host_priority;
    public int pan_priority;
    public int pbap_priority;
    public int pbap_client_priority;
    public int map_priority;
    public int sap_priority;
    public int hearing_aid_priority;
@@ -43,6 +44,7 @@ class ProfilePrioritiesEntity {
        hid_host_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        pan_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        pbap_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        pbap_client_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        map_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        sap_priority = BluetoothProfile.PRIORITY_UNDEFINED;
        hearing_aid_priority = BluetoothProfile.PRIORITY_UNDEFINED;