Fix a bunch of stupid fckn issues that make my life hard

This commit is contained in:
Joren 2024-05-02 21:03:51 +02:00
parent e072f88d69
commit dd3786166c
Signed by untrusted user who does not match committer: Joren
GPG Key ID: 280E33DFBC0F1B55
6 changed files with 51 additions and 46 deletions

View File

@ -25,6 +25,7 @@ android {
release { release {
isMinifyEnabled = false isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig = signingConfigs.getByName("debug")
} }
} }
compileOptions { compileOptions {

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"> xmlns:tools="http://schemas.android.com/tools"
package="com.ti.mobpo">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<application <application
android:name=".PokeSearch"
android:allowBackup="true" android:allowBackup="true"
android:enableOnBackInvokedCallback="true" android:enableOnBackInvokedCallback="true"
android:dataExtractionRules="@xml/data_extraction_rules" android:dataExtractionRules="@xml/data_extraction_rules"
@ -15,6 +16,8 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.MobileSecurity" android:theme="@style/Theme.MobileSecurity"
tools:targetApi="31"> tools:targetApi="31">
<!-- Specify your main activity here -->
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:exported="true" android:exported="true"

View File

@ -1,29 +1,33 @@
package com.ti.mobpo package com.ti.mobpo
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.CreationExtras
import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.initializer
import androidx.lifecycle.viewmodel.viewModelFactory import androidx.lifecycle.viewmodel.viewModelFactory
import com.ti.mobpo.data.AppContainer
import com.ti.mobpo.ui.util.FeatureManager
import com.ti.mobpo.ui.viewmodels.FavouritesViewModel import com.ti.mobpo.ui.viewmodels.FavouritesViewModel
import com.ti.mobpo.ui.viewmodels.PokeSearchViewModel import com.ti.mobpo.ui.viewmodels.PokeSearchViewModel
object AppViewModelProvider { object AppViewModelProvider {
val Factory = viewModelFactory { lateinit var appContainer: AppContainer
initializer { lateinit var featureManager: FeatureManager
PokeSearchViewModel(
pokesearchApplication().appContainer.favouritesRepository
)
fun initialize(appContainer: AppContainer, featureManager: FeatureManager) {
this.appContainer = appContainer
this.featureManager = featureManager
}
val Factory = viewModelFactory {
initializer { ->
PokeSearchViewModel(
appContainer.favouritesRepository
)
} }
initializer { initializer { ->
FavouritesViewModel( FavouritesViewModel(
pokesearchApplication().appContainer.favouritesRepository, pokesearchApplication().featureManager appContainer.favouritesRepository,
featureManager
) )
} }
} }
} }
fun CreationExtras.pokesearchApplication(): PokeSearch =
(this[ViewModelProvider.AndroidViewModelFactory.APPLICATION_KEY] as PokeSearch)

View File

@ -4,17 +4,39 @@ import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import com.ti.mobpo.data.AppContainer
import com.ti.mobpo.data.AppDataContainer
import com.ti.mobpo.ui.Navigation import com.ti.mobpo.ui.Navigation
import com.ti.mobpo.ui.theme.MobileSecurityTheme import com.ti.mobpo.ui.theme.MobileSecurityTheme
import com.ti.mobpo.ui.util.FeatureManager
class MainActivity : ComponentActivity() { class MainActivity : ComponentActivity() {
lateinit var appContainer: AppContainer
private set
lateinit var featureManager: FeatureManager
private set
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter") @SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContent { setContent {
MobileSecurityTheme { MobileSecurityTheme {
Navigation() Navigation(this@MainActivity)
} }
} }
appContainer = createAppContainer()
featureManager = createFeatrureManager()
AppViewModelProvider.initialize(appContainer, featureManager)
}
private fun createAppContainer(): AppContainer {
return AppDataContainer(this)
}
private fun createFeatrureManager(): FeatureManager {
return FeatureManager(this)
} }
} }

View File

@ -1,28 +0,0 @@
package com.ti.mobpo
import android.app.Application
import com.ti.mobpo.data.AppContainer
import com.ti.mobpo.data.AppDataContainer
import com.ti.mobpo.ui.util.FeatureManager
class PokeSearch : Application() {
lateinit var appContainer: AppContainer
private set
lateinit var featureManager: FeatureManager
private set
override fun onCreate() {
super.onCreate()
appContainer = createAppContainer()
featureManager = createFeatrureManager()
}
private fun createAppContainer(): AppContainer {
return AppDataContainer(this)
}
private fun createFeatrureManager(): FeatureManager {
return FeatureManager(this)
}
}

View File

@ -31,13 +31,14 @@ import androidx.navigation.compose.composable
import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.currentBackStackEntryAsState
import androidx.navigation.compose.rememberNavController import androidx.navigation.compose.rememberNavController
import com.ti.mobpo.AppViewModelProvider import com.ti.mobpo.AppViewModelProvider
import com.ti.mobpo.MainActivity
import com.ti.mobpo.ui.screens.FavoritesScreen import com.ti.mobpo.ui.screens.FavoritesScreen
import com.ti.mobpo.ui.screens.PokeSearchScreen import com.ti.mobpo.ui.screens.PokeSearchScreen
import com.ti.mobpo.ui.viewmodels.FavouritesViewModel import com.ti.mobpo.ui.viewmodels.FavouritesViewModel
import com.ti.mobpo.ui.viewmodels.PokeSearchViewModel import com.ti.mobpo.ui.viewmodels.PokeSearchViewModel
@Composable @Composable
fun Navigation() { fun Navigation(activity: MainActivity) {
val items = listOf( val items = listOf(
BottomNavigationItem( BottomNavigationItem(
title = "Home", title = "Home",
@ -66,6 +67,8 @@ fun Navigation() {
val pokeSearchVM = viewModel<PokeSearchViewModel>(factory = AppViewModelProvider.Factory) val pokeSearchVM = viewModel<PokeSearchViewModel>(factory = AppViewModelProvider.Factory)
val favoritesVM = viewModel<FavouritesViewModel>(factory = AppViewModelProvider.Factory) val favoritesVM = viewModel<FavouritesViewModel>(factory = AppViewModelProvider.Factory)
Scaffold ( Scaffold (
bottomBar = { bottomBar = {
NavigationBar { NavigationBar {