mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-03 16:23:54 +01:00
Converted the ApplicationlessInjection to kotlin
This commit is contained in:
parent
f5388c4acc
commit
cba47c95a9
3 changed files with 101 additions and 106 deletions
|
|
@ -22,7 +22,10 @@ import java.util.Map;
|
||||||
public class Converters {
|
public class Converters {
|
||||||
|
|
||||||
public static Gson getGson() {
|
public static Gson getGson() {
|
||||||
return ApplicationlessInjection.getInstance(CommonsApplication.getInstance()).getCommonsApplicationComponent().gson();
|
return ApplicationlessInjection
|
||||||
|
.getInstance(CommonsApplication.getInstance())
|
||||||
|
.getCommonsApplicationComponent()
|
||||||
|
.gson();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
||||||
package fr.free.nrw.commons.di;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Service;
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.ContentProvider;
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import dagger.android.HasAndroidInjector;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import dagger.android.AndroidInjector;
|
|
||||||
import dagger.android.DispatchingAndroidInjector;
|
|
||||||
import dagger.android.HasActivityInjector;
|
|
||||||
import dagger.android.HasBroadcastReceiverInjector;
|
|
||||||
import dagger.android.HasContentProviderInjector;
|
|
||||||
import dagger.android.HasFragmentInjector;
|
|
||||||
import dagger.android.HasServiceInjector;
|
|
||||||
import dagger.android.support.HasSupportFragmentInjector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Provides injectors for all sorts of components
|
|
||||||
* Ex: Activities, Fragments, Services, ContentProviders
|
|
||||||
*/
|
|
||||||
public class ApplicationlessInjection
|
|
||||||
implements
|
|
||||||
HasAndroidInjector,
|
|
||||||
HasActivityInjector,
|
|
||||||
HasFragmentInjector,
|
|
||||||
HasSupportFragmentInjector,
|
|
||||||
HasServiceInjector,
|
|
||||||
HasBroadcastReceiverInjector,
|
|
||||||
HasContentProviderInjector {
|
|
||||||
|
|
||||||
private static ApplicationlessInjection instance = null;
|
|
||||||
|
|
||||||
@Inject DispatchingAndroidInjector<Object> androidInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<Activity> activityInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<BroadcastReceiver> broadcastReceiverInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<android.app.Fragment> fragmentInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<Fragment> supportFragmentInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<Service> serviceInjector;
|
|
||||||
@Inject DispatchingAndroidInjector<ContentProvider> contentProviderInjector;
|
|
||||||
|
|
||||||
private CommonsApplicationComponent commonsApplicationComponent;
|
|
||||||
|
|
||||||
public ApplicationlessInjection(Context applicationContext) {
|
|
||||||
commonsApplicationComponent = DaggerCommonsApplicationComponent.builder()
|
|
||||||
.appModule(new CommonsApplicationModule(applicationContext)).build();
|
|
||||||
commonsApplicationComponent.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AndroidInjector<Object> androidInjector() {
|
|
||||||
return androidInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DispatchingAndroidInjector<Activity> activityInjector() {
|
|
||||||
return activityInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DispatchingAndroidInjector<android.app.Fragment> fragmentInjector() {
|
|
||||||
return fragmentInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DispatchingAndroidInjector<Fragment> supportFragmentInjector() {
|
|
||||||
return supportFragmentInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DispatchingAndroidInjector<BroadcastReceiver> broadcastReceiverInjector() {
|
|
||||||
return broadcastReceiverInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public DispatchingAndroidInjector<Service> serviceInjector() {
|
|
||||||
return serviceInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AndroidInjector<ContentProvider> contentProviderInjector() {
|
|
||||||
return contentProviderInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommonsApplicationComponent getCommonsApplicationComponent() {
|
|
||||||
return commonsApplicationComponent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ApplicationlessInjection getInstance(Context applicationContext) {
|
|
||||||
if (instance == null) {
|
|
||||||
synchronized (ApplicationlessInjection.class) {
|
|
||||||
if (instance == null) {
|
|
||||||
instance = new ApplicationlessInjection(applicationContext);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return instance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
package fr.free.nrw.commons.di
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.app.Fragment
|
||||||
|
import android.app.Service
|
||||||
|
import android.content.BroadcastReceiver
|
||||||
|
import android.content.ContentProvider
|
||||||
|
import android.content.Context
|
||||||
|
import dagger.android.AndroidInjector
|
||||||
|
import dagger.android.DispatchingAndroidInjector
|
||||||
|
import dagger.android.HasActivityInjector
|
||||||
|
import dagger.android.HasAndroidInjector
|
||||||
|
import dagger.android.HasBroadcastReceiverInjector
|
||||||
|
import dagger.android.HasContentProviderInjector
|
||||||
|
import dagger.android.HasFragmentInjector
|
||||||
|
import dagger.android.HasServiceInjector
|
||||||
|
import dagger.android.support.HasSupportFragmentInjector
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides injectors for all sorts of components
|
||||||
|
* Ex: Activities, Fragments, Services, ContentProviders
|
||||||
|
*/
|
||||||
|
class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector,
|
||||||
|
HasActivityInjector, HasFragmentInjector, HasSupportFragmentInjector, HasServiceInjector,
|
||||||
|
HasBroadcastReceiverInjector, HasContentProviderInjector {
|
||||||
|
@Inject
|
||||||
|
lateinit var androidInjector: DispatchingAndroidInjector<Any>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var activityInjector: DispatchingAndroidInjector<Activity>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var broadcastReceiverInjector: DispatchingAndroidInjector<BroadcastReceiver>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var fragmentInjector: DispatchingAndroidInjector<Fragment>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var supportFragmentInjector: DispatchingAndroidInjector<androidx.fragment.app.Fragment>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var serviceInjector: DispatchingAndroidInjector<Service>
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
lateinit var contentProviderInjector: DispatchingAndroidInjector<ContentProvider>
|
||||||
|
|
||||||
|
val instance: ApplicationlessInjection get() = _instance!!
|
||||||
|
|
||||||
|
val commonsApplicationComponent: CommonsApplicationComponent =
|
||||||
|
DaggerCommonsApplicationComponent
|
||||||
|
.builder()
|
||||||
|
.appModule(CommonsApplicationModule(applicationContext))
|
||||||
|
.build()
|
||||||
|
|
||||||
|
init {
|
||||||
|
commonsApplicationComponent.inject(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun androidInjector(): AndroidInjector<Any> =
|
||||||
|
androidInjector
|
||||||
|
|
||||||
|
override fun activityInjector(): DispatchingAndroidInjector<Activity> =
|
||||||
|
activityInjector
|
||||||
|
|
||||||
|
override fun fragmentInjector(): DispatchingAndroidInjector<Fragment> =
|
||||||
|
fragmentInjector
|
||||||
|
|
||||||
|
override fun supportFragmentInjector(): DispatchingAndroidInjector<androidx.fragment.app.Fragment> =
|
||||||
|
supportFragmentInjector
|
||||||
|
|
||||||
|
override fun broadcastReceiverInjector(): DispatchingAndroidInjector<BroadcastReceiver> =
|
||||||
|
broadcastReceiverInjector
|
||||||
|
|
||||||
|
override fun serviceInjector(): DispatchingAndroidInjector<Service> =
|
||||||
|
serviceInjector
|
||||||
|
|
||||||
|
override fun contentProviderInjector(): AndroidInjector<ContentProvider> =
|
||||||
|
contentProviderInjector
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private var _instance: ApplicationlessInjection? = null
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun getInstance(applicationContext: Context): ApplicationlessInjection {
|
||||||
|
if (_instance == null) {
|
||||||
|
synchronized(ApplicationlessInjection::class.java) {
|
||||||
|
if (_instance == null) {
|
||||||
|
_instance = ApplicationlessInjection(applicationContext)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _instance!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue