diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index b72ff7d..58aad1d 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -4,18 +4,18 @@ - + - + - - + + - - + + diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 192e47a..6f949a6 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -19,6 +19,8 @@ # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile + +# Needed For Deserialization -keepclassmembers class com.thebrokenrail.mtudining.api.method.** { *; } \ No newline at end of file diff --git a/app/src/main/java/com/thebrokenrail/mtudining/activity/list/ListViewModel.java b/app/src/main/java/com/thebrokenrail/mtudining/activity/list/ListViewModel.java index 100a897..5fa9c89 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/activity/list/ListViewModel.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/activity/list/ListViewModel.java @@ -9,6 +9,5 @@ import com.thebrokenrail.mtudining.api.Connection; * Data preserved between screen rotations for {@link ListActivity}. */ public class ListViewModel extends ViewModel { - private final Connection connection = new Connection(); - public final Task task = new ListTask(connection); + public final Task task = new ListTask(new Connection()); } diff --git a/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/ItemDialog.java b/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/ItemDialog.java index 8b3b424..ce6be28 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/ItemDialog.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/ItemDialog.java @@ -87,7 +87,7 @@ public class ItemDialog { message.append(item.ingredients); } writeNewline(message, 2); - if (item.nutrients.size() > 0) { + if (item.nutrients != null && item.nutrients.size() > 0) { 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) { writeBullet(message, nutrient.name, nutrient.value); diff --git a/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/MenuActivity.java b/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/MenuActivity.java index bd85872..172b3e3 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/MenuActivity.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/activity/menu/MenuActivity.java @@ -1,5 +1,6 @@ package com.thebrokenrail.mtudining.activity.menu; +import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -101,7 +102,11 @@ public class MenuActivity extends AppCompatActivity { } Uri gmmIntentUri = Uri.parse("geo:" + latitude + ',' + longitude + "?q=" + encodedStreet); Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); - startActivity(mapIntent); + try { + startActivity(mapIntent); + } catch (ActivityNotFoundException e) { + // Ignore + } return true; } else { return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/com/thebrokenrail/mtudining/api/Method.java b/app/src/main/java/com/thebrokenrail/mtudining/api/Method.java index 0330e23..4ef206c 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/api/Method.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/api/Method.java @@ -1,11 +1,16 @@ package com.thebrokenrail.mtudining.api; +/** + * Interface for a simple API call. + * @param The response type + */ public interface Method { /** * Get the API method's path. * @return The path */ String getPath(); + /** * Get the response class. Needed for deserialization. * @return The response class diff --git a/app/src/main/java/com/thebrokenrail/mtudining/api/method/AllLocations.java b/app/src/main/java/com/thebrokenrail/mtudining/api/method/AllLocations.java index 99400b2..ca6d403 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/api/method/AllLocations.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/api/method/AllLocations.java @@ -5,6 +5,9 @@ import com.thebrokenrail.mtudining.util.Category; import java.util.List; +/** + * API call used to list buildings and locations. + */ public class AllLocations implements Method { private final int platform; private final String siteId; diff --git a/app/src/main/java/com/thebrokenrail/mtudining/api/method/Info.java b/app/src/main/java/com/thebrokenrail/mtudining/api/method/Info.java index 6b55113..c56f38f 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/api/method/Info.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/api/method/Info.java @@ -3,6 +3,9 @@ package com.thebrokenrail.mtudining.api.method; import com.thebrokenrail.mtudining.api.Method; import com.thebrokenrail.mtudining.util.Constants; +/** + * API call used for getting the site ID from a site name. + */ public class Info implements Method { @Override public String getPath() { diff --git a/app/src/main/java/com/thebrokenrail/mtudining/api/method/PeriodDetail.java b/app/src/main/java/com/thebrokenrail/mtudining/api/method/PeriodDetail.java index 77765ba..738fb5d 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/api/method/PeriodDetail.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/api/method/PeriodDetail.java @@ -7,6 +7,9 @@ import com.thebrokenrail.mtudining.util.DateUtil; import java.util.Date; import java.util.List; +/** + * API call for retrieving the menu from a "period." + */ public class PeriodDetail implements Method { private final int platform; private final String locationId; diff --git a/app/src/main/java/com/thebrokenrail/mtudining/api/method/Periods.java b/app/src/main/java/com/thebrokenrail/mtudining/api/method/Periods.java index 60daf99..303110f 100644 --- a/app/src/main/java/com/thebrokenrail/mtudining/api/method/Periods.java +++ b/app/src/main/java/com/thebrokenrail/mtudining/api/method/Periods.java @@ -6,6 +6,9 @@ import com.thebrokenrail.mtudining.util.DateUtil; import java.util.Date; import java.util.List; +/** + * API call used to list available "periods" (Breakfast, Lunch, etc). + */ public class Periods implements Method { private final int platform; private final String locationId; diff --git a/app/src/main/res/layout/menu_header.xml b/app/src/main/res/layout/menu_header.xml index 730018a..cb62e23 100644 --- a/app/src/main/res/layout/menu_header.xml +++ b/app/src/main/res/layout/menu_header.xml @@ -4,6 +4,7 @@ android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="horizontal" + android:gravity="center_vertical" android:padding="@dimen/margin"> diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index ec937e8..453567a 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -1,7 +1,5 @@ - #FF000000 - #FFFFFFFF #725C0C #FFFFFF