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 {
|
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 {
|
||||||
|
@ -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"
|
||||||
|
@ -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 {
|
||||||
|
lateinit var appContainer: AppContainer
|
||||||
|
lateinit var featureManager: FeatureManager
|
||||||
|
|
||||||
|
fun initialize(appContainer: AppContainer, featureManager: FeatureManager) {
|
||||||
|
this.appContainer = appContainer
|
||||||
|
this.featureManager = featureManager
|
||||||
|
}
|
||||||
|
|
||||||
val Factory = viewModelFactory {
|
val Factory = viewModelFactory {
|
||||||
initializer {
|
initializer { ->
|
||||||
PokeSearchViewModel(
|
PokeSearchViewModel(
|
||||||
pokesearchApplication().appContainer.favouritesRepository
|
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)
|
|
||||||
|
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.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 {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user