Skip to content

Commit d5807b8

Browse files
committed
Add font size and padding options to the metadata shown in viewer/screensaver
1 parent 9834ee2 commit d5807b8

File tree

5 files changed

+43
-20
lines changed

5 files changed

+43
-20
lines changed

app/src/main/java/nl/giejay/android/tv/immich/settings/MetaDataCustomizerAdapter.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ import android.widget.LinearLayout
1010
import android.widget.TextView
1111
import nl.giejay.android.tv.immich.R
1212
import nl.giejay.mediaslider.adapter.AlignOption
13-
import nl.giejay.mediaslider.adapter.MetaDataClock
1413
import nl.giejay.mediaslider.adapter.MetaDataItem
15-
import nl.giejay.mediaslider.adapter.MetaDataMediaCount
16-
import nl.giejay.mediaslider.adapter.MetaDataSliderItem
17-
import nl.giejay.mediaslider.model.MetaDataType
1814

1915
class MetaDataCustomizerAdapter(val context: Context, val metaData: MutableList<MetaDataItem>) : BaseAdapter() {
2016
private val layoutInflater: LayoutInflater = LayoutInflater.from(context)
@@ -62,15 +58,7 @@ class MetaDataCustomizerAdapter(val context: Context, val metaData: MutableList<
6258
// notifyDataSetChanged()
6359
// }
6460

65-
textView.text = when (metaDataItem) {
66-
is MetaDataClock -> "Clock"
67-
is MetaDataMediaCount -> "Media Count"
68-
is MetaDataSliderItem -> {
69-
if (metaDataItem.metaDataType == MetaDataType.ALBUM_NAME) {
70-
"Album Name"
71-
} else metaDataItem.metaDataType.toString().lowercase().capitalize()
72-
}
73-
}
61+
textView.text = metaDataItem.getTitle()
7462
return item
7563
}
7664
}

app/src/main/java/nl/giejay/android/tv/immich/settings/MetaDataCustomizerFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class MetaDataCustomizerFragment : Fragment() {
5959
if (findFirstNotAddedMetaDataType.isEmpty()) {
6060
Toast.makeText(requireContext(), "You already added every possible meta data", Toast.LENGTH_SHORT).show()
6161
} else {
62-
val newItem = MetaDataItem.create(findFirstNotAddedMetaDataType.first(), align)
62+
val newItem = MetaDataItem.create(findFirstNotAddedMetaDataType.first(), align, MetaDataItem.DEFAULT_PADDING, findFirstNotAddedMetaDataType.first().defaultFontSize)
6363
allMetaData.add(newItem)
6464
findNavController().navigate(HomeFragmentDirections.actionGlobalToSettingsDialog("meta_data_item",
6565
"",

app/src/main/java/nl/giejay/android/tv/immich/settings/MetaDataItemCustomizerFragment.kt

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import android.os.Bundle
44
import androidx.navigation.fragment.findNavController
55
import androidx.preference.ListPreference
66
import androidx.preference.Preference
7+
import androidx.preference.SeekBarPreference
78
import arrow.core.Either
89
import nl.giejay.android.tv.immich.R
910
import nl.giejay.android.tv.immich.shared.prefs.MetaDataScreen
1011
import nl.giejay.android.tv.immich.shared.prefs.PrefScreen
1112
import nl.giejay.android.tv.immich.shared.prefs.PreferenceManager
13+
import nl.giejay.mediaslider.adapter.MetaDataClock
1214
import nl.giejay.mediaslider.adapter.MetaDataItem
1315
import nl.giejay.mediaslider.model.MetaDataType
1416
import nl.giejay.mediaslider.util.MetaDataConverter
@@ -36,17 +38,28 @@ class MetaDataItemInnerCustomizerFragment : SettingsScreenFragment.SettingsInner
3638
val currentIndex = allItems.indexOf(metaDataItem)
3739
metaDataItemOrder.setDefaultValue((currentIndex + 1).toString())
3840
metaDataItemOrder.value = (currentIndex + 1).toString()
39-
41+
42+
val fontSize = findPreference<SeekBarPreference>("meta_data_item_font_size")
43+
fontSize!!.value = metaDataItem.fontSize
44+
4045
// set types
4146
val type = findPreference<ListPreference>("meta_data_item_type")!!
42-
type.entryValues = MetaDataType.entries.filterNot{e -> e != metaDataItem.type && allItems.any { it.type == e }}.map { it.toString() }.toTypedArray()
43-
type.entries = type.entryValues.map { it.toString().lowercase().capitalize() }.toTypedArray()
47+
type.setOnPreferenceChangeListener {
48+
_, newVal -> fontSize.value = MetaDataType.valueOf(newVal as String).defaultFontSize
49+
true
50+
}
51+
val filteredTypes = MetaDataType.entries.filterNot { e -> e != metaDataItem.type && allItems.any { it.type == e } }
52+
type.entryValues = filteredTypes.map { it.toString() }.toTypedArray()
53+
type.entries = filteredTypes.map { it.title }.toTypedArray()
4454
type.value = metaDataItem.type.toString()
4555

46-
findPreference<Preference>("meta_data_save")!!.setOnPreferenceClickListener {
56+
val padding = findPreference<SeekBarPreference>("meta_data_item_padding")
57+
padding!!.value = metaDataItem.padding
58+
59+
findPreference<Preference>("meta_data_save")!!.setOnPreferenceClickListener {
4760
val updatedList = allItems.toMutableList()
4861
updatedList.remove(metaDataItem)
49-
updatedList.add(metaDataItemOrder.value.toInt() - 1, MetaDataItem.create(MetaDataType.valueOf(type.value.toString()), metaDataItem.align))
62+
updatedList.add(metaDataItemOrder.value.toInt() - 1, MetaDataItem.create(MetaDataType.valueOf(type.value.toString()), metaDataItem.align, padding.value, fontSize.value))
5063
PreferenceManager.saveMetaData(metaDataItem.align, screen, updatedList.toList())
5164
findNavController().popBackStack()
5265
false

app/src/main/res/xml/preferences_meta_data_item.xml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,28 @@
1616
android:title="Order of metadata"
1717
app:useSimpleSummaryProvider="true" />
1818

19+
<SeekBarPreference
20+
android:key="meta_data_item_font_size"
21+
android:title="Font size"
22+
android:max="50"
23+
android:min="12"
24+
app:useSimpleSummaryProvider="true"
25+
android:defaultValue="18"
26+
android:dialogTitle="Font size"
27+
>
28+
</SeekBarPreference>
29+
30+
<SeekBarPreference
31+
android:key="meta_data_item_padding"
32+
android:title="Padding"
33+
android:max="50"
34+
android:min="0"
35+
app:useSimpleSummaryProvider="true"
36+
android:defaultValue="0"
37+
android:dialogTitle="Padding above and below the item"
38+
>
39+
</SeekBarPreference>
40+
1941
<!-- <ListPreference-->
2042
<!-- android:dialogTitle="Align"-->
2143
<!-- android:key="meta_data_item_align"-->

0 commit comments

Comments
 (0)