|
|
|
@ -2,10 +2,8 @@ package org.tasks.locale.ui.activity;
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.os.Bundle;
|
|
|
|
import android.support.v4.content.ContextCompat;
|
|
|
|
|
|
|
|
import android.support.v7.widget.Toolbar;
|
|
|
|
import android.support.v7.widget.Toolbar;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.view.MenuItem;
|
|
|
|
import android.widget.TextView;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.todoroo.astrid.api.Filter;
|
|
|
|
import com.todoroo.astrid.api.Filter;
|
|
|
|
|
|
|
|
|
|
|
|
@ -18,16 +16,9 @@ import org.tasks.injection.ActivityComponent;
|
|
|
|
import org.tasks.locale.bundle.PluginBundleValues;
|
|
|
|
import org.tasks.locale.bundle.PluginBundleValues;
|
|
|
|
import org.tasks.preferences.DefaultFilterProvider;
|
|
|
|
import org.tasks.preferences.DefaultFilterProvider;
|
|
|
|
import org.tasks.preferences.Preferences;
|
|
|
|
import org.tasks.preferences.Preferences;
|
|
|
|
import org.tasks.ui.MenuColorizer;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
|
|
|
|
|
|
|
import butterknife.BindView;
|
|
|
|
|
|
|
|
import butterknife.ButterKnife;
|
|
|
|
|
|
|
|
import butterknife.OnClick;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompatActivity implements PurchaseHelperCallback, Toolbar.OnMenuItemClickListener {
|
|
|
|
public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompatActivity implements PurchaseHelperCallback, Toolbar.OnMenuItemClickListener {
|
|
|
|
|
|
|
|
|
|
|
|
private static final int REQUEST_SELECT_FILTER = 10124;
|
|
|
|
private static final int REQUEST_SELECT_FILTER = 10124;
|
|
|
|
@ -35,9 +26,6 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
|
|
|
|
private static final String EXTRA_FILTER = "extra_filter";
|
|
|
|
private static final String EXTRA_FILTER = "extra_filter";
|
|
|
|
private static final String EXTRA_PURCHASE_INITIATED = "extra_purchase_initiated";
|
|
|
|
private static final String EXTRA_PURCHASE_INITIATED = "extra_purchase_initiated";
|
|
|
|
|
|
|
|
|
|
|
|
@BindView(R.id.toolbar) Toolbar toolbar;
|
|
|
|
|
|
|
|
@BindView(R.id.text_view) TextView filterTitle;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Inject Preferences preferences;
|
|
|
|
@Inject Preferences preferences;
|
|
|
|
@Inject DefaultFilterProvider defaultFilterProvider;
|
|
|
|
@Inject DefaultFilterProvider defaultFilterProvider;
|
|
|
|
@Inject PurchaseHelper purchaseHelper;
|
|
|
|
@Inject PurchaseHelper purchaseHelper;
|
|
|
|
@ -48,10 +36,10 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
|
|
|
|
private boolean purchaseInitiated;
|
|
|
|
private boolean purchaseInitiated;
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void onCreate(final Bundle savedInstanceState) {
|
|
|
|
public void onCreate(final Bundle savedInstanceState) {
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
setContentView(R.layout.tasker_settings);
|
|
|
|
|
|
|
|
ButterKnife.bind(this);
|
|
|
|
addPreferencesFromResource(R.xml.preferences_tasker);
|
|
|
|
|
|
|
|
|
|
|
|
if (savedInstanceState != null) {
|
|
|
|
if (savedInstanceState != null) {
|
|
|
|
previousBundle = savedInstanceState.getParcelable(PluginBundleValues.BUNDLE_EXTRA_PREVIOUS_BUNDLE);
|
|
|
|
previousBundle = savedInstanceState.getParcelable(PluginBundleValues.BUNDLE_EXTRA_PREVIOUS_BUNDLE);
|
|
|
|
@ -60,42 +48,26 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
filter = defaultFilterProvider.getDefaultFilter();
|
|
|
|
filter = defaultFilterProvider.getDefaultFilter();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
updateView();
|
|
|
|
|
|
|
|
|
|
|
|
findPreference(R.string.filter).setOnPreferenceClickListener(preference -> {
|
|
|
|
toolbar.setNavigationIcon(ContextCompat.getDrawable(this, R.drawable.ic_close_24dp));
|
|
|
|
startActivityForResult(new Intent(TaskerSettingsActivity.this, FilterSelectionActivity.class) {{
|
|
|
|
toolbar.setOnMenuItemClickListener(this);
|
|
|
|
putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
|
|
|
|
toolbar.setNavigationOnClickListener(view -> {
|
|
|
|
}}, REQUEST_SELECT_FILTER);
|
|
|
|
if (equalBundles(getResultBundle(), previousBundle)) {
|
|
|
|
return false;
|
|
|
|
cancel();
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
dialogBuilder.newMessageDialog(R.string.discard_changes)
|
|
|
|
|
|
|
|
.setPositiveButton(android.R.string.ok, (dialog, which) -> cancel())
|
|
|
|
|
|
|
|
.setNegativeButton(android.R.string.cancel, (dialog, which) -> {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
.show();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
});
|
|
|
|
toolbar.inflateMenu(R.menu.tasker_menu);
|
|
|
|
|
|
|
|
MenuColorizer.colorToolbar(this, toolbar);
|
|
|
|
refreshPreferences();
|
|
|
|
|
|
|
|
|
|
|
|
if (!preferences.hasPurchase(R.string.p_purchased_tasker) && !purchaseInitiated) {
|
|
|
|
if (!preferences.hasPurchase(R.string.p_purchased_tasker) && !purchaseInitiated) {
|
|
|
|
purchaseInitiated = purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_tasker), getString(R.string.p_purchased_tasker), REQUEST_PURCHASE, this);
|
|
|
|
purchaseInitiated = purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_tasker), getString(R.string.p_purchased_tasker), REQUEST_PURCHASE, this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@OnClick(R.id.filter_selection)
|
|
|
|
|
|
|
|
void selectFilter() {
|
|
|
|
|
|
|
|
startActivityForResult(new Intent(TaskerSettingsActivity.this, FilterSelectionActivity.class) {{
|
|
|
|
|
|
|
|
putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
|
|
|
|
|
|
|
|
}}, REQUEST_SELECT_FILTER);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void onPostCreateWithPreviousResult(final Bundle previousBundle, final String previousBlurb) {
|
|
|
|
public void onPostCreateWithPreviousResult(final Bundle previousBundle, final String previousBlurb) {
|
|
|
|
this.previousBundle = previousBundle;
|
|
|
|
this.previousBundle = previousBundle;
|
|
|
|
this.filter = defaultFilterProvider.getFilterFromPreference(PluginBundleValues.getFilter(previousBundle));
|
|
|
|
this.filter = defaultFilterProvider.getFilterFromPreference(PluginBundleValues.getFilter(previousBundle));
|
|
|
|
updateView();
|
|
|
|
refreshPreferences();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@ -118,45 +90,12 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
|
|
|
|
finish();
|
|
|
|
finish();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private boolean equalBundles(Bundle one, Bundle two) {
|
|
|
|
|
|
|
|
if (one == null) {
|
|
|
|
|
|
|
|
return two == null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (two == null) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(one.size() != two.size())
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set<String> setOne = one.keySet();
|
|
|
|
|
|
|
|
Object valueOne;
|
|
|
|
|
|
|
|
Object valueTwo;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for(String key : setOne) {
|
|
|
|
|
|
|
|
valueOne = one.get(key);
|
|
|
|
|
|
|
|
valueTwo = two.get(key);
|
|
|
|
|
|
|
|
if(valueOne instanceof Bundle && valueTwo instanceof Bundle &&
|
|
|
|
|
|
|
|
!equalBundles((Bundle) valueOne, (Bundle) valueTwo)) {
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(valueOne == null) {
|
|
|
|
|
|
|
|
if(valueTwo != null || !two.containsKey(key))
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if(!valueOne.equals(valueTwo))
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
|
if (requestCode == REQUEST_SELECT_FILTER) {
|
|
|
|
if (requestCode == REQUEST_SELECT_FILTER) {
|
|
|
|
if (resultCode == RESULT_OK) {
|
|
|
|
if (resultCode == RESULT_OK) {
|
|
|
|
filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
|
|
|
|
filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
|
|
|
|
updateView();
|
|
|
|
refreshPreferences();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else if (requestCode == REQUEST_PURCHASE) {
|
|
|
|
} else if (requestCode == REQUEST_PURCHASE) {
|
|
|
|
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
|
|
|
|
purchaseHelper.handleActivityResult(this, requestCode, resultCode, data);
|
|
|
|
@ -182,8 +121,8 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginAppCompa
|
|
|
|
outState.putBoolean(EXTRA_PURCHASE_INITIATED, purchaseInitiated);
|
|
|
|
outState.putBoolean(EXTRA_PURCHASE_INITIATED, purchaseInitiated);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateView() {
|
|
|
|
private void refreshPreferences() {
|
|
|
|
filterTitle.setText(filter.listingTitle);
|
|
|
|
findPreference(getString(R.string.filter)).setSummary(filter.listingTitle);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
|