diff --git a/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferItemAdapter.kt b/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferItemAdapter.kt index 7fb2511..a9ad9de 100644 --- a/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferItemAdapter.kt +++ b/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferItemAdapter.kt @@ -2,8 +2,13 @@ package com.denizk0461.studip.adapter import android.view.LayoutInflater import android.view.ViewGroup +import android.widget.ImageView +import androidx.core.widget.ImageViewCompat import androidx.recyclerview.widget.RecyclerView +import com.denizk0461.studip.data.Misc import com.denizk0461.studip.databinding.ItemCanteenBinding +import com.denizk0461.studip.databinding.ItemCanteenLineBinding +import com.denizk0461.studip.databinding.ItemIconBinding import com.denizk0461.studip.model.CanteenOffer class CanteenOfferItemAdapter(private val offers: List) : RecyclerView.Adapter() { @@ -25,8 +30,32 @@ class CanteenOfferItemAdapter(private val offers: List) : Recycler override fun onBindViewHolder(holder: OfferViewHolder, position: Int) { val currentItem = offers[position] + val line = ItemCanteenLineBinding.inflate( + LayoutInflater.from(holder.binding.root.context), +// holder.binding.root, +// true, + ) holder.binding.textCategory.text = currentItem.category - holder.binding.tempContent.text = "${currentItem.title} • ${currentItem.price}" + line.content.text = currentItem.title + val indices = arrayListOf() + currentItem.dietaryPreferences.filterIndexed { index, char -> + if (char == 't') { + indices.add(index) + true + } else false + } + if (indices.isEmpty()) indices.add(10) + indices.forEach { index -> + val img = ItemIconBinding.inflate(LayoutInflater.from(holder.binding.root.context)) +// holder.binding.root.resources.getDrawable(Misc.indexToDrawable[index]!!, holder.binding.root.context.theme) + img.imageView.setImageDrawable(holder.binding.root.context.getDrawable(Misc.indexToDrawable[index]!!)) + line.imageViewContainer.addView(img.root) + } + + holder.binding.lineContainer.addView(line.root) + +// holder.binding.textCategory.text = currentItem.category +// holder.binding.tempContent.text = "${currentItem.title} • ${currentItem.price}" // TODO inflate view saying "no offers!" or sth } diff --git a/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferPageAdapter.kt b/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferPageAdapter.kt index 9ac107f..8098c54 100644 --- a/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferPageAdapter.kt +++ b/app/src/main/java/com/denizk0461/studip/adapter/CanteenOfferPageAdapter.kt @@ -38,7 +38,7 @@ class CanteenOfferPageAdapter(private var offers: List, private va filteredForDate } else { filteredForDate.filter { - Log.d("eek!5", it.dietaryPreferences) + Log.d("eek!5", "${it.title}: - ${prefsRegex} vs ${it.dietaryPreferences}") prefsRegex.matches(it.dietaryPreferences) } } diff --git a/app/src/main/java/com/denizk0461/studip/data/Misc.kt b/app/src/main/java/com/denizk0461/studip/data/Misc.kt index f0cc058..3e1a573 100644 --- a/app/src/main/java/com/denizk0461/studip/data/Misc.kt +++ b/app/src/main/java/com/denizk0461/studip/data/Misc.kt @@ -1,6 +1,6 @@ package com.denizk0461.studip.data -import com.denizk0461.studip.model.StudIPEvent +import com.denizk0461.studip.R object Misc { @@ -52,6 +52,20 @@ object Misc { "21:45" to 7, ) + val indexToDrawable: Map = mapOf( + 0 to R.drawable.handshake, + 1 to R.drawable.fish, + 2 to R.drawable.chicken, + 3 to R.drawable.sheep, + 4 to R.drawable.yoga, + 5 to R.drawable.cow, + 6 to R.drawable.pig, + 7 to R.drawable.leaf, + 8 to R.drawable.carrot, + 9 to R.drawable.deer, + 10 to R.drawable.circle, + ) + fun parseTimeslot(time: String): Pair { val splitTime = time.split(" - ") val start = timeslotStartMap[splitTime[0]] ?: 0 diff --git a/app/src/main/java/com/denizk0461/studip/fragment/CanteenFragment.kt b/app/src/main/java/com/denizk0461/studip/fragment/CanteenFragment.kt index 7aaba13..6fe058e 100644 --- a/app/src/main/java/com/denizk0461/studip/fragment/CanteenFragment.kt +++ b/app/src/main/java/com/denizk0461/studip/fragment/CanteenFragment.kt @@ -116,5 +116,6 @@ class CanteenFragment : Fragment() { viewModel.getPreference(pref) private fun getPrefRegex(): Regex = - Regex(viewModel.getDietaryPrefs().deconstruct().replace('t', '.')) +// Regex(viewModel.getDietaryPrefs().deconstruct().replace('t', '.')) + Regex(viewModel.getDietaryPrefs().deconstruct().replace('f', '.')) } \ No newline at end of file diff --git a/app/src/main/res/anim/item_animation_fall_down.xml b/app/src/main/res/anim/item_animation_fall_down.xml new file mode 100644 index 0000000..801ea7a --- /dev/null +++ b/app/src/main/res/anim/item_animation_fall_down.xml @@ -0,0 +1,27 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/layout_animation_fall_down.xml b/app/src/main/res/anim/layout_animation_fall_down.xml new file mode 100644 index 0000000..6eb9447 --- /dev/null +++ b/app/src/main/res/anim/layout_animation_fall_down.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/carrot.xml b/app/src/main/res/drawable/carrot.xml new file mode 100644 index 0000000..404ba1e --- /dev/null +++ b/app/src/main/res/drawable/carrot.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/chicken.xml b/app/src/main/res/drawable/chicken.xml new file mode 100644 index 0000000..d680e71 --- /dev/null +++ b/app/src/main/res/drawable/chicken.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/circle.xml b/app/src/main/res/drawable/circle.xml new file mode 100644 index 0000000..78f825f --- /dev/null +++ b/app/src/main/res/drawable/circle.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/cow.xml b/app/src/main/res/drawable/cow.xml new file mode 100644 index 0000000..d8989ef --- /dev/null +++ b/app/src/main/res/drawable/cow.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/deer.xml b/app/src/main/res/drawable/deer.xml new file mode 100644 index 0000000..4308a91 --- /dev/null +++ b/app/src/main/res/drawable/deer.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/fish.xml b/app/src/main/res/drawable/fish.xml new file mode 100644 index 0000000..468b0ae --- /dev/null +++ b/app/src/main/res/drawable/fish.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/handshake.xml b/app/src/main/res/drawable/handshake.xml new file mode 100644 index 0000000..6bf8a1c --- /dev/null +++ b/app/src/main/res/drawable/handshake.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/leaf.xml b/app/src/main/res/drawable/leaf.xml new file mode 100644 index 0000000..2f4e889 --- /dev/null +++ b/app/src/main/res/drawable/leaf.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/pig.xml b/app/src/main/res/drawable/pig.xml new file mode 100644 index 0000000..ec2ec3f --- /dev/null +++ b/app/src/main/res/drawable/pig.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/sheep.xml b/app/src/main/res/drawable/sheep.xml new file mode 100644 index 0000000..8322806 --- /dev/null +++ b/app/src/main/res/drawable/sheep.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/yoga.xml b/app/src/main/res/drawable/yoga.xml new file mode 100644 index 0000000..ec82660 --- /dev/null +++ b/app/src/main/res/drawable/yoga.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 0a91a2c..fa88b1e 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -77,10 +77,6 @@ android:paddingHorizontal="16dp" android:paddingVertical="8dp"> - - - - + + + + + + + + + + + + + + + + app:layout_constraintEnd_toEndOf="parent"/> + android:orientation="vertical" + android:layout_marginTop="8dp"> - + + + + diff --git a/app/src/main/res/layout/item_canteen_line.xml b/app/src/main/res/layout/item_canteen_line.xml new file mode 100644 index 0000000..a581a9f --- /dev/null +++ b/app/src/main/res/layout/item_canteen_line.xml @@ -0,0 +1,27 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_icon.xml b/app/src/main/res/layout/item_icon.xml new file mode 100644 index 0000000..a5f27e4 --- /dev/null +++ b/app/src/main/res/layout/item_icon.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_scrollable_page.xml b/app/src/main/res/layout/item_scrollable_page.xml index 5d2620a..ac81f05 100644 --- a/app/src/main/res/layout/item_scrollable_page.xml +++ b/app/src/main/res/layout/item_scrollable_page.xml @@ -8,7 +8,8 @@ + android:layout_height="match_parent" + android:layoutAnimation="@anim/layout_animation_fall_down"> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 488c561..82eeea3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -47,6 +47,8 @@ Dies wird alle Anpassungen löschen! Nutze akademisches Viertel Wo es passt + Markiere meinen nächsten Kurs + Funktioniert nur wenn Kurse sich nicht überschneiden! App-Verison mit ♡️ aus Bremen-Osterholz\von denizk0461 \\__* diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 16a9760..a9f1af6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -47,6 +47,8 @@ This will clear any customisations! Use academic quarter Where applicable + Highlight next course + Only works if courses don\'t overlap! App Version with ♡️ from Bremen-Osterholz\nmade by denizk0461 \\__*