├── .circleci └── config.yml ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── PULL_REQUEST_TEMPLATE.md ├── .gitignore ├── CHANGELOG.md ├── CONTRIBUTORS.md ├── LICENSE.txt ├── README.md ├── audioswitch ├── .gitignore ├── build.gradle ├── consumer-rules.pro ├── ftl │ └── app-debug.apk ├── lint-baseline.xml ├── proguard-rules.pro └── src │ ├── androidTest │ ├── AndroidManifest.xml │ └── java │ │ ├── com.twilio.audioswitch │ │ ├── AndroidTestBase.kt │ │ ├── AudioFocusUtil.kt │ │ ├── AudioSwitchIntegrationTest.kt │ │ ├── AutomaticDeviceSelectionTest.kt │ │ ├── MultipleBluetoothHeadsetsTest.kt │ │ ├── TestUtil.kt │ │ ├── UserDeviceSelectionTest.kt │ │ └── android │ │ │ ├── FakeBluetoothIntentProcessor.kt │ │ │ └── FakeDevice.kt │ │ └── com │ │ └── twilio │ │ └── audioswitch │ │ └── manual │ │ └── ConnectedBluetoothHeadsetTest.kt │ ├── main │ ├── AndroidManifest.xml │ └── java │ │ └── com │ │ └── twilio │ │ └── audioswitch │ │ ├── AudioDevice.kt │ │ ├── AudioDeviceChangeListener.kt │ │ ├── AudioDeviceManager.kt │ │ ├── AudioFocusRequestWrapper.kt │ │ ├── AudioSwitch.kt │ │ ├── android │ │ ├── BluetoothDeviceWrapper.kt │ │ ├── BluetoothDeviceWrapperImpl.kt │ │ ├── BluetoothIntentProcessor.kt │ │ ├── BluetoothIntentProcessorImpl.kt │ │ ├── BuildWrapper.kt │ │ ├── Logger.kt │ │ ├── PermissionsCheckStrategy.kt │ │ ├── ProductionLogger.kt │ │ └── SystemClockWrapper.kt │ │ ├── bluetooth │ │ ├── BluetoothHeadsetConnectionListener.kt │ │ ├── BluetoothHeadsetManager.kt │ │ └── BluetoothScoJob.kt │ │ └── wired │ │ ├── WiredDeviceConnectionListener.kt │ │ └── WiredHeadsetReceiver.kt │ └── test │ ├── java │ └── com │ │ └── twilio │ │ └── audioswitch │ │ ├── AudioSwitchJavaTest.java │ │ ├── AudioSwitchTest.kt │ │ ├── AudioSwitchTestParams.kt │ │ ├── BaseTest.kt │ │ ├── TestUtil.kt │ │ ├── UnitTestLogger.kt │ │ ├── android │ │ └── BluetoothDeviceWrapperImplTest.kt │ │ ├── bluetooth │ │ └── BluetoothHeadsetManagerTest.kt │ │ └── wired │ │ └── WiredHeadsetReceiverTest.kt │ └── resources │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── images └── audioswitch-logo.png ├── settings.gradle └── ui-test-args.yaml /.circleci/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/.circleci/config.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/.github/PULL_REQUEST_TEMPLATE.md -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTORS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/CONTRIBUTORS.md -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/README.md -------------------------------------------------------------------------------- /audioswitch/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /audioswitch/build.gradle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/build.gradle -------------------------------------------------------------------------------- /audioswitch/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /audioswitch/ftl/app-debug.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/ftl/app-debug.apk -------------------------------------------------------------------------------- /audioswitch/lint-baseline.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/lint-baseline.xml -------------------------------------------------------------------------------- /audioswitch/proguard-rules.pro: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/proguard-rules.pro -------------------------------------------------------------------------------- /audioswitch/src/androidTest/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/AndroidManifest.xml -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/AndroidTestBase.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/AndroidTestBase.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/AudioFocusUtil.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/AudioFocusUtil.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/AudioSwitchIntegrationTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/AudioSwitchIntegrationTest.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/AutomaticDeviceSelectionTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/AutomaticDeviceSelectionTest.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/MultipleBluetoothHeadsetsTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/MultipleBluetoothHeadsetsTest.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/TestUtil.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/TestUtil.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/UserDeviceSelectionTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/UserDeviceSelectionTest.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/android/FakeBluetoothIntentProcessor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/android/FakeBluetoothIntentProcessor.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com.twilio.audioswitch/android/FakeDevice.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com.twilio.audioswitch/android/FakeDevice.kt -------------------------------------------------------------------------------- /audioswitch/src/androidTest/java/com/twilio/audioswitch/manual/ConnectedBluetoothHeadsetTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/androidTest/java/com/twilio/audioswitch/manual/ConnectedBluetoothHeadsetTest.kt -------------------------------------------------------------------------------- /audioswitch/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/AndroidManifest.xml -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/AudioDevice.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/AudioDevice.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/AudioDeviceChangeListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/AudioDeviceChangeListener.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/AudioDeviceManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/AudioDeviceManager.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/AudioFocusRequestWrapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/AudioFocusRequestWrapper.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/AudioSwitch.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/AudioSwitch.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothDeviceWrapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothDeviceWrapper.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothDeviceWrapperImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothDeviceWrapperImpl.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothIntentProcessor.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothIntentProcessor.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothIntentProcessorImpl.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/BluetoothIntentProcessorImpl.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/BuildWrapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/BuildWrapper.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/Logger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/Logger.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/PermissionsCheckStrategy.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/PermissionsCheckStrategy.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/ProductionLogger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/ProductionLogger.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/android/SystemClockWrapper.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/android/SystemClockWrapper.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetConnectionListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetConnectionListener.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetManager.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetManager.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothScoJob.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/bluetooth/BluetoothScoJob.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/wired/WiredDeviceConnectionListener.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/wired/WiredDeviceConnectionListener.kt -------------------------------------------------------------------------------- /audioswitch/src/main/java/com/twilio/audioswitch/wired/WiredHeadsetReceiver.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/main/java/com/twilio/audioswitch/wired/WiredHeadsetReceiver.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchJavaTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchJavaTest.java -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchTest.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchTestParams.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/AudioSwitchTestParams.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/BaseTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/BaseTest.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/TestUtil.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/TestUtil.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/UnitTestLogger.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/UnitTestLogger.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/android/BluetoothDeviceWrapperImplTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/android/BluetoothDeviceWrapperImplTest.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetManagerTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/bluetooth/BluetoothHeadsetManagerTest.kt -------------------------------------------------------------------------------- /audioswitch/src/test/java/com/twilio/audioswitch/wired/WiredHeadsetReceiverTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/audioswitch/src/test/java/com/twilio/audioswitch/wired/WiredHeadsetReceiverTest.kt -------------------------------------------------------------------------------- /audioswitch/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/gradlew.bat -------------------------------------------------------------------------------- /images/audioswitch-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/images/audioswitch-logo.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':audioswitch' 2 | -------------------------------------------------------------------------------- /ui-test-args.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/twilio/audioswitch/HEAD/ui-test-args.yaml --------------------------------------------------------------------------------