Add original project.
This commit is contained in:
369
app/src/main/java/com/hyperling/carbupbeta/Tab2.java
Executable file
369
app/src/main/java/com/hyperling/carbupbeta/Tab2.java
Executable file
@ -0,0 +1,369 @@
|
||||
package com.hyperling.carbupbeta;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.google.android.gms.ads.AdRequest;
|
||||
import com.google.android.gms.ads.AdView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by usb on 9/28/14.
|
||||
*
|
||||
* This class will:
|
||||
* Add items to the current selected list
|
||||
*
|
||||
* DEEMED "GOOD ENOUGH" 13:45 2014-09-30 :D
|
||||
* ListItems are created perfectly, ordered by Cal/$, and colored by Carb/Cal
|
||||
*/
|
||||
|
||||
public class Tab2 extends Activity{
|
||||
|
||||
private DALIH dalih;
|
||||
|
||||
// Define the Views
|
||||
Context context;
|
||||
LinearLayout layListArea;
|
||||
EditText txtName, txtCost, txtServings, txtCalories, txtCarbs, txtFiber;
|
||||
Button btnClear, btnAdd;
|
||||
AdView mAdView;
|
||||
|
||||
// List
|
||||
ArrayList<ListItem> items = new ArrayList<ListItem>();
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.tab2);
|
||||
|
||||
// Set default context
|
||||
context = this;
|
||||
|
||||
// Initiate DALIH
|
||||
dalih = new DALIH(context);
|
||||
|
||||
// Load/Find the Views!
|
||||
layListArea = (LinearLayout) findViewById(R.id.layTab2ListArea);
|
||||
txtName = (EditText) findViewById(R.id.etItemName);
|
||||
txtCost = (EditText) findViewById(R.id.etItemCost);
|
||||
txtServings = (EditText) findViewById(R.id.etItemServs);
|
||||
txtCalories = (EditText) findViewById(R.id.etItemCals);
|
||||
txtCarbs = (EditText) findViewById(R.id.etItemCarbs);
|
||||
txtFiber = (EditText) findViewById(R.id.etItemFiber);
|
||||
btnClear = (Button) findViewById(R.id.btnClear);
|
||||
btnAdd = (Button) findViewById(R.id.btnAddToList);
|
||||
mAdView = (AdView) findViewById(R.id.adView);
|
||||
|
||||
// Give the Buttons their power
|
||||
btnClear.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
|
||||
removeItem();
|
||||
|
||||
// Clear all fields!
|
||||
txtName.setText("");
|
||||
txtCost.setText("");
|
||||
txtServings.setText("");
|
||||
txtCalories.setText("");
|
||||
txtCarbs.setText("");
|
||||
txtFiber.setText("");
|
||||
|
||||
setButtonInsert();
|
||||
}
|
||||
});
|
||||
|
||||
return;
|
||||
}// end onCreate
|
||||
|
||||
@Override
|
||||
protected void onResume(){
|
||||
if (dalih.DEBUG) System.out.println("***** Resuming Tab2 *****");
|
||||
|
||||
dalih.open();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 9) {
|
||||
if (dalih.getAdsEnabled()) {
|
||||
if (mAdView.getVisibility() != View.VISIBLE) {
|
||||
AdRequest adRequest = new AdRequest.Builder()
|
||||
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
|
||||
.addTestDevice("C6A494DC6E7C9AC29102694D48487084") // nexus 7
|
||||
.addTestDevice("B8B7561B850A9AB24E0D5B560FC50628") // Moto G
|
||||
.addTestDevice("") // Cappy, even though it can't get ads
|
||||
.build();
|
||||
mAdView.setVisibility(View.VISIBLE);
|
||||
mAdView.loadAd(adRequest);
|
||||
}
|
||||
}
|
||||
else{
|
||||
if (mAdView.getVisibility() == View.VISIBLE) {
|
||||
mAdView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setButtonInsert();
|
||||
|
||||
super.onResume();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause(){
|
||||
if (dalih.DEBUG) System.out.println("***** Pausing Tab2 *****");
|
||||
|
||||
dalih.close();
|
||||
|
||||
hideKeyboard();
|
||||
|
||||
super.onPause();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public boolean validateItem(ListItemInfo newItem){
|
||||
// FIELDS MUST HAVE VALUES BEFORE CONVERTING!!!
|
||||
if (txtName.getText().toString().equals("")){
|
||||
Toast.makeText(context, "Item must have a name!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (txtCost.getText().toString().equals("") || txtCost.getText().toString().equals(".")){
|
||||
Toast.makeText(context, "Item must have a cost!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (txtServings.getText().toString().equals("") || txtServings.getText().toString().equals(".")){
|
||||
Toast.makeText(context, "Item must have servings!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (txtCalories.getText().toString().equals("") || txtCalories.getText().toString().equals(".")){
|
||||
Toast.makeText(context, "Item must have calories!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (txtCarbs.getText().toString().equals("") || txtCarbs.getText().toString().equals(".")){
|
||||
Toast.makeText(context, "Item must have carbohydrates!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
|
||||
newItem.setName(txtName.getText().toString());
|
||||
newItem.setCost(Double.parseDouble(txtCost.getText().toString()));
|
||||
newItem.setServings(Double.parseDouble(txtServings.getText().toString()));
|
||||
newItem.setCalories(Double.parseDouble(txtCalories.getText().toString()));
|
||||
newItem.setCarbs(Double.parseDouble(txtCarbs.getText().toString()));
|
||||
newItem.setFiber(Double.parseDouble(txtFiber.getText().toString()));
|
||||
newItem.setListID(dalih.getLastList());
|
||||
|
||||
// NAME MUST BE UNIQUE, VALUES MUST BE GREATER THAN 0
|
||||
boolean nameDuplicated = false;
|
||||
for(ListItem li : items){
|
||||
if(newItem.getName().equals(li.getName()) || newItem.getName().equals("")){
|
||||
nameDuplicated = true;
|
||||
}
|
||||
}
|
||||
if (nameDuplicated){
|
||||
Toast.makeText(context, "Name must be unique!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (newItem.getCost() <= 0){
|
||||
Toast.makeText(context, "Cost must be greater than 0!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (newItem.getServings() <= 0){
|
||||
Toast.makeText(context, "Servings must be greater than 0!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (newItem.getCalories() <= 0){
|
||||
Toast.makeText(context, "Calories must be greater than 0!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if (newItem.getFiber() > newItem.getCarbs()){
|
||||
Toast.makeText(context, "Cannot have more fiber than carbs!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else if ((newItem.getCarbs()-newItem.getFiber()) * 3.5 > newItem.getCalories()){
|
||||
Toast.makeText(context, "Too many carbs, not enough calories!", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
else{
|
||||
return true;
|
||||
}// end else
|
||||
}// end else
|
||||
|
||||
return false;
|
||||
}// end validateItem()
|
||||
|
||||
public void setButtonInsert(){
|
||||
btnAdd.setText(R.string.item_create_button_insert);
|
||||
|
||||
// Reset to default
|
||||
dalih.setLastItem();
|
||||
|
||||
createItems();
|
||||
|
||||
if (dalih.DEBUG) System.out.println("Setting add button to insert");
|
||||
btnAdd.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
|
||||
ListItemInfo newItem = new ListItemInfo();
|
||||
|
||||
if (validateItem(newItem)) {
|
||||
hideKeyboard();
|
||||
|
||||
dalih.insertItem(newItem);
|
||||
|
||||
createItems();
|
||||
|
||||
dalih.setOpenTab(1);
|
||||
}
|
||||
}
|
||||
});// end btnAdd.setOnClickListener
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void setButtonUpdate(final ListItem listItem){
|
||||
btnAdd.setText(R.string.item_create_button_update);
|
||||
|
||||
// Pull Item info into top boxes then remove the ListItem
|
||||
// Save which item we are on
|
||||
dalih.setLastItem(listItem.getID());
|
||||
|
||||
// Remove the item
|
||||
createItems();
|
||||
|
||||
// Set all fields to the values
|
||||
txtName.setText(listItem.getName());
|
||||
txtCost.setText(Double.toString(listItem.getCost()));
|
||||
txtServings.setText(Double.toString(listItem.getServings()));
|
||||
txtCalories.setText(Double.toString(listItem.getCalories()));
|
||||
txtCarbs.setText(Double.toString(listItem.getCarbs()));
|
||||
txtFiber.setText(Double.toString(listItem.getFiber()));
|
||||
|
||||
showKeyboard();
|
||||
|
||||
if (dalih.DEBUG) System.out.println("");
|
||||
btnAdd.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
|
||||
if (validateItem(listItem)) {
|
||||
hideKeyboard();
|
||||
|
||||
dalih.updateItem(listItem);
|
||||
|
||||
setButtonInsert();
|
||||
}
|
||||
}
|
||||
});// end btnAdd.setOnClickListener
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void createItems(){
|
||||
if (dalih.DEBUG) System.out.println("Creating items");
|
||||
|
||||
txtName.setText("");
|
||||
txtCost.setText("");
|
||||
txtServings.setText("");
|
||||
txtCalories.setText("");
|
||||
txtCarbs.setText("");
|
||||
txtFiber.setText("");
|
||||
|
||||
items = new ArrayList<ListItem>();
|
||||
|
||||
for (ListItemInfo info : dalih.getItems(dalih.getLastList())){
|
||||
if (dalih.DEBUG) System.out.println("Found item: " + info.getID() + " " + info.getName());
|
||||
|
||||
// Prevent item being edited from being displayed
|
||||
if (info.getID() != dalih.getLastItem()) {
|
||||
items.add(new ListItem(context, info));
|
||||
}
|
||||
}
|
||||
|
||||
// ========== Display the ListItems ==========
|
||||
// Order the list
|
||||
items = orderList(items);
|
||||
|
||||
// Give the Item Buttons functionality
|
||||
for (final ListItem li : items){
|
||||
li.btnEdit.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
// Change the create button to update instead of insert
|
||||
setButtonUpdate(li);
|
||||
}
|
||||
});
|
||||
|
||||
li.btnDelete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dalih.deleteItem(li);
|
||||
|
||||
createItems();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Replace old List with new ordered list
|
||||
// Clear list
|
||||
layListArea.removeAllViews();
|
||||
// Add Views
|
||||
for (ListItem li : items) {
|
||||
layListArea.addView(li.getView());
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public ArrayList<ListItem> orderList(ArrayList<ListItem> unorderedList){
|
||||
if (dalih.DEBUG) System.out.println("Sorting the items");
|
||||
|
||||
ArrayList<ListItem> orderedList = new ArrayList<ListItem>();
|
||||
|
||||
while (!unorderedList.isEmpty()) {
|
||||
double max = 0;
|
||||
int index = 0;
|
||||
|
||||
for (ListItem j : unorderedList) {
|
||||
if (j.getCalPerDol() > max) {
|
||||
//if (dalih.DEBUG) System.out.println(j.getCalPerDol()*100 + " is better than " + max*100);
|
||||
|
||||
max = j.getCalPerDol();
|
||||
index = unorderedList.indexOf(j);
|
||||
}
|
||||
}
|
||||
if (dalih.DEBUG) System.out.println(max*100 + " was the best");
|
||||
orderedList.add(unorderedList.get(index));
|
||||
unorderedList.remove(index);
|
||||
}
|
||||
|
||||
return orderedList;
|
||||
}
|
||||
|
||||
public void removeItem(){
|
||||
int deleteID = dalih.getLastItem();
|
||||
|
||||
for (ListItemInfo item : dalih.getItems(dalih.getLastList())){
|
||||
if (item.getID() == deleteID){
|
||||
if (dalih.DEBUG) System.out.println("Deleting item " + item.getID() + " " + item.getName());
|
||||
dalih.deleteItem(item);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void hideKeyboard(){
|
||||
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(btnAdd.getWindowToken(),0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
public void showKeyboard(){
|
||||
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(txtName, 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
}// end Tab2
|
Reference in New Issue
Block a user