Skip to content

Commit

Permalink
Add FOSS flavor
Browse files Browse the repository at this point in the history
  • Loading branch information
papjul committed Nov 7, 2024
1 parent 9df2158 commit af7e691
Show file tree
Hide file tree
Showing 11 changed files with 51 additions and 11 deletions.
12 changes: 10 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,11 @@ android {
buildConfigField("boolean", "INCLUDE_UPDATER", "true")
dimension = "default"
}
create("foss") {
buildConfigField("boolean", "INCLUDE_UPDATER", "true")
dimension = "default"
applicationIdSuffix = "t-foss"
}
create("dev") {
// Include pseudolocales: https://developer.android.com/guide/topics/resources/pseudolocales
resourceConfigurations.addAll(listOf("en", "en_XA", "ar_XB", "xxhdpi"))
Expand Down Expand Up @@ -291,9 +296,12 @@ androidComponents {
)
}
}
// Only excluding in standard and foss flavors because this breaks
// Layout Inspector's Compose tree
onVariants(selector().withFlavor("default" to "standard")) {
// Only excluding in standard flavor because this breaks
// Layout Inspector's Compose tree
it.packaging.resources.excludes.add("META-INF/*.version")
}
onVariants(selector().withFlavor("default" to "foss")) {
it.packaging.resources.excludes.add("META-INF/*.version")
}
}
Expand Down
11 changes: 11 additions & 0 deletions app/src/foss/java/mihon/core/firebase/FirebaseConfig.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package mihon.core.firebase

import android.content.Context

object FirebaseConfig {
fun init(context: Context) = Unit

fun setAnalyticsEnabled(enabled: Boolean) = Unit

fun setCrashlyticsEnabled(enabled: Boolean) = Unit
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.compose.LocalLifecycleOwner
import eu.kanade.presentation.util.rememberRequestPackageInstallsPermissionState
import eu.kanade.tachiyomi.core.security.PrivacyPreferences
import eu.kanade.tachiyomi.util.system.isFossFlavor
import eu.kanade.tachiyomi.util.system.launchRequestPackageInstallsPermission
import tachiyomi.i18n.MR
import tachiyomi.presentation.core.i18n.stringResource
Expand Down Expand Up @@ -117,6 +118,8 @@ internal class PermissionStep : OnboardingStep {
},
)

if (isFossFlavor) return@Column

