Add original project.

This commit is contained in:
me committed 2025-01-04 12:39:00 -07:00
1 parent b3c2fb7e6a
commit e02d5ef761
66 files changed
+3195

No files matched your search

+573
View File
@@ -0,0 +1,573 @@
package com.hyperling.carbupbeta;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
/**
* Created by usb on 12/24/14.
*/
// Database And ListItem Helper
public class DALIH extends SQLiteOpenHelper{
public final boolean DEBUG = false;
// SQL objects
private static final String DB_NAME = "CARBUP.db";
private static final String list_table = "list"; // Saved List Table name (EX: 01, Schnuck's beans)
private static final String item_table = "item"; // Saved Item Table name (EG: 01, red beans, 70 carbs, 200 calories, etc)
private static final String setting_table = "settings";
private static final String list_id_col = "list_id";
private static final String list_name_col = "list_name";
private static final String item_id_col = "item_id";
private static final String item_name_col = "item_name";
private static final String item_cost_col = "cost";
private static final String item_servings_col = "servings";
private static final String item_calories_col = "calories";
private static final String item_carbs_col = "carbs";
private static final String item_fiber_col = "fiber";
private static final String item_list_id_col = list_id_col;
private static final String setting_last_list_col = "last_list";
private static final String setting_last_item_col = "last_item";
private static final String setting_ads_enabled_col = "ads_enabled";
private static final String setting_quick_load_col = "quick_load";
private static final String setting_open_tab_col = "open_tab";
private static final int settings_total = 5;
private static final int setting_last_list_index = 0;
private static final int setting_last_item_index = 1;
private static final int setting_ads_enabled_index = 2;
private static final int setting_quick_load_index = 3;
private static final int setting_open_tab_index = 4;
private static final int setting_last_list_default = -1;
private static final int setting_last_item_default = -1;
private static final int setting_ads_enabled_default = 1;
private static final int setting_quick_load_default = 0;
private static final int setting_open_tab_default = 1;
private static final String CREATESLTABLE = "CREATE TABLE " + list_table + "(" +
list_id_col + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
list_name_col + " TEXT NOT NULL" +
"); ";
private static final String CREATESITABLE = "" +
"CREATE TABLE " + item_table + "( " +
item_id_col + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
item_name_col + " TEXT NOT NULL, " +
item_cost_col + " REAL NOT NULL, " +
item_servings_col + " REAL NOT NULL, " +
item_calories_col + " REAL NOT NULL, " +
item_carbs_col + " REAL NOT NULL, " +
item_fiber_col + " REAL DEFAULT 0, " +
item_list_id_col + " INTEGER NOT NULL, " +
"FOREIGN KEY (" + item_list_id_col + ") REFERENCES " + list_table + "(" + list_id_col + ") ON DELETE CASCADE" +
"); ";
private static final String CREATESETTINGTABLE = "" +
"CREATE TABLE " + setting_table + "( " +
" " + setting_last_list_col + " INTEGER NOT NULL, " +
" " + setting_last_item_col + " INTEGER NOT NULL, " +
" " + setting_ads_enabled_col + " INTEGER NOT NULL, " +
" " + setting_quick_load_col + " INTEGER NOT NULL, " +
" " + setting_open_tab_col + " INTEGER NOT NULL " +
"); ";
SQLiteDatabase db;
public DALIH(Context context){
//4, add fiber column to list_item
super(context, DB_NAME, null, 4);
return;
}
// Open the database
public void open() throws SQLException{
if (DEBUG) System.out.println("Opening DB");
db = getWritableDatabase();
return;
}
// Close the database
public void close(){
if (DEBUG) System.out.println("Closing DB");
super.close();
return;
}
// Insert a ListItem into the DB
public void insertItem(ListItemInfo listItem){
if (DEBUG) System.out.println("Inserting item: " + listItem.getID() + " " + listItem.getName());
String query = "" +
"INSERT INTO "+item_table+"("+item_name_col+", "+item_cost_col+", "+item_calories_col+", " +
" "+item_carbs_col+", "+item_servings_col+", "+item_list_id_col+", " +
" "+item_fiber_col+") " +
"VALUES(\""+listItem.getName()+"\", "+listItem.getCost()+", "+listItem.getCalories()+", " +
" "+listItem.getCarbs()+", "+listItem.getServings()+", "+listItem.getListID() + ", " +
" "+listItem.getFiber()+"); ";
doQuery(query);
return;
}
public void updateItem(ListItemInfo listItem){
if (DEBUG) System.out.println("Updating item: " + listItem.getID() + " " + listItem.getName());
String query = "" +
"UPDATE "+item_table+" " +
" SET "+item_name_col+" = \""+listItem.getName()+"\", " +
" "+item_cost_col+" = "+listItem.getCost()+", " +
" "+item_calories_col+" = "+listItem.getCalories()+", " +
" "+item_carbs_col+" = "+listItem.getCarbs()+", " +
" "+item_servings_col+" = "+listItem.getServings()+", " +
" "+item_fiber_col+" = "+listItem.getFiber()+", " +
" "+item_list_id_col+" = "+listItem.getListID()+" " +
" WHERE "+item_id_col+" = "+listItem.getID() + "; ";
doQuery(query);
return;
}
// Remove a ListItem from the DB
public void deleteItem(ListItemInfo listItem){
if (DEBUG) System.out.println("Deleting item: " + listItem.getID() + " " + listItem.getName());
String query = "" +
"DELETE FROM "+item_table+" " +
" WHERE "+item_id_col+" = "+listItem.getID() + "; ";
doQuery(query);
return;
}
// This method will give tab2 current List's items to sort through
public ArrayList<ListItemInfo> getItems(int list_id){
ArrayList<ListItemInfo> items = new ArrayList<ListItemInfo>();
String query = "" +
"SELECT "+item_id_col+", " +
" "+item_name_col+", " +
" "+item_cost_col+", " +
" "+item_servings_col+", " +
" "+item_calories_col+", " +
" "+item_carbs_col+", " +
" "+item_fiber_col+", " +
" "+item_list_id_col+" " +
" FROM "+item_table+" " +
" WHERE "+item_list_id_col+" = "+list_id+"; ";
if (DEBUG) System.out.println("Getting all items\n" + query);
Cursor c = db.rawQuery(query, null);
if (DEBUG) System.out.println("Cursor size: " + c.getCount());
c.moveToFirst();
while(!c.isAfterLast()){
ListItemInfo temp = new ListItemInfo();
temp.setID(c.getInt(0));
temp.setName(c.getString(1));
temp.setCost(c.getDouble(2));
temp.setServings(c.getDouble(3));
temp.setCalories(c.getDouble(4));
temp.setCarbs(c.getDouble(5));
temp.setFiber(c.getDouble(6));
temp.setListID(c.getInt(7));
items.add(temp);
c.moveToNext();
}
c.close();
return items;
}
public void insertList(ListInfo list){
if (DEBUG) System.out.println("Inserting list: " + list.getID() + " " + list.getName());
String query = "" +
"INSERT INTO "+list_table+"("+list_name_col+") " +
"VALUES(\""+list.getName()+"\"); ";
doQuery(query);
return;
}
public void updateList(ListInfo list){
if (DEBUG) System.out.println("Updating list: " + list.getID() + " " + list.getName());
String query = "" +
"UPDATE "+list_table+" " +
" SET "+list_name_col+" = \""+list.getName()+"\" " +
" WHERE "+list_id_col+" = "+list.getID()+"; ";
doQuery(query);
return;
}
public void deleteList(ListInfo list){
if (DEBUG) System.out.println("Deleting list: " + list.getID() + " " + list.getName());
String query = "" +
"DELETE FROM "+list_table+" " +
" WHERE "+list_id_col+" = "+list.getID()+"; ";
doQuery(query);
return;
}
public ArrayList<ListInfo> getLists(){
// Return ALL lists in an ArrayList
ArrayList<ListInfo> lists = new ArrayList<ListInfo>();
String query = "" +
"SELECT "+list_id_col+", " +
" "+list_name_col+" " +
" FROM "+list_table+"; ";
if (DEBUG) System.out.println("Getting all lists\n" + query);
Cursor c = db.rawQuery(query, null);
if (DEBUG) System.out.println("Cursor size: " + c.getCount());
c.moveToFirst();
while(!c.isAfterLast()){
ListInfo temp = new ListInfo();
temp.setID(c.getInt(0));
temp.setName(c.getString(1));
lists.add(temp);
c.moveToNext();
}
c.close();
return lists;
}
private void setSettings(int[] settings){
if (DEBUG) System.out.println("Setting settings");
int last_list = settings[getLastListIndex()];
int last_item = settings[getLastItemIndex()];
int ads_enabled = settings[getAdsEnabledIndex()];
int quick_load = settings[getQuickLoadIndex()];
int open_tab = settings[getOpenTabIndex()];
String query = "" +
"UPDATE "+setting_table+"" +
" SET "+setting_last_list_col+" = "+last_list+", " +
" "+setting_last_item_col+" = "+last_item+", " +
" "+setting_ads_enabled_col+" = "+ads_enabled+", " +
" "+setting_quick_load_col+" = "+quick_load+", " +
" "+setting_open_tab_col+" = "+open_tab+"; ";
doQuery(query);
return;
}
private int[] getSettings(){
if (DEBUG) System.out.println("Getting settings");
String query = "" +
"SELECT "+setting_last_list_col+", " +
" "+setting_last_item_col+", " +
" "+setting_ads_enabled_col+", " +
" "+setting_quick_load_col+", " +
" "+setting_open_tab_col+" " +
" FROM "+setting_table+"; ";
int[] settings = null;
Cursor c = db.rawQuery(query, null);
if (DEBUG) System.out.println("Cursor size: " + c.getCount());
if (c.getCount() == 0){
setDefaults();
settings = new int[settings_total];
settings[getLastListIndex()] = setting_last_list_default;
settings[getLastItemIndex()] = setting_last_item_default;
settings[getAdsEnabledIndex()] = setting_ads_enabled_default;
settings[getQuickLoadIndex()] = setting_quick_load_default;
settings[getOpenTabIndex()] = setting_open_tab_default;
}
else {
if (DEBUG) System.out.println("Reading settings\n" + query);
c.moveToFirst();
while (!c.isAfterLast()) {
settings = new int[settings_total];
settings[getLastListIndex()] = c.getInt(0);
settings[getLastItemIndex()] = c.getInt(1);
settings[getAdsEnabledIndex()] = c.getInt(2);
settings[getQuickLoadIndex()] = c.getInt(3);
settings[getOpenTabIndex()] = c.getInt(4);
c.moveToNext();
}
}
c.close();
return settings;
}
private void setDefaults(){
if (DEBUG) System.out.println("Setting default settings");
String query = "" +
"INSERT INTO " + setting_table + "("+setting_last_list_col+", "+setting_last_item_col+", " +
" "+setting_ads_enabled_col+", "+setting_quick_load_col+", " +
" "+setting_open_tab_col+") " +
"VALUES("+setting_last_list_default+", "+setting_last_item_default+", " +
" "+setting_ads_enabled_default+", "+setting_quick_load_default+", " +
" "+setting_open_tab_default+"); ";
doQuery(query);
return;
}
private int getLastListIndex(){
if (DEBUG) System.out.println("Getting last list index");
return setting_last_list_index;
}
private int getLastItemIndex(){
if (DEBUG) System.out.println("Getting last item index");
return setting_last_item_index;
}
private int getAdsEnabledIndex(){
if (DEBUG) System.out.println("Getting ads enabled index");
return setting_ads_enabled_index;
}
private int getQuickLoadIndex(){
if (DEBUG) System.out.println("Getting quick load index");
return setting_quick_load_index;
}
private int getOpenTabIndex(){
if (DEBUG) System.out.println("Getting open tab index");
return setting_open_tab_index;
}
public int getLastList(){
if (DEBUG) System.out.println("Getting last list");
int[] settings = getSettings();
return settings[getLastListIndex()];
}
public void setLastList(int lastList){
if (DEBUG) System.out.println("Setting last list to " + lastList);
int[] settings = getSettings();
settings[getLastListIndex()] = lastList;
setSettings(settings);
return;
}
public void setLastList(){
if (DEBUG) System.out.println("Setting last list to default, " + setting_last_list_default);
int[] settings = getSettings();
settings[getLastListIndex()] = setting_last_list_default;
setSettings(settings);
return;
}
public int getLastItem(){
if (DEBUG) System.out.println("Getting last item");
int[] settings = getSettings();
return settings[getLastItemIndex()];
}
public void setLastItem(int lastItem){
if (DEBUG) System.out.println("Setting last item to " + lastItem);
int[] settings = getSettings();
settings[getLastItemIndex()] = lastItem;
setSettings(settings);
return;
}
public void setLastItem(){
if (DEBUG) System.out.println("Setting last item to default, " + setting_last_item_default);
int[] settings = getSettings();
settings[getLastItemIndex()] = setting_last_item_default;
setSettings(settings);
return;
}
public boolean getAdsEnabled(){
if (DEBUG) System.out.println("Getting ads enabled");
int[] settings = getSettings();
return (settings[getAdsEnabledIndex()] > 0);
}
public void setAdsEnabled(boolean adsEnabled){
if (DEBUG) System.out.println("Setting ads enabled to " + adsEnabled);
int[] settings = getSettings();
int setting;
if (adsEnabled){
setting = 1;
}
else{
setting = 0;
}
settings[getAdsEnabledIndex()] = setting;
setSettings(settings);
return;
}
public boolean getQuickLoad(){
if (DEBUG) System.out.println("Getting quick load");
int[] settings = getSettings();
return (settings[getQuickLoadIndex()] > 0);
}
public void setQuickLoad(boolean quickLoad){
if (DEBUG) System.out.println("Setting quick load to " + quickLoad);
int[] settings = getSettings();
int setting;
if (quickLoad){
setting = 1;
}
else{
setting = 0;
}
settings[getQuickLoadIndex()] = setting;
setSettings(settings);
return;
}
public int getOpenTab(){
if (DEBUG) System.out.println("Getting quick load");
int[] settings = getSettings();
return settings[getOpenTabIndex()];
}
public void setOpenTab(int tab){
if (DEBUG) System.out.println("Setting open tab to " + tab);
int[] settings = getSettings();
settings[getOpenTabIndex()] = tab;
setSettings(settings);
return;
}
private void doQuery(String query){
if (DEBUG) System.out.println("Executing SQL:\n" + query);
db.execSQL(query);
return;
}
public String filterString(String input){
if (DEBUG) System.out.println("Filtering string: " + input);
String output = input.trim().replace("\"","").replace("\n", "").replace("\b", "").replace("\t", "");
while(output.contains(" ")){
if (DEBUG) System.out.println("In the space killer loop: " + output);
output = output.replace(" ", " ");
}
return output;
}
private void printDML(){
System.out.println();
System.out.println(CREATESLTABLE);
System.out.println();
System.out.println(CREATESITABLE);
System.out.println();
System.out.println(CREATESETTINGTABLE);
System.out.println();
return;
}
@Override
public void onCreate(SQLiteDatabase database) {
if (DEBUG){
System.out.println("Creating the DB");
printDML();
}
database.execSQL(CREATESLTABLE);
database.execSQL(CREATESITABLE);
database.execSQL(CREATESETTINGTABLE);
return;
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
if (DEBUG) System.out.println("Upgrading the DB");
switch(oldVersion){
case 2:
if (DEBUG) System.out.println("UPGRADING TO DBv3");
String DBv3 = "" +
" ALTER TABLE "+setting_table+" " +
" ADD "+setting_open_tab_col+" INTEGER; " +
"" +
"UPDATE TABLE "+setting_table+" " +
" SET "+setting_open_tab_col+" = "+setting_open_tab_default+"; " +
"" +
" ALTER TABLE "+setting_table+" " +
" ALTER COLUMN "+setting_open_tab_col+" INTEGER NOT NULL; ";
database.execSQL(DBv3);
case 3:
if (DEBUG) System.out.println("UPGRADING TO DBv4");
String DBv4 = "" +
" ALTER TABLE "+item_table+" " +
" ADD "+item_fiber_col+" REAL DEFAULT 0; ";
database.execSQL(DBv4);
}
return;
}
}