Created
September 24, 2019 14:11
-
-
Save Aksi0m/2e60f7a8e5708d37be89362b682c6111 to your computer and use it in GitHub Desktop.
This is a sync adapter that runs in the background, so you can run the synchronous patching.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class SyncAdapter extends AbstractThreadedSyncAdapter { | |
... | |
// This is called each time a sync is attempted; this is okay, since the | |
// overhead is negligible if the security provider is up-to-date. | |
@Override | |
public void onPerformSync(Account account, Bundle extras, String authority, | |
ContentProviderClient provider, SyncResult syncResult) { | |
try { | |
ProviderInstaller.installIfNeeded(getContext()); | |
} catch (GooglePlayServicesRepairableException e) { | |
// Indicates that Google Play services is out of date, disabled, etc. | |
// Prompt the user to install/update/enable Google Play services. | |
GooglePlayServicesUtil.showErrorNotification( | |
e.getConnectionStatusCode(), getContext()); | |
// Notify the SyncManager that a soft error occurred. | |
syncResult.stats.numIOExceptions++; | |
return; | |
} catch (GooglePlayServicesNotAvailableException e) { | |
// Indicates a non-recoverable error; the ProviderInstaller is not able | |
// to install an up-to-date Provider. | |
// Notify the SyncManager that a hard error occurred. | |
//in this case: make sure that you inform your API of it. | |
syncResult.stats.numAuthExceptions++; | |
return; | |
} | |
// If this is reached, you know that the provider was already up-to-date, | |
// or was successfully updated. | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment