From 33f1ebff3d634b88cb79564f2f2bf441a424e4b2 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 2 Jul 2015 09:43:29 -0500 Subject: [PATCH] Missed Call Notifications --- src/main/AndroidManifest.xml | 2 +- .../astrid/calls/MissedCallActivity.java | 190 ------------------ .../calls/PhoneStateChangedReceiver.java | 17 +- src/main/java/org/tasks/Notifier.java | 151 +++++++++----- .../org/tasks/injection/ActivityModule.java | 2 +- .../tasks/injection/DialogFragmentModule.java | 4 +- .../org/tasks/injection/FragmentModule.java | 1 + .../org/tasks/preferences/Preferences.java | 8 + .../tasks/reminders/MissedCallActivity.java | 97 +++++++++ .../org/tasks/reminders/MissedCallDialog.java | 79 ++++++++ .../res/drawable-hdpi/ic_phone_black_24dp.png | Bin 0 -> 326 bytes .../res/drawable-hdpi/ic_phone_white_24dp.png | Bin 0 -> 340 bytes .../drawable-xhdpi/ic_phone_black_24dp.png | Bin 0 -> 408 bytes .../drawable-xhdpi/ic_phone_white_24dp.png | Bin 0 -> 420 bytes .../drawable-xxhdpi/ic_phone_black_24dp.png | Bin 0 -> 574 bytes .../drawable-xxhdpi/ic_phone_white_24dp.png | Bin 0 -> 597 bytes src/main/res/drawable/ic_phone_black_24dp.png | Bin 0 -> 244 bytes src/main/res/drawable/ic_phone_white_24dp.png | Bin 0 -> 246 bytes src/main/res/layout/missed_call_activity.xml | 94 --------- src/main/res/values-ar/strings.xml | 2 - src/main/res/values-bg-rBG/strings.xml | 6 - src/main/res/values-ca/strings.xml | 3 - src/main/res/values-cs/strings.xml | 6 - src/main/res/values-da/strings.xml | 1 - src/main/res/values-de/strings.xml | 6 - src/main/res/values-el/strings.xml | 6 - src/main/res/values-es/strings.xml | 6 - src/main/res/values-fr/strings.xml | 6 - src/main/res/values-it/strings.xml | 6 - src/main/res/values-iw/strings.xml | 6 - src/main/res/values-ja/strings.xml | 6 - src/main/res/values-ko/strings.xml | 6 - src/main/res/values-nl/strings.xml | 6 - src/main/res/values-pl/strings.xml | 6 - src/main/res/values-pt-rBR/strings.xml | 6 - src/main/res/values-pt/strings.xml | 6 - src/main/res/values-ru/strings.xml | 6 - src/main/res/values-sk/strings.xml | 6 - src/main/res/values-sl-rSI/strings.xml | 6 - src/main/res/values-sv/strings.xml | 6 - src/main/res/values-tr/strings.xml | 6 - src/main/res/values-uk/strings.xml | 6 - src/main/res/values-zh-rCN/strings.xml | 6 - src/main/res/values-zh-rTW/strings.xml | 6 - src/main/res/values/strings-core.xml | 18 +- src/main/res/xml/preferences_misc.xml | 6 - src/main/res/xml/preferences_reminders.xml | 5 + 47 files changed, 299 insertions(+), 513 deletions(-) delete mode 100644 src/main/java/com/todoroo/astrid/calls/MissedCallActivity.java create mode 100644 src/main/java/org/tasks/reminders/MissedCallActivity.java create mode 100644 src/main/java/org/tasks/reminders/MissedCallDialog.java create mode 100644 src/main/res/drawable-hdpi/ic_phone_black_24dp.png create mode 100644 src/main/res/drawable-hdpi/ic_phone_white_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_phone_black_24dp.png create mode 100644 src/main/res/drawable-xhdpi/ic_phone_white_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_phone_black_24dp.png create mode 100644 src/main/res/drawable-xxhdpi/ic_phone_white_24dp.png create mode 100644 src/main/res/drawable/ic_phone_black_24dp.png create mode 100644 src/main/res/drawable/ic_phone_white_24dp.png delete mode 100644 src/main/res/layout/missed_call_activity.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 9f6213a30..4ee177b7f 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -321,7 +321,7 @@ android:theme="@style/Tasks"/> = 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(); - } - }); - } -} diff --git a/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java b/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java index 3c5eade1c..3226de5df 100644 --- a/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java +++ b/src/main/java/com/todoroo/astrid/calls/PhoneStateChangedReceiver.java @@ -19,14 +19,12 @@ import com.todoroo.andlib.utility.DateUtilities; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.tasks.R; +import org.tasks.Notifier; import org.tasks.injection.InjectingBroadcastReceiver; import org.tasks.preferences.Preferences; import javax.inject.Inject; -import static org.tasks.date.DateTimeUtils.newDate; - public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { 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; @Inject Preferences preferences; + @Inject Notifier notifier; @Override public void onReceive(final Context context, Intent intent) { super.onReceive(context, intent); - if (!preferences.getBoolean(R.string.p_field_missed_calls, false)) { + if (!preferences.fieldMissedPhoneCalls()) { preferences.clear(PREF_LAST_INCOMING_NUMBER); return; } @@ -119,17 +118,9 @@ public class PhoneStateChangedReceiver extends InjectingBroadcastReceiver { int nameIndex = calls.getColumnIndex(Calls.CACHED_NAME); String name = calls.getString(nameIndex); - String timeString = DateUtilities.getTimeString(context, newDate(date)); - long contactId = getContactIdFromNumber(context, number); - Intent missedCallIntent = new Intent(context, MissedCallActivity.class); - 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); + notifier.triggerMissedCallNotification(name, number, contactId); } } catch (Exception e) { log.error(e.getMessage(), e); diff --git a/src/main/java/org/tasks/Notifier.java b/src/main/java/org/tasks/Notifier.java index 136f20f4b..9a0a1a075 100644 --- a/src/main/java/org/tasks/Notifier.java +++ b/src/main/java/org/tasks/Notifier.java @@ -2,11 +2,16 @@ package org.tasks; import android.app.Notification; import android.app.PendingIntent; +import android.content.ContentUris; import android.content.Context; import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Color; import android.net.Uri; +import android.provider.ContactsContract; import android.support.v4.app.NotificationCompat; +import android.support.v4.media.MediaDescriptionCompatApi21; import android.text.TextUtils; import com.todoroo.andlib.data.TodorooCursor; @@ -30,11 +35,15 @@ import org.tasks.notifications.NotificationManager; import org.tasks.notifications.TelephonyManager; import org.tasks.preferences.Preferences; import org.tasks.receivers.CompleteTaskReceiver; +import org.tasks.reminders.MissedCallActivity; import org.tasks.reminders.NotificationActivity; import org.tasks.reminders.SnoozeActivity; +import java.io.InputStream; + import javax.inject.Inject; +import static com.google.common.base.Strings.isNullOrEmpty; import static org.tasks.date.DateTimeUtils.currentTimeMillis; public class Notifier { @@ -67,7 +76,67 @@ public class Notifier { 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 taskTodorooCursor = null; int count; try { @@ -90,7 +159,22 @@ public class Notifier { 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) { @@ -155,75 +239,36 @@ public class Notifier { putExtra(NotificationActivity.EXTRA_TITLE, taskTitle); }}; - showTaskNotification( - (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) { + int ringTimes1 = ringTimes; // don't ring multiple times if random reminder if (type == ReminderService.TYPE_RANDOM) { - ringTimes = 1; + ringTimes1 = 1; } NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.notif_astrid) - .setTicker(title) + .setTicker(taskTitle) .setWhen(System.currentTimeMillis()) - .setContentTitle(title) + .setContentTitle(taskTitle) .setContentText(text) - .setContentIntent(pendingIntent); + .setContentIntent(PendingIntent.getActivity(context, (int) id, intent, PendingIntent.FLAG_UPDATE_CURRENT)); if (preferences.useNotificationActions()) { - PendingIntent completeIntent = PendingIntent.getBroadcast(context, notificationId, new Intent(context, CompleteTaskReceiver.class) {{ - putExtra(CompleteTaskReceiver.TASK_ID, taskId); + PendingIntent completeIntent = PendingIntent.getBroadcast(context, (int) id, new Intent(context, CompleteTaskReceiver.class) {{ + putExtra(CompleteTaskReceiver.TASK_ID, id); }}, 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); - putExtra(SnoozeActivity.EXTRA_TASK_ID, taskId); + putExtra(SnoozeActivity.EXTRA_TASK_ID, id); }}, PendingIntent.FLAG_UPDATE_CURRENT); 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); } - 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) { @@ -236,7 +281,7 @@ public class Notifier { 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 // notification, and increase the volume to full volume, so the user diff --git a/src/main/java/org/tasks/injection/ActivityModule.java b/src/main/java/org/tasks/injection/ActivityModule.java index 77b4803f6..19cc994cc 100644 --- a/src/main/java/org/tasks/injection/ActivityModule.java +++ b/src/main/java/org/tasks/injection/ActivityModule.java @@ -10,7 +10,6 @@ import com.todoroo.astrid.activity.FilterShortcutActivity; import com.todoroo.astrid.activity.ShareLinkActivity; import com.todoroo.astrid.activity.TaskEditActivity; import com.todoroo.astrid.activity.TaskListActivity; -import com.todoroo.astrid.calls.MissedCallActivity; import com.todoroo.astrid.core.CustomFilterActivity; import com.todoroo.astrid.core.DefaultsPreferences; import com.todoroo.astrid.core.OldTaskPreferences; @@ -42,6 +41,7 @@ import org.tasks.preferences.BasicPreferences; import org.tasks.preferences.DateShortcutPreferences; import org.tasks.preferences.HelpAndFeedbackActivity; import org.tasks.preferences.MiscellaneousPreferences; +import org.tasks.reminders.MissedCallActivity; import org.tasks.reminders.NotificationActivity; import org.tasks.reminders.SnoozeActivity; import org.tasks.voice.VoiceCommandActivity; diff --git a/src/main/java/org/tasks/injection/DialogFragmentModule.java b/src/main/java/org/tasks/injection/DialogFragmentModule.java index 7c555640f..d6ba4933e 100644 --- a/src/main/java/org/tasks/injection/DialogFragmentModule.java +++ b/src/main/java/org/tasks/injection/DialogFragmentModule.java @@ -5,6 +5,7 @@ import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import org.tasks.dialogs.LocationPickerDialog; +import org.tasks.reminders.MissedCallDialog; import org.tasks.reminders.NotificationDialog; import org.tasks.reminders.SnoozeDialog; @@ -15,7 +16,8 @@ import dagger.Provides; injects = { LocationPickerDialog.class, NotificationDialog.class, - SnoozeDialog.class + SnoozeDialog.class, + MissedCallDialog.class }, library = true) public class DialogFragmentModule { diff --git a/src/main/java/org/tasks/injection/FragmentModule.java b/src/main/java/org/tasks/injection/FragmentModule.java index d7680a00e..153f4ee89 100644 --- a/src/main/java/org/tasks/injection/FragmentModule.java +++ b/src/main/java/org/tasks/injection/FragmentModule.java @@ -12,6 +12,7 @@ import com.todoroo.astrid.subtasks.SubtasksListFragment; import com.todoroo.astrid.subtasks.SubtasksTagListFragment; import com.todoroo.astrid.ui.QuickAddBar; +import org.tasks.reminders.MissedCallDialog; import org.tasks.ui.NavigationDrawerFragment; import javax.inject.Singleton; diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java index 2201a46fd..639443657 100644 --- a/src/main/java/org/tasks/preferences/Preferences.java +++ b/src/main/java/org/tasks/preferences/Preferences.java @@ -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) { return getBoolean(context.getString(keyResources), defValue); } diff --git a/src/main/java/org/tasks/reminders/MissedCallActivity.java b/src/main/java/org/tasks/reminders/MissedCallActivity.java new file mode 100644 index 000000000..e2e08cd2a --- /dev/null +++ b/src/main/java/org/tasks/reminders/MissedCallActivity.java @@ -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(); + } +} diff --git a/src/main/java/org/tasks/reminders/MissedCallDialog.java b/src/main/java/org/tasks/reminders/MissedCallDialog.java new file mode 100644 index 000000000..358fed12a --- /dev/null +++ b/src/main/java/org/tasks/reminders/MissedCallDialog.java @@ -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 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; + } +} diff --git a/src/main/res/drawable-hdpi/ic_phone_black_24dp.png b/src/main/res/drawable-hdpi/ic_phone_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..d4077acf91bca566c143501ecd3589960f297eef GIT binary patch literal 326 zcmV-M0lEH(P)4oZOd_E%#fpSbNL+;V=L!_+Etq8MiDoruwr~#$o6U*>g@g+b1re>d16c(P z9fdfOlatNt*Esn;<^JCODPGczkkO<)Sc@E`CVpr=l=ejE7NuM9U%b!vbbEA$5*f9Ur!iSto>EnZc+= zKcwy%$7q%Bkh)|HqcT2q#ROFu`*dkAk0a4ROg%7L$#n5?A3Sl#F*$#5gVY-vGE-TL z1ZDinbHQTF$hA{%@8jh(A*gX=2nltr4IyEPQ$Ee1Xp&8OJP(Bm45nCNi;`UmGDed9 Y0y5j*N*3HAS^xk507*qoM6N<$f^r^!$^ZZW literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-hdpi/ic_phone_white_24dp.png b/src/main/res/drawable-hdpi/ic_phone_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4dc5065155baeba719d76845d4398431c289cde0 GIT binary patch literal 340 zcmV-a0jvIrP)2;3l0LOD$N=(0Aydxv3a1NO%A-5V49kkQ!=X zV`%)ixtjF0)a^NIzfT&=3_}@<#bU8k$;l06(wcI^K4~{{!wzW=azjYkD}h|FPQL}Y zV3vL*xgg+~w1(VpOxmv85YnrTksES+&{fCC9j7Gf82Mn8*e6T!#Wk@r`JzB#L%wJb zYcnT5Jz(nTd8(K&U>#oAFn^y`zjyGXQF#zM7()Aet$noem0I<%p-vB_K zOIkhy0F#7VQy1oIC^F2m$2s@BQssv}HMU74RQ&>86OIco?%@#t00006 literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xhdpi/ic_phone_white_24dp.png b/src/main/res/drawable-xhdpi/ic_phone_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..ef45e933a99b720cc5f6127e6da22bc2fa679244 GIT binary patch literal 420 zcmV;V0bBlwP)u7H4zjb0wVlEO#(-afhJ{~L_owyniLh<44m_hh=0)JC~(EtGz}i`o*rY-v?y@O z7&HsExZpoDD~cS_W+YkQAr(Fol6E6IIG(V_N51l%CO?U|VOMi=rhWlQl3!NbcvwOJ O0000S->P)!2PJ-H@rHV$L$%!{Psm^&nbmf4NDs!00GCXBW5P9(i&9mcltT_n9>4aSD3%Ow3uICgQ2 zjr=FWc(D&`CQobQ>*Xz@9Ht9Lp&X-lu|@Xg_43>xNU@I>XQUCw| literal 0 HcmV?d00001 diff --git a/src/main/res/drawable-xxhdpi/ic_phone_white_24dp.png b/src/main/res/drawable-xxhdpi/ic_phone_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..90ead2e4551b165530bd2430b3d69c34263c5c4e GIT binary patch literal 597 zcmV-b0;>IqP)a~F^ihkCNXidBsWB>X=;U*@F%!%#fVZaU}txjgmm7*kE>_wfD zJ4vghX)Y+W+A>RYW}(s9ms0kgvz_-nXXic7bMt;aQYw{7rQ+a|A;-#I(=OY{5am0Y zWfwW3^~f&rM7t`x_(`-r*+q_ML$ZrWqCJ#dj1g^AcJY*GIgD&#kT@-}i3`LzE}J+^ zoB`QH3vni76Nb;kX_ZZk5a)z!;v#YO$R>6Z?LI~}VVI$`08h4Yi&6qS*+(ZU3-IIu z>zHA=08g&aOR)e??y#Lg0iN9A2}>4ekZW`hc1f;bc*&AEHpw*(5q4XyVR%khr(9zf zd6rDFUaoP2usayJMLpAmosw%DC2WCxa*ZLvKCxA9QO8@t-q9$x*vU7-#@QgZ=w^|y zaT*l^!(L9ZMYTZ>h2FDG5%3w|pEvY#jAo3IgrT28vm8(f_+%;eg;zXakY28EhGta@ z!!U(@aT=p#@W~Qqp8cv8YZ#{3JsMO1pDg7VQ}r-hr`Qx-`VXHhbwLu%tSQXU{ z2YEroR7)7z38;u_k5;bnkuu2+*3!Wc)5OWiCJb$y=Ml4%G9VW)G||O5GCXFK4}9eZ jd2$TkDV0j4QgQwO?=x#gyQpL<00000NkvXXu0mjf@K6c} literal 0 HcmV?d00001 diff --git a/src/main/res/drawable/ic_phone_black_24dp.png b/src/main/res/drawable/ic_phone_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..55ed026bcec5bba38bcf91972fd08d4671dc9b84 GIT binary patch literal 244 zcmVM;L^lw`#y_Big-bALY&7E&hT#K| z8D5!l>tAs#u6t4M+fd4nXf~EIE5V7B=Mqe$oQv{eMZ%~AkCr5CG`FAhC0z?|`qFlU zX+EImR=AL7%cn4sXJ44xRamyF)3{C!^}xW3xjUzh4cnd^3E|S3fmc!XrPW^jW#(P{ uS%*zG;@@=JcBM)N#kvD$9(<@wEUI4=uVbN7%%kf70000dC{Hk}*!A?jJR>)4GKBfXec?}<0&9upF*X8-^I07*qoM6N<$f?IEA=l}o! literal 0 HcmV?d00001 diff --git a/src/main/res/layout/missed_call_activity.xml b/src/main/res/layout/missed_call_activity.xml deleted file mode 100644 index 3146a06cc..000000000 --- a/src/main/res/layout/missed_call_activity.xml +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/res/values-ar/strings.xml b/src/main/res/values-ar/strings.xml index 4c0f8aa07..4674b9c5d 100644 --- a/src/main/res/values-ar/strings.xml +++ b/src/main/res/values-ar/strings.xml @@ -74,8 +74,6 @@ اتصل الان اتصل لاحقاً تجاهل - تجاهل جميع المكالمات - تجاهل هذه المكالمة فقط تجاهل تريد قائمة للمقابلات؟ تجاهل جميع الأحداث diff --git a/src/main/res/values-bg-rBG/strings.xml b/src/main/res/values-bg-rBG/strings.xml index 1283cdb81..4523dc700 100644 --- a/src/main/res/values-bg-rBG/strings.xml +++ b/src/main/res/values-bg-rBG/strings.xml @@ -102,15 +102,9 @@ ----Винаги скрито---- Покажи в моят списък Зареди повече... - %1$s\n се обади на %2$s Обади се сега Обади се по-късно Игнорирай - Вие пренебрегнахте няколко пропуснати повиквания. Трябва ли Tasks да спре да пита за тях? - Игнорирай всички обаждания - Игнорирай само това обаждане - Пропуснати обаждания - Tasks ще ви уведомява за пропуснати повиквания и ще предлага да напомни да се обадите Обади се на %1$s на %2$s Обади се на %s Игнорирай diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml index 305b26bf2..a9969b315 100644 --- a/src/main/res/values-ca/strings.xml +++ b/src/main/res/values-ca/strings.xml @@ -89,12 +89,9 @@ ----Oculta-ho sempre---- Mostra a la meva llista Carrega més... - En/na %1$s\nha trucat a les %2$s Truca ara Truca després Ignora - Ignora totes les trucades - Ignora només aquesta trucada Retorna la trucada a en/na %1$s a %2$s Retorna la trucada a %s Tasks: Paràmetres diff --git a/src/main/res/values-cs/strings.xml b/src/main/res/values-cs/strings.xml index 1d85416ac..0e9de2e75 100644 --- a/src/main/res/values-cs/strings.xml +++ b/src/main/res/values-cs/strings.xml @@ -95,15 +95,9 @@ -----Vždy skrývat---- Zobrazit v mém seznamu Více... - V %2$s volal\n%1$s Hned zavolat Zavolat později Ignorovat - Ignoroval jste několik zmeškaných hovorů. Má Tasks ignorovat všechny? - Ignorovat vše - Ignorovat pouze tento - Hlídat zmeškané hovory - Tasks Vás upozorní na zmeškané hovory a připomene Vám, abyste zavolal zpět Zavolat %1$s zpět v %2$s Zavolat %s zpět Ignorovat diff --git a/src/main/res/values-da/strings.xml b/src/main/res/values-da/strings.xml index a6f12d207..1533e0006 100644 --- a/src/main/res/values-da/strings.xml +++ b/src/main/res/values-da/strings.xml @@ -74,7 +74,6 @@ ----Skjul altid---- Vis i min liste Indlæs flere... - %1$s\ncalled at %2$s Ignorér alle begivenheder Ignorér kun denne begivenhed Nej tak diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml index 175fc9114..27fedb035 100644 --- a/src/main/res/values-de/strings.xml +++ b/src/main/res/values-de/strings.xml @@ -98,15 +98,9 @@ ----Immer Verbergen---- Anzeigen in meiner Liste Weitere laden … - %1$s hat um %2$s angerufen Jetzt anrufen Später anrufen Ignorieren - Sie haben mehrere versäumte Anrufe ignoriert. Soll Tasks nicht mehr danach fragen? - Alle Anrufe ignorieren - Nur diesen Anruf ignorieren - Verpasste Anrufe - Tasks wird Sie über versäumte Anrufe informieren und an Rückrufe erinnern %1$s unter %2$s zurückrufen %s zurückrufen Ablehnen diff --git a/src/main/res/values-el/strings.xml b/src/main/res/values-el/strings.xml index f5494a2c4..e61cead58 100644 --- a/src/main/res/values-el/strings.xml +++ b/src/main/res/values-el/strings.xml @@ -93,15 +93,9 @@ -----Απόκρυψη πάντα----- Εμφάνιση στην λίστα μου Φόρτωση περισσότερων - %1$s\nκάλεσε στίς %2$s Κάλεσε τώρα Κάλεσε αργότερα Αγνοήστε - Αγνοήσατε αρκετές κλήσεις. Να σταματήσουμε να ρωτάμε για αυτές; - Αγνόηση όλων των χαμένων κλησεων - Άγνόηση μόνο αυτής της κλήσης - Πεδίο αναπάντητων κλήσεων - Η εφαρμογή θα σας ενημερώσει για αναπάντητες κλήσεις και θα σας υπενθυμίσει για να τις απαντήσετε μετά Ξανακαλέστε %1$s στίς %2$s Ξανακαλέστε %s Αγνοήστε diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml index 3a4a36eed..9848cee9e 100644 --- a/src/main/res/values-es/strings.xml +++ b/src/main/res/values-es/strings.xml @@ -99,15 +99,9 @@ ---Ocultar Siempre--- Mostrar en mi lista Cargar mas... - %1$s\nllamó a las %2$s Llamar ahora Llamar luego Ignorar - Ha ignorado varias llamadas perdidas. ¿Quiere que Tasks deje de preguntarle sobre ellas? - Ignorar todas las llamadas - Ignorar solamente esta llamada - Campo de llamadas perdidas - Tasks le notificará de las llamadas perdidas y le recordará que devuelva la llamada. Devolver la llamada a %1$s al %2$s Devolver la llamada a %s Ignorar diff --git a/src/main/res/values-fr/strings.xml b/src/main/res/values-fr/strings.xml index 11ebb65c7..e92d07964 100644 --- a/src/main/res/values-fr/strings.xml +++ b/src/main/res/values-fr/strings.xml @@ -97,15 +97,9 @@ ---- Toujours masquer ---- Montrer dans ma liste Charger plus... - \"%1$s\na appelé à %2$s\" Appeler maintenant Appeler plus tard Ignorer - Vous avez ignoré plusieurs appels manqués. Tasks doit-il arrêter de vous questionner à ce propos? - Ignorer tous les appels - Ignorer cet appel seulement - Champ des appels manqués. - Atrid vous avertira en cas d\'appels manqués et vous proposera de rappeler. Rappeler %1$s au %2$s Rappeler %s Ignorer diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml index 385176088..8c1ac36cb 100644 --- a/src/main/res/values-it/strings.xml +++ b/src/main/res/values-it/strings.xml @@ -83,15 +83,9 @@ ----Nascondi Sempre---- Mostra nella mia lista Caricane di più... - %1$s\nha chiamato alle %2$s Chiama ora Chiama più tardi Ignora - Tu hai ignorato varie chiamate perse. Tasks dovrebbe smettere di chiedere a riguardo? - Ignora tutte le chiamate - Ignora solo questa chiamata - Campo chiamate perse - Tasks ti notificherà per le chiamate perse e ti offrirà di ricordarti di richiamare Richiama %1$s al %2$s Richiama %s Ignora diff --git a/src/main/res/values-iw/strings.xml b/src/main/res/values-iw/strings.xml index bb1986c73..37149020f 100644 --- a/src/main/res/values-iw/strings.xml +++ b/src/main/res/values-iw/strings.xml @@ -93,15 +93,9 @@ ----מוסתר תמיד---- הצג ברשימה שלי טען עוד... - %1$s \nהתקשר ב־%2$s התקשר כעת התקשר מאוחר יותר התעלם - התעלמת ממספר שיחות שלא נענו. האם עלי לחדול מלהזכיר שיחות שלא נענו? - התעלם מכל השיחות - התעלם משיחה זו בלבד - תייק שיחות שלא נענו - אסטריד תודיע לך על שיחות שלא נענו, ותציע להזכיר לך להחזיר שיחה. \"החזר שיחה ל־%1$s ב־%2$s\" החזר שיחה ל־%s התעלם diff --git a/src/main/res/values-ja/strings.xml b/src/main/res/values-ja/strings.xml index 891220597..abdd05397 100644 --- a/src/main/res/values-ja/strings.xml +++ b/src/main/res/values-ja/strings.xml @@ -100,15 +100,9 @@ ----常に隠す---- 私のリストに表示 さらに読み込む... - %1$s\n%2$s に呼び出しがありました いますぐ呼び出し 後で呼び出し 無視する - いくつかの応答しなかった呼び出しを無視しました. その報告を停止しますか? - すべての呼び出しを無視する - この呼び出しのみ無視する - 応答しなかった呼び出しの項目 - Tasks は応答しなかった呼び出しを通知して折り返し連絡するようにリマインドします %1$s に %2$s 折り返し連絡 %s に折り返し連絡 無視する diff --git a/src/main/res/values-ko/strings.xml b/src/main/res/values-ko/strings.xml index 33ab60742..6f063040a 100644 --- a/src/main/res/values-ko/strings.xml +++ b/src/main/res/values-ko/strings.xml @@ -100,15 +100,9 @@ ----항상 숨김---- 내 목록에 표시 더 불러오기... - %1$s\n받은 시간: %2$s 지금 전화하기 나중에 전화하기 무시하기 - 부재중 전화를 몇 번 무시했습니다. Tasks의 부재중 전화 알림을 중지할까요? - 모든 전화 무시하기 - 이 전화만 무시하기 - 부재중 전화 처리 - Tasks는 부재중 전화 내역과 이를 회신할 수 있도록 알려줍니다 %1$s 님에게 %2$s 에 다시 연락하세요 %s 님에게 다시 연락하세요 무시하기 diff --git a/src/main/res/values-nl/strings.xml b/src/main/res/values-nl/strings.xml index daa47b3ae..87ddce565 100644 --- a/src/main/res/values-nl/strings.xml +++ b/src/main/res/values-nl/strings.xml @@ -95,15 +95,9 @@ ----Altijd Verbergen---- Laat zien in mijn lijst Laad meer... - %1$s\nheeft gebeld op (%2$s) Bel nu Bel later Negeren - Je hebt alle gemiste oproepen genegeerd. Moet Tasks je er niet meer naar vragen? - Negeer alle oproepen - Negeer alleen deze oproep - Veld gemiste oproepen - Tasks zal gemiste oproepen laten zien en een herinnering weergeven om terug te bellen Bel %1$s terug op %2$s Bel %s terug Negeren diff --git a/src/main/res/values-pl/strings.xml b/src/main/res/values-pl/strings.xml index 0464e063c..20430335a 100644 --- a/src/main/res/values-pl/strings.xml +++ b/src/main/res/values-pl/strings.xml @@ -94,15 +94,9 @@ ----Zawsze Ukryte---- Pokaż na mojej liście Wczytaj więcej... - %1$s\ndzwonił\\-a o %2$s Zadzwoń teraz Zadzwoń później Ignoruj - Zignorowano kilka nieodebranych połączeń. Czy Tasks ma Cię już więcej o nie nie pytać? - Zignoruj wszystkie połączenia. - Zignoruj tylko to połączenie. - Obszar nieodebranych połączeń - Tasks będzie powiadamiał Cię o nieodebranych połączeniach i przypomni Ci o oddzwonieniu. Oddzwoń do %1$s o %2$s Oddzwoń do %s Ignoruj diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml index 9540cdb43..8d8ba803f 100644 --- a/src/main/res/values-pt-rBR/strings.xml +++ b/src/main/res/values-pt-rBR/strings.xml @@ -93,15 +93,9 @@ ----Esconder Sempre--- Mostrar na minha lista Carregar mais... - %1$s\nligou às %2$s Ligar agora Ligar mais tarde Ignorar - Você ignorou várias chamadas perdidas. Tasks deve para de perguntar sobre elas? - Ignorar todas as chamadas - Ignorar esta chamada apenas - Campo chamadas perdidas - Tasks notificará sobre chamadas perdidas e oferecerá para lhe lembrar para ligar de volta Retornar ligação de %1$s às %2$s Retornar ligação de %s Ignorar diff --git a/src/main/res/values-pt/strings.xml b/src/main/res/values-pt/strings.xml index b08fb7eac..368055a67 100644 --- a/src/main/res/values-pt/strings.xml +++ b/src/main/res/values-pt/strings.xml @@ -98,15 +98,9 @@ ----Ocultar sempre---- Mostrar na minha lista Carregar mais... - %1$s\nchamado a %2$s Chamar agora Chamar mais tarde Ignorar - Você ignorou várias chamadas perdidas. Pretende que o Tasks não o notifique novamente? - Ignorar todas as chamadas - Ignorar apenas esta chamada - Chamadas perdidas - O Tasks irá notificar sobre as chamadas perdidas e lembrar-lhe para fazer as ligações Ligar a %1$s às %2$s Ligar a %s Ignorar diff --git a/src/main/res/values-ru/strings.xml b/src/main/res/values-ru/strings.xml index d14f21760..ddbf9d973 100644 --- a/src/main/res/values-ru/strings.xml +++ b/src/main/res/values-ru/strings.xml @@ -97,15 +97,9 @@ Всегда скрывать Показать в моем листе Загрузить больше... - %1$s\nзвонил(а) в %2$s Позвонить сейчас Позвонить позже Игнорировать - Вы проигнорировали несколько пропущенных звонков. Больше не спрашивать про них? - Игнорировать все звонки - Игнорировать только этот звонок - Пропущенные звонки - Tasks будет уведомлять вас о пропущенных звонках и предложит вам перезвонить Перезвонить %1$s в %2$s Перезвонить %s Игнорировать diff --git a/src/main/res/values-sk/strings.xml b/src/main/res/values-sk/strings.xml index 01325d2c9..9373f5c76 100644 --- a/src/main/res/values-sk/strings.xml +++ b/src/main/res/values-sk/strings.xml @@ -97,15 +97,9 @@ ----Skryť vždy---- Zobraziť v mojom zozname Načítať viac - %1$s\nti volal/-a o %2$s Volať teraz Volať neskôr Ignorovať - Ignoroval si niekoľko zmeškaných hovorov. Chceš aby sa Tasks prestali na ne pýtať? - Ignorovať všetky hovory - Ignorovať iba tento hovor - Zachytiť zmeškané hovory - Tasks ťa upozorní na zmeškané hovory a ponúkne ti pripomienku na zavolanie späť Zavolať %1$s späť o %2$s Zavolať %s späť Ignorovať diff --git a/src/main/res/values-sl-rSI/strings.xml b/src/main/res/values-sl-rSI/strings.xml index 9f74b60b7..b787c685e 100644 --- a/src/main/res/values-sl-rSI/strings.xml +++ b/src/main/res/values-sl-rSI/strings.xml @@ -97,15 +97,9 @@ ----Vedno skrij---- Pokaži v mojem seznamu Naloži še... - %1$s\nbil klican ob%2$s Kliči zdaj Kliči kasneje Ignoriraj - Ignorirali ste številne zgrešene klice. Naj vas aplikacija Opravki neha spraševati o zgrešenih klicih? - Ignoriraj vse klice - Ignoriraj samo ta klic - Zabeleži zgrešene klice - Aplikacija Opravki vas bo obvestila o zgrešenih klicih in ponudila opomnik za vrnitev klicev %1$s pokliči nazaj ob %2$s Vrni klic %s Ignoriraj diff --git a/src/main/res/values-sv/strings.xml b/src/main/res/values-sv/strings.xml index 6f5f52063..814c0603f 100644 --- a/src/main/res/values-sv/strings.xml +++ b/src/main/res/values-sv/strings.xml @@ -94,15 +94,9 @@ ----Göm alltid---- Visa i min lista Ladda mer... - %1$s\nringde kl %2$s Ring nu Ring senare Ignorera - Du har ignorerat flera missade samtal. Vill du att Tasks slutar fråga dig om dem? - Ignorera alla samtal - Ignorera endast detta samtal - Fält missade samtal - Tasks meddelar dig om missade samtal och ger dig möjligheten att få påminnelse om att ringa tillbaka Ring %1$s tillbaka kl %2$s Ring %s tillbaka Ignorera diff --git a/src/main/res/values-tr/strings.xml b/src/main/res/values-tr/strings.xml index 40deddf8c..06262b9b2 100644 --- a/src/main/res/values-tr/strings.xml +++ b/src/main/res/values-tr/strings.xml @@ -82,15 +82,9 @@ ----Her Zaman Gizle---- Listemde göster Daha yükle... - %1$s aradı\nzamanı: %2$s Şimdi ara Sonra ara Yoksay - Birkaç çağrıyı yoksaydınız. Tasks bunlar hakkında soru sormayı kessin mi? - Tüm çağrıları yoksay - Yalnızca bu çağrıyı yoksay - Cevapsız çağrı alanı - Tasks cevapsız çağrıları size bildirecek ve geri aramanız için hatırlatacak %1$s kişisini geri ara: %2$s %s kişisini geri ara Yoksay diff --git a/src/main/res/values-uk/strings.xml b/src/main/res/values-uk/strings.xml index 4b9bacfd9..e9bd47f9e 100644 --- a/src/main/res/values-uk/strings.xml +++ b/src/main/res/values-uk/strings.xml @@ -97,15 +97,9 @@ ----Приховувати завжди---- Показувати в мому списку Завантажити більше... - %1$s\nтелефонував о %2$s Зателефонувати зараз Зателефонувати пізніше Ігнорувати - Ви проігнорували декілька пропущених дзвінків. Більше не запитувати про них? - Ігнорувати всі дзвінки - Ігнорувати лише цей дзвінок - Область пропущених викликів - Tasks буде повідомляти вас про пропущені дзвінки і запропонує вам передзвонити Перетелефонувати %1$s о %2$s Перетелефонувати %s Ігнорувати diff --git a/src/main/res/values-zh-rCN/strings.xml b/src/main/res/values-zh-rCN/strings.xml index 0b3809a08..025e2c295 100644 --- a/src/main/res/values-zh-rCN/strings.xml +++ b/src/main/res/values-zh-rCN/strings.xml @@ -82,15 +82,9 @@ ----始终隐藏---- 在我的列表中显示 加载更多…… - %1$s\n在 %2$s 给您打过电话 现在回电 稍后回电 忽略 - 您已经忽略了几个未接电话。对于这些电话,清单小助理是否应该不再询问您呢? - 忽略所有来电 - 只忽略这个来电 - 及时回复未接电话 - 清单小助理会向您报告未接电话,还会提供回电的提醒 请回电给 %1$s,电话是 %2$s 请回电给 %s 忽略 diff --git a/src/main/res/values-zh-rTW/strings.xml b/src/main/res/values-zh-rTW/strings.xml index 1023f74f9..ccaf484d4 100644 --- a/src/main/res/values-zh-rTW/strings.xml +++ b/src/main/res/values-zh-rTW/strings.xml @@ -92,15 +92,9 @@ ----始終隱藏---- 在我的列表中顯示 加載更多…… - %1$s\n在 %2$s 給您打過電話 現在回電 稍後回電 忽略 - 您已經忽略了幾個未接電話。對於這些電話,Tasks 是否應該不再詢問您呢? - 忽略所有來電 - 只忽略這個來電 - 及時回复未接電話 - Tasks 會向您報告未接電話,還會提供回電的提醒 請回電給 %1$s,電話是 %2$s 請回電給 %s 忽略 diff --git a/src/main/res/values/strings-core.xml b/src/main/res/values/strings-core.xml index bcc6806e1..cc0596389 100644 --- a/src/main/res/values/strings-core.xml +++ b/src/main/res/values/strings-core.xml @@ -207,8 +207,7 @@ - - %1$s\ncalled at %2$s + Missed call from %s Call now @@ -218,21 +217,8 @@ Ignore - - - You\'ve ignored several missed calls. Should Tasks stop asking you about them? - - - Ignore all calls - - - Ignore this call only - - - Field missed calls - - Tasks will notify you about missed calls and offer to remind you to call back + Missed Calls Call %1$s back at %2$s diff --git a/src/main/res/xml/preferences_misc.xml b/src/main/res/xml/preferences_misc.xml index 7193039dc..c715b7942 100644 --- a/src/main/res/xml/preferences_misc.xml +++ b/src/main/res/xml/preferences_misc.xml @@ -12,12 +12,6 @@ android:summary="@string/EPr_voiceRemindersEnabled_desc_enabled" android:title="@string/EPr_voiceRemindersEnabled_title" /> - - +