Add calendar selection activity and dialog

pull/324/merge
Alex Baker 10 years ago
parent 251d28ddf6
commit 3b1879a776

@ -414,6 +414,10 @@
</intent-filter>
</receiver>
<activity
android:name=".activities.CalendarSelectionActivity"
android:theme="@style/TranslucentDialog" />
<activity
android:name="com.todoroo.astrid.gcal.CalendarReminderActivity"
android:theme="@style/TranslucentDialog"/>

@ -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<String> 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() {

@ -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<CharSequence> entries = new ArrayList<>();
entries.addAll(Arrays.asList(r.getStringArray(R.array.EPr_default_addtocalendar)));
entries.addAll(Arrays.asList(calendars.calendars));
ArrayList<CharSequence> 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.calendarIds.length; i++) {
// We found currently selected calendar
if (currentSetting.equals(calendars.calendarIds[i])) {
currentSettingIndex = i+1; // +1 correction for disabled-entry
break;
}
private void setCalendarSummary(String calendarId) {
List<AndroidCalendar> 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());
}
}

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

@ -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 <tim@todoroo.com>
*
*/
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<String> items = new ArrayList<>();
Collections.addAll(items, calendars.calendars);
items.add(0, activity.getString(R.string.gcal_TEA_nocal));
ArrayAdapter<String> 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() {
}
}

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

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

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

@ -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<AndroidCalendar> calendars = gCalHelper.getCalendars();
List<String> calendarNames = transform(calendars, new Function<AndroidCalendar, String>() {
@Nullable
@Override
public String apply(AndroidCalendar androidCalendar) {
return androidCalendar.getName();
}
});
ArrayAdapter<String> 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;
}
}

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

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

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

@ -8,18 +8,38 @@
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/calendar_display_which"
android:layout_width="match_parent"
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="start"
android:textColor="?attr/asThemeTextColor"
android:textSize="@dimen/task_edit_text_size" />
android:orientation="horizontal"
android:layout_weight="100">
<Spinner
android:id="@+id/calendars"
android:layout_width="0dip"
android:layout_height="0dip" />
<TextView
android:id="@+id/calendar_display_which"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="start"
android:textColor="?attr/asThemeTextColor"
android:textSize="@dimen/task_edit_text_size" />
</LinearLayout>
<ImageView
android:id="@+id/clear_calendar"
android:src="@drawable/ic_cancel_24dp"
android:tint="?attr/icon_tint"
android:layout_gravity="center"
android:contentDescription="@android:string/cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:clickable="true"
android:background="?attr/selectableItemBackgroundBorderless"
android:alpha="@dimen/drawer_icon_alpha"
android:paddingStart="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingEnd="10dp" />
</LinearLayout>

@ -133,7 +133,6 @@
<item>الشهر القادم</item>
</string-array>
<string name="CFC_title_contains_name">العنوان يحتوي على..</string>
<string name="gcal_TEA_nocal">لا تضيف</string>
<string name="gtasks_GTA_clearing">حذف المهام المنتهية...</string>
<string name="gtasks_GTA_clear_completed">انتهاء الحذف</string>
<string name="gtasks_GLA_noaccounts">لا يوجد حساب قوقل للتزامن مع.</string>

@ -124,7 +124,6 @@
<string name="CRA_list_created_title">Списъкът създаден</string>
<string name="CRA_default_list_name">Действия: %s</string>
<string name="EPr_title">Настройки</string>
<string name="EPr_deactivated">деактивирано</string>
<string name="EPr_appearance_header">Изглед</string>
<string name="EPr_filters_to_show_title">Филтри за показване</string>
<string name="EPr_edit_screen_options">Редактиране на опциите екрана</string>
@ -223,10 +222,7 @@
<string name="gcal_TEA_error">Грешка при добавяне на задачата към каледнара!</string>
<string name="gcal_TEA_addToCalendar_label">Добави към календара</string>
<string name="gcal_TEA_showCalendar_label">Добави събитие към календара</string>
<string name="gcal_TEA_nocal">Не добавяй</string>
<string name="gcal_TEA_none_selected">Към календара?</string>
<string name="gcal_completed_title">%s (завършено)</string>
<string name="gcal_GCP_default">Календар по подразбиране</string>
<string name="CFC_gtasks_list_text">В списък: ?</string>
<string name="CFC_gtasks_list_name">В списък GTasks...</string>
<string name="gtasks_GTA_clearing">Изчисти завършени задачи...</string>

@ -84,7 +84,6 @@
<string name="MCA_task_title_name">Retorna la trucada a en/na %1$s a %2$s</string>
<string name="MCA_task_title_no_name">Retorna la trucada a %s</string>
<string name="EPr_title">Tasks: Paràmetres</string>
<string name="EPr_deactivated">desactivat</string>
<string name="EPr_appearance_header">Aparença</string>
<string name="EPr_beastMode_reset">Restableix els valors predeterminats</string>
<string name="EPr_fullTask_title">Mostra el títol sencer de la tasca</string>
@ -131,10 +130,7 @@
<string name="gcal_TEA_error">Error afegint la tasca al calendari!</string>
<string name="gcal_TEA_addToCalendar_label">Afegeix al calendari</string>
<string name="gcal_TEA_showCalendar_label">Obrir Event del Calendari</string>
<string name="gcal_TEA_nocal">No afegir</string>
<string name="gcal_TEA_none_selected">Al calenari?</string>
<string name="gcal_completed_title">%s (completada)</string>
<string name="gcal_GCP_default">Calendari per defecte</string>
<string name="gtasks_GTA_clearing">S\'estan netejant les tasques completades...</string>
<string name="gtasks_GTA_clear_completed">Neteja les tasques completades</string>
<string name="gtasks_GLA_authenticating">S\'està autenticant...</string>

