diff --git a/app/build.gradle b/app/build.gradle index 559eb4e37..e4ac987d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -144,13 +144,13 @@ dependencies { exclude group: 'com.android.support', module: 'support-v4' } compile "me.leolin:ShortcutBadger:1.1.18@aar" + compile 'com.google.apis:google-api-services-tasks:v1-rev47-1.22.0' + compile 'com.google.api-client:google-api-client-android:1.22.0' googleplayCompile "com.google.android.gms:play-services-location:${GPS_VERSION}" googleplayCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}" googleplayCompile "com.google.android.gms:play-services-auth:${GPS_VERSION}" googleplayCompile "com.google.android.gms:play-services-places:${GPS_VERSION}" - googleplayCompile 'com.google.apis:google-api-services-tasks:v1-rev47-1.22.0' - googleplayCompile 'com.google.api-client:google-api-client-android:1.22.0' amazonCompile "com.google.android.gms:play-services-analytics:${GPS_VERSION}" diff --git a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java deleted file mode 100644 index b7e67c698..000000000 --- a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import com.todoroo.astrid.api.Filter; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class GtasksFilterExposer { - @Inject - public GtasksFilterExposer() { - - } - - public List getFilters() { - return Collections.emptyList(); - } - - public Filter getFilter(long aLong) { - return null; - } -} diff --git a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksListService.java b/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksListService.java deleted file mode 100644 index 3555ecac0..000000000 --- a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksListService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import org.tasks.data.GoogleTaskList; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class GtasksListService { - - @Inject - public GtasksListService() { - - } - - public List getLists() { - return Collections.emptyList(); - } - - public GoogleTaskList getList(long storeId) { - return null; - } - - public GoogleTaskList getList(String remoteId) { - return null; - } -} diff --git a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java b/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java deleted file mode 100644 index bdad49ec4..000000000 --- a/app/src/amazon/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.api.GtasksFilter; - -import org.tasks.data.GoogleTaskList; -import org.tasks.tasklist.GtasksListFragment; - -public class GtasksSubtaskListFragment extends GtasksListFragment { - public static TaskListFragment newGtasksSubtaskListFragment(GtasksFilter gtasksFilter, GoogleTaskList list) { - return null; - } -} diff --git a/app/src/amazon/java/org/tasks/AccountManager.java b/app/src/amazon/java/org/tasks/AccountManager.java deleted file mode 100644 index 7bd55acfd..000000000 --- a/app/src/amazon/java/org/tasks/AccountManager.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.tasks; - -import android.accounts.Account; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class AccountManager { - - @Inject - public AccountManager() { - } - - public List getAccounts() { - return Collections.emptyList(); - } - - public Account getAccount(String userName) { - return null; - } -} diff --git a/app/src/amazon/java/org/tasks/activities/GoogleTaskListSettingsActivity.java b/app/src/amazon/java/org/tasks/activities/GoogleTaskListSettingsActivity.java deleted file mode 100644 index ef9b88577..000000000 --- a/app/src/amazon/java/org/tasks/activities/GoogleTaskListSettingsActivity.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.tasks.activities; - -public class GoogleTaskListSettingsActivity { -} diff --git a/app/src/amazon/java/org/tasks/gtasks/PlayServices.java b/app/src/amazon/java/org/tasks/gtasks/PlayServices.java new file mode 100644 index 000000000..037631c2b --- /dev/null +++ b/app/src/amazon/java/org/tasks/gtasks/PlayServices.java @@ -0,0 +1,40 @@ +package org.tasks.gtasks; + +import android.app.Activity; + +import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential; +import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; + +import javax.inject.Inject; + +public class PlayServices { + + @Inject + public PlayServices() { + + } + + public boolean isPlayServicesAvailable() { + return false; + } + + public boolean refreshAndCheck() { + return false; + } + + public void resolve(Activity activity) { + + } + + public String getStatus() { + return null; + } + + public boolean clearToken(GoogleAccountCredential googleAccountCredential) { + return false; + } + + public void getAuthToken(GtasksLoginActivity gtasksLoginActivity, String a, GtasksLoginActivity.AuthResultHandler authResultHandler) { + + } +} diff --git a/app/src/amazon/java/org/tasks/injection/ActivityComponent.java b/app/src/amazon/java/org/tasks/injection/ActivityComponent.java deleted file mode 100644 index f2b3af3e9..000000000 --- a/app/src/amazon/java/org/tasks/injection/ActivityComponent.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.tasks.injection; - -import com.todoroo.astrid.activity.BeastModePreferences; -import com.todoroo.astrid.activity.ShareLinkActivity; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.core.CustomFilterActivity; -import com.todoroo.astrid.core.DefaultsPreferences; -import com.todoroo.astrid.core.OldTaskPreferences; -import com.todoroo.astrid.files.AACRecordingActivity; -import com.todoroo.astrid.gcal.CalendarReminderActivity; -import com.todoroo.astrid.reminders.ReminderPreferences; - -import org.tasks.activities.AddAttachmentActivity; -import org.tasks.activities.CalendarSelectionActivity; -import org.tasks.activities.CameraActivity; -import org.tasks.activities.ColorPickerActivity; -import org.tasks.activities.DateAndTimePickerActivity; -import org.tasks.activities.DatePickerActivity; -import org.tasks.activities.FilterSelectionActivity; -import org.tasks.activities.FilterSettingsActivity; -import org.tasks.activities.GoogleTaskListSettingsActivity; -import org.tasks.activities.TagSettingsActivity; -import org.tasks.activities.TimePickerActivity; -import org.tasks.caldav.CalDAVSettingsActivity; -import org.tasks.dashclock.DashClockSettings; -import org.tasks.files.FileExplore; -import org.tasks.files.MyFilePickerActivity; -import org.tasks.locale.ui.activity.TaskerCreateTaskActivity; -import org.tasks.locale.ui.activity.TaskerSettingsActivity; -import org.tasks.preferences.AppearancePreferences; -import org.tasks.preferences.BasicPreferences; -import org.tasks.preferences.DateTimePreferences; -import org.tasks.preferences.HelpAndFeedbackActivity; -import org.tasks.preferences.MiscellaneousPreferences; -import org.tasks.reminders.MissedCallActivity; -import org.tasks.reminders.NotificationActivity; -import org.tasks.reminders.SnoozeActivity; -import org.tasks.themes.Theme; -import org.tasks.ui.TaskListViewModel; -import org.tasks.voice.VoiceCommandActivity; -import org.tasks.widget.ShortcutConfigActivity; -import org.tasks.widget.WidgetConfigActivity; - -import dagger.Subcomponent; - -@ActivityScope -@Subcomponent(modules = ActivityModule.class) -public interface ActivityComponent { - Theme getTheme(); - - FragmentComponent plus(FragmentModule module); - - DialogFragmentComponent plus(DialogFragmentModule dialogFragmentModule); - - NativeDialogFragmentComponent plus(NativeDialogFragmentModule nativeDialogFragmentModule); - - void inject(TaskerSettingsActivity taskerSettingsActivity); - - void inject(DashClockSettings dashClockSettings); - - void inject(AACRecordingActivity aacRecordingActivity); - - void inject(CustomFilterActivity customFilterActivity); - - void inject(CalendarReminderActivity calendarReminderActivity); - - void inject(FilterSettingsActivity filterSettingsActivity); - - void inject(TagSettingsActivity tagSettingsActivity); - - void inject(ShareLinkActivity shareLinkActivity); - - void inject(TaskListActivity taskListActivity); - - void inject(BeastModePreferences beastModePreferences); - - void inject(NotificationActivity notificationActivity); - - void inject(SnoozeActivity snoozeActivity); - - void inject(MissedCallActivity missedCallActivity); - - void inject(FileExplore fileExplore); - - void inject(CalendarSelectionActivity calendarSelectionActivity); - - void inject(FilterSelectionActivity filterSelectionActivity); - - void inject(DateAndTimePickerActivity dateAndTimePickerActivity); - - void inject(AddAttachmentActivity addAttachmentActivity); - - void inject(DatePickerActivity datePickerActivity); - - void inject(CameraActivity cameraActivity); - - void inject(TimePickerActivity timePickerActivity); - - void inject(VoiceCommandActivity voiceCommandActivity); - - void inject(ReminderPreferences reminderPreferences); - - void inject(WidgetConfigActivity widgetConfigActivity); - - void inject(OldTaskPreferences oldTaskPreferences); - - void inject(DefaultsPreferences defaultsPreferences); - - void inject(ShortcutConfigActivity shortcutConfigActivity); - - void inject(MiscellaneousPreferences miscellaneousPreferences); - - void inject(HelpAndFeedbackActivity helpAndFeedbackActivity); - - void inject(DateTimePreferences dateTimePreferences); - - void inject(AppearancePreferences appearancePreferences); - - void inject(MyFilePickerActivity myFilePickerActivity); - - void inject(ColorPickerActivity colorPickerActivity); - - void inject(BasicPreferences basicPreferences); - - void inject(GoogleTaskListSettingsActivity googleTaskListSettingsActivity); - - void inject(CalDAVSettingsActivity calDAVSettingsActivity); - - void inject(TaskerCreateTaskActivity taskerCreateTaskActivity); - - void inject(TaskListViewModel viewModel); -} diff --git a/app/src/amazon/java/org/tasks/injection/ApplicationComponent.java b/app/src/amazon/java/org/tasks/injection/ApplicationComponent.java deleted file mode 100644 index 2965a5e3e..000000000 --- a/app/src/amazon/java/org/tasks/injection/ApplicationComponent.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tasks.injection; - -import org.tasks.Tasks; -import org.tasks.dashclock.DashClockExtension; -import org.tasks.widget.ScrollableWidgetUpdateService; - -import dagger.Component; - -@ApplicationScope -@Component(modules = ApplicationModule.class) -public interface ApplicationComponent { - void inject(DashClockExtension dashClockExtension); - - void inject(Tasks tasks); - - void inject(ScrollableWidgetUpdateService scrollableWidgetUpdateService); - - ActivityComponent plus(ActivityModule module); - - BroadcastComponent plus(BroadcastModule module); - - IntentServiceComponent plus(IntentServiceModule module); - - SyncAdapterComponent plus(SyncAdapterModule syncAdapterModule); -} diff --git a/app/src/amazon/java/org/tasks/injection/DialogFragmentComponent.java b/app/src/amazon/java/org/tasks/injection/DialogFragmentComponent.java deleted file mode 100644 index 9203cca58..000000000 --- a/app/src/amazon/java/org/tasks/injection/DialogFragmentComponent.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.tasks.injection; - -import org.tasks.activities.CalendarSelectionDialog; -import org.tasks.activities.RemoteListSupportPicker; -import org.tasks.caldav.DeleteAccountDialog; -import org.tasks.dialogs.AddAttachmentDialog; -import org.tasks.dialogs.ColorPickerDialog; -import org.tasks.dialogs.RecordAudioDialog; -import org.tasks.dialogs.SortDialog; -import org.tasks.reminders.MissedCallDialog; -import org.tasks.reminders.NotificationDialog; -import org.tasks.reminders.SnoozeDialog; -import org.tasks.repeats.CustomRecurrenceDialog; - -import dagger.Subcomponent; - -@Subcomponent(modules = DialogFragmentModule.class) -public interface DialogFragmentComponent { - void inject(NotificationDialog notificationDialog); - - void inject(MissedCallDialog missedCallDialog); - - void inject(CalendarSelectionDialog calendarSelectionDialog); - - void inject(AddAttachmentDialog addAttachmentDialog); - - void inject(SnoozeDialog snoozeDialog); - - void inject(SortDialog sortDialog); - - void inject(ColorPickerDialog colorPickerDialog); - - void inject(RecordAudioDialog recordAudioDialog); - - void inject(CustomRecurrenceDialog customRecurrenceDialog); - - void inject(RemoteListSupportPicker remoteListSupportPicker); - - void inject(DeleteAccountDialog deleteAccountDialog); -} diff --git a/app/src/amazon/java/org/tasks/injection/SyncAdapterComponent.java b/app/src/amazon/java/org/tasks/injection/SyncAdapterComponent.java deleted file mode 100644 index af3ca02da..000000000 --- a/app/src/amazon/java/org/tasks/injection/SyncAdapterComponent.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.tasks.injection; - -import org.tasks.caldav.CalDAVSyncAdapter; - -import dagger.Subcomponent; - -@Subcomponent(modules = SyncAdapterModule.class) -public interface SyncAdapterComponent { - void inject(CalDAVSyncAdapter calDAVSyncAdapter); -} diff --git a/app/src/amazon/java/org/tasks/receivers/PushReceiver.java b/app/src/amazon/java/org/tasks/receivers/PushReceiver.java deleted file mode 100644 index 6bb3f851d..000000000 --- a/app/src/amazon/java/org/tasks/receivers/PushReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.tasks.receivers; - -import com.todoroo.astrid.data.Task; - -import javax.inject.Inject; - -public class PushReceiver { - - @Inject - public PushReceiver() { - - } - - public void push(Task task, Task original) { - - } -} diff --git a/app/src/amazon/java/org/tasks/sync/SyncAdapters.java b/app/src/amazon/java/org/tasks/sync/SyncAdapters.java deleted file mode 100644 index 9f9ec03eb..000000000 --- a/app/src/amazon/java/org/tasks/sync/SyncAdapters.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.tasks.sync; - -import android.content.ContentResolver; - -import com.todoroo.astrid.activity.TaskListFragment; - -import org.tasks.caldav.CaldavAccountManager; - -import javax.inject.Inject; - -public class SyncAdapters { - private CaldavAccountManager caldavAccountManager; - - @Inject - public SyncAdapters(CaldavAccountManager caldavAccountManager) { - this.caldavAccountManager = caldavAccountManager; - } - - public boolean initiateManualSync() { - return caldavAccountManager.initiateManualSync(); - } - - public void requestSynchronization() { - caldavAccountManager.requestSynchronization(); - } - - public boolean isGoogleTaskSyncEnabled() { - return false; - } - - public void checkPlayServices(TaskListFragment taskListFragment) { - - } - - public boolean isMasterSyncEnabled() { - return ContentResolver.getMasterSyncAutomatically(); - } - - public boolean isSyncEnabled() { - return caldavAccountManager.getAccounts().size() > 0; - } -} diff --git a/app/src/amazon/java/org/tasks/tasklist/GtasksListFragment.java b/app/src/amazon/java/org/tasks/tasklist/GtasksListFragment.java deleted file mode 100644 index f0b1bf196..000000000 --- a/app/src/amazon/java/org/tasks/tasklist/GtasksListFragment.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.tasks.tasklist; - -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.api.GtasksFilter; - -import org.tasks.data.GoogleTaskList; - -public class GtasksListFragment extends TaskListFragment { - public static TaskListFragment newGtasksListFragment(GtasksFilter gtasksFilter, GoogleTaskList list) { - return null; - } -} diff --git a/app/src/amazon/java/org/tasks/ui/RemoteListFragment.java b/app/src/amazon/java/org/tasks/ui/RemoteListFragment.java deleted file mode 100644 index 5471aa92e..000000000 --- a/app/src/amazon/java/org/tasks/ui/RemoteListFragment.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.tasks.ui; - -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.data.Task; - -import org.tasks.R; -import org.tasks.injection.FragmentComponent; - -public class RemoteListFragment extends TaskEditControlFragment { - public static final int TAG = R.string.TEA_ctrl_google_task_list; - - @Override - protected int getLayout() { - return 0; - } - - @Override - protected int getIcon() { - return 0; - } - - @Override - public int controlId() { - return 0; - } - - @Override - public void apply(Task task) { - - } - - @Override - protected void inject(FragmentComponent component) { - - } - - public void setList(Filter filter) { - - } -} diff --git a/app/src/amazon/res/values/keys.xml b/app/src/amazon/res/values/keys.xml index d4b547ee5..e0da02ee9 100644 --- a/app/src/amazon/res/values/keys.xml +++ b/app/src/amazon/res/values/keys.xml @@ -1,4 +1,5 @@ themes + Google Play services error \ No newline at end of file diff --git a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java deleted file mode 100644 index b7e67c698..000000000 --- a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import com.todoroo.astrid.api.Filter; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class GtasksFilterExposer { - @Inject - public GtasksFilterExposer() { - - } - - public List getFilters() { - return Collections.emptyList(); - } - - public Filter getFilter(long aLong) { - return null; - } -} diff --git a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksListService.java b/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksListService.java deleted file mode 100644 index 3555ecac0..000000000 --- a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksListService.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import org.tasks.data.GoogleTaskList; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class GtasksListService { - - @Inject - public GtasksListService() { - - } - - public List getLists() { - return Collections.emptyList(); - } - - public GoogleTaskList getList(long storeId) { - return null; - } - - public GoogleTaskList getList(String remoteId) { - return null; - } -} diff --git a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java b/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java deleted file mode 100644 index bdad49ec4..000000000 --- a/app/src/generic/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.todoroo.astrid.gtasks; - -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.api.GtasksFilter; - -import org.tasks.data.GoogleTaskList; -import org.tasks.tasklist.GtasksListFragment; - -public class GtasksSubtaskListFragment extends GtasksListFragment { - public static TaskListFragment newGtasksSubtaskListFragment(GtasksFilter gtasksFilter, GoogleTaskList list) { - return null; - } -} diff --git a/app/src/generic/java/org/tasks/AccountManager.java b/app/src/generic/java/org/tasks/AccountManager.java deleted file mode 100644 index 7bd55acfd..000000000 --- a/app/src/generic/java/org/tasks/AccountManager.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.tasks; - -import android.accounts.Account; - -import java.util.Collections; -import java.util.List; - -import javax.inject.Inject; - -public class AccountManager { - - @Inject - public AccountManager() { - } - - public List getAccounts() { - return Collections.emptyList(); - } - - public Account getAccount(String userName) { - return null; - } -} diff --git a/app/src/generic/java/org/tasks/activities/GoogleTaskListSettingsActivity.java b/app/src/generic/java/org/tasks/activities/GoogleTaskListSettingsActivity.java deleted file mode 100644 index ef9b88577..000000000 --- a/app/src/generic/java/org/tasks/activities/GoogleTaskListSettingsActivity.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.tasks.activities; - -public class GoogleTaskListSettingsActivity { -} diff --git a/app/src/generic/java/org/tasks/gtasks/PlayServices.java b/app/src/generic/java/org/tasks/gtasks/PlayServices.java new file mode 100644 index 000000000..037631c2b --- /dev/null +++ b/app/src/generic/java/org/tasks/gtasks/PlayServices.java @@ -0,0 +1,40 @@ +package org.tasks.gtasks; + +import android.app.Activity; + +import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential; +import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; + +import javax.inject.Inject; + +public class PlayServices { + + @Inject + public PlayServices() { + + } + + public boolean isPlayServicesAvailable() { + return false; + } + + public boolean refreshAndCheck() { + return false; + } + + public void resolve(Activity activity) { + + } + + public String getStatus() { + return null; + } + + public boolean clearToken(GoogleAccountCredential googleAccountCredential) { + return false; + } + + public void getAuthToken(GtasksLoginActivity gtasksLoginActivity, String a, GtasksLoginActivity.AuthResultHandler authResultHandler) { + + } +} diff --git a/app/src/generic/java/org/tasks/injection/ActivityComponent.java b/app/src/generic/java/org/tasks/injection/ActivityComponent.java deleted file mode 100644 index f2b3af3e9..000000000 --- a/app/src/generic/java/org/tasks/injection/ActivityComponent.java +++ /dev/null @@ -1,132 +0,0 @@ -package org.tasks.injection; - -import com.todoroo.astrid.activity.BeastModePreferences; -import com.todoroo.astrid.activity.ShareLinkActivity; -import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.core.CustomFilterActivity; -import com.todoroo.astrid.core.DefaultsPreferences; -import com.todoroo.astrid.core.OldTaskPreferences; -import com.todoroo.astrid.files.AACRecordingActivity; -import com.todoroo.astrid.gcal.CalendarReminderActivity; -import com.todoroo.astrid.reminders.ReminderPreferences; - -import org.tasks.activities.AddAttachmentActivity; -import org.tasks.activities.CalendarSelectionActivity; -import org.tasks.activities.CameraActivity; -import org.tasks.activities.ColorPickerActivity; -import org.tasks.activities.DateAndTimePickerActivity; -import org.tasks.activities.DatePickerActivity; -import org.tasks.activities.FilterSelectionActivity; -import org.tasks.activities.FilterSettingsActivity; -import org.tasks.activities.GoogleTaskListSettingsActivity; -import org.tasks.activities.TagSettingsActivity; -import org.tasks.activities.TimePickerActivity; -import org.tasks.caldav.CalDAVSettingsActivity; -import org.tasks.dashclock.DashClockSettings; -import org.tasks.files.FileExplore; -import org.tasks.files.MyFilePickerActivity; -import org.tasks.locale.ui.activity.TaskerCreateTaskActivity; -import org.tasks.locale.ui.activity.TaskerSettingsActivity; -import org.tasks.preferences.AppearancePreferences; -import org.tasks.preferences.BasicPreferences; -import org.tasks.preferences.DateTimePreferences; -import org.tasks.preferences.HelpAndFeedbackActivity; -import org.tasks.preferences.MiscellaneousPreferences; -import org.tasks.reminders.MissedCallActivity; -import org.tasks.reminders.NotificationActivity; -import org.tasks.reminders.SnoozeActivity; -import org.tasks.themes.Theme; -import org.tasks.ui.TaskListViewModel; -import org.tasks.voice.VoiceCommandActivity; -import org.tasks.widget.ShortcutConfigActivity; -import org.tasks.widget.WidgetConfigActivity; - -import dagger.Subcomponent; - -@ActivityScope -@Subcomponent(modules = ActivityModule.class) -public interface ActivityComponent { - Theme getTheme(); - - FragmentComponent plus(FragmentModule module); - - DialogFragmentComponent plus(DialogFragmentModule dialogFragmentModule); - - NativeDialogFragmentComponent plus(NativeDialogFragmentModule nativeDialogFragmentModule); - - void inject(TaskerSettingsActivity taskerSettingsActivity); - - void inject(DashClockSettings dashClockSettings); - - void inject(AACRecordingActivity aacRecordingActivity); - - void inject(CustomFilterActivity customFilterActivity); - - void inject(CalendarReminderActivity calendarReminderActivity); - - void inject(FilterSettingsActivity filterSettingsActivity); - - void inject(TagSettingsActivity tagSettingsActivity); - - void inject(ShareLinkActivity shareLinkActivity); - - void inject(TaskListActivity taskListActivity); - - void inject(BeastModePreferences beastModePreferences); - - void inject(NotificationActivity notificationActivity); - - void inject(SnoozeActivity snoozeActivity); - - void inject(MissedCallActivity missedCallActivity); - - void inject(FileExplore fileExplore); - - void inject(CalendarSelectionActivity calendarSelectionActivity); - - void inject(FilterSelectionActivity filterSelectionActivity); - - void inject(DateAndTimePickerActivity dateAndTimePickerActivity); - - void inject(AddAttachmentActivity addAttachmentActivity); - - void inject(DatePickerActivity datePickerActivity); - - void inject(CameraActivity cameraActivity); - - void inject(TimePickerActivity timePickerActivity); - - void inject(VoiceCommandActivity voiceCommandActivity); - - void inject(ReminderPreferences reminderPreferences); - - void inject(WidgetConfigActivity widgetConfigActivity); - - void inject(OldTaskPreferences oldTaskPreferences); - - void inject(DefaultsPreferences defaultsPreferences); - - void inject(ShortcutConfigActivity shortcutConfigActivity); - - void inject(MiscellaneousPreferences miscellaneousPreferences); - - void inject(HelpAndFeedbackActivity helpAndFeedbackActivity); - - void inject(DateTimePreferences dateTimePreferences); - - void inject(AppearancePreferences appearancePreferences); - - void inject(MyFilePickerActivity myFilePickerActivity); - - void inject(ColorPickerActivity colorPickerActivity); - - void inject(BasicPreferences basicPreferences); - - void inject(GoogleTaskListSettingsActivity googleTaskListSettingsActivity); - - void inject(CalDAVSettingsActivity calDAVSettingsActivity); - - void inject(TaskerCreateTaskActivity taskerCreateTaskActivity); - - void inject(TaskListViewModel viewModel); -} diff --git a/app/src/generic/java/org/tasks/injection/ApplicationComponent.java b/app/src/generic/java/org/tasks/injection/ApplicationComponent.java deleted file mode 100644 index 2965a5e3e..000000000 --- a/app/src/generic/java/org/tasks/injection/ApplicationComponent.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.tasks.injection; - -import org.tasks.Tasks; -import org.tasks.dashclock.DashClockExtension; -import org.tasks.widget.ScrollableWidgetUpdateService; - -import dagger.Component; - -@ApplicationScope -@Component(modules = ApplicationModule.class) -public interface ApplicationComponent { - void inject(DashClockExtension dashClockExtension); - - void inject(Tasks tasks); - - void inject(ScrollableWidgetUpdateService scrollableWidgetUpdateService); - - ActivityComponent plus(ActivityModule module); - - BroadcastComponent plus(BroadcastModule module); - - IntentServiceComponent plus(IntentServiceModule module); - - SyncAdapterComponent plus(SyncAdapterModule syncAdapterModule); -} diff --git a/app/src/generic/java/org/tasks/injection/DialogFragmentComponent.java b/app/src/generic/java/org/tasks/injection/DialogFragmentComponent.java deleted file mode 100644 index 9203cca58..000000000 --- a/app/src/generic/java/org/tasks/injection/DialogFragmentComponent.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.tasks.injection; - -import org.tasks.activities.CalendarSelectionDialog; -import org.tasks.activities.RemoteListSupportPicker; -import org.tasks.caldav.DeleteAccountDialog; -import org.tasks.dialogs.AddAttachmentDialog; -import org.tasks.dialogs.ColorPickerDialog; -import org.tasks.dialogs.RecordAudioDialog; -import org.tasks.dialogs.SortDialog; -import org.tasks.reminders.MissedCallDialog; -import org.tasks.reminders.NotificationDialog; -import org.tasks.reminders.SnoozeDialog; -import org.tasks.repeats.CustomRecurrenceDialog; - -import dagger.Subcomponent; - -@Subcomponent(modules = DialogFragmentModule.class) -public interface DialogFragmentComponent { - void inject(NotificationDialog notificationDialog); - - void inject(MissedCallDialog missedCallDialog); - - void inject(CalendarSelectionDialog calendarSelectionDialog); - - void inject(AddAttachmentDialog addAttachmentDialog); - - void inject(SnoozeDialog snoozeDialog); - - void inject(SortDialog sortDialog); - - void inject(ColorPickerDialog colorPickerDialog); - - void inject(RecordAudioDialog recordAudioDialog); - - void inject(CustomRecurrenceDialog customRecurrenceDialog); - - void inject(RemoteListSupportPicker remoteListSupportPicker); - - void inject(DeleteAccountDialog deleteAccountDialog); -} diff --git a/app/src/generic/java/org/tasks/injection/SyncAdapterComponent.java b/app/src/generic/java/org/tasks/injection/SyncAdapterComponent.java deleted file mode 100644 index af3ca02da..000000000 --- a/app/src/generic/java/org/tasks/injection/SyncAdapterComponent.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.tasks.injection; - -import org.tasks.caldav.CalDAVSyncAdapter; - -import dagger.Subcomponent; - -@Subcomponent(modules = SyncAdapterModule.class) -public interface SyncAdapterComponent { - void inject(CalDAVSyncAdapter calDAVSyncAdapter); -} diff --git a/app/src/generic/java/org/tasks/receivers/PushReceiver.java b/app/src/generic/java/org/tasks/receivers/PushReceiver.java deleted file mode 100644 index 6bb3f851d..000000000 --- a/app/src/generic/java/org/tasks/receivers/PushReceiver.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.tasks.receivers; - -import com.todoroo.astrid.data.Task; - -import javax.inject.Inject; - -public class PushReceiver { - - @Inject - public PushReceiver() { - - } - - public void push(Task task, Task original) { - - } -} diff --git a/app/src/generic/java/org/tasks/sync/SyncAdapters.java b/app/src/generic/java/org/tasks/sync/SyncAdapters.java deleted file mode 100644 index 9f9ec03eb..000000000 --- a/app/src/generic/java/org/tasks/sync/SyncAdapters.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.tasks.sync; - -import android.content.ContentResolver; - -import com.todoroo.astrid.activity.TaskListFragment; - -import org.tasks.caldav.CaldavAccountManager; - -import javax.inject.Inject; - -public class SyncAdapters { - private CaldavAccountManager caldavAccountManager; - - @Inject - public SyncAdapters(CaldavAccountManager caldavAccountManager) { - this.caldavAccountManager = caldavAccountManager; - } - - public boolean initiateManualSync() { - return caldavAccountManager.initiateManualSync(); - } - - public void requestSynchronization() { - caldavAccountManager.requestSynchronization(); - } - - public boolean isGoogleTaskSyncEnabled() { - return false; - } - - public void checkPlayServices(TaskListFragment taskListFragment) { - - } - - public boolean isMasterSyncEnabled() { - return ContentResolver.getMasterSyncAutomatically(); - } - - public boolean isSyncEnabled() { - return caldavAccountManager.getAccounts().size() > 0; - } -} diff --git a/app/src/generic/java/org/tasks/tasklist/GtasksListFragment.java b/app/src/generic/java/org/tasks/tasklist/GtasksListFragment.java deleted file mode 100644 index f0b1bf196..000000000 --- a/app/src/generic/java/org/tasks/tasklist/GtasksListFragment.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.tasks.tasklist; - -import com.todoroo.astrid.activity.TaskListFragment; -import com.todoroo.astrid.api.GtasksFilter; - -import org.tasks.data.GoogleTaskList; - -public class GtasksListFragment extends TaskListFragment { - public static TaskListFragment newGtasksListFragment(GtasksFilter gtasksFilter, GoogleTaskList list) { - return null; - } -} diff --git a/app/src/generic/java/org/tasks/ui/RemoteListFragment.java b/app/src/generic/java/org/tasks/ui/RemoteListFragment.java deleted file mode 100644 index 5471aa92e..000000000 --- a/app/src/generic/java/org/tasks/ui/RemoteListFragment.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.tasks.ui; - -import com.todoroo.astrid.api.Filter; -import com.todoroo.astrid.data.Task; - -import org.tasks.R; -import org.tasks.injection.FragmentComponent; - -public class RemoteListFragment extends TaskEditControlFragment { - public static final int TAG = R.string.TEA_ctrl_google_task_list; - - @Override - protected int getLayout() { - return 0; - } - - @Override - protected int getIcon() { - return 0; - } - - @Override - public int controlId() { - return 0; - } - - @Override - public void apply(Task task) { - - } - - @Override - protected void inject(FragmentComponent component) { - - } - - public void setList(Filter filter) { - - } -} diff --git a/app/src/generic/res/values/keys.xml b/app/src/generic/res/values/keys.xml index d4b547ee5..e0da02ee9 100644 --- a/app/src/generic/res/values/keys.xml +++ b/app/src/generic/res/values/keys.xml @@ -1,4 +1,5 @@ themes + Google Play services error \ No newline at end of file diff --git a/app/src/googleplay/AndroidManifest.xml b/app/src/googleplay/AndroidManifest.xml index ea148cbac..728eb53d3 100644 --- a/app/src/googleplay/AndroidManifest.xml +++ b/app/src/googleplay/AndroidManifest.xml @@ -44,7 +44,7 @@ android:theme="@style/TranslucentDialog" /> diff --git a/app/src/googleplay/java/org/tasks/FlavorSetup.java b/app/src/googleplay/java/org/tasks/FlavorSetup.java index 9be1c5e6f..9329e4d2e 100644 --- a/app/src/googleplay/java/org/tasks/FlavorSetup.java +++ b/app/src/googleplay/java/org/tasks/FlavorSetup.java @@ -3,8 +3,8 @@ package org.tasks; import com.todoroo.astrid.gtasks.GtasksPreferenceService; import org.tasks.billing.InventoryHelper; -import org.tasks.gtasks.PlayServicesAvailability; import org.tasks.gtasks.GtaskSyncAdapterHelper; +import org.tasks.gtasks.PlayServices; import javax.inject.Inject; @@ -13,21 +13,21 @@ public class FlavorSetup { private final GtasksPreferenceService gtasksPreferenceService; private final InventoryHelper inventoryHelper; private final GtaskSyncAdapterHelper gtaskSyncAdapterHelper; - private final PlayServicesAvailability playServicesAvailability; + private final PlayServices playServices; @Inject public FlavorSetup(GtasksPreferenceService gtasksPreferenceService, InventoryHelper inventoryHelper, - GtaskSyncAdapterHelper gtaskSyncAdapterHelper, PlayServicesAvailability playServicesAvailability) { + GtaskSyncAdapterHelper gtaskSyncAdapterHelper, PlayServices playServices) { this.gtasksPreferenceService = gtasksPreferenceService; this.inventoryHelper = inventoryHelper; this.gtaskSyncAdapterHelper = gtaskSyncAdapterHelper; - this.playServicesAvailability = playServicesAvailability; + this.playServices = playServices; } public void setup() { inventoryHelper.initialize(); gtasksPreferenceService.stopOngoing(); // if sync ongoing flag was set, clear it - gtaskSyncAdapterHelper.enableSynchronization(gtaskSyncAdapterHelper.isEnabled()); - playServicesAvailability.refresh(); + gtaskSyncAdapterHelper.enableBackgroundSynchronization(gtaskSyncAdapterHelper.isBackgroundSyncEnabled()); + playServices.refresh(); } } diff --git a/app/src/googleplay/java/org/tasks/gtasks/PlayServices.java b/app/src/googleplay/java/org/tasks/gtasks/PlayServices.java new file mode 100644 index 000000000..70cdfea8c --- /dev/null +++ b/app/src/googleplay/java/org/tasks/gtasks/PlayServices.java @@ -0,0 +1,115 @@ +package org.tasks.gtasks; + +import android.accounts.Account; +import android.app.Activity; +import android.content.Context; +import android.widget.Toast; + +import com.google.android.gms.auth.GoogleAuthException; +import com.google.android.gms.auth.GoogleAuthUtil; +import com.google.android.gms.auth.UserRecoverableAuthException; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GoogleApiAvailability; +import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential; +import com.google.api.services.tasks.TasksScopes; +import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; + +import org.tasks.R; +import org.tasks.injection.ForApplication; +import org.tasks.preferences.Preferences; + +import java.io.IOException; + +import javax.inject.Inject; + +import timber.log.Timber; + +public class PlayServices { + + private static final int REQUEST_RESOLUTION = 10000; + + private final Context context; + private final Preferences preferences; + private final GoogleAccountManager accountManager; + + @Inject + public PlayServices(@ForApplication Context context, Preferences preferences, + GoogleAccountManager googleAccountManager) { + this.context = context; + this.preferences = preferences; + this.accountManager = googleAccountManager; + } + + public boolean refreshAndCheck() { + refresh(); + return isPlayServicesAvailable(); + } + + public boolean isPlayServicesAvailable() { + return getResult() == ConnectionResult.SUCCESS; + } + + public void refresh() { + GoogleApiAvailability instance = GoogleApiAvailability.getInstance(); + int googlePlayServicesAvailable = instance.isGooglePlayServicesAvailable(context); + preferences.setInt(R.string.play_services_available, googlePlayServicesAvailable); + if (googlePlayServicesAvailable == ConnectionResult.SUCCESS) { + preferences.setBoolean(R.string.warned_play_services, false); + } + Timber.d(getStatus()); + } + + public void resolve(Activity activity) { + GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance(); + int error = preferences.getInt(R.string.play_services_available, -1); + if (googleApiAvailability.isUserResolvableError(error)) { + googleApiAvailability.getErrorDialog(activity, error, REQUEST_RESOLUTION).show(); + } else { + Toast.makeText(activity, R.string.common_google_play_services_notification_ticker, Toast.LENGTH_LONG).show(); + } + } + + public String getStatus() { + return GoogleApiAvailability.getInstance().getErrorString(getResult()); + } + + private int getResult() { + return preferences.getInt(R.string.play_services_available, -1); + } + + public boolean clearToken(GoogleAccountCredential credential){ + try { + String token = credential.getToken(); + Timber.d("Invalidating %s", token); + GoogleAuthUtil.clearToken(context, token); + GoogleAuthUtil.getToken(context, credential.getSelectedAccount(), "oauth2:" + TasksScopes.TASKS, null); + return true; + } catch (GoogleAuthException e) { + Timber.e(e, e.getMessage()); + return false; + } catch (IOException e) { + Timber.e(e, e.getMessage()); + return true; + } + } + + public void getAuthToken(final Activity activity, final String accountName, final GtasksLoginActivity.AuthResultHandler handler) { + final Account account = accountManager.getAccount(accountName); + if (account == null) { + handler.authenticationFailed(activity.getString(R.string.gtasks_error_accountNotFound, accountName)); + } else { + new Thread(() -> { + try { + GoogleAuthUtil.getToken(activity, account, "oauth2:" + TasksScopes.TASKS, null); + handler.authenticationSuccessful(accountName); + } catch(UserRecoverableAuthException e) { + Timber.e(e, e.getMessage()); + activity.startActivityForResult(e.getIntent(), GtasksLoginActivity.RC_REQUEST_OAUTH); + } catch(GoogleAuthException | IOException e) { + Timber.e(e, e.getMessage()); + handler.authenticationFailed(activity.getString(R.string.gtasks_GLA_errorIOAuth)); + } + }).start(); + } + } +} diff --git a/app/src/googleplay/java/org/tasks/gtasks/PlayServicesAvailability.java b/app/src/googleplay/java/org/tasks/gtasks/PlayServicesAvailability.java deleted file mode 100644 index c00857c4f..000000000 --- a/app/src/googleplay/java/org/tasks/gtasks/PlayServicesAvailability.java +++ /dev/null @@ -1,67 +0,0 @@ -package org.tasks.gtasks; - -import android.app.Activity; -import android.content.Context; -import android.widget.Toast; - -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; - -import org.tasks.R; -import org.tasks.injection.ForApplication; -import org.tasks.preferences.Preferences; - -import javax.inject.Inject; - -import timber.log.Timber; - -public class PlayServicesAvailability { - - private static final int REQUEST_RESOLUTION = 10000; - - private final Context context; - private final Preferences preferences; - - @Inject - public PlayServicesAvailability(@ForApplication Context context, Preferences preferences) { - this.context = context; - this.preferences = preferences; - } - - public boolean refreshAndCheck() { - refresh(); - return isPlayServicesAvailable(); - } - - public boolean isPlayServicesAvailable() { - return getResult() == ConnectionResult.SUCCESS; - } - - public void refresh() { - GoogleApiAvailability instance = GoogleApiAvailability.getInstance(); - int googlePlayServicesAvailable = instance.isGooglePlayServicesAvailable(context); - preferences.setInt(R.string.play_services_available, googlePlayServicesAvailable); - if (googlePlayServicesAvailable == ConnectionResult.SUCCESS) { - preferences.setBoolean(R.string.warned_play_services, false); - } - Timber.d(getStatus()); - } - - public void resolve(Activity activity) { - GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance(); - int error = preferences.getInt(R.string.play_services_available, -1); - if (googleApiAvailability.isUserResolvableError(error)) { - googleApiAvailability.getErrorDialog(activity, error, REQUEST_RESOLUTION).show(); - } else { - Toast.makeText(activity, R.string.common_google_play_services_notification_ticker, Toast.LENGTH_LONG).show(); - } - } - - public String getStatus() { - return GoogleApiAvailability.getInstance().getErrorString(getResult()); - } - - private int getResult() { - return preferences.getInt(R.string.play_services_available, -1); - } -} diff --git a/app/src/googleplay/res/values/keys.xml b/app/src/googleplay/res/values/keys.xml index d992c0a84..9cc3c02dd 100644 --- a/app/src/googleplay/res/values/keys.xml +++ b/app/src/googleplay/res/values/keys.xml @@ -3,5 +3,4 @@ MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk8mXRE3dDXwtinUILCEzKjov2rxs3kZbLRzNrcjFWXpG9OEsUzRGLzqEN+WwibVuMRpZLj/+IxbU2sJWq/M0q+90rOhmXn46ZPeNyr77IqX2pWKIAWpzBoWq/mshRwtm9m1FIiGdBNlXrhSE7u3TGB5FuEuuSqKWvWzxeqQ7fHmlM04Lqrh1mN3FaMne8rWv+DWVHDbLrtnXBuC36glOAj17HxrzaE2v6Pv7Df3QefJ3rM1+0fAp/5jNInaP0qHAlG8WTbUmDShQ5kG3urbv3HLByyx6TSqhmNudXUK/6TusvIj50OptAG7x+UFYf956dD3diXhY3yoICvyFWx1sNwIDAQAB themes play_services_available - warned_play_services \ No newline at end of file diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index fbd69d9aa..b6250a8b5 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -44,8 +44,8 @@ import org.tasks.injection.FragmentComponent; import org.tasks.injection.InjectingFragment; import org.tasks.notifications.NotificationManager; import org.tasks.preferences.Preferences; -import org.tasks.ui.RemoteListFragment; import org.tasks.ui.MenuColorizer; +import org.tasks.ui.RemoteListFragment; import org.tasks.ui.TaskEditControlFragment; import java.util.List; diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java index 19fe7a21a..577a2c25b 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListActivity.java @@ -272,7 +272,7 @@ public class TaskListActivity extends InjectingAppCompatActivity implements localBroadcastManager.registerRepeatReceiver(repeatConfirmationReceiver); - syncAdapters.checkPlayServices(getTaskListFragment()); + syncAdapters.checkPlayServices(this); } public void restart() { diff --git a/app/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java b/app/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java index 31332ccca..12c31153c 100644 --- a/app/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java +++ b/app/src/main/java/com/todoroo/astrid/gcal/CalendarAlarmReceiver.java @@ -6,12 +6,12 @@ import android.net.Uri; import com.todoroo.andlib.utility.DateUtilities; -import org.tasks.AccountManager; import org.tasks.BuildConfig; import org.tasks.R; import org.tasks.calendars.AndroidCalendarEvent; import org.tasks.calendars.AndroidCalendarEventAttendee; import org.tasks.calendars.CalendarEventProvider; +import org.tasks.gtasks.GoogleAccountManager; import org.tasks.injection.BroadcastComponent; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.preferences.Preferences; @@ -32,7 +32,7 @@ public class CalendarAlarmReceiver extends InjectingBroadcastReceiver { @Inject Preferences preferences; @Inject CalendarEventProvider calendarEventProvider; - @Inject AccountManager accountManager; + @Inject GoogleAccountManager accountManager; @Override public void onReceive(Context context, Intent intent) { diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java rename to app/src/main/java/com/todoroo/astrid/gtasks/GtasksFilterExposer.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksListService.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksListService.java rename to app/src/main/java/com/todoroo/astrid/gtasks/GtasksListService.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java similarity index 98% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java rename to app/src/main/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java index 3c63d7dfb..8b831a20b 100644 --- a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java +++ b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksSubtaskListFragment.java @@ -21,7 +21,6 @@ import org.tasks.tasklist.GtasksListFragment; import java.util.ArrayList; import java.util.Arrays; -import java.util.List; import javax.inject.Inject; diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java b/app/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java rename to app/src/main/java/com/todoroo/astrid/gtasks/GtasksTaskListUpdater.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java b/app/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java rename to app/src/main/java/com/todoroo/astrid/gtasks/OrderedMetadataListFragmentHelper.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java b/app/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java rename to app/src/main/java/com/todoroo/astrid/gtasks/api/GtasksApiUtilities.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java b/app/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java similarity index 95% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java rename to app/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java index 6d487302c..18def8ee8 100644 --- a/app/src/googleplay/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java +++ b/app/src/main/java/com/todoroo/astrid/gtasks/api/GtasksInvoker.java @@ -18,6 +18,7 @@ import com.todoroo.astrid.gtasks.GtasksPreferenceService; import org.tasks.BuildConfig; import org.tasks.gtasks.GoogleTasksUnsuccessfulResponseHandler; +import org.tasks.gtasks.PlayServices; import org.tasks.injection.ApplicationScope; import org.tasks.injection.ForApplication; @@ -37,14 +38,15 @@ import timber.log.Timber; @ApplicationScope public class GtasksInvoker { - private final Context context; private final GoogleAccountCredential credential; + private final PlayServices playServices; private final Tasks service; @Inject - public GtasksInvoker(@ForApplication Context context, GtasksPreferenceService preferenceService) { - this.context = context; + public GtasksInvoker(@ForApplication Context context, GtasksPreferenceService preferenceService, + PlayServices playServices) { credential = GoogleAccountCredential.usingOAuth2(context, Collections.singletonList(TasksScopes.TASKS)); + this.playServices = playServices; setUserName(preferenceService.getUserName()); service = new Tasks.Builder(new NetHttpTransport(), new JacksonFactory(), credential) .setApplicationName(String.format("Tasks/%s", BuildConfig.VERSION_NAME)) @@ -140,7 +142,7 @@ public class GtasksInvoker { String caller = getCaller(); Timber.d("%s request: %s", caller, request); HttpRequest httpRequest = request.buildHttpRequest(); - httpRequest.setUnsuccessfulResponseHandler(new GoogleTasksUnsuccessfulResponseHandler(context, credential)); + httpRequest.setUnsuccessfulResponseHandler(new GoogleTasksUnsuccessfulResponseHandler(playServices, credential)); HttpResponse httpResponse = httpRequest.execute(); T response = httpResponse.parseAs(request.getResponseClass()); Timber.d("%s response: %s", caller, prettyPrint(response)); diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/api/HttpNotFoundException.java b/app/src/main/java/com/todoroo/astrid/gtasks/api/HttpNotFoundException.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/api/HttpNotFoundException.java rename to app/src/main/java/com/todoroo/astrid/gtasks/api/HttpNotFoundException.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java b/app/src/main/java/com/todoroo/astrid/gtasks/api/MoveRequest.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/api/MoveRequest.java rename to app/src/main/java/com/todoroo/astrid/gtasks/api/MoveRequest.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java b/app/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java similarity index 70% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java rename to app/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java index 95269f73c..b8f83ca81 100644 --- a/app/src/googleplay/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java +++ b/app/src/main/java/com/todoroo/astrid/gtasks/auth/GtasksLoginActivity.java @@ -5,33 +5,24 @@ */ package com.todoroo.astrid.gtasks.auth; -import android.accounts.Account; -import android.app.Activity; import android.app.ProgressDialog; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; -import com.google.android.gms.auth.GoogleAuthException; -import com.google.android.gms.auth.GoogleAuthUtil; -import com.google.android.gms.auth.UserRecoverableAuthException; -import com.google.api.services.tasks.TasksScopes; import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.api.GtasksInvoker; -import org.tasks.AccountManager; import org.tasks.R; import org.tasks.dialogs.DialogBuilder; +import org.tasks.gtasks.GoogleAccountManager; +import org.tasks.gtasks.PlayServices; import org.tasks.injection.ActivityComponent; import org.tasks.injection.InjectingAppCompatActivity; -import java.io.IOException; - import javax.inject.Inject; -import timber.log.Timber; - /** * This activity allows users to sign in or log in to Google Tasks * through the Android account manager @@ -46,13 +37,14 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity { void authenticationFailed(String message); } - private static final int RC_REQUEST_OAUTH = 10987; + public static final int RC_REQUEST_OAUTH = 10987; private static final int RC_CHOOSE_ACCOUNT = 10988; @Inject GtasksPreferenceService gtasksPreferenceService; @Inject DialogBuilder dialogBuilder; - @Inject AccountManager accountManager; + @Inject GoogleAccountManager accountManager; @Inject GtasksInvoker gtasksInvoker; + @Inject PlayServices playServices; private String accountName; @@ -83,7 +75,7 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity { } private void getAuthToken(String a, final ProgressDialog pd) { - getAuthToken(this, a, new AuthResultHandler() { + playServices.getAuthToken(this, a, new AuthResultHandler() { @Override public void authenticationSuccessful(String accountName) { gtasksPreferenceService.setUserName(accountName); @@ -116,24 +108,4 @@ public class GtasksLoginActivity extends InjectingAppCompatActivity { finish(); } } - - private void getAuthToken(final Activity activity, final String accountName, final AuthResultHandler handler) { - final Account account = accountManager.getAccount(accountName); - if (account == null) { - handler.authenticationFailed(activity.getString(R.string.gtasks_error_accountNotFound, accountName)); - } else { - new Thread(() -> { - try { - GoogleAuthUtil.getToken(activity, account, "oauth2:" + TasksScopes.TASKS, null); - handler.authenticationSuccessful(accountName); - } catch(UserRecoverableAuthException e) { - Timber.e(e, e.getMessage()); - activity.startActivityForResult(e.getIntent(), RC_REQUEST_OAUTH); - } catch(GoogleAuthException | IOException e) { - Timber.e(e, e.getMessage()); - handler.authenticationFailed(getString(R.string.gtasks_GLA_errorIOAuth)); - } - }).start(); - } - } } diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java b/app/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java rename to app/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksSyncService.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java b/app/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java rename to app/src/main/java/com/todoroo/astrid/gtasks/sync/GtasksTaskContainer.java diff --git a/app/src/googleplay/java/com/todoroo/astrid/service/SyncV2Service.java b/app/src/main/java/com/todoroo/astrid/service/SyncV2Service.java similarity index 100% rename from app/src/googleplay/java/com/todoroo/astrid/service/SyncV2Service.java rename to app/src/main/java/com/todoroo/astrid/service/SyncV2Service.java diff --git a/app/src/googleplay/java/org/tasks/activities/GoogleTaskListSettingsActivity.java b/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java similarity index 99% rename from app/src/googleplay/java/org/tasks/activities/GoogleTaskListSettingsActivity.java rename to app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java index 05954d7ba..b825f2a72 100644 --- a/app/src/googleplay/java/org/tasks/activities/GoogleTaskListSettingsActivity.java +++ b/app/src/main/java/org/tasks/activities/GoogleTaskListSettingsActivity.java @@ -14,16 +14,13 @@ import android.widget.Toast; import com.google.api.services.tasks.model.TaskList; import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.api.GtasksFilter; - -import org.tasks.data.GoogleTaskList; -import org.tasks.data.GoogleTaskListDao; - import com.todoroo.astrid.gtasks.GtasksListService; import org.tasks.R; import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracking; -import org.tasks.dialogs.ColorPickerDialog; +import org.tasks.data.GoogleTaskList; +import org.tasks.data.GoogleTaskListDao; import org.tasks.dialogs.DialogBuilder; import org.tasks.gtasks.CreateListDialog; import org.tasks.gtasks.DeleteListDialog; diff --git a/app/src/main/java/org/tasks/filters/FilterProvider.java b/app/src/main/java/org/tasks/filters/FilterProvider.java index 4ee5eae2a..2dcb86662 100644 --- a/app/src/main/java/org/tasks/filters/FilterProvider.java +++ b/app/src/main/java/org/tasks/filters/FilterProvider.java @@ -10,7 +10,6 @@ import com.todoroo.astrid.timers.TimerFilterExposer; import org.tasks.caldav.CalDAVFilterExposer; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import javax.inject.Inject; diff --git a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java index 783732668..2ec738846 100644 --- a/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java +++ b/app/src/main/java/org/tasks/fragments/TaskEditControlSetFragmentManager.java @@ -21,8 +21,8 @@ import org.tasks.sync.SyncAdapters; import org.tasks.ui.CalendarControlSet; import org.tasks.ui.DeadlineControlSet; import org.tasks.ui.DescriptionControlSet; -import org.tasks.ui.RemoteListFragment; import org.tasks.ui.PriorityControlSet; +import org.tasks.ui.RemoteListFragment; import org.tasks.ui.TaskEditControlFragment; import java.util.ArrayList; diff --git a/app/src/googleplay/java/org/tasks/gtasks/CreateListDialog.java b/app/src/main/java/org/tasks/gtasks/CreateListDialog.java similarity index 100% rename from app/src/googleplay/java/org/tasks/gtasks/CreateListDialog.java rename to app/src/main/java/org/tasks/gtasks/CreateListDialog.java diff --git a/app/src/googleplay/java/org/tasks/gtasks/DeleteListDialog.java b/app/src/main/java/org/tasks/gtasks/DeleteListDialog.java similarity index 100% rename from app/src/googleplay/java/org/tasks/gtasks/DeleteListDialog.java rename to app/src/main/java/org/tasks/gtasks/DeleteListDialog.java diff --git a/app/src/googleplay/java/org/tasks/AccountManager.java b/app/src/main/java/org/tasks/gtasks/GoogleAccountManager.java similarity index 60% rename from app/src/googleplay/java/org/tasks/AccountManager.java rename to app/src/main/java/org/tasks/gtasks/GoogleAccountManager.java index 05fd16d60..a9598d362 100644 --- a/app/src/googleplay/java/org/tasks/AccountManager.java +++ b/app/src/main/java/org/tasks/gtasks/GoogleAccountManager.java @@ -1,10 +1,10 @@ -package org.tasks; +package org.tasks.gtasks; import android.accounts.Account; import android.content.Context; -import com.google.api.client.googleapis.extensions.android.accounts.GoogleAccountManager; import com.google.common.base.Strings; +import com.todoroo.astrid.gtasks.GtasksPreferenceService; import org.tasks.injection.ForApplication; import org.tasks.preferences.PermissionChecker; @@ -18,16 +18,19 @@ import static com.google.common.collect.Iterables.tryFind; import static com.google.common.collect.Lists.transform; import static java.util.Arrays.asList; -public class AccountManager { +public class GoogleAccountManager { private final PermissionChecker permissionChecker; - private final GoogleAccountManager googleAccountManager; + private final android.accounts.AccountManager accountManager; + private final GtasksPreferenceService gtasksPreferenceService; @Inject - public AccountManager(@ForApplication Context context, PermissionChecker permissionChecker) { + public GoogleAccountManager(@ForApplication Context context, PermissionChecker permissionChecker, + GtasksPreferenceService gtasksPreferenceService) { this.permissionChecker = permissionChecker; - googleAccountManager = new GoogleAccountManager(context); + accountManager = android.accounts.AccountManager.get(context); + this.gtasksPreferenceService = gtasksPreferenceService; } public List getAccounts() { @@ -40,10 +43,14 @@ public class AccountManager { private List getAccountList() { return permissionChecker.canAccessAccounts() - ? asList(googleAccountManager.getAccounts()) + ? asList(accountManager.getAccountsByType("com.google")) : Collections.emptyList(); } + public Account getSelectedAccount() { + return getAccount(gtasksPreferenceService.getUserName()); + } + public Account getAccount(final String name) { if (Strings.isNullOrEmpty(name)) { return null; diff --git a/app/src/googleplay/java/org/tasks/gtasks/GoogleTaskSyncAdapter.java b/app/src/main/java/org/tasks/gtasks/GoogleTaskSyncAdapter.java similarity index 100% rename from app/src/googleplay/java/org/tasks/gtasks/GoogleTaskSyncAdapter.java rename to app/src/main/java/org/tasks/gtasks/GoogleTaskSyncAdapter.java diff --git a/app/src/googleplay/java/org/tasks/gtasks/GoogleTaskSyncService.java b/app/src/main/java/org/tasks/gtasks/GoogleTaskSyncService.java similarity index 100% rename from app/src/googleplay/java/org/tasks/gtasks/GoogleTaskSyncService.java rename to app/src/main/java/org/tasks/gtasks/GoogleTaskSyncService.java diff --git a/app/src/googleplay/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java b/app/src/main/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java similarity index 66% rename from app/src/googleplay/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java rename to app/src/main/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java index acb731850..859b5bae0 100644 --- a/app/src/googleplay/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java +++ b/app/src/main/java/org/tasks/gtasks/GoogleTasksUnsuccessfulResponseHandler.java @@ -1,9 +1,5 @@ package org.tasks.gtasks; -import android.content.Context; - -import com.google.android.gms.auth.GoogleAuthException; -import com.google.android.gms.auth.GoogleAuthUtil; import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential; import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; import com.google.api.client.http.HttpRequest; @@ -13,7 +9,6 @@ import com.google.api.client.http.HttpStatusCodes; import com.google.api.client.http.HttpUnsuccessfulResponseHandler; import com.google.api.client.util.BackOff; import com.google.api.client.util.ExponentialBackOff; -import com.google.api.services.tasks.TasksScopes; import com.todoroo.astrid.gtasks.api.HttpNotFoundException; import java.io.IOException; @@ -24,12 +19,12 @@ public class GoogleTasksUnsuccessfulResponseHandler implements HttpUnsuccessfulR private static final BackOff BACKOFF = new ExponentialBackOff.Builder().build(); - private final Context context; + private final PlayServices playServices; private final GoogleAccountCredential googleAccountCredential; private final HttpBackOffUnsuccessfulResponseHandler backoffHandler = new HttpBackOffUnsuccessfulResponseHandler(BACKOFF); - public GoogleTasksUnsuccessfulResponseHandler(Context context, GoogleAccountCredential googleAccountCredential) { - this.context = context; + public GoogleTasksUnsuccessfulResponseHandler(PlayServices playServices, GoogleAccountCredential googleAccountCredential) { + this.playServices = playServices; this.googleAccountCredential = googleAccountCredential; } @@ -42,7 +37,7 @@ public class GoogleTasksUnsuccessfulResponseHandler implements HttpUnsuccessfulR } int statusCode = response.getStatusCode(); if ((statusCode == HttpStatusCodes.STATUS_CODE_UNAUTHORIZED || statusCode == HttpStatusCodes.STATUS_CODE_FORBIDDEN)) { - boolean shouldRetry = clearToken(googleAccountCredential); + boolean shouldRetry = playServices.clearToken(googleAccountCredential); if (!shouldRetry) { return false; } @@ -54,20 +49,4 @@ public class GoogleTasksUnsuccessfulResponseHandler implements HttpUnsuccessfulR return backoffHandler.handleResponse(request, response, supportsRetry); } - - private boolean clearToken(GoogleAccountCredential credential){ - try { - String token = credential.getToken(); - Timber.d("Invalidating %s", token); - GoogleAuthUtil.clearToken(context, token); - GoogleAuthUtil.getToken(context, credential.getSelectedAccount(), "oauth2:" + TasksScopes.TASKS, null); - return true; - } catch (GoogleAuthException e) { - Timber.e(e, e.getMessage()); - return false; - } catch (IOException e) { - Timber.e(e, e.getMessage()); - return true; - } - } } diff --git a/app/src/googleplay/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java b/app/src/main/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java similarity index 75% rename from app/src/googleplay/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java rename to app/src/main/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java index de3e6f272..3768cb656 100644 --- a/app/src/googleplay/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java +++ b/app/src/main/java/org/tasks/gtasks/GtaskSyncAdapterHelper.java @@ -1,13 +1,12 @@ package org.tasks.gtasks; import android.accounts.Account; +import android.app.Activity; import android.content.ContentResolver; import android.os.Bundle; -import com.todoroo.astrid.activity.TaskListFragment; import com.todoroo.astrid.gtasks.GtasksPreferenceService; -import org.tasks.AccountManager; import org.tasks.R; import org.tasks.analytics.Tracker; import org.tasks.analytics.Tracking; @@ -23,20 +22,20 @@ public class GtaskSyncAdapterHelper { private static final String AUTHORITY = "org.tasks"; - private final AccountManager accountManager; + private final GoogleAccountManager accountManager; private final Preferences preferences; private final GtasksPreferenceService gtasksPreferenceService; - private final PlayServicesAvailability playServicesAvailability; + private final PlayServices playServices; private final Tracker tracker; @Inject - public GtaskSyncAdapterHelper(AccountManager accountManager, Preferences preferences, + public GtaskSyncAdapterHelper(GoogleAccountManager accountManager, Preferences preferences, GtasksPreferenceService gtasksPreferenceService, - PlayServicesAvailability playServicesAvailability, Tracker tracker) { + PlayServices playServices, Tracker tracker) { this.accountManager = accountManager; this.preferences = preferences; this.gtasksPreferenceService = gtasksPreferenceService; - this.playServicesAvailability = playServicesAvailability; + this.playServices = playServices; this.tracker = tracker; } @@ -74,14 +73,14 @@ public class GtaskSyncAdapterHelper { public boolean isEnabled() { return preferences.getBoolean(R.string.sync_gtasks, false) && - playServicesAvailability.isPlayServicesAvailable() && + playServices.isPlayServicesAvailable() && getAccount() != null; } - public void enableSynchronization(boolean enabled) { + public void enableBackgroundSynchronization(boolean enabled) { Account account = getAccount(); if (account != null) { - Timber.d("enableSynchronization=%s", enabled); + Timber.d("enableBackgroundSynchronization=%s", enabled); ContentResolver.setSyncAutomatically(account, AUTHORITY, enabled); if (enabled) { ContentResolver.addPeriodicSync(account, AUTHORITY, Bundle.EMPTY, TimeUnit.HOURS.toSeconds(1)); @@ -91,7 +90,7 @@ public class GtaskSyncAdapterHelper { } } - public boolean isSyncEnabled() { + public boolean isBackgroundSyncEnabled() { return isEnabled() && ContentResolver.getSyncAutomatically(getAccount(), AUTHORITY); } @@ -99,14 +98,13 @@ public class GtaskSyncAdapterHelper { return accountManager.getAccount(gtasksPreferenceService.getUserName()); } - public void checkPlayServices(TaskListFragment taskListFragment) { - if (taskListFragment != null && - preferences.getBoolean(R.string.sync_gtasks, false) && - !playServicesAvailability.refreshAndCheck() && + public void checkPlayServices(Activity activity) { + if (preferences.getBoolean(R.string.sync_gtasks, false) && + !playServices.refreshAndCheck() && !preferences.getBoolean(R.string.warned_play_services, false)) { preferences.setBoolean(R.string.warned_play_services, true); - playServicesAvailability.resolve(taskListFragment.getActivity()); - tracker.reportEvent(Tracking.Events.PLAY_SERVICES_WARNING, playServicesAvailability.getStatus()); + playServices.resolve(activity); + tracker.reportEvent(Tracking.Events.PLAY_SERVICES_WARNING, playServices.getStatus()); } } } diff --git a/app/src/googleplay/java/org/tasks/gtasks/RenameListDialog.java b/app/src/main/java/org/tasks/gtasks/RenameListDialog.java similarity index 100% rename from app/src/googleplay/java/org/tasks/gtasks/RenameListDialog.java rename to app/src/main/java/org/tasks/gtasks/RenameListDialog.java diff --git a/app/src/googleplay/java/org/tasks/injection/ActivityComponent.java b/app/src/main/java/org/tasks/injection/ActivityComponent.java similarity index 97% rename from app/src/googleplay/java/org/tasks/injection/ActivityComponent.java rename to app/src/main/java/org/tasks/injection/ActivityComponent.java index 8656e256c..db45949d6 100644 --- a/app/src/googleplay/java/org/tasks/injection/ActivityComponent.java +++ b/app/src/main/java/org/tasks/injection/ActivityComponent.java @@ -10,7 +10,9 @@ import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.files.AACRecordingActivity; import com.todoroo.astrid.gcal.CalendarReminderActivity; -import com.todoroo.astrid.gtasks.GtasksPreferences; + +import org.tasks.activities.GoogleTaskListSettingsActivity; +import org.tasks.sync.SynchronizationPreferences; import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; import com.todoroo.astrid.reminders.ReminderPreferences; @@ -22,7 +24,6 @@ import org.tasks.activities.DateAndTimePickerActivity; import org.tasks.activities.DatePickerActivity; import org.tasks.activities.FilterSelectionActivity; import org.tasks.activities.FilterSettingsActivity; -import org.tasks.activities.GoogleTaskListSettingsActivity; import org.tasks.activities.TagSettingsActivity; import org.tasks.activities.TimePickerActivity; import org.tasks.caldav.CalDAVSettingsActivity; @@ -51,7 +52,7 @@ import dagger.Subcomponent; @Subcomponent(modules = ActivityModule.class) public interface ActivityComponent { - void inject(GtasksPreferences gtasksPreferences); + void inject(SynchronizationPreferences synchronizationPreferences); void inject(GtasksLoginActivity gtasksLoginActivity); diff --git a/app/src/googleplay/java/org/tasks/injection/ApplicationComponent.java b/app/src/main/java/org/tasks/injection/ApplicationComponent.java similarity index 100% rename from app/src/googleplay/java/org/tasks/injection/ApplicationComponent.java rename to app/src/main/java/org/tasks/injection/ApplicationComponent.java diff --git a/app/src/googleplay/java/org/tasks/injection/DialogFragmentComponent.java b/app/src/main/java/org/tasks/injection/DialogFragmentComponent.java similarity index 100% rename from app/src/googleplay/java/org/tasks/injection/DialogFragmentComponent.java rename to app/src/main/java/org/tasks/injection/DialogFragmentComponent.java diff --git a/app/src/main/java/org/tasks/injection/FragmentComponent.java b/app/src/main/java/org/tasks/injection/FragmentComponent.java index c11cca762..9d11cea53 100644 --- a/app/src/main/java/org/tasks/injection/FragmentComponent.java +++ b/app/src/main/java/org/tasks/injection/FragmentComponent.java @@ -20,9 +20,9 @@ import org.tasks.tasklist.TagListFragment; import org.tasks.ui.CalendarControlSet; import org.tasks.ui.DeadlineControlSet; import org.tasks.ui.DescriptionControlSet; -import org.tasks.ui.RemoteListFragment; import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.PriorityControlSet; +import org.tasks.ui.RemoteListFragment; import dagger.Subcomponent; diff --git a/app/src/googleplay/java/org/tasks/injection/SyncAdapterComponent.java b/app/src/main/java/org/tasks/injection/SyncAdapterComponent.java similarity index 100% rename from app/src/googleplay/java/org/tasks/injection/SyncAdapterComponent.java rename to app/src/main/java/org/tasks/injection/SyncAdapterComponent.java diff --git a/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java b/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java index 6f729396d..57c2e689d 100644 --- a/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java +++ b/app/src/main/java/org/tasks/jobs/AfterSaveIntentService.java @@ -9,7 +9,6 @@ import android.provider.CalendarContract; import android.support.annotation.NonNull; import android.text.TextUtils; -import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.repeats.RepeatTaskHelper; @@ -45,7 +44,6 @@ public class AfterSaveIntentService extends InjectingJobIntentService { @Inject RepeatTaskHelper repeatTaskHelper; @Inject @ForApplication Context context; - @Inject TaskDao taskDao; @Inject NotificationManager notificationManager; @Inject GeofenceService geofenceService; @Inject TimerPlugin timerPlugin; diff --git a/app/src/googleplay/java/org/tasks/receivers/GoogleTaskPusher.java b/app/src/main/java/org/tasks/receivers/GoogleTaskPusher.java similarity index 100% rename from app/src/googleplay/java/org/tasks/receivers/GoogleTaskPusher.java rename to app/src/main/java/org/tasks/receivers/GoogleTaskPusher.java diff --git a/app/src/googleplay/java/org/tasks/receivers/PushReceiver.java b/app/src/main/java/org/tasks/receivers/PushReceiver.java similarity index 100% rename from app/src/googleplay/java/org/tasks/receivers/PushReceiver.java rename to app/src/main/java/org/tasks/receivers/PushReceiver.java diff --git a/app/src/googleplay/java/org/tasks/sync/SyncAdapters.java b/app/src/main/java/org/tasks/sync/SyncAdapters.java similarity index 84% rename from app/src/googleplay/java/org/tasks/sync/SyncAdapters.java rename to app/src/main/java/org/tasks/sync/SyncAdapters.java index fb6f62fd7..4370e8c6e 100644 --- a/app/src/googleplay/java/org/tasks/sync/SyncAdapters.java +++ b/app/src/main/java/org/tasks/sync/SyncAdapters.java @@ -1,9 +1,8 @@ package org.tasks.sync; +import android.app.Activity; import android.content.ContentResolver; -import com.todoroo.astrid.activity.TaskListFragment; - import org.tasks.caldav.CaldavAccountManager; import org.tasks.gtasks.GtaskSyncAdapterHelper; @@ -38,14 +37,14 @@ public class SyncAdapters { } public boolean isGoogleTaskSyncEnabled() { - return gtaskSyncAdapterHelper.isSyncEnabled(); + return gtaskSyncAdapterHelper.isEnabled(); } public boolean isCaldavSyncEnabled() { return caldavAccountManager.getAccounts().size() > 0; } - public void checkPlayServices(TaskListFragment taskListFragment) { - gtaskSyncAdapterHelper.checkPlayServices(taskListFragment); + public void checkPlayServices(Activity activity) { + gtaskSyncAdapterHelper.checkPlayServices(activity); } } diff --git a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksPreferences.java b/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java similarity index 82% rename from app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksPreferences.java rename to app/src/main/java/org/tasks/sync/SynchronizationPreferences.java index aecb15ab8..c382a2c01 100644 --- a/app/src/googleplay/java/com/todoroo/astrid/gtasks/GtasksPreferences.java +++ b/app/src/main/java/org/tasks/sync/SynchronizationPreferences.java @@ -3,7 +3,7 @@ * * See the file "LICENSE" for the full license governing this code. */ -package com.todoroo.astrid.gtasks; +package org.tasks.sync; import android.content.Intent; import android.os.Bundle; @@ -11,6 +11,7 @@ import android.preference.CheckBoxPreference; import android.support.annotation.NonNull; import com.todoroo.andlib.utility.DateUtilities; +import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.auth.GtasksLoginActivity; import org.tasks.R; @@ -19,18 +20,17 @@ import org.tasks.analytics.Tracking; import org.tasks.data.GoogleTaskDao; import org.tasks.dialogs.DialogBuilder; import org.tasks.gtasks.GtaskSyncAdapterHelper; -import org.tasks.gtasks.PlayServicesAvailability; +import org.tasks.gtasks.PlayServices; import org.tasks.injection.ActivityComponent; import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.preferences.ActivityPermissionRequestor; import org.tasks.preferences.PermissionRequestor; -import org.tasks.sync.SyncAdapters; import javax.inject.Inject; import static org.tasks.PermissionUtil.verifyPermissions; -public class GtasksPreferences extends InjectingPreferenceActivity { +public class SynchronizationPreferences extends InjectingPreferenceActivity { private static final int REQUEST_LOGIN = 0; @@ -38,7 +38,7 @@ public class GtasksPreferences extends InjectingPreferenceActivity { @Inject ActivityPermissionRequestor permissionRequestor; @Inject Tracker tracker; @Inject GtaskSyncAdapterHelper gtaskSyncAdapterHelper; - @Inject PlayServicesAvailability playServicesAvailability; + @Inject PlayServices playServices; @Inject DialogBuilder dialogBuilder; @Inject SyncAdapters syncAdapters; @Inject GoogleTaskDao googleTaskDao; @@ -53,14 +53,14 @@ public class GtasksPreferences extends InjectingPreferenceActivity { gtaskPreference.setChecked(gtaskSyncAdapterHelper.isEnabled()); gtaskPreference.setOnPreferenceChangeListener((preference, newValue) -> { if ((boolean) newValue) { - if (!playServicesAvailability.refreshAndCheck()) { - playServicesAvailability.resolve(GtasksPreferences.this); + if (!playServices.refreshAndCheck()) { + playServices.resolve(SynchronizationPreferences.this); } else if (permissionRequestor.requestAccountPermissions()) { requestLogin(); } return false; } else { - gtaskSyncAdapterHelper.enableSynchronization(false); + gtaskSyncAdapterHelper.enableBackgroundSynchronization(false); tracker.reportEvent(Tracking.Events.GTASK_DISABLED); gtasksPreferenceService.stopOngoing(); return true; @@ -68,11 +68,11 @@ public class GtasksPreferences extends InjectingPreferenceActivity { }); if (gtasksPreferenceService.getLastSyncDate() > 0) { gtaskPreference.setSummary(getString(R.string.sync_status_success, - DateUtilities.getDateStringWithTime(GtasksPreferences.this, + DateUtilities.getDateStringWithTime(SynchronizationPreferences.this, gtasksPreferenceService.getLastSyncDate()))); } findPreference(getString(R.string.gtask_background_sync)).setOnPreferenceChangeListener((preference, o) -> { - gtaskSyncAdapterHelper.enableSynchronization((Boolean) o); + gtaskSyncAdapterHelper.enableBackgroundSynchronization((Boolean) o); return true; }); findPreference(getString(R.string.sync_SPr_forget_key)).setOnPreferenceClickListener(preference -> { @@ -81,7 +81,7 @@ public class GtasksPreferences extends InjectingPreferenceActivity { gtasksPreferenceService.clearLastSyncDate(); gtasksPreferenceService.setUserName(null); googleTaskDao.deleteAll(); - gtaskSyncAdapterHelper.enableSynchronization(false); + gtaskSyncAdapterHelper.enableBackgroundSynchronization(false); tracker.reportEvent(Tracking.Events.GTASK_LOGOUT); gtaskPreference.setChecked(false); }) @@ -92,7 +92,7 @@ public class GtasksPreferences extends InjectingPreferenceActivity { } private void requestLogin() { - startActivityForResult(new Intent(GtasksPreferences.this, GtasksLoginActivity.class), REQUEST_LOGIN); + startActivityForResult(new Intent(SynchronizationPreferences.this, GtasksLoginActivity.class), REQUEST_LOGIN); } @Override @@ -100,7 +100,7 @@ public class GtasksPreferences extends InjectingPreferenceActivity { super.onResume(); CheckBoxPreference backgroundSync = (CheckBoxPreference) findPreference(getString(R.string.gtask_background_sync)); - backgroundSync.setChecked(gtaskSyncAdapterHelper.isSyncEnabled()); + backgroundSync.setChecked(gtaskSyncAdapterHelper.isBackgroundSyncEnabled()); if (syncAdapters.isMasterSyncEnabled()) { backgroundSync.setSummary(null); } else { @@ -113,7 +113,7 @@ public class GtasksPreferences extends InjectingPreferenceActivity { if (requestCode == REQUEST_LOGIN) { boolean enabled = resultCode == RESULT_OK; if (enabled) { - gtaskSyncAdapterHelper.enableSynchronization(true); + gtaskSyncAdapterHelper.enableBackgroundSynchronization(true); tracker.reportEvent(Tracking.Events.GTASK_ENABLED); } ((CheckBoxPreference) findPreference(getString(R.string.sync_gtasks))).setChecked(enabled); diff --git a/app/src/googleplay/java/org/tasks/tasklist/GtasksListFragment.java b/app/src/main/java/org/tasks/tasklist/GtasksListFragment.java similarity index 100% rename from app/src/googleplay/java/org/tasks/tasklist/GtasksListFragment.java rename to app/src/main/java/org/tasks/tasklist/GtasksListFragment.java diff --git a/app/src/googleplay/java/org/tasks/ui/RemoteListFragment.java b/app/src/main/java/org/tasks/ui/RemoteListFragment.java similarity index 98% rename from app/src/googleplay/java/org/tasks/ui/RemoteListFragment.java rename to app/src/main/java/org/tasks/ui/RemoteListFragment.java index b9e115382..fc0775536 100644 --- a/app/src/googleplay/java/org/tasks/ui/RemoteListFragment.java +++ b/app/src/main/java/org/tasks/ui/RemoteListFragment.java @@ -16,7 +16,6 @@ import com.todoroo.astrid.gtasks.GtasksListService; import com.todoroo.astrid.helper.UUIDHelper; import org.tasks.R; -import org.tasks.analytics.Tracker; import org.tasks.data.CaldavDao; import org.tasks.data.CaldavTask; import org.tasks.data.GoogleTask; @@ -45,7 +44,6 @@ public class RemoteListFragment extends TaskEditControlFragment { @Inject GtasksListService gtasksListService; @Inject GoogleTaskDao googleTaskDao; @Inject CaldavDao caldavDao; - @Inject Tracker tracker; @Inject DefaultFilterProvider defaultFilterProvider; @Nullable private Filter originalList; diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml index 735b9bf8c..26ec32d6e 100644 --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -295,5 +295,6 @@ gtask_background_sync bundle_notifications strict_mode - + warned_play_services + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b76f1a6e9..53d3d5815 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -425,7 +425,7 @@ File %1$s contained %2$s.\n\n Sorry, we had trouble communicating with Google servers. Please try again later. - + Google Tasks diff --git a/app/src/release/res/xml/google_analytics.xml b/app/src/release/res/xml/google_analytics.xml index a9da5d1d7..2ba3e9a8c 100644 --- a/app/src/release/res/xml/google_analytics.xml +++ b/app/src/release/res/xml/google_analytics.xml @@ -29,7 +29,7 @@ FilterSelectionActivity TimePickerActivity FileExplore - GtasksPreferences + GtasksPreferences DashClockSettings DefaultsPreferences OldTaskPreferences