Don't set flags or ringtone on Android 8+

pull/935/head
Alex Baker 5 years ago
parent 6b390b0447
commit e18a3bb8b4

@ -1,14 +1,27 @@
package org.tasks.notifications; package org.tasks.notifications;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static androidx.core.app.NotificationCompat.FLAG_INSISTENT;
import static androidx.core.app.NotificationCompat.FLAG_NO_CLEAR;
import static com.google.common.collect.Iterables.concat;
import static com.google.common.collect.Iterables.tryFind;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.transform;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastNougat;
import static com.todoroo.andlib.utility.AndroidUtilities.preOreo;
import static com.todoroo.astrid.reminders.ReminderService.TYPE_GEOFENCE_ENTER;
import static com.todoroo.astrid.reminders.ReminderService.TYPE_GEOFENCE_EXIT;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.PendingIntent; import android.app.PendingIntent;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat; import androidx.core.app.NotificationManagerCompat;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import com.todoroo.andlib.sql.Join; import com.todoroo.andlib.sql.Join;
@ -18,7 +31,14 @@ import com.todoroo.astrid.api.Filter;
import com.todoroo.astrid.dao.TaskDao; import com.todoroo.astrid.dao.TaskDao;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
import com.todoroo.astrid.reminders.ReminderService; import com.todoroo.astrid.reminders.ReminderService;
import io.reactivex.Completable;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import org.tasks.LocalBroadcastManager; import org.tasks.LocalBroadcastManager;
import org.tasks.R; import org.tasks.R;
import org.tasks.data.Location; import org.tasks.data.Location;
@ -34,33 +54,8 @@ import org.tasks.reminders.SnoozeDialog;
import org.tasks.reminders.SnoozeOption; import org.tasks.reminders.SnoozeOption;
import org.tasks.time.DateTime; import org.tasks.time.DateTime;
import org.tasks.ui.CheckBoxes; import org.tasks.ui.CheckBoxes;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Completable;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import timber.log.Timber; import timber.log.Timber;
import static android.content.Intent.FLAG_ACTIVITY_MULTIPLE_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static androidx.core.app.NotificationCompat.FLAG_INSISTENT;
import static androidx.core.app.NotificationCompat.FLAG_NO_CLEAR;
import static com.google.common.collect.Iterables.concat;
import static com.google.common.collect.Iterables.tryFind;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.transform;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastNougat;
import static com.todoroo.astrid.reminders.ReminderService.TYPE_GEOFENCE_ENTER;
import static com.todoroo.astrid.reminders.ReminderService.TYPE_GEOFENCE_EXIT;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
@ApplicationScope @ApplicationScope
public class NotificationManager { public class NotificationManager {
@ -212,7 +207,7 @@ public class NotificationManager {
return; return;
} }
builder.setLocalOnly(!preferences.getBoolean(R.string.p_wearable_notifications, true)); builder.setLocalOnly(!preferences.getBoolean(R.string.p_wearable_notifications, true));
int ringTimes = fiveTimes ? 5 : 1; if (preOreo()) {
if (alert) { if (alert) {
builder builder
.setSound(preferences.getRingtone()) .setSound(preferences.getRingtone())
@ -221,7 +216,9 @@ public class NotificationManager {
} else { } else {
builder.setDefaults(0).setTicker(null); builder.setDefaults(0).setTicker(null);
} }
}
android.app.Notification notification = builder.build(); android.app.Notification notification = builder.build();
int ringTimes = fiveTimes ? 5 : 1;
if (alert && nonstop) { if (alert && nonstop) {
notification.flags |= FLAG_INSISTENT; notification.flags |= FLAG_INSISTENT;
ringTimes = 1; ringTimes = 1;

Loading…
Cancel
Save