mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-02 15:53:55 +01:00
Convert CommonsDaggerAppCompatActivity to kotlin
This commit is contained in:
parent
cba47c95a9
commit
834013c6c2
3 changed files with 59 additions and 69 deletions
|
|
@ -16,6 +16,7 @@ import dagger.android.HasFragmentInjector
|
||||||
import dagger.android.HasServiceInjector
|
import dagger.android.HasServiceInjector
|
||||||
import dagger.android.support.HasSupportFragmentInjector
|
import dagger.android.support.HasSupportFragmentInjector
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import androidx.fragment.app.Fragment as AndroidXFragmen
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides injectors for all sorts of components
|
* Provides injectors for all sorts of components
|
||||||
|
|
@ -24,26 +25,26 @@ import javax.inject.Inject
|
||||||
class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector,
|
class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector,
|
||||||
HasActivityInjector, HasFragmentInjector, HasSupportFragmentInjector, HasServiceInjector,
|
HasActivityInjector, HasFragmentInjector, HasSupportFragmentInjector, HasServiceInjector,
|
||||||
HasBroadcastReceiverInjector, HasContentProviderInjector {
|
HasBroadcastReceiverInjector, HasContentProviderInjector {
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var androidInjector: DispatchingAndroidInjector<Any>
|
var androidInjector: DispatchingAndroidInjector<Any>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var activityInjector: DispatchingAndroidInjector<Activity>
|
var activityInjector: DispatchingAndroidInjector<Activity>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var broadcastReceiverInjector: DispatchingAndroidInjector<BroadcastReceiver>
|
var broadcastReceiverInjector: DispatchingAndroidInjector<BroadcastReceiver>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var fragmentInjector: DispatchingAndroidInjector<Fragment>
|
var fragmentInjector: DispatchingAndroidInjector<Fragment>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var supportFragmentInjector: DispatchingAndroidInjector<androidx.fragment.app.Fragment>
|
var supportFragmentInjector: DispatchingAndroidInjector<AndroidXFragmen>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var serviceInjector: DispatchingAndroidInjector<Service>
|
var serviceInjector: DispatchingAndroidInjector<Service>? = null
|
||||||
|
|
||||||
@Inject
|
@Inject @JvmField
|
||||||
lateinit var contentProviderInjector: DispatchingAndroidInjector<ContentProvider>
|
var contentProviderInjector: DispatchingAndroidInjector<ContentProvider>? = null
|
||||||
|
|
||||||
val instance: ApplicationlessInjection get() = _instance!!
|
val instance: ApplicationlessInjection get() = _instance!!
|
||||||
|
|
||||||
|
|
@ -57,25 +58,25 @@ class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector
|
||||||
commonsApplicationComponent.inject(this)
|
commonsApplicationComponent.inject(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun androidInjector(): AndroidInjector<Any> =
|
override fun androidInjector(): AndroidInjector<Any>? =
|
||||||
androidInjector
|
androidInjector
|
||||||
|
|
||||||
override fun activityInjector(): DispatchingAndroidInjector<Activity> =
|
override fun activityInjector(): DispatchingAndroidInjector<Activity>? =
|
||||||
activityInjector
|
activityInjector
|
||||||
|
|
||||||
override fun fragmentInjector(): DispatchingAndroidInjector<Fragment> =
|
override fun fragmentInjector(): DispatchingAndroidInjector<Fragment>? =
|
||||||
fragmentInjector
|
fragmentInjector
|
||||||
|
|
||||||
override fun supportFragmentInjector(): DispatchingAndroidInjector<androidx.fragment.app.Fragment> =
|
override fun supportFragmentInjector(): DispatchingAndroidInjector<AndroidXFragmen>? =
|
||||||
supportFragmentInjector
|
supportFragmentInjector
|
||||||
|
|
||||||
override fun broadcastReceiverInjector(): DispatchingAndroidInjector<BroadcastReceiver> =
|
override fun broadcastReceiverInjector(): DispatchingAndroidInjector<BroadcastReceiver>? =
|
||||||
broadcastReceiverInjector
|
broadcastReceiverInjector
|
||||||
|
|
||||||
override fun serviceInjector(): DispatchingAndroidInjector<Service> =
|
override fun serviceInjector(): DispatchingAndroidInjector<Service>? =
|
||||||
serviceInjector
|
serviceInjector
|
||||||
|
|
||||||
override fun contentProviderInjector(): AndroidInjector<ContentProvider> =
|
override fun contentProviderInjector(): AndroidInjector<ContentProvider>? =
|
||||||
contentProviderInjector
|
contentProviderInjector
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
package fr.free.nrw.commons.di;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.fragment.app.Fragment;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
import dagger.android.AndroidInjector;
|
|
||||||
import dagger.android.DispatchingAndroidInjector;
|
|
||||||
import dagger.android.support.HasSupportFragmentInjector;
|
|
||||||
|
|
||||||
public abstract class CommonsDaggerAppCompatActivity extends AppCompatActivity implements HasSupportFragmentInjector {
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
DispatchingAndroidInjector<Fragment> supportFragmentInjector;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
||||||
inject();
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public AndroidInjector<Fragment> supportFragmentInjector() {
|
|
||||||
return supportFragmentInjector;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* when this Activity is created it injects an instance of this class inside
|
|
||||||
* activityInjector method of ApplicationlessInjection
|
|
||||||
*/
|
|
||||||
private void inject() {
|
|
||||||
ApplicationlessInjection injection = ApplicationlessInjection.getInstance(getApplicationContext());
|
|
||||||
|
|
||||||
AndroidInjector<Activity> activityInjector = injection.activityInjector();
|
|
||||||
|
|
||||||
if (activityInjector == null) {
|
|
||||||
throw new NullPointerException("ApplicationlessInjection.activityInjector() returned null");
|
|
||||||
}
|
|
||||||
|
|
||||||
activityInjector.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
package fr.free.nrw.commons.di
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import dagger.android.AndroidInjector
|
||||||
|
import dagger.android.DispatchingAndroidInjector
|
||||||
|
import dagger.android.support.HasSupportFragmentInjector
|
||||||
|
import fr.free.nrw.commons.di.ApplicationlessInjection.Companion.getInstance
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
abstract class CommonsDaggerAppCompatActivity : AppCompatActivity(), HasSupportFragmentInjector {
|
||||||
|
@Inject @JvmField
|
||||||
|
var supportFragmentInjector: DispatchingAndroidInjector<Fragment>? = null
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
inject()
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun supportFragmentInjector(): AndroidInjector<Fragment> {
|
||||||
|
return supportFragmentInjector!!
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* when this Activity is created it injects an instance of this class inside
|
||||||
|
* activityInjector method of ApplicationlessInjection
|
||||||
|
*/
|
||||||
|
private fun inject() {
|
||||||
|
val injection = getInstance(applicationContext)
|
||||||
|
|
||||||
|
val activityInjector = injection.activityInjector()
|
||||||
|
?: throw NullPointerException("ApplicationlessInjection.activityInjector() returned null")
|
||||||
|
|
||||||
|
activityInjector.inject(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue