Update okhttp3 dependency.

pull/127/head
Tom Hacohen 4 years ago
parent 3001af5b2e
commit aefdfe5479

@ -158,7 +158,8 @@ dependencies {
kapt "io.requery:requery-processor:$requeryVersion"
implementation 'com.google.code.findbugs:jsr305:3.0.2'
def okhttp3Version = "3.12.1"
def okhttp3Version = "4.8.1"
implementation "com.squareup.okhttp3:okhttp:$okhttp3Version"
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp3Version"
implementation 'com.google.code.gson:gson:1.7.2'

@ -29,7 +29,6 @@ import java.util.*
import java.util.concurrent.TimeUnit
import java.util.logging.Level
import javax.net.ssl.*
import java.util.logging.Logger as LoggerType
class HttpClient private constructor(
val okHttpClient: OkHttpClient,
@ -58,7 +57,7 @@ class HttpClient private constructor(
override fun close() {
okHttpClient.cache()?.close()
okHttpClient.cache?.close()
certManager?.close()
}
@ -76,8 +75,10 @@ class HttpClient private constructor(
init {
// add network logging, if requested
if (logger.isLoggable(Level.FINEST)) {
val loggingInterceptor = HttpLoggingInterceptor(HttpLoggingInterceptor.Logger {
message -> logger.finest(message)
val loggingInterceptor = HttpLoggingInterceptor(object: HttpLoggingInterceptor.Logger {
override fun log(message: String) {
logger.finest(message)
}
})
loggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
orig.addInterceptor(loggingInterceptor)
@ -163,7 +164,7 @@ class HttpClient private constructor(
var request = chain.request()
/* Only add to the host we want. */
if (host == null || request.url().host() == host) {
if (host == null || request.url.host == host) {
if (token != null && request.header(HEADER_AUTHORIZATION) == null) {
request = request.newBuilder()
.header(HEADER_AUTHORIZATION, "Token $token")
@ -186,8 +187,8 @@ class HttpClient private constructor(
factory.trustManagers.first() as X509TrustManager
}()
val hostnameVerifier = certManager?.hostnameVerifier(OkHostnameVerifier.INSTANCE)
?: OkHostnameVerifier.INSTANCE
val hostnameVerifier = certManager?.hostnameVerifier(OkHostnameVerifier)
?: OkHostnameVerifier
var keyManager: KeyManager? = null
certificateAlias?.let { alias ->

@ -22,7 +22,7 @@ import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import com.etesync.syncadapter.model.JournalModel
import com.etesync.syncadapter.resource.LocalCalendar
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import java.util.*
class CalendarsSyncAdapterService : SyncAdapterService() {
@ -44,7 +44,7 @@ class CalendarsSyncAdapterService : SyncAdapterService() {
updateLocalCalendars(provider, account, settings)
val principal = HttpUrl.get(settings.uri!!)!!
val principal = settings.uri?.toHttpUrlOrNull()!!
for (calendar in AndroidCalendar.find(account, provider, LocalCalendar.Factory, CalendarContract.Calendars.SYNC_EVENTS + "!=0", null)) {
Logger.log.info("Synchronizing calendar #" + calendar.id + ", URL: " + calendar.name)

@ -17,7 +17,7 @@ import com.etesync.syncadapter.InvalidAccountException
import com.etesync.syncadapter.R
import com.etesync.syncadapter.log.Logger
import com.etesync.syncadapter.resource.LocalAddressBook
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class ContactsSyncAdapterService : SyncAdapterService() {
@ -52,7 +52,7 @@ class ContactsSyncAdapterService : SyncAdapterService() {
Logger.log.info("Synchronizing address book: " + addressBook.url)
Logger.log.info("Taking settings from: " + addressBook.mainAccount)
val principal = HttpUrl.get(settings.uri!!)!!
val principal = settings.uri?.toHttpUrlOrNull()!!
ContactsSyncManager(context, account, settings, extras, authority, provider, syncResult, addressBook, principal).use {
it.performSync()
}

@ -16,20 +16,21 @@ import at.bitfire.ical4android.CalendarStorageException
import at.bitfire.vcard4android.BatchOperation
import at.bitfire.vcard4android.Contact
import at.bitfire.vcard4android.ContactsStorageException
import com.etesync.journalmanager.Exceptions
import com.etesync.journalmanager.JournalEntryManager
import com.etesync.journalmanager.model.SyncEntry
import com.etesync.syncadapter.AccountSettings
import com.etesync.syncadapter.Constants
import com.etesync.syncadapter.HttpClient
import com.etesync.syncadapter.R
import com.etesync.journalmanager.Exceptions
import com.etesync.journalmanager.JournalEntryManager
import com.etesync.syncadapter.log.Logger
import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.journalmanager.model.SyncEntry
import com.etesync.syncadapter.resource.LocalAddress
import com.etesync.syncadapter.resource.LocalAddressBook
import com.etesync.syncadapter.resource.LocalContact
import com.etesync.syncadapter.resource.LocalGroup
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.Request
import org.apache.commons.collections4.SetUtils
import java.io.FileNotFoundException
@ -215,14 +216,14 @@ constructor(context: Context, account: Account, settings: AccountSettings, extra
class ResourceDownloader(internal var context: Context) : Contact.Downloader {
override fun download(url: String, accepts: String): ByteArray? {
val httpUrl = HttpUrl.parse(url)
val httpUrl = url.toHttpUrlOrNull()
if (httpUrl == null) {
Logger.log.log(Level.SEVERE, "Invalid external resource URL", url)
return null
}
val host = httpUrl.host()
val host = httpUrl.host
if (host == null) {
Logger.log.log(Level.SEVERE, "External resource URL doesn't specify a host name", url)
return null
@ -236,7 +237,7 @@ constructor(context: Context, account: Account, settings: AccountSettings, extra
.url(httpUrl)
.build()).execute()
val body = response.body()
val body = response.body
if (body != null) {
return body.bytes()
}

@ -26,6 +26,7 @@ import com.etesync.syncadapter.*
import com.etesync.journalmanager.Crypto
import com.etesync.journalmanager.Exceptions
import com.etesync.journalmanager.JournalManager
import com.etesync.syncadapter.*
import com.etesync.syncadapter.log.Logger
import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
@ -33,7 +34,7 @@ import com.etesync.syncadapter.model.JournalModel
import com.etesync.syncadapter.ui.DebugInfoActivity
import com.etesync.syncadapter.ui.PermissionsActivity
import com.etesync.syncadapter.utils.NotificationUtils
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import java.lang.Math.abs
import java.util.*
import java.util.logging.Level
@ -207,7 +208,7 @@ abstract class SyncAdapterService : Service() {
val settings = AccountSettings(context, account)
val httpClient = HttpClient.Builder(context, settings).setForeground(false).build()
val journalsManager = JournalManager(httpClient.okHttpClient, HttpUrl.get(settings.uri!!)!!)
val journalsManager = JournalManager(httpClient.okHttpClient, settings.uri?.toHttpUrlOrNull()!!)
var journals = journalFetcher.list(journalsManager, settings, serviceType)

@ -27,7 +27,7 @@ import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import com.etesync.syncadapter.model.JournalModel
import com.etesync.syncadapter.resource.LocalTaskList
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import org.dmfs.tasks.contract.TaskContract
import java.util.*
@ -65,7 +65,7 @@ class TasksSyncAdapterService: SyncAdapterService() {
updateLocalTaskLists(taskProvider, account, accountSettings)
val principal = HttpUrl.get(accountSettings.uri!!)!!
val principal = accountSettings.uri?.toHttpUrlOrNull()!!
for (taskList in AndroidTaskList.find(account, taskProvider, LocalTaskList.Factory, "${TaskContract.TaskLists.SYNC_ENABLED}!=0", null)) {
Logger.log.info("Synchronizing task list #${taskList.id} [${taskList.syncId}]")

@ -44,7 +44,7 @@ import com.etesync.syncadapter.utils.HintManager
import com.etesync.syncadapter.utils.ShowcaseBuilder
import com.etesync.syncadapter.utils.packageInstalled
import com.google.android.material.snackbar.Snackbar
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import org.jetbrains.anko.doAsync
import tourguide.tourguide.ToolTip
import java.util.logging.Level
@ -438,7 +438,7 @@ class AccountActivity : BaseActivity(), Toolbar.OnMenuItemClickListener, PopupMe
val accountManager = AccountManager.get(this)
val settings = AccountSettings(this@AccountActivity, account)
val authToken = settings.authToken
val principal = HttpUrl.get(settings.uri!!)
val principal = settings.uri?.toHttpUrlOrNull()
doAsync {
try {

@ -18,6 +18,7 @@ import com.etesync.journalmanager.UserInfoManager
import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class AddMemberFragment : DialogFragment() {
private lateinit var account: Account
@ -42,7 +43,7 @@ class AddMemberFragment : DialogFragment() {
e.printStackTrace()
}
remote = HttpUrl.get(settings!!.uri!!)
remote = settings?.uri?.toHttpUrlOrNull()!!
MemberAdd().execute()
}

@ -24,7 +24,7 @@ import com.etesync.journalmanager.UserInfoManager
import com.etesync.syncadapter.log.Logger
import com.etesync.syncadapter.syncadapter.requestSync
import com.google.android.material.textfield.TextInputLayout
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
import java.util.*
@ -70,7 +70,7 @@ open class ChangeEncryptionPasswordActivity : BaseActivity() {
Logger.log.info("Finished deriving old key")
var cryptoManager: Crypto.CryptoManager
val principal = HttpUrl.get(settings.uri!!)!!
val principal = settings.uri?.toHttpUrlOrNull()!!
try {
val userInfoManager = UserInfoManager(httpClient, principal)

@ -17,7 +17,7 @@ import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import com.etesync.syncadapter.model.JournalModel
import com.etesync.syncadapter.model.MyEntityDataStore
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
import java.util.concurrent.Future
@ -54,7 +54,7 @@ class CollectionMembersListFragment : ListFragment(), AdapterView.OnItemClickLis
try {
val settings = AccountSettings(context!!, account)
val httpClient = HttpClient.Builder(context, settings).build().okHttpClient
val journalsManager = JournalManager(httpClient, HttpUrl.get(settings.uri!!)!!)
val journalsManager = JournalManager(httpClient, settings.uri?.toHttpUrlOrNull()!!)
val journal = JournalManager.Journal.fakeWithUid(journalEntity.uid)
members = journalsManager.listMembers(journal)

@ -27,7 +27,7 @@ import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import com.etesync.syncadapter.model.JournalModel
import com.etesync.syncadapter.utils.TaskProviderHandling
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class CreateCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks<Exception> {
@ -100,7 +100,7 @@ class CreateCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks
info.serviceID = serviceEntity.id
val settings = AccountSettings(context, account)
val principal = HttpUrl.get(settings.uri!!)
val principal = settings.uri?.toHttpUrlOrNull()
val httpClient = HttpClient.Builder(context, settings).build().okHttpClient
val journalManager = JournalManager(httpClient, principal!!)

@ -25,7 +25,7 @@ import com.etesync.journalmanager.Exceptions
import com.etesync.journalmanager.JournalManager
import com.etesync.syncadapter.model.CollectionInfo
import com.etesync.syncadapter.model.JournalEntity
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class DeleteCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks<Exception> {
@ -86,7 +86,7 @@ class DeleteCollectionFragment : DialogFragment(), LoaderManager.LoaderCallbacks
val data = (context.applicationContext as App).data
val settings = AccountSettings(context, account)
val principal = HttpUrl.get(settings.uri!!)
val principal = settings.uri?.toHttpUrlOrNull()
val httpClient = HttpClient.Builder(context, settings).build().okHttpClient
val journalManager = JournalManager(httpClient, principal!!)

@ -10,7 +10,7 @@ import androidx.fragment.app.DialogFragment
import com.etesync.syncadapter.*
import com.etesync.journalmanager.JournalManager
import com.etesync.syncadapter.model.CollectionInfo
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class RemoveMemberFragment : DialogFragment() {
private var settings: AccountSettings? = null
@ -46,7 +46,7 @@ class RemoveMemberFragment : DialogFragment() {
val httpClient = HttpClient.Builder(context, settings).build()
try {
val remote = HttpUrl.get(settings!!.uri!!)
val remote = settings?.uri?.toHttpUrlOrNull()
val journalsManager = JournalManager(httpClient.okHttpClient, remote!!)
val journal = JournalManager.Journal.fakeWithUid(info!!.uid!!)

@ -16,6 +16,7 @@ import com.etesync.journalmanager.UserInfoManager
import com.etesync.syncadapter.log.Logger
import com.etesync.syncadapter.model.CollectionInfo
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import okhttp3.OkHttpClient
import java.io.IOException
import java.io.Serializable
@ -35,7 +36,7 @@ class BaseConfigurationFinder(protected val context: Context, protected val cred
val cardDavConfig = findInitialConfiguration(CollectionInfo.Type.ADDRESS_BOOK)
val calDavConfig = findInitialConfiguration(CollectionInfo.Type.CALENDAR)
val authenticator = JournalAuthenticator(httpClient, HttpUrl.get(credentials.uri!!)!!)
val authenticator = JournalAuthenticator(httpClient, credentials.uri?.toHttpUrlOrNull()!!)
var authtoken: String? = null
var userInfo: UserInfoManager.UserInfo? = null
@ -43,7 +44,7 @@ class BaseConfigurationFinder(protected val context: Context, protected val cred
authtoken = authenticator.getAuthToken(credentials.userName, credentials.password)
val authenticatedHttpClient = HttpClient.Builder(context, credentials.uri.host, authtoken!!).build().okHttpClient
val userInfoManager = UserInfoManager(authenticatedHttpClient, HttpUrl.get(credentials.uri)!!)
val userInfoManager = UserInfoManager(authenticatedHttpClient, credentials.uri.toHttpUrlOrNull()!!)
userInfo = userInfoManager.fetch(credentials.userName)
} catch (e: Exceptions.HttpException) {
Logger.log.warning(e.message)

@ -22,7 +22,7 @@ import com.etesync.syncadapter.R
import com.etesync.syncadapter.ui.WebViewActivity
import com.google.android.material.textfield.TextInputLayout
import net.cachapa.expandablelayout.ExpandableLayout
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
import java.net.URI
class LoginCredentialsFragment : Fragment() {
@ -105,9 +105,9 @@ class LoginCredentialsFragment : Fragment() {
val server = customServer.text.toString()
// If this field is null, just use the default
if (!server.isEmpty()) {
val url = HttpUrl.parse(server)
val url = server.toHttpUrlOrNull()
if (url != null) {
uri = url.uri()
uri = url.toUri()
} else {
customServer.error = getString(R.string.login_custom_server_error)
valid = false

@ -17,7 +17,7 @@ import com.etesync.journalmanager.Constants
import com.etesync.journalmanager.Crypto
import com.etesync.journalmanager.UserInfoManager
import com.etesync.syncadapter.log.Logger
import okhttp3.HttpUrl
import okhttp3.HttpUrl.Companion.toHttpUrlOrNull
class SetupUserInfoFragment : DialogFragment() {
private lateinit var account: Account
@ -53,7 +53,7 @@ class SetupUserInfoFragment : DialogFragment() {
val cryptoManager: Crypto.CryptoManager
val httpClient = HttpClient.Builder(context, settings).build().okHttpClient
val userInfoManager = UserInfoManager(httpClient, HttpUrl.get(settings.uri!!)!!)
val userInfoManager = UserInfoManager(httpClient, settings.uri?.toHttpUrlOrNull()!!)
var userInfo: UserInfoManager.UserInfo? = userInfoManager.fetch(account.name)
if (userInfo == null) {

Loading…
Cancel
Save