@ -113,7 +113,6 @@
<string name="CRA_dont_invite">Ne, děkuji.</string>
<string name="CRA_list_created_title">Seznam vytvořen!</string>
<string name="EPr_title">Nastavení</string>
<string name="EPr_deactivated">deaktivován</string>
<string name="EPr_appearance_header">Vzhled</string>
<string name="EPr_filters_to_show_title">Filtry pro zobrazení</string>
<string name="EPr_edit_screen_options">Možnosti úprav zobrazení</string>
@ -200,10 +199,7 @@
<string name="gcal_TEA_error">Chyba při přidávání úkolu do kalendáře!</string>
<string name="gcal_TEA_addToCalendar_label">Vytvořit událost kalendáře</string>
<string name="gcal_TEA_showCalendar_label">Otevřít událost v kalendáři</string>
<string name="gcal_TEA_nocal">Nepřidávat</string>
<string name="gcal_TEA_none_selected">Přidat do kal.</string>
<string name="gcal_completed_title">%s (dokončeno)</string>
<string name="gcal_GCP_default">Výchozí kalendář</string>
<string name="CFC_gtasks_list_text">V seznamu: ?</string>
<string name="CFC_gtasks_list_name">V seznamu Google úkolů</string>
<string name="gtasks_GTA_clearing">Mažu hotové úkoly...</string>

@ -113,10 +113,7 @@
<string name="gcal_TEA_error">Fejl ved tilføjelse af opgave til kalender!</string>
<string name="gcal_TEA_addToCalendar_label">Tilføj til kalender</string>
<string name="gcal_TEA_showCalendar_label">Åbn kalender-begivenhed</string>
<string name="gcal_TEA_nocal">Tilføj ikke</string>
<string name="gcal_TEA_none_selected">Til kalender?</string>
<string name="gcal_completed_title">%s (fuldført)</string>
<string name="gcal_GCP_default">Standardkalender</string>
<string name="gtasks_GPr_header">Google Tasks (beta!)</string>
<string name="locale_notification">Du har $NUM der matcher: $FILTER</string>
<string-array name="TEA_reminder_random">

@ -119,7 +119,6 @@
<string name="CRA_list_created_title">Liste erstellt</string>
<string name="CRA_default_list_name">Einzelaufgaben: %s</string>
<string name="EPr_title">Tasks: Einstellungen</string>
<string name="EPr_deactivated">deaktiviert</string>
<string name="EPr_appearance_header">Erscheinungsbild</string>
<string name="EPr_filters_to_show_title">Angezeigte Filter</string>
<string name="EPr_edit_screen_options">Bildschirmeinstellungen bearbeiten</string>
@ -211,10 +210,7 @@
<string name="gcal_TEA_error">Fehler beim Hinzufügen der Aufgabe zum Kalender!</string>
<string name="gcal_TEA_addToCalendar_label">In Kalender eintragen</string>
<string name="gcal_TEA_showCalendar_label">Öffne Kalendereintrag</string>
<string name="gcal_TEA_nocal">Nicht eintragen</string>
<string name="gcal_TEA_none_selected">In den Kalender?</string>
<string name="gcal_completed_title">%s (abgeschlossen)</string>
<string name="gcal_GCP_default">Standardkalender</string>
<string name="CFC_gtasks_list_text">In der Liste: ?</string>
<string name="CFC_gtasks_list_name">In GTasks-Liste …</string>
<string name="gtasks_GTA_clearing">Erledigte Aufgaben werden entfernt …</string>

@ -112,7 +112,6 @@
<string name="CRA_list_created_title">Λίστα δημιουργήθηκε!</string>
<string name="CRA_default_list_name">Αντικείμενα ενεργειών: %s</string>
<string name="EPr_title">Ρυθμίσεις</string>
<string name="EPr_deactivated">απενεργοποιημένο</string>
<string name="EPr_appearance_header">Εμφάνιση</string>
<string name="EPr_filters_to_show_title">Φίλτρα για εμφάνιση</string>
<string name="EPr_edit_screen_options">Επεξεργασία επιλογών εμφάνισης</string>
@ -202,10 +201,7 @@
<string name="gcal_TEA_error">Σφάλμα πρόσθεσης καθήκοντος στο ημερολόγιο!</string>
<string name="gcal_TEA_addToCalendar_label">Προσθήκη στο ημερολόγιο</string>
<string name="gcal_TEA_showCalendar_label">Άνοιγμα event ημερολογίου</string>
<string name="gcal_TEA_nocal">Μήν προσθέσετε</string>
<string name="gcal_TEA_none_selected">Προς ημερολόγιο?</string>
<string name="gcal_completed_title">%s (έχει ολοκληρωθεί)</string>
<string name="gcal_GCP_default">Προεπιλεγμένο ημερολόγιο</string>
<string name="CFC_gtasks_list_text">Στην λίστα: ;</string>
<string name="CFC_gtasks_list_name">Στην λίστα του GTasks...</string>
<string name="gtasks_GTA_clearing">Καθαρισμός ολοκληρωμένων εργασιών...</string>

