mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-01 23:33: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 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