Fix a bunch of stupid fckn issues that make my life hard
This commit is contained in:
parent
e072f88d69
commit
dd3786166c
@ -25,6 +25,7 @@ android {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
signingConfig = signingConfigs.getByName("debug")
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
|
@ -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"
|
||||
@ -28,4 +31,4 @@
|
||||
</activity>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
</manifest>
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user