mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-23 18:02:15 -05:00
Notify user of certificate errors while pushing
Previously, if a server's certificate failed authentication while connecting for push (if, for example, the certificate had expired), then the attempt to connect would fail, and another attempt would be tried later. After a certain number of failed attempts, no further attempts would be made. Meanwhile, the user is oblivious to the failures, and it could be quite some time before the user realizes that they are not getting email. Even when they do realize it, they would not know the cause. With this commit, users receive a notification when such failures occur while connecting for push. (These notifications are already generated with failures while polling.) Tapping the notification will take the user to the relevant server settings where they can choose to accept the certificate.
This commit is contained in:
parent
0509e1541c
commit
39590d49bd
@ -2627,7 +2627,7 @@ public class MessagingController implements Runnable {
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyUserIfCertificateProblem(Context context, Exception e,
|
||||
public static void notifyUserIfCertificateProblem(Context context, Exception e,
|
||||
Account account, boolean incoming) {
|
||||
if (!(e instanceof CertificateValidationException)) {
|
||||
return;
|
||||
@ -5037,7 +5037,7 @@ public class MessagingController implements Runnable {
|
||||
* @param ringAndVibrate
|
||||
* {@code true}, if ringtone/vibration are allowed. {@code false}, otherwise.
|
||||
*/
|
||||
private void configureNotification(NotificationCompat.Builder builder, String ringtone,
|
||||
private static void configureNotification(NotificationCompat.Builder builder, String ringtone,
|
||||
long[] vibrationPattern, Integer ledColor, int ledSpeed, boolean ringAndVibrate) {
|
||||
|
||||
// if it's quiet time, then we shouldn't be ringing, buzzing or flashing
|
||||
|
@ -65,6 +65,7 @@ import com.fsck.k9.Account;
|
||||
import com.fsck.k9.K9;
|
||||
import com.fsck.k9.R;
|
||||
import com.fsck.k9.controller.MessageRetrievalListener;
|
||||
import com.fsck.k9.controller.MessagingController;
|
||||
import com.fsck.k9.helper.StringUtils;
|
||||
import com.fsck.k9.helper.Utility;
|
||||
import com.fsck.k9.helper.power.TracingPowerManager;
|
||||
@ -3138,6 +3139,7 @@ public class ImapStore extends Store {
|
||||
if (stop.get()) {
|
||||
Log.i(K9.LOG_TAG, "Got exception while idling, but stop is set for " + getLogId());
|
||||
} else {
|
||||
MessagingController.notifyUserIfCertificateProblem(K9.app, e, getAccount(), true);
|
||||
receiver.pushError("Push error for " + getName(), e);
|
||||
Log.e(K9.LOG_TAG, "Got exception while idling for " + getLogId(), e);
|
||||
int delayTimeInt = delayTime.get();
|
||||
|
Loading…
Reference in New Issue
Block a user