Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package org.wordpress.android.networking.restapi

import org.wordpress.android.util.PerAppLocaleManager
import rs.wordpress.api.kotlin.fromLocale
import uniffi.wp_api.WpComLanguage
import uniffi.wp_api.WpComLanguageProvider
import javax.inject.Inject

/**
* Reports the language that WordPress.com should localize its responses to.
*
* Reads the app's own language preference, falling back to the device language when
* the user hasn't chosen one. The locale is read on every request, so a language
* change part-way through a session takes effect without rebuilding the client.
* Returns `null` when the language has no WordPress.com equivalent, which sends no
* locale and leaves the choice to the server.
*/
class AppWpComLanguageProvider @Inject constructor(
private val perAppLocaleManager: PerAppLocaleManager
) : WpComLanguageProvider {
override fun currentLanguage(): WpComLanguage? =
WpComLanguage.fromLocale(perAppLocaleManager.getCurrentLocale())
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.wordpress.android.networking.restapi

import okhttp3.OkHttpClient
import org.wordpress.android.fluxc.network.TrackNetworkRequestsInterceptor
import org.wordpress.android.fluxc.network.rest.wpapi.rs.WpNetworkAvailabilityProvider
import org.wordpress.android.fluxc.network.rest.wpapi.rs.applyWpRsTimeouts
import rs.wordpress.api.kotlin.WpComApiClient
Expand All @@ -12,10 +13,13 @@ import javax.inject.Inject

class WpComApiClientProvider @Inject constructor(
private val networkAvailabilityProvider: WpNetworkAvailabilityProvider,
private val languageProvider: AppWpComLanguageProvider,
private val trackNetworkRequestsInterceptor: TrackNetworkRequestsInterceptor,
) {
fun getWpComApiClient(accessToken: String): WpComApiClient {
val okHttpClient = OkHttpClient.Builder()
.applyWpRsTimeouts()
.addInterceptor(trackNetworkRequestsInterceptor)
.build()

return WpComApiClient(
Expand All @@ -24,7 +28,8 @@ class WpComApiClientProvider @Inject constructor(
networkAvailabilityProvider = networkAvailabilityProvider
),
authProvider = WpAuthenticationProvider.staticWithAuth(WpAuthentication.Bearer(token = accessToken)
)
),
languageProvider = languageProvider
)
}
}
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ wellsql = '2.0.0'
wordpress-aztec = 'v2.1.4'
wordpress-lint = '2.2.0'
wordpress-persistent-edittext = '1.0.2'
wordpress-rs = '0.7.0'
wordpress-rs = '1590-af9a28ec86d13203855db032d85e608b00b645c0'
wordpress-utils = '3.14.0'
automattic-ucrop = '2.2.11'
zendesk = '5.5.3'
Expand Down
Loading