Add widget settings button

pull/437/head
Alex Baker 8 years ago
parent 93aec24ca9
commit 323ec90a33

@ -199,6 +199,7 @@
<!-- Activity that configures widget -->
<activity
android:name=".widget.WidgetConfigActivity"
android:taskAffinity=""
android:theme="@style/TranslucentDialog">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />

@ -25,6 +25,8 @@ import org.tasks.R;
import org.tasks.locale.Locale;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.themes.ThemeCache;
import org.tasks.themes.WidgetTheme;
import org.tasks.ui.WidgetCheckBoxes;
import timber.log.Timber;
@ -34,7 +36,7 @@ import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybeanMR1;
public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFactory {
private final WidgetCheckBoxes checkBoxes;
private final int themeTextColor;
private final ThemeCache themeCache;
private final int widgetId;
private final Database database;
private final TaskService taskService;
@ -42,11 +44,13 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
private final SubtasksHelper subtasksHelper;
private final Preferences preferences;
private final Context context;
private final String filterId;
private final boolean showDueDates;
private final boolean hideCheckboxes;
private final float textSize;
private final float dueDateTextSize;
private boolean showDueDates;
private boolean showCheckboxes;
private float textSize;
private float dueDateTextSize;
private String filterId;
private int themeTextColor;
private TodorooCursor<Task> cursor;
@ -54,27 +58,23 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
SubtasksHelper subtasksHelper,
Preferences preferences,
Context context,
String filterId,
int themeTextColor,
int widgetId,
Database database,
TaskService taskService,
DefaultFilterProvider defaultFilterProvider,
WidgetCheckBoxes checkBoxes) {
WidgetCheckBoxes checkBoxes,
ThemeCache themeCache) {
this.subtasksHelper = subtasksHelper;
this.preferences = preferences;
this.context = context;
this.filterId = filterId;
this.widgetId = widgetId;
this.database = database;
this.taskService = taskService;
this.defaultFilterProvider = defaultFilterProvider;
this.checkBoxes = checkBoxes;
this.themeTextColor = themeTextColor;
showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, false);
hideCheckboxes = preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_CHECKBOXES + widgetId, false);
textSize = (float) preferences.getInt(WidgetConfigActivity.PREF_FONT_SIZE + widgetId, 16);
dueDateTextSize = Math.max(10, textSize * 14 / 20);
this.themeCache = themeCache;
updateSettings();
}
@Override
@ -157,8 +157,11 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
row.setFloat(R.id.widget_text, "setTextSize", textSize);
if (showDueDates) {
formatDueDate(row, task, textColor);
} else if (task.hasDueDate() && task.isOverdue()) {
textColor = r.getColor(R.color.overdue);
} else {
row.setViewVisibility(R.id.widget_due_date, View.GONE);
if (task.hasDueDate() && task.isOverdue()) {
textColor = r.getColor(R.color.overdue);
}
}
row.setTextViewText(R.id.widget_text, textContent);
@ -171,12 +174,13 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
editIntent.putExtra(TasksWidget.EXTRA_ID, taskId);
row.setOnClickFillInIntent(R.id.widget_row, editIntent);
if (hideCheckboxes) {
row.setViewVisibility(R.id.widget_complete_box, View.GONE);
} else {
if (showCheckboxes) {
row.setViewVisibility(R.id.widget_complete_box, View.VISIBLE);
Intent completeIntent = new Intent(TasksWidget.COMPLETE_TASK);
completeIntent.putExtra(TasksWidget.EXTRA_ID, taskId);
row.setOnClickFillInIntent(R.id.widget_complete_box, completeIntent);
} else {
row.setViewVisibility(R.id.widget_complete_box, View.GONE);
}
if (atLeastJellybeanMR1()) {
@ -210,6 +214,7 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
if(sort == 0) {
sort = SortHelper.SORT_WIDGET;
}
updateSettings();
Filter filter = defaultFilterProvider.getFilterFromPreference(filterId);
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.scrollable_widget);
@ -235,4 +240,14 @@ public class ScrollableViewsFactory implements RemoteViewsService.RemoteViewsFac
row.setViewVisibility(R.id.widget_due_date, View.GONE);
}
}
private void updateSettings() {
WidgetTheme widgetTheme = themeCache.getWidgetTheme(preferences.getInt(WidgetConfigActivity.PREF_THEME + widgetId, 0));
themeTextColor = widgetTheme.getTextColor();
showDueDates = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + widgetId, true);
showCheckboxes = preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_CHECKBOXES+ widgetId, true);
textSize = (float) preferences.getInt(WidgetConfigActivity.PREF_FONT_SIZE + widgetId, 16);
dueDateTextSize = Math.max(10, textSize * 14 / 20);
filterId = preferences.getStringValue(WidgetConfigActivity.PREF_WIDGET_ID + widgetId);
}
}

