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 {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
signingConfig = signingConfigs.getByName("debug")
}
}
compileOptions {

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<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" />
<application
android:name=".PokeSearch"
android:allowBackup="true"
android:enableOnBackInvokedCallback="true"
android:dataExtractionRules="@xml/data_extraction_rules"
@ -15,6 +16,8 @@
android:supportsRtl="true"
android:theme="@style/Theme.MobileSecurity"
tools:targetApi="31">
<!-- Specify your main activity here -->
<activity
android:name=".MainActivity"
android:exported="true"

View File

@ -1,29 +1,33 @@
package com.ti.mobpo
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewmodel.CreationExtras
import androidx.lifecycle.viewmodel.initializer
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.PokeSearchViewModel
object AppViewModelProvider {
val Factory = viewModelFactory {
initializer {
PokeSearchViewModel(
pokesearchApplication().appContainer.favouritesRepository
)
lateinit var appContainer: AppContainer
lateinit var featureManager: FeatureManager
fun initialize(appContainer: AppContainer, featureManager: FeatureManager) {
this.appContainer = appContainer
this.featureManager = featureManager
}
val Factory = viewModelFactory {
initializer { ->
PokeSearchViewModel(
appContainer.favouritesRepository
)
}
initializer {
initializer { ->
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 androidx.activity.ComponentActivity
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.theme.MobileSecurityTheme
import com.ti.mobpo.ui.util.FeatureManager
class MainActivity : ComponentActivity() {
lateinit var appContainer: AppContainer
private set
lateinit var featureManager: FeatureManager
private set
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
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.rememberNavController
import com.ti.mobpo.AppViewModelProvider
import com.ti.mobpo.MainActivity
import com.ti.mobpo.ui.screens.FavoritesScreen
import com.ti.mobpo.ui.screens.PokeSearchScreen
import com.ti.mobpo.ui.viewmodels.FavouritesViewModel
import com.ti.mobpo.ui.viewmodels.PokeSearchViewModel
@Composable
fun Navigation() {
fun Navigation(activity: MainActivity) {
val items = listOf(
BottomNavigationItem(
title = "Home",
@ -66,6 +67,8 @@ fun Navigation() {
val pokeSearchVM = viewModel<PokeSearchViewModel>(factory = AppViewModelProvider.Factory)
val favoritesVM = viewModel<FavouritesViewModel>(factory = AppViewModelProvider.Factory)
Scaffold (
bottomBar = {
NavigationBar {