Missed Call Notifications

pull/321/head
Alex Baker 9 years ago
parent 5ec0ed0d99
commit 33f1ebff3d

@ -321,7 +321,7 @@
android:theme="@style/Tasks"/> android:theme="@style/Tasks"/>
<activity <activity
android:name="com.todoroo.astrid.calls.MissedCallActivity" android:name=".reminders.MissedCallActivity"
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:launchMode="singleTask" android:launchMode="singleTask"
android:taskAffinity="" android:taskAffinity=""

@ -1,190 +0,0 @@
/**
* Copyright (c) 2012 Todoroo Inc
*
* See the file "LICENSE" for the full license governing this code.
*/
package com.todoroo.astrid.calls;
import android.content.ContentUris;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.TextView;
import com.todoroo.andlib.utility.AndroidUtilities;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.StartupService;
import com.todoroo.astrid.service.TaskService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.preferences.ActivityPreferences;
import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.ResourceResolver;
import java.io.InputStream;
import javax.inject.Inject;
public class MissedCallActivity extends InjectingAppCompatActivity {
private static final Logger log = LoggerFactory.getLogger(MissedCallActivity.class);
public static final String EXTRA_NUMBER = "number"; //$NON-NLS-1$
public static final String EXTRA_NAME = "name"; //$NON-NLS-1$
public static final String EXTRA_TIME = "time"; //$NON-NLS-1$
public static final String EXTRA_CONTACT_ID = "contactId"; //$NON-NLS-1$
private static final String PREF_IGNORE_PRESSES = "missedCallsIgnored"; //$NON-NLS-1$
// Prompt user to ignore all missed calls after this many ignore presses
private static final int IGNORE_PROMPT_COUNT = 3;
@Inject StartupService startupService;
@Inject TaskService taskService;
@Inject ActivityPreferences preferences;
@Inject ResourceResolver resourceResolver;
@Inject DialogBuilder dialogBuilder;
private final OnClickListener dismissListener = new OnClickListener() {
@Override
public void onClick(View v) {
finish();
AndroidUtilities.callOverridePendingTransition(MissedCallActivity.this, 0, android.R.anim.fade_out);
}
};
private final OnClickListener ignoreListener = new OnClickListener() {
@Override
public void onClick(final View v) {
// Check for number of ignore presses
int ignorePresses = preferences.getInt(PREF_IGNORE_PRESSES, 0);
ignorePresses++;
if (ignorePresses == IGNORE_PROMPT_COUNT) {
dialogBuilder.newMessageDialog(R.string.MCA_ignore_body)
.setPositiveButton(R.string.MCA_ignore_all, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
preferences.setBoolean(R.string.p_field_missed_calls, false);
dismissListener.onClick(v);
}
})
.setNegativeButton(R.string.MCA_ignore_this, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dismissListener.onClick(v);
}
})
.show();
} else {
dismissListener.onClick(v);
}
preferences.setInt(PREF_IGNORE_PRESSES, ignorePresses);
}
};
private String name;
private String number;
private TextView returnCallButton;
private TextView callLaterButton;
private TextView ignoreButton;
private View ignoreSettingsButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startupService.onStartupApplication(this);
setContentView(R.layout.missed_call_activity);
Intent intent = getIntent();
name = intent.getStringExtra(EXTRA_NAME);
number = intent.getStringExtra(EXTRA_NUMBER);
String timeString = intent.getStringExtra(EXTRA_TIME);
long contactId = intent.getExtras().getLong(EXTRA_CONTACT_ID);
int color = resourceResolver.getData(R.attr.asThemeTextColor);
returnCallButton = (TextView) findViewById(R.id.call_now);
callLaterButton = (TextView) findViewById(R.id.call_later);
ignoreButton = (TextView) findViewById(R.id.call_ignore);
ignoreSettingsButton = findViewById(R.id.ignore_settings);
((TextView) findViewById(R.id.reminder_title))
.setText(getString(R.string.MCA_title,
TextUtils.isEmpty(name) ? number : name, timeString));
ImageView pictureView = ((ImageView) findViewById(R.id.contact_picture));
if (contactId >= 0) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(), uri);
Bitmap b = null;
try {
b = BitmapFactory.decodeStream(input);
} catch (OutOfMemoryError e) {
log.error(e.getMessage(), e);
}
if (b != null) {
pictureView.setImageBitmap(b);
pictureView.setVisibility(View.VISIBLE);
}
}
returnCallButton.setBackgroundColor(color);
callLaterButton.setBackgroundColor(color);
addListeners();
}
private void addListeners() {
ignoreButton.setOnClickListener(ignoreListener);
ignoreSettingsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent editPreferences = new Intent(MissedCallActivity.this, BasicPreferences.class);
startActivity(editPreferences);
finish();
}
});
returnCallButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent call = new Intent(Intent.ACTION_VIEW);
call.setData(Uri.parse("tel:" + number)); //$NON-NLS-1$
startActivity(call);
finish();
}
});
callLaterButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Task task = new Task() {{
setTitle(TextUtils.isEmpty(name)
? getString(R.string.MCA_task_title_no_name, number)
: getString(R.string.MCA_task_title_name, name, number));
}};
taskService.save(task);
TaskIntents
.getEditTaskStack(MissedCallActivity.this, null, task.getId())
.startActivities();
}
});
}
}

