diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a189d0b..9ced824 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,16 +2,33 @@ - + - + + + + - + + + + + + + diff --git a/app/src/main/java/com/wajahatkarim3/imagine/tv/TvMainActivity.kt b/app/src/main/java/com/wajahatkarim3/imagine/tv/TvMainActivity.kt new file mode 100644 index 0000000..90fc8e0 --- /dev/null +++ b/app/src/main/java/com/wajahatkarim3/imagine/tv/TvMainActivity.kt @@ -0,0 +1,36 @@ +package com.wajahatkarim3.imagine.tv + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import androidx.navigation.NavController +import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.ui.setupActionBarWithNavController +import com.wajahatkarim3.imagine.R +import com.wajahatkarim3.imagine.databinding.ActivityMainBinding +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class TvMainActivity : AppCompatActivity() { + + lateinit var bi: ActivityMainBinding + lateinit var navController: NavController + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + bi = ActivityMainBinding.inflate(layoutInflater) + setContentView(bi.root) + + setupViews() + } + + fun setupViews() { + // Navigation + val navHostFragment = supportFragmentManager.findFragmentById(R.id.navHostMain) as NavHostFragment + navController = navHostFragment.navController + setupActionBarWithNavController(navController) + } + + override fun onSupportNavigateUp(): Boolean { + return navController.navigateUp() || super.onSupportNavigateUp() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/wajahatkarim3/imagine/ui/home/HomeFragment.kt b/app/src/main/java/com/wajahatkarim3/imagine/ui/home/HomeFragment.kt index d701ecb..827f434 100644 --- a/app/src/main/java/com/wajahatkarim3/imagine/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/wajahatkarim3/imagine/ui/home/HomeFragment.kt @@ -15,6 +15,9 @@ */ package com.wajahatkarim3.imagine.ui.home +import android.app.UiModeManager +import android.content.Context.UI_MODE_SERVICE +import android.content.res.Configuration import android.os.Bundle import android.view.LayoutInflater import android.view.ViewGroup @@ -23,6 +26,7 @@ import androidx.core.os.bundleOf import androidx.core.widget.NestedScrollView import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.google.android.flexbox.AlignItems import com.google.android.flexbox.FlexDirection @@ -85,6 +89,11 @@ class HomeFragment : BaseFragment() { photosAdapter.stateRestorationPolicy = RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY bi.recyclerPopularPhotos.adapter = photosAdapter + val uiModeManager = requireContext().getSystemService(UI_MODE_SERVICE) as UiModeManager + if (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION) { + (bi.recyclerPopularPhotos.layoutManager as? GridLayoutManager)?.spanCount = 5 + } + // NestedScrollView bi.nestedScrollView.setOnScrollChangeListener { v: NestedScrollView, _, scrollY, _, _ -> if (scrollY == v.getChildAt(0).measuredHeight - v.measuredHeight) { diff --git a/app/src/main/res/drawable-xhdpi/banner.jpg b/app/src/main/res/drawable-xhdpi/banner.jpg new file mode 100644 index 0000000..39df059 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/banner.jpg differ diff --git a/app/src/main/res/drawable/outline_focus_drawable.xml b/app/src/main/res/drawable/outline_focus_drawable.xml new file mode 100644 index 0000000..4843a9d --- /dev/null +++ b/app/src/main/res/drawable/outline_focus_drawable.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/photo_item_layout.xml b/app/src/main/res/layout/photo_item_layout.xml index 23f0199..1a9063c 100644 --- a/app/src/main/res/layout/photo_item_layout.xml +++ b/app/src/main/res/layout/photo_item_layout.xml @@ -4,8 +4,10 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="10dp" - android:paddingEnd="10dp"> + android:focusable="true" + android:focusableInTouchMode="true" + android:background="@drawable/outline_focus_drawable" + android:padding="10dp"> true + + +