Skip to content

Commit

Permalink
Show allergens
Browse files Browse the repository at this point in the history
  • Loading branch information
kudlav committed Jan 9, 2020
1 parent 2740c88 commit fbe291e
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 29 deletions.
21 changes: 18 additions & 3 deletions app/src/main/java/com/kudlav/kam/adapters/MenuAdapter.kt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import kotlinx.android.synthetic.main.header_menu.view.*
import android.view.LayoutInflater
import com.kudlav.kam.R
import kotlinx.android.synthetic.main.dialog_food.view.*
import java.lang.Exception

class MenuAdapter(private val section: FoodType, private val itemList: ArrayList<Food>): StatelessSection(
SectionParameters.builder()
Expand Down Expand Up @@ -48,10 +49,13 @@ class MenuAdapter(private val section: FoodType, private val itemList: ArrayList

inner class ItemViewHolder(private val view: View): RecyclerView.ViewHolder(view) {

private val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(view.context)
private val lang: String? = preferences.getString("food_lang", "cs")
private val priceCategory: String? = preferences.getString("price_category", "cs")
private val allergenChosen: Set<String>? = preferences.getStringSet("allergens", null)
private val allergenNames = view.context.resources.getStringArray(R.array.allergen_entries)

fun bind(position: Int) {
val preferences: SharedPreferences = PreferenceManager.getDefaultSharedPreferences(view.context)
val lang: String? = preferences.getString("food_lang", "cs")
val priceCategory: String? = preferences.getString("price_category", "cs")

val data = itemList[position]
val price: Int? = when(priceCategory) {
Expand All @@ -64,6 +68,17 @@ class MenuAdapter(private val section: FoodType, private val itemList: ArrayList
view.tvWeight.text =
if (data.weight != null) "%d %s".format(data.weight, view.context.getString(R.string.unit_weight))
else ""
val allergens: ArrayList<String> = ArrayList()
try {
allergenChosen?.forEach { item: String ->
if (data.allergens.contains(item.toInt())) {
allergens.add(allergenNames[item.toInt()-1])
}
}
} catch (e: Exception) {
}
view.tvAllergens.text = allergens.joinToString()

view.tvPrice.text =
if (price != null) "%d %s".format(price, view.context.getString(R.string.currency))
else "? ${view.context.getString(R.string.currency)}"
Expand Down
22 changes: 18 additions & 4 deletions app/src/main/res/layout/item_menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,24 @@
android:textSize="16sp"
android:textAppearance="@style/TextAppearance.AppCompat.Title" />

<TextView
android:id="@+id/tvWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<TextView
android:id="@+id/tvWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<TextView
android:id="@+id/tvAllergens"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp" />
</LinearLayout>

</LinearLayout>

<TextView
Expand Down
32 changes: 16 additions & 16 deletions app/src/main/res/values-cs/arrays.xml
Original file line number Diff line number Diff line change
@@ -1,37 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Reply Preference -->
<string-array name="price_entries">
<item>Student</item>
<item>Zaměstnanec</item>
<item>Ostatní</item>
</string-array>

<string-array name="price_values">
<item>student</item>
<item>employee</item>
<item>Other</item>
</string-array>

<string-array name="lang_entries">
<item>Čeština</item>
<item>Angličtina</item>
</string-array>
<string-array name="lang_values">
<item>cs</item>
<item>en</item>
</string-array>

<string-array name="theme_entries">
<item>Světlý</item>
<item>Tmavý</item>
<item>Nastavený spořičem baterie</item>
<item>Podle systému</item>
</string-array>
<string-array name="theme_values">
<item>MODE_NIGHT_NO</item>
<item>MODE_NIGHT_YES</item>
<item>MODE_NIGHT_AUTO_BATTERY</item>
<item>MODE_NIGHT_FOLLOW_SYSTEM</item>

<string-array name="allergen_entries">
<item>Lepek</item>
<item>Korýši</item>
<item>Vejce</item>
<item>Ryby</item>
<item>Arašídy</item>
<item>Sója</item>
<item>Mléko</item>
<item>Ořechy</item>
<item>Celer</item>
<item>Hořčice</item>
<item>Sezam</item>
<item>Oxid siřičitý</item>
<item>Vlčí bob</item>
<item>Měkkýši</item>
</string-array>
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,5 @@
<string name="privacy_title">Ochrana soukromí</string>
<string name="privacy_content">Číslo karty je uloženo v zařízení a přenášeno nešifrovaně na server www.kam.vutbr.cz. V rámci záloh vašeho systému může být uloženo na servery Google. Aplikace nezíská informace o majiteli účtu.</string>
<string name="favorite">Oblíbené</string>
<string name="display_allergens">Zobrazované alergeny</string>
</resources>
34 changes: 34 additions & 0 deletions app/src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,38 @@
<item>MODE_NIGHT_AUTO_BATTERY</item>
<item>MODE_NIGHT_FOLLOW_SYSTEM</item>
</string-array>

<string-array name="allergen_values">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
</string-array>
<string-array name="allergen_entries">
<item>Gluten</item>
<item>Crustaceans</item>
<item>Eggs</item>
<item>Fish</item>
<item>Peanuts</item>
<item>Soybeans</item>
<item>Milk</item>
<item>Nuts</item>
<item>Celery</item>
<item>Mustard</item>
<item>Sesame seeds</item>
<item>Sulphur dioxide and sulphites</item>
<item>Lupin</item>
<item>Molluscs</item>
</string-array>
<string-array name="allergen_default" />
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,5 @@
<string name="privacy_title">Privacy policy</string>
<string name="privacy_content">Card number is stored in your device and transmitted to the www.kam.vutbr.cz using unsecured connection. It can be saved to Google servers as a backup of your system. The app does not get account owner information.</string>
<string name="favorite">Favorite</string>
<string name="display_allergens">Displayed allergens</string>
</resources>
19 changes: 13 additions & 6 deletions app/src/main/res/xml/root_preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,27 +29,34 @@
<PreferenceCategory app:title="@string/settings_category_view">

<ListPreference
app:key="price_category"
app:title="@string/price_category_title"
app:defaultValue="student"
app:entries="@array/price_entries"
app:entryValues="@array/price_values"
app:key="price_category"
app:title="@string/price_category_title"
app:useSimpleSummaryProvider="true" />

<ListPreference
app:key="food_lang"
app:title="@string/food_lang"
app:defaultValue="cs"
app:entries="@array/lang_entries"
app:entryValues="@array/lang_values"
app:key="food_lang"
app:title="@string/food_lang"
app:useSimpleSummaryProvider="true" />

<MultiSelectListPreference
app:key="allergens"
app:title="@string/display_allergens"
app:defaultValue="@array/allergen_default"
app:entries="@array/allergen_entries"
app:entryValues="@array/allergen_values" />

<ListPreference
app:key="theme"
app:title="@string/theme"
app:defaultValue="MODE_NIGHT_FOLLOW_SYSTEM"
app:entries="@array/theme_entries"
app:entryValues="@array/theme_values"
app:key="theme"
app:title="@string/theme"
app:useSimpleSummaryProvider="true" />

</PreferenceCategory>
Expand Down

0 comments on commit fbe291e

Please sign in to comment.