From 3e51df6a87648bd6828dc00e05b745f963487b30 Mon Sep 17 00:00:00 2001 From: yattoz <12408848+yattoz@users.noreply.github.com> Date: Wed, 18 Dec 2019 20:14:52 +0100 Subject: [PATCH] created dedicated tabPager for programme --- .../fr/forum_thalie/tsumugi/MainActivity.kt | 7 ++- .../tsumugi/planning/Programme.kt | 1 - .../SongsPagerAdapter.kt => APagerAdapter.kt} | 4 +- .../{songs => }/programme/ProgrammeAdapter.kt | 12 ++--- .../ProgrammeDayFragment.kt} | 15 +++--- .../tsumugi/ui/programme/ProgrammeFragment.kt | 45 ++++++++++++++++ .../tsumugi/ui/songs/SongsFragment.kt | 12 +++-- .../main/res/drawable-anydpi/ic_programme.xml | 11 ++++ .../main/res/drawable-hdpi/ic_programme.png | Bin 0 -> 229 bytes .../main/res/drawable-mdpi/ic_programme.png | Bin 0 -> 144 bytes .../main/res/drawable-xhdpi/ic_programme.png | Bin 0 -> 215 bytes .../main/res/drawable-xxhdpi/ic_programme.png | Bin 0 -> 313 bytes .../main/res/layout/fragment_programme.xml | 48 ++++++++++++++---- .../res/layout/fragment_programme_day.xml | 19 +++++++ app/src/main/res/layout/programme_view.xml | 21 +++++--- app/src/main/res/menu/bottom_nav_menu.xml | 5 ++ .../res/navigation/navigation_programme.xml | 14 +++++ app/src/main/res/values/strings.xml | 1 + 18 files changed, 170 insertions(+), 45 deletions(-) rename app/src/main/java/fr/forum_thalie/tsumugi/ui/{songs/SongsPagerAdapter.kt => APagerAdapter.kt} (84%) rename app/src/main/java/fr/forum_thalie/tsumugi/ui/{songs => }/programme/ProgrammeAdapter.kt (86%) rename app/src/main/java/fr/forum_thalie/tsumugi/ui/{songs/programme/ProgrammeFragment.kt => programme/ProgrammeDayFragment.kt} (77%) create mode 100644 app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeFragment.kt create mode 100644 app/src/main/res/drawable-anydpi/ic_programme.xml create mode 100644 app/src/main/res/drawable-hdpi/ic_programme.png create mode 100644 app/src/main/res/drawable-mdpi/ic_programme.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_programme.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_programme.png create mode 100644 app/src/main/res/layout/fragment_programme_day.xml create mode 100644 app/src/main/res/navigation/navigation_programme.xml diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/MainActivity.kt b/app/src/main/java/fr/forum_thalie/tsumugi/MainActivity.kt index 9772a01..e1b2369 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/MainActivity.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/MainActivity.kt @@ -38,8 +38,11 @@ class MainActivity : BaseActivity() { val bottomNavigationView : BottomNavigationView = findViewById(R.id.bottom_nav) //val navGraphIds = listOf(R.navigation.home, R.navigation.list, R.navigation.form) - val navGraphIds = listOf(R.navigation.navigation_nowplaying, R.navigation.navigation_songs, - R.navigation.navigation_news) + val navGraphIds = listOf( + R.navigation.navigation_nowplaying, + R.navigation.navigation_songs, + R.navigation.navigation_news, + R.navigation.navigation_programme) // Setup the bottom navigation view with a list of navigation graphs val controller = bottomNavigationView.setupWithNavController( diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/planning/Programme.kt b/app/src/main/java/fr/forum_thalie/tsumugi/planning/Programme.kt index ffb82da..a7c37c1 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/planning/Programme.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/planning/Programme.kt @@ -61,7 +61,6 @@ class Programme (val title: String, private val periodicity: Int, private val ho { res.add(weekdays[i]) } - } return res.toString().drop(1).dropLast(1) // drop '[' and ']' } diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsPagerAdapter.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/APagerAdapter.kt similarity index 84% rename from app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsPagerAdapter.kt rename to app/src/main/java/fr/forum_thalie/tsumugi/ui/APagerAdapter.kt index e69882b..e5d7be6 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsPagerAdapter.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/APagerAdapter.kt @@ -1,11 +1,11 @@ -package fr.forum_thalie.tsumugi.ui.songs +package fr.forum_thalie.tsumugi.ui import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentPagerAdapter import androidx.fragment.app.FragmentManager -class SongsPagerAdapter(f: FragmentManager, t: Int) : FragmentPagerAdapter(f, t){ +class APagerAdapter(f: FragmentManager, t: Int) : FragmentPagerAdapter(f, t){ private val fragmentList = ArrayList() private val fragmentTitleList = ArrayList() diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeAdapter.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt similarity index 86% rename from app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeAdapter.kt rename to app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt index ee89091..368743a 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeAdapter.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeAdapter.kt @@ -1,19 +1,13 @@ -package fr.forum_thalie.tsumugi.ui.songs.programme +package fr.forum_thalie.tsumugi.ui.programme import android.annotation.SuppressLint -import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.RecyclerView import fr.forum_thalie.tsumugi.R -import fr.forum_thalie.tsumugi.colorBlue -import fr.forum_thalie.tsumugi.colorWhited import fr.forum_thalie.tsumugi.planning.Programme -import fr.forum_thalie.tsumugi.tag -import kotlinx.android.synthetic.main.programme_view.view.* -import kotlinx.android.synthetic.main.song_view.view.* class ProgrammeAdapter(private val dataSet: ArrayList /*, @@ -30,7 +24,9 @@ class ProgrammeAdapter(private val dataSet: ArrayList // create a new view val view = LayoutInflater.from(parent.context) .inflate(R.layout.programme_view, parent, false) as ConstraintLayout - return MyViewHolder(view) + return MyViewHolder( + view + ) } // Replace the contents of a view (invoked by the layout manager) diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt similarity index 77% rename from app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeFragment.kt rename to app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt index eb13935..2fc0cdd 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/programme/ProgrammeFragment.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeDayFragment.kt @@ -1,4 +1,4 @@ -package fr.forum_thalie.tsumugi.ui.songs.programme +package fr.forum_thalie.tsumugi.ui.programme import android.os.Bundle import android.view.LayoutInflater @@ -10,11 +10,8 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import fr.forum_thalie.tsumugi.R import fr.forum_thalie.tsumugi.planning.Planning -import fr.forum_thalie.tsumugi.playerstore.PlayerStore -import fr.forum_thalie.tsumugi.ui.songs.queuelp.LastPlayedFragment -import fr.forum_thalie.tsumugi.ui.songs.queuelp.SongAdaptater -class ProgrammeFragment : Fragment() { +class ProgrammeDayFragment(day: String) : Fragment() { private lateinit var recyclerView: RecyclerView private lateinit var viewAdapter: RecyclerView.Adapter<*> @@ -25,9 +22,10 @@ class ProgrammeFragment : Fragment() { savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment - val root = inflater.inflate(R.layout.fragment_programme, container, false) + val root = inflater.inflate(R.layout.fragment_programme_day, container, false) viewManager = LinearLayoutManager(context) - viewAdapter = ProgrammeAdapter(Planning.instance.programmes) + viewAdapter = + ProgrammeAdapter(Planning.instance.programmes) recyclerView = root.findViewById(R.id.programme_recycler).apply { // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView @@ -50,6 +48,7 @@ class ProgrammeFragment : Fragment() { companion object { @JvmStatic - fun newInstance() = ProgrammeFragment() + fun newInstance(day: String) = + ProgrammeDayFragment(day) } } \ No newline at end of file diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeFragment.kt new file mode 100644 index 0000000..4ced158 --- /dev/null +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/programme/ProgrammeFragment.kt @@ -0,0 +1,45 @@ +package fr.forum_thalie.tsumugi.ui.programme + +import android.os.Bundle +import android.util.Log +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentPagerAdapter +import androidx.viewpager.widget.ViewPager +import com.google.android.material.tabs.TabLayout +import fr.forum_thalie.tsumugi.R +import fr.forum_thalie.tsumugi.ui.APagerAdapter +import fr.forum_thalie.tsumugi.weekdays + +class ProgrammeFragment : Fragment() { + + private lateinit var adapter : APagerAdapter + private lateinit var root: View + private lateinit var viewPager: ViewPager + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + + root = inflater.inflate(R.layout.fragment_programme, container, false) + viewPager = root.findViewById(R.id.dayTabPager) + adapter = APagerAdapter(childFragmentManager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) + // You can add more fragments to the adapter, to display more information (for example with R/a/dio, queue, request, faves...) + weekdays.forEach { + adapter.addFragment(ProgrammeDayFragment.newInstance(it), it) + } + + viewPager.adapter = adapter + + val tabLayout : TabLayout = root.findViewById(R.id.dayTabLayout) + tabLayout.setupWithViewPager(viewPager) + Log.d(tag, "SongFragment view created") + + return root + } + +} \ No newline at end of file diff --git a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsFragment.kt b/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsFragment.kt index 5933253..9e99ef7 100644 --- a/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsFragment.kt +++ b/app/src/main/java/fr/forum_thalie/tsumugi/ui/songs/SongsFragment.kt @@ -10,12 +10,13 @@ import androidx.fragment.app.FragmentPagerAdapter import androidx.viewpager.widget.ViewPager import com.google.android.material.tabs.TabLayout import fr.forum_thalie.tsumugi.R -import fr.forum_thalie.tsumugi.ui.songs.programme.ProgrammeFragment +import fr.forum_thalie.tsumugi.ui.APagerAdapter +import fr.forum_thalie.tsumugi.ui.programme.ProgrammeDayFragment import fr.forum_thalie.tsumugi.ui.songs.queuelp.LastPlayedFragment class SongsFragment : Fragment() { - private lateinit var adapter : SongsPagerAdapter + private lateinit var adapter : APagerAdapter private lateinit var root: View private lateinit var viewPager: ViewPager @@ -27,11 +28,12 @@ class SongsFragment : Fragment() { root = inflater.inflate(R.layout.fragment_songs, container, false) viewPager = root.findViewById(R.id.tabPager) - adapter = SongsPagerAdapter(childFragmentManager, FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) + adapter = APagerAdapter( + childFragmentManager, + FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT + ) adapter.addFragment(LastPlayedFragment.newInstance(), getString(R.string.lp)) - // You can add more fragments to the adapter, to display more information (for example with R/a/dio, queue, request, faves...) - adapter.addFragment(ProgrammeFragment.newInstance(), getString(R.string.programme)) viewPager.adapter = adapter diff --git a/app/src/main/res/drawable-anydpi/ic_programme.xml b/app/src/main/res/drawable-anydpi/ic_programme.xml new file mode 100644 index 0000000..7dd7db1 --- /dev/null +++ b/app/src/main/res/drawable-anydpi/ic_programme.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable-hdpi/ic_programme.png b/app/src/main/res/drawable-hdpi/ic_programme.png new file mode 100644 index 0000000000000000000000000000000000000000..3431e26af78bc825d3466aa77f7c7b08c2a7210b GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbB)_A%&hE&{odp(e=L4k+u!Mfmz z$p^BQZ_qB0<f}@3qBl^EEPOCnq)2RLAsgC@$u!;6J$a@AHN~PA#p`oqb69Mwfsgj-y7w4lTtRzEBDSUtSI)Xm;9r7 d_Gs%0VfD?C+Zn~hzX9FN;OXk;vd$@?2>`g*SQP*O literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_programme.png b/app/src/main/res/drawable-mdpi/ic_programme.png new file mode 100644 index 0000000000000000000000000000000000000000..a16a2923f98930591d6f236a205ebac8a3fb017d GIT binary patch literal 144 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj;hrvzAr-fh6C^Y~{Qv*|sDh7f z>6eWRD+2gC)DN0WY;>&p`XTayf8#>~8^QUk-769fJ`zk|JUhwkuCBt#-;2d~e7Q3w sc8T>zIh<(f+@iNGGx}i6IwH*Idp$Xsgt)xP3%(Y{uNTP7}%Nj(o^GXFC(Jb0MsyUO?L^;WJc@3Uv$ zd3gKE!b1@Dfe{s Kb6Mw<&;$Ta1W>U6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_programme.png b/app/src/main/res/drawable-xxhdpi/ic_programme.png new file mode 100644 index 0000000000000000000000000000000000000000..1ad4b90c259c67fa4672816cb8c5521611343a05 GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@Zgyv2U}W%gaSW-r_4alwSCfMT>xBhk z0lJzSd|5^R<}4InXfK|ne8qc-fBb^SI}76Hel$>6aX&>#$=M_J`qlN%cIhcNG%zqq zNd-hzOp99bF6i{OvtKuyjobcy@A-eN#{Rav981@pwbfZvxNK!RPl26n+q@+u8$;bJ z=8H{qn9b8zHql`^Pva?%1=(#5qF|$#SXMCZVq_BGf6~mP;1I}thmn!#iu8gwn<_>| zDUl1z0w7gi#b0o8fLV-8CYQcD0-eCb0uo4OT?J%*@n2wc*#3-@yWqFB$X$(Gj|1*H zoYi=C(;?RUl9BL|9}~~4pS;EFinbCEEI!ZuCT01(TjFsgz#w7pboFyt=akR{0ER+x AHUIzs literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/fragment_programme.xml b/app/src/main/res/layout/fragment_programme.xml index 08fe44e..0df63dd 100644 --- a/app/src/main/res/layout/fragment_programme.xml +++ b/app/src/main/res/layout/fragment_programme.xml @@ -1,19 +1,45 @@ - + android:layout_height="match_parent" > - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" > - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_programme_day.xml b/app/src/main/res/layout/fragment_programme_day.xml new file mode 100644 index 0000000..6564d62 --- /dev/null +++ b/app/src/main/res/layout/fragment_programme_day.xml @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/programme_view.xml b/app/src/main/res/layout/programme_view.xml index f6d601f..a6ea7a2 100644 --- a/app/src/main/res/layout/programme_view.xml +++ b/app/src/main/res/layout/programme_view.xml @@ -16,27 +16,32 @@ + + diff --git a/app/src/main/res/navigation/navigation_programme.xml b/app/src/main/res/navigation/navigation_programme.xml new file mode 100644 index 0000000..5f7b592 --- /dev/null +++ b/app/src/main/res/navigation/navigation_programme.xml @@ -0,0 +1,14 @@ + + + + + + \ 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 e0b0213..e41b508 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4,6 +4,7 @@ Songs Chat News + Programme Now playing: %1$s