Update widget configurations, add opacity slider

Closes #329
pull/384/head
Alex Baker 9 years ago
parent b62467ad74
commit 1c227e92a5

@ -22,6 +22,8 @@ import java.util.List;
import javax.inject.Inject;
import timber.log.Timber;
public class DashClockExtension extends InjectingDashClockExtension {
@Inject DefaultFilterProvider defaultFilterProvider;
@ -67,7 +69,7 @@ public class DashClockExtension extends InjectingDashClockExtension {
int count = taskDao.count(filter);
if (count == 0) {
publishUpdate(null);
publish(null);
} else {
ExtensionData extensionData = new ExtensionData()
.visible(true)
@ -84,10 +86,10 @@ public class DashClockExtension extends InjectingDashClockExtension {
extensionData.expandedTitle(tasks.get(0).getTitle());
}
}
publishUpdate(extensionData);
publish(extensionData);
}
} else {
publishUpdate(new ExtensionData()
publish(new ExtensionData()
.visible(true)
.icon(R.drawable.ic_check_white_24dp)
.status(getString(R.string.buy))
@ -95,4 +97,12 @@ public class DashClockExtension extends InjectingDashClockExtension {
.clickIntent(new Intent(this, DashClockSettings.class)));
}
}
private void publish(ExtensionData data) {
try {
publishUpdate(data);
} catch (Exception e) {
Timber.e(e, e.getMessage());
}
}
}

@ -152,8 +152,8 @@
<!-- Activity for selecting Android shortcut -->
<activity
android:name="com.todoroo.astrid.activity.FilterShortcutActivity"
android:theme="@style/Tasks"
android:name=".widget.ShortcutConfigActivity"
android:theme="@style/TasksDialog">
android:label="@string/FSA_label">
<intent-filter>
<action android:name="android.intent.action.CREATE_SHORTCUT" />
@ -197,8 +197,8 @@
<!-- Activity that configures widget -->
<activity
android:name="com.todoroo.astrid.widget.WidgetConfigActivity"
android:theme="@style/Tasks">
android:name=".widget.WidgetConfigActivity"
android:theme="@style/TasksDialog">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
</intent-filter>
@ -220,7 +220,7 @@
<!-- widgets -->
<receiver
android:name="com.todoroo.astrid.widget.TasksWidget"
android:name=".widget.TasksWidget"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

@ -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);
}
}

@ -3,7 +3,7 @@ package org.tasks.injection;
import com.todoroo.astrid.actfm.FilterSettingsActivity;
import com.todoroo.astrid.actfm.TagSettingsActivity;
import com.todoroo.astrid.activity.BeastModePreferences;
import com.todoroo.astrid.activity.FilterShortcutActivity;
import org.tasks.widget.ShortcutConfigActivity;
import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.core.CustomFilterActivity;
@ -13,7 +13,7 @@ import com.todoroo.astrid.files.AACRecordingActivity;
import com.todoroo.astrid.gcal.CalendarReminderActivity;
import com.todoroo.astrid.reminders.ReminderPreferences;
import com.todoroo.astrid.service.UpgradeActivity;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.widget.WidgetConfigActivity;
import org.tasks.activities.AddAttachmentActivity;
import org.tasks.activities.CalendarSelectionActivity;
@ -120,7 +120,7 @@ public interface BaseActivityComponent {
void inject(DefaultsPreferences defaultsPreferences);
void inject(FilterShortcutActivity filterShortcutActivity);
void inject(ShortcutConfigActivity shortcutConfigActivity);
void inject(BackupPreferences backupPreferences);

@ -6,7 +6,7 @@ import com.todoroo.astrid.gcal.CalendarAlarmReceiver;
import com.todoroo.astrid.gcal.GCalTaskCompleteListener;
import com.todoroo.astrid.repeats.RepeatTaskCompleteListener;
import com.todoroo.astrid.timers.TimerTaskCompleteListener;
import com.todoroo.astrid.widget.TasksWidget;
import org.tasks.widget.TasksWidget;
import org.tasks.receivers.BootCompletedReceiver;
import org.tasks.receivers.CompleteTaskReceiver;

@ -1,5 +1,7 @@
package org.tasks.injection;
import org.tasks.widget.WidgetConfigDialog;
import org.tasks.activities.CalendarSelectionDialog;
import org.tasks.dialogs.AccountSelectionDialog;
import org.tasks.dialogs.AddAttachmentDialog;
@ -22,4 +24,6 @@ public interface DialogFragmentComponent {
void inject(AccountSelectionDialog accountSelectionDialog);
void inject(SnoozeDialog snoozeDialog);
void inject(WidgetConfigDialog widgetConfigDialog);
}

@ -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());
}
}

@ -12,9 +12,8 @@ import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.core.SortHelper;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.data.TaskAttachment;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.widget.WidgetConfigActivity;
import org.tasks.BuildConfig;
import org.tasks.R;
import org.tasks.injection.ForApplication;
import org.tasks.time.DateTime;

@ -19,8 +19,6 @@ import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import com.todoroo.astrid.subtasks.SubtasksHelper;
import com.todoroo.astrid.widget.TasksWidget;
import com.todoroo.astrid.widget.WidgetConfigActivity;
import org.tasks.BuildConfig;
import org.tasks.R;
@ -202,7 +200,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
}
Filter filter = defaultFilterProvider.getFilterFromPreference(filterId);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews rv = new RemoteViews(context.getPackageName(), dark ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light);
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.scrollable_widget);
rv.setTextViewText(R.id.widget_title, filter.listingTitle);
appWidgetManager.partiallyUpdateAppWidget(widgetId, rv);
String query = SortHelper.adjustQueryForFlagsAndSort(preferences, filter.getSqlQuery(), sort).replaceAll("LIMIT \\d+", "");

@ -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);
}
}