@ -14,15 +14,12 @@ import org.tasks.locale.Locale;
import org.tasks.preferences.DefaultFilterProvider;
import org.tasks.preferences.Preferences;
import org.tasks.themes.ThemeCache;
import org.tasks.themes.WidgetTheme;
import org.tasks.ui.WidgetCheckBoxes;
import javax.inject.Inject;
public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
public static final String FILTER_ID = "org.tasks.widget.FILTER_ID";
@Inject Database database;
@Inject TaskService taskService;
@Inject Preferences preferences;
@ -50,11 +47,9 @@ public class ScrollableWidgetUpdateService extends InjectingRemoteViewsService {
return null;
}
String filterId = (String) extras.get(FILTER_ID);
int widgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
WidgetTheme widgetTheme = themeCache.getWidgetTheme(preferences.getInt(WidgetConfigActivity.PREF_THEME + widgetId, 0));
return new ScrollableViewsFactory(subtasksHelper, preferences, locale.createConfigurationContext(getApplicationContext()), filterId,
widgetTheme.getTextColor(), widgetId, database, taskService, defaultFilterProvider, widgetCheckBoxes);
return new ScrollableViewsFactory(subtasksHelper, preferences, locale.createConfigurationContext(getApplicationContext()),
widgetId, database, taskService, defaultFilterProvider, widgetCheckBoxes, themeCache);
}
@Override

@ -97,7 +97,6 @@ public class TasksWidget extends InjectingAppWidgetProvider {
private RemoteViews createScrollableWidget(Context context, int id) {
String filterId = preferences.getStringValue(WidgetConfigActivity.PREF_WIDGET_ID + id);
Intent rvIntent = new Intent(context, ScrollableWidgetUpdateService.class);
rvIntent.putExtra(ScrollableWidgetUpdateService.FILTER_ID, filterId);
rvIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, id);
rvIntent.setData(Uri.parse(rvIntent.toUri(Intent.URI_INTENT_SCHEME)));
WidgetTheme theme = themeCache.getWidgetTheme(preferences.getInt(WidgetConfigActivity.PREF_THEME + id, 0));
@ -106,13 +105,18 @@ public class TasksWidget extends InjectingAppWidgetProvider {
if (atLeastJellybeanMR1()) {
remoteViews.setInt(R.id.widget, "setLayoutDirection", locale.getDirectionality());
}
if (preferences.getBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + id, false)) {
remoteViews.setViewVisibility(R.id.widget_header, View.GONE);
} else {
if (preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_HEADER + id, true)) {
remoteViews.setViewVisibility(R.id.widget_reconfigure, preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_SETTINGS + id, true)
? View.VISIBLE
: View.GONE);
remoteViews.setInt(R.id.widget_title, "setTextColor", color.getActionBarTint());
remoteViews.setInt(R.id.widget_button, "setColorFilter", color.getActionBarTint());
remoteViews.setInt(R.id.widget_reconfigure, "setColorFilter", color.getActionBarTint());
} else {
remoteViews.setViewVisibility(R.id.widget_header, View.GONE);
}
int opacity = preferences.getInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + id, WidgetConfigActivity.DEFAULT_OPACITY);
int opacityPercentage = preferences.getInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + id, WidgetConfigActivity.DEFAULT_OPACITY);
int opacity = (int)((opacityPercentage / 100.0) * 255.0);
remoteViews.setImageViewBitmap(R.id.widget_background,
getSolidBackground(theme.getBackgroundColor()));
remoteViews.setImageViewBitmap(R.id.widget_header_background,
@ -126,6 +130,7 @@ public class TasksWidget extends InjectingAppWidgetProvider {
remoteViews.setEmptyView(R.id.list_view, R.id.empty_view);
remoteViews.setOnClickPendingIntent(R.id.widget_title, getOpenListIntent(context, filterId, id));
remoteViews.setOnClickPendingIntent(R.id.widget_button, getNewTaskIntent(context, filterId, id));
remoteViews.setOnClickPendingIntent(R.id.widget_reconfigure, getWidgetConfigIntent(context, id));
remoteViews.setPendingIntentTemplate(R.id.list_view, getPendingIntentTemplate(context));
return remoteViews;
}
@ -152,4 +157,11 @@ public class TasksWidget extends InjectingAppWidgetProvider {
intent.setFlags(flags);
return PendingIntent.getActivity(context, -widgetId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
private PendingIntent getWidgetConfigIntent(Context context, final int widgetId) {
Intent intent = new Intent(context, WidgetConfigActivity.class) {{
putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, widgetId);
}};
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
}
}

@ -5,6 +5,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import org.tasks.Broadcaster;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
@ -18,19 +19,21 @@ public class WidgetConfigActivity extends InjectingAppCompatActivity implements
private static final String FRAG_TAG_WIDGET_CONFIG = "frag_tag_widget_config";
public static final int DEFAULT_OPACITY = 255;
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_SHOW_CHECKBOXES = "widget-show-checkboxes-";
public static final String PREF_THEME = "widget-theme-v2-";
public static final String PREF_COLOR = "widget-color-";
public static final String PREF_HIDE_HEADER = "widget-hide-header-";
public static final String PREF_WIDGET_OPACITY = "widget-opacity-v2-";
public static final String PREF_SHOW_HEADER = "widget-show-header-";
public static final String PREF_SHOW_SETTINGS = "widget-show-settings-";
public static final String PREF_WIDGET_OPACITY = "widget-opacity-v3-";
public static final String PREF_FONT_SIZE = "widget-font-size-";
@Inject Tracker tracker;
@Inject DialogBuilder dialogBuilder;
@Inject Broadcaster broadcaster;
private int appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID;
@ -62,6 +65,7 @@ public class WidgetConfigActivity extends InjectingAppCompatActivity implements
@Override
public void ok() {
tracker.reportEvent(Tracking.Events.WIDGET_ADD, getString(R.string.app_name));
broadcaster.refresh();
Intent resultValue = new Intent();
resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
setResult(RESULT_OK, resultValue);

@ -11,6 +11,7 @@ import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.google.common.base.Strings;
import com.todoroo.astrid.api.Filter;
import org.tasks.R;
@ -68,10 +69,11 @@ public class WidgetConfigDialog extends InjectingDialogFragment {
@BindView(R.id.selected_filter) TextView selectedFilter;
@BindView(R.id.selected_theme) TextView selectedTheme;
@BindView(R.id.selected_color) TextView selectedColor;
@BindView(R.id.hideDueDate) CheckBox hideDueDate;
@BindView(R.id.hideCheckboxes) CheckBox hideCheckBoxes;
@BindView(R.id.hideHeader) CheckBox hideHeader;
@BindView(R.id.showDueDate) CheckBox showDueDate;
@BindView(R.id.showCheckBoxes) CheckBox showCheckBoxes;
@BindView(R.id.showHeader) CheckBox showHeader;
@BindView(R.id.font_size_value) TextView selectedFontSize;
@BindView(R.id.showSettings) CheckBox showSettings;
@Inject DialogBuilder dialogBuilder;
@Inject DefaultFilterProvider defaultFilterProvider;
@ -102,9 +104,20 @@ public class WidgetConfigDialog extends InjectingDialogFragment {
opacityPercentage = savedInstanceState.getInt(EXTRA_OPACITY);
fontSize = savedInstanceState.getInt(EXTRA_FONT_SIZE);
} else {
filter = defaultFilterProvider.getDefaultFilter();
opacityPercentage = 100;
fontSize = 16;
String filterId = preferences.getStringValue(WidgetConfigActivity.PREF_WIDGET_ID + appWidgetId);
if (Strings.isNullOrEmpty(filterId)) {
filter = defaultFilterProvider.getDefaultFilter();
} else {
filter = defaultFilterProvider.getFilterFromPreference(filterId);
}
opacityPercentage = preferences.getInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + appWidgetId, 100);
fontSize = preferences.getInt(WidgetConfigActivity.PREF_FONT_SIZE + appWidgetId, 16);
themeIndex = preferences.getInt(WidgetConfigActivity.PREF_THEME + appWidgetId, 0);
colorIndex = preferences.getInt(WidgetConfigActivity.PREF_COLOR + appWidgetId, 0);
showDueDate.setChecked(preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + appWidgetId, true));
showCheckBoxes.setChecked(preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_CHECKBOXES + appWidgetId, true));
showHeader.setChecked(preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_HEADER + appWidgetId, true));
showSettings.setChecked(preferences.getBoolean(WidgetConfigActivity.PREF_SHOW_SETTINGS + appWidgetId, true));
}
updateFilter();
@ -206,7 +219,7 @@ public class WidgetConfigDialog extends InjectingDialogFragment {
@OnClick(R.id.font_size)
public void showFontSizeSlider() {
SeekBarDialog seekBarDialog = newSeekBarDialog(R.layout.dialog_font_size_seekbar, 16);
SeekBarDialog seekBarDialog = newSeekBarDialog(R.layout.dialog_font_size_seekbar, fontSize);
seekBarDialog.setTargetFragment(this, REQUEST_FONT_SIZE);
seekBarDialog.show(getChildFragmentManager(), FRAG_TAG_SEEKBAR);
}
@ -250,12 +263,13 @@ public class WidgetConfigDialog extends InjectingDialogFragment {
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_HIDE_CHECKBOXES + appWidgetId, hideCheckBoxes.isChecked());
preferences.setBoolean(WidgetConfigActivity.PREF_HIDE_HEADER + appWidgetId, hideHeader.isChecked());
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_DUE_DATE + appWidgetId, showDueDate.isChecked());
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_CHECKBOXES+ appWidgetId, showCheckBoxes.isChecked());
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_HEADER + appWidgetId, showHeader.isChecked());
preferences.setBoolean(WidgetConfigActivity.PREF_SHOW_SETTINGS + appWidgetId, showSettings.isChecked());
preferences.setInt(WidgetConfigActivity.PREF_THEME + appWidgetId, themeIndex);
preferences.setInt(WidgetConfigActivity.PREF_COLOR + appWidgetId, colorIndex);
preferences.setInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + appWidgetId, (int)(255.0 * ((double) opacityPercentage / 100.0)));
preferences.setInt(WidgetConfigActivity.PREF_WIDGET_OPACITY + appWidgetId, opacityPercentage);
preferences.setInt(WidgetConfigActivity.PREF_FONT_SIZE + appWidgetId, fontSize);
// force update after setting preferences

