From e3a9736541fd7d73da56eeee3a802f01a9110b83 Mon Sep 17 00:00:00 2001
From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com>
Date: Wed, 20 Feb 2019 22:17:03 +0100
Subject: [PATCH] Linksharing fix, DB fix

---
 .../smartshopper/activitys/Dash.java          | 14 ++------
 .../smartshopper/db/Database.java             | 36 ++++++++++++++++++-
 2 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java b/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java
index 7b6c243..a10f5dd 100644
--- a/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java
+++ b/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java
@@ -558,19 +558,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
         finish.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                String eingabeLink = linkEingabe.getText().toString();
+                String invite = linkEingabe.getText().toString();
+
 
-                String delString = null;
-                if (eingabeLink.contains("https://")) {
-                    delString = "https://www.smartshopper.cf/invite/";
-                } else if (eingabeLink.contains("http://")) {
-                    delString = "http://www.smartshopper.cf/invite/";
-                } else if (eingabeLink.contains("www.smartshopper.cf/invite/")) {
-                    delString = "www.smartshopper.cf/invite/";
-                } else if (!eingabeLink.contains("www.smartshopper.cf/invite/")) {
-                    delString = "";
-                }
-                String invite = eingabeLink.replace(delString, "");
 
                 try {
                     db.addInviteLink(invite, FirebaseAuth.getInstance().getCurrentUser().getUid());
diff --git a/app/src/main/java/at/smartshopper/smartshopper/db/Database.java b/app/src/main/java/at/smartshopper/smartshopper/db/Database.java
index cba92ba..e75d362 100644
--- a/app/src/main/java/at/smartshopper/smartshopper/db/Database.java
+++ b/app/src/main/java/at/smartshopper/smartshopper/db/Database.java
@@ -142,6 +142,22 @@ public class Database {
         sqlUpdate2Param("DELETE FROM \"Shoppinglist_member\" WHERE sl_id = ? AND username = ?", sl_id, uid);
     }
 
+
+    private String getinviteFromLink(String eingabeLink){
+        String delString = null;
+        if (eingabeLink.contains("https://")) {
+            delString = "https://www.smartshopper.cf/invite/";
+        } else if (eingabeLink.contains("http://")) {
+            delString = "http://www.smartshopper.cf/invite/";
+        } else if (eingabeLink.contains("www.smartshopper.cf/invite/")) {
+            delString = "www.smartshopper.cf/invite/";
+        } else if (!eingabeLink.contains("www.smartshopper.cf/invite/")) {
+            delString = "";
+        }
+        String invite = eingabeLink.replace(delString, "");
+
+        return invite;
+    }
     /**
      * Gibt den Invite link einer Shoppingliste zurück, wenn keiner vorhanden ist --> null
      *
@@ -166,7 +182,7 @@ public class Database {
      */
     private String getSlIdFromInvite(String invitelink) throws SQLException, JSONException {
         String SQL = "Select sl_id from \"Shoppinglist\" WHERE invitelink = ?";
-        String returnSl_id = executeQuery(SQL, invitelink);
+        String returnSl_id = executeQuery(SQL, getinviteFromLink(invitelink));
         return returnSl_id;
     }
 
@@ -710,6 +726,24 @@ public class Database {
         return jsonObjects;
     }
 
+    /**
+     * Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List
+     *
+     * @param SQL   Der SQL der auszuführen ist
+     * @return Das ergebnis als JSONObject
+     * @throws SQLException
+     * @throws JSONException
+     */
+
+    public String executeQueryString1Param(String SQL, String param) throws SQLException, JSONException {
+        ArrayList<String> stringArrayList = new ArrayList<>();
+        PreparedStatement pstmt = conect.prepareStatement(SQL);
+        pstmt.setString(1, param);
+        ResultSet rsgroups = pstmt.executeQuery();
+        String result = rsgroups.getString(1);
+        return result;
+    }
+
     /**
      * Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List
      *