diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f59113fc9..2113370d0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -477,7 +477,7 @@
android:value="Display a count of active tasks"/>
+ android:value="org.tasks.dashclock.DashClockSettings"/>
{
- Intent intent = new Intent(DashClockSettings.this, FilterSelectionActivity.class);
- intent.putExtra(
- FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.getDashclockFilter());
- intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
- startActivityForResult(intent, REQUEST_SELECT_FILTER);
- return false;
- });
-
- refreshPreferences();
-
- if (!inventory.purchasedDashclock()) {
- startActivityForResult(new Intent(this, PurchaseActivity.class), REQUEST_SUBSCRIPTION);
- }
- }
-
- @Override
- public void inject(ActivityComponent component) {
- component.inject(this);
- }
-
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == REQUEST_SELECT_FILTER) {
- if (resultCode == Activity.RESULT_OK) {
- Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
- defaultFilterProvider.setDashclockFilter(filter);
- refreshPreferences();
- localBroadcastManager.broadcastRefresh();
- }
- } else if (requestCode == REQUEST_SUBSCRIPTION) {
- if (!inventory.purchasedDashclock()) {
- finish();
- }
- } else {
- super.onActivityResult(requestCode, resultCode, data);
- }
- }
-
- private void refreshPreferences() {
- Filter filter = defaultFilterProvider.getFilterFromPreference(R.string.p_dashclock_filter);
- findPreference(getString(R.string.p_dashclock_filter)).setSummary(filter.listingTitle);
- }
-}
diff --git a/app/src/main/java/org/tasks/dashclock/DashClockSettings.kt b/app/src/main/java/org/tasks/dashclock/DashClockSettings.kt
new file mode 100644
index 000000000..55fc4546c
--- /dev/null
+++ b/app/src/main/java/org/tasks/dashclock/DashClockSettings.kt
@@ -0,0 +1,14 @@
+package org.tasks.dashclock
+
+import org.tasks.R
+import org.tasks.injection.ActivityComponent
+import org.tasks.preferences.BasePreferences
+import org.tasks.preferences.fragments.DashClock
+
+class DashClockSettings : BasePreferences() {
+ override fun getRootTitle() = R.string.pro_dashclock_extension
+
+ override fun getRootPreference() = DashClock()
+
+ override fun inject(component: ActivityComponent) = component.inject(this)
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/tasks/injection/FragmentComponent.java b/app/src/main/java/org/tasks/injection/FragmentComponent.java
index 3b1832943..0dba62edd 100644
--- a/app/src/main/java/org/tasks/injection/FragmentComponent.java
+++ b/app/src/main/java/org/tasks/injection/FragmentComponent.java
@@ -12,6 +12,7 @@ import com.todoroo.astrid.ui.ReminderControlSet;
import dagger.Subcomponent;
import org.jetbrains.annotations.NotNull;
import org.tasks.fragments.CommentBarFragment;
+import org.tasks.preferences.fragments.DashClock;
import org.tasks.preferences.fragments.HelpAndFeedback;
import org.tasks.preferences.fragments.ScrollableWidget;
import org.tasks.ui.CalendarControlSet;
@@ -68,4 +69,6 @@ public interface FragmentComponent {
void inject(@NotNull HelpAndFeedback helpAndFeedback);
void inject(@NotNull ScrollableWidget scrollableWidget);
+
+ void inject(@NotNull DashClock dashClock);
}
diff --git a/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt
new file mode 100644
index 000000000..7835e6ab4
--- /dev/null
+++ b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt
@@ -0,0 +1,69 @@
+package org.tasks.preferences.fragments
+
+import android.app.Activity
+import android.content.Intent
+import android.os.Bundle
+import com.todoroo.astrid.api.Filter
+import org.tasks.LocalBroadcastManager
+import org.tasks.R
+import org.tasks.activities.FilterSelectionActivity
+import org.tasks.billing.Inventory
+import org.tasks.billing.PurchaseActivity
+import org.tasks.injection.FragmentComponent
+import org.tasks.injection.InjectingPreferenceFragment
+import org.tasks.preferences.DefaultFilterProvider
+import javax.inject.Inject
+
+private const val REQUEST_SELECT_FILTER = 1005
+private const val REQUEST_SUBSCRIPTION = 1006
+
+class DashClock : InjectingPreferenceFragment() {
+
+ @Inject lateinit var defaultFilterProvider: DefaultFilterProvider
+ @Inject lateinit var localBroadcastManager: LocalBroadcastManager
+ @Inject lateinit var inventory: Inventory
+
+ override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
+ setPreferencesFromResource(R.xml.preferences_dashclock, rootKey)
+
+ findPreference(R.string.p_dashclock_filter)
+ .setOnPreferenceClickListener {
+ val intent = Intent(context, FilterSelectionActivity::class.java)
+ intent.putExtra(
+ FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.dashclockFilter)
+ intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true)
+ startActivityForResult(intent, REQUEST_SELECT_FILTER)
+ false
+ }
+
+ refreshPreferences()
+
+ if (!inventory.purchasedDashclock()) {
+ startActivityForResult(Intent(context, PurchaseActivity::class.java), REQUEST_SUBSCRIPTION)
+ }
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ if (requestCode == REQUEST_SELECT_FILTER) {
+ if (resultCode == Activity.RESULT_OK) {
+ val filter: Filter = data!!.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER)!!
+ defaultFilterProvider.dashclockFilter = filter
+ refreshPreferences()
+ localBroadcastManager.broadcastRefresh()
+ }
+ } else if (requestCode == REQUEST_SUBSCRIPTION) {
+ if (!inventory.purchasedDashclock()) {
+ activity!!.finish()
+ }
+ } else {
+ super.onActivityResult(requestCode, resultCode, data)
+ }
+ }
+
+ private fun refreshPreferences() {
+ val filter = defaultFilterProvider.getFilterFromPreference(R.string.p_dashclock_filter)
+ findPreference(R.string.p_dashclock_filter).summary = filter.listingTitle
+ }
+
+ override fun inject(component: FragmentComponent) = component.inject(this)
+}
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences_dashclock.xml b/app/src/main/res/xml/preferences_dashclock.xml
index 1616808a6..99b07d783 100644
--- a/app/src/main/res/xml/preferences_dashclock.xml
+++ b/app/src/main/res/xml/preferences_dashclock.xml
@@ -1,6 +1,6 @@
-
\ No newline at end of file