@ -18,7 +18,7 @@
app:sl_maxValue="22"
app:sl_minValue="10"
app:sl_stepValue="2"
app:sl_travelAnimDuration="50" />
app:sl_travelAnimDuration="100" />
<TextView
android:layout_width="wrap_content"

@ -18,7 +18,7 @@
app:sl_maxValue="100"
app:sl_minValue="0"
app:sl_stepValue="5"
app:sl_travelAnimDuration="50" />
app:sl_travelAnimDuration="100" />
<TextView
android:layout_width="wrap_content"

@ -29,26 +29,46 @@
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="@android:color/transparent"
android:paddingEnd="10dp"
android:paddingRight="10dp"
android:paddingEnd="@dimen/widget_padding"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="@dimen/widget_padding"
android:paddingStart="@dimen/widget_padding"
android:scaleType="fitCenter"
android:src="@drawable/ic_add_24dp"
android:tint="@android:color/white" />
<ImageButton
android:id="@+id/widget_reconfigure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/widget_button"
android:layout_toStartOf="@id/widget_button"
android:background="@android:color/transparent"
android:paddingEnd="0dp"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="0dp"
android:paddingStart="@dimen/widget_padding"
android:scaleType="fitCenter"
android:src="@drawable/ic_settings_24dp"
android:tint="@android:color/white" />
<TextView
android:id="@+id/widget_title"
android:layout_width="0dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/widget_button"
android:layout_toStartOf="@id/widget_button"
android:layout_toLeftOf="@id/widget_reconfigure"
android:layout_toStartOf="@id/widget_reconfigure"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:maxLines="2"
android:paddingLeft="10dp"
android:paddingStart="10dp"
android:paddingEnd="0dp"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="0dp"
android:paddingStart="@dimen/widget_padding"
android:textAlignment="viewStart"
android:textColor="@android:color/white"
android:textSize="18sp" />
@ -67,10 +87,10 @@
<ListView
android:id="@+id/list_view"
android:divider="@null"
android:dividerHeight="0dp"
android:layout_width="match_parent"
android:layout_height="fill_parent" />
android:layout_height="fill_parent"
android:divider="@null"
android:dividerHeight="0dp" />
<TextView
android:id="@+id/empty_view"