@ -120,7 +120,6 @@
<string name="CRA_list_created_title">Lista creada</string>
<string name="CRA_default_list_name">Acciones: %s</string>
<string name="EPr_title">Tasks: Preferencias</string>
<string name="EPr_deactivated">desactivada</string>
<string name="EPr_appearance_header">Apariencia</string>
<string name="EPr_filters_to_show_title">Filtros a mostrar</string>
<string name="EPr_edit_screen_options">Editar opciones de pantalla</string>
@ -212,10 +211,7 @@
<string name="gcal_TEA_error">¡Ocurrió un error al agregar la tarea al calendario!</string>
<string name="gcal_TEA_addToCalendar_label">Agregar al calendario</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento del calendario</string>
<string name="gcal_TEA_nocal">No agregar</string>
<string name="gcal_TEA_none_selected">¿Al calendario?</string>
<string name="gcal_completed_title">%s (completado)</string>
<string name="gcal_GCP_default">Calendario predeterminado</string>
<string name="CFC_gtasks_list_text">En la Lista: ?</string>
<string name="CFC_gtasks_list_name">en la Lista GTasks...</string>
<string name="gtasks_GTA_clearing">Limpiando tareas completadas...</string>

@ -87,7 +87,6 @@
<string name="CRA_dont_invite">خیر ممنون</string>
<string name="CRA_list_created_title">لیست ساخته شد!</string>
<string name="EPr_title">تنظیمات</string>
<string name="EPr_deactivated">غیر فعال شده</string>
<string name="EPr_appearance_header">ظاهر</string>
<string name="EPr_filters_to_show_title">فیلترها برای نمایش</string>
<string name="EPr_edit_screen_options">ویرایش تنظیمات صفحه</string>
@ -157,9 +156,6 @@
<string name="gcal_TEA_error">خطا در اضافه کردن وظیفه به تقویم</string>
<string name="gcal_TEA_addToCalendar_label">اضاقه به تقویم</string>
<string name="gcal_TEA_showCalendar_label">بازکردن رویداد تقویم</string>
<string name="gcal_TEA_nocal">اضافه نکن</string>
<string name="gcal_TEA_none_selected">به تقویم؟</string>
<string name="gcal_GCP_default">تقویم پیش فرض</string>
<string name="gtasks_GTA_clearing">در حال حذف وظایف تکمیل شده</string>
<string name="gtasks_GTA_clear_completed">حذف انجام شد</string>
<string name="gtasks_GLA_noaccounts">اکانت گوگلی برای همگام سازی موجود نیست</string>

@ -46,10 +46,7 @@
<string name="gcal_TEA_error">Virhe lisättäessä tapahtumaa kalenteriin!</string>
<string name="gcal_TEA_addToCalendar_label">Lisää kalenteri</string>
<string name="gcal_TEA_showCalendar_label">Avaa tapahtumakalenteri</string>
<string name="gcal_TEA_nocal">Älä lisää</string>
<string name="gcal_TEA_none_selected">Kalenteriin?</string>
<string name="gcal_completed_title">%s (valmistunut)</string>
<string name="gcal_GCP_default">Oletus kalenteri</string>
<string name="CFC_gtasks_list_text">Listalla: ?</string>
<string name="CFC_gtasks_list_name">Gtask lista...</string>
<string name="gtasks_GTA_clearing">Siivoa valmiit tehtävät...</string>

@ -120,7 +120,6 @@
<string name="CRA_list_created_title">Liste créée !</string>
<string name="CRA_default_list_name">Choix d\'actions: %s</string>
<string name="EPr_title">Tasks : Paramètres</string>
<string name="EPr_deactivated">désactivé</string>
<string name="EPr_appearance_header">Apparence</string>
<string name="EPr_filters_to_show_title">Filtres à afficher</string>
<string name="EPr_edit_screen_options">Edition des options d\'affichage</string>
@ -214,10 +213,7 @@
<string name="gcal_TEA_error">Erreur d\'ajout de tâche à l\'agenda !</string>
<string name="gcal_TEA_addToCalendar_label">Créer un évènement d\'agenda</string>
<string name="gcal_TEA_showCalendar_label">Ouvrir l\'événement de l\'agenda</string>
<string name="gcal_TEA_nocal">Ne pas ajouter</string>
<string name="gcal_TEA_none_selected">Ajouter au calendrier?</string>
<string name="gcal_completed_title">%s (complété)</string>
<string name="gcal_GCP_default">Agenda par défaut</string>
<string name="CFC_gtasks_list_text">Dans la liste : ?</string>
<string name="CFC_gtasks_list_name">Dans la liste GTasks...</string>
<string name="gtasks_GTA_clearing">Suppression des tâches terminés</string>

