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"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<com.todoroo.astrid.ui.MultilinePreference
|
||||
<Preference
|
||||
android:key="@string/p_dashclock_filter"
|
||||
android:title="@string/filter"/>
|
||||
</PreferenceScreen>
|
||||
Loading…
Reference in New Issue