From 3b1879a776d6b40cf7c223e685a4ae5197ac54b7 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 19 Oct 2015 13:16:07 -0500 Subject: [PATCH] Add calendar selection activity and dialog --- src/main/AndroidManifest.xml | 4 + .../astrid/activity/TaskEditFragment.java | 17 +-- .../astrid/core/DefaultsPreferences.java | 113 +++++---------- .../todoroo/astrid/gcal/AndroidCalendar.java | 21 +++ .../todoroo/astrid/gcal/GCalControlSet.java | 131 +++++++++--------- .../com/todoroo/astrid/gcal/GCalHelper.java | 67 ++------- .../todoroo/astrid/service/TaskCreator.java | 8 +- .../activities/CalendarSelectionActivity.java | 44 ++++++ .../activities/CalendarSelectionDialog.java | 88 ++++++++++++ .../org/tasks/injection/ActivityModule.java | 5 +- .../tasks/injection/DialogFragmentModule.java | 4 +- .../org/tasks/preferences/Preferences.java | 9 ++ .../res/layout/control_set_gcal_display.xml | 42 ++++-- src/main/res/values-ar/strings.xml | 1 - src/main/res/values-bg-rBG/strings.xml | 4 - src/main/res/values-ca/strings.xml | 4 - src/main/res/values-cs/strings.xml | 4 - src/main/res/values-da/strings.xml | 3 - src/main/res/values-de/strings.xml | 4 - src/main/res/values-el/strings.xml | 4 - src/main/res/values-es/strings.xml | 4 - src/main/res/values-fa/strings.xml | 4 - src/main/res/values-fi/strings.xml | 3 - src/main/res/values-fr/strings.xml | 4 - src/main/res/values-hu/strings.xml | 3 - src/main/res/values-it/strings.xml | 4 - src/main/res/values-iw/strings.xml | 4 - src/main/res/values-ja/strings.xml | 4 - src/main/res/values-ko/strings.xml | 4 - src/main/res/values-nb/strings.xml | 3 - src/main/res/values-nl/strings.xml | 4 - src/main/res/values-pl/strings.xml | 4 - src/main/res/values-pt-rBR/strings.xml | 4 - src/main/res/values-pt/strings.xml | 4 - src/main/res/values-ru/strings.xml | 4 - src/main/res/values-sk/strings.xml | 4 - src/main/res/values-sl-rSI/strings.xml | 4 - src/main/res/values-sv/strings.xml | 4 - src/main/res/values-th/strings.xml | 1 - src/main/res/values-tr/strings.xml | 3 - src/main/res/values-uk/strings.xml | 4 - src/main/res/values-zh-rCN/strings.xml | 3 - src/main/res/values-zh-rTW/strings.xml | 3 - src/main/res/values/keys.xml | 9 -- src/main/res/values/strings-core.xml | 3 +- src/main/res/values/strings-gcal.xml | 13 +- src/main/res/xml/preferences_defaults.xml | 7 +- 47 files changed, 330 insertions(+), 362 deletions(-) create mode 100644 src/main/java/com/todoroo/astrid/gcal/AndroidCalendar.java create mode 100644 src/main/java/org/tasks/activities/CalendarSelectionActivity.java create mode 100644 src/main/java/org/tasks/activities/CalendarSelectionDialog.java diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index ada723af3..fc1f6ee25 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -414,6 +414,10 @@ + + diff --git a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java index 7b68afb11..edda4a87a 100755 --- a/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.java @@ -75,6 +75,7 @@ import com.todoroo.astrid.utility.Flags; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; +import org.tasks.activities.CalendarSelectionDialog; import org.tasks.activities.LocationPickerActivity; import org.tasks.activities.TimePickerActivity; import org.tasks.dialogs.DialogBuilder; @@ -150,7 +151,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { public static final int REQUEST_CODE_RECORD = 30; public static final int REQUEST_CODE_ATTACH_FILE = 40; - public static final int REQUEST_CODE_BEAST_MODE = 50; // --- result codes @@ -186,6 +186,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { private EditNoteActivity editNotes; private HideUntilControlSet hideUntilControls; private ReminderControlSet reminderControlSet; + private GCalControlSet gcalControl; @InjectView(R.id.title) EditText title; @InjectView(R.id.pager) ViewPager mPager; @@ -358,7 +359,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { RepeatControlSet repeatControls = new RepeatControlSet(preferences, getActivity(), dialogBuilder); controlSetMap.put(getString(R.string.TEA_ctrl_repeat_pref), repeatControls); - GCalControlSet gcalControl = new GCalControlSet(gcalHelper, getActivity()); + gcalControl = new GCalControlSet(gcalHelper, preferences, this); controlSetMap.put(getString(R.string.TEA_ctrl_gcal), gcalControl); // The deadline control set contains the repeat controls and the @@ -406,7 +407,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { controls.add(filesControlSet); controlSetMap.put(getString(R.string.TEA_ctrl_files_pref), filesControlSet); - loadEditPageOrder(false); + loadEditPageOrder(); if (!showEditComments) { commentsBar.setVisibility(View.GONE); @@ -419,11 +420,7 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { new TaskEditBackgroundLoader().start(); } - private void loadEditPageOrder(boolean removeViews) { - if (removeViews) { - basicControls.removeAllViews(); - } - + private void loadEditPageOrder() { ArrayList controlOrder = BeastModePreferences.constructOrderedControlList(preferences, getActivity()); String[] itemOrder = controlOrder.toArray(new String[controlOrder.size()]); @@ -935,10 +932,6 @@ ViewPager.OnPageChangeListener, EditNoteActivity.UpdatesChangedListener { createNewFileAttachment(recordedAudioPath, recordedAudioName, TaskAttachment.FILE_TYPE_AUDIO + "m4a"); //$NON-NLS-1$ } else if (requestCode == REQUEST_CODE_ATTACH_FILE && resultCode == Activity.RESULT_OK) { attachFile(data.getStringExtra(FileExplore.RESULT_FILE_SELECTED)); - } else if (requestCode == REQUEST_CODE_BEAST_MODE) { - loadEditPageOrder(true); - new TaskEditBackgroundLoader().start(); - return; } actFmCameraModule.activityResult(requestCode, resultCode, data, new CameraResultCallback() { diff --git a/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java b/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java index c11ce705f..605fd1996 100644 --- a/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java +++ b/src/main/java/com/todoroo/astrid/core/DefaultsPreferences.java @@ -5,22 +5,19 @@ */ package com.todoroo.astrid.core; -import android.content.res.Resources; +import android.content.Intent; import android.os.Bundle; -import android.preference.ListPreference; import android.preference.Preference; -import com.todoroo.andlib.utility.AndroidUtilities; +import com.todoroo.astrid.gcal.AndroidCalendar; import com.todoroo.astrid.gcal.GCalHelper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.tasks.R; +import org.tasks.activities.CalendarSelectionActivity; import org.tasks.injection.InjectingPreferenceActivity; import org.tasks.preferences.Preferences; -import java.util.ArrayList; -import java.util.Arrays; +import java.util.List; import javax.inject.Inject; @@ -32,10 +29,11 @@ import javax.inject.Inject; */ public class DefaultsPreferences extends InjectingPreferenceActivity { - private static final Logger log = LoggerFactory.getLogger(DefaultsPreferences.class); + private static final int REQUEST_CALENDAR_SELECTION = 10412; @Inject Preferences preferences; @Inject GCalHelper calendarHelper; + private Preference defaultCalendarPref; @Override public void onCreate(Bundle savedInstanceState) { @@ -43,85 +41,36 @@ public class DefaultsPreferences extends InjectingPreferenceActivity { addPreferencesFromResource(R.xml.preferences_defaults); - Preference defaultCalendarPref = findPreference(getString(R.string.gcal_p_default)); - try { - initCalendarsPreference((ListPreference) defaultCalendarPref); - } catch(Exception e) { - log.error(e.getMessage(), e); - } - } - - private void setCalendarSummary(Object value) { - ListPreference listPreference = (ListPreference) findPreference(getString(R.string.gcal_p_default)); - int index = AndroidUtilities.indexOf(listPreference.getEntryValues(), value); - String setting = listPreference.getEntries()[index].toString(); - listPreference.setSummary(setting); + defaultCalendarPref = findPreference(getString(R.string.gcal_p_default)); + defaultCalendarPref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + startActivityForResult(new Intent(DefaultsPreferences.this, CalendarSelectionActivity.class), REQUEST_CALENDAR_SELECTION); + return false; + } + }); + setCalendarSummary(preferences.getStringValue(R.string.gcal_p_default)); } - /** - * Appends all user-modifiable calendars to listPreference. - * - * @param listPreference - * preference to init - */ - private void initCalendarsPreference(ListPreference listPreference) { - Resources r = getResources(); - GCalHelper.CalendarResult calendars = calendarHelper.getCalendars(); - - // Fetch the current setting. Invalid calendar id will - // be changed to default value. - String currentSetting = preferences.getStringValue(R.string.gcal_p_default); - - int currentSettingIndex = -1; - - ArrayList entries = new ArrayList<>(); - entries.addAll(Arrays.asList(r.getStringArray(R.array.EPr_default_addtocalendar))); - entries.addAll(Arrays.asList(calendars.calendars)); - - ArrayList entryValues = new ArrayList<>(); - entryValues.addAll(Arrays.asList(r.getStringArray(R.array.EPr_default_addtocalendar_values))); - entryValues.addAll(Arrays.asList(calendars.calendarIds)); - - listPreference.setEntries(entries.toArray(new CharSequence[entries.size()])); - listPreference.setEntryValues(entryValues.toArray(new CharSequence[entryValues.size()])); - - listPreference.setValueIndex(0); - listPreference.setEnabled(true); - - if (calendars.calendarIds.length == 0 || calendars.calendars.length == 0) { - // Something went wrong when querying calendars - // Leave the preference at disabled. - return; - } - - // Iterate calendars one by one, and fill up the list preference - if (currentSetting != null) { - for (int i=0; i calendars = calendarHelper.getCalendars(); + for (AndroidCalendar calendar : calendars) { + if (calendar.getId().equals(calendarId)) { + defaultCalendarPref.setSummary(calendar.getName()); + return; } } + defaultCalendarPref.setSummary(getString(R.string.none)); + } - if(currentSettingIndex == -1 || currentSettingIndex > calendars.calendarIds.length+1) { - // Should not happen! - // Leave the preference at disabled. - log.debug("initCalendarsPreference: Unknown calendar."); - currentSettingIndex = 0; + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + if (requestCode == REQUEST_CALENDAR_SELECTION && resultCode == RESULT_OK) { + String calendarId = data.getStringExtra(CalendarSelectionActivity.EXTRA_CALENDAR_ID); + preferences.setString(R.string.gcal_p_default, calendarId); + setCalendarSummary(calendarId); + } else { + super.onActivityResult(requestCode, resultCode, data); } - - listPreference.setValueIndex(currentSettingIndex); - listPreference.setEnabled(true); - - listPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - setCalendarSummary(newValue); - return true; - } - }); - setCalendarSummary(listPreference.getValue()); } } diff --git a/src/main/java/com/todoroo/astrid/gcal/AndroidCalendar.java b/src/main/java/com/todoroo/astrid/gcal/AndroidCalendar.java new file mode 100644 index 000000000..09c8555cd --- /dev/null +++ b/src/main/java/com/todoroo/astrid/gcal/AndroidCalendar.java @@ -0,0 +1,21 @@ +package com.todoroo.astrid.gcal; + +public class AndroidCalendar { + private final String id; + private final String name; + + public static final AndroidCalendar NONE = new AndroidCalendar("-1", "NONE"); + + public AndroidCalendar(String id, String name) { + this.id = id; + this.name = name; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java b/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java index 3c781ca74..0118a4b3c 100644 --- a/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java +++ b/src/main/java/com/todoroo/astrid/gcal/GCalControlSet.java @@ -10,26 +10,24 @@ import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.net.Uri; -import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; -import android.widget.AdapterView; -import android.widget.AdapterView.OnItemSelectedListener; -import android.widget.ArrayAdapter; -import android.widget.Spinner; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import com.todoroo.astrid.activity.TaskEditFragment; import com.todoroo.astrid.data.Task; import com.todoroo.astrid.helper.TaskEditControlSetBase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tasks.R; - -import java.util.ArrayList; -import java.util.Collections; +import org.tasks.activities.CalendarSelectionDialog; +import org.tasks.preferences.Preferences; +import org.tasks.reminders.SnoozeDialog; /** * Control Set for managing repeats @@ -37,63 +35,59 @@ import java.util.Collections; * @author Tim Su * */ -public class GCalControlSet extends TaskEditControlSetBase { +public class GCalControlSet extends TaskEditControlSetBase implements CalendarSelectionDialog.CalendarSelectionHandler { private static final Logger log = LoggerFactory.getLogger(GCalControlSet.class); - private static final int title = R.string.gcal_TEA_addToCalendar_label; + private static final String FRAG_TAG_CALENDAR_SELECTION = "frag_tag_calendar_selection"; // --- instance variables private final GCalHelper gcal; + private Preferences preferences; + private final TaskEditFragment taskEditFragment; private Uri calendarUri = null; - private final GCalHelper.CalendarResult calendars; private boolean hasEvent = false; - private Spinner calendarSelector; private TextView calendar; + private ImageView cancelButton; + private String calendarId; + private String calendarName; - public GCalControlSet(GCalHelper gcal, final FragmentActivity activity) { - super(activity, R.layout.control_set_gcal_display); + public GCalControlSet(GCalHelper gcal, Preferences preferences, TaskEditFragment taskEditFragment) { + super(taskEditFragment.getActivity(), R.layout.control_set_gcal_display); this.gcal = gcal; - this.calendars = gcal.getCalendars(); + this.preferences = preferences; + this.taskEditFragment = taskEditFragment; } @Override protected void afterInflate() { - calendarSelector = (Spinner) getView().findViewById(R.id.calendars); - calendar = (TextView) getView().findViewById(R.id.calendar_display_which); + View view = getView(); + calendar = (TextView) view.findViewById(R.id.calendar_display_which); + cancelButton = (ImageView) view.findViewById(R.id.clear_calendar); calendar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - if (!hasEvent) { - calendarSelector.performClick(); - } else { + if (hasEvent) { viewCalendarEvent(); + } else { + FragmentManager fragmentManager = taskEditFragment.getFragmentManager(); + CalendarSelectionDialog fragmentByTag = (CalendarSelectionDialog) fragmentManager.findFragmentByTag(FRAG_TAG_CALENDAR_SELECTION); + if (fragmentByTag == null) { + fragmentByTag = new CalendarSelectionDialog(); + fragmentByTag.show(fragmentManager, FRAG_TAG_CALENDAR_SELECTION); + } + fragmentByTag.setCalendarSelectionHandler(GCalControlSet.this); } } }); - ArrayList items = new ArrayList<>(); - Collections.addAll(items, calendars.calendars); - items.add(0, activity.getString(R.string.gcal_TEA_nocal)); - - ArrayAdapter adapter = new ArrayAdapter<>(activity, - android.R.layout.simple_spinner_item, items.toArray(new String[items.size()])); - - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - calendarSelector.setPromptId(title); - calendarSelector.setAdapter(adapter); - resetCalendarSelector(); - calendarSelector.setOnItemSelectedListener(new OnItemSelectedListener() { + cancelButton.setOnClickListener(new OnClickListener() { @Override - public void onItemSelected(AdapterView arg0, View arg1, int arg2, long arg3) { + public void onClick(View v) { + clearEvent(); refreshDisplayView(); } - - @Override - public void onNothingSelected(AdapterView arg0) { - //nothing - } }); } @@ -111,28 +105,28 @@ public class GCalControlSet extends TaskEditControlSetBase { boolean deleted = cursor.getCount() == 0; if(deleted) { - calendarUri = null; - return; + clearEvent(); + hasEvent = false; + } else { + hasEvent = true; } } finally { cursor.close(); } - - hasEvent = true; } catch (Exception e) { log.error("unable-to-parse-calendar: " + model.getCalendarURI(), e); } } else { hasEvent = false; - calendarUri = null; + clearEvent(); } refreshDisplayView(); } - public void resetCalendarSelector() { - if (calendarSelector != null) { - calendarSelector.setSelection(calendars.defaultIndex + 1); // plus 1 for the no selection item - } + private void clearEvent() { + calendarId = null; + calendarUri = null; + calendarName = null; } @Override @@ -141,21 +135,17 @@ public class GCalControlSet extends TaskEditControlSetBase { return; } - if ((gcal.isDefaultCalendarSet() || calendarSelector.getSelectedItemPosition() != 0) && - calendarUri == null) { - + if ((preferences.isDefaultCalendarSet() || calendarId != null) && calendarUri == null) { try{ ContentResolver cr = activity.getContentResolver(); ContentValues values = new ContentValues(); - String calendarId = calendars.calendarIds[calendarSelector.getSelectedItemPosition() - 1]; values.put("calendar_id", calendarId); - calendarUri = gcal.createTaskEvent(task, cr, values); if(calendarUri != null) { task.setCalendarUri(calendarUri.toString()); - if (calendarSelector.getSelectedItemPosition() != 0 && !hasEvent) { + if (!hasEvent) { // pop up the new event Intent intent = new Intent(Intent.ACTION_VIEW, calendarUri); intent.putExtra("beginTime", values.getAsLong("dtstart")); @@ -197,7 +187,7 @@ public class GCalControlSet extends TaskEditControlSetBase { } ContentResolver cr = activity.getContentResolver(); - Intent intent = new Intent(Intent.ACTION_EDIT, calendarUri); + Intent intent = new Intent(Intent.ACTION_VIEW, calendarUri); Cursor cursor = cr.query(calendarUri, new String[] { "dtstart", "dtend" }, null, null, null); try { @@ -226,21 +216,22 @@ public class GCalControlSet extends TaskEditControlSetBase { if (initialized) { if (hasEvent) { calendar.setText(R.string.gcal_TEA_showCalendar_label); - } else if (calendarSelector.getSelectedItemPosition() != 0) { - calendar.setText((String)calendarSelector.getSelectedItem()); + cancelButton.setVisibility(View.GONE); + } else if (calendarName != null) { + calendar.setText(calendarName); + cancelButton.setVisibility(View.VISIBLE); } else { calendar.setTextColor(unsetColor); - calendar.setText(R.string.gcal_TEA_none_selected); + calendar.setText(R.string.gcal_TEA_addToCalendar_label); + cancelButton.setVisibility(View.GONE); } } else { - int index = calendars.defaultIndex; - if (!TextUtils.isEmpty(model.getCalendarURI())) { - calendar.setText(R.string.gcal_TEA_showCalendar_label); - } else if (index >= 0 && index < calendars.calendars.length) { - calendar.setText(calendars.calendars[index]); - } else { + cancelButton.setVisibility(View.GONE); + if (TextUtils.isEmpty(model.getCalendarURI())) { calendar.setTextColor(unsetColor); - calendar.setText(R.string.gcal_TEA_none_selected); + calendar.setText(R.string.gcal_TEA_addToCalendar_label); + } else { + calendar.setText(R.string.gcal_TEA_showCalendar_label); } } } @@ -249,4 +240,16 @@ public class GCalControlSet extends TaskEditControlSetBase { public int getIcon() { return R.drawable.ic_event_24dp; } + + @Override + public void selectedCalendar(AndroidCalendar androidCalendar) { + this.calendarId = androidCalendar.getId(); + this.calendarName = androidCalendar.getName(); + refreshDisplayView(); + } + + @Override + public void dismiss() { + + } } diff --git a/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java b/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java index edc2730f5..01a3ad4ca 100644 --- a/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java +++ b/src/main/java/com/todoroo/astrid/gcal/GCalHelper.java @@ -8,7 +8,6 @@ package com.todoroo.astrid.gcal; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Context; -import android.content.res.Resources; import android.database.Cursor; import android.database.CursorIndexOutOfBoundsException; import android.net.Uri; @@ -25,6 +24,8 @@ import org.tasks.R; import org.tasks.injection.ForApplication; import org.tasks.preferences.Preferences; +import java.util.ArrayList; +import java.util.List; import java.util.TimeZone; import javax.inject.Inject; @@ -75,16 +76,8 @@ public class GCalHelper { createTaskEventIfEnabled(t, true); } - public boolean isDefaultCalendarSet() { - return getDefaultCalendar() != null && !getDefaultCalendar().equals("-1") && !getDefaultCalendar().equals("0"); - } - - private String getDefaultCalendar() { - return preferences.getStringValue(R.string.gcal_p_default); - } - private void createTaskEventIfEnabled(Task t, boolean deleteEventIfExists) { - if (isDefaultCalendarSet()) { + if (preferences.isDefaultCalendarSet()) { ContentResolver cr = context.getContentResolver(); Uri calendarUri = createTaskEvent(t, cr, new ContentValues(), deleteEventIfExists); if (calendarUri != null) { @@ -116,7 +109,7 @@ public class GCalHelper { boolean valuesContainCalendarId = (values.containsKey(CALENDAR_ID_COLUMN) && !TextUtils.isEmpty(values.getAsString(CALENDAR_ID_COLUMN))); if (!valuesContainCalendarId) { - String calendarId = getDefaultCalendar(); + String calendarId = preferences.getDefaultCalendar(); if (!TextUtils.isEmpty(calendarId)) { values.put("calendar_id", calendarId); } @@ -157,7 +150,7 @@ public class GCalHelper { } private static String getCalendarId(Uri uri, ContentResolver cr) { - Cursor calendar = cr.query(uri, new String[] { CALENDAR_ID_COLUMN }, null, null, null); + Cursor calendar = cr.query(uri, new String[]{CALENDAR_ID_COLUMN}, null, null, null); try { calendar.moveToFirst(); return calendar.getString(0); @@ -253,71 +246,31 @@ public class GCalHelper { } } - public static class CalendarResult { - /** calendar names */ - public String[] calendars; - - /** calendar ids. null entry -> use default */ - public String[] calendarIds; - - /** default selection index */ - public int defaultIndex = -1; - } - /** * Appends all user-modifiable calendars to listPreference. */ - public CalendarResult getCalendars() { + public List getCalendars() { ContentResolver cr = context.getContentResolver(); - Resources r = context.getResources(); Cursor c = cr.query(getCalendarContentUri(Calendars.CALENDAR_CONTENT_CALENDARS), Calendars.CALENDARS_PROJECTION, Calendars.CALENDARS_WHERE, null, Calendars.CALENDARS_SORT); try { - // Fetch the current setting. Invalid calendar id will - // be changed to default value. - String defaultSetting = getDefaultCalendar(); - - CalendarResult result = new CalendarResult(); + List calendars = new ArrayList<>(); if (c == null || c.getCount() == 0) { // Something went wrong when querying calendars. Only offer them // the system default choice - result.calendars = new String[] { - r.getString(R.string.gcal_GCP_default) }; - result.calendarIds = new String[] { null }; - result.defaultIndex = 0; - return result; + return calendars; } - int calendarCount = c.getCount(); - - result.calendars = new String[calendarCount]; - result.calendarIds = new String[calendarCount]; - - // Iterate calendars one by one, and fill up the list preference - int row = 0; int idColumn = c.getColumnIndex(Calendars.ID_COLUMN_NAME); int nameColumn = c.getColumnIndex(Calendars.CALENDARS_DISPLAY_COL); while (c.moveToNext()) { String id = c.getString(idColumn); String name = c.getString(nameColumn); - result.calendars[row] = name; - result.calendarIds[row] = id; - - // We found currently selected calendar - if (defaultSetting != null && defaultSetting.equals(id)) { - result.defaultIndex = row; - } - - row++; - } - - if (result.defaultIndex >= calendarCount) { - result.defaultIndex = 0; + calendars.add(new AndroidCalendar(id, name)); } - - return result; + return calendars; } finally { if(c != null) { c.close(); diff --git a/src/main/java/com/todoroo/astrid/service/TaskCreator.java b/src/main/java/com/todoroo/astrid/service/TaskCreator.java index 11add37a6..35d52be2a 100644 --- a/src/main/java/com/todoroo/astrid/service/TaskCreator.java +++ b/src/main/java/com/todoroo/astrid/service/TaskCreator.java @@ -10,6 +10,7 @@ import com.todoroo.astrid.data.Task; import com.todoroo.astrid.gcal.GCalHelper; import org.tasks.injection.ForApplication; +import org.tasks.preferences.Preferences; import javax.inject.Inject; @@ -18,12 +19,15 @@ public class TaskCreator { private final Context context; private final TaskService taskService; private final GCalHelper gcalHelper; + private Preferences preferences; @Inject - public TaskCreator(@ForApplication Context context, TaskService taskService, GCalHelper gcalHelper) { + public TaskCreator(@ForApplication Context context, TaskService taskService, + GCalHelper gcalHelper, Preferences preferences) { this.context = context; this.taskService = taskService; this.gcalHelper = gcalHelper; + this.preferences = preferences; } public Task basicQuickAddTask(String title) { @@ -40,7 +44,7 @@ public class TaskCreator { } public void addToCalendar(Task task, String title) { - boolean gcalCreateEventEnabled = gcalHelper.isDefaultCalendarSet() && task.hasDueDate(); //$NON-NLS-1$ + boolean gcalCreateEventEnabled = preferences.isDefaultCalendarSet() && task.hasDueDate(); //$NON-NLS-1$ if (!TextUtils.isEmpty(title) && gcalCreateEventEnabled && TextUtils.isEmpty(task.getCalendarURI())) { Uri calendarUri = gcalHelper.createTaskEvent(task, context.getContentResolver(), new ContentValues()); diff --git a/src/main/java/org/tasks/activities/CalendarSelectionActivity.java b/src/main/java/org/tasks/activities/CalendarSelectionActivity.java new file mode 100644 index 000000000..b0b103388 --- /dev/null +++ b/src/main/java/org/tasks/activities/CalendarSelectionActivity.java @@ -0,0 +1,44 @@ +package org.tasks.activities; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.app.FragmentManager; + +import com.todoroo.astrid.gcal.AndroidCalendar; + +import org.tasks.injection.InjectingAppCompatActivity; + +public class CalendarSelectionActivity extends InjectingAppCompatActivity implements CalendarSelectionDialog.CalendarSelectionHandler { + + private static final String FRAG_TAG_CALENDAR_PREFERENCE_SELECTION = "frag_tag_calendar_preference_selection"; + + public static final String EXTRA_CALENDAR_ID = "extra_calendar_id"; + public static final String EXTRA_CALENDAR_NAME = "extra_calendar_name"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + FragmentManager supportFragmentManager = getSupportFragmentManager(); + CalendarSelectionDialog fragmentByTag = (CalendarSelectionDialog) supportFragmentManager.findFragmentByTag(FRAG_TAG_CALENDAR_PREFERENCE_SELECTION); + if (fragmentByTag == null) { + fragmentByTag = new CalendarSelectionDialog(); + fragmentByTag.enableNone(); + fragmentByTag.show(supportFragmentManager, FRAG_TAG_CALENDAR_PREFERENCE_SELECTION); + } + fragmentByTag.setCalendarSelectionHandler(this); + } + + @Override + public void selectedCalendar(final AndroidCalendar androidCalendar) { + setResult(RESULT_OK, new Intent() {{ + putExtra(EXTRA_CALENDAR_ID, androidCalendar.getId()); + putExtra(EXTRA_CALENDAR_NAME, androidCalendar.getName()); + }}); + } + + @Override + public void dismiss() { + finish(); + } +} diff --git a/src/main/java/org/tasks/activities/CalendarSelectionDialog.java b/src/main/java/org/tasks/activities/CalendarSelectionDialog.java new file mode 100644 index 000000000..dd3a6f468 --- /dev/null +++ b/src/main/java/org/tasks/activities/CalendarSelectionDialog.java @@ -0,0 +1,88 @@ +package org.tasks.activities; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.v7.app.AlertDialog; +import android.widget.ArrayAdapter; + +import com.google.common.base.Function; +import com.todoroo.astrid.gcal.AndroidCalendar; +import com.todoroo.astrid.gcal.GCalHelper; + +import org.tasks.R; +import org.tasks.dialogs.DialogBuilder; +import org.tasks.injection.InjectingDialogFragment; + +import java.util.List; + +import javax.annotation.Nullable; +import javax.inject.Inject; + +import static com.google.common.collect.Lists.transform; + +public class CalendarSelectionDialog extends InjectingDialogFragment { + + public void enableNone() { + enableNone = true; + } + + public interface CalendarSelectionHandler { + void selectedCalendar(AndroidCalendar calendar); + void dismiss(); + } + + @Inject DialogBuilder dialogBuilder; + @Inject GCalHelper gCalHelper; + private CalendarSelectionHandler handler; + private boolean enableNone; + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final List calendars = gCalHelper.getCalendars(); + List calendarNames = transform(calendars, new Function() { + @Nullable + @Override + public String apply(AndroidCalendar androidCalendar) { + return androidCalendar.getName(); + } + }); + + ArrayAdapter adapter = new ArrayAdapter<>(getActivity(), + android.R.layout.simple_list_item_1, calendarNames); + + AlertDialog.Builder builder = dialogBuilder.newDialog() + .setTitle(R.string.choose_calendar) + .setSingleChoiceItems(adapter, 0, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, final int which) { + handler.selectedCalendar(calendars.get(which)); + dialog.dismiss(); + } + }); + if (enableNone) { + builder.setNeutralButton(R.string.none, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + handler.selectedCalendar(AndroidCalendar.NONE); + dialog.dismiss(); + } + }); + } + + return builder.show(); + } + + @Override + public void onDismiss(DialogInterface dialog) { + super.onDismiss(dialog); + + handler.dismiss(); + } + + public void setCalendarSelectionHandler(CalendarSelectionHandler handler) { + this.handler = handler; + } +} diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index 19cc994cc..10050f229 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -23,6 +23,8 @@ import com.todoroo.astrid.reminders.ReminderPreferences; import com.todoroo.astrid.service.UpgradeService; import com.todoroo.astrid.widget.WidgetConfigActivity; +import org.tasks.activities.CalendarSelectionActivity; +import org.tasks.activities.CalendarSelectionDialog; import org.tasks.activities.ClearAllDataActivity; import org.tasks.activities.ClearGtaskDataActivity; import org.tasks.activities.DeleteAllCalendarEventsActivity; @@ -94,7 +96,8 @@ import dagger.Provides; FileExplore.class, DonationActivity.class, ActFmGoogleAuthActivity.class, - UpgradeService.UpgradeActivity.class + UpgradeService.UpgradeActivity.class, + CalendarSelectionActivity.class }) public class ActivityModule { diff --git a/src/main/java/org/tasks/injection/DialogFragmentModule.java b/src/main/java/org/tasks/injection/DialogFragmentModule.java index d6ba4933e..46bde1759 100644 --- a/src/main/java/org/tasks/injection/DialogFragmentModule.java +++ b/src/main/java/org/tasks/injection/DialogFragmentModule.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; +import org.tasks.activities.CalendarSelectionDialog; import org.tasks.dialogs.LocationPickerDialog; import org.tasks.reminders.MissedCallDialog; import org.tasks.reminders.NotificationDialog; @@ -17,7 +18,8 @@ import dagger.Provides; LocationPickerDialog.class, NotificationDialog.class, SnoozeDialog.class, - MissedCallDialog.class + MissedCallDialog.class, + CalendarSelectionDialog.class }, library = true) public class DialogFragmentModule { diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index 0932ee1e1..f8b96fe4b 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -85,6 +85,15 @@ public class Preferences { return getBoolean(WidgetConfigActivity.PREF_DARK_THEME + widgetId, legacySetting); } + public boolean isDefaultCalendarSet() { + String defaultCalendar = getDefaultCalendar(); + return defaultCalendar != null && !defaultCalendar.equals("-1") && !defaultCalendar.equals("0"); + } + + public String getDefaultCalendar() { + return getStringValue(R.string.gcal_p_default); + } + public boolean geofencesEnabled() { return deviceInfo.supportsLocationServices() && getBoolean(R.string.p_geofence_reminders_enabled, true); } diff --git a/src/main/res/layout/control_set_gcal_display.xml b/src/main/res/layout/control_set_gcal_display.xml index 03f967d32..9179bb9e1 100644 --- a/src/main/res/layout/control_set_gcal_display.xml +++ b/src/main/res/layout/control_set_gcal_display.xml @@ -8,18 +8,38 @@ android:layout_height="wrap_content" android:orientation="horizontal"> - + android:orientation="horizontal" + android:layout_weight="100"> - + + + + + diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml index b716d5457..0402f2384 100644 --- a/src/main/res/values-ar/strings.xml +++ b/src/main/res/values-ar/strings.xml @@ -133,7 +133,6 @@ الشهر القادم العنوان يحتوي على.. - لا تضيف حذف المهام المنتهية... انتهاء الحذف لا يوجد حساب قوقل للتزامن مع. diff --git a/src/main/res/values-bg-rBG/strings.xml b/src/main/res/values-bg-rBG/strings.xml index 45572d6fb..7fda15038 100644 --- a/src/main/res/values-bg-rBG/strings.xml +++ b/src/main/res/values-bg-rBG/strings.xml @@ -124,7 +124,6 @@ Списъкът създаден Действия: %s Настройки - деактивирано Изглед Филтри за показване Редактиране на опциите екрана @@ -223,10 +222,7 @@ Грешка при добавяне на задачата към каледнара! Добави към календара Добави събитие към календара - Не добавяй - Към календара? %s (завършено) - Календар по подразбиране В списък: ? В списък GTasks... Изчисти завършени задачи... diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml index 47f97bbe2..c236a0ac4 100644 --- a/src/main/res/values-ca/strings.xml +++ b/src/main/res/values-ca/strings.xml @@ -84,7 +84,6 @@ Retorna la trucada a en/na %1$s a %2$s Retorna la trucada a %s Tasks: Paràmetres - desactivat Aparença Restableix els valors predeterminats Mostra el títol sencer de la tasca @@ -131,10 +130,7 @@ Error afegint la tasca al calendari! Afegeix al calendari Obrir Event del Calendari - No afegir - Al calenari? %s (completada) - Calendari per defecte S\'estan netejant les tasques completades... Neteja les tasques completades S\'està autenticant... diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 6878aeeb4..a89faef86 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -113,7 +113,6 @@ Ne, děkuji. Seznam vytvořen! Nastavení - deaktivován Vzhled Filtry pro zobrazení Možnosti úprav zobrazení @@ -200,10 +199,7 @@ Chyba při přidávání úkolu do kalendáře! Vytvořit událost kalendáře Otevřít událost v kalendáři - Nepřidávat - Přidat do kal. %s (dokončeno) - Výchozí kalendář V seznamu: ? V seznamu Google úkolů Mažu hotové úkoly... diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml index d287e6c17..3c711170a 100644 --- a/src/main/res/values-da/strings.xml +++ b/src/main/res/values-da/strings.xml @@ -113,10 +113,7 @@ Fejl ved tilføjelse af opgave til kalender! Tilføj til kalender Åbn kalender-begivenhed - Tilføj ikke - Til kalender? %s (fuldført) - Standardkalender Google Tasks (beta!) Du har $NUM der matcher: $FILTER diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 5fef4adc6..3dd150305 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -119,7 +119,6 @@ Liste erstellt Einzelaufgaben: %s Tasks: Einstellungen - deaktiviert Erscheinungsbild Angezeigte Filter Bildschirmeinstellungen bearbeiten @@ -211,10 +210,7 @@ Fehler beim Hinzufügen der Aufgabe zum Kalender! In Kalender eintragen Öffne Kalendereintrag - Nicht eintragen - In den Kalender? %s (abgeschlossen) - Standardkalender In der Liste: ? In GTasks-Liste … Erledigte Aufgaben werden entfernt … diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index c9c16a5a2..f5711053d 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -112,7 +112,6 @@ Λίστα δημιουργήθηκε! Αντικείμενα ενεργειών: %s Ρυθμίσεις - απενεργοποιημένο Εμφάνιση Φίλτρα για εμφάνιση Επεξεργασία επιλογών εμφάνισης @@ -202,10 +201,7 @@ Σφάλμα πρόσθεσης καθήκοντος στο ημερολόγιο! Προσθήκη στο ημερολόγιο Άνοιγμα event ημερολογίου - Μήν προσθέσετε - Προς ημερολόγιο? %s (έχει ολοκληρωθεί) - Προεπιλεγμένο ημερολόγιο Στην λίστα: ; Στην λίστα του GTasks... Καθαρισμός ολοκληρωμένων εργασιών... diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 9c4c9a78d..07b3ce60f 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -120,7 +120,6 @@ Lista creada Acciones: %s Tasks: Preferencias - desactivada Apariencia Filtros a mostrar Editar opciones de pantalla @@ -212,10 +211,7 @@ ¡Ocurrió un error al agregar la tarea al calendario! Agregar al calendario Abrir evento del calendario - No agregar - ¿Al calendario? %s (completado) - Calendario predeterminado En la Lista: ? en la Lista GTasks... Limpiando tareas completadas... diff --git a/src/main/res/values-fa/strings.xml b/src/main/res/values-fa/strings.xml index bb34051cb..8ef30a6ab 100644 --- a/src/main/res/values-fa/strings.xml +++ b/src/main/res/values-fa/strings.xml @@ -87,7 +87,6 @@ خیر ممنون لیست ساخته شد! تنظیمات - غیر فعال شده ظاهر فیلترها برای نمایش ویرایش تنظیمات صفحه @@ -157,9 +156,6 @@ خطا در اضافه کردن وظیفه به تقویم اضاقه به تقویم بازکردن رویداد تقویم - اضافه نکن - به تقویم؟ - تقویم پیش فرض در حال حذف وظایف تکمیل شده حذف انجام شد اکانت گوگلی برای همگام سازی موجود نیست diff --git a/src/main/res/values-fi/strings.xml b/src/main/res/values-fi/strings.xml index 2e3508e11..156a06471 100644 --- a/src/main/res/values-fi/strings.xml +++ b/src/main/res/values-fi/strings.xml @@ -46,10 +46,7 @@ Virhe lisättäessä tapahtumaa kalenteriin! Lisää kalenteri Avaa tapahtumakalenteri - Älä lisää - Kalenteriin? %s (valmistunut) - Oletus kalenteri Listalla: ? Gtask lista... Siivoa valmiit tehtävät... diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index e57acbf01..04f175590 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -120,7 +120,6 @@ Liste créée ! Choix d\'actions: %s Tasks : Paramètres - désactivé Apparence Filtres à afficher Edition des options d\'affichage @@ -214,10 +213,7 @@ Erreur d\'ajout de tâche à l\'agenda ! Créer un évènement d\'agenda Ouvrir l\'événement de l\'agenda - Ne pas ajouter - Ajouter au calendrier? %s (complété) - Agenda par défaut Dans la liste : ? Dans la liste GTasks... Suppression des tâches terminés diff --git a/src/main/res/values-hu/strings.xml b/src/main/res/values-hu/strings.xml index 8ed852ca0..b7299d68f 100644 --- a/src/main/res/values-hu/strings.xml +++ b/src/main/res/values-hu/strings.xml @@ -84,10 +84,7 @@ Nem sikerült a feladat hozzáadása a naptárhoz! Hozzáadás a naptárhoz Naptáresemény megnyitása - Ne legyen hozzáadva - Naptárhoz? %s (befejezve) - Alapértelmezett naptár Befejezett feladatok törlése... Törlés befejezve Nincs elérhető Google fiók a szinkronizáláshoz. diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 802afb500..7c386696d 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -121,7 +121,6 @@ Lista creata! Azioni: %s Tasks: Preferenze - disattivato Aspetto Filtri da visualizzare Modifica opzioni schermo @@ -214,10 +213,7 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat Errore durante l\'aggiunta dell\'attività al calendario! Aggiungi al Calendario Apri Calendario Eventi - Non aggiungere - Sul calendario? %s (completato) - Calendario Predefinito Nella lista: ? Nella lista GTasks... Pulizia task completi... diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml index 8813c3009..e713afe73 100644 --- a/src/main/res/values-iw/strings.xml +++ b/src/main/res/values-iw/strings.xml @@ -112,7 +112,6 @@ רשימה נוצרה! פריטי פעולה: %s הגדרות אסטריד - מופסק חזות אילו מַסְנְנִים להציג עריכת אפשרויות מסך @@ -203,10 +202,7 @@ שגיאה בהוספת המשימה ליומן! הוסף ליומן פתח אירוע ביומן - אל תוסיף - ליומן? %s (בוצעה) - ברירת מחדל ליומן ברשימה: ? ברשימה של ״משימות גוגל״ מְסִירָה משימות שבוצעו... diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 06daefcc6..e3d3b5874 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -122,7 +122,6 @@ リストが作成されました! アクションアイテム: %s Tasks: 設定 - アクティブにしない 外観 表示のフィルター 編集画面オプション @@ -221,10 +220,7 @@ カレンダーへの登録に失敗しました カレンダーに登録 カレンダーのイベントを開く - 追加しないで - カレンダーに? %s(完了) - 標準のカレンダー リストにありますか ? GTasks リストに... 完了したタスクをクリーニング中... diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml index a6933e375..7ccdfc66c 100644 --- a/src/main/res/values-ko/strings.xml +++ b/src/main/res/values-ko/strings.xml @@ -119,7 +119,6 @@ 목록을 만들었습니다! 활동 아이템: %s 설정 - 비활성화됨 보기 설정 표시할 필터 화면 설정 편집하기 @@ -214,10 +213,7 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다. 달력에 일정 추가 실패! 달력에 일정 추가하기 달력 이벤트 열기 - 추가하지 않기 - 달력에? %s (완료) - 기본 달력 목록에: ? GTasks 목록에... 완료한 일정을 삭제하는 중... diff --git a/src/main/res/values-nb/strings.xml b/src/main/res/values-nb/strings.xml index 0888399aa..c3cc51d91 100644 --- a/src/main/res/values-nb/strings.xml +++ b/src/main/res/values-nb/strings.xml @@ -62,7 +62,6 @@ Flere alternativer Nei takk Tasks: Innstillinger - deaktivert Utseende Laster ... Velg oppgaver å se på @@ -108,9 +107,7 @@ Klarte ikke å legge oppgave til kalender! Legg til i kalender Åpne kalenderhendelse - Ikke legg til %s (fullført) - Standardkalender I liste: ? Du har $NUM som matcher: $FILTER Velg en fil diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index 23187047f..01895542b 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -122,7 +122,6 @@ Lijst gemaakt! Actie-items: %s Tasks: Instellingen - uitgeschakeld Uiterlijk Te tonen filters Scherm opties bewerken @@ -218,10 +217,7 @@ Fout bij toevoegen taak aan agenda! Toevoegen aan Agenda Gebeurtenis openen - Niet toevoegen - Naar agenda? %s (voltooid) - Standaard agenda In lijst: ? In GTasks lijst... Verwijderen voltooide taken... diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 9fb11860d..46f65ae56 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -113,7 +113,6 @@ Lista utworzona! Wydarzenia aktywne: %s Tasks: Właściwości - niekatywny Wygląd Pokazywane filtry Edytuj ustawienia ekranu @@ -206,10 +205,7 @@ i odzyskanie zadań z kopi zapasowej (Settings->Sync and backup->Backup-&g Błąd podczas dodawania zadania do kalendarza! Dodaj do kalendarza Otwórz zdarzenie kalendarza - Nie dodawaj - Do kalendarza? %s (ukończono) - Domyślny kalendarz Na liście: ? Na liście GTasks... Czyszczenie zakończonych zadań... diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index e55dbc58e..02893af67 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -112,7 +112,6 @@ Lista criada! Itens de ação: %s Tasks: Configurações - desativado Aparência Filtros a mostrar Editar opções da tela @@ -202,10 +201,7 @@ Erro ao inserir a tarefa no calendário! Inserir no calendário Abrir evento no calendário - Não adicionar - Para o calendário? %s (concluído) - Calendário padrão Na lista: ? No Google Tasks... Limpando tarefas concluídas... diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index 47626e482..f6243a206 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -123,7 +123,6 @@ Lista criada! Itens de ação: %s Definições - desativada Aspeto Filtros a mostrar Opções do ecrã de edição @@ -222,10 +221,7 @@ das tarefas através de um backup em Definições->Sincronização e backup-& Erro ao adicionar tarefa ao calendário! Adicionar ao calendário Abrir evento no calendário - Não adicionar - Ao calendário? %s (terminada) - Calendário predefinido Na lista: ? Na lista GTasks Removendo tarefas terminadas diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index 56620679c..d8443ab3e 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -122,7 +122,6 @@ Список создан! Пункты события: %s Tasks: Настройки - выключен Интерфейс Показать фильтры Редактировать настройки экрана @@ -221,10 +220,7 @@ Ошибка при добавлении задачи в календарь! Добавить в календарь Открыть событие календаря - Не добавлять - Добавить в календарь %s (выполнено) - Календарь по умолчанию В Списке: ? В GTask Список... Очистка выполненных задач... diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml index 3ba2ead7c..062d2b9a5 100644 --- a/src/main/res/values-sk/strings.xml +++ b/src/main/res/values-sk/strings.xml @@ -121,7 +121,6 @@ Zoznam vytvorený! Položky akcie: %s Nastavenia - deaktivovaný Vzhľad Filtre pre zobrazenie Možnosti úprav zobrazenia @@ -214,10 +213,7 @@ Chyba pridania úlohy do kalendára! Pridať do kalendára Otvoriť udalosť kalendára - Nepridávať - Do kalendára? %s (dokončené) - Predvolený kalendár V zozname: ? V GTasks zozname... Zbaviť sa dokončených úloh diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml index ef427e44f..959ef4a25 100644 --- a/src/main/res/values-sl-rSI/strings.xml +++ b/src/main/res/values-sl-rSI/strings.xml @@ -116,7 +116,6 @@ Seznam ustvarjen! Število izvedbenih opravil: %s Nastavitve - deaktivirano Izgled Filtri za prikaz Uredi možnosti zaslona @@ -206,10 +205,7 @@ Napaka pri dodajanju opravila! Dodaj v koledar Odpri dogodek v koledarju - Ne dodaj - Na koledar? %s (končani) - Privzeti koledar V seznamu: ? Na GNaloge seznamu... Brišem dokončane opravke... diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml index b65bc47b6..5e1176537 100644 --- a/src/main/res/values-sv/strings.xml +++ b/src/main/res/values-sv/strings.xml @@ -113,7 +113,6 @@ Listan skapades! Saker att göra: %s Inställningar - inaktiverad Utseende Filter att visa Ändra skärminställningar @@ -200,10 +199,7 @@ och återställer dina aktuella uppgifter från en backup Misslyckades med att lägga uppgift till kalender! Skapa kalenderhändelse Öppna kalenderhändelse - Lägg inte till - Till kalender %s (avslutad) - Standardkalender I listan: ? I lista på Google Uppgifter... Rensar bort färdiga uppgifter... diff --git a/src/main/res/values-th/strings.xml b/src/main/res/values-th/strings.xml index 8d2625d82..31b3dddfe 100644 --- a/src/main/res/values-th/strings.xml +++ b/src/main/res/values-th/strings.xml @@ -69,7 +69,6 @@ ชื่อที่มีคำว่า: ? เปิดเหตุการณ์ปฏิทิน %s (เสร็จสิ้นแล้ว) - ปฏิธินตั้งต้น เสร็จเรียบร้อยแล้ว! หลับ.. การเกิดซ้ำ diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml index 968010a70..f7389074a 100644 --- a/src/main/res/values-tr/strings.xml +++ b/src/main/res/values-tr/strings.xml @@ -101,7 +101,6 @@ Hayır teşekkürler Liste oluşturuldu! Tasks: Ayarlar - devre dışı Görünüm Görev Düzenleme Ekranı yerleşimini özelleştir Varsayılanlara sıfırla @@ -181,9 +180,7 @@ Takvime görev eklenmesinde hata! Takvime Ekle Takvim Olayı Aç - Ekleme %s (tamamlandı) - Öntanımlı Takvim Liste içinde: ? Gtasks Listesi içinde... Tamamlanan görevler temizleniyor... diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index a99604218..7b1a77ec3 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -116,7 +116,6 @@ Список створений! Список дій: %s Налаштування - деактивовані Інтерфейс Показати фільтри Редагувати налаштування екрану @@ -211,10 +210,7 @@ Помилка при додаванні завдання в календар! Додати до календаря Відкрити календарну подію - Не додавати - До календаря? %s (завершено) - Календар по замовчуванню В списку: ? В GTasks списку... Очищення виконаних завдань diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 8924d0f95..c0d584c4c 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -84,7 +84,6 @@ 创建列表 也许以后 清单小助理:设置 - 禁用 外观 自定义设定菜单屏幕 恢复默认值 @@ -161,9 +160,7 @@ 添加任务到日历时失败! 建立日程表事件 打开日程表事件 - 不要添加 %s (已完成) - 默认日程表 列表内容: ? 在Google任务列表中... 正在清除已完成任务…… diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index fd030cff7..0bb26f579 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -110,7 +110,6 @@ 列表建立了! 行動事項:%s Tasks: 偏好 - 禁用 外觀 編輯畫面選項 自定義設定菜單屏幕 @@ -191,9 +190,7 @@ 工作加入行事曆錯誤 建立行事曆事項 打開行事曆事項 - 事件開啟錯誤! %s (已完成) - 預設行事曆 列表內容: ? 在Google任務工作列表中... 正在清除已完成任務工作…… diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml index 86ddf3cda..2ebfe9270 100644 --- a/src/main/res/values/keys.xml +++ b/src/main/res/values/keys.xml @@ -171,11 +171,6 @@ p_end_at_deadline - - - -1 - - @@ -266,8 +261,4 @@ @string/ring_nonstop - - @string/EPr_deactivated - - diff --git a/src/main/res/values/strings-core.xml b/src/main/res/values/strings-core.xml index 3ae469bb8..5f7d83b1a 100644 --- a/src/main/res/values/strings-core.xml +++ b/src/main/res/values/strings-core.xml @@ -287,8 +287,7 @@ Settings - - deactivated + None Appearance diff --git a/src/main/res/values/strings-gcal.xml b/src/main/res/values/strings-gcal.xml index 4e7d3fd29..58c9d9d4d 100644 --- a/src/main/res/values/strings-gcal.xml +++ b/src/main/res/values/strings-gcal.xml @@ -12,22 +12,15 @@ Add to Calendar - + + Choose Calendar + Open Calendar Event - - Don\'t add - - To calendar? - %s (completed) - - Default Calendar - - diff --git a/src/main/res/xml/preferences_defaults.xml b/src/main/res/xml/preferences_defaults.xml index 3899c9ce6..c3679fb3c 100644 --- a/src/main/res/xml/preferences_defaults.xml +++ b/src/main/res/xml/preferences_defaults.xml @@ -41,10 +41,9 @@ android:entryValues="@array/EPr_default_reminders_mode_values" android:key="@string/p_default_reminders_mode_key" android:title="@string/EPr_default_reminders_mode_title" /> - + android:title="@string/EPr_default_addtocalendar_title" + android:summary="@string/none"/>