@ -19,14 +19,12 @@ import com.todoroo.andlib.utility.DateUtilities;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.tasks.R; import org.tasks.Notifier;
import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.injection.InjectingBroadcastReceiver;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import javax.inject.Inject; import javax.inject.Inject;
import static org.tasks.date.DateTimeUtils.newDate;
public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
private static final Logger log = LoggerFactory.getLogger(PhoneStateChangedReceiver.class); private static final Logger log = LoggerFactory.getLogger(PhoneStateChangedReceiver.class);
@ -36,12 +34,13 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
private static final long WAIT_BEFORE_READ_LOG = 3000L; private static final long WAIT_BEFORE_READ_LOG = 3000L;
@Inject Preferences preferences; @Inject Preferences preferences;
@Inject Notifier notifier;
@Override @Override
public void onReceive(final Context context, Intent intent) { public void onReceive(final Context context, Intent intent) {
super.onReceive(context, intent); super.onReceive(context, intent);
if (!preferences.getBoolean(R.string.p_field_missed_calls, false)) { if (!preferences.fieldMissedPhoneCalls()) {
preferences.clear(PREF_LAST_INCOMING_NUMBER); preferences.clear(PREF_LAST_INCOMING_NUMBER);
return; return;
} }
@ -119,17 +118,9 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver {
int nameIndex = calls.getColumnIndex(Calls.CACHED_NAME); int nameIndex = calls.getColumnIndex(Calls.CACHED_NAME);
String name = calls.getString(nameIndex); String name = calls.getString(nameIndex);
String timeString = DateUtilities.getTimeString(context, newDate(date));
long contactId = getContactIdFromNumber(context, number); long contactId = getContactIdFromNumber(context, number);
Intent missedCallIntent = new Intent(context, MissedCallActivity.class); notifier.triggerMissedCallNotification(name, number, contactId);
missedCallIntent.putExtra(MissedCallActivity.EXTRA_NUMBER, number);
missedCallIntent.putExtra(MissedCallActivity.EXTRA_NAME, name);
missedCallIntent.putExtra(MissedCallActivity.EXTRA_TIME, timeString);
missedCallIntent.putExtra(MissedCallActivity.EXTRA_CONTACT_ID, contactId);
missedCallIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(missedCallIntent);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);

@ -2,11 +2,16 @@ package org.tasks;
import android.app.Notification; import android.app.Notification;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.ContentUris;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.provider.ContactsContract;
import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat;
import android.support.v4.media.MediaDescriptionCompatApi21;
import android.text.TextUtils; import android.text.TextUtils;
import com.todoroo.andlib.data.TodorooCursor; import com.todoroo.andlib.data.TodorooCursor;
@ -30,11 +35,15 @@ import org.tasks.notifications.NotificationManager;
import org.tasks.notifications.TelephonyManager; import org.tasks.notifications.TelephonyManager;
import org.tasks.preferences.Preferences; import org.tasks.preferences.Preferences;
import org.tasks.receivers.CompleteTaskReceiver; import org.tasks.receivers.CompleteTaskReceiver;
import org.tasks.reminders.MissedCallActivity;
import org.tasks.reminders.NotificationActivity; import org.tasks.reminders.NotificationActivity;
import org.tasks.reminders.SnoozeActivity; import org.tasks.reminders.SnoozeActivity;
import java.io.InputStream;
import javax.inject.Inject; import javax.inject.Inject;
import static com.google.common.base.Strings.isNullOrEmpty;
import static org.tasks.date.DateTimeUtils.currentTimeMillis; import static org.tasks.date.DateTimeUtils.currentTimeMillis;
public class Notifier { public class Notifier {
@ -67,7 +76,67 @@ public class Notifier {
this.preferences = preferences; this.preferences = preferences;
} }
public void triggerFilterNotification(String title, String query, String valuesForNewTasks) { public void triggerMissedCallNotification(final String name, final String number, long contactId) {
final String title = context.getString(R.string.missed_call, TextUtils.isEmpty(name) ? number : name);
Intent missedCallDialog = new Intent(context, MissedCallActivity.class) {{
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
putExtra(MissedCallActivity.EXTRA_NUMBER, number);
putExtra(MissedCallActivity.EXTRA_NAME, name);
putExtra(MissedCallActivity.EXTRA_TITLE, title);
}};
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid)
.setTicker(title)
.setContentTitle(title)
.setContentText(context.getString(R.string.app_name))
.setWhen(System.currentTimeMillis())
.setContentIntent(PendingIntent.getActivity(context, missedCallDialog.hashCode(), missedCallDialog, PendingIntent.FLAG_UPDATE_CURRENT));
Bitmap contactImage = getContactImage(contactId);
if (contactImage != null) {
builder.setLargeIcon(contactImage);
}
if (preferences.useNotificationActions()) {
Intent callNow = new Intent(context, MissedCallActivity.class) {{
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
putExtra(MissedCallActivity.EXTRA_NUMBER, number);
putExtra(MissedCallActivity.EXTRA_NAME, name);
putExtra(MissedCallActivity.EXTRA_TITLE, title);
putExtra(MissedCallActivity.EXTRA_CALL_NOW, true);
}};
Intent callLater = new Intent(context, MissedCallActivity.class) {{
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
putExtra(MissedCallActivity.EXTRA_NUMBER, number);
putExtra(MissedCallActivity.EXTRA_NAME, name);
putExtra(MissedCallActivity.EXTRA_TITLE, title);
putExtra(MissedCallActivity.EXTRA_CALL_LATER, true);
}};
builder
.addAction(R.drawable.ic_phone_white_24dp, context.getString(R.string.MCA_return_call), PendingIntent.getActivity(context, callNow.hashCode(), callNow, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(R.drawable.ic_add_white_24dp, context.getString(R.string.MCA_add_task), PendingIntent.getActivity(context, callLater.hashCode(), callLater, PendingIntent.FLAG_UPDATE_CURRENT));
}
activateNotification(1, number.hashCode(), builder.build(), null);
}
private Bitmap getContactImage(long contactId) {
Bitmap b = null;
if (contactId >= 0) {
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, contactId);
InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(context.getContentResolver(), uri);
try {
b = BitmapFactory.decodeStream(input);
} catch (OutOfMemoryError e) {
log.error(e.getMessage(), e);
}
}
return b;
}
public void triggerFilterNotification(final String title, final String query, final String valuesForNewTasks) {
TodorooCursor<Task> taskTodorooCursor = null; TodorooCursor<Task> taskTodorooCursor = null;
int count; int count;
try { try {
@ -90,7 +159,22 @@ public class Notifier {
String subtitle = context.getString(R.string.task_count, count); String subtitle = context.getString(R.string.task_count, count);
showFilterNotification(title, subtitle, query, valuesForNewTasks); PendingIntent pendingIntent = PendingIntent.getActivity(context, (title + query).hashCode(), new Intent(context, TaskListActivity.class) {{
setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK);
putExtra(TaskListActivity.TOKEN_SWITCH_TO_FILTER, new Filter(title, query, AndroidUtilities.contentValuesFromSerializedString(valuesForNewTasks)));
}}, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid)
.setTicker(title)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(subtitle)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.build();
activateNotification(1, (title + query).hashCode(), notification, null);
} }
public void triggerTaskNotification(long id, int type) { public void triggerTaskNotification(long id, int type) {
@ -155,75 +239,36 @@ public class Notifier {
putExtra(NotificationActivity.EXTRA_TITLE, taskTitle); putExtra(NotificationActivity.EXTRA_TITLE, taskTitle);
}}; }};
showTaskNotification( int ringTimes1 = ringTimes;
(int) id,
id,
PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT),
type,
taskTitle,
text,
ringTimes);
return true;
}
private void showFilterNotification(final String title, String subtitle, final String query, final String valuesForNewTasks) {
PendingIntent pendingIntent = PendingIntent.getActivity(context, (title + query).hashCode(), new Intent(context, TaskListActivity.class) {{
setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_MULTIPLE_TASK);
putExtra(TaskListActivity.TOKEN_SWITCH_TO_FILTER, new Filter(title, query, AndroidUtilities.contentValuesFromSerializedString(valuesForNewTasks)));
}}, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid)
.setTicker(title)
.setWhen(System.currentTimeMillis())
.setContentTitle(title)
.setContentText(subtitle)
.setContentIntent(pendingIntent)
.setAutoCancel(true);
Notification notification = builder.build();
activateNotification(1, (title + query).hashCode(), notification, "Poop");
}
/**
* Shows an Astrid notification. Pulls in ring tone and quiet hour settings
* from preferences. You can make it say anything you like.
*
* @param ringTimes number of times to ring (-1 = nonstop)
*/
private void showTaskNotification(int notificationId, final long taskId, final PendingIntent pendingIntent, int type, String title,
String text, int ringTimes) {
// don't ring multiple times if random reminder // don't ring multiple times if random reminder
if (type == ReminderService.TYPE_RANDOM) { if (type == ReminderService.TYPE_RANDOM) {
ringTimes = 1; ringTimes1 = 1;
} }
NotificationCompat.Builder builder = new NotificationCompat.Builder(context) NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notif_astrid) .setSmallIcon(R.drawable.notif_astrid)
.setTicker(title) .setTicker(taskTitle)
.setWhen(System.currentTimeMillis()) .setWhen(System.currentTimeMillis())
.setContentTitle(title) .setContentTitle(taskTitle)
.setContentText(text) .setContentText(text)
.setContentIntent(pendingIntent); .setContentIntent(PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT));
if (preferences.useNotificationActions()) { if (preferences.useNotificationActions()) {
PendingIntent completeIntent = PendingIntent.getBroadcast(context, notificationId, new Intent(context, CompleteTaskReceiver.class) {{ PendingIntent completeIntent = PendingIntent.getBroadcast(context, (int) id, new Intent(context, CompleteTaskReceiver.class) {{
putExtra(CompleteTaskReceiver.TASK_ID, taskId); putExtra(CompleteTaskReceiver.TASK_ID, id);
}}, PendingIntent.FLAG_UPDATE_CURRENT); }}, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent snoozePendingIntent = PendingIntent.getActivity(context, notificationId, new Intent(context, SnoozeActivity.class) {{ PendingIntent snoozePendingIntent = PendingIntent.getActivity(context, (int) id, new Intent(context, SnoozeActivity.class) {{
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
putExtra(SnoozeActivity.EXTRA_TASK_ID, taskId); putExtra(SnoozeActivity.EXTRA_TASK_ID, id);
}}, PendingIntent.FLAG_UPDATE_CURRENT); }}, PendingIntent.FLAG_UPDATE_CURRENT);
builder.addAction(R.drawable.ic_check_white_24dp, context.getResources().getString(R.string.rmd_NoA_done), completeIntent) builder.addAction(R.drawable.ic_check_white_24dp, context.getResources().getString(R.string.rmd_NoA_done), completeIntent)
.addAction(R.drawable.ic_snooze_white_24dp, context.getResources().getString(R.string.rmd_NoA_snooze), snoozePendingIntent); .addAction(R.drawable.ic_snooze_white_24dp, context.getResources().getString(R.string.rmd_NoA_snooze), snoozePendingIntent);
} }
Notification notification = builder.build(); activateNotification(ringTimes1, (int) id, builder.build(), text);
activateNotification(ringTimes, notificationId, notification, text); return true;
} }
private void activateNotification(int ringTimes, int notificationId, Notification notification, String text) { private void activateNotification(int ringTimes, int notificationId, Notification notification, String text) {
@ -236,7 +281,7 @@ public class Notifier {
notification.defaults = Notification.DEFAULT_LIGHTS; notification.defaults = Notification.DEFAULT_LIGHTS;
} }
boolean voiceReminder = preferences.getBoolean(R.string.p_voiceRemindersEnabled, false); boolean voiceReminder = preferences.getBoolean(R.string.p_voiceRemindersEnabled, false) && !isNullOrEmpty(text);
// if multi-ring is activated and the setting p_rmd_maxvolume allows it, set up the flags for insistent // if multi-ring is activated and the setting p_rmd_maxvolume allows it, set up the flags for insistent
// notification, and increase the volume to full volume, so the user // notification, and increase the volume to full volume, so the user

@ -10,7 +10,6 @@ import com.todoroo.astrid.activity.FilterShortcutActivity;
import com.todoroo.astrid.activity.ShareLinkActivity; import com.todoroo.astrid.activity.ShareLinkActivity;
import com.todoroo.astrid.activity.TaskEditActivity; import com.todoroo.astrid.activity.TaskEditActivity;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
import com.todoroo.astrid.calls.MissedCallActivity;
import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.CustomFilterActivity;
import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.DefaultsPreferences;
import com.todoroo.astrid.core.OldTaskPreferences; import com.todoroo.astrid.core.OldTaskPreferences;
@ -42,6 +41,7 @@ import org.tasks.preferences.BasicPreferences;
import org.tasks.preferences.DateShortcutPreferences; import org.tasks.preferences.DateShortcutPreferences;
import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.HelpAndFeedbackActivity;
import org.tasks.preferences.MiscellaneousPreferences; import org.tasks.preferences.MiscellaneousPreferences;
import org.tasks.reminders.MissedCallActivity;
import org.tasks.reminders.NotificationActivity; import org.tasks.reminders.NotificationActivity;
import org.tasks.reminders.SnoozeActivity; import org.tasks.reminders.SnoozeActivity;
import org.tasks.voice.VoiceCommandActivity; import org.tasks.voice.VoiceCommandActivity;

@ -5,6 +5,7 @@ import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentActivity;
import org.tasks.dialogs.LocationPickerDialog; import org.tasks.dialogs.LocationPickerDialog;
import org.tasks.reminders.MissedCallDialog;
import org.tasks.reminders.NotificationDialog; import org.tasks.reminders.NotificationDialog;
import org.tasks.reminders.SnoozeDialog; import org.tasks.reminders.SnoozeDialog;
@ -15,7 +16,8 @@ import dagger.Provides;
injects = { injects = {
LocationPickerDialog.class, LocationPickerDialog.class,
NotificationDialog.class, NotificationDialog.class,
SnoozeDialog.class SnoozeDialog.class,
MissedCallDialog.class
}, },
library = true) library = true)
public class DialogFragmentModule { public class DialogFragmentModule {

@ -12,6 +12,7 @@ import com.todoroo.astrid.subtasks.SubtasksListFragment;
import com.todoroo.astrid.subtasks.SubtasksTagListFragment; import com.todoroo.astrid.subtasks.SubtasksTagListFragment;
import com.todoroo.astrid.ui.QuickAddBar; import com.todoroo.astrid.ui.QuickAddBar;
import org.tasks.reminders.MissedCallDialog;
import org.tasks.ui.NavigationDrawerFragment; import org.tasks.ui.NavigationDrawerFragment;
import javax.inject.Singleton; import javax.inject.Singleton;

@ -150,6 +150,14 @@ public class Preferences {
} }
} }
public boolean notificationsEnabled() {
return getBoolean(R.string.p_rmd_enabled, true);
}
public boolean fieldMissedPhoneCalls() {
return getBoolean(R.string.p_field_missed_calls, true) && notificationsEnabled();
}
public boolean getBoolean(int keyResources, boolean defValue) { public boolean getBoolean(int keyResources, boolean defValue) {
return getBoolean(context.getString(keyResources), defValue); return getBoolean(context.getString(keyResources), defValue);
} }

