package com.biermacht.brews.frontend.IngredientActivities; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.util.Log; import android.view.View; import android.view.WindowManager; import android.widget.TextView; import com.biermacht.brews.R; import com.biermacht.brews.database.DatabaseAPI; import com.biermacht.brews.ingredient.Fermentable; import com.biermacht.brews.utils.Constants; import java.util.Arrays; public class AddCustomFermentableActivity extends AddFermentableActivity { // Views for rows public View descriptionView; // Titles from rows public TextView descriptionViewTitle; // Content from rows public TextView descriptionViewText; // Storage for acquired values String description; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Create the description view descriptionView = inflater.inflate(R.layout.row_layout_edit_text, mainView, false); descriptionView.setOnClickListener(onClickListener); descriptionViewText = (TextView) descriptionView.findViewById(R.id.text); descriptionViewTitle = (TextView) descriptionView.findViewById(R.id.title); descriptionViewText.setText("No Description Provided"); descriptionViewTitle.setText("Description"); // Set views Log.d("AddCustomFerm", "Initializing views"); this.registerViews(Arrays.asList(descriptionView)); this.setViews(Arrays.asList(nameView, fermentableTypeSpinner, timeView, amountView, colorView, gravityView, descriptionView)); if (! haveRecipe()) { timeView.setVisibility(View.GONE); amountView.setVisibility(View.GONE); } // Set initial values setValues(); } @Override public void onMissedClick(View v) { super.onMissedClick(v); Log.d("AddCustomFerm", "Checking views for: " + v); AlertDialog alert; if (v.equals(descriptionView)) { Log.d("AddCustomFerm", "Displaying descriptionView edit alert"); alert = alertBuilder.editTextMultilineStringAlert(descriptionViewText, descriptionViewTitle).create(); } else { Log.d("AddCustomFerm", "View not found: " + v); return; } // Force keyboard open and show popup alert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); alert.show(); } @Override public void setInitialSearchableListSelection() { // Override this method becaue there is no searchable list for this activity. Since this activity // is meant to add new custom Fermentables, rather than select a fermentable from a list. Log.d("AddCustomFerm", "No searchable list for this activity"); } // We need this because we don't use spinners in this activity public void setValues() { Log.d("AddCustomFerm", "Setting textEdit values"); // Create new fermentable fermentable = new Fermentable("New Fermentable"); // Set values nameViewText.setText(fermentable.getName()); colorViewText.setText("5.00"); gravityViewText.setText("1.037"); timeViewText.setText("60"); amountViewText.setText("1"); fermentableTypeSpinner.setSelection(0); } @Override public void acquireValues() throws Exception { super.acquireValues(); Log.d("AddCustomFerm", "Acquiring values for: " + fermentable.getName()); description = descriptionViewText.getText().toString(); // Set to user provided values fermentable.setShortDescription(description); } @Override public void onFinished() { Log.d("AddCustomFerm", "Adding fermentable to db_custom: " + fermentable.getName()); new DatabaseAPI(AddCustomFermentableActivity.this).addIngredient(Constants.DATABASE_USER_RESOURCES, fermentable, Constants.MASTER_RECIPE_ID); if (haveRecipe()) { // If not master ID, update the recipe. Log.d("AddCustomFerm", "Adding fermentable '" + fermentable.getName() + "' to recipe '" + mRecipe.getRecipeName() + "'"); mRecipe.addIngredient(fermentable); mRecipe.save(AddCustomFermentableActivity.this); } Log.d("AddCustomFerm", "Closing activity"); finish(); } }