@ -1,15 +1,12 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.widget;
package org.tasks.widget;
import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.net.Uri;
import android.view.View;
import android.widget.RemoteViews;
@ -23,7 +20,6 @@ import org.tasks.injection.InjectingAppWidgetProvider;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.widget.ScrollableWidgetUpdateService;
import javax.inject.Inject;
@ -98,15 +94,23 @@ public class TasksWidget extends InjectingAppWidgetProvider {
rvIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
rvIntent.setData(Uri.parse(rvIntent.toUri(Intent.URI_INTENT_SCHEME)));
boolean darkTheme = preferences.useDarkWidgetTheme(id);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), darkTheme ? R.layout.scrollable_widget_dark : R.layout.scrollable_widget_light);
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.scrollable_widget);
if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + id, false)) {
remoteViews.setViewVisibility(R.id.widget_header, View.GONE);
}
if (preferences.getBoolean(WidgetConfigActivity.PREF_WIDGET_TRANSPARENT + id, false)) {
remoteViews.setInt(R.id.widget_header, "setBackgroundColor", android.R.color.transparent);
remoteViews.setInt(R.id.list_view, "setBackgroundColor", android.R.color.transparent);
remoteViews.setInt(R.id.empty_view, "setBackgroundColor", android.R.color.transparent);
int opacity = preferences.getInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + id, WidgetConfigActivity.DEFAULT_OPACITY);
remoteViews.setImageViewBitmap(R.id.widget_background,
getSolidBackground(context.getResources().getColor(darkTheme ? R.color.widget_body_dark : R.color.widget_body_light)));
remoteViews.setImageViewBitmap(R.id.widget_header_background,
getSolidBackground(context.getResources().getColor(darkTheme ? R.color.widget_header_dark : R.color.primary)));
if (opacity < 100) {
remoteViews.setInt(R.id.widget_background, "setAlpha", opacity);
remoteViews.setInt(R.id.widget_header_background, "setAlpha", opacity);
}
if (!darkTheme) {
remoteViews.setInt(R.id.widget_header_separator, "setVisibility", View.GONE);
}
Filter filter = defaultFilterProvider.getFilterFromPreference(filterId);
remoteViews.setTextViewText(R.id.widget_title, filter.listingTitle);
remoteViews.setRemoteAdapter(R.id.list_view, rvIntent);
@ -117,6 +121,12 @@ public class TasksWidget extends InjectingAppWidgetProvider {
return remoteViews;
}
private static Bitmap getSolidBackground(int bgColor) {
Bitmap bitmap = Bitmap.createBitmap(2, 2, Bitmap.Config.ARGB_8888); // Create a Bitmap
new Canvas(bitmap).drawColor(bgColor); //Set the color
return bitmap;
}
private PendingIntent getPendingIntentTemplate(Context context) {
Intent intent = new Intent(context, TasksWidget.class);
return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

@ -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>

@ -4,87 +4,88 @@
<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">
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:checked="false"
android:id="@+id/hideDueDate"
android:text="@string/widget_hide_due_date"
android:textSize="18sp"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
<RelativeLayout
android:id="@+id/filter_selection"
style="@style/WidgetConfigRow">
<TextView
android:id="@+id/selected_filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:textColor="?attr/asTextColor"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@id/selected_filter"
android:layout_toStartOf="@id/selected_filter"
android:text="@string/filter"
android:textColor="?attr/asTextColor"
android:textSize="18sp" />
</RelativeLayout>
<RelativeLayout
style="@style/WidgetConfigRow">
<TextView
android:id="@+id/opacity_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:textColor="?attr/asTextColor"
android:textSize="18sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@id/opacity_value"
android:layout_toStartOf="@id/opacity_value"
android:text="@string/opacity"
android:textColor="?attr/asTextColor"
android:textSize="18sp" />
</RelativeLayout>
<SeekBar
android:id="@+id/opacity_seekbar"
style="@style/WidgetConfigRow"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/darkTheme"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:id="@+id/hideCheckboxes"
android:text="@string/widget_hide_checkboxes"
android:textSize="18sp"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
android:text="@string/EPr_use_dark_theme" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/hideDueDate"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:id="@+id/hideHeader"
android:text="@string/widget_hide_header"
android:textSize="18sp"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
android:text="@string/widget_hide_due_date" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/hideCheckboxes"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:id="@+id/transparentBackground"
android:text="@string/widget_transparent_background"
android:textSize="18sp"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
android:text="@string/widget_hide_checkboxes" />
<CheckBox
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/hideHeader"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:id="@+id/darkTheme"
android:text="@string/EPr_use_dark_theme"
android:textSize="18sp"
android:paddingTop="10dp"
android:paddingBottom="10dp" />
<!-- 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"
style="@style/ListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="100"
android:listSelector="?attr/selectableItemBackground"
android:drawSelectorOnTop="true"
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"/>
android:text="@string/widget_hide_header" />
</LinearLayout>

@ -11,17 +11,6 @@
android:orientation="vertical"
android:background="@android:color/transparent">
<LinearLayout
android:id="@+id/widget_header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/primary">
<include layout="@layout/widget_toolbar"/>
</LinearLayout>
<LinearLayout android:id="@+id/taskbody"
android:layout_width="fill_parent"
android:layout_height="120dip"

@ -34,7 +34,6 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent"
android:singleLine="true" />
<TextView

@ -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>

@ -28,7 +28,6 @@
<string name="SSD_sort_auto">الترتيب الذكي</string>
<string name="SSD_sort_alpha">بالعنوان</string>
<string name="SSD_sort_modified">بواسطة التعديل الأخير</string>
<string name="FLA_no_filter_selected">لم يتم اختيار فلتر! ارجو اختيار فلتر او قائمة</string>
<string name="TEA_title_hint">اسم المهمة</string>
<string name="TEA_hideUntil_label">إخفاء حتى...</string>
<string name="TEA_note_label">وصف</string>
@ -66,7 +65,6 @@
<string name="EPr_manage_delete_all_gcal">حذف جميع نشاطات التقويم للمهام</string>
<string name="EPr_manage_delete_all_gcal_message">هل فعلا تريد حذف جميع الأحداث للمهام ؟</string>
<string name="TWi_loading">تحميل...</string>
<string name="WCA_title">اختر المهمه للعرض...</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -53,7 +53,6 @@
<string name="SSD_sort_modified">По последна промяна</string>
<string name="FLA_search_filter">Съвпада с \'%s\'</string>
<string name="FLA_new_filter">Създаване на нов филтър</string>
<string name="FLA_no_filter_selected">Няма избран филтър! Моля изберете филтър или списък.</string>
<string name="TEA_title_hint">Име на задачата</string>
<string name="TEA_importance_label">Приоритет</string>
<string name="TEA_no_date">Без дата</string>
@ -127,7 +126,6 @@
<string name="EPr_manage_delete_all_gcal_message">Наистина ли искате да изтриете всичките си събития за задачи?</string>
<string name="EPr_manage_delete_all_gcal_status">Изтрити %d събития от календара!</string>
<string name="TWi_loading">Зареждане...</string>
<string name="WCA_title">Изберете задачи за показване...</string>
<string name="DB_corrupted_body">Ами сега! Изглежда, че базата от данни е развалена.
Ако виждате тази грешка редовно, ние ви предлагаме да изчистите всички
данни (Настройки-&gt;Синхронизиране и резервни копия-&gt;Управление на стари задачи-&gt;Изчисти всички данни)
@ -294,7 +292,6 @@
<string name="widget_hide_due_date">Скриване на крайни срокове</string>
<string name="widget_hide_checkboxes">Скриване на отметки</string>
<string name="widget_hide_header">Скриване на хедър</string>
<string name="widget_transparent_background">Прозрачен фон</string>
<string name="notifications">Уведомления</string>
<string name="silent">Безшумен</string>
<string name="sound">Звук</string>

@ -41,7 +41,6 @@
<string name="SSD_sort_modified">Per darrera modificació</string>
<string name="FLA_search_filter">Coincidència \'%s\'</string>
<string name="FLA_new_filter">Filtre nou</string>
<string name="FLA_no_filter_selected">No heu seleccionat cap filtre. Seleccioneu un filtre o una llista.</string>
<string name="TEA_title_hint">Resum de la tasca</string>
<string name="TEA_importance_label">Importància</string>
<string name="TEA_no_date">Sense venciment</string>
@ -73,7 +72,6 @@
<string name="EPr_manage_delete_completed_status">S\'han suprimit %d tasques</string>
<string name="EPr_manage_delete_completed_gcal_message">Segur que voleu suprimir els esdeveniments de calendari de les tasques completades?</string>
<string name="TWi_loading">S\'està carregant…</string>
<string name="WCA_title">Seleccionar les tasques a veure ...</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -43,7 +43,6 @@
<string name="SSD_sort_modified">Podle naposled upraveného</string>
<string name="FLA_search_filter">Hledanému \'%s\' odpovídá:</string>
<string name="FLA_new_filter">Nový Filtr</string>
<string name="FLA_no_filter_selected">Není vybrán žádný filtr! Vyberte prosím filtr nebo seznam.</string>
<string name="TEA_title_hint">Souhrn úkolu</string>
<string name="TEA_importance_label">Důležitost</string>
<string name="TEA_no_date">Bez termínu</string>
@ -105,7 +104,6 @@
<string name="EPr_manage_delete_all_gcal_message">Opravdu chcete odstranit všechny události z úkolů?</string>
<string name="EPr_manage_delete_all_gcal_status">Smazány %d upomínky v kalendáři</string>
<string name="TWi_loading">Nahrávám...</string>
<string name="WCA_title">Označte úkol pro zobrazení...</string>
<string name="DB_corrupted_body">OJ! Může být poškozená databáze. Zobrazuje-li se tato chyba znovu, vymaž všechny údaje v (Nastavení-&gt;Synchronizace a zálohy-&gt;Správa starých úkolů-&gt;Vymazat vše) a obnov své úkoly ze zálohy (Nastavení-&gt;Synchronizace a zálohy-&gt;Zálohy-&gt;Import úkolů) v úkolech.</string>
<string name="EPr_default_urgency_title">Výchozí termín dokončení</string>
<string name="EPr_default_importance_title">Výchozí důležitost</string>

@ -38,7 +38,6 @@
<string name="SSD_sort_modified">Efter senest ændret</string>
<string name="FLA_search_filter">Matcher \'%s\'</string>
<string name="FLA_new_filter">Nyt filter</string>
<string name="FLA_no_filter_selected">Der er ikke valgt et filter! Vælg venligst et filter eller en liste.</string>
<string name="TEA_title_hint">Opgave Overskrift</string>
<string name="TEA_importance_label">Vigtighed</string>
<string name="TEA_hideUntil_label">Skjul indtil</string>
@ -56,7 +55,6 @@
<string name="CRA_ignore_this">Ignorér kun denne begivenhed</string>
<string name="EPr_appearance_header">Udseende</string>
<string name="TWi_loading">Indlæser...</string>
<string name="WCA_title">Vælg opgaver der skal vises...</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -48,7 +48,6 @@
<string name="SSD_sort_modified">Nach letzter Änderung</string>
<string name="FLA_search_filter">Übereinstimmung mit %s</string>
<string name="FLA_new_filter">Neuer Filter</string>
<string name="FLA_no_filter_selected">Kein Filter ausgewählt! Bitte Filter oder Liste auswählen.</string>
<string name="TEA_title_hint">Aufgabenname</string>
<string name="TEA_importance_label">Priorität</string>
<string name="TEA_no_date">Kein Datum</string>
@ -122,7 +121,6 @@
<string name="EPr_manage_delete_all_gcal_message">Möchtest du wirklich alle Kalendereintrage von Aufgaben löschen?</string>
<string name="EPr_manage_delete_all_gcal_status">%d Kalendereinträge gelöscht!</string>
<string name="TWi_loading">Ladevorgang …</string>
<string name="WCA_title">Aufgaben zum Anzeigen wählen …</string>
<string name="DB_corrupted_body">Oh-oh! Sieht aus aIs könnte deine Datenbank beschädigt sein. Falls Du diesen Fehler regelmäßig siehst, empfehlen wir, alle Daten zu löschen (Einstellungen-&gt;Synchronisation-&gt;Alte Aufgaben verwalten-&gt;Alle Daten löschen) und deine Aufgaben aus einem Backup in Tasks wiederherzustellen (Einstellungen-&gt;Synchronisation-&gt;Backups-&gt;-Backups verwalten&gt;Aufgaben importieren).</string>
<string name="task_defaults">Aufgabenstandards</string>
<string name="EPr_default_urgency_title">Standard Dringlichkeit</string>
@ -281,7 +279,6 @@
<string name="widget_hide_due_date">Fälligkeitsdatum ausblenden</string>
<string name="widget_hide_checkboxes">Kontrollkästchen ausblenden</string>
<string name="widget_hide_header">Kopfzeile ausblenden</string>
<string name="widget_transparent_background">Transparenter Hintergrund</string>
<string name="notifications">Benachrichtigungen</string>
<string name="silent">Ton Aus</string>
<string name="sound">Ton</string>

@ -42,7 +42,6 @@
<string name="SSD_sort_modified">Με βάση τελευταία τροποποίηση</string>
<string name="FLA_search_filter">Ταιριάζουν \'%s\'</string>
<string name="FLA_new_filter">Νέο φίλτρο</string>
<string name="FLA_no_filter_selected">Δεν επιλέχθηκε φίλτρο! Παρακαλώ επιλέξτε ενα φίλτρο η μια λίστα</string>
<string name="TEA_title_hint">Όνομα καθήκοντος</string>
<string name="TEA_importance_label">Προτεραιότητα</string>
<string name="TEA_no_date">Χωρίς ημερομηνία</string>
@ -105,7 +104,6 @@
<string name="EPr_manage_delete_all_gcal_message">Θέλετε στα αλήθεια την διαγραφή όλων των γεγονότων για τις εργασίες σας;</string>
<string name="EPr_manage_delete_all_gcal_status">Διαγράφτηκαν %d γεγονότα ημερολογίου!</string>
<string name="TWi_loading">Φόρτωση...</string>
<string name="WCA_title">Επιλογή εργασιών για προβολή...</string>
<string name="DB_corrupted_body">Ωχ! Μοιάζει να έχετε μια κατεστραμμένη βάση δεδομένων.
Εάν βλέπετε αυτό το σφάλμα τακτικά, σας προτείνουμε καθαρισμό όλων των
δεδομένων (Ρυθμίσεις-&gt; Sync και Backup-&gt; Διαχείριση παλιά tasks-&gt; Διαγραφή όλων των δεδομένων) και να αποκαταστήσει

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">Por última modificación</string>
<string name="FLA_search_filter">Coincidencias con \'%s\'</string>
<string name="FLA_new_filter">Crear nuevo filtro</string>
<string name="FLA_no_filter_selected">No hay filtro seleccionado! Por favor seleccione un filtro o lista.</string>
<string name="TEA_title_hint">Nombre de la tarea</string>
<string name="TEA_importance_label">Prioridad</string>
<string name="TEA_no_date">Sin fecha</string>
@ -123,7 +122,6 @@
<string name="EPr_manage_delete_all_gcal_message">¿Seguro que quieres borrar todos tus eventos para las tareas?</string>
<string name="EPr_manage_delete_all_gcal_status">¡Borrados %d eventos del calendario!</string>
<string name="TWi_loading">Cargando…</string>
<string name="WCA_title">Seleccione las tareas que ver...</string>
<string name="DB_corrupted_body">\"¡Oh-oh! Es posible que tu base de datos esté corrupta. Si ves éste error con frecuencia, te sugerimos que limpies toda la información (Configuración-&gt;Sincronización y respaldos-&gt;Administrar tareas pasadas-&gt;Limpiar toda la información) y recuperar tus tareas de un respaldo (Configuración-&gt;Sincronización y respaldos-&gt;Respaldos-&gt;Importar tareas) en Tasks.\"</string>
<string name="task_defaults">Configuración por defecto de tareas</string>
<string name="EPr_default_urgency_title">Fecha límite predeterminada</string>
@ -287,7 +285,6 @@
<string name="widget_hide_due_date">Ocultar fechas de vencimiento</string>
<string name="widget_hide_checkboxes">Ocultar casillas de verificación</string>
<string name="widget_hide_header">Ocultar encabezado</string>
<string name="widget_transparent_background">Fondo transparente</string>
<string name="notifications">Notificaciones</string>
<string name="silent">Silencioso</string>
<string name="sound">Sonido</string>

@ -35,7 +35,6 @@
<string name="SSD_sort_importance">براساس اولیت</string>
<string name="SSD_sort_modified">براساس آخرین تغییرات</string>
<string name="FLA_new_filter">ایجاد فیلتر جدید</string>
<string name="FLA_no_filter_selected">فیلتری انتخاب نشده! لطفا یک فیلتر یا یک لیست انتخاب کنید</string>
<string name="TEA_title_hint">نام وظیفه</string>
<string name="TEA_importance_label">اولویت</string>
<string name="TEA_no_date">بدون تاریخ</string>
@ -82,7 +81,6 @@
<string name="EPr_manage_header">مدیریت وظایف قدیمی</string>
<string name="EPr_delete_task_data">حذف داده وظیفه</string>
<string name="TWi_loading">در حال بارگیری...</string>
<string name="WCA_title">انتخاب وظیفه جهت نمایش</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore
@ -214,7 +212,6 @@
<string name="sync_SPr_forget">خروج از حساب کاربری</string>
<string name="widget_hide_due_date">مخفی کردن موعودها</string>
<string name="widget_hide_header">مخفی کردن سربرگ</string>
<string name="widget_transparent_background">پیش زمینه شفاف</string>
<string name="notifications">اعلان ها</string>
<string name="silent">سکوت</string>
<string name="sound">صدا</string>

@ -13,7 +13,6 @@
<string name="SSD_sort_modified">Viimeisen muutoksen mukaan</string>
<string name="FLA_search_filter">Sopivuus \'%s\'</string>
<string name="FLA_new_filter">Uusi suodin</string>
<string name="FLA_no_filter_selected">Suodatinta ei valittu! Valitse suodatin tai lista.</string>
<string name="TEA_title_hint">Tehtävän nimi</string>
<string name="TEA_importance_label">Etusija</string>
<string name="TEA_hideUntil_label">Piilota kunnes</string>

@ -47,7 +47,6 @@
<string name="SSD_sort_modified">Dernier modifié</string>
<string name="FLA_search_filter">Correspondant \'%s\'</string>
<string name="FLA_new_filter">Nouveau filtre</string>
<string name="FLA_no_filter_selected">Aucun filtre sélectionné ! Veuillez sélectionner un filtre ou une liste.</string>
<string name="TEA_title_hint">Nom de la tâche</string>
<string name="TEA_importance_label">Priorité</string>
<string name="TEA_no_date">Sans date</string>
@ -119,7 +118,6 @@
<string name="EPr_manage_delete_all_gcal_message">Voulez-vous vraiment supprimer tous les événement du calendrier pour Tasks?</string>
<string name="EPr_manage_delete_all_gcal_status">%d événements du calendrier ont été supprimés!</string>
<string name="TWi_loading">Chargement…</string>
<string name="WCA_title">Sélectionnez les tâches à afficher…</string>
<string name="DB_corrupted_body">Oh oh ! On dirait que vous avez une base de données corrompues. Si vous voyez souvent cette erreur, nous vous suggérons d\'effacer toutes vos données (Paramètres-&gt;Synchronisation et sauvegarde-&gt;Gérer les anciennes tâches-&gt;Effacer toutes les données) et restaurer vos tâches d\'une sauvegarde (Paramètres-&gt;Synchronisation et sauvegarde-&gt;Sauvegarde-&gt;Importer des tâches) dans Tasks</string>
<string name="task_defaults">Valeurs par défaut</string>
<string name="EPr_default_urgency_title">Échéance par défaut</string>
@ -276,7 +274,6 @@
<string name="widget_hide_due_date">Cacher les échéances</string>
<string name="widget_hide_checkboxes">Cacher les cases à cocher</string>
<string name="widget_hide_header">Cacher l\'en-tête</string>
<string name="widget_transparent_background">Fond transparent</string>
<string name="silent">Silencieux</string>
<string name="sound">Son</string>
<string name="quiet_hours">Heures de repos</string>

@ -22,7 +22,6 @@
<string name="SSD_sort_importance">Prioritás alapján</string>
<string name="SSD_sort_modified">Utolsó módosítás alapján</string>
<string name="FLA_new_filter">Új szűrő</string>
<string name="FLA_no_filter_selected">Nincs szűrő kiválasztva! Kérlek, válassz ki egy szűrőt vagy egy listát.</string>
<string name="TEA_title_hint">Feladat neve</string>
<string name="TEA_importance_label">Prioritás</string>
<string name="TEA_hideUntil_label">Elrejtés eddig</string>

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">Per Ultima Modifica</string>
<string name="FLA_search_filter">Uguale a \'%s\'</string>
<string name="FLA_new_filter">Crea nuovo filtro</string>
<string name="FLA_no_filter_selected">Filtro non selezionato! Perfavore seleziona un filtro o una lista.</string>
<string name="TEA_title_hint">Memo attività</string>
<string name="TEA_importance_label">Priorità</string>
<string name="TEA_no_date">Senza data</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">Vuoi davvero eliminare tutti i tuoi eventi in programmi?</string>
<string name="EPr_manage_delete_all_gcal_status">Eliminato il %d degli eventi del calendario!</string>
<string name="TWi_loading">Caricamento...</string>
<string name="WCA_title">Seleziona le attività da visualizzare...</string>
<string name="DB_corrupted_body">Oh, oh! Pare che tu abbia un database danneggiato.
Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dati (Impostazioni-&gt;Sincronizzazione e backup-&gt;Gestire tutti i dati-&gt;Cancellare tutti i dati) e ripristinare i tuoi task da un backup in Tasks (Impostazioni-&gt;Sincronizzazione e backup-&gt;Backup-&gt;Importa task).</string>
<string name="task_defaults">Imp. predefinite attività</string>
@ -289,7 +287,6 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
<string name="widget_hide_due_date">Nascondi scadenze</string>
<string name="widget_hide_checkboxes">Nascondi caselle di spunta</string>
<string name="widget_hide_header">Nascondi intestazione</string>
<string name="widget_transparent_background">Sfondo trasparente</string>
<string name="notifications">Notifiche</string>
<string name="silent">Silente</string>
<string name="sound">Sonoro</string>

@ -44,7 +44,6 @@
<string name="SSD_sort_modified">ע״פ מועד עדכון אחרון</string>
<string name="FLA_search_filter">התאים ל\'%s\'</string>
<string name="FLA_new_filter">יצירת פילטר חדש</string>
<string name="FLA_no_filter_selected">לא נבחר מַסְנֵן! אנא בחר מַסְנֵן או רשימה.</string>
<string name="TEA_title_hint">שם המשימה</string>
<string name="TEA_importance_label">עדיפות</string>
<string name="TEA_no_date">ללא תאריך</string>
@ -113,7 +112,6 @@
<string name="EPr_manage_delete_all_gcal_message">האם אתה בטוח שברצונך למחוק את כל אירועי היומן בעבור המשימות?</string>
<string name="EPr_manage_delete_all_gcal_status">%d אירועי יומן נמחקו</string>
<string name="TWi_loading">טוענת...</string>
<string name="WCA_title">בחר משימות להצגה...</string>
<string name="DB_corrupted_body">הו לא! נראה כי בסיס הנתונים אינו תקין.
אם אתה נתקל השגיאה זאת האופן תדיר, אנו מציעים שתמחק את כל הנתונים
(הגדרות-&gt;סינכרון וגיבוי-&gt;ניהול משימות ישנות-&gt;הסרת כל הנתונים) ושחזר את המשימות

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">更新日時順</string>
<string name="FLA_search_filter">「%s」の検索結果</string>
<string name="FLA_new_filter">新しいフィルターを作成</string>
<string name="FLA_no_filter_selected">フィルターが選択されていません! フィルターかリストを選択してください.</string>
<string name="TEA_title_hint">タスク名</string>
<string name="TEA_importance_label">優先順位</string>
<string name="TEA_no_date">日付なし</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">タスクのイベントをすべて削除してもよろしいですか?</string>
<string name="EPr_manage_delete_all_gcal_status">%d カレンダーイベントが削除されました!</string>
<string name="TWi_loading">読み込んでいます・・・</string>
<string name="WCA_title">ウィジェットに表示する項目</string>
<string name="DB_corrupted_body">データベースが正しくないようです.
このエラーが何度も表示される場合, データのクリア
(設定-&gt;同期およびバックアップ-&gt;古いタスクの管理-&gt;全てのデータをクリア) し,
@ -292,7 +290,6 @@
<string name="widget_hide_due_date">期限を表示しない</string>
<string name="widget_hide_checkboxes">チェックボックスを表示しない</string>
<string name="widget_hide_header">ヘッダーを表示しない</string>
<string name="widget_transparent_background">透明の背景</string>
<string name="notifications">通知</string>
<string name="silent">サイレント</string>
<string name="sound">サウンド</string>

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">최종 수정일 순서</string>
<string name="FLA_search_filter">\'%s\' 검색 중</string>
<string name="FLA_new_filter">새 필터</string>
<string name="FLA_no_filter_selected">필터를 선택하지 않았습니다! 필터나 목록을 선택하세요.</string>
<string name="TEA_title_hint">일정 이름</string>
<string name="TEA_importance_label">우선순위</string>
<string name="TEA_no_date">기한 없음</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">일정의 모든 이벤트를 정말 삭제할까요?</string>
<string name="EPr_manage_delete_all_gcal_status">%d 달력 이벤트를 삭제했습니다!</string>
<string name="TWi_loading">로드 중…</string>
<string name="WCA_title">열람할 일정 선택...</string>
<string name="DB_corrupted_body">데이터베이스가 손상된 것 같습니다. 이 에러 메시지가 주기적으로 나타나면,
자료를 모두 지우고 (설정-&gt;동기화 &amp; 백업-&gt;오래된 일정 관리-&gt;모든 자료 삭제)
Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
@ -285,7 +283,6 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
<string name="widget_hide_due_date">완료 예정일 숨기기</string>
<string name="widget_hide_checkboxes">체크박스 숨기기</string>
<string name="widget_hide_header">헤더 숨기기</string>
<string name="widget_transparent_background">투명한 배경</string>
<string name="notifications">알림</string>
<string name="silent">무음</string>
<string name="sound">소리</string>

@ -51,7 +51,6 @@
<string name="MCA_ignore">Ignorer</string>
<string name="EPr_appearance_header">Utseende</string>
<string name="TWi_loading">Laster ...</string>
<string name="WCA_title">Velg oppgaver å se på</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">Op datum gewijzigd</string>
<string name="FLA_search_filter">Bevat \'%s\'</string>
<string name="FLA_new_filter">Nieuw filter aanmaken</string>
<string name="FLA_no_filter_selected">Geen filter geselecteerd! Selecteer een filter of lijst.</string>
<string name="TEA_title_hint">Taak naam</string>
<string name="TEA_importance_label">Prioriteit</string>
<string name="TEA_no_date">Geen datum</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">Weet je zeker dat je alle gebeurtenissen voor taken wil verwijderen?</string>
<string name="EPr_manage_delete_all_gcal_status">%d agenda-items verwijderd!</string>
<string name="TWi_loading">Laden…</string>
<string name="WCA_title">Selecteer weer te geven taken...</string>
<string name="DB_corrupted_body">Oh oh! Het lijkt erop dat je een corrupte database hebt. Als je deze error vaker ziet raden we je aan alle data te verwijderen (Instellingen-&gt;Beheer Alle Taken-&gt;Wis alle data) en je taken uit een backup te herstellen (Instellingen-&gt;Backup-&gt;Importeer Taken) in Tasks.</string>
<string name="task_defaults">Basisinstellingen nieuwe taak</string>
<string name="EPr_default_urgency_title">Standaard prioriteit</string>
@ -288,7 +286,6 @@
<string name="widget_hide_due_date">Verberg deadlines</string>
<string name="widget_hide_checkboxes">Verberg vinkboxjes</string>
<string name="widget_hide_header">Verberg header</string>
<string name="widget_transparent_background">Transparante achtergrond</string>
<string name="notifications">Notificaties</string>
<string name="silent">Stil</string>
<string name="sound">Geluid</string>

@ -43,7 +43,6 @@
<string name="SSD_sort_modified">Wg. ostatniej modyfikacji</string>
<string name="FLA_search_filter">Pasujących do: %s</string>
<string name="FLA_new_filter">Nowy filtr</string>
<string name="FLA_no_filter_selected">Nie wybraon filtra! Wybierz filtr lub listę.</string>
<string name="TEA_title_hint">Tytuł zadania</string>
<string name="TEA_importance_label">Priorytet</string>
<string name="TEA_no_date">Brak daty</string>
@ -104,7 +103,6 @@
<string name="EPr_manage_delete_all_gcal_message">Na pewno chcesz usunąć wszystkie wydarzenia dla zadań?</string>
<string name="EPr_manage_delete_all_gcal_status">Usunięto %d wydarzeń kalendarza!</string>
<string name="TWi_loading">Ładowanie...</string>
<string name="WCA_title">Wybierz zadania do wyświetlenia</string>
<string name="DB_corrupted_body">O jej! Wygląda na to, że możeć mieć uszkodzoną bazę danych.
Jeśli widzisz ten błąd często, sugerujemy wyczyszczenie
wszystkich danych (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data)

@ -42,7 +42,6 @@
<string name="SSD_sort_modified">Por data de modificação</string>
<string name="FLA_search_filter">Encontradas para \'%s\'</string>
<string name="FLA_new_filter">Novo Filtro</string>
<string name="FLA_no_filter_selected">Sem filtro selecionado! Selecione um filtro ou lista.</string>
<string name="TEA_title_hint">Nome da tarefa</string>
<string name="TEA_importance_label">Prioridade</string>
<string name="TEA_no_date">Sem data</string>
@ -104,7 +103,6 @@
<string name="EPr_manage_delete_all_gcal_message">Você quer mesmo apagar todos os eventos de calendário das tarefas?</string>
<string name="EPr_manage_delete_all_gcal_status">%d eventos de agenda apagados!</string>
<string name="TWi_loading">Carregando...</string>
<string name="WCA_title">Selecionar tarefas para visualização...</string>
<string name="DB_corrupted_body">Uh oh! Parece que você possui banco de dados corrompido. Se você vê esse erro regularmente, nós sugerimos que você limpe todos os dados (Configurações-&gt; Sincronização e backup-&gt; Manutenção de tarefas antigas-&gt; Limpar todos os dados) e restaurar suas tarefas através do backup no Tasks (Configurações-&gt; Sincronização e backup-&gt; Backup-&gt; Importar tarefas).</string>
<string name="EPr_default_urgency_title">Urgência</string>
<string name="EPr_default_importance_title">Prioridade padrão</string>

@ -48,7 +48,6 @@
<string name="SSD_sort_modified">Por Última Modificação</string>
<string name="FLA_search_filter">Coincidente com %s</string>
<string name="FLA_new_filter">Novo filtro</string>
<string name="FLA_no_filter_selected">Não selecionou o filtro! Selecione um filtro ou uma lista.</string>
<string name="TEA_title_hint">Nome da tarefa</string>
<string name="TEA_importance_label">Prioridade</string>
<string name="TEA_no_date">Sem data</string>
@ -116,7 +115,6 @@
<string name="EPr_manage_delete_all_gcal_message">Quer mesmo eliminar todos os eventos das tarefas?</string>
<string name="EPr_manage_delete_all_gcal_status">Eliminados %d eventos de calendário!</string>
<string name="TWi_loading">Carregando...</string>
<string name="WCA_title">Escolha as tarefas a ver...</string>
<string name="DB_corrupted_body">Parece que a sua base de dados está danificada.
Se este erro ocorrer repetidamente sugerimos a eliminação dos dados em
Definições-&gt;Sincronização e backup-&gt;Gerir tarefas antigas-&gt;Limpar todos os dados e o restauro
@ -276,7 +274,6 @@ das tarefas através de um backup em Definições-&gt;Sincronização e backup-&
<string name="widget_hide_due_date">Ocultar data limite</string>
<string name="widget_hide_checkboxes">Ocultar caixa de seleção</string>
<string name="widget_hide_header">Ocultar cabeçalho</string>
<string name="widget_transparent_background">Fundo transparente</string>
<string name="notifications">Notificações</string>
<string name="silent">Silêncio</string>
<string name="sound">Som</string>

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">Последние изменённые</string>
<string name="FLA_search_filter">Соответствует \'%s\'</string>
<string name="FLA_new_filter">Создать новый фильтр</string>
<string name="FLA_no_filter_selected">Фильтры не выбраны! Пожалуйста, выберите фильтр или список</string>
<string name="TEA_title_hint">Имя задачи</string>
<string name="TEA_importance_label">Приоритет</string>
<string name="TEA_no_date">Без даты</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">Вы уверены, что хотите удалить все ваши события для задач?</string>
<string name="EPr_manage_delete_all_gcal_status">Удалено %d календарных событий!</string>
<string name="TWi_loading">Загрузка...</string>
<string name="WCA_title">Выберите задачи для просмотра…</string>
<string name="DB_corrupted_body">Упс! Похоже, ваша база данных повреждена.
Если вы получаете эту ошибку регулярно, рекомендуется стереть
все данные (Параметры-&gt;Синхронизация-&gt;Управление старыми задачами-&gt;Очистить все данные) и восстановить
@ -291,7 +289,6 @@
<string name="widget_hide_due_date">Спрятать даты</string>
<string name="widget_hide_checkboxes">Спрятать чекбоксы</string>
<string name="widget_hide_header">Спрятать заголовок</string>
<string name="widget_transparent_background">Прозрачный фон</string>
<string name="notifications">Уведомления</string>
<string name="silent">Без звука</string>
<string name="sound">Звук</string>

@ -45,7 +45,6 @@
<string name="SSD_sort_modified">Podľa úpravy</string>
<string name="FLA_search_filter">Zodpovedá \'%s\'</string>
<string name="FLA_new_filter">Nový filter</string>
<string name="FLA_no_filter_selected">Nieje vybraný filter! Prosím, zvoľ si filter, alebo zoznam.</string>
<string name="TEA_title_hint">Názov úlohy</string>
<string name="TEA_importance_label">Priorita</string>
<string name="TEA_no_date">Bez dátumu</string>
@ -114,7 +113,6 @@
<string name="EPr_manage_delete_all_gcal_message">Naozaj chceš vymazať všetky tvoje udalosti pre úlohy?</string>
<string name="EPr_manage_delete_all_gcal_status">Vymazané %d udalosti kalendára!</string>
<string name="TWi_loading">Načítavanie</string>
<string name="WCA_title">Vybrať úlohy na zobrazenie</string>
<string name="DB_corrupted_body">Oh nie! Zdá sa, že máš poškodenú databázu. Ak sa ti táto chyba zobrazuje stále, vymaž všetky údaje
(Nastavenia-&gt;Synchronizáca a zálohy-&gt;Spravovať staré úlohy-&gt;Vymazať všetky údaje) a obnov svoje údaje zo zálohy (Nastavenia-&gt;Synchronizácie a zálohy-&gt;Záloha-&gt;Importovať úlohy) v Tasks.</string>
<string name="task_defaults">Predvoľby úloh</string>
@ -268,7 +266,6 @@
<string name="widget_hide_due_date">Skryť termín</string>
<string name="widget_hide_checkboxes">Skryť zaškrtávacie políčka</string>
<string name="widget_hide_header">Skryť hlavičku</string>
<string name="widget_transparent_background">Priesvitné pozadie</string>
<string name="notifications">Oznámenia</string>
<string name="silent">Tichý</string>
<string name="sound">Zvuk</string>

@ -46,7 +46,6 @@
<string name="SSD_sort_modified">Po zadnjih spremembah</string>
<string name="FLA_search_filter">Ujemanje za \'%s\'</string>
<string name="FLA_new_filter">Nov filter</string>
<string name="FLA_no_filter_selected">Noben filter ni izbran. Izberite filter ali seznam.</string>
<string name="TEA_title_hint">Poimenovanje opravka</string>
<string name="TEA_importance_label">Prioriteta</string>
<string name="TEA_no_date">Brez datuma</string>
@ -109,7 +108,6 @@
<string name="EPr_manage_delete_all_gcal_message">Ste prepričani, da želite zbrisati vse opravke iz vaših dogodkov?</string>
<string name="EPr_manage_delete_all_gcal_status">Število zbrisanih dogodkov na koledarju: %d </string>
<string name="TWi_loading">Nalagam...</string>
<string name="WCA_title">Izberi in prikaži opravke...</string>
<string name="DB_corrupted_body">O, ne! Zdi se, da imate okvarjeno bazo podatkov. Če se ta napaka pogosto pojavlja, vam predlagamo, da zbrišete vse podatke (Nastavitve-&gt;Usklajevanje in varnostna kopija-&gt; Upravljanje s preteklimi opravki-&gt;Zbriši vse podatke) in obnovite svoje opravke s pomočjo varnostne kopije aplikacije Opravki. (Nastavitve-&gt;Usklajevanje in varnostna kopija-&gt;Varnostna kopija-&gt;Uvozi opravke)</string>
<string name="EPr_default_urgency_title">Privzeta dospelost</string>
<string name="EPr_default_importance_title">Privzeta dospelost</string>

@ -50,7 +50,6 @@
<string name="SSD_sort_modified">Efter senaste ändringen</string>
<string name="FLA_search_filter">Matchar \'%s\'</string>
<string name="FLA_new_filter">Skapa ett nytt filter</string>
<string name="FLA_no_filter_selected">Inget filter valt! Välj ett filter eller en lista.</string>
<string name="TEA_title_hint">Uppgiftsnamn</string>
<string name="TEA_importance_label">Prioritet</string>
<string name="TEA_no_date">Inget datum</string>
@ -124,7 +123,6 @@
<string name="EPr_manage_delete_all_gcal_message">Vill du verkligen radera alla dina händelser i kalendern för uppgifter?</string>
<string name="EPr_manage_delete_all_gcal_status">%d kalenderhändelser raderade!</string>
<string name="TWi_loading">Laddar...</string>
<string name="WCA_title">Välj uppgifter att se på...</string>
<string name="DB_corrupted_body">Oj! Det verkar som din databas är skadad.
Om du ser detta felmeddelande ofta, föreslår vi att du tömmer all data
(Inställningar-&gt;Synkronisering och backup-&gt;Hantera gamla uppgifter-&gt;Töm all data)
@ -292,7 +290,6 @@ och återställer dina aktuella uppgifter från en backup
<string name="widget_hide_due_date">Dölj förfallodatum</string>
<string name="widget_hide_checkboxes">Dölj kryssrutor</string>
<string name="widget_hide_header">Dölj rubrik</string>
<string name="widget_transparent_background">Genomskinlig bakgrund </string>
<string name="notifications">Påminnelser</string>
<string name="silent">Tyst</string>
<string name="sound">Ljud</string>

@ -27,7 +27,6 @@
<string name="TEA_control_notes">บันทึกย่อ</string>
<string name="EPr_appearance_header">รูปโฉม</string>
<string name="TWi_loading">กำลังโหลด...</string>
<string name="WCA_title">เลือกแผนงานเพื่อดู...</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -40,7 +40,6 @@
<string name="SSD_sort_modified">Son Değiştirme Tarihine Göre</string>
<string name="FLA_search_filter">\'%s\' ile eşleşenler</string>
<string name="FLA_new_filter">Yeni Filtre</string>
<string name="FLA_no_filter_selected">Süzgeç seçilmemiş! Lütfen bir süzgeç ya da liste seçin.</string>
<string name="TEA_note_label">ıklama</string>
<string name="TEA_estimatedDuration_label">Ne kadar sürecek?</string>
<string name="TEA_elapsedDuration_label">Görev üzerinde çalışılan zaman</string>
@ -84,7 +83,6 @@
<string name="EPr_manage_delete_all_gcal_message">Görevlerdeki bütün olayları silmek istediğinize emin misiniz?</string>
<string name="EPr_manage_delete_all_gcal_status">%d takvim olayı silindi!</string>
<string name="TWi_loading">Yükleniyor...</string>
<string name="WCA_title">Görüntülenecek görevi seç...</string>
<string name="DB_corrupted_body">Uh oh! It looks like you may have a corrupted database.
If you see this error regularly, we suggest you clear all
data (Settings-&gt;Sync and backup-&gt;Manage old tasks-&gt;Clear all data) and restore

@ -46,7 +46,6 @@
<string name="SSD_sort_modified">За останньою модифікованою</string>
<string name="FLA_search_filter">Відповідності до %s</string>
<string name="FLA_new_filter">Новий фільтр</string>
<string name="FLA_no_filter_selected">Не вибраний жодний фільтр! Будь ласка, виберіть фільтр або список.</string>
<string name="TEA_title_hint">Ім\'я завдання</string>
<string name="TEA_importance_label">Пріоритет</string>
<string name="TEA_no_date">Немає дати</string>
@ -115,7 +114,6 @@
<string name="EPr_manage_delete_all_gcal_message">Ви дійсно хочете видалити всі події для завдань?</string>
<string name="EPr_manage_delete_all_gcal_status">Видалено %d календарних подій!</string>
<string name="TWi_loading">Завантаження...</string>
<string name="WCA_title">Виберіть завдання для перегляду...</string>
<string name="DB_corrupted_body">Ой! Схоже, ваша база даних пошкоджена.
Якщо ви отримуєте цю помилку регулярно,
рекомендується стерти всі дані (Параметри-&gt;

@ -40,7 +40,6 @@
<string name="SSD_sort_modified">按最后修改</string>
<string name="FLA_search_filter">比对 \'%s\'</string>
<string name="FLA_new_filter">新建过滤器</string>
<string name="FLA_no_filter_selected">还没有选定过滤器呢!请选择一个过滤器或列表呗。</string>
<string name="TEA_note_label">描述</string>
<string name="TEA_estimatedDuration_label">要花多久时间?</string>
<string name="TEA_elapsedDuration_label">已用于任务的时间</string>
@ -80,7 +79,6 @@
<string name="EPr_manage_delete_all_gcal_message">您真的想删除您所有事件中的各项任务吗?</string>
<string name="EPr_manage_delete_all_gcal_status">已经删除了 %d 个日历事件了!</string>
<string name="TWi_loading">载入中...</string>
<string name="WCA_title">选择任务以显示...</string>
<string name="DB_corrupted_body">啊喔!您有一个毁损的资料库。如果您经常看见这个错误出现,我们建议您清除所有数据(在设置-&gt;同步和备份-&amp;gt管理旧任务-&gt;清楚所有数据)并在清单小助理备份中重新存入您的任务(设置-&gt;同步和备份-&gt;备份-&gt;导入任务)</string>
<string name="EPr_default_urgency_title">默认截止期</string>
<string name="EPr_default_hideUntil_title">默认隐藏直到</string>

@ -42,7 +42,6 @@
<string name="SSD_sort_modified">依最後修改</string>
<string name="FLA_search_filter">比對 \'%s\'</string>
<string name="FLA_new_filter">新建過濾器</string>
<string name="FLA_no_filter_selected">還沒有選定過濾器呢!請選擇一個過濾器或列表唄。</string>
<string name="TEA_title_hint">工作名稱</string>
<string name="TEA_importance_label">優先權</string>
<string name="TEA_hideUntil_label">隱藏直到</string>
@ -94,7 +93,6 @@
<string name="EPr_manage_delete_all_gcal_message">您真的想刪除您所有事件中的各項任務工作嗎?</string>
<string name="EPr_manage_delete_all_gcal_status">已經刪除了 %d 個日曆事件了!</string>
<string name="TWi_loading">載入中...</string>
<string name="WCA_title">選擇工作顯示...</string>
<string name="DB_corrupted_body">啊喔!您有一個毀損的資料庫。如果您經常看見這個錯誤出現,我們建議您清除所有數據(在設置-&gt;同步和備份-&amp;gt管理舊任務工作-&gt;清楚所有數據並在Tasks備份中重新存入您的任務工作設置-&gt;同步和備份-&gt;備份-&gt;導入任務工作)</string>
<string name="EPr_default_urgency_title">預設嚴重性</string>
<string name="EPr_default_importance_title">預設優先權</string>

@ -162,9 +162,6 @@ File %1$s contained %2$s.\n\n
<!-- Menu: new filter -->
<string name="FLA_new_filter">Create new filter</string>
<!-- Alert when creating a shortcut without selecting a filter -->
<string name="FLA_no_filter_selected">No filter selected! Please select a filter or list.</string>
<!-- ================================================= TaskEditActivity == -->
<!-- Task title hint (displayed when edit box is empty) -->
@ -346,9 +343,6 @@ File %1$s contained %2$s.\n\n
<!-- Widget text when loading tasks -->
<string name="TWi_loading">Loading...</string>
<!-- Widget configuration activity title: select a filter -->
<string name="WCA_title">Select tasks to view...</string>
<!-- ============================================================= Misc == -->
<string name="DB_corrupted_body">
@ -775,7 +769,6 @@ File %1$s contained %2$s.\n\n
<string name="widget_hide_due_date">Hide due dates</string>
<string name="widget_hide_checkboxes">Hide checkboxes</string>
<string name="widget_hide_header">Hide header</string>
<string name="widget_transparent_background">Transparent background</string>
<string name="notifications">Notifications</string>
<string name="silent">Silent</string>
<string name="sound">Sound</string>
@ -869,6 +862,7 @@ File %1$s contained %2$s.\n\n
<string name="billing_service_busy">In-app billing service is busy, try again later</string>
<string name="select_filter">Select Filter</string>
<string name="filter">Filter</string>
<string name="opacity">Opacity</string>
<string-array name="sync_SPr_interval_entries">
<!-- sync_SPr_interval_entries: Synchronization Intervals -->

@ -21,6 +21,25 @@
<item name="colorControlHighlight">#3fff</item>
</style>
<style name="WidgetConfigRow">
<item name="android:paddingLeft">@dimen/keyline_first</item>
<item name="android:paddingStart">@dimen/keyline_first</item>
<item name="android:paddingRight">@dimen/keyline_first</item>
<item name="android:paddingEnd">@dimen/keyline_first</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:background">?attr/selectableItemBackground</item>
<item name="android:textSize">18sp</item>
<item name="android:paddingTop">15dp</item>
<item name="android:paddingBottom">15dp</item>
</style>
<style name="WidgetConfigRow.CheckBox">
<item name="android:button">@null</item>
<item name="android:drawableRight">?android:attr/listChoiceIndicatorMultiple</item>
<item name="android:drawableEnd">?android:attr/listChoiceIndicatorMultiple</item>
</style>
<!--================================================== General == -->
<style name="TextAppearance" parent="android:TextAppearance">

@ -6,13 +6,13 @@
-->
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.todoroo.astrid.widget.WidgetConfigActivity"
android:configure="org.tasks.widget.WidgetConfigActivity"
android:widgetCategory="keyguard|home_screen"
android:minWidth="142dip"
android:minHeight="142dip"
android:minResizeWidth="142dip"
android:minResizeHeight="142dip"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/scrollable_widget_light"
android:initialKeyguardLayout="@layout/scrollable_widget_light"
android:initialLayout="@layout/scrollable_widget"
android:initialKeyguardLayout="@layout/scrollable_widget"
android:resizeMode="horizontal|vertical"/>

@ -6,7 +6,7 @@
-->
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure="com.todoroo.astrid.widget.WidgetConfigActivity"
android:configure="org.tasks.widget.WidgetConfigActivity"
android:minWidth="142dip"
android:minHeight="142dip"
android:minResizeWidth="142dip"

Loading…
Cancel
Save