From da5233593f9d7f6fde5c33c5d53b0357dbf740e8 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Sat, 12 Jun 2021 20:58:44 +0200 Subject: [PATCH] Add main starting layout --- app/src/main/AndroidManifest.xml | 6 +++- .../java/dev/jdtech/jellyfin/MainActivity.kt | 28 +++++++++++++++ .../jdtech/jellyfin/fragments/HomeFragment.kt | 18 ++++++++++ .../jellyfin/fragments/MediaFragment.kt | 18 ++++++++++ .../fragments/ServerSelectFragment.kt | 1 + .../jellyfin/fragments/SettingsFragment.kt | 18 ++++++++++ .../main/res/drawable/ic_collections_24dp.xml | 10 ++++++ app/src/main/res/drawable/ic_home_24dp.xml | 10 ++++++ .../main/res/drawable/ic_settings_24dp.xml | 10 ++++++ app/src/main/res/layout/activity_main.xml | 35 +++++++++++++++++++ app/src/main/res/layout/activity_setup.xml | 2 +- app/src/main/res/layout/fragment_home.xml | 23 ++++++++++++ app/src/main/res/layout/fragment_media.xml | 23 ++++++++++++ app/src/main/res/layout/fragment_settings.xml | 23 ++++++++++++ app/src/main/res/menu/bottom_nav_menu.xml | 19 ++++++++++ .../main/res/navigation/main_navigation.xml | 25 +++++++++++++ .../{navigation.xml => setup_navigation.xml} | 7 ++++ app/src/main/res/values/strings.xml | 4 +++ 18 files changed, 278 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt create mode 100644 app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt create mode 100644 app/src/main/java/dev/jdtech/jellyfin/fragments/MediaFragment.kt create mode 100644 app/src/main/java/dev/jdtech/jellyfin/fragments/SettingsFragment.kt create mode 100644 app/src/main/res/drawable/ic_collections_24dp.xml create mode 100644 app/src/main/res/drawable/ic_home_24dp.xml create mode 100644 app/src/main/res/drawable/ic_settings_24dp.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/fragment_home.xml create mode 100644 app/src/main/res/layout/fragment_media.xml create mode 100644 app/src/main/res/layout/fragment_settings.xml create mode 100644 app/src/main/res/menu/bottom_nav_menu.xml create mode 100644 app/src/main/res/navigation/main_navigation.xml rename app/src/main/res/navigation/{navigation.xml => setup_navigation.xml} (86%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8a509b54..242deab7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,9 +9,13 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Jellyfin"> + + android:windowSoftInputMode="adjustPan" + android:noHistory="true"> diff --git a/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt new file mode 100644 index 00000000..2021efb0 --- /dev/null +++ b/app/src/main/java/dev/jdtech/jellyfin/MainActivity.kt @@ -0,0 +1,28 @@ +package dev.jdtech.jellyfin + +import android.os.Bundle +import com.google.android.material.bottomnavigation.BottomNavigationView +import androidx.appcompat.app.AppCompatActivity +import androidx.navigation.findNavController +import androidx.navigation.fragment.NavHostFragment +import androidx.navigation.ui.setupWithNavController +import dev.jdtech.jellyfin.databinding.ActivityMainBinding + +class MainActivity : AppCompatActivity() { + + private lateinit var binding: ActivityMainBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + val navView: BottomNavigationView = binding.navView + + val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment_activity_main) as NavHostFragment + + val navController = navHostFragment.navController + navView.setupWithNavController(navController) + } +} \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt new file mode 100644 index 00000000..2cf42784 --- /dev/null +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/HomeFragment.kt @@ -0,0 +1,18 @@ +package dev.jdtech.jellyfin.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import dev.jdtech.jellyfin.R + +class HomeFragment : Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_home, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaFragment.kt new file mode 100644 index 00000000..bb1fba0e --- /dev/null +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/MediaFragment.kt @@ -0,0 +1,18 @@ +package dev.jdtech.jellyfin.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import dev.jdtech.jellyfin.R + +class MediaFragment : Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_media, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/ServerSelectFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/ServerSelectFragment.kt index 098a4a1a..585df83c 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/fragments/ServerSelectFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/ServerSelectFragment.kt @@ -35,6 +35,7 @@ class ServerSelectFragment : Fragment() { binding.viewModel = viewModel binding.serversRecyclerView.adapter = ServerGridAdapter(ServerGridAdapter.OnClickListener { server -> Toast.makeText(application, "You selected server $server", Toast.LENGTH_SHORT).show() + findNavController().navigate(R.id.action_serverSelectFragment_to_mainActivity) }, ServerGridAdapter.OnLongClickListener { server -> DeleteServerDialogFragment(viewModel, server).show(parentFragmentManager, "deleteServer") true diff --git a/app/src/main/java/dev/jdtech/jellyfin/fragments/SettingsFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/fragments/SettingsFragment.kt new file mode 100644 index 00000000..b0443944 --- /dev/null +++ b/app/src/main/java/dev/jdtech/jellyfin/fragments/SettingsFragment.kt @@ -0,0 +1,18 @@ +package dev.jdtech.jellyfin.fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import dev.jdtech.jellyfin.R + +class SettingsFragment : Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_settings, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_collections_24dp.xml b/app/src/main/res/drawable/ic_collections_24dp.xml new file mode 100644 index 00000000..6690de09 --- /dev/null +++ b/app/src/main/res/drawable/ic_collections_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_home_24dp.xml b/app/src/main/res/drawable/ic_home_24dp.xml new file mode 100644 index 00000000..2a8afa83 --- /dev/null +++ b/app/src/main/res/drawable/ic_home_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_settings_24dp.xml b/app/src/main/res/drawable/ic_settings_24dp.xml new file mode 100644 index 00000000..6da10fa3 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..113303ed --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/activity_setup.xml b/app/src/main/res/layout/activity_setup.xml index ec0d4652..846d3c56 100644 --- a/app/src/main/res/layout/activity_setup.xml +++ b/app/src/main/res/layout/activity_setup.xml @@ -16,6 +16,6 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" app:defaultNavHost="true" - app:navGraph="@navigation/navigation" /> + app:navGraph="@navigation/setup_navigation" /> diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 00000000..abccaa1b --- /dev/null +++ b/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_media.xml b/app/src/main/res/layout/fragment_media.xml new file mode 100644 index 00000000..3c64d3d8 --- /dev/null +++ b/app/src/main/res/layout/fragment_media.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml new file mode 100644 index 00000000..19ecab24 --- /dev/null +++ b/app/src/main/res/layout/fragment_settings.xml @@ -0,0 +1,23 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml new file mode 100644 index 00000000..0874f880 --- /dev/null +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -0,0 +1,19 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/main_navigation.xml b/app/src/main/res/navigation/main_navigation.xml new file mode 100644 index 00000000..413d933f --- /dev/null +++ b/app/src/main/res/navigation/main_navigation.xml @@ -0,0 +1,25 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/navigation.xml b/app/src/main/res/navigation/setup_navigation.xml similarity index 86% rename from app/src/main/res/navigation/navigation.xml rename to app/src/main/res/navigation/setup_navigation.xml index c2c31d23..bce6d4c1 100644 --- a/app/src/main/res/navigation/navigation.xml +++ b/app/src/main/res/navigation/setup_navigation.xml @@ -34,5 +34,12 @@ app:exitAnim="@anim/nav_default_exit_anim" app:popEnterAnim="@anim/nav_default_pop_enter_anim" app:popExitAnim="@anim/nav_default_pop_exit_anim" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 94bd6c40..e51dde91 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,4 +14,8 @@ Are you sure you want to remove the server %1$s Remove Cancel + MainActivity + Home + My media + Settings \ No newline at end of file