@ -84,10 +84,7 @@
<string name="gcal_TEA_error">Nem sikerült a feladat hozzáadása a naptárhoz!</string>
<string name="gcal_TEA_addToCalendar_label">Hozzáadás a naptárhoz</string>
<string name="gcal_TEA_showCalendar_label">Naptáresemény megnyitása</string>
<string name="gcal_TEA_nocal">Ne legyen hozzáadva</string>
<string name="gcal_TEA_none_selected">Naptárhoz?</string>
<string name="gcal_completed_title">%s (befejezve)</string>
<string name="gcal_GCP_default">Alapértelmezett naptár</string>
<string name="gtasks_GTA_clearing">Befejezett feladatok törlése...</string>
<string name="gtasks_GTA_clear_completed">Törlés befejezve</string>
<string name="gtasks_GLA_noaccounts">Nincs elérhető Google fiók a szinkronizáláshoz.</string>

@ -121,7 +121,6 @@
<string name="CRA_list_created_title">Lista creata!</string>
<string name="CRA_default_list_name">Azioni: %s</string>
<string name="EPr_title">Tasks: Preferenze</string>
<string name="EPr_deactivated">disattivato</string>
<string name="EPr_appearance_header">Aspetto</string>
<string name="EPr_filters_to_show_title">Filtri da visualizzare</string>
<string name="EPr_edit_screen_options">Modifica opzioni schermo</string>
@ -214,10 +213,7 @@ Se visualizzi questo errore più volte, ti consigliamo di cancellare tutti i dat
<string name="gcal_TEA_error">Errore durante l\'aggiunta dell\'attività al calendario!</string>
<string name="gcal_TEA_addToCalendar_label">Aggiungi al Calendario</string>
<string name="gcal_TEA_showCalendar_label">Apri Calendario Eventi</string>
<string name="gcal_TEA_nocal">Non aggiungere</string>
<string name="gcal_TEA_none_selected">Sul calendario?</string>
<string name="gcal_completed_title">%s (completato)</string>
<string name="gcal_GCP_default">Calendario Predefinito</string>
<string name="CFC_gtasks_list_text">Nella lista: ?</string>
<string name="CFC_gtasks_list_name">Nella lista GTasks...</string>
<string name="gtasks_GTA_clearing">Pulizia task completi...</string>

@ -112,7 +112,6 @@
<string name="CRA_list_created_title">רשימה נוצרה!</string>
<string name="CRA_default_list_name">פריטי פעולה: %s</string>
<string name="EPr_title">הגדרות אסטריד</string>
<string name="EPr_deactivated">מופסק</string>
<string name="EPr_appearance_header">חזות</string>
<string name="EPr_filters_to_show_title">אילו מַסְנְנִים להציג</string>
<string name="EPr_edit_screen_options">עריכת אפשרויות מסך</string>
@ -203,10 +202,7 @@
<string name="gcal_TEA_error">שגיאה בהוספת המשימה ליומן!</string>
<string name="gcal_TEA_addToCalendar_label">הוסף ליומן</string>
<string name="gcal_TEA_showCalendar_label">פתח אירוע ביומן</string>
<string name="gcal_TEA_nocal">אל תוסיף</string>
<string name="gcal_TEA_none_selected">ליומן?</string>
<string name="gcal_completed_title">%s (בוצעה)</string>
<string name="gcal_GCP_default">ברירת מחדל ליומן</string>
<string name="CFC_gtasks_list_text">ברשימה: ?</string>
<string name="CFC_gtasks_list_name">ברשימה של ״משימות גוגל״</string>
<string name="gtasks_GTA_clearing">מְסִירָה משימות שבוצעו...</string>

@ -122,7 +122,6 @@
<string name="CRA_list_created_title">リストが作成されました!</string>
<string name="CRA_default_list_name">アクションアイテム: %s</string>
<string name="EPr_title">Tasks: 設定</string>
<string name="EPr_deactivated">アクティブにしない</string>
<string name="EPr_appearance_header">外観</string>
<string name="EPr_filters_to_show_title">表示のフィルター</string>
<string name="EPr_edit_screen_options">編集画面オプション</string>
@ -221,10 +220,7 @@
<string name="gcal_TEA_error">カレンダーへの登録に失敗しました</string>
<string name="gcal_TEA_addToCalendar_label">カレンダーに登録</string>
<string name="gcal_TEA_showCalendar_label">カレンダーのイベントを開く</string>
<string name="gcal_TEA_nocal">追加しないで</string>
<string name="gcal_TEA_none_selected">カレンダーに?</string>
<string name="gcal_completed_title">%s完了</string>
<string name="gcal_GCP_default">標準のカレンダー</string>
<string name="CFC_gtasks_list_text">リストにありますか ?</string>
<string name="CFC_gtasks_list_name">GTasks リストに...</string>
<string name="gtasks_GTA_clearing">完了したタスクをクリーニング中...</string>