@ -149,22 +149,28 @@
</RelativeLayout>
<CheckBox
android:id="@+id/hideDueDate"
android:id="@+id/showDueDate"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:text="@string/widget_hide_due_date" />
android:checked="true"
android:text="@string/widget_show_due_date" />
<CheckBox
android:id="@+id/hideCheckboxes"
android:id="@+id/showCheckBoxes"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:text="@string/widget_hide_checkboxes" />
android:checked="true"
android:text="@string/widget_show_checkboxes" />
<CheckBox
android:id="@+id/hideHeader"
android:id="@+id/showHeader"
style="@style/WidgetConfigRow.CheckBox"
android:checked="false"
android:text="@string/widget_hide_header" />
android:checked="true"
android:text="@string/widget_show_header" />
<CheckBox
android:id="@+id/showSettings"
style="@style/WidgetConfigRow.CheckBox"
android:checked="true"
android:text="@string/widget_show_settings" />
</LinearLayout>

@ -17,7 +17,10 @@
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_gravity="center"
android:padding="5dp" />
android:paddingEnd="0dp"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="0dp"
android:paddingStart="@dimen/widget_padding" />
<LinearLayout
android:layout_width="match_parent"
@ -25,18 +28,20 @@
android:layout_centerVertical="true"
android:layout_toEndOf="@id/widget_complete_box"
android:layout_toRightOf="@id/widget_complete_box"
android:orientation="vertical">
android:orientation="vertical"
android:paddingBottom="3dp"
android:paddingTop="3dp">
<TextView
android:id="@+id/widget_text"
android:layout_width="match_parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingEnd="5dp"
android:paddingLeft="0dp"
android:paddingRight="5dp"
android:paddingStart="0dp"
android:singleLine="true"
android:gravity="start|center_vertical"
android:paddingEnd="@dimen/widget_padding"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="@dimen/widget_padding"
android:paddingStart="@dimen/widget_padding"
android:singleLine="true"
android:textAlignment="viewStart"
android:textSize="16sp" />
@ -46,10 +51,10 @@
android:layout_height="wrap_content"
android:ellipsize="end"
android:gravity="start|center_vertical"
android:paddingEnd="5dp"
android:paddingLeft="0dp"
android:paddingRight="5dp"
android:paddingStart="0dp"
android:paddingEnd="@dimen/widget_padding"
android:paddingLeft="@dimen/widget_padding"
android:paddingRight="@dimen/widget_padding"
android:paddingStart="@dimen/widget_padding"
android:singleLine="true"
android:textAlignment="viewStart"
android:textSize="12sp"

@ -159,9 +159,6 @@
<string name="sync_SPr_interval_title">تحيين في الخلفية</string>
<string name="sync_SPr_forget">خروج</string>
<string name="sync_forget_confirm">تسجيل الخروج/ مسح معلومات المزامنه؟</string>
<string name="widget_hide_due_date">إخفاء تاريخ الإستحقاق</string>
<string name="widget_hide_checkboxes">إخفاء مربعات الاختيار</string>
<string name="widget_hide_header">إخفاء الجزء العلوي</string>
<string name="notifications">تنبيهات</string>
<string name="silent">الصمت</string>
<string name="sound">صوت</string>