@ -0,0 +1,97 @@
package org.tasks.reminders;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentManager;
import android.text.TextUtils;
import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.service.TaskService;
import org.tasks.R;
import org.tasks.injection.InjectingAppCompatActivity;
import org.tasks.intents.TaskIntents;
import org.tasks.notifications.NotificationManager;
import javax.inject.Inject;
public class MissedCallActivity extends InjectingAppCompatActivity implements DialogInterface.OnDismissListener, MissedCallDialog.MissedCallHandler {
private static final String FRAG_TAG_MISSED_CALL_FRAGMENT = "frag_tag_missed_call_fragment";
public static final String EXTRA_NUMBER = "number"; //$NON-NLS-1$
public static final String EXTRA_NAME = "name"; //$NON-NLS-1$
public static final String EXTRA_TITLE = "extra_title";
public static final String EXTRA_CALL_NOW = "extra_call_now";
public static final String EXTRA_CALL_LATER = "extra_call_later";
@Inject TaskService taskService;
@Inject NotificationManager notificationManager;
private String name;
private String number;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
name = intent.getStringExtra(EXTRA_NAME);
number = intent.getStringExtra(EXTRA_NUMBER);
if (intent.getBooleanExtra(EXTRA_CALL_NOW, false)) {
callNow();
} else if (intent.getBooleanExtra(EXTRA_CALL_LATER, false)) {
callLater();
} else {
FragmentManager supportFragmentManager = getSupportFragmentManager();
MissedCallDialog fragment = (MissedCallDialog) supportFragmentManager.findFragmentByTag(FRAG_TAG_MISSED_CALL_FRAGMENT);
if (fragment == null) {
fragment = new MissedCallDialog();
fragment.setTitle(intent.getStringExtra(EXTRA_TITLE));
fragment.show(supportFragmentManager, FRAG_TAG_MISSED_CALL_FRAGMENT);
}
fragment.setOnDismissListener(this);
}
}
@Override
public void onDismiss(DialogInterface dialog) {
finish();
}
@Override
public void callNow() {
Intent call = new Intent(Intent.ACTION_VIEW);
call.setData(Uri.parse("tel:" + number)); //$NON-NLS-1$
startActivity(call);
cancelNotificationAndFinish();
}
@Override
public void callLater() {
Task task = new Task() {{
setTitle(TextUtils.isEmpty(name)
? getString(R.string.MCA_task_title_no_name, number)
: getString(R.string.MCA_task_title_name, name, number));
}};
taskService.save(task);
TaskIntents
.getEditTaskStack(this, null, task.getId())
.startActivities();
cancelNotificationAndFinish();
}
@Override
public void ignore() {
cancelNotificationAndFinish();
}
private void cancelNotificationAndFinish() {
notificationManager.cancel(number.hashCode());
finish();
}
}

