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 0000000..3431e26 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_programme.png differ 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 0000000..a16a292 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_programme.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_programme.png b/app/src/main/res/drawable-xhdpi/ic_programme.png new file mode 100644 index 0000000..694c65d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_programme.png differ 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 0000000..1ad4b90 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_programme.png differ 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