mirror of https://github.com/tasks/tasks
parent
b62467ad74
commit
1c227e92a5
@ -1,108 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2012 Todoroo Inc
|
||||
*
|
||||
* See the file "LICENSE" for the full license governing this code.
|
||||
*/
|
||||
package com.todoroo.astrid.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.todoroo.astrid.adapter.FilterAdapter;
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
import com.todoroo.astrid.api.FilterListItem;
|
||||
|
||||
import org.tasks.R;
|
||||
import org.tasks.dialogs.DialogBuilder;
|
||||
import org.tasks.filters.FilterCounter;
|
||||
import org.tasks.filters.FilterProvider;
|
||||
import org.tasks.injection.ActivityComponent;
|
||||
import org.tasks.injection.ForApplication;
|
||||
import org.tasks.injection.InjectingListActivity;
|
||||
import org.tasks.intents.TaskIntents;
|
||||
import org.tasks.preferences.ActivityPreferences;
|
||||
import org.tasks.preferences.DefaultFilterProvider;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class FilterShortcutActivity extends InjectingListActivity {
|
||||
|
||||
@Inject FilterCounter filterCounter;
|
||||
@Inject ActivityPreferences preferences;
|
||||
@Inject FilterProvider filterProvider;
|
||||
@Inject @ForApplication Context context;
|
||||
@Inject DialogBuilder dialogBuilder;
|
||||
@Inject DefaultFilterProvider defaultFilterProvider;
|
||||
|
||||
private FilterAdapter adapter = null;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
preferences.applyLightStatusBarColor();
|
||||
// Set the view layout resource to use.
|
||||
setContentView(R.layout.filter_shortcut_activity);
|
||||
|
||||
// set up ui
|
||||
adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false);
|
||||
setListAdapter(adapter);
|
||||
|
||||
Button button = (Button)findViewById(R.id.ok);
|
||||
button.setOnClickListener(mOnClickListener);
|
||||
}
|
||||
|
||||
final View.OnClickListener mOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Filter filter = (Filter) adapter.getSelection();
|
||||
if (filter == null) {
|
||||
dialogBuilder.newMessageDialog(R.string.FLA_no_filter_selected)
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.show();
|
||||
return;
|
||||
}
|
||||
|
||||
String filterId = defaultFilterProvider.getFilterPreferenceValue(filter);
|
||||
Intent shortcutIntent = TaskIntents.getTaskListByIdIntent(context, filterId);
|
||||
|
||||
Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap();
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, filter.listingTitle);
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
|
||||
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
|
||||
setResult(RESULT_OK, intent);
|
||||
finish();
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
super.onListItemClick(l, v, position, id);
|
||||
FilterListItem item = adapter.getItem(position);
|
||||
adapter.setSelection(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
adapter.registerRecevier();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
adapter.unregisterRecevier();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inject(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
}
|
@ -1,144 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) 2012 Todoroo Inc
|
||||
*
|
||||
* See the file "LICENSE" for the full license governing this code.
|
||||
*/
|
||||
package com.todoroo.astrid.widget;
|
||||
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.ListView;
|
||||
|
||||
import com.todoroo.astrid.adapter.FilterAdapter;
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
import com.todoroo.astrid.api.FilterListItem;
|
||||
|
||||
import org.tasks.R;
|
||||
import org.tasks.filters.FilterCounter;
|
||||
import org.tasks.filters.FilterProvider;
|
||||
import org.tasks.injection.ActivityComponent;
|
||||
import org.tasks.injection.InjectingListActivity;
|
||||
import org.tasks.preferences.ActivityPreferences;
|
||||
import org.tasks.preferences.DefaultFilterProvider;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class WidgetConfigActivity extends InjectingListActivity {
|
||||
|
||||
public static final String PREF_WIDGET_ID = "widget-id-";
|
||||
public static final String PREF_SHOW_DUE_DATE = "widget-show-due-date-";
|
||||
public static final String PREF_HIDE_CHECKBOXES = "widget-hide-checkboxes-";
|
||||
public static final String PREF_DARK_THEME = "widget-dark-theme-";
|
||||
public static final String PREF_HIDE_HEADER = "widget-hide-header-";
|
||||
public static final String PREF_WIDGET_TRANSPARENT = "widget-transparent-";
|
||||
|
||||
int mAppWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
|
||||
|
||||
FilterAdapter adapter = null;
|
||||
|
||||
@Inject FilterCounter filterCounter;
|
||||
@Inject ActivityPreferences preferences;
|
||||
@Inject FilterProvider filterProvider;
|
||||
@Inject DefaultFilterProvider defaultFilterProvider;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
preferences.applyLightStatusBarColor();
|
||||
// Set the view layout resource to use.
|
||||
setContentView(R.layout.widget_config_activity);
|
||||
|
||||
setTitle(R.string.WCA_title);
|
||||
|
||||
// Find the widget id from the intent.
|
||||
Intent intent = getIntent();
|
||||
Bundle extras = intent.getExtras();
|
||||
if (extras != null) {
|
||||
mAppWidgetId = extras.getInt(
|
||||
AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
|
||||
}
|
||||
|
||||
// If they gave us an intent without the widget id, just bail.
|
||||
if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
|
||||
finish();
|
||||
}
|
||||
|
||||
// set up ui
|
||||
adapter = new FilterAdapter(filterProvider, filterCounter, this, getListView(), false);
|
||||
setListAdapter(adapter);
|
||||
|
||||
Button button = (Button) findViewById(R.id.ok);
|
||||
button.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
// Save configuration options
|
||||
CheckBox hideDueDate = (CheckBox) findViewById(R.id.hideDueDate);
|
||||
CheckBox darkTheme = (CheckBox) findViewById(R.id.darkTheme);
|
||||
CheckBox hideCheckboxes = (CheckBox) findViewById(R.id.hideCheckboxes);
|
||||
CheckBox hideHeader = (CheckBox) findViewById(R.id.hideHeader);
|
||||
CheckBox transparent = (CheckBox) findViewById(R.id.transparentBackground);
|
||||
saveConfiguration(adapter.getSelection(), !hideDueDate.isChecked(),
|
||||
darkTheme.isChecked(), hideCheckboxes.isChecked(), hideHeader.isChecked(),
|
||||
transparent.isChecked());
|
||||
|
||||
// force update after setting preferences
|
||||
sendBroadcast(new Intent(WidgetConfigActivity.this, TasksWidget.class) {{
|
||||
setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
|
||||
putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{mAppWidgetId});
|
||||
}});
|
||||
|
||||
// Make sure we pass back the original appWidgetId
|
||||
Intent resultValue = new Intent();
|
||||
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
|
||||
setResult(RESULT_OK, resultValue);
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onListItemClick(ListView l, View v, int position, long id) {
|
||||
super.onListItemClick(l, v, position, id);
|
||||
FilterListItem item = adapter.getItem(position);
|
||||
adapter.setSelection(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
adapter.registerRecevier();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
adapter.unregisterRecevier();
|
||||
}
|
||||
|
||||
private void saveConfiguration(FilterListItem filterListItem, boolean showDueDate,
|
||||
boolean darkTheme, boolean hideCheckboxes, boolean hideHeader,
|
||||
boolean transparent){
|
||||
DisplayMetrics metrics = new DisplayMetrics();
|
||||
getWindowManager().getDefaultDisplay().getMetrics(metrics);
|
||||
|
||||
if (filterListItem != null && filterListItem instanceof Filter) {
|
||||
Filter filter = (Filter) filterListItem;
|
||||
preferences.setString(WidgetConfigActivity.PREF_WIDGET_ID + mAppWidgetId, defaultFilterProvider.getFilterPreferenceValue(filter));
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + mAppWidgetId, showDueDate);
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_DARK_THEME + mAppWidgetId, darkTheme);
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + mAppWidgetId, hideCheckboxes);
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + mAppWidgetId, hideHeader);
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + mAppWidgetId, transparent);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inject(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package org.tasks.injection;
|
||||
|
||||
import android.app.ListActivity;
|
||||
import android.os.Bundle;
|
||||
|
||||
import org.tasks.analytics.Tracker;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public abstract class InjectingListActivity extends ListActivity implements InjectingActivity {
|
||||
|
||||
private ActivityComponent activityComponent;
|
||||
|
||||
@Inject Tracker tracker;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
activityComponent = ((InjectingApplication) getApplication())
|
||||
.getComponent()
|
||||
.plus(new ActivityModule(this));
|
||||
inject(activityComponent);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActivityComponent getComponent() {
|
||||
return activityComponent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
tracker.showScreen(getClass().getSimpleName());
|
||||
}
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
package org.tasks.widget;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
|
||||
import org.tasks.R;
|
||||
import org.tasks.activities.FilterSelectionActivity;
|
||||
import org.tasks.injection.ActivityComponent;
|
||||
import org.tasks.injection.InjectingAppCompatActivity;
|
||||
import org.tasks.intents.TaskIntents;
|
||||
import org.tasks.preferences.DefaultFilterProvider;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class ShortcutConfigActivity extends InjectingAppCompatActivity {
|
||||
|
||||
private static final int REQUEST_FILTER = 1019;
|
||||
|
||||
@Inject DefaultFilterProvider defaultFilterProvider;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
|
||||
startActivityForResult(new Intent(this, FilterSelectionActivity.class) {{
|
||||
putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
|
||||
}}, REQUEST_FILTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == REQUEST_FILTER) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
|
||||
String filterId = defaultFilterProvider.getFilterPreferenceValue(filter);
|
||||
Intent shortcutIntent = TaskIntents.getTaskListByIdIntent(this, filterId);
|
||||
Bitmap bitmap = ((BitmapDrawable) getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap();
|
||||
Intent intent = new Intent();
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, filter.listingTitle);
|
||||
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
|
||||
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
|
||||
setResult(RESULT_OK, intent);
|
||||
}
|
||||
|
||||
finish();
|
||||
} else {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inject(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package org.tasks.widget;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.app.FragmentManager;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import org.tasks.injection.ActivityComponent;
|
||||
import org.tasks.injection.InjectingAppCompatActivity;
|
||||
import org.tasks.preferences.ActivityPreferences;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
public class WidgetConfigActivity extends InjectingAppCompatActivity implements WidgetConfigDialog.WidgetConfigCallback {
|
||||
|
||||
private static final String FRAG_TAG_WIDGET_CONFIG = "frag_tag_widget_config";
|
||||
|
||||
public static final int DEFAULT_OPACITY = 100;
|
||||
|
||||
public static final String PREF_WIDGET_ID = "widget-id-";
|
||||
public static final String PREF_SHOW_DUE_DATE = "widget-show-due-date-";
|
||||
public static final String PREF_HIDE_CHECKBOXES = "widget-hide-checkboxes-";
|
||||
public static final String PREF_DARK_THEME = "widget-dark-theme-";
|
||||
public static final String PREF_HIDE_HEADER = "widget-hide-header-";
|
||||
public static final String PREF_WIDGET_OPACITY = "widget-opacity-";
|
||||
|
||||
private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
|
||||
|
||||
@Inject ActivityPreferences preferences;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
// Find the widget id from the intent.
|
||||
Intent intent = getIntent();
|
||||
Bundle extras = intent.getExtras();
|
||||
if (extras != null) {
|
||||
appWidgetId = extras.getInt(
|
||||
AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID);
|
||||
}
|
||||
|
||||
// If they gave us an intent without the widget id, just bail.
|
||||
if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
|
||||
finish();
|
||||
} else {
|
||||
preferences.applyDialogTheme();
|
||||
|
||||
FragmentManager fragmentManager = getFragmentManager();
|
||||
Fragment fragment = fragmentManager.findFragmentByTag(FRAG_TAG_WIDGET_CONFIG);
|
||||
if (fragment == null) {
|
||||
WidgetConfigDialog widgetConfigDialog = WidgetConfigDialog.newWidgetConfigDialog(appWidgetId);
|
||||
widgetConfigDialog.show(fragmentManager, FRAG_TAG_WIDGET_CONFIG);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inject(ActivityComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void ok() {
|
||||
Intent resultValue = new Intent();
|
||||
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
||||
setResult(RESULT_OK, resultValue);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void done() {
|
||||
finish();
|
||||
}
|
||||
}
|
@ -0,0 +1,174 @@
|
||||
package org.tasks.widget;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Dialog;
|
||||
import android.appwidget.AppWidgetManager;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.SeekBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.todoroo.astrid.api.Filter;
|
||||
|
||||
import org.tasks.R;
|
||||
import org.tasks.activities.FilterSelectionActivity;
|
||||
import org.tasks.dialogs.DialogBuilder;
|
||||
import org.tasks.injection.DialogFragmentComponent;
|
||||
import org.tasks.injection.ForApplication;
|
||||
import org.tasks.injection.InjectingDialogFragment;
|
||||
import org.tasks.preferences.DefaultFilterProvider;
|
||||
import org.tasks.preferences.Preferences;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
public class WidgetConfigDialog extends InjectingDialogFragment implements SeekBar.OnSeekBarChangeListener {
|
||||
|
||||
public static WidgetConfigDialog newWidgetConfigDialog(int appWidgetId) {
|
||||
WidgetConfigDialog dialog = new WidgetConfigDialog();
|
||||
dialog.setAppWidgetId(appWidgetId);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
public void setAppWidgetId(int appWidgetId) {
|
||||
this.appWidgetId = appWidgetId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
||||
opacity = progress;
|
||||
updateOpacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartTrackingTouch(SeekBar seekBar) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopTrackingTouch(SeekBar seekBar) {
|
||||
|
||||
}
|
||||
|
||||
public interface WidgetConfigCallback {
|
||||
void ok();
|
||||
|
||||
void done();
|
||||
}
|
||||
|
||||
private static final int REQUEST_FILTER = 1005;
|
||||
|
||||
@Bind(R.id.opacity_value) TextView opacityValue;
|
||||
@Bind(R.id.selected_filter) TextView selectedFilter;
|
||||
@Bind(R.id.hideDueDate) CheckBox hideDueDate;
|
||||
@Bind(R.id.darkTheme) CheckBox darkTheme;
|
||||
@Bind(R.id.hideCheckboxes) CheckBox hideCheckBoxes;
|
||||
@Bind(R.id.hideHeader) CheckBox hideHeader;
|
||||
@Bind(R.id.opacity_seekbar) SeekBar opacitySeekbar;
|
||||
|
||||
@Inject DialogBuilder dialogBuilder;
|
||||
@Inject DefaultFilterProvider defaultFilterProvider;
|
||||
@Inject Preferences preferences;
|
||||
@Inject @ForApplication Context context;
|
||||
|
||||
private int opacity = WidgetConfigActivity.DEFAULT_OPACITY;
|
||||
private Filter filter;
|
||||
private int appWidgetId;
|
||||
private WidgetConfigCallback callback;
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
|
||||
View view = getActivity().getLayoutInflater().inflate(R.layout.widget_config_activity, null);
|
||||
|
||||
ButterKnife.bind(this, view);
|
||||
|
||||
opacitySeekbar.setProgress(opacity);
|
||||
opacitySeekbar.setOnSeekBarChangeListener(this);
|
||||
|
||||
filter = defaultFilterProvider.getDefaultFilter();
|
||||
|
||||
updateFilter();
|
||||
updateOpacity();
|
||||
|
||||
return dialogBuilder.newDialog()
|
||||
.setView(view)
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
saveConfiguration();
|
||||
callback.ok();
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
super.onDismiss(dialog);
|
||||
|
||||
callback.done();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity) {
|
||||
super.onAttach(activity);
|
||||
|
||||
callback = (WidgetConfigCallback) getActivity();
|
||||
}
|
||||
|
||||
private void updateFilter() {
|
||||
selectedFilter.setText(filter.listingTitle);
|
||||
}
|
||||
|
||||
private void updateOpacity() {
|
||||
opacityValue.setText(Integer.toString(opacity));
|
||||
}
|
||||
|
||||
@OnClick(R.id.filter_selection)
|
||||
void changeFilter() {
|
||||
startActivityForResult(new Intent(getActivity(), FilterSelectionActivity.class) {{
|
||||
putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true);
|
||||
}}, REQUEST_FILTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void inject(DialogFragmentComponent component) {
|
||||
component.inject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
if (requestCode == REQUEST_FILTER) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER);
|
||||
updateFilter();
|
||||
}
|
||||
} else {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
}
|
||||
}
|
||||
|
||||
private void saveConfiguration(){
|
||||
preferences.setString(WidgetConfigActivity.PREF_WIDGET_ID + appWidgetId, defaultFilterProvider.getFilterPreferenceValue(filter));
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + appWidgetId, !hideDueDate.isChecked());
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_DARK_THEME + appWidgetId, darkTheme.isChecked());
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + appWidgetId, hideCheckBoxes.isChecked());
|
||||
preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + appWidgetId, hideHeader.isChecked());
|
||||
preferences.setInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + appWidgetId, opacity);
|
||||
|
||||
// force update after setting preferences
|
||||
context.sendBroadcast(new Intent(context, TasksWidget.class) {{
|
||||
setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
|
||||
putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[]{appWidgetId});
|
||||
}});
|
||||
}
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- See the file "LICENSE" for the full license governing this code.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/asContentBackground"
|
||||
android:orientation="vertical">
|
||||
|
||||
<!-- Title -->
|
||||
<TextView
|
||||
style="TextAppearance.ActionBar_ListsHeader"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:padding="10dp"
|
||||
android:text="@string/WCA_title"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<!-- List -->
|
||||
<ListView android:id="@android:id/list"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_weight="100"
|
||||
android:listSelector="?attr/selectableItemBackground"
|
||||
android:drawSelectorOnTop="true"
|
||||
android:divider="@android:color/transparent"
|
||||
android:cacheColorHint="@android:color/transparent"
|
||||
android:scrollingCache="false"
|
||||
android:scrollbars="vertical"/>
|
||||
|
||||
<!-- List -->
|
||||
<Button android:id="@+id/ok"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:text="@android:string/ok"/>
|
||||
|
||||
</LinearLayout>
|
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><!--
|
||||
** Copyright (c) 2012 Todoroo Inc
|
||||
**
|
||||
** See the file "LICENSE" for the full license governing this code.
|
||||
-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/widget_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="45dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/widget_header_background"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/widget_button"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@drawable/ic_add_24dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:paddingRight="10dp"
|
||||
android:tint="@android:color/white" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/widget_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_toLeftOf="@id/widget_button"
|
||||
android:layout_toStartOf="@id/widget_button"
|
||||
android:layout_centerVertical="true"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentLeft="true"
|
||||
android:gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:paddingLeft="10dp"
|
||||
android:paddingStart="10dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="18sp"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/widget_header_separator"
|
||||
android:layout_below="@id/widget_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1px"
|
||||
android:orientation="horizontal"
|
||||
android:background="@android:color/white" />
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_below="@id/widget_header_separator"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/widget_background"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"/>
|
||||
|
||||
<ListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="fill_parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:gravity="center" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</RelativeLayout>
|
@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
** Copyright (c) 2012 Todoroo Inc
|
||||
**
|
||||
** See the file "LICENSE" for the full license governing this code.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/widget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@android:color/transparent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/widget_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/widget_header_dark">
|
||||
|
||||
<include layout="@layout/widget_toolbar"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/widget_header_separator"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="1px"
|
||||
android:background="@android:color/white"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@color/widget_body_dark" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:background="@color/widget_body_dark"
|
||||
style="@style/TextAppearance.Widget" />
|
||||
|
||||
</LinearLayout>
|
@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
** Copyright (c) 2012 Todoroo Inc
|
||||
**
|
||||
** See the file "LICENSE" for the full license governing this code.
|
||||
-->
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/widget"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@android:color/transparent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/widget_header"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/primary">
|
||||
|
||||
<include layout="@layout/widget_toolbar"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ListView
|
||||
android:id="@+id/list_view"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
android:background="@color/widget_body_light"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/empty_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center"
|
||||
android:background="@color/widget_body_light"
|
||||
style="@style/TextAppearance.Widget" />
|
||||
|
||||
</LinearLayout>
|
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/widget_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="39dp"
|
||||
android:layout_gravity="left|center_vertical"
|
||||
android:paddingLeft="5dp"
|
||||
android:paddingRight="0dp"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:maxLines="2"
|
||||
android:layout_weight="1"
|
||||
android:gravity="left|center_vertical"
|
||||
android:ellipsize="end"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/widget_button"
|
||||
android:layout_width="33dp"
|
||||
android:layout_height="39dp"
|
||||
android:layout_gravity="right|center_vertical"
|
||||
android:background="@android:color/transparent"
|
||||
android:tint="@android:color/white"
|
||||
android:src="@drawable/ic_add_24dp"
|
||||
android:scaleType="fitCenter"/>
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in New Issue