From a9c6a9a815fb95eb49fc9095270a7bb0c805ab73 Mon Sep 17 00:00:00 2001 From: FunkyMuse Date: Tue, 3 May 2022 11:45:56 +0200 Subject: [PATCH] Closes https://github.com/FunkyMuse/Vigilante/issues/432 --- app/build.gradle | 6 ++--- .../com/crazylegend/vigilante/MainActivity.kt | 8 ++---- .../contracts/service/ServiceLifecycle.kt | 2 +- .../vigilante/crashes/CrashFragment.kt | 3 +++ .../appScope/CoroutinesScopesModule.kt | 3 ++- .../di/providers/BroadcastProvider.kt | 27 ++++++++++++------- .../providers/prefs/logging/LoggingPrefs.kt | 14 +++++----- .../vigilante/location/LocationProcessor.kt | 4 +-- .../notifications/NotificationsProvider.kt | 12 +++++---- .../details/NotificationDetailsViewModel.kt | 6 ++--- .../ui/NotificationsViewModel.kt | 4 +-- .../permissions/PermissionsProcessor.kt | 7 +++-- .../vigilante/screen/ScreenReceiver.kt | 7 +++-- .../crazylegend/vigilante/utils/Extensions.kt | 24 ++++++++++------- .../res/layout/dialog_one_time_password.xml | 2 +- .../res/layout/tablayout_customization.xml | 2 +- app/src/main/res/values/colors.xml | 2 ++ app/src/main/res/values/themes.xml | 8 +++--- app/src/main/res/xml/settings.xml | 4 --- build.gradle | 4 +-- .../metadata/android/en-US/changelogs/18.txt | 2 ++ gradle.properties | 1 - 22 files changed, 85 insertions(+), 67 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/18.txt diff --git a/app/build.gradle b/app/build.gradle index bb403e57..247aac55 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,8 +14,8 @@ android { applicationId "com.crazylegend.vigilante" minSdkVersion 24 targetSdkVersion 32 - versionCode 17 - versionName "1.2.4" + versionCode 18 + versionName "1.2.5" vectorDrawables.useSupportLibrary = true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -74,7 +74,7 @@ dependencies { //core implementation 'androidx.preference:preference-ktx:1.2.0' implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.fragment:fragment-ktx:1.4.1' + implementation 'androidx.fragment:fragment-ktx:1.5.0-beta01' implementation 'androidx.appcompat:appcompat:1.4.1' implementation "androidx.startup:startup-runtime:1.1.1" diff --git a/app/src/main/java/com/crazylegend/vigilante/MainActivity.kt b/app/src/main/java/com/crazylegend/vigilante/MainActivity.kt index 9c705220..9246cff6 100644 --- a/app/src/main/java/com/crazylegend/vigilante/MainActivity.kt +++ b/app/src/main/java/com/crazylegend/vigilante/MainActivity.kt @@ -6,7 +6,6 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible import androidx.navigation.NavController -import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import com.crazylegend.kotlinextensions.misc.requestBatteryOptimizations import com.crazylegend.kotlinextensions.power.isIgnoringBatteryOptimization @@ -20,10 +19,7 @@ import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint class MainActivity : AppCompatActivity() { - override fun attachBaseContext(newBase: Context?) { - super.attachBaseContext(newBase) - applyOverrideConfiguration(Configuration()) - } + override fun attachBaseContext(newBase: Context?) { super.attachBaseContext(newBase?.let { LocaleHelper.onAttach(it) })} override fun applyOverrideConfiguration(overrideConfiguration: Configuration?) { super.applyOverrideConfiguration(overrideConfiguration?.let { @@ -35,7 +31,7 @@ class MainActivity : AppCompatActivity() { private val navController: NavController get() = - binding.navHostContainer.getFragment().navController + binding.navHostContainer.getFragment().navController override fun onSupportNavigateUp() = navController.navigateUp() diff --git a/app/src/main/java/com/crazylegend/vigilante/contracts/service/ServiceLifecycle.kt b/app/src/main/java/com/crazylegend/vigilante/contracts/service/ServiceLifecycle.kt index 95246f01..6327f8b0 100644 --- a/app/src/main/java/com/crazylegend/vigilante/contracts/service/ServiceLifecycle.kt +++ b/app/src/main/java/com/crazylegend/vigilante/contracts/service/ServiceLifecycle.kt @@ -16,7 +16,7 @@ import kotlin.coroutines.CoroutineContext interface ServiceLifecycle : LifecycleOwner, LifecycleEventObserver { val coroutineContext: CoroutineContext - get() = Dispatchers.Main + get() = Dispatchers.Main.immediate val scope: CoroutineScope get() = CoroutineScope(coroutineContext + SupervisorJob()) diff --git a/app/src/main/java/com/crazylegend/vigilante/crashes/CrashFragment.kt b/app/src/main/java/com/crazylegend/vigilante/crashes/CrashFragment.kt index 24584fe4..7b1fed63 100644 --- a/app/src/main/java/com/crazylegend/vigilante/crashes/CrashFragment.kt +++ b/app/src/main/java/com/crazylegend/vigilante/crashes/CrashFragment.kt @@ -44,6 +44,9 @@ class CrashFragment : AbstractFragment(R.layout.layout_re uiAction { shareCrash(item) } } } + crashesAdapter.onLongClickListener = {position, _, _ -> + onUnableToCopyCrash(position) + } } private fun onUnableToCopyCrash(position: Int) { diff --git a/app/src/main/java/com/crazylegend/vigilante/di/modules/coroutines/appScope/CoroutinesScopesModule.kt b/app/src/main/java/com/crazylegend/vigilante/di/modules/coroutines/appScope/CoroutinesScopesModule.kt index 3fcbbad6..a063a82f 100644 --- a/app/src/main/java/com/crazylegend/vigilante/di/modules/coroutines/appScope/CoroutinesScopesModule.kt +++ b/app/src/main/java/com/crazylegend/vigilante/di/modules/coroutines/appScope/CoroutinesScopesModule.kt @@ -1,6 +1,7 @@ package com.crazylegend.vigilante.di.modules.coroutines.appScope import com.crazylegend.vigilante.di.modules.coroutines.dispatchers.DefaultDispatcher +import com.crazylegend.vigilante.di.modules.coroutines.dispatchers.MainImmediateDispatcher import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -21,7 +22,7 @@ object CoroutinesScopesModule { @Singleton @Provides @ApplicationScope - fun providesCoroutineScope(@DefaultDispatcher defaultDispatcher: CoroutineDispatcher): CoroutineScope = + fun providesCoroutineScope(@MainImmediateDispatcher defaultDispatcher: CoroutineDispatcher): CoroutineScope = CoroutineScope(SupervisorJob() + defaultDispatcher) } diff --git a/app/src/main/java/com/crazylegend/vigilante/di/providers/BroadcastProvider.kt b/app/src/main/java/com/crazylegend/vigilante/di/providers/BroadcastProvider.kt index 45d98c6d..a2b4e215 100644 --- a/app/src/main/java/com/crazylegend/vigilante/di/providers/BroadcastProvider.kt +++ b/app/src/main/java/com/crazylegend/vigilante/di/providers/BroadcastProvider.kt @@ -6,6 +6,8 @@ import android.content.Intent import android.content.IntentFilter import androidx.lifecycle.ServiceLifecycleDispatcher import com.crazylegend.common.ifTrue +import com.crazylegend.context.registerReceiverSafe +import com.crazylegend.context.unRegisterReceiverSafe import com.crazylegend.vigilante.contracts.service.ServiceLifecycle import com.crazylegend.vigilante.di.providers.prefs.logging.LoggingPrefs import com.crazylegend.vigilante.headset.HeadsetReceiver @@ -20,11 +22,12 @@ import javax.inject.Inject @ServiceScoped class BroadcastProvider @Inject constructor( - private val screenReceiver: ScreenReceiver, - private val headsetPlugReceiver: HeadsetReceiver, - private val powerReceiver: PowerReceiver, - private val service: Service, - private val loggingPrefs: LoggingPrefs) : ServiceLifecycle { + private val screenReceiver: ScreenReceiver, + private val headsetPlugReceiver: HeadsetReceiver, + private val powerReceiver: PowerReceiver, + private val service: Service, + private val loggingPrefs: LoggingPrefs +) : ServiceLifecycle { override val serviceLifecycleDispatcher = ServiceLifecycleDispatcher(this) @@ -37,9 +40,9 @@ class BroadcastProvider @Inject constructor( } override fun disposeResources() { - loggingPrefs.isHeadsetLoggingEnabled.ifTrue { service.unregisterReceiver(headsetPlugReceiver) } - loggingPrefs.isLockScreenLoggingEnabled.ifTrue { service.unregisterReceiver(screenReceiver) } - loggingPrefs.isPowerLoggingEnabled.ifTrue { service.unregisterReceiver(powerReceiver) } + service.unRegisterReceiverSafe(headsetPlugReceiver) + service.unRegisterReceiverSafe(screenReceiver) + service.unRegisterReceiverSafe(powerReceiver) } private fun registerPowerReceiver() { @@ -58,9 +61,13 @@ class BroadcastProvider @Inject constructor( } } - private inline fun registerReceiver(initialAction: String, broadcastReceiver: BroadcastReceiver, filterConfig: IntentFilter.() -> Unit = {}) { + private inline fun registerReceiver( + initialAction: String, + broadcastReceiver: BroadcastReceiver, + filterConfig: IntentFilter.() -> Unit = {} + ) { val filter = IntentFilter(initialAction) filter.filterConfig() - service.registerReceiver(broadcastReceiver, filter) + service.registerReceiverSafe(broadcastReceiver, filter) } } \ No newline at end of file diff --git a/app/src/main/java/com/crazylegend/vigilante/di/providers/prefs/logging/LoggingPrefs.kt b/app/src/main/java/com/crazylegend/vigilante/di/providers/prefs/logging/LoggingPrefs.kt index 948057b6..fe47ef3c 100644 --- a/app/src/main/java/com/crazylegend/vigilante/di/providers/prefs/logging/LoggingPrefs.kt +++ b/app/src/main/java/com/crazylegend/vigilante/di/providers/prefs/logging/LoggingPrefs.kt @@ -14,33 +14,33 @@ import javax.inject.Singleton class LoggingPrefs @Inject constructor(@EncryptedPrefs private val defaultPrefs: SharedPreferences) : LoggingPreferences { override val isPermissionLoggingEnabled: Boolean - get() = getBooleanState(LOG_PERMISSIONS_KEY) + get() = getBooleanState(LOG_PERMISSIONS_KEY, true) override fun setPermissionLoggingState(isEnabled: Boolean) = putBooleanState(LOG_NOTIFICATIONS_KEY, isEnabled) override val isPowerLoggingEnabled: Boolean - get() = getBooleanState(LOG_POWER_KEY) + get() = getBooleanState(LOG_POWER_KEY, true) override fun setPowerLoggingState(isEnabled: Boolean) = putBooleanState(LOG_POWER_KEY, isEnabled) override val isHeadsetLoggingEnabled: Boolean - get() = getBooleanState(LOG_HEADSET_KEY) + get() = getBooleanState(LOG_HEADSET_KEY, true) override fun setHeadsetLoggingState(isEnabled: Boolean) = putBooleanState(LOG_HEADSET_KEY, isEnabled) override val isNotificationsLoggingEnabled: Boolean - get() = getBooleanState(LOG_NOTIFICATIONS_KEY) + get() = getBooleanState(LOG_NOTIFICATIONS_KEY, true) override val isEmptyNotificationsLoggingEnabled: Boolean - get() = getBooleanState(LOG_EMPTY_PERMISSIONS_KEY) + get() = getBooleanState(LOG_EMPTY_PERMISSIONS_KEY, true) override fun setNotificationsLoggingState(isEnabled: Boolean) = putBooleanState(LOG_NOTIFICATIONS_KEY, isEnabled) override val isLockScreenLoggingEnabled: Boolean - get() = getBooleanState(LOG_LOCKSCREEN_KEY) + get() = getBooleanState(LOG_LOCKSCREEN_KEY, true) override fun setLockScreenLoggingState(isEnabled: Boolean) = putBooleanState(LOG_LOCKSCREEN_KEY, isEnabled) private fun putBooleanState(key: String, state: Boolean) = defaultPrefs.putBoolean(key, state) - private fun getBooleanState(key: String) = defaultPrefs.getBoolean(key, false) + private fun getBooleanState(key: String, default: Boolean = false) = defaultPrefs.getBoolean(key, default) } \ No newline at end of file diff --git a/app/src/main/java/com/crazylegend/vigilante/location/LocationProcessor.kt b/app/src/main/java/com/crazylegend/vigilante/location/LocationProcessor.kt index d0f9eac3..3dc4c2b8 100644 --- a/app/src/main/java/com/crazylegend/vigilante/location/LocationProcessor.kt +++ b/app/src/main/java/com/crazylegend/vigilante/location/LocationProcessor.kt @@ -45,8 +45,8 @@ class LocationProcessor @Inject constructor( locationStatusReceiver = initLocationStatusReceiver() scope.launch { - locationStatus.collectLatest { - if (it) { + locationStatus.collectLatest { isGPSEnabled -> + if (isGPSEnabled) { setLocationIsUsed() VigilanteService.serviceLayoutListener?.showLocation() } else { diff --git a/app/src/main/java/com/crazylegend/vigilante/notifications/NotificationsProvider.kt b/app/src/main/java/com/crazylegend/vigilante/notifications/NotificationsProvider.kt index e1d75a3d..959c06d3 100644 --- a/app/src/main/java/com/crazylegend/vigilante/notifications/NotificationsProvider.kt +++ b/app/src/main/java/com/crazylegend/vigilante/notifications/NotificationsProvider.kt @@ -7,17 +7,18 @@ import android.view.accessibility.AccessibilityEvent import androidx.lifecycle.ServiceLifecycleDispatcher import com.crazylegend.common.currentTimeMillis import com.crazylegend.common.tryOrElse -import com.crazylegend.coroutines.ioDispatcher import com.crazylegend.vigilante.BuildConfig import com.crazylegend.vigilante.contracts.service.ServiceLifecycle +import com.crazylegend.vigilante.di.modules.coroutines.dispatchers.IoDispatcher import com.crazylegend.vigilante.di.providers.prefs.defaultPrefs.DefaultPreferencessProvider import com.crazylegend.vigilante.di.providers.prefs.logging.LoggingPrefs +import com.crazylegend.vigilante.notifications.db.NotificationsDAO import com.crazylegend.vigilante.notifications.db.NotificationsModel -import com.crazylegend.vigilante.notifications.db.NotificationsRepo import dagger.hilt.android.scopes.ServiceScoped -import kotlinx.coroutines.launch -import java.util.* +import java.util.Date import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.launch /** * Created by crazy on 10/20/20 to long live and prosper ! @@ -26,7 +27,8 @@ import javax.inject.Inject class NotificationsProvider @Inject constructor( private val prefsProvider: DefaultPreferencessProvider, private val loggingPrefs: LoggingPrefs, - private val notificationsRepo: NotificationsRepo + private val notificationsRepo: NotificationsDAO, + @IoDispatcher private val ioDispatcher: CoroutineDispatcher ) : ServiceLifecycle { fun processEvent(event: AccessibilityEvent) { diff --git a/app/src/main/java/com/crazylegend/vigilante/notifications/details/NotificationDetailsViewModel.kt b/app/src/main/java/com/crazylegend/vigilante/notifications/details/NotificationDetailsViewModel.kt index 60a0750d..bafb8c93 100644 --- a/app/src/main/java/com/crazylegend/vigilante/notifications/details/NotificationDetailsViewModel.kt +++ b/app/src/main/java/com/crazylegend/vigilante/notifications/details/NotificationDetailsViewModel.kt @@ -3,7 +3,7 @@ package com.crazylegend.vigilante.notifications.details import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.crazylegend.database.coroutines.dbCallStateFlow -import com.crazylegend.vigilante.notifications.db.NotificationsRepo +import com.crazylegend.vigilante.notifications.db.NotificationsDAO import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject @@ -12,8 +12,8 @@ import dagger.assisted.AssistedInject * Created by crazy on 11/7/20 to long live and prosper ! */ class NotificationDetailsViewModel @AssistedInject constructor( - private val notificationsRepo: NotificationsRepo, - @Assisted private val notificationID: Int) : ViewModel() { + private val notificationsRepo: NotificationsDAO, + @Assisted private val notificationID: Int) : ViewModel() { @AssistedFactory interface NotificationDetailsVMFactory { diff --git a/app/src/main/java/com/crazylegend/vigilante/notifications/ui/NotificationsViewModel.kt b/app/src/main/java/com/crazylegend/vigilante/notifications/ui/NotificationsViewModel.kt index 084ef22e..b48a7438 100644 --- a/app/src/main/java/com/crazylegend/vigilante/notifications/ui/NotificationsViewModel.kt +++ b/app/src/main/java/com/crazylegend/vigilante/notifications/ui/NotificationsViewModel.kt @@ -2,7 +2,7 @@ package com.crazylegend.vigilante.notifications.ui import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.crazylegend.vigilante.notifications.db.NotificationsRepo +import com.crazylegend.vigilante.notifications.db.NotificationsDAO import com.crazylegend.vigilante.paging.PagingProvider import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject @@ -12,7 +12,7 @@ import javax.inject.Inject */ @HiltViewModel class NotificationsViewModel @Inject constructor( - private val repo: NotificationsRepo, + private val repo: NotificationsDAO, pagingProvider: PagingProvider ) : ViewModel() { diff --git a/app/src/main/java/com/crazylegend/vigilante/permissions/PermissionsProcessor.kt b/app/src/main/java/com/crazylegend/vigilante/permissions/PermissionsProcessor.kt index 42bae860..669fcd0f 100644 --- a/app/src/main/java/com/crazylegend/vigilante/permissions/PermissionsProcessor.kt +++ b/app/src/main/java/com/crazylegend/vigilante/permissions/PermissionsProcessor.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.ServiceLifecycleDispatcher import com.crazylegend.coroutines.makeIOCall import com.crazylegend.string.isNotNullOrEmpty import com.crazylegend.vigilante.contracts.service.ServiceLifecycle +import com.crazylegend.vigilante.di.modules.coroutines.dispatchers.IoDispatcher import com.crazylegend.vigilante.permissions.db.PermissionRequestModel import com.crazylegend.vigilante.permissions.db.PermissionRequestsDAO import dagger.hilt.android.scopes.ServiceScoped @@ -14,6 +15,7 @@ import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch import java.util.concurrent.atomic.AtomicReference import javax.inject.Inject +import kotlinx.coroutines.CoroutineDispatcher /** * Created by crazy on 10/21/20 to long live and prosper ! @@ -21,7 +23,8 @@ import javax.inject.Inject @ServiceScoped @SuppressLint("DefaultLocale") class PermissionsProcessor @Inject constructor( - private val permissionRequestsRepository: PermissionRequestsDAO + private val permissionRequestsRepository: PermissionRequestsDAO, + @IoDispatcher private val ioDispatcher: CoroutineDispatcher ) : ServiceLifecycle { override val serviceLifecycleDispatcher: ServiceLifecycleDispatcher = ServiceLifecycleDispatcher(this) @@ -44,7 +47,7 @@ class PermissionsProcessor @Inject constructor( val settingsTitle = settingsPermissionTitle.getAndSet(null) val permissionRequestModel = PermissionRequestModel(newPermissionMessage, currentPackageRef, settingsAppName = settingsTitle) settingsPermissionTitle.set(null) - scope.makeIOCall { + scope.launch(ioDispatcher) { permissionRequestsRepository.insertPermissionRequest(permissionRequestModel) } } diff --git a/app/src/main/java/com/crazylegend/vigilante/screen/ScreenReceiver.kt b/app/src/main/java/com/crazylegend/vigilante/screen/ScreenReceiver.kt index 85120204..714adb47 100644 --- a/app/src/main/java/com/crazylegend/vigilante/screen/ScreenReceiver.kt +++ b/app/src/main/java/com/crazylegend/vigilante/screen/ScreenReceiver.kt @@ -7,8 +7,11 @@ import com.crazylegend.vigilante.di.modules.coroutines.appScope.ApplicationScope import com.crazylegend.vigilante.screen.db.ScreenModel import com.crazylegend.vigilante.screen.db.ScreenRepository import dagger.hilt.android.scopes.ServiceScoped -import kotlinx.coroutines.* import javax.inject.Inject +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.NonCancellable +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * Created by crazy on 10/30/20 to long live and prosper ! @@ -28,7 +31,7 @@ class ScreenReceiver @Inject constructor( else -> null } screenModel?.apply { - appScope.launch() { + appScope.launch { withContext(NonCancellable) { screenRepository.insertScreenAction(this@apply) } diff --git a/app/src/main/java/com/crazylegend/vigilante/utils/Extensions.kt b/app/src/main/java/com/crazylegend/vigilante/utils/Extensions.kt index 479771b7..1483cc54 100644 --- a/app/src/main/java/com/crazylegend/vigilante/utils/Extensions.kt +++ b/app/src/main/java/com/crazylegend/vigilante/utils/Extensions.kt @@ -19,10 +19,12 @@ import com.crazylegend.intent.newIntent import com.crazylegend.lifecycle.viewCoroutineScope import com.crazylegend.receivers.isServiceRunning import com.crazylegend.receivers.startForegroundService +import com.crazylegend.security.encryptedSharedPreferences import com.crazylegend.view.dimen import com.crazylegend.vigilante.R import com.crazylegend.vigilante.database.migrations.CameraAndMicRemovalMigration import com.crazylegend.vigilante.service.VigilanteService +import com.crazylegend.vigilante.settings.THEME_PREF_KEY import net.sqlcipher.database.SQLiteDatabase import net.sqlcipher.database.SupportFactory @@ -37,10 +39,10 @@ const val MY_OTHER_APPS_URL = "https://funkymuse.dev/apps/" const val NEW_ISSUE_URL = "${GITHUB_URL}issues/new" const val DEFAULT_ANIM_TIME = 1000L val dismissPackages = setOf( - "com.google.android.permissioncontroller", - "com.android.systemui", - "com.google.android.packageinstaller", - "com.android.packageinstaller", + "com.google.android.permissioncontroller", + "com.android.systemui", + "com.google.android.packageinstaller", + "com.android.packageinstaller", ) fun Context.startVigilante() { @@ -58,18 +60,18 @@ inline fun Context.instantiateDatabase(cameraDbName: val passphrase = SQLiteDatabase.getBytes(packageName.toCharArray()) val factory = SupportFactory(passphrase) return Room.databaseBuilder(this, T::class.java, cameraDbName) - .addMigrations(CameraAndMicRemovalMigration()) - .openHelperFactory(factory) - .build() + .addMigrations(CameraAndMicRemovalMigration()) + .openHelperFactory(factory) + .build() } @Suppress("UNCHECKED_CAST") inline fun Fragment.assistedViewModel( - crossinline viewModelProducer: (SavedStateHandle) -> T + crossinline viewModelProducer: (SavedStateHandle) -> T ) = viewModels { object : AbstractSavedStateViewModelFactory(this, arguments) { override fun create(key: String, modelClass: Class, handle: SavedStateHandle) = - viewModelProducer(handle) as T + viewModelProducer(handle) as T } } @@ -86,4 +88,6 @@ fun PreferenceFragmentCompat.addSpacingForPreferenceBackButton() { clipToPadding = false updatePadding(bottom = dimen(R.dimen.padding_bottom_scroll).toInt()) } -} \ No newline at end of file +} + +fun Context.darkMode() = encryptedSharedPreferences().getBoolean(THEME_PREF_KEY, false) \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_one_time_password.xml b/app/src/main/res/layout/dialog_one_time_password.xml index 63cc74fd..865adba2 100644 --- a/app/src/main/res/layout/dialog_one_time_password.xml +++ b/app/src/main/res/layout/dialog_one_time_password.xml @@ -109,7 +109,7 @@ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 9fcd0f14..b1b2e217 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -16,4 +16,6 @@ #DCDCDC @color/dark_scrim @color/light_scrim + #000000 + #FFFFFF \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index ef13a329..e75af0e3 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,17 +1,17 @@ diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 9f642f1e..23cfe411 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -26,7 +26,6 @@ app:key="pref_my_other_apps" app:title="@string/my_other_apps" /> - - - - \ No newline at end of file diff --git a/build.gradle b/build.gradle index 0bc9551d..3a0cc543 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ buildscript { ext { - utilsVersion = "3.3.1" - lifecycle = '2.4.1' + utilsVersion = "3.4.0" + lifecycle = '2.5.0-beta01' coroutines = "1.6.1-native-mt" hiltJetpackVersion = '1.0.0' crashyVersion = '1.2.0' diff --git a/fastlane/metadata/android/en-US/changelogs/18.txt b/fastlane/metadata/android/en-US/changelogs/18.txt new file mode 100644 index 00000000..fb1de004 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/18.txt @@ -0,0 +1,2 @@ +### Fix +- Logs not displayed bug diff --git a/gradle.properties b/gradle.properties index e7b1fc2a..105dd248 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,6 @@ android.useAndroidX=true android.enableJetifier=true org.gradle.parallel=true org.gradle.caching=true -kapt.use.worker.api=true org.gradle.unsafe.watch-fs=true org.gradle.configureondemand=true room.incremental=true