mirror of https://github.com/tasks/tasks
Migrate dashclock extension to androidx prefs
parent
09d2314411
commit
71d92db25f
@ -1,77 +0,0 @@
|
|||||||
package org.tasks.dashclock;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
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.ActivityComponent;
|
|
||||||
import org.tasks.injection.InjectingPreferenceActivity;
|
|
||||||
import org.tasks.preferences.DefaultFilterProvider;
|
|
||||||
|
|
||||||
public class DashClockSettings extends InjectingPreferenceActivity {
|
|
||||||
|
|
||||||
private static final int REQUEST_SELECT_FILTER = 1005;
|
|
||||||
private static final int REQUEST_SUBSCRIPTION = 1006;
|
|
||||||
|
|
||||||
@Inject DefaultFilterProvider defaultFilterProvider;
|
|
||||||
@Inject LocalBroadcastManager localBroadcastManager;
|
|
||||||
@Inject Inventory inventory;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
|
||||||
super.onCreate(savedInstanceState);
|
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.preferences_dashclock);
|
|
||||||
|
|
||||||
findPreference(getString(R.string.p_dashclock_filter))
|
|
||||||
.setOnPreferenceClickListener(
|
|
||||||
preference -> {
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -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)
|
||||||
|
}
|
||||||
@ -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)
|
||||||
|
}
|
||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<com.todoroo.astrid.ui.MultilinePreference
|
<Preference
|
||||||
android:key="@string/p_dashclock_filter"
|
android:key="@string/p_dashclock_filter"
|
||||||
android:title="@string/filter"/>
|
android:title="@string/filter"/>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
Loading…
Reference in New Issue