@ -119,7 +119,6 @@
<string name="CRA_list_created_title">목록을 만들었습니다!</string>
<string name="CRA_default_list_name">활동 아이템: %s</string>
<string name="EPr_title">설정</string>
<string name="EPr_deactivated">비활성화됨</string>
<string name="EPr_appearance_header">보기 설정</string>
<string name="EPr_filters_to_show_title">표시할 필터</string>
<string name="EPr_edit_screen_options">화면 설정 편집하기</string>
@ -214,10 +213,7 @@ Tasks의 백업에서 당신의 일정을 복구하시기 바랍니다.
<string name="gcal_TEA_error">달력에 일정 추가 실패!</string>
<string name="gcal_TEA_addToCalendar_label">달력에 일정 추가하기</string>
<string name="gcal_TEA_showCalendar_label">달력 이벤트 열기</string>
<string name="gcal_TEA_nocal">추가하지 않기</string>
<string name="gcal_TEA_none_selected">달력에?</string>
<string name="gcal_completed_title">%s (완료)</string>
<string name="gcal_GCP_default">기본 달력</string>
<string name="CFC_gtasks_list_text">목록에: ?</string>
<string name="CFC_gtasks_list_name">GTasks 목록에...</string>
<string name="gtasks_GTA_clearing">완료한 일정을 삭제하는 중...</string>

@ -62,7 +62,6 @@
<string name="CRA_more_options">Flere alternativer</string>
<string name="CRA_dont_invite">Nei takk</string>
<string name="EPr_title">Tasks: Innstillinger</string>
<string name="EPr_deactivated">deaktivert</string>
<string name="EPr_appearance_header">Utseende</string>
<string name="TWi_loading">Laster ...</string>
<string name="WCA_title">Velg oppgaver å se på</string>
@ -108,9 +107,7 @@
<string name="gcal_TEA_error">Klarte ikke å legge oppgave til kalender!</string>
<string name="gcal_TEA_addToCalendar_label">Legg til i kalender</string>
<string name="gcal_TEA_showCalendar_label">Åpne kalenderhendelse</string>
<string name="gcal_TEA_nocal">Ikke legg til</string>
<string name="gcal_completed_title">%s (fullført)</string>
<string name="gcal_GCP_default">Standardkalender</string>
<string name="CFC_gtasks_list_text">I liste: ?</string>
<string name="locale_notification">Du har $NUM som matcher: $FILTER</string>
<string name="file_browser_title">Velg en fil</string>

@ -122,7 +122,6 @@
<string name="CRA_list_created_title">Lijst gemaakt!</string>
<string name="CRA_default_list_name">Actie-items: %s</string>
<string name="EPr_title">Tasks: Instellingen</string>
<string name="EPr_deactivated">uitgeschakeld</string>
<string name="EPr_appearance_header">Uiterlijk</string>
<string name="EPr_filters_to_show_title">Te tonen filters</string>
<string name="EPr_edit_screen_options">Scherm opties bewerken</string>
@ -218,10 +217,7 @@
<string name="gcal_TEA_error">Fout bij toevoegen taak aan agenda!</string>
<string name="gcal_TEA_addToCalendar_label">Toevoegen aan Agenda</string>
<string name="gcal_TEA_showCalendar_label">Gebeurtenis openen</string>
<string name="gcal_TEA_nocal">Niet toevoegen</string>
<string name="gcal_TEA_none_selected">Naar agenda?</string>
<string name="gcal_completed_title">%s (voltooid)</string>
<string name="gcal_GCP_default">Standaard agenda</string>
<string name="CFC_gtasks_list_text">In lijst: ?</string>
<string name="CFC_gtasks_list_name">In GTasks lijst...</string>
<string name="gtasks_GTA_clearing">Verwijderen voltooide taken...</string>

