That fuck shit the fascists are using
at master 52 lines 1.8 kB view raw
1package org.tm.archive 2 3import org.signal.core.util.concurrent.SignalExecutors 4import org.signal.core.util.logging.AndroidLogger 5import org.signal.core.util.logging.Log 6import org.signal.libsignal.protocol.logging.SignalProtocolLoggerProvider 7import org.tm.archive.database.LogDatabase 8import org.tm.archive.dependencies.ApplicationDependencies 9import org.tm.archive.dependencies.ApplicationDependencyProvider 10import org.tm.archive.dependencies.InstrumentationApplicationDependencyProvider 11import org.tm.archive.logging.CustomSignalProtocolLogger 12import org.tm.archive.logging.PersistentLogger 13import org.tm.archive.testing.InMemoryLogger 14 15/** 16 * Application context for running instrumentation tests (aka androidTests). 17 */ 18class SignalInstrumentationApplicationContext : ApplicationContext() { 19 20 val inMemoryLogger: InMemoryLogger = InMemoryLogger() 21 22 override fun initializeAppDependencies() { 23 val default = ApplicationDependencyProvider(this) 24 ApplicationDependencies.init(this, InstrumentationApplicationDependencyProvider(this, default)) 25 ApplicationDependencies.getDeadlockDetector().start() 26 } 27 28 override fun initializeLogging() { 29 Log.initialize({ true }, AndroidLogger(), PersistentLogger(this), inMemoryLogger) 30 31 SignalProtocolLoggerProvider.setProvider(CustomSignalProtocolLogger()) 32 33 SignalExecutors.UNBOUNDED.execute { 34 Log.blockUntilAllWritesFinished() 35 LogDatabase.getInstance(this).logs.trimToSize() 36 } 37 } 38 39 override fun beginJobLoop() = Unit 40 41 /** 42 * Some of the jobs can interfere with some of the instrumentation tests. 43 * 44 * For example, we may try to create a release channel recipient while doing 45 * an import/backup test. 46 * 47 * This can be used to start the job loop if needed for tests that rely on it. 48 */ 49 fun beginJobLoopForTests() { 50 super.beginJobLoop() 51 } 52}