@ -282,9 +282,6 @@
<string name="sync_SPr_forget">Излизане</string>
<string name="sync_SPr_forget_description">Изчистване на всички данни от синхронзация</string>
<string name="sync_forget_confirm">Изход/изчистване на данните от синхронизация?</string>
<string name="widget_hide_due_date">Скриване на крайни срокове</string>
<string name="widget_hide_checkboxes">Скриване на отметки</string>
<string name="widget_hide_header">Скриване на хедър</string>
<string name="notifications">Уведомления</string>
<string name="silent">Безшумен</string>
<string name="sound">Звук</string>

@ -274,9 +274,6 @@
<string name="sync_SPr_forget">Abmelden</string>
<string name="sync_SPr_forget_description">Alle Synchronisationsdaten löschen</string>
<string name="sync_forget_confirm">Ausloggen / Synchronisierte Daten löschen?</string>
<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="notifications">Benachrichtigungen</string>
<string name="silent">Ton Aus</string>
<string name="sound">Ton</string>

@ -278,9 +278,6 @@
<string name="sync_SPr_forget">Cerrar sesión</string>
<string name="sync_SPr_forget_description">Limpia todos los datos de la sincronización</string>
<string name="sync_forget_confirm">Cerrar sesión/Limpiar datos de sincronización?</string>
<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="notifications">Notificaciones</string>
<string name="silent">Silencioso</string>
<string name="sound">Sonido</string>

@ -205,8 +205,6 @@
<string name="DLG_wait">لطفا منتظر بمانید...</string>
<string name="sync_SPr_interval_title">سینک پیش زمینه</string>
<string name="sync_SPr_forget">خروج از حساب کاربری</string>
<string name="widget_hide_due_date">مخفی کردن موعودها</string>
<string name="widget_hide_header">مخفی کردن سربرگ</string>
<string name="notifications">اعلان ها</string>
<string name="silent">سکوت</string>
<string name="sound">صدا</string>

@ -275,9 +275,6 @@
<string name="sync_SPr_forget">Se déconnecter</string>
<string name="sync_SPr_forget_description">Supprimer définitivement toutes les données de synchronisation</string>
<string name="sync_forget_confirm">Se déconnecter/Supprimer définitivement toutes les données de synchronisation ?</string>
<string name="widget_hide_due_date">Cacher les dates échéantes</string>
<string name="widget_hide_checkboxes">Cacher les cases à cocher</string>
<string name="widget_hide_header">Cacher l\'en-tête</string>
<string name="silent">Silencieux</string>
<string name="sound">Son</string>
<string name="quiet_hours">Heures de repos</string>

@ -279,9 +279,6 @@
<string name="sync_SPr_forget">Esci</string>
<string name="sync_SPr_forget_description">Cancella tutti i dati di sincronizzazione</string>
<string name="sync_forget_confirm">Esci / cancella i file di sincronizzazione?</string>
<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="notifications">Notifiche</string>
<string name="silent">Silente</string>
<string name="sound">Sonoro</string>

@ -280,9 +280,6 @@
<string name="sync_SPr_forget">התנתק</string>
<string name="sync_SPr_forget_description">מסיר את כל נתוני הסנכרון</string>
<string name="sync_forget_confirm">צא מהחשבון \\ הסר נתוני סנכרון?</string>
<string name="widget_hide_due_date">הסתר תאריכי יעד</string>
<string name="widget_hide_checkboxes">הסתר תיבות סימון</string>
<string name="widget_hide_header">הסתר כותרת</string>
<string name="notifications">התראות</string>
<string name="silent">שקט</string>
<string name="sound">שמע</string>

@ -280,9 +280,6 @@
<string name="sync_SPr_forget">ログアウト</string>
<string name="sync_SPr_forget_description">すべての同期データを消去します</string>
<string name="sync_forget_confirm">ログアウトと同期データを消去しますか?</string>
<string name="widget_hide_due_date">期限を表示しない</string>
<string name="widget_hide_checkboxes">チェックボックスを表示しない</string>
<string name="widget_hide_header">ヘッダーを表示しない</string>
<string name="notifications">通知</string>
<string name="silent">サイレント</string>
<string name="sound">サウンド</string>