@ -113,7 +113,6 @@
<string name="CRA_list_created_title">Lista utworzona!</string>
<string name="CRA_default_list_name">Wydarzenia aktywne: %s</string>
<string name="EPr_title">Tasks: Właściwości</string>
<string name="EPr_deactivated">niekatywny</string>
<string name="EPr_appearance_header">Wygląd</string>
<string name="EPr_filters_to_show_title">Pokazywane filtry</string>
<string name="EPr_edit_screen_options">Edytuj ustawienia ekranu</string>
@ -206,10 +205,7 @@ i odzyskanie zadań z kopi zapasowej (Settings-&gt;Sync and backup-&gt;Backup-&g
<string name="gcal_TEA_error">Błąd podczas dodawania zadania do kalendarza!</string>
<string name="gcal_TEA_addToCalendar_label">Dodaj do kalendarza</string>
<string name="gcal_TEA_showCalendar_label">Otwórz zdarzenie kalendarza</string>
<string name="gcal_TEA_nocal">Nie dodawaj</string>
<string name="gcal_TEA_none_selected">Do kalendarza?</string>
<string name="gcal_completed_title">%s (ukończono)</string>
<string name="gcal_GCP_default">Domyślny kalendarz</string>
<string name="CFC_gtasks_list_text">Na liście: ?</string>
<string name="CFC_gtasks_list_name">Na liście GTasks...</string>
<string name="gtasks_GTA_clearing">Czyszczenie zakończonych zadań...</string>

@ -112,7 +112,6 @@
<string name="CRA_list_created_title">Lista criada!</string>
<string name="CRA_default_list_name">Itens de ação: %s</string>
<string name="EPr_title">Tasks: Configurações</string>
<string name="EPr_deactivated">desativado</string>
<string name="EPr_appearance_header">Aparência</string>
<string name="EPr_filters_to_show_title">Filtros a mostrar</string>
<string name="EPr_edit_screen_options">Editar opções da tela</string>
@ -202,10 +201,7 @@
<string name="gcal_TEA_error">Erro ao inserir a tarefa no calendário!</string>
<string name="gcal_TEA_addToCalendar_label">Inserir no calendário</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento no calendário</string>
<string name="gcal_TEA_nocal">Não adicionar</string>
<string name="gcal_TEA_none_selected">Para o calendário?</string>
<string name="gcal_completed_title">%s (concluído)</string>
<string name="gcal_GCP_default">Calendário padrão</string>
<string name="CFC_gtasks_list_text">Na lista: ?</string>
<string name="CFC_gtasks_list_name">No Google Tasks...</string>
<string name="gtasks_GTA_clearing">Limpando tarefas concluídas...</string>

@ -123,7 +123,6 @@
<string name="CRA_list_created_title">Lista criada!</string>
<string name="CRA_default_list_name">Itens de ação: %s</string>
<string name="EPr_title">Definições</string>
<string name="EPr_deactivated">desativada</string>
<string name="EPr_appearance_header">Aspeto</string>
<string name="EPr_filters_to_show_title">Filtros a mostrar</string>
<string name="EPr_edit_screen_options">Opções do ecrã de edição</string>
@ -222,10 +221,7 @@ das tarefas através de um backup em Definições-&gt;Sincronização e backup-&
<string name="gcal_TEA_error">Erro ao adicionar tarefa ao calendário!</string>
<string name="gcal_TEA_addToCalendar_label">Adicionar ao calendário</string>
<string name="gcal_TEA_showCalendar_label">Abrir evento no calendário</string>
<string name="gcal_TEA_nocal">Não adicionar</string>
<string name="gcal_TEA_none_selected">Ao calendário?</string>
<string name="gcal_completed_title">%s (terminada)</string>
<string name="gcal_GCP_default">Calendário predefinido</string>
<string name="CFC_gtasks_list_text">Na lista: ?</string>
<string name="CFC_gtasks_list_name">Na lista GTasks</string>
<string name="gtasks_GTA_clearing">Removendo tarefas terminadas</string>

@ -122,7 +122,6 @@
<string name="CRA_list_created_title">Список создан!</string>
<string name="CRA_default_list_name">Пункты события: %s</string>
<string name="EPr_title">Tasks: Настройки</string>
<string name="EPr_deactivated">выключен</string>
<string name="EPr_appearance_header">Интерфейс</string>
<string name="EPr_filters_to_show_title">Показать фильтры</string>
<string name="EPr_edit_screen_options">Редактировать настройки экрана</string>
@ -221,10 +220,7 @@
<string name="gcal_TEA_error">Ошибка при добавлении задачи в календарь!</string>
<string name="gcal_TEA_addToCalendar_label">Добавить в календарь</string>
<string name="gcal_TEA_showCalendar_label">Открыть событие календаря</string>
<string name="gcal_TEA_nocal">Не добавлять</string>
<string name="gcal_TEA_none_selected">Добавить в календарь</string>
<string name="gcal_completed_title">%s (выполнено)</string>
<string name="gcal_GCP_default">Календарь по умолчанию</string>
<string name="CFC_gtasks_list_text">В Списке: ?</string>
<string name="CFC_gtasks_list_name">В GTask Список...</string>
<string name="gtasks_GTA_clearing">Очистка выполненных задач...</string>

@ -121,7 +121,6 @@
<string name="CRA_list_created_title">Zoznam vytvorený!</string>
<string name="CRA_default_list_name">Položky akcie: %s</string>
<string name="EPr_title">Nastavenia</string>
<string name="EPr_deactivated">deaktivovaný</string>
<string name="EPr_appearance_header">Vzhľad</string>
<string name="EPr_filters_to_show_title">Filtre pre zobrazenie</string>
<string name="EPr_edit_screen_options">Možnosti úprav zobrazenia</string>
@ -214,10 +213,7 @@
<string name="gcal_TEA_error">Chyba pridania úlohy do kalendára!</string>
<string name="gcal_TEA_addToCalendar_label">Pridať do kalendára</string>
<string name="gcal_TEA_showCalendar_label">Otvoriť udalosť kalendára</string>
<string name="gcal_TEA_nocal">Nepridávať</string>
<string name="gcal_TEA_none_selected">Do kalendára?</string>
<string name="gcal_completed_title">%s (dokončené)</string>
<string name="gcal_GCP_default">Predvolený kalendár</string>
<string name="CFC_gtasks_list_text">V zozname: ?</string>
<string name="CFC_gtasks_list_name">V GTasks zozname...</string>
<string name="gtasks_GTA_clearing">Zbaviť sa dokončených úloh</string>

@ -116,7 +116,6 @@
<string name="CRA_list_created_title">Seznam ustvarjen!</string>
<string name="CRA_default_list_name">Število izvedbenih opravil: %s</string>
<string name="EPr_title">Nastavitve</string>
<string name="EPr_deactivated">deaktivirano</string>
<string name="EPr_appearance_header">Izgled</string>
<string name="EPr_filters_to_show_title">Filtri za prikaz</string>
<string name="EPr_edit_screen_options">Uredi možnosti zaslona</string>
@ -206,10 +205,7 @@
<string name="gcal_TEA_error">Napaka pri dodajanju opravila!</string>
<string name="gcal_TEA_addToCalendar_label">Dodaj v koledar</string>
<string name="gcal_TEA_showCalendar_label">Odpri dogodek v koledarju</string>
<string name="gcal_TEA_nocal">Ne dodaj</string>
<string name="gcal_TEA_none_selected">Na koledar?</string>
<string name="gcal_completed_title">%s (končani)</string>
<string name="gcal_GCP_default">Privzeti koledar</string>
<string name="CFC_gtasks_list_text">V seznamu: ?</string>
<string name="CFC_gtasks_list_name">Na GNaloge seznamu...</string>
<string name="gtasks_GTA_clearing">Brišem dokončane opravke...</string>

@ -113,7 +113,6 @@
<string name="CRA_list_created_title">Listan skapades!</string>
<string name="CRA_default_list_name">Saker att göra: %s</string>
<string name="EPr_title">Inställningar</string>
<string name="EPr_deactivated">inaktiverad</string>
<string name="EPr_appearance_header">Utseende</string>
<string name="EPr_filters_to_show_title">Filter att visa</string>
<string name="EPr_edit_screen_options">Ändra skärminställningar</string>
@ -200,10 +199,7 @@ och återställer dina aktuella uppgifter från en backup
<string name="gcal_TEA_error">Misslyckades med att lägga uppgift till kalender!</string>
<string name="gcal_TEA_addToCalendar_label">Skapa kalenderhändelse</string>
<string name="gcal_TEA_showCalendar_label">Öppna kalenderhändelse</string>
<string name="gcal_TEA_nocal">Lägg inte till</string>
<string name="gcal_TEA_none_selected">Till kalender</string>
<string name="gcal_completed_title">%s (avslutad)</string>
<string name="gcal_GCP_default">Standardkalender</string>
<string name="CFC_gtasks_list_text">I listan: ?</string>
<string name="CFC_gtasks_list_name">I lista på Google Uppgifter...</string>
<string name="gtasks_GTA_clearing">Rensar bort färdiga uppgifter...</string>

@ -69,7 +69,6 @@
<string name="CFC_title_contains_text">ชื่อที่มีคำว่า: ?</string>
<string name="gcal_TEA_showCalendar_label">เปิดเหตุการณ์ปฏิทิน</string>
<string name="gcal_completed_title">%s (เสร็จสิ้นแล้ว)</string>
<string name="gcal_GCP_default">ปฏิธินตั้งต้น</string>
<string name="rmd_NoA_done">เสร็จเรียบร้อยแล้ว!</string>
<string name="rmd_NoA_snooze">หลับ..</string>
<string name="repeat_enabled">การเกิดซ้ำ</string>

@ -101,7 +101,6 @@
<string name="CRA_dont_invite">Hayır teşekkürler</string>
<string name="CRA_list_created_title">Liste oluşturuldu!</string>
<string name="EPr_title">Tasks: Ayarlar</string>
<string name="EPr_deactivated">devre dışı</string>
<string name="EPr_appearance_header">Görünüm</string>
<string name="EPr_beastMode_desc">Görev Düzenleme Ekranı yerleşimini özelleştir</string>
<string name="EPr_beastMode_reset">Varsayılanlara sıfırla</string>
@ -181,9 +180,7 @@
<string name="gcal_TEA_error">Takvime görev eklenmesinde hata!</string>
<string name="gcal_TEA_addToCalendar_label">Takvime Ekle</string>
<string name="gcal_TEA_showCalendar_label">Takvim Olayı</string>
<string name="gcal_TEA_nocal">Ekleme</string>
<string name="gcal_completed_title">%s (tamamlandı)</string>
<string name="gcal_GCP_default">Öntanımlı Takvim</string>
<string name="CFC_gtasks_list_text">Liste içinde: ?</string>
<string name="CFC_gtasks_list_name">Gtasks Listesi içinde...</string>
<string name="gtasks_GTA_clearing">Tamamlanan görevler temizleniyor...</string>

@ -116,7 +116,6 @@
<string name="CRA_list_created_title">Список створений!</string>
<string name="CRA_default_list_name">Список дій: %s</string>
<string name="EPr_title">Налаштування</string>
<string name="EPr_deactivated">деактивовані</string>
<string name="EPr_appearance_header">Інтерфейс</string>
<string name="EPr_filters_to_show_title">Показати фільтри</string>
<string name="EPr_edit_screen_options">Редагувати налаштування екрану</string>
@ -211,10 +210,7 @@
<string name="gcal_TEA_error">Помилка при додаванні завдання в календар!</string>
<string name="gcal_TEA_addToCalendar_label">Додати до календаря</string>
<string name="gcal_TEA_showCalendar_label">Відкрити календарну подію</string>
<string name="gcal_TEA_nocal">Не додавати</string>
<string name="gcal_TEA_none_selected">До календаря?</string>
<string name="gcal_completed_title">%s (завершено)</string>
<string name="gcal_GCP_default">Календар по замовчуванню</string>
<string name="CFC_gtasks_list_text">В списку: ?</string>
<string name="CFC_gtasks_list_name">В GTasks списку...</string>
<string name="gtasks_GTA_clearing">Очищення виконаних завдань</string>

@ -84,7 +84,6 @@
<string name="CRA_create_list">创建列表</string>
<string name="CRA_postpone">也许以后</string>
<string name="EPr_title">清单小助理:设置</string>
<string name="EPr_deactivated">禁用</string>
<string name="EPr_appearance_header">外观</string>
<string name="EPr_beastMode_desc">自定义设定菜单屏幕</string>
<string name="EPr_beastMode_reset">恢复默认值</string>
@ -161,9 +160,7 @@
<string name="gcal_TEA_error">添加任务到日历时失败!</string>
<string name="gcal_TEA_addToCalendar_label">建立日程表事件</string>
<string name="gcal_TEA_showCalendar_label">打开日程表事件</string>
<string name="gcal_TEA_nocal">不要添加</string>
<string name="gcal_completed_title">%s (已完成)</string>
<string name="gcal_GCP_default">默认日程表</string>
<string name="CFC_gtasks_list_text">列表内容: ?</string>
<string name="CFC_gtasks_list_name">在Google任务列表中...</string>
<string name="gtasks_GTA_clearing">正在清除已完成任务……</string>

@ -110,7 +110,6 @@
<string name="CRA_list_created_title">列表建立了!</string>
<string name="CRA_default_list_name">行動事項:%s</string>
<string name="EPr_title">Tasks: 偏好</string>
<string name="EPr_deactivated">禁用</string>
<string name="EPr_appearance_header">外觀</string>
<string name="EPr_edit_screen_options">編輯畫面選項</string>
<string name="EPr_beastMode_desc">自定義設定菜單屏幕</string>
@ -191,9 +190,7 @@
<string name="gcal_TEA_error">工作加入行事曆錯誤</string>
<string name="gcal_TEA_addToCalendar_label">建立行事曆事項</string>
<string name="gcal_TEA_showCalendar_label">打開行事曆事項</string>
<string name="gcal_TEA_nocal">事件開啟錯誤!</string>
<string name="gcal_completed_title">%s (已完成)</string>
<string name="gcal_GCP_default">預設行事曆</string>
<string name="CFC_gtasks_list_text">列表內容: ?</string>
<string name="CFC_gtasks_list_name">在Google任務工作列表中...</string>
<string name="gtasks_GTA_clearing">正在清除已完成任務工作……</string>

@ -171,11 +171,6 @@
<!-- on calendar end at dealline if true, start at deadline if false -->
<string name="p_end_at_deadline">p_end_at_deadline</string>
<string-array name="EPr_default_addtocalendar_values">
<!-- addtocalendar: labels that map EPr_default_addtocalendar items to calendar selection in settings. -->
<item>-1</item>
</string-array>
<!-- ============================================================ SYNC == -->
<string-array name="sync_SPr_interval_values">
@ -266,8 +261,4 @@
<item>@string/ring_nonstop</item>
</string-array>
<string-array name="EPr_default_addtocalendar">
<item>@string/EPr_deactivated</item>
</string-array>
</resources>

@ -287,8 +287,7 @@
<!-- slide 31g: Preference Window Title -->
<string name="EPr_title">Settings</string>
<!-- slide 46a -->
<string name="EPr_deactivated">deactivated</string>
<string name="none">None</string>
<!-- slide 30i: Preference Category: Appearance Title -->
<string name="EPr_appearance_header">Appearance</string>

@ -12,22 +12,15 @@
<!-- slide 21c: Label for adding task to calendar -->
<string name="gcal_TEA_addToCalendar_label">Add to Calendar</string>
<string name="choose_calendar">Choose Calendar</string>
<!-- Label when calendar event already exists -->
<string name="gcal_TEA_showCalendar_label">Open Calendar Event</string>
<!-- No calendar label (don't add option) -->
<string name="gcal_TEA_nocal">Don\'t add</string>
<string name="gcal_TEA_none_selected">To calendar?</string>
<!-- ======================================================== Calendars == -->
<!-- Calendar event name when task is completed (%s => task title) -->
<string name="gcal_completed_title">%s (completed)</string>
<!-- System Default Calendar (displayed if we can't figure out calendars) -->
<string name="gcal_GCP_default">Default Calendar</string>
</resources>

@ -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" />
<com.todoroo.astrid.ui.MultilineListPreference
<Preference
android:defaultValue="-1"
android:entries="@array/EPr_default_addtocalendar"
android:entryValues="@array/EPr_default_addtocalendar_values"
android:key="@string/gcal_p_default"
android:title="@string/EPr_default_addtocalendar_title" />
android:title="@string/EPr_default_addtocalendar_title"
android:summary="@string/none"/>
</PreferenceScreen>

Loading…
Cancel
Save