();
+ while (rs.next()) {
+ outUserList.add(rs.getString(1));
+ }
+
+ if (outUserList.contains(username)) {
+ return true;
+ } else {
+ return false;
+ }
+
+
+ }
+
/**
* Verbindet sich mit dem Server
* Holt die eigenen Shoppinglisten vom Server. Und speichert diese in eine List mit Shoppinglist Objekten
@@ -94,6 +204,7 @@ public class Database {
/**
* Hoolt alle groups und items der list und erstelt ein Detail objekt von jeder group. Die detail objekte kommen in eine List
+ *
* @param sl_id Shoppinglist Id mit der gearbeitet wird
* @return Eine List mit Details über jede Shoppinglist
* @throws SQLException
@@ -121,6 +232,24 @@ public class Database {
}
+ /**
+ * Generiert eine neue 8 stellige sl_id
+ *
+ * @return Neue Sl_id
+ */
+ private String generateSL_Id() {
+ String possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ String output = "";
+
+ for (int i = 0; i < 8; i++) {
+ output += possible.charAt((int) Math.floor(Math.random() * possible.length()));
+ }
+
+ System.out.println("Generate SL_ID: " + output);
+
+ return output;
+ }
+
/**
* Holt alle Items einer bestimmten shoppingliste, angegeben durch die shoppinglist id
*
@@ -191,6 +320,84 @@ public class Database {
}
+ /**
+ * Bearbeitet die Eigenschaften einer Shoppingliste
+ * @param sl_id Shoppinglist Id welche zu bearbeiten ist
+ * @param newname Neuer Shoppinglistname
+ * @param newdescription Neue Shoppinglist Beschreibung
+ * @param newColor Neue Shoppinglist Farbe
+ * @throws SQLException
+ * @throws JSONException
+ */
+ public void editShoppinglist(String sl_id, String newname, String newdescription, String newColor) throws SQLException, JSONException {
+ Shoppinglist oldShoppinglist = getShoppinglist(sl_id);
+
+ if(!oldShoppinglist.getname().equals(newname) && newname != null){
+ sqlUpdate2Param("UPDATE \"Shoppinglist\" SET name = ? WHERE sl_id = ?", newname, sl_id);
+ }
+
+ if(!oldShoppinglist.getdescription().equals(newdescription) && newdescription != null){
+ sqlUpdate2Param("UPDATE \"Shoppinglist\" SET description = ? WHERE sl_id = ?", newdescription, sl_id);
+ }
+
+ if(!oldShoppinglist.getcolor().equals(newColor) && newColor != null){
+ sqlUpdate2Param("UPDATE \"Shoppinglist\" SET color = ? WHERE sl_id = ?", newColor, sl_id);
+ }
+ }
+
+
+ /**
+ * Führt einen SQL Befehl durch der keine rückgabe hat.
+ *
+ * @param SQL Der SQL befehl
+ * @param param ein Parameter
+ * @param param2 ein 2. Parameter
+ * @throws SQLException
+ */
+ private void sqlUpdate2Param(String SQL, String param, String param2) throws SQLException {
+ connectDatabase();
+ PreparedStatement pstmt = conect.prepareStatement(SQL);
+ pstmt.setString(1, param);
+ pstmt.setString(2, param2);
+ pstmt.executeUpdate();
+ }
+ /**
+ * Führt einen SQL Befehl durch der keine rückgabe hat.
+ *
+ * @param SQL Der SQL befehl
+ * @param param ein Parameter
+ * @throws SQLException
+ */
+ private void sqlUpdate(String SQL, String param) throws SQLException {
+ connectDatabase();
+ PreparedStatement pstmt = conect.prepareStatement(SQL);
+ pstmt.setString(1, param);
+ pstmt.executeUpdate();
+ }
+
+ /**
+ * Hollt eine Shoppingliste vom server
+ * @param sl_id Shoppingliste welche heruntergelanden werden soll
+ * @return Ein Shoppinglist Objekt
+ * @throws SQLException
+ * @throws JSONException
+ */
+ public Shoppinglist getShoppinglist(String sl_id) throws SQLException, JSONException {
+ String SQL = "SELECT row_to_json(\"Shoppinglist\") AS obj FROM \"Shoppinglist\" JOIN \"Shoppinglist_admin\" USING (sl_id) WHERE sl_id = ?";
+ connectDatabase();
+
+ PreparedStatement pstmt = conect.prepareStatement(SQL);
+ System.out.println(sl_id);
+ pstmt.setString(1, sl_id);
+ ResultSet rs = pstmt.executeQuery();
+ rs.next();
+ String resultString = rs.getString(1);
+ JSONObject jsonObject = new JSONObject(resultString);
+
+ return new Shoppinglist(sl_id, jsonObject.getString("name"), jsonObject.getString("description"), jsonObject.getString("invitelink"), jsonObject.getString("color"));
+ }
+
+
/**
* NICHT VERWENDEN FUNKTIONIERT NICHT!!
*
@@ -206,19 +413,15 @@ public class Database {
private ResultSet databaseRequest(String SQL, String uid) throws SQLException {
connectDatabase();
- ResultSet rs = null;
- try (PreparedStatement pstmt = conect.prepareStatement(SQL)) {
- pstmt.setString(1, uid);
- rs = pstmt.executeQuery();
- System.out.println(uid);
+ PreparedStatement pstmt = conect.prepareStatement(SQL);
+ pstmt.setString(1, uid);
+ ResultSet rs = pstmt.executeQuery();
+ System.out.println(uid);
- //HIER
- //WEITER
- //PROGRAMMIEREN
+ //HIER
+ //WEITER
+ //PROGRAMMIEREN
- } catch (SQLException ex) {
- System.out.println(ex.getMessage());
- }
return rs;
}
}
diff --git a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java
index d93f45b..1dee8f7 100644
--- a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java
+++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java
@@ -2,12 +2,16 @@ package at.smartshopper.smartshopper.shoppinglist;
import android.content.Context;
import android.content.Intent;
+import android.graphics.Color;
+import android.media.Image;
import android.net.Uri;
import android.os.Bundle;
+import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
@@ -15,14 +19,19 @@ import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso;
+import java.sql.SQLException;
import java.util.List;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.activitys.ShoppinglistDetails;
import at.smartshopper.smartshopper.customViews.RoundCornersTransformation;
+import at.smartshopper.smartshopper.db.Database;
public class ShoppinglistAdapter extends RecyclerView.Adapter {
+ private OnChangeItemClick onChangeClick;
+ private OnItemClicked onClick;
+ private at.smartshopper.smartshopper.db.Database db;
//this context we will use to inflate the layout
private Context mCtx;
@@ -38,6 +47,7 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_dash.xml b/app/src/main/res/layout/activity_dash.xml
index b957ffa..fdd25b3 100644
--- a/app/src/main/res/layout/activity_dash.xml
+++ b/app/src/main/res/layout/activity_dash.xml
@@ -90,7 +90,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/cardviewshoppinglist.xml b/app/src/main/res/layout/cardviewshoppinglist.xml
index d306b27..f030867 100644
--- a/app/src/main/res/layout/cardviewshoppinglist.xml
+++ b/app/src/main/res/layout/cardviewshoppinglist.xml
@@ -8,60 +8,132 @@
card_view:cardUseCompatPadding="true"
card_view:cardCornerRadius="8dp">
-
+ android:layout_height="match_parent" >
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index a9ca315..7eb6b55 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.2.1'
+ classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 9a4163a..ba8fe52 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,6 @@
+#Mon Jan 28 14:20:03 CET 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip