Skip to content

Commit

Permalink
Merge pull request #203 from Sav22999/beta
Browse files Browse the repository at this point in the history
2.5
  • Loading branch information
Sav22999 authored Oct 26, 2022
2 parents 41e7723 + aa261d7 commit c22383b
Show file tree
Hide file tree
Showing 124 changed files with 2,736 additions and 209 deletions.
2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file modified app/GPS/release/app-GPS-release.aab
Binary file not shown.
8 changes: 4 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ android {
applicationId 'org.commonvoice.saverio'
minSdkVersion 26
targetSdk 31
versionCode = 179
versionName '2.4.0.5'
versionCode = 181
versionName '2.5'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
Expand Down Expand Up @@ -43,8 +43,8 @@ android {
}
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceCompatibility = 11
targetCompatibility = 11
}
kotlinOptions {
jvmTarget = "1.8"
Expand Down
18 changes: 11 additions & 7 deletions app/src/main/java/org/commonvoice/saverio/CommonVoice.kt
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ class CommonVoice : Application() {
get<WorkManager>(),
get<SpeakPrefManager>(),
get<MainPrefManager>(),
get<SettingsPrefManager>(),
get<AppActionsRepository>(),
)
}
Expand All @@ -103,16 +104,19 @@ class CommonVoice : Application() {
get<WorkManager>(),
get<MainPrefManager>(),
get<ListenPrefManager>(),
get<SettingsPrefManager>(),
get<AppActionsRepository>(),
)
}
viewModel { DashboardViewModel(
get<CVStatsRepository>(),
get<StatsRepository>(),
get<ConnectionManager>(),
get<MainPrefManager>(),
get<StatsPrefManager>()
) }
viewModel {
DashboardViewModel(
get<CVStatsRepository>(),
get<StatsRepository>(),
get<ConnectionManager>(),
get<MainPrefManager>(),
get<StatsPrefManager>()
)
}
viewModel { LoginViewModel(get(), get()) }
viewModel { MainActivityViewModel(get(), get(), get()) }
viewModel { HomeViewModel(get(), get(), get(), get(), get(), get()) }
Expand Down
55 changes: 46 additions & 9 deletions app/src/main/java/org/commonvoice/saverio/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.content.res.Resources
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.util.Log
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
Expand All @@ -30,13 +31,10 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.background.ClipsDownloadWorker
import org.commonvoice.saverio_lib.background.RecordingsUploadWorker
import org.commonvoice.saverio_lib.background.SentencesDownloadWorker
import org.commonvoice.saverio_lib.preferences.FirstRunPrefManager
import org.commonvoice.saverio_lib.preferences.ListenPrefManager
import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.DashboardViewModel
import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
import org.commonvoice.saverio_lib.preferences.*
import org.commonvoice.saverio_lib.viewmodels.*
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.stateViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import java.text.SimpleDateFormat
Expand All @@ -52,14 +50,20 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {

private val firstRunPrefManager: FirstRunPrefManager by inject()
private val statsPrefManager: StatsPrefManager by inject()
private val settingsPrefManager by inject<SettingsPrefManager>()

private val speakPrefManager: SpeakPrefManager by inject()
private val listenPrefManager: ListenPrefManager by inject()

private val listenViewModel: ListenViewModel by stateViewModel()
private val speakViewModel: SpeakViewModel by stateViewModel()

private val connectionManager: ConnectionManager by inject()
private val translationHandler: TranslationHandler by inject()

private val dialogInflater by inject<DialogInflater>()
private val mainViewModel by viewModel<MainActivityViewModel>()
private lateinit var viewModel: GenericViewModel

companion object {
val SOURCE_STORE: String = BuildConfig.SOURCE_STORE
Expand Down Expand Up @@ -99,9 +103,12 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {
setLanguageUI("start")
//checkPermissions()

RecordingsUploadWorker.attachToWorkManager(workManager)
SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
RecordingsUploadWorker.attachToWorkManager(
workManager,
wifiOnly = settingsPrefManager.wifiOnlyUpload
)
checkSentencesOfflineMode()
checkClipsOfflineMode()

mainActivityViewModel.postStats(
BuildConfig.VERSION_NAME,
Expand All @@ -126,6 +133,36 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {
}
}

fun checkSentencesOfflineMode() {
lifecycleScope.launch {
//println(speakPrefManager.requiredSentencesCount.toString() + " =S= " + speakViewModel.getSentencesCount())
if (speakPrefManager.requiredSentencesCount != speakViewModel.getSentencesCount())
SentencesDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
wifiOnly = settingsPrefManager.wifiOnlyDownload
).apply {
Handler().postDelayed({
checkSentencesOfflineMode()
}, 15000)
}
}
}

fun checkClipsOfflineMode() {
lifecycleScope.launch {
//println(listenPrefManager.requiredClipsCount.toString() + " =C= " + listenViewModel.getClipsCount())
if (listenPrefManager.requiredClipsCount != listenViewModel.getClipsCount())
ClipsDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
wifiOnly = settingsPrefManager.wifiOnlyDownload
).apply {
Handler().postDelayed({
checkClipsOfflineMode()
}, 15000)
}
}
}

fun resetStatusBarColor() {
this@MainActivity.window.statusBarColor =
ContextCompat.getColor(this@MainActivity, R.color.colorPrimaryDark)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ import androidx.core.view.children
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.LoginActivity
import org.commonvoice.saverio.MainActivity
import org.commonvoice.saverio.R
Expand All @@ -27,8 +29,10 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.DashboardViewModel
import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel
import java.util.*

class DashboardFragment : ViewBoundFragment<FragmentDashboardBinding>() {
Expand All @@ -46,6 +50,8 @@ class DashboardFragment : ViewBoundFragment<FragmentDashboardBinding>() {

private val statsPrefManager: StatsPrefManager by inject()
private val mainPrefManager: MainPrefManager by inject()
private val mainViewModel by viewModel<MainActivityViewModel>()
private lateinit var viewModel: GenericViewModel

private val dialogInflater by inject<DialogInflater>()

Expand Down Expand Up @@ -88,6 +94,11 @@ class DashboardFragment : ViewBoundFragment<FragmentDashboardBinding>() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)

viewModel = activity?.run {
ViewModelProviders.of(this).get(GenericViewModel::class.java)
} ?: throw Exception("?? Invalid Activity ??")
viewModel.setFromFragment("dashboard")

voicesOnlineSection()

setTheme()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,62 @@
package org.commonvoice.saverio.ui.dialogs.commonTypes

import android.graphics.Typeface
import android.view.LayoutInflater
import androidx.annotation.StringRes
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import com.github.mrindeciso.advanced_dialogs.customDialog.CustomDialogInterface
import org.commonvoice.saverio.databinding.DialogStandardBinding
import org.commonvoice.saverio.databinding.DialogWarningBinding
import org.commonvoice.saverio.utils.onClick

class WarningDialog(
private val message: String? = null,
@StringRes private val messageRes: Int? = null,
private val buttonText: String? = null,
@StringRes private val buttonTextRes: Int? = null,
private val onButtonClick: (() -> Unit)? = null,
private val button2Text: String? = null,
@StringRes private val button2TextRes: Int? = null,
private val onButton2Click: (() -> Unit)? = null,
private val overrideItalicStyle: Boolean = false,
) : CustomDialogInterface<DialogWarningBinding>(
makeBackgroundTransparent = true,
preserveLateralMargin = true
) {

override fun render(inflater: LayoutInflater): DialogWarningBinding {
return DialogWarningBinding.inflate(inflater).also { binding ->
message?.let { binding.labelTextMessageDialog.text = it }
messageRes?.let { binding.labelTextMessageDialog.setText(it) }
binding.btnOkMessageDialog.onClick { dismiss() }
return DialogWarningBinding.inflate(inflater).also {
message?.let { str -> it.labelTextMessageDialog.text = str }
messageRes?.let { res -> it.labelTextMessageDialog.setText(res) }

if (button2Text != null || button2TextRes != null) {
it.btn2MessageDialog.isVisible = true
}
if (buttonText != null || buttonTextRes != null) {
val defaultPadding = it.btn2MessageDialog.paddingLeft
it.btnOkMessageDialog.updatePadding(left = defaultPadding, right = defaultPadding)
}

buttonText?.let { str -> it.btnOkMessageDialog.text = str }
buttonTextRes?.let { res -> it.btnOkMessageDialog.setText(res) }
button2Text?.let { str -> it.btn2MessageDialog.text = str }
button2TextRes?.let { res -> it.btn2MessageDialog.setText(res) }

it.btnOkMessageDialog.onClick {
onButtonClick?.invoke()
dismiss()
}

it.btn2MessageDialog.onClick {
onButton2Click?.invoke()
dismiss()
}

if (overrideItalicStyle) {
it.labelTextMessageDialog.setTypeface(null, Typeface.NORMAL)
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Message
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProviders
import androidx.lifecycle.lifecycleScope
import androidx.work.WorkManager
import kotlinx.coroutines.delay
Expand All @@ -31,7 +31,9 @@ import org.commonvoice.saverio_lib.preferences.FirstRunPrefManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio_lib.viewmodels.HomeViewModel
import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.viewModel

Expand All @@ -52,10 +54,17 @@ class HomeFragment : ViewBoundFragment<FragmentHomeBinding>() {
private val settingsPrefManager: SettingsPrefManager by inject()
private val workManager: WorkManager by inject()
private val dialogInflater by inject<DialogInflater>()
private val mainViewModel by viewModel<MainActivityViewModel>()
private lateinit var viewModel: GenericViewModel

override fun onStart() {
super.onStart()

viewModel = activity?.run {
ViewModelProviders.of(this).get(GenericViewModel::class.java)
} ?: throw Exception("?? Invalid Activity ??")
viewModel.setFromFragment("home")

//TODO fix this mess once MainActivity is fixed

(activity as MainActivity).resetStatusBarColor()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.background.ClipsDownloadWorker
import org.commonvoice.saverio_lib.background.SentencesDownloadWorker
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.LoginViewModel
import org.koin.android.ext.android.inject
Expand All @@ -38,6 +39,7 @@ class LoginFragment : ViewBoundFragment<FragmentLoginBinding>() {
private val workManager by inject<WorkManager>()
private val connectionManager by inject<ConnectionManager>()
private val statsPrefManager by inject<StatsPrefManager>()
private val settingsPrefManager by inject<SettingsPrefManager>()

private val loginViewModel by viewModel<LoginViewModel>()

Expand Down Expand Up @@ -173,8 +175,14 @@ class LoginFragment : ViewBoundFragment<FragmentLoginBinding>() {

loginViewModel.clearDB()

SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
SentencesDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
wifiOnly = settingsPrefManager.wifiOnlyDownload
)
ClipsDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
wifiOnly = settingsPrefManager.wifiOnlyDownload
)

statsPrefManager.dailyGoalObjective = 0
statsPrefManager.todayValidated = 0
Expand Down
Loading

0 comments on commit c22383b

Please sign in to comment.