Skip to content

Commit

Permalink
Disable Hyperion on Firebase Test Lab
Browse files Browse the repository at this point in the history
  • Loading branch information
koral-- committed Aug 1, 2019
1 parent 70e05d1 commit 414a873
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 1 deletion.
12 changes: 11 additions & 1 deletion library/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
<manifest package="pl.droidsonroids.foqa"/>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pl.droidsonroids.foqa">

<application>
<provider
android:name=".HyperionDisableProvider"
android:authorities="${applicationId}.hyperionDisableProvider"
android:exported="false"
android:initOrder="-2147483648" />
</application>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package pl.droidsonroids.foqa

import android.content.ComponentName
import android.content.ContentProvider
import android.content.ContentValues
import android.content.Context
import android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED
import android.content.pm.PackageManager.DONT_KILL_APP
import android.content.pm.ProviderInfo
import android.net.Uri
import android.provider.Settings
import com.willowtreeapps.hyperion.core.internal.HyperionInitProvider

class HyperionDisableProvider : ContentProvider() {

override fun onCreate() = true

override fun attachInfo(context: Context, info: ProviderInfo?) {
super.attachInfo(context, info)
if (isRunningOnFirebaseTestLab(context)) {
disableHyperion(context)
}
}

private fun isRunningOnFirebaseTestLab(context: Context) = Settings.System.getString(context.contentResolver, "firebase.test.lab") == "true"

private fun disableHyperion(context: Context) {
val hyperionInitProvider = ComponentName(context, HyperionInitProvider::class.java)
context.packageManager.setComponentEnabledSetting(hyperionInitProvider, COMPONENT_ENABLED_STATE_DISABLED, DONT_KILL_APP)
}

override fun insert(uri: Uri, values: ContentValues?): Nothing? = null

override fun query(uri: Uri, projection: Array<String>?, selection: String?, selectionArgs: Array<String>?, sortOrder: String?): Nothing? = null

override fun update(uri: Uri, values: ContentValues?, selection: String?, selectionArgs: Array<String>?) = 0

override fun delete(uri: Uri, selection: String?, selectionArgs: Array<String>?) = 0

override fun getType(uri: Uri): Nothing? = null
}

0 comments on commit 414a873

Please sign in to comment.