com.eugene.fithealthmaingit.UI.ManualEntrySaveMealFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.eugene.fithealthmaingit.UI.ManualEntrySaveMealFragment.java

Source

/*
 * Copyright (C) 2013 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use getActivity() file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.eugene.fithealthmaingit.UI;

import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
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.ArrayAdapter;
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.CalSQLiteDatabase.DailyCalorieAdapter;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.CalSQLiteDatabase.DailyCalorieIntake;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.CalSQLiteDatabase.DatabaseHandler;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.FoodManual.LogAdapterManual;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.FoodManual.LogManual;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogAdapterAll;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogAdapterPrevention;
import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogMeal;
import com.eugene.fithealthmaingit.FatSecretSearchAndGet.FatSecretGetMethod;
import com.eugene.fithealthmaingit.R;
import com.eugene.fithealthmaingit.Utilities.DateCompare;
import com.eugene.fithealthmaingit.Utilities.Globals;
import com.eugene.fithealthmaingit.Utilities.OrderFormat;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ManualEntrySaveMealFragment 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 LogAdapterPrevention mLogAdapterAll;
    // FatSecret method.get
    private FatSecretGetMethod mFatSecretGet;
    String arrayOrJson;
    // Inflate view
    private View v;
    String mealType;
    String food_id;
    private ArrayList<String> mItem;
    ArrayAdapter<String> servingAdapter;
    SharedPreferences sharedPreferences;

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
            @Nullable Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.fragment_add_saved_manual_entry, container, false);
        sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
        Bundle extras = getActivity().getIntent().getExtras();
        if (extras != null) {
            mealType = extras.getString(Globals.MEAL_TYPE);
            food_id = extras.getString(Globals.MEAL_ID);
        }
        setAdapter(new Date());
        findViewsById();
        getFood(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);

        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);

        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) {
                Intent intent = new Intent(getActivity(), ChooseAddMealActivity.class);
                intent.putExtra(Globals.MEAL_TYPE, mealType);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
            }
        });
        mToolbar.inflateMenu(R.menu.menu_user_info);
        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 mBrand = null;
    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 String servingSize = null;

    private void getFood(final String id) {
        LogAdapterManual logAdapterManual = new LogAdapterManual(getActivity(), 0, LogManual.logsById(id),
                mealType);
        LogManual logManual = logAdapterManual.getItem(0);
        mBrand = logManual.getBrand();
        mFoodName = logManual.getMealName();
        mCalories = String.valueOf(logManual.getCalorieCount());
        mCarbohydrates = String.valueOf(logManual.getCarbCount());
        mProtein = String.valueOf(logManual.getProteinCount());
        mFat = String.valueOf(logManual.getFatCount());
        mSaturatedFat = String.valueOf(logManual.getSaturatedFat());
        mCholesterol = String.valueOf(logManual.getCholesterol());
        mSodium = String.valueOf(logManual.getSodium());
        mFiber = String.valueOf(logManual.getFiber());
        mSugar = String.valueOf(logManual.getSugars());
        mVitA = String.valueOf(logManual.getVitA());
        mVitC = String.valueOf(logManual.getVitC());
        mCalcium = String.valueOf(logManual.getCalcium());
        mIron = String.valueOf(logManual.getIron());
        mServingDescription = String.valueOf(logManual.getMealServing());
        mNumberUnits = String.valueOf(1);
        setItems();
    }

    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("1 " + 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 == "0.0") {
            llSat.setVisibility(View.GONE);
            vSat.setVisibility(View.GONE);
            mSaturatedFat = "0";
        }
        if (mCholesterol == "0.0") {
            mCholesterol = "0";
            llCholesterol.setVisibility(View.GONE);
            vCholesterol.setVisibility(View.GONE);
        }
        if (mSodium == "0.0") {
            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 == "0.0") {
            mFiber = "0";
            llFiber.setVisibility(View.GONE);
            vFiber.setVisibility(View.GONE);
        }

        if (mSugar == "0.0") {
            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 == "0.0") {
            llVitA.setVisibility(View.GONE);
            vVitA.setVisibility(View.GONE);
            mVitA = "0";
        }
        if (mVitC == "0.0") {
            llVitC.setVisibility(View.GONE);
            vVitC.setVisibility(View.GONE);
            mVitC = "0";
        }
        if (mCalcium == "0.0") {
            llCalcium.setVisibility(View.GONE);
            vCalcium.setVisibility(View.GONE);
            mCalcium = "0";
        }
        if (mIron == "0.0") {
            mIron = "0";
            llIron.setVisibility(View.GONE);
            vIron.setVisibility(View.GONE);
        }
    }

    private void saveMeal() {
        LogMeal logMeals = new LogMeal();
        logMeals.setMealId(food_id);
        logMeals.setMealChoice(mealType);
        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(mBrand);
        logMeals.setServingSize(Double.valueOf(mServingg.getText().toString()));
        logMeals.setMealServing("Serving");
        logMeals.setDate(new Date());
        logMeals.setOrderFormat(OrderFormat.setMealFormat(mealType));
        logMeals.save();
        testing();
        mCallbacks.fromFragment();
    }

    private DatabaseHandler db;
    List<DailyCalorieIntake> dailyCalorieIntakes;
    private DailyCalorieAdapter dailyCalorieAdapter;

    private void testing() {
        LogAdapterAll logAdapterAll = new LogAdapterAll(getActivity(), 0, LogMeal.logsByDate(new Date()));
        if (dailyCalorieIntakes.size() > 0) {
            double caloriesUpdate = 0;
            for (LogMeal logMeal1 : logAdapterAll.getLogs()) {
                caloriesUpdate += logMeal1.getCalorieCount();
            }
            DailyCalorieIntake c = dailyCalorieAdapter.getItem(0);
            c.setCalorieIntake(caloriesUpdate);
            db.updateCalories(c);
        } else {
            LogMeal logMeal = logAdapterAll.getItem(0);
            db.addContact(
                    new DailyCalorieIntake("", logMeal.getCalorieCount(), DateCompare.dateToString(new Date())));
        }
    }

    private void setAdapter(Date newDate) {
        db = new DatabaseHandler(getActivity());
        String date = DateCompare.dateToString(newDate); // Convert date to string
        dailyCalorieIntakes = db.getContactsByDate(date); // filter by string
        dailyCalorieAdapter = new DailyCalorieAdapter(getActivity(), 0, dailyCalorieIntakes);
        if (dailyCalorieIntakes.size() > 0) {
            DailyCalorieIntake c = dailyCalorieAdapter.getItem(0);
        }
    }

    /**
     * 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.");
        }
    }
}