diff --git a/app/build.gradle b/app/build.gradle
index 8be04ea1..6b60db3a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -42,7 +42,7 @@ android {
applicationId "org.secfirst.umbrella"
minSdkVersion 16
compileSdkVersion 28
- targetSdkVersion 28
+ targetSdkVersion 31
versionCode 56
versionName "1.0.32"
multiDexEnabled true
@@ -89,6 +89,9 @@ dependencies {
implementation "org.apache.commons:commons-text:$commonsText"
implementation "org.apache.commons:commons-lang3:$commonsLang"
+ //Material Design for Light/ Dark mode
+ implementation "com.google.android.material:material:$material_version"
+
//Framework for replacing fragments
implementation "com.bluelinelabs:conductor:$conductor_version"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b7b44218..2d122fac 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
package="org.secfirst.umbrella">
+
diff --git a/app/src/main/java/org/secfirst/umbrella/component/WebViewController.kt b/app/src/main/java/org/secfirst/umbrella/component/WebViewController.kt
index f41aebd2..412e6f44 100644
--- a/app/src/main/java/org/secfirst/umbrella/component/WebViewController.kt
+++ b/app/src/main/java/org/secfirst/umbrella/component/WebViewController.kt
@@ -13,6 +13,7 @@ import android.webkit.WebResourceError
import android.webkit.WebResourceRequest
import android.webkit.WebView
import android.webkit.WebViewClient
+import kotlinx.android.synthetic.main.segment_detail.*
import kotlinx.android.synthetic.main.web_view.*
import org.secfirst.umbrella.R
import org.secfirst.umbrella.feature.base.view.BaseController
@@ -86,9 +87,10 @@ class WebViewController(bundle: Bundle) : BaseController(bundle) {
private fun setUpToolbar() {
webViewToolbar?.let {
- mainActivity.setSupportActionBar(it)
+ it.title = markdownView.title
+ /*mainActivity.setSupportActionBar(it)
mainActivity.supportActionBar?.setDisplayShowHomeEnabled(true)
- mainActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ mainActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)*/
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/org/secfirst/umbrella/data/database/AppDatabase.kt b/app/src/main/java/org/secfirst/umbrella/data/database/AppDatabase.kt
index 5a4596ab..8a343e94 100644
--- a/app/src/main/java/org/secfirst/umbrella/data/database/AppDatabase.kt
+++ b/app/src/main/java/org/secfirst/umbrella/data/database/AppDatabase.kt
@@ -2,9 +2,11 @@ package org.secfirst.umbrella.data.database
import com.raizlabs.android.dbflow.annotation.Database
-@Database(version = AppDatabase.VERSION,
- generatedClassSeparator = "_",
- foreignKeyConstraintsEnforced = true)
+@Database(
+ version = AppDatabase.VERSION,
+ generatedClassSeparator = "_",
+ foreignKeyConstraintsEnforced = true
+)
object AppDatabase {
diff --git a/app/src/main/java/org/secfirst/umbrella/data/database/BaseDao.kt b/app/src/main/java/org/secfirst/umbrella/data/database/BaseDao.kt
index 153de87f..a82c41a9 100644
--- a/app/src/main/java/org/secfirst/umbrella/data/database/BaseDao.kt
+++ b/app/src/main/java/org/secfirst/umbrella/data/database/BaseDao.kt
@@ -28,19 +28,21 @@ interface BaseDao {
fun initDatabase(userToken: String) {
val dbConfig = FlowConfig.Builder(UmbrellaApplication.instance)
- .addDatabaseConfig(DatabaseConfig
- .Builder(AppDatabase::class.java)
- .databaseName(AppDatabase.NAME)
- .openHelper { databaseDefinition, helperListener ->
- SQLCipherHelperImpl(databaseDefinition, helperListener, userToken)
- }.build())
- .build()
+ .addDatabaseConfig(DatabaseConfig
+ .Builder(AppDatabase::class.java)
+ .databaseName(AppDatabase.NAME)
+ .openHelper { databaseDefinition, helperListener ->
+ SQLCipherHelperImpl(databaseDefinition, helperListener, userToken)
+ }.build()
+ )
+ .build()
FlowManager.init(dbConfig)
}
fun changeDatabaseAccess(userToken: String): Boolean {
return try {
- FlowManager.getWritableDatabase(AppDatabase.NAME).execSQL("PRAGMA rekey = '$userToken';")
+ FlowManager.getWritableDatabase(AppDatabase.NAME)
+ .execSQL("PRAGMA rekey = '$userToken';")
true
} catch (exception: Exception) {
Log.e("test", "Error when try to change the password. ${exception.message}")
@@ -51,68 +53,68 @@ interface BaseDao {
fun isDatabaseOK() = FlowManager.getDatabase(AppDatabase.NAME).isDatabaseIntegrityOk
suspend fun saveModules(modules: List) =
- withContext(ioContext) { modelAdapter().updateAll(modules) }
+ withContext(ioContext) { modelAdapter().updateAll(modules) }
suspend fun saveSubjects(subjects: List) =
- withContext(ioContext) { modelAdapter().saveAll(subjects) }
+ withContext(ioContext) { modelAdapter().saveAll(subjects) }
suspend fun saveDifficulties(difficulties: List) =
- withContext(ioContext) { modelAdapter().saveAll(difficulties) }
+ withContext(ioContext) { modelAdapter().saveAll(difficulties) }
suspend fun saveMarkdowns(markdowns: List) =
- withContext(ioContext) { modelAdapter().saveAll(markdowns) }
+ withContext(ioContext) { modelAdapter().saveAll(markdowns) }
suspend fun saveChecklists(checklists: List) =
- withContext(ioContext) { modelAdapter().saveAll(checklists) }
+ withContext(ioContext) { modelAdapter().saveAll(checklists) }
suspend fun getModule(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Module::class.java)
- .where(Module_Table.id.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Module::class.java)
+ .where(Module_Table.id.`is`(id))
+ .querySingle()
+ }
suspend fun getSubject(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Subject::class.java)
- .where(Subject_Table.id.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Subject::class.java)
+ .where(Subject_Table.id.`is`(id))
+ .querySingle()
+ }
suspend fun getDifficulty(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Difficulty::class.java)
- .where(Difficulty_Table.id.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Difficulty::class.java)
+ .where(Difficulty_Table.id.`is`(id))
+ .querySingle()
+ }
suspend fun getChecklist(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Checklist::class.java)
- .where(Checklist_Table.id.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Checklist::class.java)
+ .where(Checklist_Table.id.`is`(id))
+ .querySingle()
+ }
suspend fun getMarkdown(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Markdown::class.java)
- .where(Markdown_Table.id.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Markdown::class.java)
+ .where(Markdown_Table.id.`is`(id))
+ .querySingle()
+ }
suspend fun getForm(id: String) =
- withContext(ioContext) {
- SQLite.select()
- .from(Form::class.java)
- .where(Form_Table.path.`is`(id))
- .querySingle()
- }
+ withContext(ioContext) {
+ SQLite.select()
+ .from(Form::class.java)
+ .where(Form_Table.path.`is`(id))
+ .querySingle()
+ }
suspend fun saveForms(forms: List