Merge "Use the correct @RequiresOptIn for ExperimentalAppActions" into androidx-main
diff --git a/core/core-telecom/api/current.txt b/core/core-telecom/api/current.txt
index 0ba4497..d4a855f 100644
--- a/core/core-telecom/api/current.txt
+++ b/core/core-telecom/api/current.txt
@@ -109,7 +109,7 @@
package androidx.core.telecom.util {
- @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalAppActions {
+ @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAppActions {
}
}
diff --git a/core/core-telecom/api/restricted_current.txt b/core/core-telecom/api/restricted_current.txt
index 0ba4497..d4a855f 100644
--- a/core/core-telecom/api/restricted_current.txt
+++ b/core/core-telecom/api/restricted_current.txt
@@ -109,7 +109,7 @@
package androidx.core.telecom.util {
- @SuppressCompatibility @RequiresOptIn @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.CLASS) public @interface ExperimentalAppActions {
+ @SuppressCompatibility @kotlin.RequiresOptIn @kotlin.annotation.Retention(kotlin.annotation.AnnotationRetention.BINARY) public @interface ExperimentalAppActions {
}
}
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallCompatTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallCompatTest.kt
index 98a9e9f..78117e2 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallCompatTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallCompatTest.kt
@@ -36,6 +36,7 @@
import androidx.core.telecom.internal.utils.Utils
import androidx.core.telecom.test.utils.BaseTelecomTest
import androidx.core.telecom.test.utils.TestUtils
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
@@ -67,6 +68,7 @@
*/
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
@RequiresApi(Build.VERSION_CODES.O)
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class CallCompatTest : BaseTelecomTest() {
private lateinit var callCompat: CallCompat
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallSessionTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallSessionTest.kt
index 841e390..ac55bd7 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallSessionTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/CallSessionTest.kt
@@ -24,6 +24,7 @@
import androidx.core.telecom.internal.CallChannels
import androidx.core.telecom.internal.CallSession
import androidx.core.telecom.test.utils.BaseTelecomTest
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SdkSuppress
import androidx.test.filters.SmallTest
@@ -43,7 +44,7 @@
* [androidx.core.telecom.internal.CallSession] object.
*/
@SdkSuppress(minSdkVersion = VERSION_CODES.UPSIDE_DOWN_CAKE /* api=34 */)
-@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
+@OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class, ExperimentalAppActions::class)
@RequiresApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
@RunWith(AndroidJUnit4::class)
class CallSessionTest : BaseTelecomTest() {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECallExtensionExtrasTests.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECallExtensionExtrasTests.kt
index 0429f8e..d204f76 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECallExtensionExtrasTests.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECallExtensionExtrasTests.kt
@@ -30,6 +30,7 @@
import androidx.core.telecom.test.utils.MockInCallServiceDelegate
import androidx.core.telecom.test.utils.TestUtils
import androidx.core.telecom.test.utils.TestUtils.waitOnInCallServiceToReachXCallCompats
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
@@ -59,6 +60,7 @@
*/
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
@RequiresApi(Build.VERSION_CODES.O)
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class E2ECallExtensionExtrasTests : BaseTelecomTest() {
companion object {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECapabilityExchangeTests.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECapabilityExchangeTests.kt
index 42b468d..4f7a610 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECapabilityExchangeTests.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/E2ECapabilityExchangeTests.kt
@@ -29,6 +29,7 @@
import androidx.core.telecom.test.utils.InCallServiceType
import androidx.core.telecom.test.utils.MockInCallServiceDelegate
import androidx.core.telecom.test.utils.TestUtils
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
import androidx.test.platform.app.InstrumentationRegistry
@@ -44,6 +45,7 @@
import org.junit.Test
@RequiresApi(Build.VERSION_CODES.O)
+@ExperimentalAppActions
class E2ECapabilityExchangeTests : BaseTelecomTest() {
@get:Rule val serviceRule: ServiceTestRule = ServiceTestRule()
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/ExtensionAidlTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/ExtensionAidlTest.kt
index 37a7f61..8d6d4d8 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/ExtensionAidlTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/ExtensionAidlTest.kt
@@ -21,6 +21,7 @@
import androidx.core.telecom.extensions.ICapabilityExchange
import androidx.core.telecom.extensions.ICapabilityExchangeListener
import androidx.core.telecom.extensions.IParticipantStateListener
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import org.junit.Assert.assertEquals
@@ -33,6 +34,7 @@
* Not very useful for now, but tests the visibility of the AIDL files and ensures that they can
* be used as described.
*/
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class ExtensionAidlTest {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/InCallServiceCompatTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/InCallServiceCompatTest.kt
index a9480cf..b8a3799 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/InCallServiceCompatTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/InCallServiceCompatTest.kt
@@ -31,6 +31,7 @@
import androidx.core.telecom.test.utils.InCallServiceType
import androidx.core.telecom.test.utils.MockInCallServiceDelegate
import androidx.core.telecom.test.utils.TestUtils
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.filters.SdkSuppress
@@ -53,6 +54,7 @@
*/
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
@RequiresApi(Build.VERSION_CODES.O)
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class InCallServiceCompatTest : BaseTelecomTest() {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/JetpackConnectionServiceTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/JetpackConnectionServiceTest.kt
index 0c199f0..e02ead9 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/JetpackConnectionServiceTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/JetpackConnectionServiceTest.kt
@@ -31,6 +31,7 @@
import androidx.core.telecom.test.utils.TestUtils
import androidx.core.telecom.test.utils.TestUtils.TEST_CALL_ATTRIB_NAME
import androidx.core.telecom.test.utils.TestUtils.TEST_PHONE_NUMBER_9001
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SdkSuppress
import androidx.test.filters.SmallTest
@@ -45,6 +46,7 @@
@SdkSuppress(minSdkVersion = VERSION_CODES.O /* api=26 */)
@RequiresApi(VERSION_CODES.O)
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class JetpackConnectionServiceTest : BaseTelecomTest() {
private val callChannels = CallChannels()
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipAppWithExtensions/VoipAppWithExtensionsControl.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipAppWithExtensions/VoipAppWithExtensionsControl.kt
index ee23c6e..3abb15c 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipAppWithExtensions/VoipAppWithExtensionsControl.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipAppWithExtensions/VoipAppWithExtensionsControl.kt
@@ -32,6 +32,7 @@
import androidx.core.telecom.extensions.Participant
import androidx.core.telecom.test.ITestAppControl
import androidx.core.telecom.test.utils.TestUtils
+import androidx.core.telecom.util.ExperimentalAppActions
import kotlinx.coroutines.CompletableDeferred
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -40,7 +41,7 @@
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
-@OptIn(ExperimentalCoroutinesApi::class)
+@OptIn(ExperimentalCoroutinesApi::class, ExperimentalAppActions::class)
@RequiresApi(Build.VERSION_CODES.O)
class VoipAppWithExtensionsControl : Service() {
var mCallsManager: CallsManager? = null
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipExtensionRegistrationTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipExtensionRegistrationTest.kt
index 4073a0e..ce180de 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipExtensionRegistrationTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/VoipExtensionRegistrationTest.kt
@@ -31,6 +31,7 @@
import androidx.core.telecom.internal.utils.Utils
import androidx.core.telecom.test.utils.BaseTelecomTest
import androidx.core.telecom.test.utils.TestUtils
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.MediumTest
import androidx.test.filters.SdkSuppress
@@ -47,6 +48,7 @@
@SdkSuppress(minSdkVersion = Build.VERSION_CODES.O)
@RequiresApi(Build.VERSION_CODES.O)
+@OptIn(ExperimentalAppActions::class)
@RunWith(AndroidJUnit4::class)
class VoipExtensionRegistrationTest : BaseTelecomTest() {
private lateinit var extensionRegistrationMap: Map<Int, (CallControlScope) -> Unit>
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/BaseTelecomTest.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/BaseTelecomTest.kt
index 46e933c..ae8521b 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/BaseTelecomTest.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/BaseTelecomTest.kt
@@ -30,6 +30,7 @@
import androidx.core.telecom.CallsManager
import androidx.core.telecom.internal.JetpackConnectionService
import androidx.core.telecom.internal.utils.Utils
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.core.app.ApplicationProvider
import androidx.test.filters.SdkSuppress
import androidx.testutils.TestExecutor
@@ -129,6 +130,7 @@
return mContext.packageManager.hasSystemFeature(PackageManager.FEATURE_TELECOM)
}
+ @OptIn(ExperimentalAppActions::class)
private suspend fun maybeCleanupStuckCalls() {
JetpackConnectionService.mPendingConnectionRequests.clear()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/MockInCallServiceDelegate.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/MockInCallServiceDelegate.kt
index 02d6efd..aec8d9a 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/MockInCallServiceDelegate.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/MockInCallServiceDelegate.kt
@@ -29,6 +29,7 @@
import androidx.core.telecom.internal.CallCompat
import androidx.core.telecom.internal.InCallServiceCompat
import androidx.core.telecom.test.utils.TestUtils.printParticipants
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.core.app.ActivityScenario.launch
import java.util.Collections
import kotlinx.coroutines.CoroutineScope
@@ -45,6 +46,7 @@
@RequiresApi(Build.VERSION_CODES.O)
internal class MockInCallServiceDelegate : Service() {
+ @OptIn(ExperimentalAppActions::class)
class InCallServiceWoExtensions(context: Context) : InCallService() {
init {
// Icky hack, but since we are using a delegate, we need to attach the Context manually.
@@ -60,12 +62,14 @@
mCalls.add(callCompat)
}
}
+
override fun onCallRemoved(call: Call) {
Log.i(LOG_TAG, String.format("ICS.onCallRemoved: call=[%s]", call))
mCalls.removeIf { c -> c.toCall() == call }
}
}
+ @ExperimentalAppActions
class InCallServiceWExtensions(context: Context) : InCallServiceCompat() {
init {
// Icky hack, but since we are using a delegate, we need to attach the Context manually.
@@ -98,11 +102,13 @@
companion object {
const val LOG_TAG = "MockInCallServiceDelegate"
+ @OptIn(ExperimentalAppActions::class)
val mCalls = Collections.synchronizedList(ArrayList<CallCompat>())
var mIsServiceBound = false
var mInCallServiceType: InCallServiceType = InCallServiceType.ICS_WITHOUT_EXTENSIONS
val mServiceFlow = MutableStateFlow<InCallService?>(null)
+ @OptIn(ExperimentalAppActions::class)
@Suppress("deprecation")
suspend fun destroyAllCalls() {
Log.i(LOG_TAG, "destroyAllCalls: Calls.size=[${mCalls.size}]")
@@ -128,6 +134,7 @@
}
}
+ @ExperimentalAppActions
fun getLastCall(): CallCompat? {
return if (mCalls.size == 0) {
null
@@ -136,6 +143,7 @@
}
}
+ @OptIn(ExperimentalAppActions::class)
fun getCallCount(): Int {
return mCalls.size
}
@@ -147,12 +155,14 @@
fun getService(): InCallService? {
return mServiceFlow.value
}
+ @ExperimentalAppActions
fun getServiceWithExtensions(): InCallServiceCompat? {
if (getService() !is InCallServiceCompat) return null
return getService() as InCallServiceCompat
}
}
+ @OptIn(ExperimentalAppActions::class)
override fun onCreate() {
Log.i(LOG_TAG, "Delegate service onCreate")
mServiceFlow.tryEmit(when (mInCallServiceType) {
diff --git a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/TestUtils.kt b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/TestUtils.kt
index 133ddc3..b9a5920 100644
--- a/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/TestUtils.kt
+++ b/core/core-telecom/src/androidTest/java/androidx/core/telecom/test/utils/TestUtils.kt
@@ -33,6 +33,7 @@
import androidx.core.telecom.extensions.Participant
import androidx.core.telecom.internal.CallCompat
import androidx.core.telecom.internal.utils.BuildVersionAdapter
+import androidx.core.telecom.util.ExperimentalAppActions
import androidx.test.platform.app.InstrumentationRegistry
import java.io.FileInputStream
import kotlinx.coroutines.TimeoutCancellationException
@@ -273,6 +274,7 @@
Log.i(LOG_TAG, "defaultDialer=[${getDefaultDialer()}]")
}
+ @OptIn(ExperimentalAppActions::class)
@Suppress("deprecation")
suspend fun waitOnInCallServiceToReachXCalls(targetCallCount: Int): Call? {
var targetCall: Call?
@@ -325,6 +327,7 @@
}
}
+ @OptIn(ExperimentalAppActions::class)
internal suspend fun waitOnInCallServiceToReachXCallCompats(targetCallCompatCount: Int):
CallCompat? {
var targetCallCompat: CallCompat? = null
@@ -394,6 +397,7 @@
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE
}
+ @ExperimentalAppActions
fun getDefaultParticipant(): Participant {
val p = Participant()
p.id = 123
@@ -409,6 +413,7 @@
)
}
+ @ExperimentalAppActions
fun printParticipants(participants: Set<Participant>, tag: String) {
Log.i(LOG_TAG, tag + ": printParticipants: set size=${participants.size}")
for (v in participants) {
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/CallsManager.kt b/core/core-telecom/src/main/java/androidx/core/telecom/CallsManager.kt
index dc9068a..eb53be1 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/CallsManager.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/CallsManager.kt
@@ -39,11 +39,13 @@
import androidx.core.telecom.internal.JetpackConnectionService
import androidx.core.telecom.internal.utils.Utils
import androidx.core.telecom.internal.utils.Utils.Companion.remapJetpackCapsToPlatformCaps
+import androidx.core.telecom.util.ExperimentalAppActions
import java.util.UUID
import java.util.concurrent.CancellationException
import java.util.concurrent.Executor
import kotlin.coroutines.coroutineContext
import kotlinx.coroutines.CompletableDeferred
+import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.TimeoutCancellationException
import kotlinx.coroutines.job
import kotlinx.coroutines.withTimeout
@@ -71,6 +73,7 @@
// A single declared constant for a direct [Executor], since the coroutines primitives we invoke
// from the associated callbacks will perform their own dispatch as needed.
private val mDirectExecutor = Executor { it.run() }
+ @ExperimentalAppActions
// Capabilities to be set by the VOIP app which will be used in addCall.
private var mCapabilities: MutableList<androidx.core.telecom.extensions.Capability> =
mutableListOf()
@@ -295,7 +298,7 @@
* @throws CancellationException if the call failed to be added within 5000 milliseconds
*/
@RequiresPermission(value = "android.permission.MANAGE_OWN_CALLS")
- @OptIn(kotlinx.coroutines.ExperimentalCoroutinesApi::class)
+ @OptIn(ExperimentalCoroutinesApi::class, ExperimentalAppActions::class)
@Suppress("ClassVerificationFailure")
suspend fun addCall(
callAttributes: CallAttributesCompat,
@@ -435,6 +438,7 @@
mCapabilities.clear()
}
+ @ExperimentalAppActions
private suspend fun pauseExecutionUntilCallIsReady_orTimeout(
openResult: CompletableDeferred<*>,
request: JetpackConnectionService.PendingConnectionRequest? = null
@@ -482,6 +486,7 @@
return mPhoneAccount
}
+ @ExperimentalAppActions
internal fun setVoipCapabilities(
capabilities: List<androidx.core.telecom.extensions.Capability>
) {
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/ParticipantClientExtension.kt b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/ParticipantClientExtension.kt
index 47d631591..bdb9ced 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/ParticipantClientExtension.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/ParticipantClientExtension.kt
@@ -58,6 +58,7 @@
}
// Allows the InCallService implementer to inspect state and perform requests to update state
+@ExperimentalAppActions
internal interface ParticipantClientActions {
val negotiatedActions: Set<Int>
val isParticipantExtensionSupported: Boolean
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipExtensionManager.kt b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipExtensionManager.kt
index 399668b..eb70958 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipExtensionManager.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipExtensionManager.kt
@@ -27,10 +27,11 @@
import androidx.core.telecom.extensions.Capability
import androidx.core.telecom.extensions.ICapabilityExchange
import androidx.core.telecom.internal.CallChannels
+import androidx.core.telecom.util.ExperimentalAppActions
import kotlin.coroutines.CoroutineContext
@RequiresApi(Build.VERSION_CODES.O)
[email protected](androidx.core.telecom.util.ExperimentalAppActions::class)
+@ExperimentalAppActions
internal class VoipExtensionManager(
private val context: Context,
private val coroutineContext: CoroutineContext?,
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipParticipantExtensionManager.kt b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipParticipantExtensionManager.kt
index 949da65..2b1c554 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipParticipantExtensionManager.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/extensions/voip/VoipParticipantExtensionManager.kt
@@ -321,20 +321,18 @@
* be translated to backing fields so, internally, we need to resolve the APIs for each
* CallControlScope using a delegate to mimic this behavior.
*/
+@ExperimentalAppActions
internal val CallControlScope.activeParticipant: MutableStateFlow<Participant?>?
- @ExperimentalAppActions
@RequiresApi(Build.VERSION_CODES.O)
get() = CallControlScopeExtensionSingleton.getInstance()
.PARTICIPANT_DELEGATE[getCallId()]?.activeParticipantFlow
-
+@ExperimentalAppActions
internal val CallControlScope.participants: MutableStateFlow<Set<Participant>>?
- @ExperimentalAppActions
@RequiresApi(Build.VERSION_CODES.O)
get() = CallControlScopeExtensionSingleton.getInstance()
.PARTICIPANT_DELEGATE[getCallId()]?.participantsFlow
-
+@ExperimentalAppActions
internal val CallControlScope.raisedHandParticipants: MutableStateFlow<Set<Participant>>?
- @ExperimentalAppActions
@RequiresApi(Build.VERSION_CODES.O)
get() = CallControlScopeExtensionSingleton.getInstance()
.PARTICIPANT_DELEGATE[getCallId()]?.raisedHandParticipantsFlow
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallChannels.kt b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallChannels.kt
index b6aa8a1..c0bc87c 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallChannels.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallChannels.kt
@@ -18,8 +18,10 @@
import androidx.core.telecom.CallEndpointCompat
import androidx.core.telecom.extensions.voip.VoipParticipantActionRequest
+import androidx.core.telecom.util.ExperimentalAppActions
import kotlinx.coroutines.channels.Channel
+@OptIn(ExperimentalAppActions::class)
internal class CallChannels(
val currentEndpointChannel: Channel<CallEndpointCompat> = Channel(Channel.UNLIMITED),
val availableEndpointChannel: Channel<List<CallEndpointCompat>> = Channel(Channel.UNLIMITED),
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSession.kt b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSession.kt
index 5067ba6..cb5816e 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSession.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSession.kt
@@ -90,6 +90,7 @@
}
}
+ @ExperimentalAppActions
class CallEventCallbackImpl(
private val callChannels: CallChannels,
private val coroutineContext: CoroutineContext,
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSessionLegacy.kt b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSessionLegacy.kt
index 82088c6..1a64a5f 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSessionLegacy.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/internal/CallSessionLegacy.kt
@@ -44,6 +44,7 @@
import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.launch
+@ExperimentalAppActions
@RequiresApi(VERSION_CODES.O)
internal class CallSessionLegacy(
private val id: ParcelUuid,
@@ -65,7 +66,6 @@
/**
* Stubbed supported capabilities for legacy connections.
*/
- @ExperimentalAppActions
private val supportedCapabilities = mutableListOf(Capability())
companion object {
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/internal/JetpackConnectionService.kt b/core/core-telecom/src/main/java/androidx/core/telecom/internal/JetpackConnectionService.kt
index 545472f..398ef7d 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/internal/JetpackConnectionService.kt
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/internal/JetpackConnectionService.kt
@@ -33,11 +33,13 @@
import androidx.core.telecom.CallsManager.Companion.CALL_CREATION_FAILURE_MSG
import androidx.core.telecom.extensions.voip.VoipExtensionManager
import androidx.core.telecom.internal.utils.Utils
+import androidx.core.telecom.util.ExperimentalAppActions
import java.util.UUID
import kotlin.coroutines.CoroutineContext
import kotlin.coroutines.cancellation.CancellationException
import kotlinx.coroutines.CompletableDeferred
+@OptIn(ExperimentalAppActions::class)
@RequiresApi(api = Build.VERSION_CODES.O)
internal class JetpackConnectionService : ConnectionService() {
private val TAG = JetpackConnectionService::class.java.simpleName
@@ -45,6 +47,7 @@
/**
* Wrap all the objects that are associated with a new CallSession request into a class
*/
+ @ExperimentalAppActions
data class PendingConnectionRequest(
/**
* requestIdMatcher - is important for matching requests sent to the platform via
diff --git a/core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.java b/core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.kt
similarity index 80%
rename from core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.java
rename to core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.kt
index 65af69e..510a739 100644
--- a/core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.java
+++ b/core/core-telecom/src/main/java/androidx/core/telecom/util/ExperimentalAppActions.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2023 The Android Open Source Project
+ * Copyright 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,13 +14,12 @@
* limitations under the License.
*/
-package androidx.core.telecom.util;
-
-import androidx.annotation.RequiresOptIn;
+package androidx.core.telecom.util
/**
* This API is still experimental. Any features associated with this annotation are unstable and
* should not be used in production.
*/
@RequiresOptIn
-public @interface ExperimentalAppActions {}
+@Retention(AnnotationRetention.BINARY)
+annotation class ExperimentalAppActions
diff --git a/libraryversions.toml b/libraryversions.toml
index 86dc06a..e5ac6ca 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -43,7 +43,7 @@
CORE_REMOTEVIEWS = "1.1.0-rc01"
CORE_ROLE = "1.2.0-alpha01"
CORE_SPLASHSCREEN = "1.2.0-alpha01"
-CORE_TELECOM = "1.0.0-alpha05"
+CORE_TELECOM = "1.0.0-alpha06"
CORE_UWB = "1.0.0-alpha08"
CREDENTIALS = "1.3.0-alpha04"
CREDENTIALS_E2EE_QUARANTINE = "1.0.0-alpha02"