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.support.HasSupportFragmentInjector
|
||||
import javax.inject.Inject
|
||||
import androidx.fragment.app.Fragment as AndroidXFragmen
|
||||
|
||||
/**
|
||||
* Provides injectors for all sorts of components
|
||||
|
|
@ -24,26 +25,26 @@ import javax.inject.Inject
|
|||
class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector,
|
||||
HasActivityInjector, HasFragmentInjector, HasSupportFragmentInjector, HasServiceInjector,
|
||||
HasBroadcastReceiverInjector, HasContentProviderInjector {
|
||||
@Inject
|
||||
lateinit var androidInjector: DispatchingAndroidInjector<Any>
|
||||
@Inject @JvmField
|
||||
var androidInjector: DispatchingAndroidInjector<Any>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var activityInjector: DispatchingAndroidInjector<Activity>
|
||||
@Inject @JvmField
|
||||
var activityInjector: DispatchingAndroidInjector<Activity>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var broadcastReceiverInjector: DispatchingAndroidInjector<BroadcastReceiver>
|
||||
@Inject @JvmField
|
||||
var broadcastReceiverInjector: DispatchingAndroidInjector<BroadcastReceiver>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var fragmentInjector: DispatchingAndroidInjector<Fragment>
|
||||
@Inject @JvmField
|
||||
var fragmentInjector: DispatchingAndroidInjector<Fragment>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var supportFragmentInjector: DispatchingAndroidInjector<androidx.fragment.app.Fragment>
|
||||
@Inject @JvmField
|
||||
var supportFragmentInjector: DispatchingAndroidInjector<AndroidXFragmen>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var serviceInjector: DispatchingAndroidInjector<Service>
|
||||
@Inject @JvmField
|
||||
var serviceInjector: DispatchingAndroidInjector<Service>? = null
|
||||
|
||||
@Inject
|
||||
lateinit var contentProviderInjector: DispatchingAndroidInjector<ContentProvider>
|
||||
@Inject @JvmField
|
||||
var contentProviderInjector: DispatchingAndroidInjector<ContentProvider>? = null
|
||||
|
||||
val instance: ApplicationlessInjection get() = _instance!!
|
||||
|
||||
|
|
@ -57,25 +58,25 @@ class ApplicationlessInjection(applicationContext: Context) : HasAndroidInjector
|
|||
commonsApplicationComponent.inject(this)
|
||||
}
|
||||
|
||||
override fun androidInjector(): AndroidInjector<Any> =
|
||||
override fun androidInjector(): AndroidInjector<Any>? =
|
||||
androidInjector
|
||||
|
||||
override fun activityInjector(): DispatchingAndroidInjector<Activity> =
|
||||
override fun activityInjector(): DispatchingAndroidInjector<Activity>? =
|
||||
activityInjector
|
||||
|
||||
override fun fragmentInjector(): DispatchingAndroidInjector<Fragment> =
|
||||
override fun fragmentInjector(): DispatchingAndroidInjector<Fragment>? =
|
||||
fragmentInjector
|
||||
|
||||
override fun supportFragmentInjector(): DispatchingAndroidInjector<androidx.fragment.app.Fragment> =
|
||||
override fun supportFragmentInjector(): DispatchingAndroidInjector<AndroidXFragmen>? =
|
||||
supportFragmentInjector
|
||||
|
||||
override fun broadcastReceiverInjector(): DispatchingAndroidInjector<BroadcastReceiver> =
|
||||
override fun broadcastReceiverInjector(): DispatchingAndroidInjector<BroadcastReceiver>? =
|
||||
broadcastReceiverInjector
|
||||
|
||||
override fun serviceInjector(): DispatchingAndroidInjector<Service> =
|
||||
override fun serviceInjector(): DispatchingAndroidInjector<Service>? =
|
||||
serviceInjector
|
||||
|
||||
override fun contentProviderInjector(): AndroidInjector<ContentProvider> =
|
||||
override fun contentProviderInjector(): AndroidInjector<ContentProvider>? =
|
||||
contentProviderInjector
|
||||
|
||||
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