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

Commit 01e574ab authored by hughchen's avatar hughchen
Browse files

Update connect/disconnect Bluetooth api

This CL is used to update following Bluetooth api:

1. Use setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED)
   instead of connect(device) when connect to profile.
2. Use setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN)
   instead of disconnect(device) when disconnect to profile.

Fixes: 141582844
Test: manually
Change-Id: Ifba1fbc3855c4406b8b9b98e9abe19bae987aff9
Merged-In: Ifba1fbc3855c4406b8b9b98e9abe19bae987aff9
parent bef40438
Loading
Loading
Loading
Loading
+16 −12
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settingslib.bluetooth;
package com.android.settingslib.bluetooth;


import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;

import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothClass;
@@ -148,17 +151,18 @@ public class A2dpProfile implements LocalBluetoothProfile {
    }
    }


    public boolean connect(BluetoothDevice device) {
    public boolean connect(BluetoothDevice device) {
        if (mService == null) return false;
        if (mService == null) {
        return mService.connect(device);
            return false;
        }
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
    }
    }


    public boolean disconnect(BluetoothDevice device) {
    public boolean disconnect(BluetoothDevice device) {
        if (mService == null) return false;
        if (mService == null) {
        // Downgrade priority as user is disconnecting the headset.
            return false;
        if (mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
        }
        }
        return mService.disconnect(device);

        return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
    }
    }


    public int getConnectionStatus(BluetoothDevice device) {
    public int getConnectionStatus(BluetoothDevice device) {
@@ -182,12 +186,12 @@ public class A2dpProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
        return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
    }
    }


    public int getPreferred(BluetoothDevice device) {
    public int getPreferred(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
            return CONNECTION_POLICY_FORBIDDEN;
        }
        }
        return mService.getConnectionPolicy(device);
        return mService.getConnectionPolicy(device);
    }
    }
@@ -197,11 +201,11 @@ public class A2dpProfile implements LocalBluetoothProfile {
            return;
            return;
        }
        }
        if (preferred) {
        if (preferred) {
            if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
                mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
                mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
            }
            }
        } else {
        } else {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
        }
        }
    }
    }
    boolean isA2dpPlaying() {
    boolean isA2dpPlaying() {
+11 −11
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settingslib.bluetooth;
package com.android.settingslib.bluetooth;


import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;

import android.bluetooth.BluetoothA2dpSink;
import android.bluetooth.BluetoothA2dpSink;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothClass;
@@ -116,18 +119,15 @@ final class A2dpSinkProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.connect(device);
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
    }
    }


    public boolean disconnect(BluetoothDevice device) {
    public boolean disconnect(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        // Downgrade priority as user is disconnecting the headset.

        if (mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
        }
        return mService.disconnect(device);
    }
    }


    public int getConnectionStatus(BluetoothDevice device) {
    public int getConnectionStatus(BluetoothDevice device) {
@@ -141,12 +141,12 @@ final class A2dpSinkProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
        return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
    }
    }


    public int getPreferred(BluetoothDevice device) {
    public int getPreferred(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
            return CONNECTION_POLICY_FORBIDDEN;
        }
        }
        return mService.getConnectionPolicy(device);
        return mService.getConnectionPolicy(device);
    }
    }
@@ -156,11 +156,11 @@ final class A2dpSinkProfile implements LocalBluetoothProfile {
            return;
            return;
        }
        }
        if (preferred) {
        if (preferred) {
            if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
                mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
                mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
            }
            }
        } else {
        } else {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
        }
        }
    }
    }


+11 −11
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settingslib.bluetooth;
package com.android.settingslib.bluetooth;


import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
@@ -112,18 +115,15 @@ public class HeadsetProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.connect(device);
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
    }
    }


    public boolean disconnect(BluetoothDevice device) {
    public boolean disconnect(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        // Downgrade priority as user is disconnecting the headset.

        if (mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
        }
        return mService.disconnect(device);
    }
    }


    public int getConnectionStatus(BluetoothDevice device) {
    public int getConnectionStatus(BluetoothDevice device) {
@@ -165,12 +165,12 @@ public class HeadsetProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
        return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
    }
    }


    public int getPreferred(BluetoothDevice device) {
    public int getPreferred(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
            return CONNECTION_POLICY_FORBIDDEN;
        }
        }
        return mService.getConnectionPolicy(device);
        return mService.getConnectionPolicy(device);
    }
    }
@@ -180,11 +180,11 @@ public class HeadsetProfile implements LocalBluetoothProfile {
            return;
            return;
        }
        }
        if (preferred) {
        if (preferred) {
            if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
                mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
                mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
            }
            }
        } else {
        } else {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
        }
        }
    }
    }


+16 −12
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settingslib.bluetooth;
package com.android.settingslib.bluetooth;


import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
@@ -146,17 +149,18 @@ public class HearingAidProfile implements LocalBluetoothProfile {
    }
    }


    public boolean connect(BluetoothDevice device) {
    public boolean connect(BluetoothDevice device) {
        if (mService == null) return false;
        if (mService == null) {
        return mService.connect(device);
            return false;
        }
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
    }
    }


    public boolean disconnect(BluetoothDevice device) {
    public boolean disconnect(BluetoothDevice device) {
        if (mService == null) return false;
        if (mService == null) {
        // Downgrade priority as user is disconnecting the hearing aid.
            return false;
        if (mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
        }
        }
        return mService.disconnect(device);

        return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
    }
    }


    public int getConnectionStatus(BluetoothDevice device) {
    public int getConnectionStatus(BluetoothDevice device) {
@@ -180,12 +184,12 @@ public class HearingAidProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
        return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
    }
    }


    public int getPreferred(BluetoothDevice device) {
    public int getPreferred(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
            return CONNECTION_POLICY_FORBIDDEN;
        }
        }
        return mService.getConnectionPolicy(device);
        return mService.getConnectionPolicy(device);
    }
    }
@@ -195,11 +199,11 @@ public class HearingAidProfile implements LocalBluetoothProfile {
            return;
            return;
        }
        }
        if (preferred) {
        if (preferred) {
            if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
                mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
                mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
            }
            }
        } else {
        } else {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
        }
        }
    }
    }


+11 −11
Original line number Original line Diff line number Diff line
@@ -16,6 +16,9 @@


package com.android.settingslib.bluetooth;
package com.android.settingslib.bluetooth;


import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_ALLOWED;
import static android.bluetooth.BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;

import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothClass;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
@@ -126,7 +129,7 @@ final class HfpClientProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.connect(device);
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
    }
    }


    @Override
    @Override
@@ -134,11 +137,8 @@ final class HfpClientProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        // Downgrade priority as user is disconnecting the headset.

        if (mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
        return mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
        }
        return mService.disconnect(device);
    }
    }


    @Override
    @Override
@@ -154,13 +154,13 @@ final class HfpClientProfile implements LocalBluetoothProfile {
        if (mService == null) {
        if (mService == null) {
            return false;
            return false;
        }
        }
        return mService.getConnectionPolicy(device) > BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
        return mService.getConnectionPolicy(device) > CONNECTION_POLICY_FORBIDDEN;
    }
    }


    @Override
    @Override
    public int getPreferred(BluetoothDevice device) {
    public int getPreferred(BluetoothDevice device) {
        if (mService == null) {
        if (mService == null) {
            return BluetoothProfile.CONNECTION_POLICY_FORBIDDEN;
            return CONNECTION_POLICY_FORBIDDEN;
        }
        }
        return mService.getConnectionPolicy(device);
        return mService.getConnectionPolicy(device);
    }
    }
@@ -171,11 +171,11 @@ final class HfpClientProfile implements LocalBluetoothProfile {
            return;
            return;
        }
        }
        if (preferred) {
        if (preferred) {
            if (mService.getConnectionPolicy(device) < BluetoothProfile.CONNECTION_POLICY_ALLOWED) {
            if (mService.getConnectionPolicy(device) < CONNECTION_POLICY_ALLOWED) {
                mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_ALLOWED);
                mService.setConnectionPolicy(device, CONNECTION_POLICY_ALLOWED);
            }
            }
        } else {
        } else {
            mService.setConnectionPolicy(device, BluetoothProfile.CONNECTION_POLICY_FORBIDDEN);
            mService.setConnectionPolicy(device, CONNECTION_POLICY_FORBIDDEN);
        }
        }
    }
    }


Loading