Skip to content

Commit 3fca5a2

Browse files
author
Rob Rogers
committed
move createRetrofit to Helpers. Add trailing URL slash only in retrofit. v39 versioning.
1 parent 3163ef6 commit 3fca5a2

File tree

6 files changed

+33
-88
lines changed

6 files changed

+33
-88
lines changed

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ android {
3030
applicationId = "com.immichframe.immichframe"
3131
minSdk = 23
3232
targetSdk = 35
33-
versionCode = 38
34-
versionName = "1.0.38.0"
33+
versionCode = 39
34+
versionName = "1.0.39.0"
3535
}
3636

3737
buildTypes {

app/src/main/java/com/immichframe/immichframe/Helpers.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ import android.util.Base64
99
import retrofit2.Call
1010
import retrofit2.http.GET
1111
import androidx.core.graphics.scale
12+
import okhttp3.OkHttpClient
13+
import retrofit2.Retrofit
14+
import retrofit2.converter.gson.GsonConverterFactory
1215

1316

1417
object Helpers {
@@ -164,6 +167,30 @@ object Helpers {
164167
@GET("api/Weather")
165168
fun getWeather(): Call<Weather>
166169
}
170+
fun createRetrofit(baseUrl: String, authSecret: String): Retrofit {
171+
val normalizedBaseUrl = if (!baseUrl.endsWith("/")) "$baseUrl/" else baseUrl
172+
173+
val client = OkHttpClient.Builder()
174+
.addInterceptor { chain ->
175+
val originalRequest = chain.request()
176+
177+
val request = if (authSecret.isNotEmpty()) {
178+
originalRequest.newBuilder()
179+
.addHeader("Authorization", "Bearer $authSecret")
180+
.build()
181+
} else {
182+
originalRequest
183+
}
184+
185+
chain.proceed(request)
186+
}
187+
.build()
167188

189+
return Retrofit.Builder()
190+
.baseUrl(normalizedBaseUrl)
191+
.client(client)
192+
.addConverterFactory(GsonConverterFactory.create())
193+
.build()
194+
}
168195

169196
}

app/src/main/java/com/immichframe/immichframe/MainActivity.kt

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,10 @@ import androidx.activity.result.contract.ActivityResultContracts
3636
import androidx.appcompat.app.AppCompatActivity
3737
import androidx.core.view.WindowCompat
3838
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
39-
import okhttp3.OkHttpClient
4039
import retrofit2.Call
4140
import retrofit2.Callback
4241
import retrofit2.Response
4342
import retrofit2.Retrofit
44-
import retrofit2.converter.gson.GsonConverterFactory
4543
import java.text.SimpleDateFormat
4644
import java.util.Calendar
4745
import java.util.Locale
@@ -550,7 +548,7 @@ class MainActivity : AppCompatActivity() {
550548
webView.settings.domStorageEnabled = true
551549
webView.loadUrl(savedUrl)
552550
} else {
553-
retrofit = createRetrofit(savedUrl, authSecret)
551+
retrofit = Helpers.createRetrofit(savedUrl, authSecret)
554552
apiService = retrofit!!.create(Helpers.ApiService::class.java)
555553
getServerSettings(
556554
onSuccess = { settings ->
@@ -604,31 +602,6 @@ class MainActivity : AppCompatActivity() {
604602
}
605603
}
606604

607-
private fun createRetrofit(baseUrl: String, authSecret: String): Retrofit {
608-
val client = OkHttpClient.Builder()
609-
.addInterceptor { chain ->
610-
val originalRequest = chain.request()
611-
612-
val request = if (authSecret.isNotEmpty()) {
613-
originalRequest.newBuilder()
614-
.addHeader("Authorization", "Bearer $authSecret")
615-
.build()
616-
} else {
617-
originalRequest
618-
}
619-
620-
chain.proceed(request)
621-
}
622-
.build()
623-
624-
return Retrofit.Builder()
625-
.baseUrl(baseUrl)
626-
.client(client)
627-
.addConverterFactory(GsonConverterFactory.create())
628-
.build()
629-
}
630-
631-
632605
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
633606
if (event.action == KeyEvent.ACTION_DOWN) {
634607
when (event.keyCode) {

app/src/main/java/com/immichframe/immichframe/ScreenSaverService.kt

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,10 @@ import kotlinx.coroutines.CoroutineScope
3030
import kotlinx.coroutines.Dispatchers
3131
import kotlinx.coroutines.launch
3232
import kotlinx.coroutines.withContext
33-
import okhttp3.OkHttpClient
3433
import retrofit2.Call
3534
import retrofit2.Callback
3635
import retrofit2.Response
3736
import retrofit2.Retrofit
38-
import retrofit2.converter.gson.GsonConverterFactory
3937
import java.text.SimpleDateFormat
4038
import java.util.Calendar
4139
import java.util.Locale
@@ -444,7 +442,7 @@ class ScreenSaverService : DreamService() {
444442
webView.settings.domStorageEnabled = true
445443
webView.loadUrl(savedUrl)
446444
} else {
447-
retrofit = createRetrofit(savedUrl, authSecret)
445+
retrofit = Helpers.createRetrofit(savedUrl, authSecret)
448446
apiService = retrofit!!.create(Helpers.ApiService::class.java)
449447
getServerSettings(
450448
onSuccess = { settings ->
@@ -509,30 +507,6 @@ class ScreenSaverService : DreamService() {
509507
}
510508
}
511509

512-
private fun createRetrofit(baseUrl: String, authSecret: String): Retrofit {
513-
val client = OkHttpClient.Builder()
514-
.addInterceptor { chain ->
515-
val originalRequest = chain.request()
516-
517-
val request = if (authSecret.isNotEmpty()) {
518-
originalRequest.newBuilder()
519-
.addHeader("Authorization", "Bearer $authSecret")
520-
.build()
521-
} else {
522-
originalRequest
523-
}
524-
525-
chain.proceed(request)
526-
}
527-
.build()
528-
529-
return Retrofit.Builder()
530-
.baseUrl(baseUrl)
531-
.client(client)
532-
.addConverterFactory(GsonConverterFactory.create())
533-
.build()
534-
}
535-
536510
private fun acquireWakeLock() {
537511
if (wakeLock == null) {
538512
val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager

app/src/main/java/com/immichframe/immichframe/SettingsActivity.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,9 @@ class SettingsActivity : AppCompatActivity() {
113113
}
114114

115115
private fun saveSettings(url: String, authSecret: String) {
116-
// Ensure trailing slash
117-
val fixedUrl = if (!url.endsWith("/")) "$url/" else url
118116
val sharedPreferences = getSharedPreferences("ImmichFramePrefs", MODE_PRIVATE)
119117
with(sharedPreferences.edit()) {
120-
putString("webview_url", fixedUrl)
118+
putString("webview_url", url)
121119
putBoolean("useWebView", chkUseWebView.isChecked)
122120
putBoolean("keepScreenOn", chkKeepScreenOn.isChecked)
123121
putBoolean("blurredBackground", chkBlurredBackground.isChecked)

app/src/main/java/com/immichframe/immichframe/WidgetProvider.kt

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,9 @@ import android.widget.RemoteViews
1010
import kotlinx.coroutines.CoroutineScope
1111
import kotlinx.coroutines.Dispatchers
1212
import kotlinx.coroutines.launch
13-
import okhttp3.OkHttpClient
1413
import retrofit2.Call
1514
import retrofit2.Callback
1615
import retrofit2.Response
17-
import retrofit2.Retrofit
18-
import retrofit2.converter.gson.GsonConverterFactory
1916
import kotlinx.coroutines.withContext
2017

2118
class WidgetProvider : AppWidgetProvider() {
@@ -80,7 +77,7 @@ class WidgetProvider : AppWidgetProvider() {
8077
val authSecret = prefs.getString("authSecret", "") ?: ""
8178

8279
if (savedUrl.isNotEmpty()) {
83-
val retrofit = createRetrofit(savedUrl, authSecret)
80+
val retrofit = Helpers.createRetrofit(savedUrl, authSecret)
8481
val apiService = retrofit.create(Helpers.ApiService::class.java)
8582

8683
CoroutineScope(Dispatchers.IO).launch {
@@ -131,29 +128,5 @@ class WidgetProvider : AppWidgetProvider() {
131128
}
132129
})
133130
}
134-
135-
private fun createRetrofit(baseUrl: String, authSecret: String): Retrofit {
136-
val client = OkHttpClient.Builder()
137-
.addInterceptor { chain ->
138-
val originalRequest = chain.request()
139-
140-
val request = if (authSecret.isNotEmpty()) {
141-
originalRequest.newBuilder()
142-
.addHeader("Authorization", "Bearer $authSecret")
143-
.build()
144-
} else {
145-
originalRequest
146-
}
147-
148-
chain.proceed(request)
149-
}
150-
.build()
151-
152-
return Retrofit.Builder()
153-
.baseUrl(baseUrl)
154-
.client(client)
155-
.addConverterFactory(GsonConverterFactory.create())
156-
.build()
157-
}
158131
}
159132
}

0 commit comments

Comments
 (0)