@ -0,0 +1,79 @@
package org.tasks.reminders;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import org.tasks.R;
import org.tasks.dialogs.DialogBuilder;
import org.tasks.injection.InjectingDialogFragment;
import java.util.List;
import javax.inject.Inject;
import static java.util.Arrays.asList;
public class MissedCallDialog extends InjectingDialogFragment {
public interface MissedCallHandler {
void callNow();
void callLater();
void ignore();
}
@Inject DialogBuilder dialogBuilder;
private DialogInterface.OnDismissListener onDismissListener;
private String title;
MissedCallHandler handler;
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
List<String> actions = asList(
getString(R.string.MCA_return_call),
getString(R.string.MCA_add_task),
getString(R.string.MCA_ignore));
handler = (MissedCallHandler) getActivity();
return dialogBuilder.newDialog()
.setTitle(title)
.setItems(actions.toArray(new String[actions.size()]), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
handler.callNow();
break;
case 1:
handler.callLater();
break;
default:
handler.ignore();
}
}
})
.show();
}
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) {
this.onDismissListener = onDismissListener;
}
@Override
public void onDismiss(DialogInterface dialog) {
if (onDismissListener != null) {
onDismissListener.onDismiss(dialog);
}
}
public void setTitle(String title) {
this.title = title;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

@ -1,94 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
** Copyright (c) 2012 Todoroo Inc
**
** See the file "LICENSE" for the full license governing this code.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reminder_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="5dip"
android:layout_marginRight="5dip"
android:layout_marginBottom="15dip"
android:layout_marginLeft="10dip">
<ImageView
android:id="@+id/contact_picture"
android:layout_marginTop="5dip"
android:layout_marginRight="10dip"
android:visibility="gone"
android:layout_width="51dip"
android:layout_height="51dip"
android:scaleType="fitCenter" />
<TextView
android:id="@+id/reminder_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dip"
android:textSize="24sp"
android:layout_weight="1"
android:text="@string/MCA_title"/>
</LinearLayout>
<TextView
android:id="@+id/call_now"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginBottom="10dip"
android:textColor="@android:color/white"
android:textSize="24sp"
android:gravity="center"
android:text="@string/MCA_return_call"/>
<TextView
android:id="@+id/call_later"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginBottom="10dip"
android:textColor="@android:color/white"
android:textSize="24sp"
android:gravity="center"
android:text="@string/MCA_add_task"/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:layout_marginBottom="10dip">
<TextView
android:id="@+id/call_ignore"
android:layout_width="fill_parent"
android:layout_height="35dip"
android:textColor="@android:color/white"
android:textSize="24sp"
android:gravity="center"
android:text="@string/MCA_ignore"
android:background="#707070"/>
<ImageView
android:id="@+id/ignore_settings"
android:layout_alignParentRight="true"
android:layout_width="35dip"
android:layout_height="35dip"
android:padding="4dip"
android:background="@android:color/transparent"
android:scaleType="fitCenter"
android:src="@drawable/ic_settings_white_24dp"/>
</RelativeLayout>
</LinearLayout>

@ -74,8 +74,6 @@
<string name="MCA_return_call">اتصل الان</string> <string name="MCA_return_call">اتصل الان</string>
<string name="MCA_add_task">اتصل لاحقاً</string> <string name="MCA_add_task">اتصل لاحقاً</string>
<string name="MCA_ignore">تجاهل</string> <string name="MCA_ignore">تجاهل</string>
<string name="MCA_ignore_all">تجاهل جميع المكالمات</string>
<string name="MCA_ignore_this">تجاهل هذه المكالمة فقط</string>
<string name="CRA_ignore">تجاهل</string> <string name="CRA_ignore">تجاهل</string>
<string name="CRA_title">تريد قائمة للمقابلات؟</string> <string name="CRA_title">تريد قائمة للمقابلات؟</string>
<string name="CRA_ignore_all">تجاهل جميع الأحداث</string> <string name="CRA_ignore_all">تجاهل جميع الأحداث</string>

@ -102,15 +102,9 @@
<string name="TEA_control_hidden_section">----Винаги скрито----</string> <string name="TEA_control_hidden_section">----Винаги скрито----</string>
<string name="hide_until_prompt">Покажи в моят списък</string> <string name="hide_until_prompt">Покажи в моят списък</string>
<string name="TEA_load_more">Зареди повече...</string> <string name="TEA_load_more">Зареди повече...</string>
<string name="MCA_title">%1$s\n се обади на %2$s</string>
<string name="MCA_return_call">Обади се сега</string> <string name="MCA_return_call">Обади се сега</string>
<string name="MCA_add_task">Обади се по-късно</string> <string name="MCA_add_task">Обади се по-късно</string>
<string name="MCA_ignore">Игнорирай</string> <string name="MCA_ignore">Игнорирай</string>
<string name="MCA_ignore_body">Вие пренебрегнахте няколко пропуснати повиквания. Трябва ли Tasks да спре да пита за тях?</string>
<string name="MCA_ignore_all">Игнорирай всички обаждания</string>
<string name="MCA_ignore_this">Игнорирай само това обаждане</string>
<string name="MCA_missed_calls_pref_title">Пропуснати обаждания</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks ще ви уведомява за пропуснати повиквания и ще предлага да напомни да се обадите</string>
<string name="MCA_task_title_name">Обади се на %1$s на %2$s</string> <string name="MCA_task_title_name">Обади се на %1$s на %2$s</string>
<string name="MCA_task_title_no_name">Обади се на %s </string> <string name="MCA_task_title_no_name">Обади се на %s </string>
<string name="CRA_ignore">Игнорирай</string> <string name="CRA_ignore">Игнорирай</string>

@ -89,12 +89,9 @@
<string name="TEA_control_hidden_section">----Oculta-ho sempre----</string> <string name="TEA_control_hidden_section">----Oculta-ho sempre----</string>
<string name="hide_until_prompt">Mostra a la meva llista</string> <string name="hide_until_prompt">Mostra a la meva llista</string>
<string name="TEA_load_more">Carrega més...</string> <string name="TEA_load_more">Carrega més...</string>
<string name="MCA_title">En/na %1$s\nha trucat a les %2$s</string>
<string name="MCA_return_call">Truca ara</string> <string name="MCA_return_call">Truca ara</string>
<string name="MCA_add_task">Truca després</string> <string name="MCA_add_task">Truca després</string>
<string name="MCA_ignore">Ignora</string> <string name="MCA_ignore">Ignora</string>
<string name="MCA_ignore_all">Ignora totes les trucades</string>
<string name="MCA_ignore_this">Ignora només aquesta trucada</string>
<string name="MCA_task_title_name">Retorna la trucada a en/na %1$s a %2$s</string> <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="MCA_task_title_no_name">Retorna la trucada a %s</string>
<string name="EPr_title">Tasks: Paràmetres</string> <string name="EPr_title">Tasks: Paràmetres</string>

@ -95,15 +95,9 @@
<string name="TEA_control_hidden_section">-----Vždy skrývat----</string> <string name="TEA_control_hidden_section">-----Vždy skrývat----</string>
<string name="hide_until_prompt">Zobrazit v mém seznamu</string> <string name="hide_until_prompt">Zobrazit v mém seznamu</string>
<string name="TEA_load_more">Více...</string> <string name="TEA_load_more">Více...</string>
<string name="MCA_title">V %2$s volal\n%1$s</string>
<string name="MCA_return_call">Hned zavolat</string> <string name="MCA_return_call">Hned zavolat</string>
<string name="MCA_add_task">Zavolat později</string> <string name="MCA_add_task">Zavolat později</string>
<string name="MCA_ignore">Ignorovat</string> <string name="MCA_ignore">Ignorovat</string>
<string name="MCA_ignore_body">Ignoroval jste několik zmeškaných hovorů. Má Tasks ignorovat všechny?</string>
<string name="MCA_ignore_all">Ignorovat vše</string>
<string name="MCA_ignore_this">Ignorovat pouze tento</string>
<string name="MCA_missed_calls_pref_title">Hlídat zmeškané hovory</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks Vás upozorní na zmeškané hovory a připomene Vám, abyste zavolal zpět</string>
<string name="MCA_task_title_name">Zavolat %1$s zpět v %2$s</string> <string name="MCA_task_title_name">Zavolat %1$s zpět v %2$s</string>
<string name="MCA_task_title_no_name">Zavolat %s zpět</string> <string name="MCA_task_title_no_name">Zavolat %s zpět</string>
<string name="CRA_ignore">Ignorovat</string> <string name="CRA_ignore">Ignorovat</string>

@ -74,7 +74,6 @@
<string name="TEA_control_hidden_section">----Skjul altid----</string> <string name="TEA_control_hidden_section">----Skjul altid----</string>
<string name="hide_until_prompt">Vis i min liste</string> <string name="hide_until_prompt">Vis i min liste</string>
<string name="TEA_load_more">Indlæs flere...</string> <string name="TEA_load_more">Indlæs flere...</string>
<string name="MCA_title">%1$s\ncalled at %2$s</string>
<string name="CRA_ignore_all">Ignorér alle begivenheder</string> <string name="CRA_ignore_all">Ignorér alle begivenheder</string>
<string name="CRA_ignore_this">Ignorér kun denne begivenhed</string> <string name="CRA_ignore_this">Ignorér kun denne begivenhed</string>
<string name="CRA_dont_invite">Nej tak</string> <string name="CRA_dont_invite">Nej tak</string>

@ -98,15 +98,9 @@
<string name="TEA_control_hidden_section">----Immer Verbergen----</string> <string name="TEA_control_hidden_section">----Immer Verbergen----</string>
<string name="hide_until_prompt">Anzeigen in meiner Liste</string> <string name="hide_until_prompt">Anzeigen in meiner Liste</string>
<string name="TEA_load_more">Weitere laden …</string> <string name="TEA_load_more">Weitere laden …</string>
<string name="MCA_title">%1$s hat um %2$s angerufen</string>
<string name="MCA_return_call">Jetzt anrufen</string> <string name="MCA_return_call">Jetzt anrufen</string>
<string name="MCA_add_task">Später anrufen</string> <string name="MCA_add_task">Später anrufen</string>
<string name="MCA_ignore">Ignorieren</string> <string name="MCA_ignore">Ignorieren</string>
<string name="MCA_ignore_body">Sie haben mehrere versäumte Anrufe ignoriert. Soll Tasks nicht mehr danach fragen?</string>
<string name="MCA_ignore_all">Alle Anrufe ignorieren</string>
<string name="MCA_ignore_this">Nur diesen Anruf ignorieren</string>
<string name="MCA_missed_calls_pref_title">Verpasste Anrufe</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks wird Sie über versäumte Anrufe informieren und an Rückrufe erinnern</string>
<string name="MCA_task_title_name">%1$s unter %2$s zurückrufen</string> <string name="MCA_task_title_name">%1$s unter %2$s zurückrufen</string>
<string name="MCA_task_title_no_name">%s zurückrufen</string> <string name="MCA_task_title_no_name">%s zurückrufen</string>
<string name="CRA_ignore">Ablehnen</string> <string name="CRA_ignore">Ablehnen</string>

@ -93,15 +93,9 @@
<string name="TEA_control_hidden_section">-----Απόκρυψη πάντα-----</string> <string name="TEA_control_hidden_section">-----Απόκρυψη πάντα-----</string>
<string name="hide_until_prompt">Εμφάνιση στην λίστα μου</string> <string name="hide_until_prompt">Εμφάνιση στην λίστα μου</string>
<string name="TEA_load_more">Φόρτωση περισσότερων</string> <string name="TEA_load_more">Φόρτωση περισσότερων</string>
<string name="MCA_title">%1$s\nκάλεσε στίς %2$s</string>
<string name="MCA_return_call">Κάλεσε τώρα</string> <string name="MCA_return_call">Κάλεσε τώρα</string>
<string name="MCA_add_task">Κάλεσε αργότερα</string> <string name="MCA_add_task">Κάλεσε αργότερα</string>
<string name="MCA_ignore">Αγνοήστε</string> <string name="MCA_ignore">Αγνοήστε</string>
<string name="MCA_ignore_body">Αγνοήσατε αρκετές κλήσεις. Να σταματήσουμε να ρωτάμε για αυτές;</string>
<string name="MCA_ignore_all">Αγνόηση όλων των χαμένων κλησεων</string>
<string name="MCA_ignore_this">Άγνόηση μόνο αυτής της κλήσης</string>
<string name="MCA_missed_calls_pref_title">Πεδίο αναπάντητων κλήσεων</string>
<string name="MCA_missed_calls_pref_desc_enabled">Η εφαρμογή θα σας ενημερώσει για αναπάντητες κλήσεις και θα σας υπενθυμίσει για να τις απαντήσετε μετά</string>
<string name="MCA_task_title_name">Ξανακαλέστε %1$s στίς %2$s</string> <string name="MCA_task_title_name">Ξανακαλέστε %1$s στίς %2$s</string>
<string name="MCA_task_title_no_name">Ξανακαλέστε %s</string> <string name="MCA_task_title_no_name">Ξανακαλέστε %s</string>
<string name="CRA_ignore">Αγνοήστε</string> <string name="CRA_ignore">Αγνοήστε</string>

@ -99,15 +99,9 @@
<string name="TEA_control_hidden_section">---Ocultar Siempre---</string> <string name="TEA_control_hidden_section">---Ocultar Siempre---</string>
<string name="hide_until_prompt">Mostrar en mi lista</string> <string name="hide_until_prompt">Mostrar en mi lista</string>
<string name="TEA_load_more">Cargar mas...</string> <string name="TEA_load_more">Cargar mas...</string>
<string name="MCA_title">%1$s\nllamó a las %2$s</string>
<string name="MCA_return_call">Llamar ahora</string> <string name="MCA_return_call">Llamar ahora</string>
<string name="MCA_add_task">Llamar luego</string> <string name="MCA_add_task">Llamar luego</string>
<string name="MCA_ignore">Ignorar</string> <string name="MCA_ignore">Ignorar</string>
<string name="MCA_ignore_body">Ha ignorado varias llamadas perdidas. ¿Quiere que Tasks deje de preguntarle sobre ellas?</string>
<string name="MCA_ignore_all">Ignorar todas las llamadas</string>
<string name="MCA_ignore_this">Ignorar solamente esta llamada</string>
<string name="MCA_missed_calls_pref_title">Campo de llamadas perdidas</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks le notificará de las llamadas perdidas y le recordará que devuelva la llamada.</string>
<string name="MCA_task_title_name">Devolver la llamada a %1$s al %2$s</string> <string name="MCA_task_title_name">Devolver la llamada a %1$s al %2$s</string>
<string name="MCA_task_title_no_name">Devolver la llamada a %s</string> <string name="MCA_task_title_no_name">Devolver la llamada a %s</string>
<string name="CRA_ignore">Ignorar</string> <string name="CRA_ignore">Ignorar</string>

@ -97,15 +97,9 @@
<string name="TEA_control_hidden_section">---- Toujours masquer ----</string> <string name="TEA_control_hidden_section">---- Toujours masquer ----</string>
<string name="hide_until_prompt">Montrer dans ma liste</string> <string name="hide_until_prompt">Montrer dans ma liste</string>
<string name="TEA_load_more">Charger plus...</string> <string name="TEA_load_more">Charger plus...</string>
<string name="MCA_title">\"%1$s\na appelé à %2$s\"</string>
<string name="MCA_return_call">Appeler maintenant</string> <string name="MCA_return_call">Appeler maintenant</string>
<string name="MCA_add_task">Appeler plus tard</string> <string name="MCA_add_task">Appeler plus tard</string>
<string name="MCA_ignore">Ignorer</string> <string name="MCA_ignore">Ignorer</string>
<string name="MCA_ignore_body">Vous avez ignoré plusieurs appels manqués. Tasks doit-il arrêter de vous questionner à ce propos?</string>
<string name="MCA_ignore_all">Ignorer tous les appels</string>
<string name="MCA_ignore_this">Ignorer cet appel seulement</string>
<string name="MCA_missed_calls_pref_title">Champ des appels manqués.</string>
<string name="MCA_missed_calls_pref_desc_enabled">Atrid vous avertira en cas d\'appels manqués et vous proposera de rappeler.</string>
<string name="MCA_task_title_name">Rappeler %1$s au %2$s</string> <string name="MCA_task_title_name">Rappeler %1$s au %2$s</string>
<string name="MCA_task_title_no_name">Rappeler %s</string> <string name="MCA_task_title_no_name">Rappeler %s</string>
<string name="CRA_ignore">Ignorer</string> <string name="CRA_ignore">Ignorer</string>

@ -83,15 +83,9 @@
<string name="TEA_control_hidden_section">----Nascondi Sempre----</string> <string name="TEA_control_hidden_section">----Nascondi Sempre----</string>
<string name="hide_until_prompt">Mostra nella mia lista</string> <string name="hide_until_prompt">Mostra nella mia lista</string>
<string name="TEA_load_more">Caricane di più...</string> <string name="TEA_load_more">Caricane di più...</string>
<string name="MCA_title">%1$s\nha chiamato alle %2$s</string>
<string name="MCA_return_call">Chiama ora</string> <string name="MCA_return_call">Chiama ora</string>
<string name="MCA_add_task">Chiama più tardi</string> <string name="MCA_add_task">Chiama più tardi</string>
<string name="MCA_ignore">Ignora</string> <string name="MCA_ignore">Ignora</string>
<string name="MCA_ignore_body">Tu hai ignorato varie chiamate perse. Tasks dovrebbe smettere di chiedere a riguardo?</string>
<string name="MCA_ignore_all">Ignora tutte le chiamate</string>
<string name="MCA_ignore_this">Ignora solo questa chiamata</string>
<string name="MCA_missed_calls_pref_title">Campo chiamate perse</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks ti notificherà per le chiamate perse e ti offrirà di ricordarti di richiamare</string>
<string name="MCA_task_title_name">Richiama %1$s al %2$s</string> <string name="MCA_task_title_name">Richiama %1$s al %2$s</string>
<string name="MCA_task_title_no_name">Richiama %s</string> <string name="MCA_task_title_no_name">Richiama %s</string>
<string name="CRA_ignore">Ignora</string> <string name="CRA_ignore">Ignora</string>

@ -93,15 +93,9 @@
<string name="TEA_control_hidden_section">----מוסתר תמיד----</string> <string name="TEA_control_hidden_section">----מוסתר תמיד----</string>
<string name="hide_until_prompt">הצג ברשימה שלי</string> <string name="hide_until_prompt">הצג ברשימה שלי</string>
<string name="TEA_load_more">טען עוד...</string> <string name="TEA_load_more">טען עוד...</string>
<string name="MCA_title">%1$s \nהתקשר ב־%2$s</string>
<string name="MCA_return_call">התקשר כעת</string> <string name="MCA_return_call">התקשר כעת</string>
<string name="MCA_add_task">התקשר מאוחר יותר</string> <string name="MCA_add_task">התקשר מאוחר יותר</string>
<string name="MCA_ignore">התעלם</string> <string name="MCA_ignore">התעלם</string>
<string name="MCA_ignore_body">התעלמת ממספר שיחות שלא נענו. האם עלי לחדול מלהזכיר שיחות שלא נענו?</string>
<string name="MCA_ignore_all">התעלם מכל השיחות</string>
<string name="MCA_ignore_this">התעלם משיחה זו בלבד</string>
<string name="MCA_missed_calls_pref_title">תייק שיחות שלא נענו</string>
<string name="MCA_missed_calls_pref_desc_enabled">אסטריד תודיע לך על שיחות שלא נענו, ותציע להזכיר לך להחזיר שיחה.</string>
<string name="MCA_task_title_name">\"החזר שיחה ל־%1$s ב־%2$s\"</string> <string name="MCA_task_title_name">\"החזר שיחה ל־%1$s ב־%2$s\"</string>
<string name="MCA_task_title_no_name">החזר שיחה ל־%s</string> <string name="MCA_task_title_no_name">החזר שיחה ל־%s</string>
<string name="CRA_ignore">התעלם</string> <string name="CRA_ignore">התעלם</string>

@ -100,15 +100,9 @@
<string name="TEA_control_hidden_section">----常に隠す----</string> <string name="TEA_control_hidden_section">----常に隠す----</string>
<string name="hide_until_prompt">私のリストに表示</string> <string name="hide_until_prompt">私のリストに表示</string>
<string name="TEA_load_more">さらに読み込む...</string> <string name="TEA_load_more">さらに読み込む...</string>
<string name="MCA_title">%1$s\n%2$s に呼び出しがありました</string>
<string name="MCA_return_call">いますぐ呼び出し</string> <string name="MCA_return_call">いますぐ呼び出し</string>
<string name="MCA_add_task">後で呼び出し</string> <string name="MCA_add_task">後で呼び出し</string>
<string name="MCA_ignore">無視する</string> <string name="MCA_ignore">無視する</string>
<string name="MCA_ignore_body">いくつかの応答しなかった呼び出しを無視しました. その報告を停止しますか?</string>
<string name="MCA_ignore_all">すべての呼び出しを無視する</string>
<string name="MCA_ignore_this">この呼び出しのみ無視する</string>
<string name="MCA_missed_calls_pref_title">応答しなかった呼び出しの項目</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks は応答しなかった呼び出しを通知して折り返し連絡するようにリマインドします</string>
<string name="MCA_task_title_name">%1$s に %2$s 折り返し連絡</string> <string name="MCA_task_title_name">%1$s に %2$s 折り返し連絡</string>
<string name="MCA_task_title_no_name">%s に折り返し連絡</string> <string name="MCA_task_title_no_name">%s に折り返し連絡</string>
<string name="CRA_ignore">無視する</string> <string name="CRA_ignore">無視する</string>

@ -100,15 +100,9 @@
<string name="TEA_control_hidden_section">----항상 숨김----</string> <string name="TEA_control_hidden_section">----항상 숨김----</string>
<string name="hide_until_prompt">내 목록에 표시</string> <string name="hide_until_prompt">내 목록에 표시</string>
<string name="TEA_load_more">더 불러오기...</string> <string name="TEA_load_more">더 불러오기...</string>
<string name="MCA_title">%1$s\n받은 시간: %2$s</string>
<string name="MCA_return_call">지금 전화하기</string> <string name="MCA_return_call">지금 전화하기</string>
<string name="MCA_add_task">나중에 전화하기</string> <string name="MCA_add_task">나중에 전화하기</string>
<string name="MCA_ignore">무시하기</string> <string name="MCA_ignore">무시하기</string>
<string name="MCA_ignore_body">부재중 전화를 몇 번 무시했습니다. Tasks의 부재중 전화 알림을 중지할까요?</string>
<string name="MCA_ignore_all">모든 전화 무시하기</string>
<string name="MCA_ignore_this">이 전화만 무시하기</string>
<string name="MCA_missed_calls_pref_title">부재중 전화 처리</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks는 부재중 전화 내역과 이를 회신할 수 있도록 알려줍니다</string>
<string name="MCA_task_title_name">%1$s 님에게 %2$s 에 다시 연락하세요</string> <string name="MCA_task_title_name">%1$s 님에게 %2$s 에 다시 연락하세요</string>
<string name="MCA_task_title_no_name">%s 님에게 다시 연락하세요</string> <string name="MCA_task_title_no_name">%s 님에게 다시 연락하세요</string>
<string name="CRA_ignore">무시하기</string> <string name="CRA_ignore">무시하기</string>

@ -95,15 +95,9 @@
<string name="TEA_control_hidden_section">----Altijd Verbergen----</string> <string name="TEA_control_hidden_section">----Altijd Verbergen----</string>
<string name="hide_until_prompt">Laat zien in mijn lijst</string> <string name="hide_until_prompt">Laat zien in mijn lijst</string>
<string name="TEA_load_more">Laad meer...</string> <string name="TEA_load_more">Laad meer...</string>
<string name="MCA_title">%1$s\nheeft gebeld op (%2$s)</string>
<string name="MCA_return_call">Bel nu</string> <string name="MCA_return_call">Bel nu</string>
<string name="MCA_add_task">Bel later</string> <string name="MCA_add_task">Bel later</string>
<string name="MCA_ignore">Negeren</string> <string name="MCA_ignore">Negeren</string>
<string name="MCA_ignore_body">Je hebt alle gemiste oproepen genegeerd. Moet Tasks je er niet meer naar vragen?</string>
<string name="MCA_ignore_all">Negeer alle oproepen</string>
<string name="MCA_ignore_this">Negeer alleen deze oproep</string>
<string name="MCA_missed_calls_pref_title">Veld gemiste oproepen</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks zal gemiste oproepen laten zien en een herinnering weergeven om terug te bellen</string>
<string name="MCA_task_title_name">Bel %1$s terug op %2$s</string> <string name="MCA_task_title_name">Bel %1$s terug op %2$s</string>
<string name="MCA_task_title_no_name">Bel %s terug</string> <string name="MCA_task_title_no_name">Bel %s terug</string>
<string name="CRA_ignore">Negeren</string> <string name="CRA_ignore">Negeren</string>

@ -94,15 +94,9 @@
<string name="TEA_control_hidden_section">----Zawsze Ukryte----</string> <string name="TEA_control_hidden_section">----Zawsze Ukryte----</string>
<string name="hide_until_prompt">Pokaż na mojej liście</string> <string name="hide_until_prompt">Pokaż na mojej liście</string>
<string name="TEA_load_more">Wczytaj więcej...</string> <string name="TEA_load_more">Wczytaj więcej...</string>
<string name="MCA_title">%1$s\ndzwonił\\-a o %2$s</string>
<string name="MCA_return_call">Zadzwoń teraz</string> <string name="MCA_return_call">Zadzwoń teraz</string>
<string name="MCA_add_task">Zadzwoń później</string> <string name="MCA_add_task">Zadzwoń później</string>
<string name="MCA_ignore">Ignoruj</string> <string name="MCA_ignore">Ignoruj</string>
<string name="MCA_ignore_body">Zignorowano kilka nieodebranych połączeń. Czy Tasks ma Cię już więcej o nie nie pytać?</string>
<string name="MCA_ignore_all">Zignoruj wszystkie połączenia.</string>
<string name="MCA_ignore_this">Zignoruj tylko to połączenie.</string>
<string name="MCA_missed_calls_pref_title">Obszar nieodebranych połączeń</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks będzie powiadamiał Cię o nieodebranych połączeniach i przypomni Ci o oddzwonieniu.</string>
<string name="MCA_task_title_name">Oddzwoń do %1$s o %2$s</string> <string name="MCA_task_title_name">Oddzwoń do %1$s o %2$s</string>
<string name="MCA_task_title_no_name">Oddzwoń do %s</string> <string name="MCA_task_title_no_name">Oddzwoń do %s</string>
<string name="CRA_ignore">Ignoruj</string> <string name="CRA_ignore">Ignoruj</string>

@ -93,15 +93,9 @@
<string name="TEA_control_hidden_section">----Esconder Sempre---</string> <string name="TEA_control_hidden_section">----Esconder Sempre---</string>
<string name="hide_until_prompt">Mostrar na minha lista</string> <string name="hide_until_prompt">Mostrar na minha lista</string>
<string name="TEA_load_more">Carregar mais...</string> <string name="TEA_load_more">Carregar mais...</string>
<string name="MCA_title">%1$s\nligou às %2$s</string>
<string name="MCA_return_call">Ligar agora</string> <string name="MCA_return_call">Ligar agora</string>
<string name="MCA_add_task">Ligar mais tarde</string> <string name="MCA_add_task">Ligar mais tarde</string>
<string name="MCA_ignore">Ignorar</string> <string name="MCA_ignore">Ignorar</string>
<string name="MCA_ignore_body">Você ignorou várias chamadas perdidas. Tasks deve para de perguntar sobre elas?</string>
<string name="MCA_ignore_all">Ignorar todas as chamadas</string>
<string name="MCA_ignore_this">Ignorar esta chamada apenas</string>
<string name="MCA_missed_calls_pref_title">Campo chamadas perdidas</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks notificará sobre chamadas perdidas e oferecerá para lhe lembrar para ligar de volta</string>
<string name="MCA_task_title_name">Retornar ligação de %1$s às %2$s</string> <string name="MCA_task_title_name">Retornar ligação de %1$s às %2$s</string>
<string name="MCA_task_title_no_name">Retornar ligação de %s</string> <string name="MCA_task_title_no_name">Retornar ligação de %s</string>
<string name="CRA_ignore">Ignorar</string> <string name="CRA_ignore">Ignorar</string>

@ -98,15 +98,9 @@
<string name="TEA_control_hidden_section">----Ocultar sempre----</string> <string name="TEA_control_hidden_section">----Ocultar sempre----</string>
<string name="hide_until_prompt">Mostrar na minha lista</string> <string name="hide_until_prompt">Mostrar na minha lista</string>
<string name="TEA_load_more">Carregar mais...</string> <string name="TEA_load_more">Carregar mais...</string>
<string name="MCA_title">%1$s\nchamado a %2$s</string>
<string name="MCA_return_call">Chamar agora</string> <string name="MCA_return_call">Chamar agora</string>
<string name="MCA_add_task">Chamar mais tarde</string> <string name="MCA_add_task">Chamar mais tarde</string>
<string name="MCA_ignore">Ignorar</string> <string name="MCA_ignore">Ignorar</string>
<string name="MCA_ignore_body">Você ignorou várias chamadas perdidas. Pretende que o Tasks não o notifique novamente?</string>
<string name="MCA_ignore_all">Ignorar todas as chamadas</string>
<string name="MCA_ignore_this">Ignorar apenas esta chamada</string>
<string name="MCA_missed_calls_pref_title">Chamadas perdidas</string>
<string name="MCA_missed_calls_pref_desc_enabled">O Tasks irá notificar sobre as chamadas perdidas e lembrar-lhe para fazer as ligações</string>
<string name="MCA_task_title_name">Ligar a %1$s às %2$s</string> <string name="MCA_task_title_name">Ligar a %1$s às %2$s</string>
<string name="MCA_task_title_no_name">Ligar a %s</string> <string name="MCA_task_title_no_name">Ligar a %s</string>
<string name="CRA_ignore">Ignorar</string> <string name="CRA_ignore">Ignorar</string>

@ -97,15 +97,9 @@
<string name="TEA_control_hidden_section">Всегда скрывать</string> <string name="TEA_control_hidden_section">Всегда скрывать</string>
<string name="hide_until_prompt">Показать в моем листе</string> <string name="hide_until_prompt">Показать в моем листе</string>
<string name="TEA_load_more">Загрузить больше...</string> <string name="TEA_load_more">Загрузить больше...</string>
<string name="MCA_title">%1$s\nзвонил(а) в %2$s</string>
<string name="MCA_return_call">Позвонить сейчас</string> <string name="MCA_return_call">Позвонить сейчас</string>
<string name="MCA_add_task">Позвонить позже</string> <string name="MCA_add_task">Позвонить позже</string>
<string name="MCA_ignore">Игнорировать</string> <string name="MCA_ignore">Игнорировать</string>
<string name="MCA_ignore_body">Вы проигнорировали несколько пропущенных звонков. Больше не спрашивать про них?</string>
<string name="MCA_ignore_all">Игнорировать все звонки</string>
<string name="MCA_ignore_this">Игнорировать только этот звонок</string>
<string name="MCA_missed_calls_pref_title">Пропущенные звонки</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks будет уведомлять вас о пропущенных звонках и предложит вам перезвонить</string>
<string name="MCA_task_title_name">Перезвонить %1$s в %2$s</string> <string name="MCA_task_title_name">Перезвонить %1$s в %2$s</string>
<string name="MCA_task_title_no_name">Перезвонить %s</string> <string name="MCA_task_title_no_name">Перезвонить %s</string>
<string name="CRA_ignore">Игнорировать</string> <string name="CRA_ignore">Игнорировать</string>

@ -97,15 +97,9 @@
<string name="TEA_control_hidden_section">----Skryť vždy----</string> <string name="TEA_control_hidden_section">----Skryť vždy----</string>
<string name="hide_until_prompt">Zobraziť v mojom zozname</string> <string name="hide_until_prompt">Zobraziť v mojom zozname</string>
<string name="TEA_load_more">Načítať viac</string> <string name="TEA_load_more">Načítať viac</string>
<string name="MCA_title">%1$s\nti volal/-a o %2$s</string>
<string name="MCA_return_call">Volať teraz</string> <string name="MCA_return_call">Volať teraz</string>
<string name="MCA_add_task">Volať neskôr</string> <string name="MCA_add_task">Volať neskôr</string>
<string name="MCA_ignore">Ignorovať</string> <string name="MCA_ignore">Ignorovať</string>
<string name="MCA_ignore_body">Ignoroval si niekoľko zmeškaných hovorov. Chceš aby sa Tasks prestali na ne pýtať?</string>
<string name="MCA_ignore_all">Ignorovať všetky hovory</string>
<string name="MCA_ignore_this">Ignorovať iba tento hovor</string>
<string name="MCA_missed_calls_pref_title">Zachytiť zmeškané hovory</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks ťa upozorní na zmeškané hovory a ponúkne ti pripomienku na zavolanie späť</string>
<string name="MCA_task_title_name">Zavolať %1$s späť o %2$s</string> <string name="MCA_task_title_name">Zavolať %1$s späť o %2$s</string>
<string name="MCA_task_title_no_name">Zavolať %s späť</string> <string name="MCA_task_title_no_name">Zavolať %s späť</string>
<string name="CRA_ignore">Ignorovať</string> <string name="CRA_ignore">Ignorovať</string>

@ -97,15 +97,9 @@
<string name="TEA_control_hidden_section">----Vedno skrij----</string> <string name="TEA_control_hidden_section">----Vedno skrij----</string>
<string name="hide_until_prompt">Pokaži v mojem seznamu</string> <string name="hide_until_prompt">Pokaži v mojem seznamu</string>
<string name="TEA_load_more">Naloži še...</string> <string name="TEA_load_more">Naloži še...</string>
<string name="MCA_title">%1$s\nbil klican ob%2$s</string>
<string name="MCA_return_call">Kliči zdaj</string> <string name="MCA_return_call">Kliči zdaj</string>
<string name="MCA_add_task">Kliči kasneje</string> <string name="MCA_add_task">Kliči kasneje</string>
<string name="MCA_ignore">Ignoriraj</string> <string name="MCA_ignore">Ignoriraj</string>
<string name="MCA_ignore_body">Ignorirali ste številne zgrešene klice. Naj vas aplikacija Opravki neha spraševati o zgrešenih klicih?</string>
<string name="MCA_ignore_all">Ignoriraj vse klice</string>
<string name="MCA_ignore_this">Ignoriraj samo ta klic</string>
<string name="MCA_missed_calls_pref_title">Zabeleži zgrešene klice</string>
<string name="MCA_missed_calls_pref_desc_enabled">Aplikacija Opravki vas bo obvestila o zgrešenih klicih in ponudila opomnik za vrnitev klicev</string>
<string name="MCA_task_title_name">%1$s pokliči nazaj ob %2$s</string> <string name="MCA_task_title_name">%1$s pokliči nazaj ob %2$s</string>
<string name="MCA_task_title_no_name">Vrni klic %s </string> <string name="MCA_task_title_no_name">Vrni klic %s </string>
<string name="CRA_ignore">Ignoriraj</string> <string name="CRA_ignore">Ignoriraj</string>

@ -94,15 +94,9 @@
<string name="TEA_control_hidden_section">----Göm alltid----</string> <string name="TEA_control_hidden_section">----Göm alltid----</string>
<string name="hide_until_prompt">Visa i min lista</string> <string name="hide_until_prompt">Visa i min lista</string>
<string name="TEA_load_more">Ladda mer...</string> <string name="TEA_load_more">Ladda mer...</string>
<string name="MCA_title">%1$s\nringde kl %2$s</string>
<string name="MCA_return_call">Ring nu</string> <string name="MCA_return_call">Ring nu</string>
<string name="MCA_add_task">Ring senare</string> <string name="MCA_add_task">Ring senare</string>
<string name="MCA_ignore">Ignorera</string> <string name="MCA_ignore">Ignorera</string>
<string name="MCA_ignore_body">Du har ignorerat flera missade samtal. Vill du att Tasks slutar fråga dig om dem?</string>
<string name="MCA_ignore_all">Ignorera alla samtal</string>
<string name="MCA_ignore_this">Ignorera endast detta samtal</string>
<string name="MCA_missed_calls_pref_title">Fält missade samtal</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks meddelar dig om missade samtal och ger dig möjligheten att få påminnelse om att ringa tillbaka</string>
<string name="MCA_task_title_name">Ring %1$s tillbaka kl %2$s</string> <string name="MCA_task_title_name">Ring %1$s tillbaka kl %2$s</string>
<string name="MCA_task_title_no_name">Ring %s tillbaka</string> <string name="MCA_task_title_no_name">Ring %s tillbaka</string>
<string name="CRA_ignore">Ignorera</string> <string name="CRA_ignore">Ignorera</string>

@ -82,15 +82,9 @@
<string name="TEA_control_hidden_section">----Her Zaman Gizle----</string> <string name="TEA_control_hidden_section">----Her Zaman Gizle----</string>
<string name="hide_until_prompt">Listemde göster</string> <string name="hide_until_prompt">Listemde göster</string>
<string name="TEA_load_more">Daha yükle...</string> <string name="TEA_load_more">Daha yükle...</string>
<string name="MCA_title">%1$s aradı\nzamanı: %2$s</string>
<string name="MCA_return_call">Şimdi ara</string> <string name="MCA_return_call">Şimdi ara</string>
<string name="MCA_add_task">Sonra ara</string> <string name="MCA_add_task">Sonra ara</string>
<string name="MCA_ignore">Yoksay</string> <string name="MCA_ignore">Yoksay</string>
<string name="MCA_ignore_body">Birkaç çağrıyı yoksaydınız. Tasks bunlar hakkında soru sormayı kessin mi?</string>
<string name="MCA_ignore_all">Tüm çağrıları yoksay</string>
<string name="MCA_ignore_this">Yalnızca bu çağrıyı yoksay</string>
<string name="MCA_missed_calls_pref_title">Cevapsız çağrı alanı</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks cevapsız çağrıları size bildirecek ve geri aramanız için hatırlatacak</string>
<string name="MCA_task_title_name">%1$s kişisini geri ara: %2$s</string> <string name="MCA_task_title_name">%1$s kişisini geri ara: %2$s</string>
<string name="MCA_task_title_no_name">%s kişisini geri ara</string> <string name="MCA_task_title_no_name">%s kişisini geri ara</string>
<string name="CRA_ignore">Yoksay</string> <string name="CRA_ignore">Yoksay</string>

@ -97,15 +97,9 @@
<string name="TEA_control_hidden_section">----Приховувати завжди----</string> <string name="TEA_control_hidden_section">----Приховувати завжди----</string>
<string name="hide_until_prompt">Показувати в мому списку</string> <string name="hide_until_prompt">Показувати в мому списку</string>
<string name="TEA_load_more">Завантажити більше...</string> <string name="TEA_load_more">Завантажити більше...</string>
<string name="MCA_title">%1$s\nтелефонував о %2$s</string>
<string name="MCA_return_call">Зателефонувати зараз</string> <string name="MCA_return_call">Зателефонувати зараз</string>
<string name="MCA_add_task">Зателефонувати пізніше</string> <string name="MCA_add_task">Зателефонувати пізніше</string>
<string name="MCA_ignore">Ігнорувати</string> <string name="MCA_ignore">Ігнорувати</string>
<string name="MCA_ignore_body">Ви проігнорували декілька пропущених дзвінків. Більше не запитувати про них?</string>
<string name="MCA_ignore_all">Ігнорувати всі дзвінки</string>
<string name="MCA_ignore_this">Ігнорувати лише цей дзвінок</string>
<string name="MCA_missed_calls_pref_title">Область пропущених викликів</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks буде повідомляти вас про пропущені дзвінки і запропонує вам передзвонити</string>
<string name="MCA_task_title_name">Перетелефонувати %1$s о %2$s</string> <string name="MCA_task_title_name">Перетелефонувати %1$s о %2$s</string>
<string name="MCA_task_title_no_name">Перетелефонувати %s </string> <string name="MCA_task_title_no_name">Перетелефонувати %s </string>
<string name="CRA_ignore">Ігнорувати</string> <string name="CRA_ignore">Ігнорувати</string>

@ -82,15 +82,9 @@
<string name="TEA_control_hidden_section">----始终隐藏----</string> <string name="TEA_control_hidden_section">----始终隐藏----</string>
<string name="hide_until_prompt">在我的列表中显示</string> <string name="hide_until_prompt">在我的列表中显示</string>
<string name="TEA_load_more">加载更多……</string> <string name="TEA_load_more">加载更多……</string>
<string name="MCA_title">%1$s\n在 %2$s 给您打过电话</string>
<string name="MCA_return_call">现在回电</string> <string name="MCA_return_call">现在回电</string>
<string name="MCA_add_task">稍后回电</string> <string name="MCA_add_task">稍后回电</string>
<string name="MCA_ignore">忽略</string> <string name="MCA_ignore">忽略</string>
<string name="MCA_ignore_body">您已经忽略了几个未接电话。对于这些电话,清单小助理是否应该不再询问您呢?</string>
<string name="MCA_ignore_all">忽略所有来电</string>
<string name="MCA_ignore_this">只忽略这个来电</string>
<string name="MCA_missed_calls_pref_title">及时回复未接电话</string>
<string name="MCA_missed_calls_pref_desc_enabled">清单小助理会向您报告未接电话,还会提供回电的提醒</string>
<string name="MCA_task_title_name">请回电给 %1$s电话是 %2$s</string> <string name="MCA_task_title_name">请回电给 %1$s电话是 %2$s</string>
<string name="MCA_task_title_no_name">请回电给 %s</string> <string name="MCA_task_title_no_name">请回电给 %s</string>
<string name="CRA_ignore">忽略</string> <string name="CRA_ignore">忽略</string>

@ -92,15 +92,9 @@
<string name="TEA_control_hidden_section">----始終隱藏----</string> <string name="TEA_control_hidden_section">----始終隱藏----</string>
<string name="hide_until_prompt">在我的列表中顯示</string> <string name="hide_until_prompt">在我的列表中顯示</string>
<string name="TEA_load_more">加載更多……</string> <string name="TEA_load_more">加載更多……</string>
<string name="MCA_title">%1$s\n在 %2$s 給您打過電話</string>
<string name="MCA_return_call">現在回電</string> <string name="MCA_return_call">現在回電</string>
<string name="MCA_add_task">稍後回電</string> <string name="MCA_add_task">稍後回電</string>
<string name="MCA_ignore">忽略</string> <string name="MCA_ignore">忽略</string>
<string name="MCA_ignore_body">您已經忽略了幾個未接電話。對於這些電話Tasks 是否應該不再詢問您呢?</string>
<string name="MCA_ignore_all">忽略所有來電</string>
<string name="MCA_ignore_this">只忽略這個來電</string>
<string name="MCA_missed_calls_pref_title">及時回复未接電話</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks 會向您報告未接電話,還會提供回電的提醒</string>
<string name="MCA_task_title_name">請回電給 %1$s電話是 %2$s</string> <string name="MCA_task_title_name">請回電給 %1$s電話是 %2$s</string>
<string name="MCA_task_title_no_name">請回電給 %s</string> <string name="MCA_task_title_no_name">請回電給 %s</string>
<string name="CRA_ignore">忽略</string> <string name="CRA_ignore">忽略</string>

@ -207,8 +207,7 @@
<!-- ===================================================== MissedCallActivity == --> <!-- ===================================================== MissedCallActivity == -->
<!-- Missed call: return call (%1$s -> caller, %2$s -> time of call)--> <string name="missed_call">Missed call from %s</string>
<string name="MCA_title"> %1$s\ncalled at %2$s</string>
<!-- Missed call: return call --> <!-- Missed call: return call -->
<string name="MCA_return_call">Call now</string> <string name="MCA_return_call">Call now</string>
@ -218,21 +217,8 @@
<!-- Missed call: return call --> <!-- Missed call: return call -->
<string name="MCA_ignore">Ignore</string> <string name="MCA_ignore">Ignore</string>
<!-- Missed call: dialog to ignore all missed calls body -->
<string name="MCA_ignore_body">You\'ve ignored several missed calls. Should Tasks stop asking you about them?</string>
<!-- Missed call: dialog to ignore all missed calls ignore all button -->
<string name="MCA_ignore_all">Ignore all calls</string>
<!-- Missed call: dialog to ignore all missed calls ignore just this button -->
<string name="MCA_ignore_this">Ignore this call only</string>
<!-- Missed call: preference title -->
<string name="MCA_missed_calls_pref_title">Field missed calls</string>
<!-- slide 49c: Missed call: preference description --> <string name="missed_calls">Missed Calls</string>
<string name="MCA_missed_calls_pref_desc_enabled">Tasks will notify you about missed calls and offer to remind you to call back</string>
<!-- Missed call: task title with name (%1$s -> name, %2$s -> number)--> <!-- Missed call: task title with name (%1$s -> name, %2$s -> number)-->
<string name="MCA_task_title_name">Call %1$s back at %2$s</string> <string name="MCA_task_title_name">Call %1$s back at %2$s</string>

@ -12,12 +12,6 @@
android:summary="@string/EPr_voiceRemindersEnabled_desc_enabled" android:summary="@string/EPr_voiceRemindersEnabled_desc_enabled"
android:title="@string/EPr_voiceRemindersEnabled_title" /> android:title="@string/EPr_voiceRemindersEnabled_title" />
<CheckBoxPreference
android:key="@string/p_field_missed_calls"
android:summary="@string/MCA_missed_calls_pref_desc_enabled"
android:title="@string/MCA_missed_calls_pref_title"
android:defaultValue="true"/>
<CheckBoxPreference <CheckBoxPreference
android:key="@string/p_calendar_reminders" android:key="@string/p_calendar_reminders"
android:summary="@string/CRA_calendar_reminders_pref_desc_enabled" android:summary="@string/CRA_calendar_reminders_pref_desc_enabled"

@ -38,6 +38,11 @@
android:summaryOff="@string/rmd_EPr_persistent_desc_false" android:summaryOff="@string/rmd_EPr_persistent_desc_false"
android:summaryOn="@string/rmd_EPr_persistent_desc_true" android:summaryOn="@string/rmd_EPr_persistent_desc_true"
android:title="@string/rmd_EPr_persistent_title" /> android:title="@string/rmd_EPr_persistent_title" />
<CheckBoxPreference
android:defaultValue="true"
android:dependency="@string/p_rmd_enabled"
android:key="@string/p_field_missed_calls"
android:title="@string/missed_calls" />
<org.tasks.ui.TimePreference <org.tasks.ui.TimePreference
android:defaultValue="@integer/default_remind_time" android:defaultValue="@integer/default_remind_time"
android:dependency="@string/p_rmd_enabled" android:dependency="@string/p_rmd_enabled"

Loading…
Cancel
Save