11package com.android.tvflix.home
22
3+ import android.app.Activity
4+ import android.content.Intent
35import android.os.Bundle
46import android.view.Menu
57import android.view.MenuItem
@@ -11,19 +13,42 @@ import androidx.core.view.isVisible
1113import androidx.lifecycle.lifecycleScope
1214import androidx.recyclerview.widget.GridLayoutManager
1315import com.android.tvflix.R
16+ import com.android.tvflix.config.FavoritesFeatureFlag
1417import com.android.tvflix.databinding.ActivityHomeBinding
1518import com.android.tvflix.favorite.FavoriteShowsActivity
1619import com.android.tvflix.shows.AllShowsActivity
1720import com.android.tvflix.utils.GridItemDecoration
1821import dagger.hilt.android.AndroidEntryPoint
1922import kotlinx.coroutines.flow.collect
23+ import javax.inject.Inject
2024
2125@AndroidEntryPoint
2226class HomeActivity : AppCompatActivity (), ShowsAdapter.Callback {
2327 private val homeViewModel: HomeViewModel by viewModels()
2428 private lateinit var showsAdapter: ShowsAdapter
2529 private val binding by lazy { ActivityHomeBinding .inflate(layoutInflater) }
2630
31+ @JvmField
32+ @FavoritesFeatureFlag
33+ @Inject
34+ var favoritesFeatureEnable: Boolean = false
35+
36+ companion object {
37+ private const val NO_OF_COLUMNS = 2
38+
39+ @JvmStatic
40+ fun start (
41+ context : Activity
42+ ) {
43+ val intent = Intent (context, HomeActivity ::class .java)
44+ .apply {
45+ flags = (Intent .FLAG_ACTIVITY_NEW_TASK or Intent .FLAG_ACTIVITY_CLEAR_TASK
46+ or Intent .FLAG_ACTIVITY_CLEAR_TOP )
47+ }
48+ context.startActivity(intent)
49+ }
50+ }
51+
2752 override fun onCreate (savedInstanceState : Bundle ? ) {
2853 super .onCreate(savedInstanceState)
2954 setContentView(binding.root)
@@ -74,7 +99,7 @@ class HomeActivity : AppCompatActivity(), ShowsAdapter.Callback {
7499
75100 private fun showPopularShows (homeViewData : HomeViewData ) {
76101 val gridLayoutManager = GridLayoutManager (this , NO_OF_COLUMNS )
77- showsAdapter = ShowsAdapter (this )
102+ showsAdapter = ShowsAdapter (this , favoritesFeatureEnable )
78103 showsAdapter.updateList(homeViewData.episodes.toMutableList())
79104 binding.popularShows.apply {
80105 layoutManager = gridLayoutManager
@@ -91,6 +116,7 @@ class HomeActivity : AppCompatActivity(), ShowsAdapter.Callback {
91116
92117 override fun onCreateOptionsMenu (menu : Menu ): Boolean {
93118 menuInflater.inflate(R .menu.home_menu, menu)
119+ menu.findItem(R .id.action_favorites).isVisible = favoritesFeatureEnable
94120 return super .onCreateOptionsMenu(menu)
95121 }
96122
@@ -111,8 +137,4 @@ class HomeActivity : AppCompatActivity(), ShowsAdapter.Callback {
111137 override fun onFavoriteClicked (showViewData : HomeViewData .ShowViewData ) {
112138 homeViewModel.onFavoriteClick(showViewData)
113139 }
114-
115- companion object {
116- private const val NO_OF_COLUMNS = 2
117- }
118140}
0 commit comments