diff --git a/app/src/main/assets/lilpop.jpg b/app/src/main/assets/images/lilpop.jpg similarity index 100% rename from app/src/main/assets/lilpop.jpg rename to app/src/main/assets/images/lilpop.jpg diff --git a/app/src/main/assets/test.mp4 b/app/src/main/assets/videos/test.mp4 similarity index 100% rename from app/src/main/assets/test.mp4 rename to app/src/main/assets/videos/test.mp4 diff --git a/app/src/main/java/com/example/estiaseek/MainActivity.kt b/app/src/main/java/com/example/estiaseek/MainActivity.kt index 516336a..d388c93 100644 --- a/app/src/main/java/com/example/estiaseek/MainActivity.kt +++ b/app/src/main/java/com/example/estiaseek/MainActivity.kt @@ -10,10 +10,10 @@ import androidx.compose.ui.Modifier import androidx.lifecycle.ViewModelProvider import com.example.estiaseek.data.EstiaSeekDatabase import com.example.estiaseek.data.OfflineUsersRepository -import com.example.estiaseek.ui.screens.CandidateSearchScreen -import com.example.estiaseek.ui.screens.CandidateSearchViewModel -import com.example.estiaseek.ui.screens.CandidateSearchViewModelFactory -import com.example.estiaseek.ui.screens.CreateApplicantViewModel +import com.example.estiaseek.ui.navigation.NavigationHelper +import com.example.estiaseek.ui.viewmodels.CandidateSearchViewModel +import com.example.estiaseek.ui.viewmodels.CandidateSearchViewModelFactory +import com.example.estiaseek.ui.viewmodels.CreateApplicantViewModel import com.example.estiaseek.ui.theme.EstiaSeekTheme class MainActivity : ComponentActivity() { @@ -37,7 +37,7 @@ class MainActivity : ComponentActivity() { modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { - EstiaSeekScreen( + NavigationHelper( viewModel = candidateSearchViewModel, createApplicantViewModel = createApplicantViewModel ) diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/HomeScreen.kt b/app/src/main/java/com/example/estiaseek/ui/HomeScreen.kt similarity index 91% rename from app/src/main/java/com/example/estiaseek/ui/screens/HomeScreen.kt rename to app/src/main/java/com/example/estiaseek/ui/HomeScreen.kt index f084d9c..4f5636c 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/example/estiaseek/ui/HomeScreen.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* @@ -38,10 +38,11 @@ fun HomeScreen( Column( modifier = Modifier .fillMaxSize() - .padding(16.dp), + .padding(10.dp), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { + Spacer(modifier = Modifier.height(16.dp)) // Heading Text( text = "Welcome to EstiaSeek", @@ -56,7 +57,7 @@ fun HomeScreen( painter = painterResource(id = R.drawable.emp), contentDescription = "Example Image", modifier = Modifier - .size(150.dp) + .size(300.dp) .padding(bottom = 24.dp) ) @@ -69,7 +70,7 @@ fun HomeScreen( .fillMaxWidth() .padding(horizontal = 32.dp) ) { - Text(text = "Search Candidate") + Text(text = "Search for Candidates") } Spacer(modifier = Modifier.height(16.dp)) @@ -83,7 +84,7 @@ fun HomeScreen( .fillMaxWidth() .padding(horizontal = 32.dp) ) { - Text(text = "Create Applicant") + Text(text = "Create Candidates") } } } diff --git a/app/src/main/java/com/example/estiaseek/EstiaSeekScreen.kt b/app/src/main/java/com/example/estiaseek/ui/navigation/NavigationHelper.kt similarity index 59% rename from app/src/main/java/com/example/estiaseek/EstiaSeekScreen.kt rename to app/src/main/java/com/example/estiaseek/ui/navigation/NavigationHelper.kt index fba1db9..9836fe8 100644 --- a/app/src/main/java/com/example/estiaseek/EstiaSeekScreen.kt +++ b/app/src/main/java/com/example/estiaseek/ui/navigation/NavigationHelper.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek +package com.example.estiaseek.ui.navigation import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -7,18 +7,18 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController -import com.example.estiaseek.ui.profile.Profile -import com.example.estiaseek.ui.screens.CandidateSearchScreen -import com.example.estiaseek.ui.screens.CandidateSearchViewModel -import com.example.estiaseek.ui.screens.CreateApplicant -import com.example.estiaseek.ui.screens.CreateApplicantViewModel -import com.example.estiaseek.ui.screens.HomeScreen -import com.example.estiaseek.ui.screens.ResultsScreen +import com.example.estiaseek.ui.profile.ApplicantProfile +import com.example.estiaseek.ui.search.CandidateSearchScreen +import com.example.estiaseek.ui.viewmodels.CandidateSearchViewModel +import com.example.estiaseek.ui.profile.CreateApplicant +import com.example.estiaseek.ui.viewmodels.CreateApplicantViewModel +import com.example.estiaseek.ui.HomeScreen +import com.example.estiaseek.ui.search.ResultsScreen import com.example.estiaseek.ui.viewmodels.ProfileViewModel import com.example.estiaseek.ui.viewmodels.SearchViewModel -enum class EstiaSeekScreen() { +enum class NavigationHelper() { Start, CreateApplicant, ShowResults, @@ -27,7 +27,7 @@ enum class EstiaSeekScreen() { } @Composable -fun EstiaSeekScreen( +fun NavigationHelper( navController: NavHostController = rememberNavController(), searchViewModel: SearchViewModel = viewModel(), profileViewModel: ProfileViewModel = viewModel(), @@ -36,36 +36,36 @@ fun EstiaSeekScreen( ) { NavHost( navController = navController, - startDestination = EstiaSeekScreen.Start.name, + startDestination = NavigationHelper.Start.name, modifier = Modifier, ) { - composable(route = EstiaSeekScreen.Start.name) { + composable(route = NavigationHelper.Start.name) { HomeScreen( - onSearchButtonClicked = { navController.navigate(EstiaSeekScreen.Search.name) }, - onCreateApplicantButtonClicked = { navController.navigate(EstiaSeekScreen.CreateApplicant.name) } + onSearchButtonClicked = { navController.navigate(NavigationHelper.Search.name) }, + onCreateApplicantButtonClicked = { navController.navigate(NavigationHelper.CreateApplicant.name) } ) } - composable(route = EstiaSeekScreen.CreateApplicant.name) { + composable(route = NavigationHelper.CreateApplicant.name) { CreateApplicant( - onCreateApplicantButtonClicked = { navController.navigate(EstiaSeekScreen.Start.name)}, + onCreateApplicantButtonClicked = { navController.navigate(NavigationHelper.Start.name)}, viewModel = createApplicantViewModel //fixme ) } - composable(route = EstiaSeekScreen.ShowResults.name) { + composable(route = NavigationHelper.ShowResults.name) { ResultsScreen( - onProfileClicked = { navController.navigate(EstiaSeekScreen.Profile.name)}, + onProfileClicked = { navController.navigate(NavigationHelper.Profile.name)}, searchViewModel = searchViewModel, profileViewModel = profileViewModel ) } - composable(route = EstiaSeekScreen.Profile.name) { - Profile( + composable(route = NavigationHelper.Profile.name) { + ApplicantProfile( profileViewModel = profileViewModel ) } - composable(route = EstiaSeekScreen.Search.name) { + composable(route = NavigationHelper.Search.name) { CandidateSearchScreen( - onSearchButtonClicked = { navController.navigate(EstiaSeekScreen.ShowResults.name)}, + onSearchButtonClicked = { navController.navigate(NavigationHelper.ShowResults.name)}, searchViewModel = searchViewModel, viewModel = viewModel ) diff --git a/app/src/main/java/com/example/estiaseek/ui/profile/Profile.kt b/app/src/main/java/com/example/estiaseek/ui/profile/ApplicantProfile.kt similarity index 97% rename from app/src/main/java/com/example/estiaseek/ui/profile/Profile.kt rename to app/src/main/java/com/example/estiaseek/ui/profile/ApplicantProfile.kt index eade688..ef640d1 100644 --- a/app/src/main/java/com/example/estiaseek/ui/profile/Profile.kt +++ b/app/src/main/java/com/example/estiaseek/ui/profile/ApplicantProfile.kt @@ -35,7 +35,7 @@ import com.example.estiaseek.ui.viewmodels.ProfileViewModel @OptIn(UnstableApi::class) @Composable -fun Profile( +fun ApplicantProfile( profileViewModel: ProfileViewModel ) { val context = LocalContext.current @@ -44,7 +44,7 @@ fun Profile( // Remember ExoPlayer instance val exoPlayer = remember { ExoPlayer.Builder(context).build().apply { - setMediaItem(MediaItem.fromUri(Uri.parse("file:///android_asset/test.mp4"))) + setMediaItem(MediaItem.fromUri(Uri.parse("file:///android_asset/videos/test.mp4"))) prepare() playWhenReady = true volume = 0f // Mute by default @@ -89,7 +89,7 @@ fun Profile( // com.example.estiaseek.ui.profile.Profile Picture Overlay Image( - painter = rememberAsyncImagePainter("file:///android_asset/lilpop.jpg"), // Load from assets + painter = rememberAsyncImagePainter("file:///android_asset/images/lilpop.jpg"), // Load from assets contentDescription = "com.example.estiaseek.ui.profile.Profile Picture", contentScale = ContentScale.Crop, modifier = Modifier @@ -201,8 +201,8 @@ fun Profile( @Preview @Composable -fun PreviewProfile() { - Profile( +fun PreviewApplicantProfile() { + ApplicantProfile( profileViewModel = ProfileViewModel() ) } diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicant.kt b/app/src/main/java/com/example/estiaseek/ui/profile/CreateApplicant.kt similarity index 99% rename from app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicant.kt rename to app/src/main/java/com/example/estiaseek/ui/profile/CreateApplicant.kt index e766f43..d5eaa89 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicant.kt +++ b/app/src/main/java/com/example/estiaseek/ui/profile/CreateApplicant.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.profile import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -38,6 +38,7 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import com.example.estiaseek.R import com.example.estiaseek.ui.components.DropdownMenuField +import com.example.estiaseek.ui.viewmodels.CreateApplicantViewModel import kotlin.Unit diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchScreen.kt b/app/src/main/java/com/example/estiaseek/ui/search/CandidateSearchScreen.kt similarity index 98% rename from app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchScreen.kt rename to app/src/main/java/com/example/estiaseek/ui/search/CandidateSearchScreen.kt index 8d0aa84..bec6b3b 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchScreen.kt +++ b/app/src/main/java/com/example/estiaseek/ui/search/CandidateSearchScreen.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.search import androidx.compose.foundation.background import androidx.compose.foundation.layout.* @@ -10,7 +10,6 @@ import androidx.compose.material.icons.rounded.LocationOn import androidx.compose.material.icons.rounded.Person import androidx.compose.material.icons.rounded.Search import androidx.compose.material.icons.rounded.Star -import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -31,6 +30,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue +import com.example.estiaseek.ui.viewmodels.CandidateSearchViewModel @Composable diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/ResultsScreen.kt b/app/src/main/java/com/example/estiaseek/ui/search/ResultsScreen.kt similarity index 99% rename from app/src/main/java/com/example/estiaseek/ui/screens/ResultsScreen.kt rename to app/src/main/java/com/example/estiaseek/ui/search/ResultsScreen.kt index 56fc261..7a469e2 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/ResultsScreen.kt +++ b/app/src/main/java/com/example/estiaseek/ui/search/ResultsScreen.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.search import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModel.kt b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModel.kt similarity index 94% rename from app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModel.kt rename to app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModel.kt index e94d478..98d7dcd 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModel.kt +++ b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModel.kt @@ -1,6 +1,5 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.viewmodels -import android.util.Log import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.example.estiaseek.data.User diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModelFactory.kt b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModelFactory.kt similarity index 92% rename from app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModelFactory.kt rename to app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModelFactory.kt index c55e224..251f978 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CandidateSearchViewModelFactory.kt +++ b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CandidateSearchViewModelFactory.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.viewmodels import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModel.kt b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModel.kt similarity index 91% rename from app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModel.kt rename to app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModel.kt index 48cdadf..4a737e0 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModel.kt +++ b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModel.kt @@ -1,5 +1,6 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.viewmodels +import android.util.Patterns import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.example.estiaseek.data.User @@ -22,7 +23,7 @@ class CreateApplicantViewModel(private val usersRepository: UsersRepository) : V if (name.isBlank()) { errors["name"] = "name_required" } - if (email.isBlank() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) { + if (email.isBlank() || !Patterns.EMAIL_ADDRESS.matcher(email).matches()) { errors["email"] = "email_required" } if (jobTitle.isBlank()) { diff --git a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModelFactory.kt b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModelFactory.kt similarity index 93% rename from app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModelFactory.kt rename to app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModelFactory.kt index cdb8745..b4c2125 100644 --- a/app/src/main/java/com/example/estiaseek/ui/screens/CreateApplicantViewModelFactory.kt +++ b/app/src/main/java/com/example/estiaseek/ui/viewmodels/CreateApplicantViewModelFactory.kt @@ -1,4 +1,4 @@ -package com.example.estiaseek.ui.screens +package com.example.estiaseek.ui.viewmodels import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider