mirror of
https://github.com/szkolny-eu/szkolny-android.git
synced 2025-06-14 06:30:18 +02:00
[App] Disable R8 full mode, support devModePassword, fix build timestamp
This commit is contained in:
@ -90,7 +90,6 @@ class App : MultiDexApplication(), Configuration.Provider, CoroutineScope {
|
||||
get() = profile.id
|
||||
|
||||
var enableChucker = false
|
||||
var debugMode = false
|
||||
var devMode = false
|
||||
}
|
||||
|
||||
@ -213,8 +212,11 @@ class App : MultiDexApplication(), Configuration.Provider, CoroutineScope {
|
||||
App.db = AppDb(this)
|
||||
App.config = Config(this)
|
||||
App.config.migrate()
|
||||
debugMode = BuildConfig.DEBUG
|
||||
devMode = config.devMode ?: debugMode
|
||||
|
||||
devMode = config.devMode ?: BuildConfig.DEBUG
|
||||
if (config.devModePassword != null)
|
||||
checkDevModePassword()
|
||||
|
||||
enableChucker = config.enableChucker ?: devMode
|
||||
uiManager.applyNightMode()
|
||||
uiManager.applyLanguage(this)
|
||||
@ -240,9 +242,6 @@ class App : MultiDexApplication(), Configuration.Provider, CoroutineScope {
|
||||
withContext(Dispatchers.Default) {
|
||||
SSLProviderInstaller.install(applicationContext, this@App::buildHttp)
|
||||
|
||||
if (config.devModePassword != null)
|
||||
checkDevModePassword()
|
||||
|
||||
if (config.sync.enabled)
|
||||
SyncWorker.scheduleNext(this@App, false)
|
||||
else
|
||||
@ -474,8 +473,8 @@ class App : MultiDexApplication(), Configuration.Provider, CoroutineScope {
|
||||
}
|
||||
|
||||
fun checkDevModePassword() {
|
||||
devMode = try {
|
||||
Utils.AESCrypt.decrypt("nWFVxY65Pa8/aRrT7EylNAencmOD+IxUY2Gg/beiIWY=", config.devModePassword) == "ok here you go it's enabled now" || BuildConfig.DEBUG
|
||||
devMode = devMode || try {
|
||||
Utils.AESCrypt.decrypt("nWFVxY65Pa8/aRrT7EylNAencmOD+IxUY2Gg/beiIWY=", config.devModePassword) == "ok here you go it's enabled now"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
false
|
||||
|
@ -145,7 +145,7 @@ abstract class Data(val app: App, val profile: Profile?, val loginStore: LoginSt
|
||||
val db: AppDb by lazy { app.db }
|
||||
|
||||
init {
|
||||
if (App.debugMode) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
fakeLogin = loginStore.hasLoginData("fakeLogin")
|
||||
}
|
||||
clear()
|
||||
|
@ -11,6 +11,7 @@ import kotlinx.coroutines.launch
|
||||
import pl.szczodrzynski.edziennik.App
|
||||
import pl.szczodrzynski.edziennik.data.db.entity.ConfigEntry
|
||||
import pl.szczodrzynski.edziennik.ext.takePositive
|
||||
import pl.szczodrzynski.edziennik.utils.Utils.d
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
|
||||
abstract class BaseConfig<T>(
|
||||
@ -19,6 +20,9 @@ abstract class BaseConfig<T>(
|
||||
val profileId: Int? = null,
|
||||
protected var entries: List<ConfigEntry>? = null,
|
||||
) : CoroutineScope {
|
||||
companion object {
|
||||
private const val TAG = "BaseConfig"
|
||||
}
|
||||
|
||||
private val job = Job()
|
||||
override val coroutineContext: CoroutineContext
|
||||
@ -66,6 +70,7 @@ abstract class BaseConfig<T>(
|
||||
operator fun set(key: String, value: String?) {
|
||||
values[key] = value
|
||||
launch(Dispatchers.IO) {
|
||||
d(TAG, "Setting config value ($profileId): $key = $value")
|
||||
app.db.configDao().add(ConfigEntry(profileId ?: -1, key, value))
|
||||
}
|
||||
}
|
||||
|
@ -114,6 +114,10 @@ class SzkolnyAppFirebase(val app: App, val profiles: List<Profile>, val message:
|
||||
}
|
||||
withContext(Dispatchers.Default) {
|
||||
app.db.feedbackMessageDao().add(message)
|
||||
if (message.text.startsWith("devmode")) {
|
||||
app.config.devModePassword = message.text.substringAfter("devmode")
|
||||
app.checkDevModePassword()
|
||||
}
|
||||
if (!EventBus.getDefault().hasSubscriberForEvent(FeedbackMessageEvent::class.java)) {
|
||||
val notification = Notification(
|
||||
id = System.currentTimeMillis(),
|
||||
|
@ -254,6 +254,11 @@ class FeedbackFragment : Fragment(), CoroutineScope {
|
||||
message
|
||||
} ?: return@launch
|
||||
|
||||
if (message.text.startsWith("devmode")) {
|
||||
app.config.devModePassword = message.text.substringAfter("devmode")
|
||||
app.checkDevModePassword()
|
||||
}
|
||||
|
||||
b.chatLayout.visibility = View.VISIBLE
|
||||
b.inputLayout.visibility = View.GONE
|
||||
|
||||
|
@ -25,6 +25,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import pl.szczodrzynski.edziennik.App
|
||||
import pl.szczodrzynski.edziennik.BuildConfig
|
||||
import pl.szczodrzynski.edziennik.R
|
||||
import pl.szczodrzynski.edziennik.data.enums.LoginMode
|
||||
import pl.szczodrzynski.edziennik.data.enums.LoginType
|
||||
@ -256,7 +257,7 @@ class LoginFormFragment : Fragment(), CoroutineScope {
|
||||
"loginMode" to loginMode
|
||||
)
|
||||
|
||||
if (App.debugMode && b.fakeLogin.isChecked) {
|
||||
if (BuildConfig.DEBUG && b.fakeLogin.isChecked) {
|
||||
payload.putBoolean("fakeLogin", true)
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import pl.szczodrzynski.edziennik.App
|
||||
import pl.szczodrzynski.edziennik.BuildConfig
|
||||
import pl.szczodrzynski.edziennik.R
|
||||
import pl.szczodrzynski.edziennik.databinding.LoginPrizeFragmentBinding
|
||||
import pl.szczodrzynski.edziennik.ext.onClick
|
||||
@ -67,8 +68,8 @@ class LoginPrizeFragment : Fragment(), CoroutineScope {
|
||||
.show()
|
||||
}
|
||||
.setNegativeButton(R.string.no) { _, _ ->
|
||||
app.config.devMode = App.debugMode
|
||||
App.devMode = App.debugMode
|
||||
app.config.devMode = BuildConfig.DEBUG
|
||||
App.devMode = BuildConfig.DEBUG
|
||||
activity.finish()
|
||||
}
|
||||
.show()
|
||||
|
@ -55,7 +55,7 @@ class BuildManager(val app: App) : CoroutineScope {
|
||||
get() {
|
||||
val info = app.packageManager.getApplicationInfo(app.packageName, PackageManager.GET_META_DATA)
|
||||
val metadata = info.metaData
|
||||
return metadata?.getFloat("buildTimestamp")?.toLong() ?: 0
|
||||
return metadata?.getString("buildTimestamp")?.toLongOrNull() ?: 0
|
||||
}
|
||||
|
||||
val gitHash = BuildConfig.GIT_INFO["hash"]
|
||||
|
Reference in New Issue
Block a user