Skip to content

Commit 1e5521b

Browse files
authored
Convert dependency inject ("di") package to kotlin (commons-app#5976)
* Convert a batch of easier modules * Convert the NetworkingModule to kotlin * Converted the ApplicationlessInjection to kotlin * Convert CommonsDaggerAppCompatActivity to kotlin * Convert CommonsDaggerContentProvider to kotlin * Convert CommonsDaggerIntentService to kotlin * Convert CommonsDaggerService to kotlin * Convert CommonsDaggerSupportFragment to kotlin * Convert CommonsDaggerBroadcastReceiver to kotlin * Convert CommonsApplicationModule to kotlin * Fix imports and make them consistent
1 parent dac3657 commit 1e5521b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1274
-1465
lines changed

app/src/main/java/fr/free/nrw/commons/actions/ThanksClient.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package fr.free.nrw.commons.actions
33
import fr.free.nrw.commons.CommonsApplication
44
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
55
import fr.free.nrw.commons.auth.csrf.InvalidLoginTokenException
6-
import fr.free.nrw.commons.di.NetworkingModule.NAMED_COMMONS_CSRF
6+
import fr.free.nrw.commons.di.NetworkingModule.Companion.NAMED_COMMONS_CSRF
77
import io.reactivex.Observable
88
import javax.inject.Inject
99
import javax.inject.Named

app/src/main/java/fr/free/nrw/commons/campaigns/CampaignsPresenter.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ package fr.free.nrw.commons.campaigns
33
import android.annotation.SuppressLint
44
import fr.free.nrw.commons.BasePresenter
55
import fr.free.nrw.commons.campaigns.models.Campaign
6-
import fr.free.nrw.commons.di.CommonsApplicationModule
7-
import fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD
8-
import fr.free.nrw.commons.di.CommonsApplicationModule.MAIN_THREAD
6+
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.IO_THREAD
7+
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.MAIN_THREAD
98
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
109
import fr.free.nrw.commons.utils.CommonsDateUtil.getIso8601DateFormatShort
1110
import io.reactivex.Scheduler

app/src/main/java/fr/free/nrw/commons/contributions/ContributionBoundaryCallback.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package fr.free.nrw.commons.contributions
33
import androidx.paging.PagedList.BoundaryCallback
44
import fr.free.nrw.commons.auth.SessionManager
55
import fr.free.nrw.commons.di.CommonsApplicationModule
6+
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.IO_THREAD
67
import fr.free.nrw.commons.media.MediaClient
78
import io.reactivex.Scheduler
89
import io.reactivex.disposables.CompositeDisposable
@@ -20,7 +21,7 @@ class ContributionBoundaryCallback
2021
private val repository: ContributionsRepository,
2122
private val sessionManager: SessionManager,
2223
private val mediaClient: MediaClient,
23-
@param:Named(CommonsApplicationModule.IO_THREAD) private val ioThreadScheduler: Scheduler,
24+
@param:Named(IO_THREAD) private val ioThreadScheduler: Scheduler,
2425
) : BoundaryCallback<Contribution>() {
2526
private val compositeDisposable: CompositeDisposable = CompositeDisposable()
2627
var userName: String? = null

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsListPresenter.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package fr.free.nrw.commons.contributions;
22

3+
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
4+
35
import androidx.annotation.NonNull;
46
import androidx.lifecycle.LiveData;
57
import androidx.paging.DataSource;
@@ -34,7 +36,7 @@ public class ContributionsListPresenter implements UserActionListener {
3436
final ContributionBoundaryCallback contributionBoundaryCallback,
3537
final ContributionsRemoteDataSource contributionsRemoteDataSource,
3638
final ContributionsRepository repository,
37-
@Named(CommonsApplicationModule.IO_THREAD) final Scheduler ioThreadScheduler) {
39+
@Named(IO_THREAD) final Scheduler ioThreadScheduler) {
3840
this.contributionBoundaryCallback = contributionBoundaryCallback;
3941
this.repository = repository;
4042
this.ioThreadScheduler = ioThreadScheduler;

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsPresenter.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package fr.free.nrw.commons.contributions;
22

3+
import static fr.free.nrw.commons.di.CommonsApplicationModule.IO_THREAD;
34
import static fr.free.nrw.commons.utils.ImageUtils.IMAGE_OK;
45

56
import androidx.work.ExistingWorkPolicy;
@@ -31,7 +32,7 @@ public class ContributionsPresenter implements UserActionListener {
3132
@Inject
3233
ContributionsPresenter(ContributionsRepository repository,
3334
UploadRepository uploadRepository,
34-
@Named(CommonsApplicationModule.IO_THREAD) Scheduler ioThreadScheduler) {
35+
@Named(IO_THREAD) Scheduler ioThreadScheduler) {
3536
this.contributionsRepository = repository;
3637
this.uploadRepository = uploadRepository;
3738
this.ioThreadScheduler = ioThreadScheduler;

app/src/main/java/fr/free/nrw/commons/contributions/ContributionsRemoteDataSource.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package fr.free.nrw.commons.contributions
22

33
import androidx.paging.ItemKeyedDataSource
4-
import fr.free.nrw.commons.di.CommonsApplicationModule
4+
import fr.free.nrw.commons.di.CommonsApplicationModule.Companion.IO_THREAD
55
import fr.free.nrw.commons.media.MediaClient
66
import io.reactivex.Scheduler
77
import io.reactivex.disposables.CompositeDisposable
@@ -16,7 +16,7 @@ class ContributionsRemoteDataSource
1616
@Inject
1717
constructor(
1818
private val mediaClient: MediaClient,
19-
@param:Named(CommonsApplicationModule.IO_THREAD) private val ioThreadScheduler: Scheduler,
19+
@param:Named(IO_THREAD) private val ioThreadScheduler: Scheduler,
2020
) : ItemKeyedDataSource<Int, Contribution>() {
2121
private val compositeDisposable: CompositeDisposable = CompositeDisposable()
2222
var userName: String? = null

app/src/main/java/fr/free/nrw/commons/db/Converters.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@
2222
public class Converters {
2323

2424
public static Gson getGson() {
25-
return ApplicationlessInjection.getInstance(CommonsApplication.getInstance()).getCommonsApplicationComponent().gson();
25+
return ApplicationlessInjection
26+
.getInstance(CommonsApplication.getInstance())
27+
.getCommonsApplicationComponent()
28+
.gson();
2629
}
2730

2831
/**

app/src/main/java/fr/free/nrw/commons/di/ActivityBuilderModule.java

-90
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package fr.free.nrw.commons.di
2+
3+
import dagger.Module
4+
import dagger.android.ContributesAndroidInjector
5+
import fr.free.nrw.commons.AboutActivity
6+
import fr.free.nrw.commons.LocationPicker.LocationPickerActivity
7+
import fr.free.nrw.commons.WelcomeActivity
8+
import fr.free.nrw.commons.auth.LoginActivity
9+
import fr.free.nrw.commons.auth.SignupActivity
10+
import fr.free.nrw.commons.category.CategoryDetailsActivity
11+
import fr.free.nrw.commons.contributions.MainActivity
12+
import fr.free.nrw.commons.customselector.ui.selector.CustomSelectorActivity
13+
import fr.free.nrw.commons.description.DescriptionEditActivity
14+
import fr.free.nrw.commons.explore.SearchActivity
15+
import fr.free.nrw.commons.explore.depictions.WikidataItemDetailsActivity
16+
import fr.free.nrw.commons.media.ZoomableActivity
17+
import fr.free.nrw.commons.nearby.WikidataFeedback
18+
import fr.free.nrw.commons.notification.NotificationActivity
19+
import fr.free.nrw.commons.profile.ProfileActivity
20+
import fr.free.nrw.commons.review.ReviewActivity
21+
import fr.free.nrw.commons.settings.SettingsActivity
22+
import fr.free.nrw.commons.upload.UploadActivity
23+
import fr.free.nrw.commons.upload.UploadProgressActivity
24+
25+
/**
26+
* This Class handles the dependency injection (using dagger)
27+
* so, if a developer needs to add a new activity to the commons app
28+
* then that must be mentioned here to inject the dependencies
29+
*/
30+
@Module
31+
@Suppress("unused")
32+
abstract class ActivityBuilderModule {
33+
@ContributesAndroidInjector
34+
abstract fun bindLoginActivity(): LoginActivity
35+
36+
@ContributesAndroidInjector
37+
abstract fun bindWelcomeActivity(): WelcomeActivity
38+
39+
@ContributesAndroidInjector
40+
abstract fun bindContributionsActivity(): MainActivity
41+
42+
@ContributesAndroidInjector
43+
abstract fun bindCustomSelectorActivity(): CustomSelectorActivity
44+
45+
@ContributesAndroidInjector
46+
abstract fun bindSettingsActivity(): SettingsActivity
47+
48+
@ContributesAndroidInjector
49+
abstract fun bindAboutActivity(): AboutActivity
50+
51+
@ContributesAndroidInjector
52+
abstract fun bindLocationPickerActivity(): LocationPickerActivity
53+
54+
@ContributesAndroidInjector
55+
abstract fun bindSignupActivity(): SignupActivity
56+
57+
@ContributesAndroidInjector
58+
abstract fun bindNotificationActivity(): NotificationActivity
59+
60+
@ContributesAndroidInjector
61+
abstract fun bindUploadActivity(): UploadActivity
62+
63+
@ContributesAndroidInjector
64+
abstract fun bindSearchActivity(): SearchActivity
65+
66+
@ContributesAndroidInjector
67+
abstract fun bindCategoryDetailsActivity(): CategoryDetailsActivity
68+
69+
@ContributesAndroidInjector
70+
abstract fun bindDepictionDetailsActivity(): WikidataItemDetailsActivity
71+
72+
@ContributesAndroidInjector
73+
abstract fun bindAchievementsActivity(): ProfileActivity
74+
75+
@ContributesAndroidInjector
76+
abstract fun bindReviewActivity(): ReviewActivity
77+
78+
@ContributesAndroidInjector
79+
abstract fun bindDescriptionEditActivity(): DescriptionEditActivity
80+
81+
@ContributesAndroidInjector
82+
abstract fun bindZoomableActivity(): ZoomableActivity
83+
84+
@ContributesAndroidInjector
85+
abstract fun bindUploadProgressActivity(): UploadProgressActivity
86+
87+
@ContributesAndroidInjector
88+
abstract fun bindWikiFeedback(): WikidataFeedback
89+
}

app/src/main/java/fr/free/nrw/commons/di/ApplicationlessInjection.java

-105
This file was deleted.

0 commit comments

Comments
 (0)