Compare commits
3 Commits
86b39f9fea
...
6a21a84b86
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6a21a84b86 | ||
|
|
8dc0d46c40 | ||
|
|
34bd6ab02e |
@@ -33,6 +33,22 @@ android {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Каналы дистрибуции: store — для RuStore (без авто-апдейтера, без dev-тестера
|
||||||
|
// и кнопки SOVA); sideload — прямой APK с авто-обновлением.
|
||||||
|
flavorDimensions += "distribution"
|
||||||
|
productFlavors {
|
||||||
|
create("store") {
|
||||||
|
dimension = "distribution"
|
||||||
|
buildConfigField("boolean", "ENABLE_SELF_UPDATE", "false")
|
||||||
|
buildConfigField("boolean", "SHOW_DEV_TOOLS", "false")
|
||||||
|
}
|
||||||
|
create("sideload") {
|
||||||
|
dimension = "distribution"
|
||||||
|
buildConfigField("boolean", "ENABLE_SELF_UPDATE", "true")
|
||||||
|
buildConfigField("boolean", "SHOW_DEV_TOOLS", "true")
|
||||||
|
}
|
||||||
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility = JavaVersion.VERSION_17
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
targetCompatibility = JavaVersion.VERSION_17
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
|||||||
@@ -11,8 +11,6 @@
|
|||||||
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
||||||
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
|
<uses-permission android:name="android.permission.USE_EXACT_ALARM" />
|
||||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||||
<!-- Авто-обновление: установка скачанного APK -->
|
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
||||||
<!-- Держать CPU/Wi-Fi активными во время проигрывания при выключенном экране
|
<!-- Держать CPU/Wi-Fi активными во время проигрывания при выключенном экране
|
||||||
(иначе поток глохнет в фоне — особенно в машине по Bluetooth). -->
|
(иначе поток глохнет в фоне — особенно в машине по Bluetooth). -->
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
|
|||||||
@@ -117,6 +117,8 @@ class MainActivity : ComponentActivity() {
|
|||||||
var downloadedApk by remember { mutableStateOf<java.io.File?>(null) }
|
var downloadedApk by remember { mutableStateOf<java.io.File?>(null) }
|
||||||
val updateScope = rememberCoroutineScope()
|
val updateScope = rememberCoroutineScope()
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
|
// Авто-обновление только в sideload-сборке (в store обновляет RuStore).
|
||||||
|
if (!BuildConfig.ENABLE_SELF_UPDATE) return@LaunchedEffect
|
||||||
val info = com.radiola.update.UpdateManager.checkUpdate() ?: return@LaunchedEffect
|
val info = com.radiola.update.UpdateManager.checkUpdate() ?: return@LaunchedEffect
|
||||||
if (info.versionCode > BuildConfig.VERSION_CODE) pendingUpdate = info
|
if (info.versionCode > BuildConfig.VERSION_CODE) pendingUpdate = info
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ object AppModule {
|
|||||||
@Named("radiolaClient") okHttpClient: OkHttpClient,
|
@Named("radiolaClient") okHttpClient: OkHttpClient,
|
||||||
json: Json
|
json: Json
|
||||||
): Retrofit = Retrofit.Builder()
|
): Retrofit = Retrofit.Builder()
|
||||||
.baseUrl("http://121.127.37.212:3000/")
|
.baseUrl("https://api.radiola.nexaweb.su/")
|
||||||
.client(okHttpClient)
|
.client(okHttpClient)
|
||||||
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
|
.addConverterFactory(json.asConverterFactory("application/json".toMediaType()))
|
||||||
.build()
|
.build()
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ data class VersionInfo(
|
|||||||
*/
|
*/
|
||||||
object UpdateManager {
|
object UpdateManager {
|
||||||
private const val TAG = "radiOLA/Update"
|
private const val TAG = "radiOLA/Update"
|
||||||
private const val BASE_URL = "http://121.127.37.212:3000"
|
private const val BASE_URL = "https://api.radiola.nexaweb.su"
|
||||||
|
|
||||||
private val client = OkHttpClient.Builder()
|
private val client = OkHttpClient.Builder()
|
||||||
.connectTimeout(10, TimeUnit.SECONDS)
|
.connectTimeout(10, TimeUnit.SECONDS)
|
||||||
|
|||||||
6
app/src/sideload/AndroidManifest.xml
Normal file
6
app/src/sideload/AndroidManifest.xml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<!-- Установка скачанного APK — только в sideload-сборке (авто-апдейтер).
|
||||||
|
В store-сборке этого разрешения нет (требование RuStore). -->
|
||||||
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||||
|
</manifest>
|
||||||
Reference in New Issue
Block a user