diff --git a/solutions/devsprint-mychelle-rocha-2/app/build.gradle b/solutions/devsprint-mychelle-rocha-2/app/build.gradle index d7fa166..12e196b 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/build.gradle +++ b/solutions/devsprint-mychelle-rocha-2/app/build.gradle @@ -71,6 +71,9 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' + //Glide implementation 'com.github.bumptech.glide:glide:4.13.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/model/repository/FetchLaunchDetailsRepositoryImpl.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/model/repository/FetchLaunchDetailsRepositoryImpl.kt index 9d8bb7e..261c9f3 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/model/repository/FetchLaunchDetailsRepositoryImpl.kt +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/model/repository/FetchLaunchDetailsRepositoryImpl.kt @@ -1,8 +1,16 @@ package com.devpass.spaceapp.model.repository +import com.devpass.spaceapp.data.api.Results import com.devpass.spaceapp.data.api.SpaceXAPIService +import com.devpass.spaceapp.model.LaunchDetails import com.devpass.spaceapp.repository.FetchLaunchDetailsRepository class FetchLaunchDetailsRepositoryImpl(private val api: SpaceXAPIService): FetchLaunchDetailsRepository { - override suspend fun getLaunchDetails(id: String) = api.fetchLaunchDetails(id) + override suspend fun getLaunchDetails(id: String) : Results { + return try { + Results.Success(api.fetchLaunchDetails(id)) + } catch (e: Exception) { + Results.Error(Throwable()) + } + } } \ No newline at end of file diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchActivity.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchActivity.kt index 229fddb..e01bc45 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchActivity.kt +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchActivity.kt @@ -5,23 +5,9 @@ import android.os.Bundle import com.devpass.spaceapp.databinding.ActivityTabBinding class LaunchActivity : AppCompatActivity() { - private lateinit var binding: ActivityTabBinding - override fun onCreate(savedInstanceState: Bundle?) { + override fun onCreate(savedInstanceState: Bundle?){ super.onCreate(savedInstanceState) - binding = ActivityTabBinding.inflate(layoutInflater) - setContentView(binding.root) - - val fragments = listOf(FragmentDetails(), RocketFragment(), FragmentLaunchpad()) - val fragmentsPageTitle = listOf("Details", "Rocket", "Launchpad") - val viewPagerAdapter = ViewPagerAdapter( - fragments = fragments, - fragmentManager = supportFragmentManager, - tittles = fragmentsPageTitle - ) - - binding.viewPager.adapter = viewPagerAdapter - binding.tabLayout.setupWithViewPager(binding.viewPager) } } \ No newline at end of file diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/TabLayoutAdapter.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/TabLayoutAdapter.kt new file mode 100644 index 0000000..6dec2cf --- /dev/null +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/TabLayoutAdapter.kt @@ -0,0 +1,14 @@ +package com.devpass.spaceapp.presentation + +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment +import androidx.viewpager2.adapter.FragmentStateAdapter + +class TabLayoutAdapter (private val numOfTabs: Int, val list: List, activity: +AppCompatActivity): FragmentStateAdapter(activity) { + override fun getItemCount(): Int = numOfTabs + + override fun createFragment(position: Int): Fragment { + return list[position] + } +} \ No newline at end of file diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchDetailsActivity.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/launchDetails/LaunchDetailsActivity.kt similarity index 88% rename from solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchDetailsActivity.kt rename to solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/launchDetails/LaunchDetailsActivity.kt index 3012f12..f55ad84 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/LaunchDetailsActivity.kt +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/presentation/launchDetails/LaunchDetailsActivity.kt @@ -1,4 +1,4 @@ -package com.devpass.spaceapp.presentation +package com.devpass.spaceapp.presentation.launchDetails import android.os.Bundle import android.view.LayoutInflater @@ -13,5 +13,4 @@ class LaunchDetailsActivity : AppCompatActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_launch_details) } - } \ No newline at end of file diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchDetailsRepository.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchDetailsRepository.kt index d413ea9..fa38287 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchDetailsRepository.kt +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchDetailsRepository.kt @@ -1,7 +1,8 @@ package com.devpass.spaceapp.repository +import com.devpass.spaceapp.data.api.Results import com.devpass.spaceapp.model.LaunchDetails interface FetchLaunchDetailsRepository { - suspend fun getLaunchDetails(id: String): LaunchDetails + suspend fun getLaunchDetails(id: String): Results } \ No newline at end of file diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchesRepositoryImpl.kt b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchesRepositoryImpl.kt index 3cf809e..64ecfd6 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchesRepositoryImpl.kt +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/java/com/devpass/spaceapp/repository/FetchLaunchesRepositoryImpl.kt @@ -5,7 +5,7 @@ import com.devpass.spaceapp.data.api.SpaceXAPIService import com.devpass.spaceapp.data.api.Results import com.devpass.spaceapp.repository.FetchLaunchesRepository -private const val NUMBER_ROCKETS = 20 +private const val NUMBER_ROCKETS = 91 class FetchLaunchesRepositoryImpl(private val api: SpaceXAPIService) : FetchLaunchesRepository { override suspend fun fetchLaunches(): Results { diff --git a/solutions/devsprint-mychelle-rocha-2/app/src/main/res/layout/activity_launch_details.xml b/solutions/devsprint-mychelle-rocha-2/app/src/main/res/layout/activity_launch_details.xml index 96a7090..11db4ba 100644 --- a/solutions/devsprint-mychelle-rocha-2/app/src/main/res/layout/activity_launch_details.xml +++ b/solutions/devsprint-mychelle-rocha-2/app/src/main/res/layout/activity_launch_details.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".presentation.LaunchDetailsActivity"> + tools:context=".presentation.launchDetails.LaunchDetailsActivity"> + + - - - - - - - + app:layout_constraintTop_toBottomOf="@id/tabLayout"> + \ No newline at end of file