1
0
mirror of https://github.com/etesync/android synced 2025-07-25 16:08:23 +00:00

Cleanup handling of notification errors.

This commit is contained in:
Tom Hacohen 2017-02-20 19:57:03 +00:00
parent d832ae9bc6
commit 2225ee0a03
8 changed files with 25 additions and 27 deletions

View File

@ -38,4 +38,6 @@ public class Constants {
public static final int DEFAULT_SYNC_INTERVAL = 4 * 3600; // 4 hours public static final int DEFAULT_SYNC_INTERVAL = 4 * 3600; // 4 hours
public static final long DEFAULT_RETRY_DELAY = 30 * 60; // 30 minutes public static final long DEFAULT_RETRY_DELAY = 30 * 60; // 30 minutes
public final static String KEY_ACCOUNT = "account";
} }

View File

@ -38,12 +38,13 @@ import at.bitfire.davdroid.model.ServiceDB;
import at.bitfire.davdroid.model.ServiceDB.Collections; import at.bitfire.davdroid.model.ServiceDB.Collections;
import at.bitfire.davdroid.model.ServiceDB.Services; import at.bitfire.davdroid.model.ServiceDB.Services;
import at.bitfire.davdroid.resource.LocalCalendar; import at.bitfire.davdroid.resource.LocalCalendar;
import at.bitfire.davdroid.ui.AccountSettingsActivity;
import at.bitfire.davdroid.ui.DebugInfoActivity; import at.bitfire.davdroid.ui.DebugInfoActivity;
import at.bitfire.ical4android.CalendarStorageException; import at.bitfire.ical4android.CalendarStorageException;
import lombok.Cleanup; import lombok.Cleanup;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import static at.bitfire.davdroid.Constants.KEY_ACCOUNT;
public class CalendarsSyncAdapterService extends SyncAdapterService { public class CalendarsSyncAdapterService extends SyncAdapterService {
@Override @Override
@ -94,10 +95,8 @@ public class CalendarsSyncAdapterService extends SyncAdapterService {
notificationManager.setThrowable(e); notificationManager.setThrowable(e);
final Intent detailsIntent = notificationManager.getDetailsIntent(); final Intent detailsIntent = notificationManager.getDetailsIntent();
if (e instanceof Exceptions.UnauthorizedException) { detailsIntent.putExtra(KEY_ACCOUNT, account);
detailsIntent.putExtra(AccountSettingsActivity.EXTRA_ACCOUNT, account); if (!(e instanceof Exceptions.UnauthorizedException)) {
} else {
detailsIntent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account);
detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority); detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority);
detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase); detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase);
} }

View File

@ -34,11 +34,12 @@ import at.bitfire.davdroid.journalmanager.Exceptions;
import at.bitfire.davdroid.model.CollectionInfo; import at.bitfire.davdroid.model.CollectionInfo;
import at.bitfire.davdroid.model.ServiceDB; import at.bitfire.davdroid.model.ServiceDB;
import at.bitfire.davdroid.model.ServiceDB.Collections; import at.bitfire.davdroid.model.ServiceDB.Collections;
import at.bitfire.davdroid.ui.AccountSettingsActivity;
import at.bitfire.davdroid.ui.DebugInfoActivity; import at.bitfire.davdroid.ui.DebugInfoActivity;
import lombok.Cleanup; import lombok.Cleanup;
import okhttp3.HttpUrl; import okhttp3.HttpUrl;
import static at.bitfire.davdroid.Constants.KEY_ACCOUNT;
public class ContactsSyncAdapterService extends SyncAdapterService { public class ContactsSyncAdapterService extends SyncAdapterService {
@Override @Override
@ -90,10 +91,8 @@ public class ContactsSyncAdapterService extends SyncAdapterService {
notificationManager.setThrowable(e); notificationManager.setThrowable(e);
final Intent detailsIntent = notificationManager.getDetailsIntent(); final Intent detailsIntent = notificationManager.getDetailsIntent();
if (e instanceof Exceptions.UnauthorizedException) { detailsIntent.putExtra(KEY_ACCOUNT, account);
detailsIntent.putExtra(AccountSettingsActivity.EXTRA_ACCOUNT, account); if (!(e instanceof Exceptions.UnauthorizedException)) {
} else {
detailsIntent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account);
detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority); detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority);
detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase); detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase);
} }

View File

@ -19,11 +19,8 @@ import org.apache.commons.collections4.ListUtils;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.UUID; import java.util.UUID;
import java.util.logging.Level; import java.util.logging.Level;
@ -40,7 +37,6 @@ import at.bitfire.davdroid.journalmanager.JournalEntryManager;
import at.bitfire.davdroid.model.CollectionInfo; import at.bitfire.davdroid.model.CollectionInfo;
import at.bitfire.davdroid.resource.LocalCollection; import at.bitfire.davdroid.resource.LocalCollection;
import at.bitfire.davdroid.resource.LocalResource; import at.bitfire.davdroid.resource.LocalResource;
import at.bitfire.davdroid.ui.AccountSettingsActivity;
import at.bitfire.davdroid.ui.DebugInfoActivity; import at.bitfire.davdroid.ui.DebugInfoActivity;
import at.bitfire.ical4android.CalendarStorageException; import at.bitfire.ical4android.CalendarStorageException;
import at.bitfire.ical4android.InvalidCalendarException; import at.bitfire.ical4android.InvalidCalendarException;
@ -48,6 +44,8 @@ import at.bitfire.vcard4android.ContactsStorageException;
import lombok.Getter; import lombok.Getter;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import static at.bitfire.davdroid.Constants.KEY_ACCOUNT;
abstract public class SyncManager { abstract public class SyncManager {
protected final NotificationHelper notificationManager; protected final NotificationHelper notificationManager;
protected final String uniqueCollectionId; protected final String uniqueCollectionId;
@ -192,10 +190,8 @@ abstract public class SyncManager {
notificationManager.setThrowable(e); notificationManager.setThrowable(e);
final Intent detailsIntent = notificationManager.getDetailsIntent(); final Intent detailsIntent = notificationManager.getDetailsIntent();
if (e instanceof Exceptions.UnauthorizedException) { detailsIntent.putExtra(KEY_ACCOUNT, account);
detailsIntent.putExtra(AccountSettingsActivity.EXTRA_ACCOUNT, account); if (!(e instanceof Exceptions.UnauthorizedException)) {
} else {
detailsIntent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account);
detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority); detailsIntent.putExtra(DebugInfoActivity.KEY_AUTHORITY, authority);
detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase); detailsIntent.putExtra(DebugInfoActivity.KEY_PHASE, syncPhase);
} }

View File

@ -49,7 +49,6 @@ import android.view.ViewGroup;
import android.widget.AbsListView; import android.widget.AbsListView;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.ArrayAdapter; import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ListView; import android.widget.ListView;
import android.widget.PopupMenu; import android.widget.PopupMenu;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@ -63,6 +62,7 @@ import java.util.logging.Level;
import at.bitfire.cert4android.CustomCertManager; import at.bitfire.cert4android.CustomCertManager;
import at.bitfire.davdroid.AccountUpdateService; import at.bitfire.davdroid.AccountUpdateService;
import at.bitfire.davdroid.App; import at.bitfire.davdroid.App;
import at.bitfire.davdroid.Constants;
import at.bitfire.davdroid.R; import at.bitfire.davdroid.R;
import at.bitfire.davdroid.model.CollectionInfo; import at.bitfire.davdroid.model.CollectionInfo;
import at.bitfire.davdroid.model.ServiceDB.Collections; import at.bitfire.davdroid.model.ServiceDB.Collections;
@ -140,7 +140,7 @@ public class AccountActivity extends AppCompatActivity implements Toolbar.OnMenu
break; break;
case R.id.settings: case R.id.settings:
Intent intent = new Intent(this, AccountSettingsActivity.class); Intent intent = new Intent(this, AccountSettingsActivity.class);
intent.putExtra(AccountSettingsActivity.EXTRA_ACCOUNT, account); intent.putExtra(Constants.KEY_ACCOUNT, account);
startActivity(intent); startActivity(intent);
break; break;
case R.id.delete_account: case R.id.delete_account:

