Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FOSS flavor #1448

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
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
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"
papjul marked this conversation as resolved.
Show resolved Hide resolved
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"
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AntsyLich Let me know if I need to change the repo name

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AntsyLich Do you want me to initialize a repo you will then fork? Let me know if I can help ;)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kinda busy and this is low priority. I'll get it merged soon

} 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