package com.eugene.fithealthmaingit.UI; import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; 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.EditText; import com.eugene.fithealthmaingit.Custom.TextViewFont; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.CalSQLiteDatabase.DailyCalorieIntake; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.CalSQLiteDatabase.DailyCalorieAdapter; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.CalSQLiteDatabase.DatabaseHandler; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogAdapterAll; import com.eugene.fithealthmaingit.Databases_Adapters_ListViews.LogFood.LogMeal; import com.eugene.fithealthmaingit.MainActivity; 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.util.Date; import java.util.List; public class QuickAddFragment extends Fragment { private View v; String mMealType; private EditText mMealCalories; private EditText mMealFat; private EditText mMealCarbs; private EditText mMealProtein; private EditText mServingSize; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { v = inflater.inflate(R.layout.fragment_quick_add, container, false); // Get meal type from Journal Bundle bundle = this.getArguments(); if (bundle != null) { mMealType = bundle.getString(Globals.MEAL_TYPE); } InitiateToolbar(); setAdapter(new Date()); mMealCalories = (EditText) v.findViewById(R.id.mealCalories); mMealCalories.requestFocus(); ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); mMealFat = (EditText) v.findViewById(R.id.mealFat); mMealCarbs = (EditText) v.findViewById(R.id.mealCarbs); mMealProtein = (EditText) v.findViewById(R.id.mealProtein); return v; } /** * Setup Toolbar */ Toolbar mToolbarQuickAdd; private void InitiateToolbar() { mToolbarQuickAdd = (Toolbar) v.findViewById(R.id.toolbarQuickAdd); TextViewFont txtTitle = (TextViewFont) v.findViewById(R.id.txtTitle); txtTitle.setText("Quick Add"); mToolbarQuickAdd.setNavigationIcon(R.mipmap.ic_arrow_back); mToolbarQuickAdd.inflateMenu(R.menu.menu_user_info); mToolbarQuickAdd.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(mMealCalories.getWindowToken(), 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); } }); mToolbarQuickAdd.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); if (menuItem.getItemId() == R.id.action_save) { if (mMealCalories.getText().toString().trim().length() > 0) { ServingDialog(); } else { if (mMealCalories.getText().toString().trim().length() == 0) mMealCalories.setError("Missing Field"); } } return false; } }); } private void ServingDialog() { AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); alert.setTitle("Update Serving Size: "); alert.setMessage("Servings Consumed"); mServingSize = new EditText(getActivity()); mServingSize.setText("1"); mServingSize.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); mServingSize.selectAll(); mServingSize.setGravity(Gravity.CENTER_HORIZONTAL); alert.setView(mServingSize, 64, 0, 64, 0); alert.setPositiveButton("Save", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(mServingSize.getWindowToken(), 0); LogMeal logMeals = new LogMeal(); logMeals.setMealChoice(mMealType); logMeals.setMealName("Quick Add"); logMeals.setCalorieCount(Double.valueOf(mMealCalories.getText().toString()) * Double.valueOf(mServingSize.getText().toString())); if (mMealFat.getText().toString().trim().length() > 0) { logMeals.setFatCount(Double.valueOf(mMealFat.getText().toString()) * Double.valueOf(mServingSize.getText().toString())); } else { logMeals.setFatCount(0); } if (mMealCarbs.getText().toString().trim().length() > 0) { logMeals.setCarbCount(Double.valueOf(mMealCarbs.getText().toString()) * Double.valueOf(mServingSize.getText().toString())); } else { logMeals.setCarbCount(0); } if (mMealProtein.getText().toString().trim().length() > 0) { logMeals.setProteinCount(Double.valueOf(mMealProtein.getText().toString()) * Double.valueOf(mServingSize.getText().toString())); } else { logMeals.setProteinCount(0); } logMeals.setDate(new Date()); logMeals.setServingSize(Double.parseDouble(mServingSize.getText().toString())); logMeals.setMealServing("Serving"); logMeals.setOrderFormat(OrderFormat.setMealFormat(mMealType)); logMeals.save(); testing(); Intent intent = new Intent(getActivity().getApplicationContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); getActivity().overridePendingTransition(0, 0); mCallbacks.itemAdded(""); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { ((InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)) .hideSoftInputFromWindow(mServingSize.getWindowToken(), 0); } }); alert.setCancelable(false); alert.show(); } 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 */ private QuickAddItemAdded mCallbacks; public interface QuickAddItemAdded { void itemAdded(String s); } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { mCallbacks = (QuickAddItemAdded) activity; } catch (ClassCastException e) { throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); } } }