View File

@ -35,16 +35,16 @@ import at.bitfire.davdroid.R;
import at.bitfire.davdroid.ui.setup.LoginCredentials; import at.bitfire.davdroid.ui.setup.LoginCredentials;
import at.bitfire.davdroid.ui.setup.LoginCredentialsChangeFragment; import at.bitfire.davdroid.ui.setup.LoginCredentialsChangeFragment;
public class AccountSettingsActivity extends AppCompatActivity { import static at.bitfire.davdroid.Constants.KEY_ACCOUNT;
public final static String EXTRA_ACCOUNT = "account";
public class AccountSettingsActivity extends AppCompatActivity {
private Account account; private Account account;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
account = getIntent().getParcelableExtra(EXTRA_ACCOUNT); account = getIntent().getParcelableExtra(KEY_ACCOUNT);
setTitle(getString(R.string.settings_title, account.name)); setTitle(getString(R.string.settings_title, account.name));
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@ -74,7 +74,7 @@ public class AccountSettingsActivity extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
account = getArguments().getParcelable(EXTRA_ACCOUNT); account = getArguments().getParcelable(KEY_ACCOUNT);
getLoaderManager().initLoader(0, getArguments(), this); getLoaderManager().initLoader(0, getArguments(), this);
} }
@ -86,7 +86,7 @@ public class AccountSettingsActivity extends AppCompatActivity {
@Override @Override
public Loader<AccountSettings> onCreateLoader(int id, Bundle args) { public Loader<AccountSettings> onCreateLoader(int id, Bundle args) {
return new AccountSettingsLoader(getContext(), (Account)args.getParcelable(EXTRA_ACCOUNT)); return new AccountSettingsLoader(getContext(), (Account)args.getParcelable(KEY_ACCOUNT));
} }
@Override @Override

View File

@ -48,11 +48,12 @@ import at.bitfire.davdroid.journalmanager.Exceptions.HttpException;
import at.bitfire.davdroid.model.ServiceDB; import at.bitfire.davdroid.model.ServiceDB;
import lombok.Cleanup; import lombok.Cleanup;
import static at.bitfire.davdroid.Constants.KEY_ACCOUNT;
public class DebugInfoActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<String> { public class DebugInfoActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<String> {
public static final String public static final String
KEY_THROWABLE = "throwable", KEY_THROWABLE = "throwable",
KEY_LOGS = "logs", KEY_LOGS = "logs",
KEY_ACCOUNT = "account",
KEY_AUTHORITY = "authority", KEY_AUTHORITY = "authority",
KEY_PHASE = "phase"; KEY_PHASE = "phase";

View File

@ -19,6 +19,7 @@ import android.support.v7.app.AlertDialog;
import java.io.IOException; import java.io.IOException;
import at.bitfire.davdroid.Constants;
import at.bitfire.davdroid.R; import at.bitfire.davdroid.R;
import at.bitfire.davdroid.journalmanager.Exceptions.HttpException; import at.bitfire.davdroid.journalmanager.Exceptions.HttpException;
@ -59,7 +60,7 @@ public class ExceptionInfoFragment extends DialogFragment {
Intent intent = new Intent(getContext(), DebugInfoActivity.class); Intent intent = new Intent(getContext(), DebugInfoActivity.class);
intent.putExtra(DebugInfoActivity.KEY_THROWABLE, exception); intent.putExtra(DebugInfoActivity.KEY_THROWABLE, exception);
if (account != null) if (account != null)
intent.putExtra(DebugInfoActivity.KEY_ACCOUNT, account); intent.putExtra(Constants.KEY_ACCOUNT, account);
startActivity(intent); startActivity(intent);
} }
}) })