Loading app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncManager.kt +25 −0 Original line number Diff line number Diff line Loading @@ -10,12 +10,15 @@ import android.content.ContentUris import android.content.Context import android.content.Intent import android.content.SyncResult import android.content.pm.PackageManager import android.net.Uri import android.os.RemoteException import android.provider.CalendarContract import android.provider.ContactsContract import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.edit import androidx.preference.PreferenceManager import at.bitfire.dav4jvm.* import at.bitfire.dav4jvm.exception.* import at.bitfire.dav4jvm.property.GetCTag Loading Loading @@ -179,6 +182,19 @@ abstract class SyncManager<ResourceType: LocalResource<*>, out CollectionType: L * Call performSync with default retry values */ fun performSync() { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val currentVersion = getCurrentVersionCode(context) val savedVersion = prefs.getInt("LAST_VERSION_CODE", 0) if (savedVersion != currentVersion) { Logger.log.warning("App has been updated! Previous: $savedVersion, Current: $currentVersion") prefs.edit { putInt("LAST_VERSION_CODE", currentVersion) } // Clear cookie since the app is updated. accountSettings.clearCookie() return } val credentials = accountSettings.credentials() if (credentials.passwordNeedsUpdate) { val exception = UnauthorizedException(context.getString(R.string.sync_error_authentication_failed)) Loading @@ -195,6 +211,15 @@ abstract class SyncManager<ResourceType: LocalResource<*>, out CollectionType: L refreshAuthTokenAndSync(authState) } private fun getCurrentVersionCode(context: Context): Int { return try { val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) packageInfo.versionCode } catch (e: PackageManager.NameNotFoundException) { 0 } } private fun refreshAuthTokenAndSync(authState: AuthState) { val tokenRequest = authState.createTokenRefreshRequest() val clientSecretString = accountSettings.credentials().clientSecret Loading Loading
app/src/main/kotlin/at/bitfire/davdroid/syncadapter/SyncManager.kt +25 −0 Original line number Diff line number Diff line Loading @@ -10,12 +10,15 @@ import android.content.ContentUris import android.content.Context import android.content.Intent import android.content.SyncResult import android.content.pm.PackageManager import android.net.Uri import android.os.RemoteException import android.provider.CalendarContract import android.provider.ContactsContract import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.edit import androidx.preference.PreferenceManager import at.bitfire.dav4jvm.* import at.bitfire.dav4jvm.exception.* import at.bitfire.dav4jvm.property.GetCTag Loading Loading @@ -179,6 +182,19 @@ abstract class SyncManager<ResourceType: LocalResource<*>, out CollectionType: L * Call performSync with default retry values */ fun performSync() { val prefs = PreferenceManager.getDefaultSharedPreferences(context) val currentVersion = getCurrentVersionCode(context) val savedVersion = prefs.getInt("LAST_VERSION_CODE", 0) if (savedVersion != currentVersion) { Logger.log.warning("App has been updated! Previous: $savedVersion, Current: $currentVersion") prefs.edit { putInt("LAST_VERSION_CODE", currentVersion) } // Clear cookie since the app is updated. accountSettings.clearCookie() return } val credentials = accountSettings.credentials() if (credentials.passwordNeedsUpdate) { val exception = UnauthorizedException(context.getString(R.string.sync_error_authentication_failed)) Loading @@ -195,6 +211,15 @@ abstract class SyncManager<ResourceType: LocalResource<*>, out CollectionType: L refreshAuthTokenAndSync(authState) } private fun getCurrentVersionCode(context: Context): Int { return try { val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0) packageInfo.versionCode } catch (e: PackageManager.NameNotFoundException) { 0 } } private fun refreshAuthTokenAndSync(authState: AuthState) { val tokenRequest = authState.createTokenRefreshRequest() val clientSecretString = accountSettings.credentials().clientSecret Loading