mirror of https://github.com/tasks/tasks
Add ColorPickerActivity
parent
36352875f4
commit
43eeab95b9
@ -0,0 +1,81 @@
|
|||||||
|
package org.tasks.activities;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import org.tasks.R;
|
||||||
|
import org.tasks.billing.PurchaseHelper;
|
||||||
|
import org.tasks.billing.PurchaseHelperCallback;
|
||||||
|
import org.tasks.dialogs.ColorPickerDialog;
|
||||||
|
import org.tasks.dialogs.DialogBuilder;
|
||||||
|
import org.tasks.injection.ActivityComponent;
|
||||||
|
import org.tasks.injection.InjectingAppCompatActivity;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import static org.tasks.dialogs.ColorPickerDialog.newColorPickerDialog;
|
||||||
|
|
||||||
|
public class ColorPickerActivity extends InjectingAppCompatActivity implements ColorPickerDialog.ThemePickerCallback, PurchaseHelperCallback {
|
||||||
|
|
||||||
|
private static final String FRAG_TAG_COLOR_PICKER = "frag_tag_color_picker";
|
||||||
|
private static final int REQUEST_PURCHASE = 1006;
|
||||||
|
|
||||||
|
public static final String EXTRA_PALETTE = "extra_palette";
|
||||||
|
public static final String EXTRA_THEME_INDEX = "extra_index";
|
||||||
|
|
||||||
|
@Inject PurchaseHelper purchaseHelper;
|
||||||
|
@Inject DialogBuilder dialogBuilder;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
|
super.onCreate(savedInstanceState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostResume() {
|
||||||
|
super.onPostResume();
|
||||||
|
|
||||||
|
newColorPickerDialog((ColorPickerDialog.ColorPalette) getIntent().getSerializableExtra(EXTRA_PALETTE))
|
||||||
|
.show(getSupportFragmentManager(), FRAG_TAG_COLOR_PICKER);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void inject(ActivityComponent component) {
|
||||||
|
component.inject(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void themePicked(final ColorPickerDialog.ColorPalette palette, final int index) {
|
||||||
|
setResult(RESULT_OK, new Intent() {{
|
||||||
|
putExtra(EXTRA_PALETTE, palette);
|
||||||
|
putExtra(EXTRA_THEME_INDEX, index);
|
||||||
|
}});
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initiateThemePurchase() {
|
||||||
|
purchaseHelper.purchase(dialogBuilder, this, getString(R.string.sku_themes), getString(R.string.p_purchased_themes), REQUEST_PURCHASE, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dismissed() {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
if (requestCode == REQUEST_PURCHASE) {
|
||||||
|
purchaseHelper.handleActivityResult(PurchaseHelperCallback.NO_OP, requestCode, resultCode, data);
|
||||||
|
} else {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void purchaseCompleted(boolean success, String sku) {
|
||||||
|
if (!success) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,13 @@
|
|||||||
package org.tasks.billing;
|
package org.tasks.billing;
|
||||||
|
|
||||||
public interface PurchaseHelperCallback {
|
public interface PurchaseHelperCallback {
|
||||||
|
|
||||||
|
PurchaseHelperCallback NO_OP = new PurchaseHelperCallback() {
|
||||||
|
@Override
|
||||||
|
public void purchaseCompleted(boolean success, String sku) {
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void purchaseCompleted(boolean success, String sku);
|
void purchaseCompleted(boolean success, String sku);
|
||||||
}
|
}
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
package org.tasks.dialogs;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import org.tasks.injection.InjectingNativeDialogFragment;
|
|
||||||
import org.tasks.injection.NativeDialogFragmentComponent;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
public class NativeThemePickerDialog extends InjectingNativeDialogFragment implements ThemePickerDialog.ThemePickerCallback {
|
|
||||||
|
|
||||||
private static final String EXTRA_PALETTE = "extra_palette";
|
|
||||||
|
|
||||||
public static NativeThemePickerDialog newNativeThemePickerDialog(ThemePickerDialog.ColorPalette palette) {
|
|
||||||
NativeThemePickerDialog dialog = new NativeThemePickerDialog();
|
|
||||||
dialog.palette = palette;
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject ThemePickerDialog themePickerDialog;
|
|
||||||
|
|
||||||
private ThemePickerDialog.ColorPalette palette;
|
|
||||||
private ThemePickerDialog.ThemePickerCallback callback;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
palette = (ThemePickerDialog.ColorPalette) savedInstanceState.getSerializable(EXTRA_PALETTE);
|
|
||||||
}
|
|
||||||
return themePickerDialog.createDialog(palette, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Activity activity) {
|
|
||||||
super.onAttach(activity);
|
|
||||||
|
|
||||||
callback = (ThemePickerDialog.ThemePickerCallback) activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
|
|
||||||
outState.putSerializable(EXTRA_PALETTE, palette);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inject(NativeDialogFragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void themePicked(ThemePickerDialog.ColorPalette palette, int index) {
|
|
||||||
callback.themePicked(palette, index);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initiateThemePurchase() {
|
|
||||||
callback.initiateThemePurchase();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
package org.tasks.dialogs;
|
|
||||||
|
|
||||||
import android.app.Activity;
|
|
||||||
import android.app.Dialog;
|
|
||||||
import android.os.Bundle;
|
|
||||||
|
|
||||||
import org.tasks.injection.DialogFragmentComponent;
|
|
||||||
import org.tasks.injection.InjectingDialogFragment;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
|
|
||||||
public class SupportThemePickerDialog extends InjectingDialogFragment implements ThemePickerDialog.ThemePickerCallback {
|
|
||||||
|
|
||||||
private static final String EXTRA_PALETTE = "extra_palette";
|
|
||||||
|
|
||||||
public static SupportThemePickerDialog newSupportThemePickerDialog(ThemePickerDialog.ColorPalette palette) {
|
|
||||||
SupportThemePickerDialog dialog = new SupportThemePickerDialog();
|
|
||||||
dialog.palette = palette;
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject ThemePickerDialog themePickerDialog;
|
|
||||||
|
|
||||||
private ThemePickerDialog.ColorPalette palette;
|
|
||||||
private ThemePickerDialog.ThemePickerCallback callback;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
||||||
if (savedInstanceState != null) {
|
|
||||||
palette = (ThemePickerDialog.ColorPalette) savedInstanceState.getSerializable(EXTRA_PALETTE);
|
|
||||||
}
|
|
||||||
return themePickerDialog.createDialog(palette, this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onAttach(Activity activity) {
|
|
||||||
super.onAttach(activity);
|
|
||||||
|
|
||||||
callback = (ThemePickerDialog.ThemePickerCallback) activity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
|
||||||
super.onSaveInstanceState(outState);
|
|
||||||
|
|
||||||
outState.putSerializable(EXTRA_PALETTE, palette);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inject(DialogFragmentComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void themePicked(ThemePickerDialog.ColorPalette palette, int index) {
|
|
||||||
callback.themePicked(palette, index);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initiateThemePurchase() {
|
|
||||||
callback.initiateThemePurchase();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,10 +1,7 @@
|
|||||||
package org.tasks.injection;
|
package org.tasks.injection;
|
||||||
|
|
||||||
import org.tasks.dialogs.NativeThemePickerDialog;
|
|
||||||
import org.tasks.locale.LocalePickerDialog;
|
import org.tasks.locale.LocalePickerDialog;
|
||||||
|
|
||||||
public interface BaseNativeDialogFragmentComponent {
|
public interface BaseNativeDialogFragmentComponent {
|
||||||
void inject(NativeThemePickerDialog themePickerDialog);
|
|
||||||
|
|
||||||
void inject(LocalePickerDialog localePickerDialog);
|
void inject(LocalePickerDialog localePickerDialog);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue