From e4f36c7f8fae572075c92322a64948074e975dff Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 13:00:50 -0400 Subject: [PATCH 1/6] Pre-lunch progress --- build.gradle | 3 + src/main/AndroidManifest.xml | 6 - src/main/java/nyc/c4q/ListActivity.java | 10 +- src/main/java/nyc/c4q/ListAdapter.java | 41 ++++++ .../java/nyc/c4q/PaceCalculatorActivity.java | 136 +++++++++++++++++- .../res/layout/activity_pace_calculator.xml | 18 ++- 6 files changed, 199 insertions(+), 15 deletions(-) create mode 100644 src/main/java/nyc/c4q/ListAdapter.java diff --git a/build.gradle b/build.gradle index 7c6b66b..c7daa7a 100644 --- a/build.gradle +++ b/build.gradle @@ -33,6 +33,9 @@ dependencies { mavenCentral() } + // Butterknife + compile 'com.jakewharton:butterknife:7.0.1' + // Espresso androidTestCompile('com.android.support.test.espresso:espresso-core:2.0') androidTestCompile('com.android.support.test:testing-support-lib:0.1') diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index f96e9d3..47056e3 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -16,12 +16,6 @@ - - - - itemsAdapter = + new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, PEOPLE); + list = (ListView) findViewById(R.id.list); + + list.setAdapter(itemsAdapter); } + + } diff --git a/src/main/java/nyc/c4q/ListAdapter.java b/src/main/java/nyc/c4q/ListAdapter.java new file mode 100644 index 0000000..655387f --- /dev/null +++ b/src/main/java/nyc/c4q/ListAdapter.java @@ -0,0 +1,41 @@ +package nyc.c4q; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import java.util.ArrayList; + +/** + * Created by jaellysbales on 8/30/15. + */ +public class ListAdapter extends ArrayAdapter { + public ListAdapter(Context context, ArrayList people) { + super(context, 0, people); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + // Get data for current position + Person person = getItem(position); + + // Check if an existing view is being reused, otherwise inflate the view + if (convertView == null) { + convertView = LayoutInflater.from(getContext()).inflate(R.layout.listitem_member, parent, false); + } + + // Lookup view for person + TextView tvName = (TextView) convertView.findViewById(R.id.text_name); + TextView tvHouse = (TextView) convertView.findViewById(R.id.text_house); + + // Populate data into view using data object + tvName.setText(person.firstName + " " + person.lastName); + tvHouse.setText(person.house); + + return convertView; + } +} + diff --git a/src/main/java/nyc/c4q/PaceCalculatorActivity.java b/src/main/java/nyc/c4q/PaceCalculatorActivity.java index 5c0616e..556dda1 100644 --- a/src/main/java/nyc/c4q/PaceCalculatorActivity.java +++ b/src/main/java/nyc/c4q/PaceCalculatorActivity.java @@ -1,14 +1,148 @@ package nyc.c4q; -import android.support.v4.app.FragmentActivity; +import android.app.Fragment; +import android.app.FragmentManager; +import android.app.FragmentTransaction; import android.os.Bundle; +import android.support.v4.app.FragmentActivity; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; + +import java.util.ArrayList; + +import butterknife.Bind; +import butterknife.ButterKnife; +import butterknife.OnClick; public class PaceCalculatorActivity extends FragmentActivity { + private double inputDistance; + private int inputTimeMin; + private int inputTimeSec; + private int inputPaceMin; + private int inputPaceSec; + + @Bind(R.id.input_distance) + EditText etDistance; + @Bind(R.id.input_time_min) + EditText etTimeMin; + @Bind(R.id.input_time_sec) + EditText etTimeSec; + @Bind(R.id.input_pace_min) + EditText etPaceMin; + @Bind(R.id.input_pace_sec) + EditText etPaceSec; + @Bind(R.id.button_calculate) + Button btnCalculate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pace_calculator); + + ButterKnife.bind(this); + + // get fragment manager + FragmentManager fm = getFragmentManager(); + + // fragment add + FragmentTransaction ft = fm.beginTransaction(); + ft.add(R.id.fragment_pace_calculator, new Fragment()); + ft.commit(); + + // todo: fix fragment, calculate + } + + @OnClick(R.id.button_calculate) + public void calculate(View view) { + + // get values from edittexts + String distanceStr = etDistance.getText().toString(); + String timeMinStr = etTimeMin.getText().toString(); + String timeSecStr = etTimeSec.getText().toString(); + String paceMinStr = etPaceMin.getText().toString(); + String paceSecStr = etPaceSec.getText().toString(); + + validateInput(distanceStr, timeMinStr, timeSecStr, paceMinStr, paceSecStr); + + // if distance + time +// if ((!distanceStr.isEmpty()) && (!timeStr.isEmpty()) { +// // calc +// } + + // if time + pace + + // if pace + distance + + } + + private void validateInput(String distanceStr, + String timeMinStr, + String timeSecStr, + String paceMinStr, + String paceSecStr) { + + String decimal = "."; + String timeStr = timeMinStr += decimal += timeSecStr; + String paceStr = paceMinStr += decimal += paceSecStr; + + checkIfInputValid(distanceStr, timeStr, paceStr); + checkIfNoInputsEmpty(distanceStr, timeStr, paceStr); + checkIfTwoInputsEmpty(distanceStr, timeStr, paceStr); + checkIfAllInputsEmpty(distanceStr, timeStr, paceStr); + } + + private void checkIfInputValid(String distanceStr, String timeStr, String paceStr) { + ArrayList input = new ArrayList<>(); + input.add(distanceStr); + input.add(timeStr); + input.add(paceStr); + + // iterate and verify whether input is in numeric characters only. ignore decimal. +// for (String field : input) { +// if (field.isNumeric) { +// // continue +// } +// } + } + + private void checkIfNoInputsEmpty(String distanceStr, String timeStr, String paceStr) { + // if all have data specified... + if ((!distanceStr.isEmpty()) && + (!timeStr.isEmpty()) && + (!paceStr.isEmpty())) { + // do nothing + } + } + + private void checkIfTwoInputsEmpty(String distanceStr, String timeStr, String paceStr) { + // if one has data specified...not the fastest way to check. + if ((!distanceStr.isEmpty()) && + (timeStr.isEmpty()) && + (paceStr.isEmpty())) { + // do nothing + } + + if ((distanceStr.isEmpty()) && + (!timeStr.isEmpty()) && + (paceStr.isEmpty())) { + // do nothing + } + + if ((distanceStr.isEmpty()) && + (timeStr.isEmpty()) && + (!paceStr.isEmpty())) { + // do nothing + } + } + + private void checkIfAllInputsEmpty(String distanceStr, String timeStr, String paceStr) { + // if none have data specified... + if ((distanceStr.isEmpty()) && + (timeStr.isEmpty()) && + (paceStr.isEmpty())) { + // do nothing + } } } diff --git a/src/main/res/layout/activity_pace_calculator.xml b/src/main/res/layout/activity_pace_calculator.xml index ed76b3e..1137324 100644 --- a/src/main/res/layout/activity_pace_calculator.xml +++ b/src/main/res/layout/activity_pace_calculator.xml @@ -1,8 +1,14 @@ - + android:orientation="vertical"> + + + + \ No newline at end of file From 5067adf0f6de8eba25675de15e574301b0411ace Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 15:21:24 -0400 Subject: [PATCH 2/6] Mid-afternoon progress --- build.gradle | 3 - src/main/java/nyc/c4q/ListActivity.java | 9 +- src/main/java/nyc/c4q/ListAdapter.java | 6 +- .../java/nyc/c4q/PaceCalculatorActivity.java | 95 ++++++++++++------- src/main/java/nyc/c4q/Person.java | 12 +++ src/main/res/raw/books.json | 2 +- 6 files changed, 81 insertions(+), 46 deletions(-) diff --git a/build.gradle b/build.gradle index c7daa7a..7c6b66b 100644 --- a/build.gradle +++ b/build.gradle @@ -33,9 +33,6 @@ dependencies { mavenCentral() } - // Butterknife - compile 'com.jakewharton:butterknife:7.0.1' - // Espresso androidTestCompile('com.android.support.test.espresso:espresso-core:2.0') androidTestCompile('com.android.support.test:testing-support-lib:0.1') diff --git a/src/main/java/nyc/c4q/ListActivity.java b/src/main/java/nyc/c4q/ListActivity.java index ea886f0..9545972 100644 --- a/src/main/java/nyc/c4q/ListActivity.java +++ b/src/main/java/nyc/c4q/ListActivity.java @@ -46,14 +46,9 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); - ArrayAdapter itemsAdapter = + ArrayAdapter peopleAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, PEOPLE); - list = (ListView) findViewById(R.id.list); - - list.setAdapter(itemsAdapter); + list.setAdapter(peopleAdapter); } - - - } diff --git a/src/main/java/nyc/c4q/ListAdapter.java b/src/main/java/nyc/c4q/ListAdapter.java index 655387f..951a996 100644 --- a/src/main/java/nyc/c4q/ListAdapter.java +++ b/src/main/java/nyc/c4q/ListAdapter.java @@ -22,7 +22,7 @@ public View getView(int position, View convertView, ViewGroup parent) { // Get data for current position Person person = getItem(position); - // Check if an existing view is being reused, otherwise inflate the view + // Is existing view being used? If not, inflate a view. if (convertView == null) { convertView = LayoutInflater.from(getContext()).inflate(R.layout.listitem_member, parent, false); } @@ -32,8 +32,8 @@ public View getView(int position, View convertView, ViewGroup parent) { TextView tvHouse = (TextView) convertView.findViewById(R.id.text_house); // Populate data into view using data object - tvName.setText(person.firstName + " " + person.lastName); - tvHouse.setText(person.house); + tvName.setText(person.getFirstName() + " " + person.getLastName()); + tvHouse.setText(person.getHouse().toString()); return convertView; } diff --git a/src/main/java/nyc/c4q/PaceCalculatorActivity.java b/src/main/java/nyc/c4q/PaceCalculatorActivity.java index 556dda1..ced961c 100644 --- a/src/main/java/nyc/c4q/PaceCalculatorActivity.java +++ b/src/main/java/nyc/c4q/PaceCalculatorActivity.java @@ -5,16 +5,14 @@ import android.app.FragmentTransaction; import android.os.Bundle; import android.support.v4.app.FragmentActivity; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; import java.util.ArrayList; -import butterknife.Bind; -import butterknife.ButterKnife; -import butterknife.OnClick; - public class PaceCalculatorActivity extends FragmentActivity { private double inputDistance; private int inputTimeMin; @@ -22,48 +20,52 @@ public class PaceCalculatorActivity extends FragmentActivity { private int inputPaceMin; private int inputPaceSec; - @Bind(R.id.input_distance) - EditText etDistance; - @Bind(R.id.input_time_min) - EditText etTimeMin; - @Bind(R.id.input_time_sec) - EditText etTimeSec; - @Bind(R.id.input_pace_min) - EditText etPaceMin; - @Bind(R.id.input_pace_sec) - EditText etPaceSec; - @Bind(R.id.button_calculate) - Button btnCalculate; + private String distanceStr; + private String timeStr; + private String paceStr; + + private String timeMinStr; + private String timeSecStr; + private String paceMinStr; + private String paceSecStr; + + private EditText etDistance; + private EditText etTimeMin; + private EditText etTimeSec; + private EditText etPaceMin; + private EditText etPaceSec; + private Button btnCalculate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pace_calculator); - ButterKnife.bind(this); + initViews(); // get fragment manager FragmentManager fm = getFragmentManager(); + CalcFragment calcFrag = new CalcFragment(); + // fragment add FragmentTransaction ft = fm.beginTransaction(); - ft.add(R.id.fragment_pace_calculator, new Fragment()); + ft.add(R.id.fragment_pace_calculator, calcFrag); ft.commit(); // todo: fix fragment, calculate } - @OnClick(R.id.button_calculate) - public void calculate(View view) { - - // get values from edittexts - String distanceStr = etDistance.getText().toString(); - String timeMinStr = etTimeMin.getText().toString(); - String timeSecStr = etTimeSec.getText().toString(); - String paceMinStr = etPaceMin.getText().toString(); - String paceSecStr = etPaceSec.getText().toString(); + private void initViews() { + etDistance = (EditText) findViewById(R.id.input_distance); + etTimeMin = (EditText) findViewById(R.id.input_time_min); + etTimeSec = (EditText) findViewById(R.id.input_time_sec); + etPaceMin = (EditText) findViewById(R.id.input_pace_min); + etPaceSec = (EditText) findViewById(R.id.input_pace_sec); + } - validateInput(distanceStr, timeMinStr, timeSecStr, paceMinStr, paceSecStr); + private double calculate(String distanceStr, String timeStr, String paceStr) { + double answer = 0; // if distance + time // if ((!distanceStr.isEmpty()) && (!timeStr.isEmpty()) { @@ -74,6 +76,8 @@ public void calculate(View view) { // if pace + distance + return answer; + } private void validateInput(String distanceStr, @@ -83,8 +87,8 @@ private void validateInput(String distanceStr, String paceSecStr) { String decimal = "."; - String timeStr = timeMinStr += decimal += timeSecStr; - String paceStr = paceMinStr += decimal += paceSecStr; + timeStr = timeMinStr += decimal += timeSecStr; + paceStr = paceMinStr += decimal += paceSecStr; checkIfInputValid(distanceStr, timeStr, paceStr); checkIfNoInputsEmpty(distanceStr, timeStr, paceStr); @@ -100,7 +104,7 @@ private void checkIfInputValid(String distanceStr, String timeStr, String paceSt // iterate and verify whether input is in numeric characters only. ignore decimal. // for (String field : input) { -// if (field.isNumeric) { +// if (field.charAt(i).isNumber || field.charAt(i).equals('.')) { // // continue // } // } @@ -116,7 +120,7 @@ private void checkIfNoInputsEmpty(String distanceStr, String timeStr, String pac } private void checkIfTwoInputsEmpty(String distanceStr, String timeStr, String paceStr) { - // if one has data specified...not the fastest way to check. + // if only one has data specified... if ((!distanceStr.isEmpty()) && (timeStr.isEmpty()) && (paceStr.isEmpty())) { @@ -145,4 +149,31 @@ private void checkIfAllInputsEmpty(String distanceStr, String timeStr, String pa } } + public class CalcFragment extends Fragment implements View.OnClickListener { + private Button btnCalculate; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.fragment_pace_calculator, null); + btnCalculate = (Button) findViewById(R.id.button_calculate); + btnCalculate.setOnClickListener(this); + + return view; + } + + @Override + public void onClick(View v) { + // get values from edittexts + distanceStr = etDistance.getText().toString(); + timeMinStr = etTimeMin.getText().toString(); + timeSecStr = etTimeSec.getText().toString(); + paceMinStr = etPaceMin.getText().toString(); + paceSecStr = etPaceSec.getText().toString(); + + validateInput(distanceStr, timeMinStr, timeSecStr, paceMinStr, paceSecStr); + + calculate(distanceStr, timeStr, paceStr); + } + } } diff --git a/src/main/java/nyc/c4q/Person.java b/src/main/java/nyc/c4q/Person.java index 2f2f167..f29d842 100644 --- a/src/main/java/nyc/c4q/Person.java +++ b/src/main/java/nyc/c4q/Person.java @@ -10,4 +10,16 @@ public Person(String firstName, String lastName, House house) { this.lastName = lastName; this.house = house; } + + public String getFirstName() { + return firstName; + } + + public String getLastName() { + return lastName; + } + + public House getHouse() { + return house; + } } diff --git a/src/main/res/raw/books.json b/src/main/res/raw/books.json index 8cc9673..79b378e 100644 --- a/src/main/res/raw/books.json +++ b/src/main/res/raw/books.json @@ -838,7 +838,7 @@ "isbn": "0439554934", "isbn13": "9780439554930", "publisher": "Scholastic", - "publishyear": 2003. + "publishyear": 2003, "checkedout": true, "checkedoutby": 38, "checkoutdateyear": 2015, From 6a22c687158a3d2177309f5ea46aa069b2fe814e Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 16:07:29 -0400 Subject: [PATCH 3/6] Started Library System --- src/main/java/nyc/c4q/Books.java | 247 ++++++++++++++++++++++ src/main/java/nyc/c4q/BooksDbSchema.java | 28 +++ src/main/java/nyc/c4q/DatabaseHelper.java | 33 +++ src/main/java/nyc/c4q/Members.java | 123 +++++++++++ 4 files changed, 431 insertions(+) create mode 100644 src/main/java/nyc/c4q/Books.java create mode 100644 src/main/java/nyc/c4q/BooksDbSchema.java create mode 100644 src/main/java/nyc/c4q/DatabaseHelper.java create mode 100644 src/main/java/nyc/c4q/Members.java diff --git a/src/main/java/nyc/c4q/Books.java b/src/main/java/nyc/c4q/Books.java new file mode 100644 index 0000000..bea2a2a --- /dev/null +++ b/src/main/java/nyc/c4q/Books.java @@ -0,0 +1,247 @@ +package nyc.c4q; + +import com.google.gson.annotations.Expose; + +public class Books { + + @Expose + private Integer id; + @Expose + private String title; + @Expose + private String author; + @Expose + private String isbn; + @Expose + private String isbn13; + @Expose + private String publisher; + @Expose + private Integer publishyear; + @Expose + private Boolean checkedout; + @Expose + private Integer checkedoutby; + @Expose + private Integer checkoutdateyear; + @Expose + private Integer checkoutdatemonth; + @Expose + private Integer checkoutdateday; + @Expose + private Integer duedateyear; + @Expose + private Integer duedatemonth; + @Expose + private Integer duedateday; + + /** + * @return The id + */ + public Integer getId() { + return id; + } + + /** + * @param id The id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * @return The title + */ + public String getTitle() { + return title; + } + + /** + * @param title The title + */ + public void setTitle(String title) { + this.title = title; + } + + /** + * @return The author + */ + public String getAuthor() { + return author; + } + + /** + * @param author The author + */ + public void setAuthor(String author) { + this.author = author; + } + + /** + * @return The isbn + */ + public String getIsbn() { + return isbn; + } + + /** + * @param isbn The isbn + */ + public void setIsbn(String isbn) { + this.isbn = isbn; + } + + /** + * @return The isbn13 + */ + public String getIsbn13() { + return isbn13; + } + + /** + * @param isbn13 The isbn13 + */ + public void setIsbn13(String isbn13) { + this.isbn13 = isbn13; + } + + /** + * @return The publisher + */ + public String getPublisher() { + return publisher; + } + + /** + * @param publisher The publisher + */ + public void setPublisher(String publisher) { + this.publisher = publisher; + } + + /** + * @return The publishyear + */ + public Integer getPublishyear() { + return publishyear; + } + + /** + * @param publishyear The publishyear + */ + public void setPublishyear(Integer publishyear) { + this.publishyear = publishyear; + } + + /** + * @return The checkedout + */ + public Boolean getCheckedout() { + return checkedout; + } + + /** + * @param checkedout The checkedout + */ + public void setCheckedout(Boolean checkedout) { + this.checkedout = checkedout; + } + + /** + * @return The checkedoutby + */ + public Integer getCheckedoutby() { + return checkedoutby; + } + + /** + * @param checkedoutby The checkedoutby + */ + public void setCheckedoutby(Integer checkedoutby) { + this.checkedoutby = checkedoutby; + } + + /** + * @return The checkoutdateyear + */ + public Integer getCheckoutdateyear() { + return checkoutdateyear; + } + + /** + * @param checkoutdateyear The checkoutdateyear + */ + public void setCheckoutdateyear(Integer checkoutdateyear) { + this.checkoutdateyear = checkoutdateyear; + } + + /** + * @return The checkoutdatemonth + */ + public Integer getCheckoutdatemonth() { + return checkoutdatemonth; + } + + /** + * @param checkoutdatemonth The checkoutdatemonth + */ + public void setCheckoutdatemonth(Integer checkoutdatemonth) { + this.checkoutdatemonth = checkoutdatemonth; + } + + /** + * @return The checkoutdateday + */ + public Integer getCheckoutdateday() { + return checkoutdateday; + } + + /** + * @param checkoutdateday The checkoutdateday + */ + public void setCheckoutdateday(Integer checkoutdateday) { + this.checkoutdateday = checkoutdateday; + } + + /** + * @return The duedateyear + */ + public Integer getDuedateyear() { + return duedateyear; + } + + /** + * @param duedateyear The duedateyear + */ + public void setDuedateyear(Integer duedateyear) { + this.duedateyear = duedateyear; + } + + /** + * @return The duedatemonth + */ + public Integer getDuedatemonth() { + return duedatemonth; + } + + /** + * @param duedatemonth The duedatemonth + */ + public void setDuedatemonth(Integer duedatemonth) { + this.duedatemonth = duedatemonth; + } + + /** + * @return The duedateday + */ + public Integer getDuedateday() { + return duedateday; + } + + /** + * @param duedateday The duedateday + */ + public void setDuedateday(Integer duedateday) { + this.duedateday = duedateday; + } +} \ No newline at end of file diff --git a/src/main/java/nyc/c4q/BooksDbSchema.java b/src/main/java/nyc/c4q/BooksDbSchema.java new file mode 100644 index 0000000..1bf0ad5 --- /dev/null +++ b/src/main/java/nyc/c4q/BooksDbSchema.java @@ -0,0 +1,28 @@ +package nyc.c4q; + +/** + * Created by jaellysbales on 8/30/15. + */ +public class BooksDbSchema { + public static final class BooksTable { + public static final String name = "books"; + + public static final class Cols { + public static final String ID = "id"; + public static final String TITLE = "title"; + public static final String AUTHOR = "author"; + public static final String ISBN = "isbn"; + public static final String ISBN13 = "isbn13"; + public static final String PUBLISHER = "publisher"; + public static final String PUBLISHYEAR = "publish year"; + public static final String CHECKEDOUT = "checked out"; + public static final String CHECKEDOUTBY = "checked out by"; + public static final String CHECKOUTDATEYEAR = "check out date year"; + public static final String CHECKOUTDATEMONTH = "check out date month"; + public static final String CHECKOUTDATEDAY = "check out date day"; + public static final String DUEDATEYEAR = "due date year"; + public static final String DUEDATEMONTH = "due date month"; + public static final String DUEDATEDAY = "due date day"; + } + } +} diff --git a/src/main/java/nyc/c4q/DatabaseHelper.java b/src/main/java/nyc/c4q/DatabaseHelper.java new file mode 100644 index 0000000..6a3aec6 --- /dev/null +++ b/src/main/java/nyc/c4q/DatabaseHelper.java @@ -0,0 +1,33 @@ +package nyc.c4q; + +import android.content.Context; +import android.database.DatabaseErrorHandler; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +/** + * Created by jaellysbales on 8/30/15. + */ +public class DatabaseHelper extends SQLiteOpenHelper { + + private static final int VERSION = 1; + private static final String DATABASE_NAME = "booksBase.db"; + + public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { + super(context, DATABASE_NAME, null, VERSION); + } + + public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { + super(context, DATABASE_NAME, null, VERSION, errorHandler); + } + + @Override + public void onCreate(SQLiteDatabase db) { + + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + + } +} diff --git a/src/main/java/nyc/c4q/Members.java b/src/main/java/nyc/c4q/Members.java new file mode 100644 index 0000000..7dabe82 --- /dev/null +++ b/src/main/java/nyc/c4q/Members.java @@ -0,0 +1,123 @@ +package nyc.c4q; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Members { + + @Expose + private Integer id; + @Expose + private String name; + @SerializedName("dob_month") + @Expose + private Integer dobMonth; + @SerializedName("dob_day") + @Expose + private Integer dobDay; + @SerializedName("dob_year") + @Expose + private Integer dobYear; + @Expose + private String city; + @Expose + private String state; + + /** + * @return The id + */ + public Integer getId() { + return id; + } + + /** + * @param id The id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * @return The name + */ + public String getName() { + return name; + } + + /** + * @param name The name + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return The dobMonth + */ + public Integer getDobMonth() { + return dobMonth; + } + + /** + * @param dobMonth The dob_month + */ + public void setDobMonth(Integer dobMonth) { + this.dobMonth = dobMonth; + } + + /** + * @return The dobDay + */ + public Integer getDobDay() { + return dobDay; + } + + /** + * @param dobDay The dob_day + */ + public void setDobDay(Integer dobDay) { + this.dobDay = dobDay; + } + + /** + * @return The dobYear + */ + public Integer getDobYear() { + return dobYear; + } + + /** + * @param dobYear The dob_year + */ + public void setDobYear(Integer dobYear) { + this.dobYear = dobYear; + } + + /** + * @return The city + */ + public String getCity() { + return city; + } + + /** + * @param city The city + */ + public void setCity(String city) { + this.city = city; + } + + /** + * @return The state + */ + public String getState() { + return state; + } + + /** + * @param state The state + */ + public void setState(String state) { + this.state = state; + } +} \ No newline at end of file From f384a70cdcd1ea0b1eaed4a17fb178e20490ca64 Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 16:24:35 -0400 Subject: [PATCH 4/6] Database --- src/main/java/nyc/c4q/DatabaseHelper.java | 20 ++++++++++++++++++++ src/main/java/nyc/c4q/LibraryActivity.java | 12 ++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/main/java/nyc/c4q/DatabaseHelper.java b/src/main/java/nyc/c4q/DatabaseHelper.java index 6a3aec6..40e53b7 100644 --- a/src/main/java/nyc/c4q/DatabaseHelper.java +++ b/src/main/java/nyc/c4q/DatabaseHelper.java @@ -5,6 +5,8 @@ import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; +import nyc.c4q.BooksDbSchema.BooksTable; + /** * Created by jaellysbales on 8/30/15. */ @@ -23,6 +25,24 @@ public DatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory @Override public void onCreate(SQLiteDatabase db) { + db.execSQL("create table" + BooksTable.name + "(" + + " _id integer primary key autoincrement, " + + BooksTable.Cols.ID + ", " + + BooksTable.Cols.TITLE + ", " + + BooksTable.Cols.AUTHOR + ", " + + BooksTable.Cols.ISBN + ", " + + BooksTable.Cols.ISBN13 + ", " + + BooksTable.Cols.PUBLISHER + ", " + + BooksTable.Cols.PUBLISHYEAR + ", " + + BooksTable.Cols.CHECKEDOUT + ", " + + BooksTable.Cols.CHECKEDOUTBY + ", " + + BooksTable.Cols.CHECKOUTDATEYEAR + ", " + + BooksTable.Cols.CHECKOUTDATEMONTH + ", " + + BooksTable.Cols.CHECKOUTDATEDAY + ", " + + BooksTable.Cols.DUEDATEYEAR + ", " + + BooksTable.Cols.DUEDATEMONTH + ", " + + BooksTable.Cols.DUEDATEDAY + ", " + ); } diff --git a/src/main/java/nyc/c4q/LibraryActivity.java b/src/main/java/nyc/c4q/LibraryActivity.java index ca2a050..dd63bd0 100644 --- a/src/main/java/nyc/c4q/LibraryActivity.java +++ b/src/main/java/nyc/c4q/LibraryActivity.java @@ -1,14 +1,20 @@ package nyc.c4q; import android.app.Activity; +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.EditText; +import java.util.ArrayList; + public class LibraryActivity extends Activity { public EditText inputParameter; + private Context mContext; + private SQLiteDatabase mDatabase; @Override protected void onCreate(Bundle savedInstanceState) { @@ -18,6 +24,12 @@ protected void onCreate(Bundle savedInstanceState) { inputParameter = (EditText) findViewById(R.id.input_parameter); } + private LibraryActivity (Context context) { + mContext = context.getApplicationContext(); + mDatabase = new DatabaseHelper(mContext).getWritableDatabase(); +// mBooks = new ArrayList<>(); + } + public void checkOut(int memberId, int bookId) { // TODO This method is called when the member with the given ID checks // out the book with the given ID. Update the system accordingly. From aa5d469fd591876317d0c4a6fc69f247eaf67431 Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 17:55:57 -0400 Subject: [PATCH 5/6] Committing progress --- src/main/java/nyc/c4q/House.java | 2 +- src/main/java/nyc/c4q/LibraryActivity.java | 42 +++++-- src/main/java/nyc/c4q/ListActivity.java | 122 ++++++++++++++++----- src/main/java/nyc/c4q/ListAdapter.java | 41 ------- 4 files changed, 129 insertions(+), 78 deletions(-) delete mode 100644 src/main/java/nyc/c4q/ListAdapter.java diff --git a/src/main/java/nyc/c4q/House.java b/src/main/java/nyc/c4q/House.java index ae92e05..6b72a34 100644 --- a/src/main/java/nyc/c4q/House.java +++ b/src/main/java/nyc/c4q/House.java @@ -4,5 +4,5 @@ public enum House { Gryffindor, Ravenclaw, Hufflepuff, - Slytherin + Slytherin; } diff --git a/src/main/java/nyc/c4q/LibraryActivity.java b/src/main/java/nyc/c4q/LibraryActivity.java index dd63bd0..1bef84e 100644 --- a/src/main/java/nyc/c4q/LibraryActivity.java +++ b/src/main/java/nyc/c4q/LibraryActivity.java @@ -1,13 +1,14 @@ package nyc.c4q; import android.app.Activity; +import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.EditText; -import java.util.ArrayList; +import nyc.c4q.BooksDbSchema.BooksTable; public class LibraryActivity extends Activity { @@ -21,13 +22,11 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_library); - inputParameter = (EditText) findViewById(R.id.input_parameter); - } - - private LibraryActivity (Context context) { - mContext = context.getApplicationContext(); - mDatabase = new DatabaseHelper(mContext).getWritableDatabase(); + mContext = this.getApplicationContext(); +// mDatabase = new DatabaseHelper(mContext).getWritableDatabase(); // mBooks = new ArrayList<>(); + + inputParameter = (EditText) findViewById(R.id.input_parameter); } public void checkOut(int memberId, int bookId) { @@ -55,6 +54,7 @@ public void button_getBook_onClick(View view) { String isbn = inputParameter.getText().toString(); // TODO Display book information for the book with the given ISBN. + } public void button_getCheckedOut_onClick(View view) { @@ -65,4 +65,32 @@ public void button_getCheckedOut_onClick(View view) { // earliest due first. } + private static ContentValues getContentValues(Books book) { + ContentValues values = new ContentValues(); + + values.put(BooksTable.Cols.ID, book.getId().toString()); + values.put(BooksTable.Cols.TITLE, book.getTitle()); + values.put(BooksTable.Cols.AUTHOR, book.getAuthor()); + values.put(BooksTable.Cols.ISBN, book.getIsbn()); + values.put(BooksTable.Cols.ISBN13, book.getIsbn13()); + values.put(BooksTable.Cols.PUBLISHER, book.getPublisher()); + values.put(BooksTable.Cols.PUBLISHYEAR, book.getPublishyear()); + values.put(BooksTable.Cols.CHECKEDOUT, book.getCheckedout()); + values.put(BooksTable.Cols.CHECKEDOUTBY, book.getCheckedoutby()); + values.put(BooksTable.Cols.CHECKOUTDATEYEAR, book.getCheckoutdateyear()); + values.put(BooksTable.Cols.CHECKOUTDATEMONTH, book.getCheckoutdatemonth()); + values.put(BooksTable.Cols.CHECKOUTDATEDAY, book.getCheckoutdateday()); + values.put(BooksTable.Cols.DUEDATEYEAR, book.getDuedateyear()); + values.put(BooksTable.Cols.DUEDATEMONTH, book.getDuedatemonth()); + values.put(BooksTable.Cols.DUEDATEDAY, book.getDuedateday()); + + return values; + } + + public void addBook(Books b) { + ContentValues values = getContentValues(b); + mDatabase.insert(BooksTable.name, null, values); + } + + } diff --git a/src/main/java/nyc/c4q/ListActivity.java b/src/main/java/nyc/c4q/ListActivity.java index 9545972..52a2105 100644 --- a/src/main/java/nyc/c4q/ListActivity.java +++ b/src/main/java/nyc/c4q/ListActivity.java @@ -1,44 +1,56 @@ package nyc.c4q; import android.app.Activity; +import android.content.Context; +import android.graphics.Color; import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; import android.widget.ArrayAdapter; +import android.widget.Button; import android.widget.ListView; +import android.widget.TextView; +import java.util.ArrayList; -public class ListActivity extends Activity { + +public class ListActivity extends Activity implements View.OnClickListener { public ListView list; + public Button btnName; + public Button btnColor; + public static final Person[] PEOPLE = { - new Person("Hannah", "Abbott", House.Hufflepuff), - new Person("Katie", "Bell", House.Gryffindor), - new Person("Susan", "Bones", House.Hufflepuff), - new Person("Terry", "Boot", House.Ravenclaw), - new Person("Lavender", "Brown", House.Gryffindor), - new Person("Cho", "Chang", House.Ravenclaw), - new Person("Michael", "Corner", House.Ravenclaw), - new Person("Colin", "Creevey", House.Gryffindor), - new Person("Marietta", "Edgecombe", House.Ravenclaw), - new Person("Justin", "Finch-Fletchley", House.Hufflepuff), - new Person("Seamus", "Finnigan", House.Gryffindor), - new Person("Anthony", "Goldstein", House.Ravenclaw), - new Person("Hermione", "Granger", House.Gryffindor), - new Person("Angelina", "Johnson", House.Gryffindor), - new Person("Lee", "Jordan", House.Gryffindor), - new Person("Neville", "Longbottom", House.Gryffindor), - new Person("Luna", "Lovegood", House.Ravenclaw), - new Person("Ernie", "Macmillan", House.Hufflepuff), - new Person("Parvati", "Patil", House.Gryffindor), - new Person("Padma", "Patil", House.Ravenclaw), - new Person("Harry", "Potter", House.Gryffindor), - new Person("Zacharias", "Smith", House.Hufflepuff), - new Person("Alicia", "Spinnet", House.Gryffindor), - new Person("Dean", "Thomas", House.Gryffindor), - new Person("Fred", "Weasley", House.Gryffindor), - new Person("George", "Weasley", House.Gryffindor), - new Person("Ginny", "Weasley", House.Gryffindor), - new Person("Ron", "Weasley", House.Gryffindor) + new Person("Hannah", "Abbott", House.Hufflepuff), + new Person("Katie", "Bell", House.Gryffindor), + new Person("Susan", "Bones", House.Hufflepuff), + new Person("Terry", "Boot", House.Ravenclaw), + new Person("Lavender", "Brown", House.Gryffindor), + new Person("Cho", "Chang", House.Ravenclaw), + new Person("Michael", "Corner", House.Ravenclaw), + new Person("Colin", "Creevey", House.Gryffindor), + new Person("Marietta", "Edgecombe", House.Ravenclaw), + new Person("Justin", "Finch-Fletchley", House.Hufflepuff), + new Person("Seamus", "Finnigan", House.Gryffindor), + new Person("Anthony", "Goldstein", House.Ravenclaw), + new Person("Hermione", "Granger", House.Gryffindor), + new Person("Angelina", "Johnson", House.Gryffindor), + new Person("Lee", "Jordan", House.Gryffindor), + new Person("Neville", "Longbottom", House.Gryffindor), + new Person("Luna", "Lovegood", House.Ravenclaw), + new Person("Ernie", "Macmillan", House.Hufflepuff), + new Person("Parvati", "Patil", House.Gryffindor), + new Person("Padma", "Patil", House.Ravenclaw), + new Person("Harry", "Potter", House.Gryffindor), + new Person("Zacharias", "Smith", House.Hufflepuff), + new Person("Alicia", "Spinnet", House.Gryffindor), + new Person("Dean", "Thomas", House.Gryffindor), + new Person("Fred", "Weasley", House.Gryffindor), + new Person("George", "Weasley", House.Gryffindor), + new Person("Ginny", "Weasley", House.Gryffindor), + new Person("Ron", "Weasley", House.Gryffindor) }; @Override @@ -46,9 +58,61 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); + initViews(); + ArrayAdapter peopleAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, PEOPLE); list = (ListView) findViewById(R.id.list); list.setAdapter(peopleAdapter); } + + private void initViews() { + btnName = (Button) findViewById(R.id.button_name); + btnColor = (Button) findViewById(R.id.button_color); + } + + @Override + public void onClick(View v) { + + } + + public class ListAdapter extends ArrayAdapter { + public ListAdapter(Context context, ArrayList people) { + super(context, 0, people); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + // Get data for current position + Person person = getItem(position); + + // Is existing view being used? If not, inflate a view. + if (convertView == null) { + convertView = LayoutInflater.from(getContext()).inflate(R.layout.listitem_member, parent, false); + } + + // Lookup view for person + TextView tvName = (TextView) convertView.findViewById(R.id.text_name); + TextView tvHouse = (TextView) convertView.findViewById(R.id.text_house); + + // Populate data into view using data object + tvHouse.setText(person.getHouse().name()); + + // Set row background color + + if (person.getHouse().toString().equalsIgnoreCase("gryffindor")) { + convertView.setBackgroundColor(getResources().getColor(R.color.gryffindor_red)); + } else if (person.getHouse().toString().equalsIgnoreCase("ravenclaw")) { + convertView.setBackgroundColor(getResources().getColor(R.color.ravenclaw_blue)); + } else if (person.getHouse().toString().equalsIgnoreCase("hufflepuff")) { + convertView.setBackgroundColor(getResources().getColor(R.color.hufflepuff_yellow)); + } else if (person.getHouse().toString().equalsIgnoreCase("slytherin")) { + convertView.setBackgroundColor(getResources().getColor(R.color.slytherin_green)); + } else { + convertView.setBackgroundColor(Color.parseColor("#000000")); + } + + return convertView; + } + } } diff --git a/src/main/java/nyc/c4q/ListAdapter.java b/src/main/java/nyc/c4q/ListAdapter.java deleted file mode 100644 index 951a996..0000000 --- a/src/main/java/nyc/c4q/ListAdapter.java +++ /dev/null @@ -1,41 +0,0 @@ -package nyc.c4q; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.TextView; - -import java.util.ArrayList; - -/** - * Created by jaellysbales on 8/30/15. - */ -public class ListAdapter extends ArrayAdapter { - public ListAdapter(Context context, ArrayList people) { - super(context, 0, people); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - // Get data for current position - Person person = getItem(position); - - // Is existing view being used? If not, inflate a view. - if (convertView == null) { - convertView = LayoutInflater.from(getContext()).inflate(R.layout.listitem_member, parent, false); - } - - // Lookup view for person - TextView tvName = (TextView) convertView.findViewById(R.id.text_name); - TextView tvHouse = (TextView) convertView.findViewById(R.id.text_house); - - // Populate data into view using data object - tvName.setText(person.getFirstName() + " " + person.getLastName()); - tvHouse.setText(person.getHouse().toString()); - - return convertView; - } -} - From 82cdf391bbeff44cbb66d2cb05ca7dbb3f2ee23f Mon Sep 17 00:00:00 2001 From: jaellysbales Date: Sun, 30 Aug 2015 18:12:13 -0400 Subject: [PATCH 6/6] Final submission --- src/main/java/nyc/c4q/ListActivity.java | 1 + .../java/nyc/c4q/PaceCalculatorActivity.java | 20 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/nyc/c4q/ListActivity.java b/src/main/java/nyc/c4q/ListActivity.java index 52a2105..efe9a67 100644 --- a/src/main/java/nyc/c4q/ListActivity.java +++ b/src/main/java/nyc/c4q/ListActivity.java @@ -96,6 +96,7 @@ public View getView(int position, View convertView, ViewGroup parent) { TextView tvHouse = (TextView) convertView.findViewById(R.id.text_house); // Populate data into view using data object + tvName.setText(person.getFirstName() + " " + person.getLastName()); tvHouse.setText(person.getHouse().name()); // Set row background color diff --git a/src/main/java/nyc/c4q/PaceCalculatorActivity.java b/src/main/java/nyc/c4q/PaceCalculatorActivity.java index ced961c..1810d37 100644 --- a/src/main/java/nyc/c4q/PaceCalculatorActivity.java +++ b/src/main/java/nyc/c4q/PaceCalculatorActivity.java @@ -10,6 +10,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.EditText; +import android.widget.Toast; import java.util.ArrayList; @@ -67,15 +68,18 @@ private void initViews() { private double calculate(String distanceStr, String timeStr, String paceStr) { double answer = 0; - // if distance + time -// if ((!distanceStr.isEmpty()) && (!timeStr.isEmpty()) { -// // calc -// } - - // if time + pace - - // if pace + distance + // if distance + time, time + pace, or pace + distance + if ((!distanceStr.isEmpty()) && (!timeStr.isEmpty())) { + answer = inputDistance / Integer.parseInt(timeStr); + } else if ((!timeStr.isEmpty()) && (!paceStr.isEmpty())) { + answer = Integer.parseInt(timeStr) * Integer.parseInt(paceStr); + } else if ((!distanceStr.isEmpty()) && (!paceStr.isEmpty())) { + answer = inputDistance / Integer.parseInt(paceStr); + } else { + Toast.makeText(this, "Error", Toast.LENGTH_SHORT); + } + // return, plug in to third field return answer; }