mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Correctly configured injection for fragments and services.
This commit is contained in:
parent
cfe17cafa6
commit
388f588301
10 changed files with 87 additions and 14 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
package fr.free.nrw.commons;
|
package fr.free.nrw.commons;
|
||||||
|
|
||||||
import android.app.Service;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
@ -9,7 +8,9 @@ import android.os.IBinder;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
|
|
||||||
public abstract class HandlerService<T> extends Service {
|
import dagger.android.DaggerService;
|
||||||
|
|
||||||
|
public abstract class HandlerService<T> extends DaggerService {
|
||||||
private volatile Looper threadLooper;
|
private volatile Looper threadLooper;
|
||||||
private volatile ServiceHandler threadHandler;
|
private volatile ServiceHandler threadHandler;
|
||||||
private String serviceName;
|
private String serviceName;
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,15 @@ import android.os.IBinder;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import dagger.android.DaggerService;
|
||||||
import fr.free.nrw.commons.CommonsApplication;
|
import fr.free.nrw.commons.CommonsApplication;
|
||||||
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
import fr.free.nrw.commons.mwapi.MediaWikiApi;
|
||||||
|
|
||||||
public class WikiAccountAuthenticatorService extends Service {
|
public class WikiAccountAuthenticatorService extends DaggerService {
|
||||||
|
|
||||||
@Inject MediaWikiApi mwApi;
|
@Inject MediaWikiApi mwApi;
|
||||||
@Inject AccountUtil accountUtil;
|
@Inject AccountUtil accountUtil;
|
||||||
|
|
||||||
private WikiAccountAuthenticator wikiAccountAuthenticator = null;
|
private WikiAccountAuthenticator wikiAccountAuthenticator = null;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -22,7 +24,6 @@ public class WikiAccountAuthenticatorService extends Service {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
((CommonsApplication)getApplication()).injector().inject(this);
|
|
||||||
if (wikiAccountAuthenticator == null) {
|
if (wikiAccountAuthenticator == null) {
|
||||||
wikiAccountAuthenticator = new WikiAccountAuthenticator(this, accountUtil, mwApi);
|
wikiAccountAuthenticator = new WikiAccountAuthenticator(this, accountUtil, mwApi);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,15 +19,13 @@ import fr.free.nrw.commons.upload.UploadService;
|
||||||
AndroidInjectionModule.class,
|
AndroidInjectionModule.class,
|
||||||
AndroidSupportInjectionModule.class,
|
AndroidSupportInjectionModule.class,
|
||||||
ActivityBuilderModule.class,
|
ActivityBuilderModule.class,
|
||||||
|
FragmentBuilderModule.class,
|
||||||
|
ServiceBuilderModule.class,
|
||||||
ContentProviderBuilderModule.class
|
ContentProviderBuilderModule.class
|
||||||
})
|
})
|
||||||
public interface CommonsApplicationComponent extends AndroidInjector<CommonsApplication> {
|
public interface CommonsApplicationComponent extends AndroidInjector<CommonsApplication> {
|
||||||
void inject(CommonsApplication application);
|
void inject(CommonsApplication application);
|
||||||
|
|
||||||
void inject(WikiAccountAuthenticatorService service);
|
|
||||||
|
|
||||||
void inject(UploadService service);
|
|
||||||
|
|
||||||
void inject(ContributionsSyncAdapter syncAdapter);
|
void inject(ContributionsSyncAdapter syncAdapter);
|
||||||
|
|
||||||
void inject(ModificationsSyncAdapter syncAdapter);
|
void inject(ModificationsSyncAdapter syncAdapter);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
package fr.free.nrw.commons.di;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.android.ContributesAndroidInjector;
|
||||||
|
import fr.free.nrw.commons.category.CategorizationFragment;
|
||||||
|
import fr.free.nrw.commons.contributions.ContributionsListFragment;
|
||||||
|
import fr.free.nrw.commons.media.MediaDetailFragment;
|
||||||
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
||||||
|
import fr.free.nrw.commons.nearby.NearbyListFragment;
|
||||||
|
import fr.free.nrw.commons.nearby.NoPermissionsFragment;
|
||||||
|
import fr.free.nrw.commons.settings.SettingsFragment;
|
||||||
|
import fr.free.nrw.commons.upload.MultipleUploadListFragment;
|
||||||
|
import fr.free.nrw.commons.upload.SingleUploadFragment;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
public abstract class FragmentBuilderModule {
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract CategorizationFragment bindCategorizationFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract ContributionsListFragment bindContributionsListFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract MediaDetailFragment bindMediaDetailFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract MediaDetailPagerFragment bindMediaDetailPagerFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract NearbyListFragment bindNearbyListFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract NoPermissionsFragment bindNoPermissionsFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract SettingsFragment bindSettingsFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract MultipleUploadListFragment bindMultipleUploadListFragment();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract SingleUploadFragment bindSingleUploadFragment();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
package fr.free.nrw.commons.di;
|
||||||
|
|
||||||
|
import dagger.Module;
|
||||||
|
import dagger.android.ContributesAndroidInjector;
|
||||||
|
import fr.free.nrw.commons.auth.WikiAccountAuthenticatorService;
|
||||||
|
import fr.free.nrw.commons.category.CategorizationFragment;
|
||||||
|
import fr.free.nrw.commons.contributions.ContributionsListFragment;
|
||||||
|
import fr.free.nrw.commons.media.MediaDetailFragment;
|
||||||
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
||||||
|
import fr.free.nrw.commons.nearby.NearbyListFragment;
|
||||||
|
import fr.free.nrw.commons.nearby.NoPermissionsFragment;
|
||||||
|
import fr.free.nrw.commons.settings.SettingsFragment;
|
||||||
|
import fr.free.nrw.commons.upload.MultipleUploadListFragment;
|
||||||
|
import fr.free.nrw.commons.upload.SingleUploadFragment;
|
||||||
|
import fr.free.nrw.commons.upload.UploadService;
|
||||||
|
|
||||||
|
@Module
|
||||||
|
public abstract class ServiceBuilderModule {
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract UploadService bindUploadService();
|
||||||
|
|
||||||
|
@ContributesAndroidInjector
|
||||||
|
abstract WikiAccountAuthenticatorService bindWikiAccountAuthenticatorService();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -17,12 +17,13 @@ import java.lang.reflect.Type;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import dagger.android.support.DaggerFragment;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.location.LatLng;
|
import fr.free.nrw.commons.location.LatLng;
|
||||||
import fr.free.nrw.commons.utils.UriDeserializer;
|
import fr.free.nrw.commons.utils.UriDeserializer;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class NearbyListFragment extends Fragment {
|
public class NearbyListFragment extends DaggerFragment {
|
||||||
private static final Type LIST_TYPE = new TypeToken<List<Place>>() {
|
private static final Type LIST_TYPE = new TypeToken<List<Place>>() {
|
||||||
}.getType();
|
}.getType();
|
||||||
private static final Type CUR_LAT_LNG_TYPE = new TypeToken<LatLng>() {
|
private static final Type CUR_LAT_LNG_TYPE = new TypeToken<LatLng>() {
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,14 @@ import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
|
import dagger.android.support.DaggerFragment;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tells user that Nearby Places cannot be displayed if location permissions are denied
|
* Tells user that Nearby Places cannot be displayed if location permissions are denied
|
||||||
*/
|
*/
|
||||||
public class NoPermissionsFragment extends Fragment {
|
public class NoPermissionsFragment extends DaggerFragment {
|
||||||
|
|
||||||
public NoPermissionsFragment() {
|
public NoPermissionsFragment() {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,11 +28,12 @@ import android.widget.TextView;
|
||||||
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
|
import com.facebook.drawee.generic.GenericDraweeHierarchyBuilder;
|
||||||
import com.facebook.drawee.view.SimpleDraweeView;
|
import com.facebook.drawee.view.SimpleDraweeView;
|
||||||
|
|
||||||
|
import dagger.android.support.DaggerFragment;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.contributions.Contribution;
|
import fr.free.nrw.commons.contributions.Contribution;
|
||||||
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
||||||
|
|
||||||
public class MultipleUploadListFragment extends Fragment {
|
public class MultipleUploadListFragment extends DaggerFragment {
|
||||||
|
|
||||||
public interface OnMultipleUploadInitiatedHandler {
|
public interface OnMultipleUploadInitiatedHandler {
|
||||||
void OnMultipleUploadInitiated();
|
void OnMultipleUploadInitiated();
|
||||||
|
|
|
||||||
|
|
@ -34,12 +34,13 @@ import butterknife.ButterKnife;
|
||||||
import butterknife.OnClick;
|
import butterknife.OnClick;
|
||||||
import butterknife.OnItemSelected;
|
import butterknife.OnItemSelected;
|
||||||
import butterknife.OnTouch;
|
import butterknife.OnTouch;
|
||||||
|
import dagger.android.support.DaggerFragment;
|
||||||
import fr.free.nrw.commons.R;
|
import fr.free.nrw.commons.R;
|
||||||
import fr.free.nrw.commons.Utils;
|
import fr.free.nrw.commons.Utils;
|
||||||
import fr.free.nrw.commons.settings.Prefs;
|
import fr.free.nrw.commons.settings.Prefs;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
public class SingleUploadFragment extends Fragment {
|
public class SingleUploadFragment extends DaggerFragment {
|
||||||
private SharedPreferences prefs;
|
private SharedPreferences prefs;
|
||||||
private String license;
|
private String license;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,8 +117,6 @@ public class UploadService extends HandlerService<Contribution> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
((CommonsApplication)getApplicationContext()).injector().inject(this);
|
|
||||||
|
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
|
|
||||||
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue