diff --git a/app/src/main/java/exh/EXHMigrations.kt b/app/src/main/java/exh/EXHMigrations.kt index 350e7ca5d..f7ede0e72 100644 --- a/app/src/main/java/exh/EXHMigrations.kt +++ b/app/src/main/java/exh/EXHMigrations.kt @@ -110,7 +110,29 @@ object EXHMigrations { .build()) } } + if (oldVersion < 8409) { + db.inTransaction { + // Migrate tsumino URLs + val tsuminoManga = db.db.get() + .listOfObjects(Manga::class.java) + .withQuery(Query.builder() + .table(MangaTable.TABLE) + .where("${MangaTable.COL_SOURCE} = $TSUMINO_SOURCE_ID") + .build()) + .prepare() + .executeAsBlocking() + tsuminoManga.forEach { + it.url = "/entry/"+it.url.split("/").last() + } + db.db.put() + .objects(tsuminoManga) + // Extremely slow without the resolver :/ + .withPutResolver(MangaUrlPutResolver()) + .prepare() + .executeAsBlocking() + } + } // TODO BE CAREFUL TO NOT FUCK UP MergedSources IF CHANGING URLs diff --git a/app/src/main/java/exh/ui/lock/LockActivityDelegate.kt b/app/src/main/java/exh/ui/lock/LockActivityDelegate.kt new file mode 100644 index 000000000..0ba5e40b4 --- /dev/null +++ b/app/src/main/java/exh/ui/lock/LockActivityDelegate.kt @@ -0,0 +1,46 @@ +package exh.ui.lock + +import android.content.Intent +import android.view.WindowManager +import androidx.fragment.app.FragmentActivity +import com.bluelinelabs.conductor.Router +import com.bluelinelabs.conductor.RouterTransaction +import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.data.preference.getOrDefault +import uy.kohesive.injekt.injectLazy +import java.util.Date + +object LockActivityDelegate { + private val preferences by injectLazy() + + var willLock: Boolean = true + + fun doLock(router: Router, animate: Boolean = false) { + router.pushController(RouterTransaction.with(LockController()) + .popChangeHandler(LockChangeHandler(animate))) + } + + + fun onCreate(activity: FragmentActivity) { + preferences.secureScreen().asObservable() + .subscribe { + if (it) { + activity.window.setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE) + } else { + activity.window.clearFlags(WindowManager.LayoutParams.FLAG_SECURE) + } + } + } + + fun onResume(activity: FragmentActivity, router: Router) { + if (lockEnabled() && !isAppLocked(router) && willLock && !preferences.eh_lockManually().getOrDefault()) { + doLock(router) + willLock = false + } + } + + private fun isAppLocked(router: Router): Boolean { + return router.backstack.lastOrNull()?.controller() is LockController + } + +}