Use binding

This commit is contained in:
tzugen 2021-12-22 13:36:13 +01:00
parent 4a996f8edc
commit 5a02467ee8
No known key found for this signature in database
GPG Key ID: 61E9C34BC10EC930
4 changed files with 207 additions and 199 deletions

View File

@ -41,6 +41,7 @@ android {
buildFeatures { buildFeatures {
buildConfig = false buildConfig = false
viewBinding true viewBinding true
dataBinding true
} }
} }

View File

@ -61,6 +61,7 @@ android {
buildFeatures { buildFeatures {
viewBinding true viewBinding true
dataBinding true
} }
compileOptions { compileOptions {

View File

@ -4,7 +4,6 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ScrollView
import android.widget.TextView import android.widget.TextView
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
@ -12,6 +11,7 @@ import androidx.navigation.Navigation
import org.koin.core.component.KoinComponent import org.koin.core.component.KoinComponent
import org.moire.ultrasonic.R import org.moire.ultrasonic.R
import org.moire.ultrasonic.data.ActiveServerProvider.Companion.isOffline import org.moire.ultrasonic.data.ActiveServerProvider.Companion.isOffline
import org.moire.ultrasonic.databinding.MainBinding
import org.moire.ultrasonic.util.Constants import org.moire.ultrasonic.util.Constants
import org.moire.ultrasonic.util.Settings import org.moire.ultrasonic.util.Settings
import org.moire.ultrasonic.util.Util import org.moire.ultrasonic.util.Util
@ -21,7 +21,6 @@ import org.moire.ultrasonic.util.Util
*/ */
class MainFragment : Fragment(), KoinComponent { class MainFragment : Fragment(), KoinComponent {
private lateinit var list: ScrollView
private lateinit var musicTitle: TextView private lateinit var musicTitle: TextView
private lateinit var artistsButton: TextView private lateinit var artistsButton: TextView
private lateinit var albumsButton: TextView private lateinit var albumsButton: TextView
@ -41,6 +40,8 @@ class MainFragment : Fragment(), KoinComponent {
private lateinit var albumsAlphaByArtistButton: TextView private lateinit var albumsAlphaByArtistButton: TextView
private lateinit var videosButton: TextView private lateinit var videosButton: TextView
private var binding: MainBinding? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
Util.applyTheme(this.context) Util.applyTheme(this.context)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -50,13 +51,12 @@ class MainFragment : Fragment(), KoinComponent {
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View? { ): View {
return inflater.inflate(R.layout.main, container, false) binding = MainBinding.inflate(inflater, container, false)
return binding!!.root
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
list = view.findViewById(R.id.main_list)
setupButtons() setupButtons()
setupClickListener() setupClickListener()
setupItemVisibility() setupItemVisibility()
@ -81,25 +81,30 @@ class MainFragment : Fragment(), KoinComponent {
} }
} }
override fun onDestroyView() {
super.onDestroyView()
binding = null
}
private fun setupButtons() { private fun setupButtons() {
musicTitle = list.findViewById(R.id.main_music) musicTitle = binding!!.mainMusic
artistsButton = list.findViewById(R.id.main_artists_button) artistsButton = binding!!.mainArtistsButton
albumsButton = list.findViewById(R.id.main_albums_button) albumsButton = binding!!.mainAlbumsButton
genresButton = list.findViewById(R.id.main_genres_button) genresButton = binding!!.mainGenresButton
videosTitle = list.findViewById(R.id.main_videos_title) videosTitle = binding!!.mainVideosTitle
songsTitle = list.findViewById(R.id.main_songs) songsTitle = binding!!.mainSongs
randomSongsButton = list.findViewById(R.id.main_songs_button) randomSongsButton = binding!!.mainSongsButton
songsStarredButton = list.findViewById(R.id.main_songs_starred) songsStarredButton = binding!!.mainSongsStarred
albumsTitle = list.findViewById(R.id.main_albums) albumsTitle = binding!!.mainAlbums
albumsNewestButton = list.findViewById(R.id.main_albums_newest) albumsNewestButton = binding!!.mainAlbumsNewest
albumsRandomButton = list.findViewById(R.id.main_albums_random) albumsRandomButton = binding!!.mainAlbumsRandom
albumsHighestButton = list.findViewById(R.id.main_albums_highest) albumsHighestButton = binding!!.mainAlbumsHighest
albumsStarredButton = list.findViewById(R.id.main_albums_starred) albumsStarredButton = binding!!.mainAlbumsStarred
albumsRecentButton = list.findViewById(R.id.main_albums_recent) albumsRecentButton = binding!!.mainAlbumsRecent
albumsFrequentButton = list.findViewById(R.id.main_albums_frequent) albumsFrequentButton = binding!!.mainAlbumsFrequent
albumsAlphaByNameButton = list.findViewById(R.id.main_albums_alphaByName) albumsAlphaByNameButton = binding!!.mainAlbumsAlphaByName
albumsAlphaByArtistButton = list.findViewById(R.id.main_albums_alphaByArtist) albumsAlphaByArtistButton = binding!!.mainAlbumsAlphaByArtist
videosButton = list.findViewById(R.id.main_videos) videosButton = binding!!.mainVideos
} }
private fun setupItemVisibility() { private fun setupItemVisibility() {

View File

@ -1,215 +1,216 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:a="http://schemas.android.com/apk/res/android" <layout>
a:layout_width="fill_parent" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
a:layout_height="fill_parent" android:layout_width="fill_parent"
a:id="@+id/main_list"> android:layout_height="fill_parent"
android:id="@+id/main_list">
<LinearLayout <LinearLayout
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
a:id="@+id/main_music" android:id="@+id/main_music"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:paddingStart="6dp" android:paddingStart="6dp"
a:text="@string/main.music" android:text="@string/main.music"
a:textAllCaps="true" android:textAllCaps="true"
a:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="@color/cyan" android:textColor="@color/cyan"
a:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
a:id="@+id/main_artists_button" android:id="@+id/main_artists_button"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.artists_title" android:text="@string/main.artists_title"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_button" android:id="@+id/main_albums_button"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_title" android:text="@string/main.albums_title"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_genres_button" android:id="@+id/main_genres_button"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.genres_title" android:text="@string/main.genres_title"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_songs" android:id="@+id/main_songs"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:paddingStart="6dp" android:paddingStart="6dp"
a:text="@string/main.songs_title" android:text="@string/main.songs_title"
a:textAllCaps="true" android:textAllCaps="true"
a:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="@color/cyan" android:textColor="@color/cyan"
a:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
a:id="@+id/main_songs_button" android:id="@+id/main_songs_button"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.songs_random" android:text="@string/main.songs_random"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_songs_starred" android:id="@+id/main_songs_starred"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.songs_starred" android:text="@string/main.songs_starred"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums" android:id="@+id/main_albums"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:paddingStart="6dp" android:paddingStart="6dp"
a:text="@string/main.albums_title" android:text="@string/main.albums_title"
a:textAllCaps="true" android:textAllCaps="true"
a:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="@color/cyan" android:textColor="@color/cyan"
a:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
a:id="@+id/main_albums_newest" android:id="@+id/main_albums_newest"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_newest" android:text="@string/main.albums_newest"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_recent" android:id="@+id/main_albums_recent"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_recent" android:text="@string/main.albums_recent"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_frequent" android:id="@+id/main_albums_frequent"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_frequent" android:text="@string/main.albums_frequent"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_highest" android:id="@+id/main_albums_highest"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_highest" android:text="@string/main.albums_highest"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_random" android:id="@+id/main_albums_random"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_random" android:text="@string/main.albums_random"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_starred" android:id="@+id/main_albums_starred"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_starred" android:text="@string/main.albums_starred"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_alphaByName" android:id="@+id/main_albums_alphaByName"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_alphaByName" android:text="@string/main.albums_alphaByName"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_albums_alphaByArtist" android:id="@+id/main_albums_alphaByArtist"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.albums_alphaByArtist" android:text="@string/main.albums_alphaByArtist"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView <TextView
a:id="@+id/main_videos_title" android:id="@+id/main_videos_title"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:paddingStart="6dp" android:paddingStart="6dp"
a:text="@string/main.videos" android:text="@string/main.videos"
a:textAllCaps="true" android:textAllCaps="true"
a:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="@color/cyan" android:textColor="@color/cyan"
a:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
a:id="@+id/main_videos" android:id="@+id/main_videos"
a:layout_width="fill_parent" android:layout_width="fill_parent"
a:layout_height="wrap_content" android:layout_height="wrap_content"
a:gravity="center_vertical" android:gravity="center_vertical"
a:minHeight="40dip" android:minHeight="40dip"
a:paddingStart="6dip" android:paddingStart="6dip"
a:paddingEnd="6dip" android:paddingEnd="6dip"
a:text="@string/main.videos" android:text="@string/main.videos"
a:textAppearance="?android:attr/textAppearanceMedium" /> android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>
</layout>