Compare commits

...

3 Commits

Author SHA1 Message Date
TheBrokenRail dcb237a3df Dialogs And Colors! 2024-02-17 19:06:43 -05:00
TheBrokenRail fd2afd5bba More Tweaks 2024-02-17 16:51:16 -05:00
TheBrokenRail efacd10fb5 Some Tweaks 2024-02-17 15:24:32 -05:00
21 changed files with 333 additions and 242 deletions

View File

@ -4,18 +4,18 @@
<value>
<entry key="app">
<State>
<runningDeviceTargetSelectedWithDropDown>
<targetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<type value="QUICK_BOOT_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="R5CRB1GE0RY" />
<type value="VIRTUAL_DEVICE_PATH" />
<value value="$USER_HOME$/.android/avd/Pixel_2_API_21.avd" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-02-17T18:39:39.847936576Z" />
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-02-17T21:54:23.298453058Z" />
</State>
</entry>
</value>

View File

@ -10,6 +10,8 @@ import androidx.recyclerview.widget.RecyclerView;
import com.thebrokenrail.mtudining.activity.menu.MenuActivity;
import com.thebrokenrail.mtudining.activity.task.Task;
import com.thebrokenrail.mtudining.activity.task.TaskAdapter;
import com.thebrokenrail.mtudining.api.method.AllLocations;
import com.thebrokenrail.mtudining.util.Category;
import com.thebrokenrail.mtudining.widget.CategoryView;
/**
@ -31,25 +33,20 @@ class ListAdapter extends TaskAdapter<ListData> {
@Override
protected void bindItemView(View view, int position) {
ListData.Category data = getResult().categories.get(position - getFirstElementPosition());
Category<AllLocations.Response.Location> data = getResult().categories.get(position - getFirstElementPosition());
// Setup View
CategoryView category = (CategoryView) view;
category.setup(data.isOpen, data.name, () -> {
category.setup(data, () -> {
// Open/Close Category
data.isOpen = !data.isOpen;
notifyItemChanged(getResult().categories.indexOf(data) + getFirstElementPosition());
}, location -> {
// Open Menu
Intent intent = new Intent(category.getContext(), MenuActivity.class);
intent.putExtra(MenuActivity.ID_EXTRA, location.id);
intent.putExtra(MenuActivity.NAME_EXTRA, location.name);
category.getContext().startActivity(intent);
});
// Add Locations
category.clearItems();
for (ListData.Category.Element location : data.locations) {
category.addItem(location.name, () -> {
// Open Menu
Intent intent = new Intent(category.getContext(), MenuActivity.class);
intent.putExtra(MenuActivity.ID_EXTRA, location.id);
intent.putExtra(MenuActivity.NAME_EXTRA, location.name);
category.getContext().startActivity(intent);
});
}
}
@Override

View File

@ -1,5 +1,8 @@
package com.thebrokenrail.mtudining.activity.list;
import com.thebrokenrail.mtudining.api.method.AllLocations;
import com.thebrokenrail.mtudining.util.Category;
import java.util.ArrayList;
import java.util.List;
@ -7,28 +10,8 @@ import java.util.List;
* Data to be displayed in {@link ListActivity}.
*/
class ListData {
public static class Category {
public static class Element {
public final String id;
public final String name;
public Element(String id, String name) {
this.id = id;
this.name = name;
}
}
public final String name;
public boolean isOpen = true;
public final List<Element> locations = new ArrayList<>();
public Category(String name) {
this.name = name;
}
}
public final String siteId;
public final List<Category> categories = new ArrayList<>();
public final List<Category<AllLocations.Response.Location>> categories = new ArrayList<>();
ListData(String siteId) {
this.siteId = siteId;

View File

@ -4,6 +4,7 @@ import com.thebrokenrail.mtudining.activity.task.Task;
import com.thebrokenrail.mtudining.api.Connection;
import com.thebrokenrail.mtudining.api.method.AllLocations;
import com.thebrokenrail.mtudining.api.method.Info;
import com.thebrokenrail.mtudining.util.Category;
import com.thebrokenrail.mtudining.util.Constants;
/**
@ -30,15 +31,15 @@ class ListTask extends Task<ListData> {
for (AllLocations.Response.Building building : allLocationsResponse.buildings) {
if (building.active) {
// Found Active Building
ListData.Category category = new ListData.Category(building.name);
Category<AllLocations.Response.Location> category = new Category<>(building.name);
for (AllLocations.Response.Location location : building.locations) {
if (location.active) {
// Found Active Location
category.locations.add(new ListData.Category.Element(location.id, location.name));
category.items.add(location);
}
}
// Skip Empty Category
if (category.locations.size() > 0) {
if (category.items.size() > 0) {
data.categories.add(category);
}
}

View File

@ -0,0 +1,48 @@
package com.thebrokenrail.mtudining.activity.menu;
import android.content.Context;
import android.graphics.Typeface;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.style.StyleSpan;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.thebrokenrail.mtudining.R;
import com.thebrokenrail.mtudining.api.method.PeriodDetail;
/**
* Dialog for a food item.
*/
public class ItemDialog {
/**
* Show dialog.
* @param context The context
* @param item The food item to display
*/
public static void show(Context context, PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem item) {
// Build Message
SpannableStringBuilder message = new SpannableStringBuilder(item.desc != null ? item.desc.trim() : "");
if (message.length() > 0) {
message.append("\n\n");
}
message.append(context.getString(R.string.portion), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
message.append(item.portion);
message.append('\n');
message.append(context.getString(R.string.ingredients), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
message.append(item.ingredients);
message.append('\n');
message.append(context.getString(R.string.nutrients), new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
for (PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem.Nutrient nutrient : item.nutrients) {
message.append('\n');
message.append("" + nutrient.name + ": ", new StyleSpan(Typeface.BOLD), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
message.append(nutrient.value);
}
// Show
new MaterialAlertDialogBuilder(context)
.setTitle(item.name)
.setMessage(message)
.setPositiveButton(R.string.ok, (dialog, which) -> {})
.show();
}
}

View File

@ -12,6 +12,8 @@ import com.google.android.material.textfield.TextInputLayout;
import com.thebrokenrail.mtudining.R;
import com.thebrokenrail.mtudining.activity.task.Task;
import com.thebrokenrail.mtudining.activity.task.TaskAdapter;
import com.thebrokenrail.mtudining.api.method.PeriodDetail;
import com.thebrokenrail.mtudining.util.Category;
import com.thebrokenrail.mtudining.util.DateUtil;
import com.thebrokenrail.mtudining.widget.CategoryView;
import com.thebrokenrail.mtudining.widget.CustomDropDownView;
@ -56,21 +58,17 @@ class MenuAdapter extends TaskAdapter<MenuData> {
protected void bindItemView(View view, int position) {
MenuData.Meal meal = getMeal();
assert meal != null;
MenuData.Meal.Category data = meal.categories.get(position - getFirstElementPosition());
Category<PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem> data = meal.categories.get(position - getFirstElementPosition());
// Setup View
CategoryView category = (CategoryView) view;
category.setup(data.isOpen, data.name, () -> {
category.setup(data, () -> {
// Open/Close Category
data.isOpen = !data.isOpen;
notifyItemChanged(meal.categories.indexOf(data) + getFirstElementPosition());
}, item -> {
// Show Dialog
ItemDialog.show(view.getContext(), item);
});
// Add Locations
category.clearItems();
for (MenuData.Meal.Category.Element item : data.items) {
category.addItem(item.name, () -> {
// Do Something!
});
}
}
@Override

View File

@ -1,33 +1,16 @@
package com.thebrokenrail.mtudining.activity.menu;
import com.thebrokenrail.mtudining.api.method.PeriodDetail;
import com.thebrokenrail.mtudining.util.Category;
import java.util.ArrayList;
import java.util.List;
class MenuData {
public static class Meal {
public static class Category {
public static class Element {
public final String name;
public final String description;
public Element(String name, String description) {
this.name = name;
this.description = description;
}
}
public final String name;
public boolean isOpen = true;
public final List<Element> items = new ArrayList<>();
public Category(String name) {
this.name = name;
}
}
public final String id;
public final String name;
public final List<Category> categories = new ArrayList<>();
public final List<Category<PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem>> categories = new ArrayList<>();
public Meal(String id, String name) {
this.id = id;

View File

@ -4,6 +4,7 @@ import com.thebrokenrail.mtudining.activity.task.Task;
import com.thebrokenrail.mtudining.api.Connection;
import com.thebrokenrail.mtudining.api.method.PeriodDetail;
import com.thebrokenrail.mtudining.api.method.Periods;
import com.thebrokenrail.mtudining.util.Category;
import com.thebrokenrail.mtudining.util.Constants;
import java.util.Comparator;
@ -77,15 +78,13 @@ public class MenuTask extends Task<MenuData> {
// Add Data
for (PeriodDetail.Response.Menu.PeriodData.MenuCategory category : periodDetailResponse.menu.periods.categories) {
MenuData.Meal.Category menuCategory = new MenuData.Meal.Category(category.name);
Category<PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem> menuCategory = new Category<>(category.name);
// Sort Items
category.items.sort(Comparator.comparingInt(a -> a.sort_order));
// Add Items To Category
for (PeriodDetail.Response.Menu.PeriodData.MenuCategory.MenuItem item : category.items) {
menuCategory.items.add(new MenuData.Meal.Category.Element(item.name, item.desc));
}
menuCategory.items.addAll(category.items);
// Skip Empty Category
if (menuCategory.items.size() > 0) {

View File

@ -51,7 +51,7 @@ public abstract class Task<E> {
*/
protected void done(long id, E obj) {
// Check ID
if (id != lastStart) {
if (lastStart == null || id != lastStart) {
// Ignore
return;
}

View File

@ -202,7 +202,7 @@ public abstract class TaskAdapter<E> extends RecyclerView.Adapter<RecyclerView.V
*/
protected void reloadUI(int oldItemCount) {
// Reload Header Without Animation
notifyItemChanged(0, new Object());
notifyItemChanged(0, new Object()); // https://stackoverflow.com/a/45590003
// Remove Existing Items
notifyItemRangeRemoved(1, oldItemCount - 1);
// Add Items

View File

@ -10,6 +10,7 @@ import com.squareup.moshi.Moshi;
import com.thebrokenrail.mtudining.util.Constants;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
import okhttp3.Call;
@ -23,7 +24,15 @@ public class Connection {
/**
* HTTP Client
*/
private final OkHttpClient client = new OkHttpClient();
private final OkHttpClient client;
public Connection() {
client = new OkHttpClient.Builder()
.connectTimeout(Constants.TIMEOUT, TimeUnit.SECONDS)
.readTimeout(Constants.TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(Constants.TIMEOUT, TimeUnit.SECONDS)
.build();
}
/**
* Link to main thread.

View File

@ -1,6 +1,7 @@
package com.thebrokenrail.mtudining.api.method;
import com.thebrokenrail.mtudining.api.Method;
import com.thebrokenrail.mtudining.util.Category;
import java.util.List;
@ -38,10 +39,15 @@ public class AllLocations implements Method<AllLocations.Response> {
public List<Location> locations;
}
public List<Building> buildings;
public static class Location {
public static class Location implements Category.Named {
public String id;
public String name;
public boolean active;
@Override
public String getName() {
return name;
}
}
public List<Location> locations;
}

View File

@ -1,6 +1,7 @@
package com.thebrokenrail.mtudining.api.method;
import com.thebrokenrail.mtudining.api.Method;
import com.thebrokenrail.mtudining.util.Category;
import com.thebrokenrail.mtudining.util.DateUtil;
import java.util.Date;
@ -33,10 +34,23 @@ public class PeriodDetail implements Method<PeriodDetail.Response> {
public static class Menu {
public static class PeriodData {
public static class MenuCategory {
public static class MenuItem {
public static class MenuItem implements Category.Named {
public static class Nutrient {
public String name;
public String value;
}
public String name;
public String desc;
public String ingredients;
public String portion;
public List<Nutrient> nutrients;
public int sort_order;
@Override
public String getName() {
return name;
}
}
public String name;
public List<MenuItem> items;

View File

@ -0,0 +1,30 @@
package com.thebrokenrail.mtudining.util;
import java.util.ArrayList;
import java.util.List;
/**
* Simple class representing a category.
*/
public class Category<T extends Category.Named> {
public Category(String name) {
this.name = name;
}
public interface Named {
String getName();
}
/**
* Category name.
*/
public final String name;
/**
* If category is open.
*/
public boolean isOpen = true;
/**
* Category items.
*/
public final List<T> items = new ArrayList<>();
}

View File

@ -4,4 +4,5 @@ public class Constants {
public final static String API_BASE = "https://api.dineoncampus.com/v1";
public final static String SITE_NAME = "MTU";
public final static int PLATFORM = 0;
public final static int TIMEOUT = 30; // Seconds
}

View File

@ -13,6 +13,9 @@ import androidx.appcompat.widget.AppCompatTextView;
import com.google.android.material.card.MaterialCardView;
import com.thebrokenrail.mtudining.R;
import com.thebrokenrail.mtudining.util.Category;
import java.util.function.Consumer;
/**
* Widget that shows a category of items.
@ -64,21 +67,26 @@ public class CategoryView extends FrameLayout {
/**
* Setup widget.
* @param isOpen If category is open
* @param titleText The category's title
* @param category The category
* @param onClickTitle Callback when clicking on title
* @param onClickItem Callback when clicking on an item
*/
public void setup(boolean isOpen, String titleText, Runnable onClickTitle) {
titleText = (isOpen ? "" : "") + " " + titleText;
public <T extends Category.Named> void setup(Category<T> category, Runnable onClickTitle, Consumer<T> onClickItem) {
String titleText = (category.isOpen ? "" : "") + " " + category.name;
title.setText(titleText);
card.setVisibility(isOpen ? VISIBLE : GONE);
card.setVisibility(category.isOpen ? VISIBLE : GONE);
title.setOnClickListener(v -> onClickTitle.run());
// Add Items
clearItems();
for (T item : category.items) {
addItem(item.getName(), () -> onClickItem.accept(item));
}
}
/**
* Clear category.
*/
public void clearItems() {
private void clearItems() {
children.removeAllViews();
}
@ -87,7 +95,7 @@ public class CategoryView extends FrameLayout {
* @param name Item name
* @param onClick Click handler
*/
public void addItem(String name, Runnable onClick) {
private void addItem(String name, Runnable onClick) {
AppCompatTextView item = new AppCompatTextView(getContext());
// Text
item.setText(name);

View File

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,4h-1V2h-2v2H8V2H6v2H5C3.89,4 3.01,4.9 3.01,6L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V6C21,4.9 20.1,4 19,4zM19,20H5V10h14V20zM9,14H7v-2h2V14zM13,14h-2v-2h2V14zM17,14h-2v-2h2V14zM9,18H7v-2h2V18zM13,18h-2v-2h2V18zM17,18h-2v-2h2V18z"/>
</vector>

View File

@ -3,17 +3,19 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical">
android:orientation="horizontal"
android:padding="@dimen/margin">
<!-- Date -->
<com.thebrokenrail.mtudining.widget.CustomDropDownView
android:id="@+id/menu_date_field"
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin"
android:layout_weight="1"
android:hint="@string/date"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
app:endIconMode="none">
app:endIconMode="custom"
app:endIconDrawable="@drawable/baseline_calendar_month_24">
<com.google.android.material.textfield.MaterialAutoCompleteTextView
android:id="@+id/menu_date"
@ -23,14 +25,17 @@
</com.thebrokenrail.mtudining.widget.CustomDropDownView>
<!-- Padding -->
<View
android:layout_width="@dimen/margin"
android:layout_height="0dp" />
<!-- Meal -->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/menu_meal_field"
android:layout_width="match_parent"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin"
android:layout_marginStart="@dimen/margin"
android:layout_marginEnd="@dimen/margin"
android:layout_weight="1"
android:hint="@string/meal"
style="@style/Widget.Material3.TextInputLayout.OutlinedBox.ExposedDropdownMenu">

View File

@ -1,145 +1,145 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Material Design -->
<color name="md_theme_primary">#E0C56D</color>
<color name="md_theme_onPrimary">#3C2F00</color>
<color name="md_theme_primaryContainer">#564500</color>
<color name="md_theme_onPrimaryContainer">#FDE186</color>
<color name="md_theme_secondary">#E0C56D</color>
<color name="md_theme_onSecondary">#3C2F00</color>
<color name="md_theme_secondaryContainer">#564500</color>
<color name="md_theme_onSecondaryContainer">#FDE186</color>
<color name="md_theme_tertiary">#E0C56D</color>
<color name="md_theme_onTertiary">#3C2F00</color>
<color name="md_theme_tertiaryContainer">#564500</color>
<color name="md_theme_onTertiaryContainer">#FDE186</color>
<color name="md_theme_primary">#E2C46D</color>
<color name="md_theme_onPrimary">#3D2F00</color>
<color name="md_theme_primaryContainer">#574500</color>
<color name="md_theme_onPrimaryContainer">#FFE089</color>
<color name="md_theme_secondary">#E2C46D</color>
<color name="md_theme_onSecondary">#3D2F00</color>
<color name="md_theme_secondaryContainer">#574500</color>
<color name="md_theme_onSecondaryContainer">#FFE089</color>
<color name="md_theme_tertiary">#E2C46D</color>
<color name="md_theme_onTertiary">#3D2F00</color>
<color name="md_theme_tertiaryContainer">#574500</color>
<color name="md_theme_onTertiaryContainer">#FFE089</color>
<color name="md_theme_error">#FFB4AB</color>
<color name="md_theme_onError">#690005</color>
<color name="md_theme_errorContainer">#93000A</color>
<color name="md_theme_onErrorContainer">#FFDAD6</color>
<color name="md_theme_background">#16130B</color>
<color name="md_theme_onBackground">#E9E2D4</color>
<color name="md_theme_onBackground">#EAE1D4</color>
<color name="md_theme_surface">#16130B</color>
<color name="md_theme_onSurface">#E9E2D4</color>
<color name="md_theme_onSurface">#EAE1D4</color>
<color name="md_theme_surfaceVariant">#4C4639</color>
<color name="md_theme_onSurfaceVariant">#CEC6B4</color>
<color name="md_theme_outline">#979080</color>
<color name="md_theme_onSurfaceVariant">#CFC6B4</color>
<color name="md_theme_outline">#989080</color>
<color name="md_theme_outlineVariant">#4C4639</color>
<color name="md_theme_scrim">#000000</color>
<color name="md_theme_inverseSurface">#E9E2D4</color>
<color name="md_theme_inverseSurface">#EAE1D4</color>
<color name="md_theme_inverseOnSurface">#343027</color>
<color name="md_theme_inversePrimary">#715C0D</color>
<color name="md_theme_primaryFixed">#FDE186</color>
<color name="md_theme_onPrimaryFixed">#231B00</color>
<color name="md_theme_primaryFixedDim">#E0C56D</color>
<color name="md_theme_onPrimaryFixedVariant">#564500</color>
<color name="md_theme_secondaryFixed">#FDE186</color>
<color name="md_theme_onSecondaryFixed">#231B00</color>
<color name="md_theme_secondaryFixedDim">#E0C56D</color>
<color name="md_theme_onSecondaryFixedVariant">#564500</color>
<color name="md_theme_tertiaryFixed">#FDE186</color>
<color name="md_theme_onTertiaryFixed">#231B00</color>
<color name="md_theme_tertiaryFixedDim">#E0C56D</color>
<color name="md_theme_onTertiaryFixedVariant">#564500</color>
<color name="md_theme_inversePrimary">#725C0C</color>
<color name="md_theme_primaryFixed">#FFE089</color>
<color name="md_theme_onPrimaryFixed">#241A00</color>
<color name="md_theme_primaryFixedDim">#E2C46D</color>
<color name="md_theme_onPrimaryFixedVariant">#574500</color>
<color name="md_theme_secondaryFixed">#FFE089</color>
<color name="md_theme_onSecondaryFixed">#241A00</color>
<color name="md_theme_secondaryFixedDim">#E2C46D</color>
<color name="md_theme_onSecondaryFixedVariant">#574500</color>
<color name="md_theme_tertiaryFixed">#FFE089</color>
<color name="md_theme_onTertiaryFixed">#241A00</color>
<color name="md_theme_tertiaryFixedDim">#E2C46D</color>
<color name="md_theme_onTertiaryFixedVariant">#574500</color>
<color name="md_theme_surfaceDim">#16130B</color>
<color name="md_theme_surfaceBright">#3D392F</color>
<color name="md_theme_surfaceContainerLowest">#110E07</color>
<color name="md_theme_surfaceContainerLow">#1E1B13</color>
<color name="md_theme_surfaceContainer">#221F17</color>
<color name="md_theme_surfaceContainerLow">#1F1B13</color>
<color name="md_theme_surfaceContainer">#231F17</color>
<color name="md_theme_surfaceContainerHigh">#2D2A21</color>
<color name="md_theme_surfaceContainerHighest">#38342B</color>
<color name="md_theme_primary_mediumContrast">#E4C971</color>
<color name="md_theme_onPrimary_mediumContrast">#1D1600</color>
<color name="md_theme_primaryContainer_mediumContrast">#A78F3D</color>
<color name="md_theme_primary_mediumContrast">#E7C870</color>
<color name="md_theme_onPrimary_mediumContrast">#1D1500</color>
<color name="md_theme_primaryContainer_mediumContrast">#A98E3D</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#000000</color>
<color name="md_theme_secondary_mediumContrast">#E4C971</color>
<color name="md_theme_onSecondary_mediumContrast">#1D1600</color>
<color name="md_theme_secondaryContainer_mediumContrast">#A78F3D</color>
<color name="md_theme_secondary_mediumContrast">#E7C870</color>
<color name="md_theme_onSecondary_mediumContrast">#1D1500</color>
<color name="md_theme_secondaryContainer_mediumContrast">#A98E3D</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#000000</color>
<color name="md_theme_tertiary_mediumContrast">#E4C971</color>
<color name="md_theme_onTertiary_mediumContrast">#1D1600</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#A78F3D</color>
<color name="md_theme_tertiary_mediumContrast">#E7C870</color>
<color name="md_theme_onTertiary_mediumContrast">#1D1500</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#A98E3D</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#000000</color>
<color name="md_theme_error_mediumContrast">#FFBAB1</color>
<color name="md_theme_onError_mediumContrast">#370001</color>
<color name="md_theme_errorContainer_mediumContrast">#FF5449</color>
<color name="md_theme_onErrorContainer_mediumContrast">#000000</color>
<color name="md_theme_background_mediumContrast">#16130B</color>
<color name="md_theme_onBackground_mediumContrast">#E9E2D4</color>
<color name="md_theme_onBackground_mediumContrast">#EAE1D4</color>
<color name="md_theme_surface_mediumContrast">#16130B</color>
<color name="md_theme_onSurface_mediumContrast">#FFFAF6</color>
<color name="md_theme_surfaceVariant_mediumContrast">#4C4639</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#D2CAB8</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#D3CAB8</color>
<color name="md_theme_outline_mediumContrast">#AAA291</color>
<color name="md_theme_outlineVariant_mediumContrast">#898373</color>
<color name="md_theme_outlineVariant_mediumContrast">#8A8273</color>
<color name="md_theme_scrim_mediumContrast">#000000</color>
<color name="md_theme_inverseSurface_mediumContrast">#E9E2D4</color>
<color name="md_theme_inverseSurface_mediumContrast">#EAE1D4</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#2D2A21</color>
<color name="md_theme_inversePrimary_mediumContrast">#574600</color>
<color name="md_theme_primaryFixed_mediumContrast">#FDE186</color>
<color name="md_theme_inversePrimary_mediumContrast">#594600</color>
<color name="md_theme_primaryFixed_mediumContrast">#FFE089</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#171000</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#E0C56D</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#423500</color>
<color name="md_theme_secondaryFixed_mediumContrast">#FDE186</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#E2C46D</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#433400</color>
<color name="md_theme_secondaryFixed_mediumContrast">#FFE089</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#171000</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#E0C56D</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#423500</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#FDE186</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#E2C46D</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#433400</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#FFE089</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#171000</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#E0C56D</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#423500</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#E2C46D</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#433400</color>
<color name="md_theme_surfaceDim_mediumContrast">#16130B</color>
<color name="md_theme_surfaceBright_mediumContrast">#3D392F</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#110E07</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#1E1B13</color>
<color name="md_theme_surfaceContainer_mediumContrast">#221F17</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#1F1B13</color>
<color name="md_theme_surfaceContainer_mediumContrast">#231F17</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#2D2A21</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#38342B</color>
<color name="md_theme_primary_highContrast">#FFFAF6</color>
<color name="md_theme_onPrimary_highContrast">#000000</color>
<color name="md_theme_primaryContainer_highContrast">#E4C971</color>
<color name="md_theme_primaryContainer_highContrast">#E7C870</color>
<color name="md_theme_onPrimaryContainer_highContrast">#000000</color>
<color name="md_theme_secondary_highContrast">#FFFAF6</color>
<color name="md_theme_onSecondary_highContrast">#000000</color>
<color name="md_theme_secondaryContainer_highContrast">#E4C971</color>
<color name="md_theme_secondaryContainer_highContrast">#E7C870</color>
<color name="md_theme_onSecondaryContainer_highContrast">#000000</color>
<color name="md_theme_tertiary_highContrast">#FFFAF6</color>
<color name="md_theme_onTertiary_highContrast">#000000</color>
<color name="md_theme_tertiaryContainer_highContrast">#E4C971</color>
<color name="md_theme_tertiaryContainer_highContrast">#E7C870</color>
<color name="md_theme_onTertiaryContainer_highContrast">#000000</color>
<color name="md_theme_error_highContrast">#FFF9F9</color>
<color name="md_theme_onError_highContrast">#000000</color>
<color name="md_theme_errorContainer_highContrast">#FFBAB1</color>
<color name="md_theme_onErrorContainer_highContrast">#000000</color>
<color name="md_theme_background_highContrast">#16130B</color>
<color name="md_theme_onBackground_highContrast">#E9E2D4</color>
<color name="md_theme_onBackground_highContrast">#EAE1D4</color>
<color name="md_theme_surface_highContrast">#16130B</color>
<color name="md_theme_onSurface_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceVariant_highContrast">#4C4639</color>
<color name="md_theme_onSurfaceVariant_highContrast">#FFFAF6</color>
<color name="md_theme_outline_highContrast">#D2CAB8</color>
<color name="md_theme_outlineVariant_highContrast">#D2CAB8</color>
<color name="md_theme_outline_highContrast">#D3CAB8</color>
<color name="md_theme_outlineVariant_highContrast">#D3CAB8</color>
<color name="md_theme_scrim_highContrast">#000000</color>
<color name="md_theme_inverseSurface_highContrast">#E9E2D4</color>
<color name="md_theme_inverseSurface_highContrast">#EAE1D4</color>
<color name="md_theme_inverseOnSurface_highContrast">#000000</color>
<color name="md_theme_inversePrimary_highContrast">#342900</color>
<color name="md_theme_primaryFixed_highContrast">#FFE597</color>
<color name="md_theme_inversePrimary_highContrast">#352900</color>
<color name="md_theme_primaryFixed_highContrast">#FFE59E</color>
<color name="md_theme_onPrimaryFixed_highContrast">#000000</color>
<color name="md_theme_primaryFixedDim_highContrast">#E4C971</color>
<color name="md_theme_onPrimaryFixedVariant_highContrast">#1D1600</color>
<color name="md_theme_secondaryFixed_highContrast">#FFE597</color>
<color name="md_theme_primaryFixedDim_highContrast">#E7C870</color>
<color name="md_theme_onPrimaryFixedVariant_highContrast">#1D1500</color>
<color name="md_theme_secondaryFixed_highContrast">#FFE59E</color>
<color name="md_theme_onSecondaryFixed_highContrast">#000000</color>
<color name="md_theme_secondaryFixedDim_highContrast">#E4C971</color>
<color name="md_theme_onSecondaryFixedVariant_highContrast">#1D1600</color>
<color name="md_theme_tertiaryFixed_highContrast">#FFE597</color>
<color name="md_theme_secondaryFixedDim_highContrast">#E7C870</color>
<color name="md_theme_onSecondaryFixedVariant_highContrast">#1D1500</color>
<color name="md_theme_tertiaryFixed_highContrast">#FFE59E</color>
<color name="md_theme_onTertiaryFixed_highContrast">#000000</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#E4C971</color>
<color name="md_theme_onTertiaryFixedVariant_highContrast">#1D1600</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#E7C870</color>
<color name="md_theme_onTertiaryFixedVariant_highContrast">#1D1500</color>
<color name="md_theme_surfaceDim_highContrast">#16130B</color>
<color name="md_theme_surfaceBright_highContrast">#3D392F</color>
<color name="md_theme_surfaceContainerLowest_highContrast">#110E07</color>
<color name="md_theme_surfaceContainerLow_highContrast">#1E1B13</color>
<color name="md_theme_surfaceContainer_highContrast">#221F17</color>
<color name="md_theme_surfaceContainerLow_highContrast">#1F1B13</color>
<color name="md_theme_surfaceContainer_highContrast">#231F17</color>
<color name="md_theme_surfaceContainerHigh_highContrast">#2D2A21</color>
<color name="md_theme_surfaceContainerHighest_highContrast">#38342B</color>
</resources>

View File

@ -3,145 +3,145 @@
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<!-- Material Design -->
<color name="md_theme_primary">#715C0D</color>
<color name="md_theme_primary">#725C0C</color>
<color name="md_theme_onPrimary">#FFFFFF</color>
<color name="md_theme_primaryContainer">#FDE186</color>
<color name="md_theme_onPrimaryContainer">#231B00</color>
<color name="md_theme_secondary">#715C0D</color>
<color name="md_theme_primaryContainer">#FFE089</color>
<color name="md_theme_onPrimaryContainer">#241A00</color>
<color name="md_theme_secondary">#725C0C</color>
<color name="md_theme_onSecondary">#FFFFFF</color>
<color name="md_theme_secondaryContainer">#FDE186</color>
<color name="md_theme_onSecondaryContainer">#231B00</color>
<color name="md_theme_tertiary">#715C0D</color>
<color name="md_theme_secondaryContainer">#FFE089</color>
<color name="md_theme_onSecondaryContainer">#241A00</color>
<color name="md_theme_tertiary">#725C0C</color>
<color name="md_theme_onTertiary">#FFFFFF</color>
<color name="md_theme_tertiaryContainer">#FDE186</color>
<color name="md_theme_onTertiaryContainer">#231B00</color>
<color name="md_theme_tertiaryContainer">#FFE089</color>
<color name="md_theme_onTertiaryContainer">#241A00</color>
<color name="md_theme_error">#BA1A1A</color>
<color name="md_theme_onError">#FFFFFF</color>
<color name="md_theme_errorContainer">#FFDAD6</color>
<color name="md_theme_onErrorContainer">#410002</color>
<color name="md_theme_background">#FFF8F0</color>
<color name="md_theme_onBackground">#1E1B13</color>
<color name="md_theme_onBackground">#1F1B13</color>
<color name="md_theme_surface">#FFF8F0</color>
<color name="md_theme_onSurface">#1E1B13</color>
<color name="md_theme_surfaceVariant">#EBE2CF</color>
<color name="md_theme_onSurface">#1F1B13</color>
<color name="md_theme_surfaceVariant">#EBE1CF</color>
<color name="md_theme_onSurfaceVariant">#4C4639</color>
<color name="md_theme_outline">#7D7767</color>
<color name="md_theme_outlineVariant">#CEC6B4</color>
<color name="md_theme_outline">#7D7667</color>
<color name="md_theme_outlineVariant">#CFC6B4</color>
<color name="md_theme_scrim">#000000</color>
<color name="md_theme_inverseSurface">#343027</color>
<color name="md_theme_inverseOnSurface">#F8F0E2</color>
<color name="md_theme_inversePrimary">#E0C56D</color>
<color name="md_theme_primaryFixed">#FDE186</color>
<color name="md_theme_onPrimaryFixed">#231B00</color>
<color name="md_theme_primaryFixedDim">#E0C56D</color>
<color name="md_theme_onPrimaryFixedVariant">#564500</color>
<color name="md_theme_secondaryFixed">#FDE186</color>
<color name="md_theme_onSecondaryFixed">#231B00</color>
<color name="md_theme_secondaryFixedDim">#E0C56D</color>
<color name="md_theme_onSecondaryFixedVariant">#564500</color>
<color name="md_theme_tertiaryFixed">#FDE186</color>
<color name="md_theme_onTertiaryFixed">#231B00</color>
<color name="md_theme_tertiaryFixedDim">#E0C56D</color>
<color name="md_theme_onTertiaryFixedVariant">#564500</color>
<color name="md_theme_inversePrimary">#E2C46D</color>
<color name="md_theme_primaryFixed">#FFE089</color>
<color name="md_theme_onPrimaryFixed">#241A00</color>
<color name="md_theme_primaryFixedDim">#E2C46D</color>
<color name="md_theme_onPrimaryFixedVariant">#574500</color>
<color name="md_theme_secondaryFixed">#FFE089</color>
<color name="md_theme_onSecondaryFixed">#241A00</color>
<color name="md_theme_secondaryFixedDim">#E2C46D</color>
<color name="md_theme_onSecondaryFixedVariant">#574500</color>
<color name="md_theme_tertiaryFixed">#FFE089</color>
<color name="md_theme_onTertiaryFixed">#241A00</color>
<color name="md_theme_tertiaryFixedDim">#E2C46D</color>
<color name="md_theme_onTertiaryFixedVariant">#574500</color>
<color name="md_theme_surfaceDim">#E1D9CC</color>
<color name="md_theme_surfaceBright">#FFF8F0</color>
<color name="md_theme_surfaceContainerLowest">#FFFFFF</color>
<color name="md_theme_surfaceContainerLow">#FBF3E5</color>
<color name="md_theme_surfaceContainer">#F5EDDF</color>
<color name="md_theme_surfaceContainerHigh">#EFE7DA</color>
<color name="md_theme_surfaceContainerHighest">#E9E2D4</color>
<color name="md_theme_primary_mediumContrast">#514100</color>
<color name="md_theme_surfaceContainerHigh">#EFE7D9</color>
<color name="md_theme_surfaceContainerHighest">#EAE1D4</color>
<color name="md_theme_primary_mediumContrast">#534100</color>
<color name="md_theme_onPrimary_mediumContrast">#FFFFFF</color>
<color name="md_theme_primaryContainer_mediumContrast">#897324</color>
<color name="md_theme_primaryContainer_mediumContrast">#8A7223</color>
<color name="md_theme_onPrimaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondary_mediumContrast">#514100</color>
<color name="md_theme_secondary_mediumContrast">#534100</color>
<color name="md_theme_onSecondary_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryContainer_mediumContrast">#897324</color>
<color name="md_theme_secondaryContainer_mediumContrast">#8A7223</color>
<color name="md_theme_onSecondaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiary_mediumContrast">#514100</color>
<color name="md_theme_tertiary_mediumContrast">#534100</color>
<color name="md_theme_onTertiary_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#897324</color>
<color name="md_theme_tertiaryContainer_mediumContrast">#8A7223</color>
<color name="md_theme_onTertiaryContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_error_mediumContrast">#8C0009</color>
<color name="md_theme_onError_mediumContrast">#FFFFFF</color>
<color name="md_theme_errorContainer_mediumContrast">#DA342E</color>
<color name="md_theme_onErrorContainer_mediumContrast">#FFFFFF</color>
<color name="md_theme_background_mediumContrast">#FFF8F0</color>
<color name="md_theme_onBackground_mediumContrast">#1E1B13</color>
<color name="md_theme_onBackground_mediumContrast">#1F1B13</color>
<color name="md_theme_surface_mediumContrast">#FFF8F0</color>
<color name="md_theme_onSurface_mediumContrast">#1E1B13</color>
<color name="md_theme_surfaceVariant_mediumContrast">#EBE2CF</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#474235</color>
<color name="md_theme_outline_mediumContrast">#645F50</color>
<color name="md_theme_onSurface_mediumContrast">#1F1B13</color>
<color name="md_theme_surfaceVariant_mediumContrast">#EBE1CF</color>
<color name="md_theme_onSurfaceVariant_mediumContrast">#484235</color>
<color name="md_theme_outline_mediumContrast">#655E50</color>
<color name="md_theme_outlineVariant_mediumContrast">#817A6B</color>
<color name="md_theme_scrim_mediumContrast">#000000</color>
<color name="md_theme_inverseSurface_mediumContrast">#343027</color>
<color name="md_theme_inverseOnSurface_mediumContrast">#F8F0E2</color>
<color name="md_theme_inversePrimary_mediumContrast">#E0C56D</color>
<color name="md_theme_primaryFixed_mediumContrast">#897324</color>
<color name="md_theme_inversePrimary_mediumContrast">#E2C46D</color>
<color name="md_theme_primaryFixed_mediumContrast">#8A7223</color>
<color name="md_theme_onPrimaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#6E5A09</color>
<color name="md_theme_primaryFixedDim_mediumContrast">#705909</color>
<color name="md_theme_onPrimaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixed_mediumContrast">#897324</color>
<color name="md_theme_secondaryFixed_mediumContrast">#8A7223</color>
<color name="md_theme_onSecondaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#6E5A09</color>
<color name="md_theme_secondaryFixedDim_mediumContrast">#705909</color>
<color name="md_theme_onSecondaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#897324</color>
<color name="md_theme_tertiaryFixed_mediumContrast">#8A7223</color>
<color name="md_theme_onTertiaryFixed_mediumContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#6E5A09</color>
<color name="md_theme_tertiaryFixedDim_mediumContrast">#705909</color>
<color name="md_theme_onTertiaryFixedVariant_mediumContrast">#FFFFFF</color>
<color name="md_theme_surfaceDim_mediumContrast">#E1D9CC</color>
<color name="md_theme_surfaceBright_mediumContrast">#FFF8F0</color>
<color name="md_theme_surfaceContainerLowest_mediumContrast">#FFFFFF</color>
<color name="md_theme_surfaceContainerLow_mediumContrast">#FBF3E5</color>
<color name="md_theme_surfaceContainer_mediumContrast">#F5EDDF</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#EFE7DA</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#E9E2D4</color>
<color name="md_theme_primary_highContrast">#2B2100</color>
<color name="md_theme_surfaceContainerHigh_mediumContrast">#EFE7D9</color>
<color name="md_theme_surfaceContainerHighest_mediumContrast">#EAE1D4</color>
<color name="md_theme_primary_highContrast">#2C2100</color>
<color name="md_theme_onPrimary_highContrast">#FFFFFF</color>
<color name="md_theme_primaryContainer_highContrast">#514100</color>
<color name="md_theme_primaryContainer_highContrast">#534100</color>
<color name="md_theme_onPrimaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_secondary_highContrast">#2B2100</color>
<color name="md_theme_secondary_highContrast">#2C2100</color>
<color name="md_theme_onSecondary_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryContainer_highContrast">#514100</color>
<color name="md_theme_secondaryContainer_highContrast">#534100</color>
<color name="md_theme_onSecondaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_tertiary_highContrast">#2B2100</color>
<color name="md_theme_tertiary_highContrast">#2C2100</color>
<color name="md_theme_onTertiary_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryContainer_highContrast">#514100</color>
<color name="md_theme_tertiaryContainer_highContrast">#534100</color>
<color name="md_theme_onTertiaryContainer_highContrast">#FFFFFF</color>
<color name="md_theme_error_highContrast">#4E0002</color>
<color name="md_theme_onError_highContrast">#FFFFFF</color>
<color name="md_theme_errorContainer_highContrast">#8C0009</color>
<color name="md_theme_onErrorContainer_highContrast">#FFFFFF</color>
<color name="md_theme_background_highContrast">#FFF8F0</color>
<color name="md_theme_onBackground_highContrast">#1E1B13</color>
<color name="md_theme_onBackground_highContrast">#1F1B13</color>
<color name="md_theme_surface_highContrast">#FFF8F0</color>
<color name="md_theme_onSurface_highContrast">#000000</color>
<color name="md_theme_surfaceVariant_highContrast">#EBE2CF</color>
<color name="md_theme_onSurfaceVariant_highContrast">#282418</color>
<color name="md_theme_outline_highContrast">#474235</color>
<color name="md_theme_outlineVariant_highContrast">#474235</color>
<color name="md_theme_surfaceVariant_highContrast">#EBE1CF</color>
<color name="md_theme_onSurfaceVariant_highContrast">#282318</color>
<color name="md_theme_outline_highContrast">#484235</color>
<color name="md_theme_outlineVariant_highContrast">#484235</color>
<color name="md_theme_scrim_highContrast">#000000</color>
<color name="md_theme_inverseSurface_highContrast">#343027</color>
<color name="md_theme_inverseOnSurface_highContrast">#FFFFFF</color>
<color name="md_theme_inversePrimary_highContrast">#FFEBB2</color>
<color name="md_theme_primaryFixed_highContrast">#514100</color>
<color name="md_theme_inversePrimary_highContrast">#FFEAB7</color>
<color name="md_theme_primaryFixed_highContrast">#534100</color>
<color name="md_theme_onPrimaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_primaryFixedDim_highContrast">#372B00</color>
<color name="md_theme_primaryFixedDim_highContrast">#382B00</color>
<color name="md_theme_onPrimaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixed_highContrast">#514100</color>
<color name="md_theme_secondaryFixed_highContrast">#534100</color>
<color name="md_theme_onSecondaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_secondaryFixedDim_highContrast">#372B00</color>
<color name="md_theme_secondaryFixedDim_highContrast">#382B00</color>
<color name="md_theme_onSecondaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixed_highContrast">#514100</color>
<color name="md_theme_tertiaryFixed_highContrast">#534100</color>
<color name="md_theme_onTertiaryFixed_highContrast">#FFFFFF</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#372B00</color>
<color name="md_theme_tertiaryFixedDim_highContrast">#382B00</color>
<color name="md_theme_onTertiaryFixedVariant_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceDim_highContrast">#E1D9CC</color>
<color name="md_theme_surfaceBright_highContrast">#FFF8F0</color>
<color name="md_theme_surfaceContainerLowest_highContrast">#FFFFFF</color>
<color name="md_theme_surfaceContainerLow_highContrast">#FBF3E5</color>
<color name="md_theme_surfaceContainer_highContrast">#F5EDDF</color>
<color name="md_theme_surfaceContainerHigh_highContrast">#EFE7DA</color>
<color name="md_theme_surfaceContainerHighest_highContrast">#E9E2D4</color>
<color name="md_theme_surfaceContainerHigh_highContrast">#EFE7D9</color>
<color name="md_theme_surfaceContainerHighest_highContrast">#EAE1D4</color>
</resources>

View File

@ -7,4 +7,8 @@
<string name="meal">Meal</string>
<string name="select_date">Select Date</string>
<string name="not_available">N/A</string>
<string name="ok">OK</string>
<string name="ingredients">Ingredients:\u0020</string>
<string name="portion">Portion:\u0020</string>
<string name="nutrients">Nutrients:</string>
</resources>