Disable firebase appdistribution

We don't want to use it.
And we do not want the REQUEST_INSTALL_PACKAGES permission from that.

Change-Id: I82aeab98116bebeface33667e604300df0a71fa7
This commit is contained in:
SpiritCroc 2022-09-17 10:17:51 +02:00
parent 1746121b54
commit cffa41da95
4 changed files with 15 additions and 86 deletions

View file

@ -84,8 +84,8 @@ ext.libs = [
], ],
google : [ google : [
'material' : "com.google.android.material:material:1.6.1", 'material' : "com.google.android.material:material:1.6.1",
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution", //'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution", //'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
// Phone number https://github.com/google/libphonenumber // Phone number https://github.com/google/libphonenumber
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.54" 'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.54"
], ],

View file

@ -187,9 +187,9 @@ dependencies {
// Nightly // Nightly
// API-only library // API-only library
gplayImplementation libs.google.appdistributionApi //gplayImplementation libs.google.appdistributionApi
// Full SDK implementation // Full SDK implementation
gplayImplementation libs.google.appdistribution //gplayImplementation libs.google.appdistribution
// Work // Work
api libs.androidx.work api libs.androidx.work

View file

@ -26,7 +26,7 @@ import im.vector.app.core.pushers.FcmHelper
import im.vector.app.core.services.GuardServiceStarter import im.vector.app.core.services.GuardServiceStarter
import im.vector.app.features.home.NightlyProxy import im.vector.app.features.home.NightlyProxy
import im.vector.app.features.settings.legals.FlavorLegals import im.vector.app.features.settings.legals.FlavorLegals
import im.vector.app.nightly.FirebaseNightlyProxy //import im.vector.app.nightly.FirebaseNightlyProxy
import im.vector.app.push.fcm.GoogleFcmHelper import im.vector.app.push.fcm.GoogleFcmHelper
@InstallIn(SingletonComponent::class) @InstallIn(SingletonComponent::class)
@ -38,10 +38,18 @@ abstract class FlavorModule {
fun provideGuardServiceStarter(): GuardServiceStarter { fun provideGuardServiceStarter(): GuardServiceStarter {
return object : GuardServiceStarter {} return object : GuardServiceStarter {}
} }
// SC: Copied from fdroid FlavorModule
@Provides
fun provideNightlyProxy() = object : NightlyProxy {
override fun onHomeResumed() {
// no op
}
}
} }
@Binds //@Binds
abstract fun bindsNightlyProxy(nightlyProxy: FirebaseNightlyProxy): NightlyProxy //abstract fun bindsNightlyProxy(nightlyProxy: FirebaseNightlyProxy): NightlyProxy
@Binds @Binds
abstract fun bindsFcmHelper(fcmHelper: GoogleFcmHelper): FcmHelper abstract fun bindsFcmHelper(fcmHelper: GoogleFcmHelper): FcmHelper

View file

@ -1,79 +0,0 @@
/*
* Copyright (c) 2022 New Vector Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package im.vector.app.nightly
import android.content.SharedPreferences
import androidx.core.content.edit
import com.google.firebase.appdistribution.FirebaseAppDistribution
import com.google.firebase.appdistribution.FirebaseAppDistributionException
import im.vector.app.core.di.DefaultPreferences
import im.vector.app.core.resources.BuildMeta
import im.vector.app.core.time.Clock
import im.vector.app.features.home.NightlyProxy
import timber.log.Timber
import javax.inject.Inject
class FirebaseNightlyProxy @Inject constructor(
private val clock: Clock,
@DefaultPreferences
private val sharedPreferences: SharedPreferences,
private val buildMeta: BuildMeta,
) : NightlyProxy {
override fun onHomeResumed() {
if (!canDisplayPopup()) return
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { up ->
Timber.d("FirebaseAppDistribution progress: ${up.updateStatus}. ${up.apkBytesDownloaded}/${up.apkFileTotalBytes}")
}
.addOnFailureListener { e ->
if (e is FirebaseAppDistributionException) {
when (e.errorCode) {
FirebaseAppDistributionException.Status.NOT_IMPLEMENTED -> {
// SDK did nothing. This is expected when building for Play.
}
else -> {
// Handle other errors.
Timber.e(e, "FirebaseAppDistribution error, status: ${e.errorCode}")
}
}
} else {
Timber.e(e, "FirebaseAppDistribution - other error")
}
}
}
private fun canDisplayPopup(): Boolean {
if (buildMeta.applicationId != "im.vector.app.nightly") return false
val today = clock.epochMillis() / A_DAY_IN_MILLIS
val lastDisplayPopupDay = sharedPreferences.getLong(SHARED_PREF_KEY, 0)
return (today > lastDisplayPopupDay)
.also { canDisplayPopup ->
if (canDisplayPopup) {
sharedPreferences.edit {
putLong(SHARED_PREF_KEY, today)
}
}
}
}
companion object {
private const val A_DAY_IN_MILLIS = 8_600_000L
private const val SHARED_PREF_KEY = "LAST_NIGHTLY_POPUP_DAY"
}
}