Replace default methods with helper classes.

This is a workaround for AbstractMethodErrors
thrown by on-device tests.
This commit is contained in:
akwizgran
2019-12-11 16:27:55 +00:00
parent 5ba64577bd
commit 5962d3c763
35 changed files with 182 additions and 144 deletions

View File

@@ -73,7 +73,7 @@ import dagger.Component;
})
public interface AndroidComponent
extends BrambleCoreEagerSingletons, BrambleAndroidEagerSingletons,
BriarCoreEagerSingletons {
BriarCoreEagerSingletons, AndroidEagerSingletons {
// Exposed objects
@CryptoExecutor
@@ -176,7 +176,4 @@ public interface AndroidComponent
void inject(EmojiTextInputView textInputView);
void inject(BriarModelLoader briarModelLoader);
// Eager singleton load
void inject(AppModule.EagerSingletons init);
}

View File

@@ -1,8 +1,13 @@
package org.briarproject.briar.android;
class AndroidEagerSingletons {
interface AndroidEagerSingletons {
static void initEagerSingletons(AndroidComponent c) {
c.inject(new AppModule.EagerSingletons());
void inject(AppModule.EagerSingletons init);
class Helper {
static void injectEagerSingletons(AndroidEagerSingletons c) {
c.inject(new AppModule.EagerSingletons());
}
}
}

View File

@@ -17,9 +17,9 @@ import com.vanniktech.emoji.google.GoogleEmojiProvider;
import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;
import org.briarproject.bramble.BrambleAndroidModule;
import org.briarproject.bramble.BrambleCoreModule;
import org.briarproject.briar.BriarCoreModule;
import org.briarproject.bramble.BrambleAndroidEagerSingletons;
import org.briarproject.bramble.BrambleCoreEagerSingletons;
import org.briarproject.briar.BriarCoreEagerSingletons;
import org.briarproject.briar.BuildConfig;
import org.briarproject.briar.R;
import org.briarproject.briar.android.logging.CachingLogHandler;
@@ -133,10 +133,12 @@ public class BriarApplicationImpl extends Application
// We need to load the eager singletons directly after making the
// dependency graphs
BrambleCoreModule.initEagerSingletons(androidComponent);
BrambleAndroidModule.initEagerSingletons(androidComponent);
BriarCoreModule.initEagerSingletons(androidComponent);
AndroidEagerSingletons.initEagerSingletons(androidComponent);
BrambleCoreEagerSingletons.Helper
.injectEagerSingletons(androidComponent);
BrambleAndroidEagerSingletons.Helper
.injectEagerSingletons(androidComponent);
BriarCoreEagerSingletons.Helper.injectEagerSingletons(androidComponent);
AndroidEagerSingletons.Helper.injectEagerSingletons(androidComponent);
return androidComponent;
}