HorizontalDivider(
modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp),
color = MaterialTheme.colorScheme.onPrimaryContainer,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.core.security.PrivacyPreferences
import eu.kanade.tachiyomi.core.security.SecurityPreferences
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.authenticate
import eu.kanade.tachiyomi.util.system.AuthenticatorUtil.isAuthenticationSupported
import eu.kanade.tachiyomi.util.system.isFossFlavor
import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableMap
import tachiyomi.core.common.i18n.stringResource
Expand All @@ -31,10 +32,12 @@ object SettingsSecurityScreen : SearchableSettings {
override fun getPreferences(): List<Preference> {
val securityPreferences = remember { Injekt.get<SecurityPreferences>() }
val privacyPreferences = remember { Injekt.get<PrivacyPreferences>() }
return listOf(
getSecurityGroup(securityPreferences),
getFirebaseGroup(privacyPreferences),
)
return buildList {
add(getSecurityGroup(securityPreferences))
if (!isFossFlavor) {
add(getFirebaseGroup(privacyPreferences))
}
}
}

@Composable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import eu.kanade.tachiyomi.ui.more.NewUpdateScreen
import eu.kanade.tachiyomi.util.CrashLogUtil
import eu.kanade.tachiyomi.util.lang.toDateTimestampString
import eu.kanade.tachiyomi.util.system.copyToClipboard
import eu.kanade.tachiyomi.util.system.isFossFlavor
import eu.kanade.tachiyomi.util.system.toast
import kotlinx.coroutines.launch
import logcat.LogPriority
Expand Down Expand Up @@ -121,7 +122,7 @@ object AboutScreen : Screen() {
versionName = result.release.version,
changelogInfo = result.release.info,
releaseLink = result.release.releaseLink,
downloadLink = result.release.getDownloadLink(),
downloadLink = result.release.getDownloadLink(isFossFlavor),
)
navigator.push(updateScreen)
},
Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/eu/kanade/tachiyomi/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import eu.kanade.tachiyomi.util.system.DeviceUtil
import eu.kanade.tachiyomi.util.system.WebViewUtil
import eu.kanade.tachiyomi.util.system.animatorDurationScale
import eu.kanade.tachiyomi.util.system.cancelNotification
import eu.kanade.tachiyomi.util.system.isFossFlavor
import eu.kanade.tachiyomi.util.system.notify
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.launchIn
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class AppUpdateChecker {
val GITHUB_REPO: String by lazy {
if (BuildConfig.PREVIEW) {
"mihonapp/mihon-preview"
} else if (BuildConfig.FLAVOR == "foss") {
"mihonapp/mihon-foss"
} else {
"mihonapp/mihon"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.notification.NotificationHandler
import eu.kanade.tachiyomi.data.notification.NotificationReceiver
import eu.kanade.tachiyomi.data.notification.Notifications
import eu.kanade.tachiyomi.util.system.isFossFlavor
import eu.kanade.tachiyomi.util.system.notificationBuilder
import eu.kanade.tachiyomi.util.system.notify
import tachiyomi.core.common.i18n.stringResource
Expand Down Expand Up @@ -38,7 +39,7 @@ internal class AppUpdateNotifier(private val context: Context) {
fun promptUpdate(release: Release) {
val updateIntent = NotificationReceiver.downloadAppUpdatePendingBroadcast(
context,
release.getDownloadLink(),
release.getDownloadLink(isFossFlavor),
release.version,
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaScreen
import eu.kanade.tachiyomi.ui.more.NewUpdateScreen
import eu.kanade.tachiyomi.ui.more.OnboardingScreen
import eu.kanade.tachiyomi.util.system.dpToPx
import eu.kanade.tachiyomi.util.system.isFossFlavor
import eu.kanade.tachiyomi.util.system.isNavigationBarNeedsScrim
import eu.kanade.tachiyomi.util.system.openInBrowser
import eu.kanade.tachiyomi.util.view.setComposeContent
Expand Down Expand Up @@ -303,7 +304,7 @@ class MainActivity : BaseActivity() {
versionName = result.release.version,
changelogInfo = result.release.info,
releaseLink = result.release.releaseLink,
downloadLink = result.release.getDownloadLink(),
downloadLink = result.release.getDownloadLink(isFossFlavor),
)
navigator.push(updateScreen)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import eu.kanade.tachiyomi.BuildConfig
val isDevFlavor: Boolean
get() = BuildConfig.FLAVOR == "dev"

val isFossFlavor: Boolean
get() = BuildConfig.FLAVOR == "foss"

val isPreviewBuildType: Boolean
get() = BuildConfig.BUILD_TYPE == "preview"

Expand Down
10 changes: 8 additions & 2 deletions domain/src/main/java/tachiyomi/domain/release/model/Release.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ data class Release(
* Get download link of latest release from the assets.
* @return download link of latest release.
*/
fun getDownloadLink(): String {
fun getDownloadLink(isFossFlavor: Boolean): String {
val fossFlavor = if (isFossFlavor) {
"-foss"
} else {
""
}

val apkVariant = when (Build.SUPPORTED_ABIS[0]) {
"arm64-v8a" -> "-arm64-v8a"
"armeabi-v7a" -> "-armeabi-v7a"
Expand All @@ -25,7 +31,7 @@ data class Release(
else -> ""
}

return assets.find { it.contains("mihon$apkVariant-") } ?: assets[0]
return assets.find { it.contains("mihon$fossFlavor$apkVariant-") } ?: assets[0]
}

/**
Expand Down

0 comments on commit af7e691

Please sign in to comment.