diff --git a/app/src/main/java/com/mdb/sirjan/easqlite/AddActivity.java b/app/src/main/java/com/mdb/sirjan/easqlite/AddActivity.java
index 5d13d88..b2356fa 100644
--- a/app/src/main/java/com/mdb/sirjan/easqlite/AddActivity.java
+++ b/app/src/main/java/com/mdb/sirjan/easqlite/AddActivity.java
@@ -57,10 +57,12 @@ public void onClick(View view) {
}
try {
- EaSQLite.addRow(league, row);
+ int succ = EaSQLite.addRow(league, row);
+ if (succ == -1) throw new IOException();
} catch (IOException e) {
Toast.makeText(AddActivity.this, "Addition to DB failed", Toast.LENGTH_SHORT).show();
}
+ Toast.makeText(AddActivity.this, "Addition to DB success", Toast.LENGTH_SHORT).show();
}
});
}
diff --git a/app/src/main/java/com/mdb/sirjan/easqlite/IntroActivity.java b/app/src/main/java/com/mdb/sirjan/easqlite/IntroActivity.java
index 9a03657..35ce09e 100644
--- a/app/src/main/java/com/mdb/sirjan/easqlite/IntroActivity.java
+++ b/app/src/main/java/com/mdb/sirjan/easqlite/IntroActivity.java
@@ -33,6 +33,25 @@ public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
+ if (EaSQLite.getTableNames() == null || EaSQLite.getTableNames().size() < 3) {
+ try {
+ EaSQLite.createTable("nfl");
+ addColumns("nfl");
+ EaSQLite.createTable("nba");
+ addColumns("nba");
+ EaSQLite.createTable("nhl");
+ addColumns("nhl");
+ } catch (InvalidInputException|InvalidTypeException e) {
+ new AlertDialog.Builder(IntroActivity.this)
+ .setTitle("Tables not Created")
+ .setPositiveButton("Close", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ finish();
+ }
+ }).show();
+ }
+ }
Button nflBtn = (Button) findViewById(R.id.btn_nfl);
Button nbaBtn = (Button) findViewById(R.id.btn_nba);
@@ -43,6 +62,13 @@ public void onClick(DialogInterface dialog, int which) {
setSpecificOnClickListener(nhlBtn, "nhl");
}
+ private void addColumns(String tableName) throws InvalidTypeException, InvalidInputException {
+ EaSQLite.addColumn(tableName, "name", EaSQLite.TEXT);
+ EaSQLite.addColumn(tableName, "age", EaSQLite.INTEGER);
+ EaSQLite.addColumn(tableName, "height", EaSQLite.INTEGER);
+ EaSQLite.addColumn(tableName, "team", EaSQLite.TEXT);
+ }
+
private void setSpecificOnClickListener(Button btn, final String league) {
btn.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/mdb/sirjan/easqlite/ViewEntriesActivity.java b/app/src/main/java/com/mdb/sirjan/easqlite/ViewEntriesActivity.java
index 03b0806..eb54e2c 100644
--- a/app/src/main/java/com/mdb/sirjan/easqlite/ViewEntriesActivity.java
+++ b/app/src/main/java/com/mdb/sirjan/easqlite/ViewEntriesActivity.java
@@ -2,6 +2,7 @@
import android.content.Intent;
import android.database.DataSetObserver;
+import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
@@ -26,18 +27,21 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_view_entries);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
+ Intent intent = getIntent();
+ final String tableName = intent.getStringExtra(LEAGUE_KEY);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
if (fab != null) {
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ Intent intent = new Intent(getApplicationContext(), AddActivity.class);
+ intent.putExtra(ViewEntriesActivity.LEAGUE_KEY, tableName);
+ startActivity(intent);
}
});
}
- Intent intent = getIntent();
- String tableName = intent.getStringExtra(LEAGUE_KEY);
setTitle("League: " + tableName);
displayTableContents(tableName);
}
@@ -67,6 +71,7 @@ private void displayTableContents(String tableName) {
private TextView getHeaderView(String leagueName) {
TextView view = new TextView(getApplicationContext());
view.setText(leagueName);
+ view.setTextColor(Color.BLACK);
return view;
}
@@ -124,12 +129,12 @@ public int getItemViewType(int position) {
@Override
public int getViewTypeCount() {
- return 0;
+ return 1;
}
@Override
public boolean isEmpty() {
- return false;
+ return entries.size() == 0;
}
};
}
diff --git a/app/src/main/res/layout/content_view_entries.xml b/app/src/main/res/layout/content_view_entries.xml
index 6901f8c..60f451a 100644
--- a/app/src/main/res/layout/content_view_entries.xml
+++ b/app/src/main/res/layout/content_view_entries.xml
@@ -1,9 +1,10 @@
-
+ android:id="@+id/name"
+ android:layout_weight="0.25">
+ android:layout_weight="0.25" >
+ android:layout_weight="0.25">
+ android:layout_weight="0.25" >
-
+
diff --git a/easqlitelib/src/main/java/com/mdb/easqlitelib/DatabaseHandler.java b/easqlitelib/src/main/java/com/mdb/easqlitelib/DatabaseHandler.java
index d04d6fd..ca03ba7 100644
--- a/easqlitelib/src/main/java/com/mdb/easqlitelib/DatabaseHandler.java
+++ b/easqlitelib/src/main/java/com/mdb/easqlitelib/DatabaseHandler.java
@@ -170,11 +170,7 @@ public int addRow(String tableName, Pair[] entries) throws IOExc
long id = db.insert(tableName, null, cv);
if (id < 0) return -1;
Entry entry = new Entry(id, list, table);
- try {
- table.addEntry(entry);
- } catch (InvalidTypeException e) {
- return -1;
- }
+ table.addEntry(entry);
return (int)id;
}
@@ -365,10 +361,8 @@ public static byte[] serialize(Object obj) throws IOException {
public List getTableNames(){
List tableNames = new ArrayList<>(tableMap.size());
- int count = 0;
- for(Map.Entry entry : tableMap.entrySet()){
- tableNames.add(count, entry.getKey());
- count++;
+ for (String s : tableMap.keySet()) {
+ tableNames.add(s);
}
return tableNames;
}
diff --git a/easqlitelib/src/main/java/com/mdb/easqlitelib/EaSQLite.java b/easqlitelib/src/main/java/com/mdb/easqlitelib/EaSQLite.java
index ebfc841..d4f6e61 100644
--- a/easqlitelib/src/main/java/com/mdb/easqlitelib/EaSQLite.java
+++ b/easqlitelib/src/main/java/com/mdb/easqlitelib/EaSQLite.java
@@ -14,6 +14,13 @@ public class EaSQLite {
// Static DatabaseHandler for managing database transactions.
private static DatabaseHandler dbHandler;
+ // Constants for all possible types
+ public static final String NULL = "NULL";
+ public static final String INTEGER = "INTEGER";
+ public static final String REAL = "REAL";
+ public static final String TEXT = "TEXT";
+ public static final String BLOB = "BLOB";
+
/**
* Initializes EaSQLite by setting up a database handler with a
* context from the Application. It will initialize all tables already
@@ -22,6 +29,8 @@ public class EaSQLite {
* @param context the context provided by the Application.
* @throws InvalidTypeException
* @throws InvalidInputException
+ * @throws IOException
+ * @throws ClassNotFoundException
*/
public static void initialize(Context context) throws InvalidTypeException, InvalidInputException, IOException, ClassNotFoundException {
dbHandler = new DatabaseHandler(context);
@@ -120,8 +129,8 @@ public static int getNumRows(String tableName) {
* specified column name and type.
* @param tableName the table name used to identify the table to add the column to.
* @param columnName the name of the column to be added.
- * @param type the type of the column to be added. The type can be: "INTEGER", "TEXT",
- * or "REAL."
+ * @param type the type of the column to be added. The type can be chosen from the
+ * constant EaSQLite type fields
* @return a boolean flag indicating success of the addition.
* @throws InvalidTypeException
* @throws InvalidInputException
diff --git a/easqlitelib/src/main/java/com/mdb/easqlitelib/structures/Entry.java b/easqlitelib/src/main/java/com/mdb/easqlitelib/structures/Entry.java
index 28d37d9..3c769b5 100644
--- a/easqlitelib/src/main/java/com/mdb/easqlitelib/structures/Entry.java
+++ b/easqlitelib/src/main/java/com/mdb/easqlitelib/structures/Entry.java
@@ -17,7 +17,7 @@ public class Entry {
public Entry(long id, List