diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ad46a8f16a5..f14afc9459d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -19,9 +19,8 @@ + android:sharedUserId="${sharedUserId}"> @@ -61,14 +60,13 @@ android:required="false" /> + android:name="android.hardware.camera" + android:required="false" /> + android:name=".ui.calling.CallActivity" + android:exported="true" + android:hardwareAccelerated="true" + android:launchMode="singleTop" + android:screenOrientation="portrait" + android:taskAffinity="wire.call" + android:theme="@style/AppTheme" /> @@ -240,8 +239,8 @@ @@ -250,6 +249,10 @@ We make a custom Firebase init, because the app selects the Firebase project at a runtime, so we need to remove default FirebaseInitProvider and create our custom FirebaseInitializer. --> + + - + android:exported="false" + android:foregroundServiceType="specialUse"> baseContext.getActivity() else -> null } + +fun Context.getMetadataByKey(key: String): String { + val applicationInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA) + val keyValue = applicationInfo.metaData?.getString(key) + return keyValue.toString() +} diff --git a/app/src/nonfree/kotlin/com/wire/android/initializer/FirebaseInitializer.kt b/app/src/nonfree/kotlin/com/wire/android/initializer/FirebaseInitializer.kt index 2a5f62a33ad..fa1fe4c0ceb 100644 --- a/app/src/nonfree/kotlin/com/wire/android/initializer/FirebaseInitializer.kt +++ b/app/src/nonfree/kotlin/com/wire/android/initializer/FirebaseInitializer.kt @@ -22,6 +22,7 @@ import androidx.startup.Initializer import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseOptions import com.wire.android.BuildConfig +import com.wire.android.util.extension.getMetadataByKey import com.wire.android.util.extension.isGoogleServicesAvailable class FirebaseInitializer : Initializer { @@ -30,11 +31,12 @@ class FirebaseInitializer : Initializer { val firebaseOptions = FirebaseOptions.Builder() .setApplicationId(BuildConfig.FIREBASE_APP_ID) .setGcmSenderId(BuildConfig.FIREBASE_PUSH_SENDER_ID) - .setApiKey(BuildConfig.GOOGLE_API_KEY) + .setApiKey(context.getMetadataByKey("gcp.firebase.API_KEY")) .setProjectId(BuildConfig.FCM_PROJECT_ID) .build() FirebaseApp.initializeApp(context, firebaseOptions) } } + override fun dependencies(): List>> = emptyList() // no dependencies on other libraries } diff --git a/buildSrc/src/main/kotlin/scripts/variants.gradle.kts b/buildSrc/src/main/kotlin/scripts/variants.gradle.kts index f3e5e9314da..39c22e4e103 100644 --- a/buildSrc/src/main/kotlin/scripts/variants.gradle.kts +++ b/buildSrc/src/main/kotlin/scripts/variants.gradle.kts @@ -198,12 +198,17 @@ android { FeatureConfigs.values().forEach { configs -> when (configs.configType) { ConfigType.STRING -> { - buildStringConfig( - flavor, - configs.configType.type, - configs.name, - flavorMap[flavor.name]?.get(configs.value)?.toString() - ) + if (FeatureConfigs.GOOGLE_API_KEY.value == configs.value) { + val apiKey:String? = flavorMap[flavor.name]?.get(configs.value)?.toString() + flavor.manifestPlaceholders["GCP_API_KEY"] = apiKey ?: "" + } else { + buildStringConfig( + flavor, + configs.configType.type, + configs.name, + flavorMap[flavor.name]?.get(configs.value)?.toString() + ) + } } ConfigType.INT,