Merge pull request #4171 from ezaquarii/fix-broken-di-on-older-devices

Remove DI from NContentObserverJob
This commit is contained in:
Andy Scherzinger 2019-06-27 00:05:26 +02:00 committed by GitHub
commit 908ce747a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 28 additions and 18 deletions

View file

@ -27,10 +27,8 @@ import com.owncloud.android.authentication.DeepLinkLoginActivity;
import com.owncloud.android.files.BootupBroadcastReceiver; import com.owncloud.android.files.BootupBroadcastReceiver;
import com.owncloud.android.files.services.FileDownloader; import com.owncloud.android.files.services.FileDownloader;
import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileUploader;
import com.owncloud.android.jobs.NContentObserverJob;
import com.owncloud.android.jobs.NotificationJob; import com.owncloud.android.jobs.NotificationJob;
import com.owncloud.android.providers.DiskLruImageCacheFileProvider; import com.owncloud.android.providers.DiskLruImageCacheFileProvider;
import com.owncloud.android.providers.DocumentsStorageProvider;
import com.owncloud.android.providers.UsersAndGroupsSearchProvider; import com.owncloud.android.providers.UsersAndGroupsSearchProvider;
import com.owncloud.android.services.AccountManagerService; import com.owncloud.android.services.AccountManagerService;
import com.owncloud.android.services.OperationsService; import com.owncloud.android.services.OperationsService;
@ -145,11 +143,9 @@ abstract class ComponentsModule {
@ContributesAndroidInjector abstract BootupBroadcastReceiver bootupBroadcastReceiver(); @ContributesAndroidInjector abstract BootupBroadcastReceiver bootupBroadcastReceiver();
@ContributesAndroidInjector abstract NotificationJob.NotificationReceiver notificationJobBroadcastReceiver(); @ContributesAndroidInjector abstract NotificationJob.NotificationReceiver notificationJobBroadcastReceiver();
@ContributesAndroidInjector abstract DocumentsStorageProvider documentsStorageProvider();
@ContributesAndroidInjector abstract UsersAndGroupsSearchProvider usersAndGroupsSearchProvider(); @ContributesAndroidInjector abstract UsersAndGroupsSearchProvider usersAndGroupsSearchProvider();
@ContributesAndroidInjector abstract DiskLruImageCacheFileProvider diskLruImageCacheFileProvider(); @ContributesAndroidInjector abstract DiskLruImageCacheFileProvider diskLruImageCacheFileProvider();
@ContributesAndroidInjector abstract AccountManagerService accountManagerService(); @ContributesAndroidInjector abstract AccountManagerService accountManagerService();
@ContributesAndroidInjector abstract OperationsService operationsService(); @ContributesAndroidInjector abstract OperationsService operationsService();
@ContributesAndroidInjector abstract NContentObserverJob contentObserverJob();
} }

View file

@ -175,6 +175,22 @@ public class MainApp extends MultiDexApplication implements
mContext = context; mContext = context;
} }
/**
* Temporary getter replacing Dagger DI
* TODO: remove when cleaning DI in NContentObserverJob
*/
public AppPreferences getPreferences() {
return preferences;
}
/**
* Temporary getter replacing Dagger DI
* TODO: remove when cleaning DI in NContentObserverJob
*/
public PowerManagementService getPowerManagementService() {
return powerManagementService;
}
@Override @Override
protected void attachBaseContext(Context base) { protected void attachBaseContext(Context base) {
super.attachBaseContext(base); super.attachBaseContext(base);

View file

@ -29,13 +29,11 @@ import com.evernote.android.job.JobRequest;
import com.evernote.android.job.util.support.PersistableBundleCompat; import com.evernote.android.job.util.support.PersistableBundleCompat;
import com.nextcloud.client.device.PowerManagementService; import com.nextcloud.client.device.PowerManagementService;
import com.nextcloud.client.preferences.AppPreferences; import com.nextcloud.client.preferences.AppPreferences;
import com.owncloud.android.MainApp;
import com.owncloud.android.datamodel.SyncedFolderProvider; import com.owncloud.android.datamodel.SyncedFolderProvider;
import com.owncloud.android.utils.FilesSyncHelper; import com.owncloud.android.utils.FilesSyncHelper;
import javax.inject.Inject;
import androidx.annotation.RequiresApi; import androidx.annotation.RequiresApi;
import dagger.android.AndroidInjection;
/* /*
Job that triggers new FilesSyncJob in case new photo or video were detected Job that triggers new FilesSyncJob in case new photo or video were detected
@ -44,13 +42,18 @@ import dagger.android.AndroidInjection;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class NContentObserverJob extends JobService { public class NContentObserverJob extends JobService {
@Inject PowerManagementService powerManagementService; private PowerManagementService powerManagementService;
@Inject AppPreferences preferences; private AppPreferences preferences;
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
AndroidInjection.inject(this);
// Temporary workaround for https://github.com/nextcloud/android/issues/4147
// TODO: this must be fixed properly
MainApp app = (MainApp) getApplication();
powerManagementService = app.getPowerManagementService();
preferences = app.getPreferences();
} }
@Override @Override

View file

@ -46,6 +46,7 @@ import android.widget.Toast;
import com.evernote.android.job.JobRequest; import com.evernote.android.job.JobRequest;
import com.evernote.android.job.util.Device; import com.evernote.android.job.util.Device;
import com.nextcloud.client.account.UserAccountManager; import com.nextcloud.client.account.UserAccountManager;
import com.nextcloud.client.account.UserAccountManagerImpl;
import com.nextcloud.client.preferences.AppPreferences; import com.nextcloud.client.preferences.AppPreferences;
import com.nextcloud.client.preferences.AppPreferencesImpl; import com.nextcloud.client.preferences.AppPreferencesImpl;
import com.owncloud.android.MainApp; import com.owncloud.android.MainApp;
@ -84,10 +85,6 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import dagger.android.AndroidInjection;
import static com.owncloud.android.datamodel.OCFile.PATH_SEPARATOR; import static com.owncloud.android.datamodel.OCFile.PATH_SEPARATOR;
import static com.owncloud.android.datamodel.OCFile.ROOT_PATH; import static com.owncloud.android.datamodel.OCFile.ROOT_PATH;
@ -100,9 +97,7 @@ public class DocumentsStorageProvider extends DocumentsProvider {
private Map<Long, FileDataStorageManager> rootIdToStorageManager; private Map<Long, FileDataStorageManager> rootIdToStorageManager;
private OwnCloudClient client; private OwnCloudClient client;
@Inject UserAccountManager accountManager; UserAccountManager accountManager;
@Override @Override
public Cursor queryRoots(String[] projection) throws FileNotFoundException { public Cursor queryRoots(String[] projection) throws FileNotFoundException {
@ -301,7 +296,7 @@ public class DocumentsStorageProvider extends DocumentsProvider {
@Override @Override
public boolean onCreate() { public boolean onCreate() {
AndroidInjection.inject(this); accountManager = UserAccountManagerImpl.fromContext(getContext());
return true; return true;
} }