package com.eugene.fithealthmaingit.UI.Recipe; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; import android.support.v7.widget.Toolbar; import android.text.InputType; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.CheckBox; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.Spinner; import android.widget.TextView; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogAdapterPrevention; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogMeal; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogRecipes.LogRecipeHolder; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogRecipes.LogRecipeHolderAdapter; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogRecipes.LogRecipeItems; import com.eugene.fithealthmaingit.FatSecretSearchAndGet.FatSecretGetMethod; import com.eugene.fithealthmaingit.R; import com.eugene.fithealthmaingit.Utilities.Globals; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Date; public class RecipeSaveSearchItemFragment extends Fragment { DecimalFormat df = new DecimalFormat("0.0"); DecimalFormat dfW = new DecimalFormat("0"); // Widgets private Toolbar mToolbar; private TextView mViewSevingSize; private TextView mServingg; private TextView mAmountPerServing; private TextView mServingSizeUpdated; private TextView mFoodCal; private TextView mCalUpdate; private TextView mViewFat1; private TextView mFattieUpdate; private TextView mViewSaturatedFat; private TextView mSaturatedFatUpdate; private TextView mViewCholesterol; private TextView mCholesterolUpdate; private TextView mViewSodium; private TextView mSodiumUpdate; private TextView mViewCarbs1; private TextView mCarbUpdate; private TextView mViewFiber; private TextView mFiberUpdate; private TextView mViewSugar; private TextView mSugarUpdate; private TextView mViewProtien1; private TextView mProUpdate; private TextView mViewVitA; private TextView mVitAUpdate; private TextView mViewVitC; private TextView mVitCUpdate; private TextView mViewCalcium; private TextView mCalciumUpdate; private TextView mViewIron; private TextView mIronUpdate; private ProgressBar mPbCal; private ProgressBar mPbFat; private ProgressBar mPbCarb; private ProgressBar mPbPro; private Spinner mSpnServings; private LinearLayout llVitA, llVitC, llCalcium, llIron, llCalories, llFat, llSat, llCholesterol, llSodium, llCarbs, llFiber, llSugars, llProtein; private View vVitA, vVitC, vCalcium, vIron, vFat, vSat, vCholesterol, vSodium, vCarbs, vFiber, vSugar, vPro; private CheckBox mCbFav; private LogAdapterPrevention mLogAdapterAll; // FatSecret method.get private FatSecretGetMethod mFatSecretGet; String arrayOrJson; // Inflate view private View v; String mealType, brand; String food_id; String food_brand; String meal_favorite; private ArrayList<String> mItem; ArrayAdapter<String> servingAdapter; SharedPreferences sharedPreferences; String recipe_id; @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { v = inflater.inflate(R.layout.fragment_add_search_item, container, false); sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); Bundle extras = getArguments(); if (extras != null) { brand = extras.getString(Globals.MEAL_BRAND); mealType = extras.getString(Globals.MEAL_TYPE); food_id = extras.getString("ID"); recipe_id = extras.getString("Recipe"); } findViewsById(); getFood(Integer.valueOf(food_id)); return v; } //Declare a int member variable and initialize to 0 (at the top of your class) private int mLastSpinnerPosition = 0; private void findViewsById() { mLogAdapterAll = new LogAdapterPrevention(getActivity(), 0, LogMeal.logsByDate(new Date())); mFatSecretGet = new FatSecretGetMethod(); // method.get mToolbar = (Toolbar) v.findViewById(R.id.toolbar); mViewSevingSize = (TextView) v.findViewById(R.id.viewSevingSize); mViewSevingSize.setVisibility(View.GONE); mServingg = (TextView) v.findViewById(R.id.servingg); mServingg.setText("1"); mAmountPerServing = (TextView) v.findViewById(R.id.amountPerServing); mServingSizeUpdated = (TextView) v.findViewById(R.id.servingSizeUpdated); mFoodCal = (TextView) v.findViewById(R.id.foodCal); mCalUpdate = (TextView) v.findViewById(R.id.calUpdate); mViewFat1 = (TextView) v.findViewById(R.id.viewFat1); mFattieUpdate = (TextView) v.findViewById(R.id.fattieUpdate); mViewSaturatedFat = (TextView) v.findViewById(R.id.viewSaturatedFat); mSaturatedFatUpdate = (TextView) v.findViewById(R.id.saturatedFatUpdate); mViewCholesterol = (TextView) v.findViewById(R.id.viewCholesterol); mCholesterolUpdate = (TextView) v.findViewById(R.id.cholesterolUpdate); mViewSodium = (TextView) v.findViewById(R.id.viewSodium); mSodiumUpdate = (TextView) v.findViewById(R.id.sodiumUpdate); mViewCarbs1 = (TextView) v.findViewById(R.id.viewCarbs1); mCarbUpdate = (TextView) v.findViewById(R.id.carbUpdate); mViewFiber = (TextView) v.findViewById(R.id.viewFiber); mFiberUpdate = (TextView) v.findViewById(R.id.fiberUpdate); mViewSugar = (TextView) v.findViewById(R.id.viewSugar); mSugarUpdate = (TextView) v.findViewById(R.id.sugarUpdate); mViewProtien1 = (TextView) v.findViewById(R.id.viewProtien1); mProUpdate = (TextView) v.findViewById(R.id.proUpdate); mViewVitA = (TextView) v.findViewById(R.id.viewVitA); mVitAUpdate = (TextView) v.findViewById(R.id.vitAUpdate); mViewVitC = (TextView) v.findViewById(R.id.viewVitC); mVitCUpdate = (TextView) v.findViewById(R.id.vitCUpdate); mViewCalcium = (TextView) v.findViewById(R.id.viewCalcium); mCalciumUpdate = (TextView) v.findViewById(R.id.calciumUpdate); mViewIron = (TextView) v.findViewById(R.id.viewIron); mIronUpdate = (TextView) v.findViewById(R.id.ironUpdate); mPbCal = (ProgressBar) v.findViewById(R.id.pbCal); mPbFat = (ProgressBar) v.findViewById(R.id.pbFat); mPbCarb = (ProgressBar) v.findViewById(R.id.pbCarb); mPbPro = (ProgressBar) v.findViewById(R.id.pbPro); mItem = new ArrayList<>(); servingAdapter = new ArrayAdapter<>(getActivity(), android.R.layout.simple_list_item_1, mItem); mSpnServings = (Spinner) v.findViewById(R.id.spnServings); mSpnServings.setVisibility(View.GONE); mSpnServings.setAdapter(servingAdapter); mSpnServings.setSelection(0, false); mSpnServings.post(new Runnable() { public void run() { mSpnServings.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int i, long id) { if (mLastSpinnerPosition == i) { // Prevent spinner from being called on start and reselection of the same item return; } mLastSpinnerPosition = i; getFood(Integer.valueOf(food_id)); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } }); llVitA = (LinearLayout) v.findViewById(R.id.llVitA); llVitC = (LinearLayout) v.findViewById(R.id.llVitC); llCalcium = (LinearLayout) v.findViewById(R.id.llCalcium); llIron = (LinearLayout) v.findViewById(R.id.llIron); llCalories = (LinearLayout) v.findViewById(R.id.llCalories); llFat = (LinearLayout) v.findViewById(R.id.llFat); llSat = (LinearLayout) v.findViewById(R.id.llSat); llCholesterol = (LinearLayout) v.findViewById(R.id.llCholesterol); llSodium = (LinearLayout) v.findViewById(R.id.llSodium); llCarbs = (LinearLayout) v.findViewById(R.id.llCarbs); llFiber = (LinearLayout) v.findViewById(R.id.llFiber); llSugars = (LinearLayout) v.findViewById(R.id.llSugars); llProtein = (LinearLayout) v.findViewById(R.id.llProtein); vVitA = v.findViewById(R.id.vVitA); vVitC = v.findViewById(R.id.vVitC); vCalcium = v.findViewById(R.id.vCalcium); vIron = v.findViewById(R.id.vIron); vFat = v.findViewById(R.id.vFat); vSat = v.findViewById(R.id.vSat); vCholesterol = v.findViewById(R.id.vCholesterol); vSodium = v.findViewById(R.id.vSodium); vCarbs = v.findViewById(R.id.vCarbs); vFiber = v.findViewById(R.id.vFiber); vSugar = v.findViewById(R.id.vSugar); vPro = v.findViewById(R.id.vPro); updateItems(); } double mCalorieProgress = 0; double mFatProgress = 0; double mCarbProgress = 0; double mProteinProgress = 0; private void progressBars() { // Nutrition Goals double mCalorieGoal = Double.valueOf(sharedPreferences.getString(Globals.USER_CALORIES_TO_REACH_GOAL, "")); double mFatGoal = Double.valueOf(sharedPreferences.getString(Globals.USER_DAILY_FAT, "")); double mCarbGoal = Double.valueOf(sharedPreferences.getString(Globals.USER_DAILY_CARBOHYDRATES, "")); double mProteinGoal = Double.valueOf(sharedPreferences.getString(Globals.USER_DAILY_PROTEIN, "")); double mAllCaloriesConsumed = 0; double mAllFatConsumed = 0; double mAllCarbsConsumed = 0; double mAllProteinConsumed = 0; for (LogMeal logMeal : mLogAdapterAll.getLogs()) { mAllCaloriesConsumed += logMeal.getCalorieCount(); mAllFatConsumed += logMeal.getFatCount(); mAllCarbsConsumed += logMeal.getCarbCount(); mAllProteinConsumed += logMeal.getProteinCount(); } // mPbCal, mPbFat, mPbCarb, mPbPro mPbCal.setMax(Integer.valueOf(dfW.format(mCalorieGoal))); mPbCal.setProgress(Integer.valueOf(dfW.format(mAllCaloriesConsumed)) + Integer.valueOf(dfW.format(mCalorieProgress))); mPbCal.setSecondaryProgress(Integer.valueOf(dfW.format(mAllCaloriesConsumed))); mPbFat.setMax(Integer.valueOf(dfW.format(mFatGoal))); mPbFat.setProgress(Integer.valueOf(dfW.format(mAllFatConsumed)) + Integer.valueOf(dfW.format(mFatProgress))); mPbFat.setSecondaryProgress(Integer.valueOf(dfW.format(mAllFatConsumed))); mPbCarb.setMax(Integer.valueOf(dfW.format(mCarbGoal))); mPbCarb.setProgress(Integer.valueOf(dfW.format(mAllCarbsConsumed)) + Integer.valueOf(dfW.format(mCarbProgress))); mPbCarb.setSecondaryProgress(Integer.valueOf(dfW.format(mAllCarbsConsumed))); mPbPro.setMax(Integer.valueOf(dfW.format(mProteinGoal))); mPbPro.setProgress(Integer.valueOf(dfW.format(mAllProteinConsumed)) + Integer.valueOf(dfW.format(mProteinProgress))); mPbPro.setSecondaryProgress(Integer.valueOf(dfW.format(mAllProteinConsumed))); } private void updateItems() { mToolbar.setNavigationIcon(R.mipmap.ic_arrow_back); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(mToolbar.getWindowToken(), 0); getActivity().getSupportFragmentManager().popBackStack(); } }); mToolbar.inflateMenu(R.menu.menu_recipe_manual_entry); mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { if (menuItem.getItemId() == R.id.action_save) saveMeal(); return false; } }); mServingSizeUpdated.setText("1"); LinearLayout changeServing = (LinearLayout) v.findViewById(R.id.changeServing); changeServing.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); alert.setTitle("Update Serving Size: "); alert.setMessage("Servings Consumed"); final EditText input = new EditText(getActivity()); input.setText(mServingg.getText().toString()); input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); input.selectAll(); input.setGravity(Gravity.CENTER_HORIZONTAL); alert.setView(input, 64, 0, 64, 0); alert.setPositiveButton("Update", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { double values = Double.valueOf(input.getText().toString()); mServingg.setText(df.format(values)); mServingSizeUpdated.setText(df.format(values)); mCalUpdate.setText(dfW.format(Double.valueOf(mCalories) * values)); mCalorieProgress = Double.valueOf(mCalories) * values; mFattieUpdate.setText(df.format(Double.valueOf(mFat) * values)); mFatProgress = Double.valueOf(mFat) * values; mSaturatedFatUpdate.setText(df.format(Double.valueOf(mSaturatedFat) * values)); mCholesterolUpdate.setText(df.format(Double.valueOf(mCholesterol) * values)); mSodiumUpdate.setText(df.format(Double.valueOf(mSodium) * values)); mCarbUpdate.setText(df.format(Double.valueOf(mCarbohydrates) * values)); mCarbProgress = Double.valueOf(mCarbohydrates) * values; mFiberUpdate.setText(df.format(Double.valueOf(mFiber) * values)); mSugarUpdate.setText(df.format(Double.valueOf(mSugar) * values)); mProUpdate.setText(df.format(Double.valueOf(mProtein) * values)); mProteinProgress = Double.valueOf(mProtein) * values; mVitAUpdate.setText(df.format(Double.valueOf(mVitA) * values)); mVitCUpdate.setText(df.format(Double.valueOf(mVitC) * values)); mCalciumUpdate.setText(df.format(Double.valueOf(mCalcium) * values)); mIronUpdate.setText(df.format(Double.valueOf(mIron) * values)); progressBars(); ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(input.getWindowToken(), 0); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(input.getWindowToken(), 0); } }); alert.setCancelable(false); alert.show(); ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_NOT_ALWAYS); } }); } private String mFoodName = null; private String mCalories = null; private String mCarbohydrates = null; private String mProtein = null; private String mFat = null; private String mSaturatedFat = null; private String mCholesterol = null; private String mSodium = null; private String mFiber = null; private String mSugar = null; private String mVitA = null; private String mVitC = null; private String mCalcium = null; private String mIron = null; private String mServingDescription = null; private String mNumberUnits = null; private void getFood(final long id) { new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... arg0) { JSONObject foodGet = mFatSecretGet.getFood(id); try { if (foodGet != null) { mFoodName = foodGet.getString("food_name"); JSONObject servings = foodGet.getJSONObject("servings"); Object intervention = servings.get("serving"); if (intervention instanceof JSONObject) { arrayOrJson = "object"; JSONObject serving = servings.getJSONObject("serving"); if (serving.isNull("serving_description")) { mServingDescription = null; } else { mServingDescription = serving.getString("serving_description"); } if (serving.isNull("number_of_units")) { mNumberUnits = null; } else { mNumberUnits = serving.getString("number_of_units"); } if (serving.isNull("calories")) { mCalories = null; } else { mCalories = serving.getString("calories"); } if (serving.isNull("fat")) { mFat = null; } else { mFat = serving.getString("fat"); } if (serving.isNull("carbohydrate")) { mCarbohydrates = null; } else { mCarbohydrates = serving.getString("carbohydrate"); } if (serving.isNull("protein")) { mProtein = null; } else { mProtein = serving.getString("protein"); } if (serving.isNull("saturated_fat")) { mSaturatedFat = null; } else { mSaturatedFat = serving.getString("saturated_fat"); } if (serving.isNull("cholesterol")) { mCholesterol = null; } else { mCholesterol = serving.getString("cholesterol"); } if (serving.isNull("sodium")) { mSodium = null; } else { mSodium = serving.getString("sodium"); } if (serving.isNull("fiber")) { mFiber = null; } else { mFiber = serving.getString("fiber"); } if (serving.isNull("sugar")) { mSugar = null; } else { mSugar = serving.getString("sugar"); } if (serving.isNull("vitamin_a")) { mVitA = null; } else { mVitA = serving.getString("vitamin_a"); } if (serving.isNull("vitamin_c")) { mVitC = null; } else { mVitC = serving.getString("vitamin_c"); } if (serving.isNull("calcium")) { mCalcium = null; } else { mCalcium = serving.getString("calcium"); } if (serving.isNull("iron")) { mIron = null; } else { mIron = serving.getString("iron"); } } else if (intervention instanceof JSONArray) { mItem.clear(); JSONArray serving = servings.getJSONArray("serving"); for (int i = 0; i < serving.length(); i++) { JSONObject ser = serving.getJSONObject(i); String DifferentServings = ser.getString("serving_description"); mItem.add(DifferentServings); } JSONObject newServing = serving.getJSONObject(mLastSpinnerPosition); if (newServing.isNull("serving_description")) { mServingDescription = null; } else { mServingDescription = newServing.getString("serving_description"); } if (newServing.isNull("number_of_units")) { mNumberUnits = null; } else { mNumberUnits = newServing.getString("number_of_units"); } if (newServing.isNull("calories")) { mCalories = null; } else { mCalories = newServing.getString("calories"); } if (newServing.isNull("fat")) { mFat = null; } else { mFat = newServing.getString("fat"); } if (newServing.isNull("carbohydrate")) { mCarbohydrates = null; } else { mCarbohydrates = newServing.getString("carbohydrate"); } if (newServing.isNull("protein")) { mProtein = null; } else { mProtein = newServing.getString("protein"); } if (newServing.isNull("saturated_fat")) { mSaturatedFat = null; } else { mSaturatedFat = newServing.getString("saturated_fat"); } if (newServing.isNull("cholesterol")) { mCholesterol = null; } else { mCholesterol = newServing.getString("cholesterol"); } if (newServing.isNull("sodium")) { mSodium = null; } else { mSodium = newServing.getString("sodium"); } if (newServing.isNull("fiber")) { mFiber = null; } else { mFiber = newServing.getString("fiber"); } if (newServing.isNull("sugar")) { mSugar = null; } else { mSugar = newServing.getString("sugar"); } if (newServing.isNull("vitamin_a")) { mVitA = null; } else { mVitA = newServing.getString("vitamin_a"); } if (newServing.isNull("vitamin_c")) { mVitC = null; } else { mVitC = newServing.getString("vitamin_c"); } if (newServing.isNull("calcium")) { mCalcium = null; } else { mCalcium = newServing.getString("calcium"); } if (newServing.isNull("iron")) { mIron = null; } else { mIron = newServing.getString("iron"); } } } } catch (JSONException exception) { exception.printStackTrace(); return "Error"; } return ""; } @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (result.equals("Error")) { } else { servingAdapter.notifyDataSetChanged(); setItems(); } } }.execute(); } private void setItems() { TextView foodTitle = (TextView) v.findViewById(R.id.foodTitle); foodTitle.setText(mFoodName); mAmountPerServing.setText(mNumberUnits); mFoodCal.setText(mCalories); mViewFat1.setText(mFat); mViewSaturatedFat.setText(mSaturatedFat); mViewCholesterol.setText(mCholesterol); mViewSodium.setText(mSodium); mViewCarbs1.setText(mCarbohydrates); mViewFiber.setText(mFiber); mViewSugar.setText(mSugar); mViewProtien1.setText(mProtein); mViewVitA.setText(mVitA); mViewVitC.setText(mVitC); mViewCalcium.setText(mCalcium); mViewIron.setText(mIron); // Updated Values mCalUpdate.setText(mCalories); mCalorieProgress = Double.valueOf(mCalories); mFattieUpdate.setText(mFat); mFatProgress = Double.valueOf(mFat); mSaturatedFatUpdate.setText(mSaturatedFat); mCholesterolUpdate.setText(mCholesterol); mSodiumUpdate.setText(mSodium); mCarbUpdate.setText(mCarbohydrates); mCarbProgress = Double.valueOf(mCarbohydrates); mFiberUpdate.setText(mFiber); mSugarUpdate.setText(mSugar); mProUpdate.setText(mProtein); mProteinProgress = Double.valueOf(mProtein); mVitAUpdate.setText(mVitA); mVitCUpdate.setText(mVitC); mCalciumUpdate.setText(mCalcium); mIronUpdate.setText(mIron); mViewSevingSize.setText(mServingDescription); progressBars(); /** * Check to see if any variables are null * If so set their view gone, and set their value to zero */ if (mCalories == null) { llCalories.setVisibility(View.GONE); mCalories = "0"; } if (mFat == null) { llFat.setVisibility(View.GONE); vFat.setVisibility(View.GONE); mFat = "0"; } if (mSaturatedFat == null) { llSat.setVisibility(View.GONE); vSat.setVisibility(View.GONE); mSaturatedFat = "0"; } if (mCholesterol == null) { mCholesterol = "0"; llCholesterol.setVisibility(View.GONE); vCholesterol.setVisibility(View.GONE); } if (mSodium == null) { llSodium.setVisibility(View.GONE); vSodium.setVisibility(View.GONE); mSodium = "0"; } if (mCarbohydrates == null) { llCarbs.setVisibility(View.GONE); vCarbs.setVisibility(View.GONE); mCarbohydrates = "0"; } if (mFiber == null) { mFiber = "0"; llFiber.setVisibility(View.GONE); vFiber.setVisibility(View.GONE); } if (mSugar == null) { llSugars.setVisibility(View.GONE); vSugar.setVisibility(View.GONE); mSugar = "0"; } if (mProtein == null) { mProtein = "0"; llProtein.setVisibility(View.GONE); vPro.setVisibility(View.GONE); } if (mVitA == null) { llVitA.setVisibility(View.GONE); vVitA.setVisibility(View.GONE); mVitA = "0"; } if (mVitC == null) { llVitC.setVisibility(View.GONE); vVitC.setVisibility(View.GONE); mVitC = "0"; } if (mCalcium == null) { llCalcium.setVisibility(View.GONE); vCalcium.setVisibility(View.GONE); mCalcium = "0"; } if (mIron == null) { mIron = "0"; llIron.setVisibility(View.GONE); vIron.setVisibility(View.GONE); } if (arrayOrJson != null) { mSpnServings.setVisibility(View.GONE); mViewSevingSize.setVisibility(View.VISIBLE); } else { mSpnServings.setVisibility(View.VISIBLE); mViewSevingSize.setVisibility(View.GONE); } } LogRecipeHolderAdapter logRecipeHolderAdapter; LogRecipeHolder recipe; private void saveMeal() { logRecipeHolderAdapter = new LogRecipeHolderAdapter(getActivity(), 0, LogRecipeHolder.logsById(Integer.valueOf(recipe_id))); recipe = logRecipeHolderAdapter.getItem(0); LogRecipeItems logMeals = new LogRecipeItems(); logMeals.setMealId(recipe_id); logMeals.setMealChoice(mealType); logMeals.setForeignKey(recipe); logMeals.setMealName(mFoodName); if (llCalories.getVisibility() == View.VISIBLE) logMeals.setCalorieCount(Double.valueOf(mCalUpdate.getText().toString())); if (llFat.getVisibility() == View.VISIBLE) logMeals.setFatCount(Double.valueOf(mFattieUpdate.getText().toString())); if (llSat.getVisibility() == View.VISIBLE) logMeals.setSaturatedFat(Double.valueOf(mSaturatedFatUpdate.getText().toString())); if (llCholesterol.getVisibility() == View.VISIBLE) logMeals.setCholesterol(Double.valueOf(mCholesterolUpdate.getText().toString())); if (llSodium.getVisibility() == View.VISIBLE) logMeals.setSodium(Double.valueOf(mSodiumUpdate.getText().toString())); if (llCarbs.getVisibility() == View.VISIBLE) logMeals.setCarbCount(Double.valueOf(mCarbUpdate.getText().toString())); if (llFiber.getVisibility() == View.VISIBLE) logMeals.setFiber(Double.valueOf(mFiberUpdate.getText().toString())); if (llSugars.getVisibility() == View.VISIBLE) logMeals.setSugars(Double.valueOf(mSugarUpdate.getText().toString())); if (llProtein.getVisibility() == View.VISIBLE) logMeals.setProteinCount(Double.valueOf(mProUpdate.getText().toString())); if (llVitC.getVisibility() == View.VISIBLE) logMeals.setVitA(Double.valueOf(mVitAUpdate.getText().toString())); if (llVitC.getVisibility() == View.VISIBLE) logMeals.setVitC(Double.valueOf(mVitCUpdate.getText().toString())); if (llCalcium.getVisibility() == View.VISIBLE) logMeals.setCalcium(Double.valueOf(mCalciumUpdate.getText().toString())); if (llIron.getVisibility() == View.VISIBLE) logMeals.setIron(Double.valueOf(mIronUpdate.getText().toString())); logMeals.setManualEntry("false"); logMeals.setBrand(food_brand); logMeals.setServingSize(Double.valueOf(mServingg.getText().toString())); logMeals.setMealServing("Serving"); logMeals.setDate(new Date()); logMeals.save(); Intent i = new Intent(getActivity(), RecipeActivity.class); i.putExtra(Globals.MEAL_TYPE, mealType); i.putExtra(Globals.MEAL_ID, recipe.getId()); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); } /** * Interface to transfer data to MainActivity */ private FragmentCallbacks mCallbacks; public interface FragmentCallbacks { void fromFragment(); } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mCallbacks = (FragmentCallbacks) activity; } catch (ClassCastException e) { throw new ClassCastException("Activity must implement Fragment Three."); } } }