@ -282,9 +282,6 @@
<string name="sync_SPr_forget">로그아웃</string>
<string name="sync_SPr_forget_description">모든 동기화 자료 삭제</string>
<string name="sync_forget_confirm">로그아웃 / 모든 동기화 데이터 삭제?</string>
<string name="widget_hide_due_date">완료 예정일 숨기기</string>
<string name="widget_hide_checkboxes">체크박스 숨기기</string>
<string name="widget_hide_header">헤더 숨기기</string>
<string name="notifications">알림</string>
<string name="silent">무음</string>
<string name="sound">소리</string>

@ -278,9 +278,6 @@
<string name="sync_SPr_forget">Afmelden</string>
<string name="sync_SPr_forget_description">Alle synchronisatie gegevens verwijderen</string>
<string name="sync_forget_confirm">Afmelden / synchronisatie gegevens verwijderen?</string>
<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="notifications">Notificaties</string>
<string name="silent">Stil</string>
<string name="sound">Geluid</string>

@ -261,9 +261,6 @@
<string name="sync_SPr_forget">Sair</string>
<string name="sync_SPr_forget_description">Remove todos os dados de sincronização</string>
<string name="sync_forget_confirm">Sair/limpar dados de sincronização?</string>
<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="notifications">Notificações</string>
<string name="silent">Silêncio</string>
<string name="sound">Som</string>

@ -279,9 +279,6 @@
<string name="sync_SPr_forget">Выйти</string>
<string name="sync_SPr_forget_description">Очищает все данные синхронизации</string>
<string name="sync_forget_confirm">Выйти / очистить данные синхронизации?</string>
<string name="widget_hide_due_date">Спрятать даты</string>
<string name="widget_hide_checkboxes">Спрятать чекбоксы</string>
<string name="widget_hide_header">Спрятать заголовок</string>
<string name="notifications">Уведомления</string>
<string name="silent">Без звука</string>
<string name="sound">Звук</string>

@ -255,9 +255,6 @@
<string name="sync_SPr_forget">Odhlásiť</string>
<string name="sync_SPr_forget_description">Vymazať všetky synchronizačné údaje</string>
<string name="sync_forget_confirm">Odhlásiť sa/vymazať synchronizačné údaje?</string>
<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="notifications">Oznámenia</string>
<string name="silent">Tichý</string>
<string name="sound">Zvuk</string>

@ -278,9 +278,6 @@
<string name="sync_SPr_forget">Logga ut</string>
<string name="sync_SPr_forget_description">Rensar alla synkroniseringsdata</string>
<string name="sync_forget_confirm">Logga ut / rensa synkroniseringsdata?</string>
<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="notifications">Påminnelser</string>
<string name="silent">Tyst</string>
<string name="sound">Ljud</string>

@ -282,9 +282,6 @@
<string name="sync_SPr_forget">Вийти</string>
<string name="sync_SPr_forget_description">Очищує всю синхронізовану інформацію</string>
<string name="sync_forget_confirm">Вийти/очистити синхронізовану інофрмацію?</string>
<string name="widget_hide_due_date">Приховати дати виконання</string>
<string name="widget_hide_checkboxes">Сховати галочки</string>
<string name="widget_hide_header">Сховати заголовок</string>
<string name="notifications">Сповіщення</string>
<string name="silent">Безшумно</string>
<string name="sound">Звук</string>

@ -23,4 +23,6 @@
<dimen name="elevation_toolbar">8dp</dimen>
<dimen name="elevation_task_list">6dp</dimen>
<dimen name="elevation_padding">0dp</dimen>
<dimen name="widget_padding">10dp</dimen>
</resources>

@ -747,9 +747,10 @@ File %1$s contained %2$s.\n\n
<!-- confirmation dialog for sync log out -->
<string name="sync_forget_confirm">Log out/clear synchronization data?</string>
<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_show_due_date">Show due dates</string>
<string name="widget_show_checkboxes">Show checkboxes</string>
<string name="widget_show_header">Show header</string>
<string name="widget_show_settings">Show settings</string>
<string name="notifications">Notifications</string>
<string name="silent">Silent</string>
<string name="sound">Sound</string>

Loading…
Cancel
Save