Dynamic Linking V2
Erstellt anstatt normalen invite links, dynamic links und speichert diese auch in die db
This commit is contained in:
parent
fef831ea54
commit
e2ae90d143
BIN
.idea/caches/gradle_models.ser
generated
BIN
.idea/caches/gradle_models.ser
generated
Binary file not shown.
@ -42,5 +42,5 @@ dependencies {
|
||||
implementation 'com.android.support:recyclerview-v7:28.0.0'
|
||||
implementation 'com.android.support:support-v4:28.0.0'
|
||||
implementation 'cz.msebera.android:httpclient:4.4.1.2'
|
||||
implementation 'com.google.firebase:firebase-dynamic-links:16.1.7'
|
||||
implementation 'com.google.firebase:firebase-dynamic-links:16.1.8'
|
||||
}
|
||||
|
@ -39,12 +39,16 @@ import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.auth.FirebaseUser;
|
||||
import com.google.firebase.dynamiclinks.DynamicLink;
|
||||
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
|
||||
import com.google.firebase.dynamiclinks.ShortDynamicLink;
|
||||
import com.google.firebase.iid.FirebaseInstanceId;
|
||||
import com.google.firebase.iid.InstanceIdResult;
|
||||
import com.squareup.picasso.Picasso;
|
||||
|
||||
import org.json.JSONException;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@ -138,7 +142,35 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
|
||||
setMsgId();
|
||||
|
||||
Intent getIntent = getIntent();
|
||||
String sl_idToGo = getIntent.getStringExtra("sl_idToGo");
|
||||
String inviteToAdd = getIntent.getStringExtra("inviteToAdd");
|
||||
|
||||
if (sl_idToGo != null && inviteToAdd != null) {
|
||||
try {
|
||||
db.addInviteLinkDynamicLink(inviteToAdd, FirebaseAuth.getInstance().getCurrentUser().getUid());
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// Damit werden die Shared Shoppinglists angezeigt
|
||||
|
||||
|
||||
// try {
|
||||
// TabHost tabhost = (TabHost) findViewById(R.id.tabHost1);
|
||||
// tabhost.setCurrentTab(1);
|
||||
// sharedswiperefresh.setRefreshing(true);
|
||||
// showSharedShoppingList(FirebaseAuth.getInstance().getCurrentUser().getUid());
|
||||
// sharedswiperefresh.setRefreshing(false);
|
||||
// } catch (JSONException e) {
|
||||
// e.printStackTrace();
|
||||
// } catch (SQLException e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//Damit wird die hinzugefügte shoppinglist angezeigt
|
||||
onShoppinglistClickContainer(sl_idToGo);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
@ -793,7 +825,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
}
|
||||
}
|
||||
|
||||
private void onShoppinglistClickContainer(String sl_id, View v) {
|
||||
private void onShoppinglistClickContainer(String sl_id) {
|
||||
finish();
|
||||
Intent intent = new Intent(this, ShoppinglistDetails.class);
|
||||
intent.putExtra("sl_id", sl_id);
|
||||
@ -827,109 +859,222 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
* @param sl_id Die Shoppingliste von der der invitelink gewünscht ist
|
||||
* @return
|
||||
*/
|
||||
private String getInviteLink(String sl_id) {
|
||||
// private String getInviteLink(String sl_id, String invitelink, String dynamiclink) {
|
||||
//
|
||||
// return link;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onShareClick(final String sl_id, final View v) {
|
||||
String link = null;
|
||||
try {
|
||||
if (db.isShared(sl_id)) {
|
||||
link = db.getInviteLink(sl_id);
|
||||
} else {
|
||||
final LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||
View popupContentView = inflater.inflate(R.layout.add_share, null);
|
||||
|
||||
link = db.createInviteLink(sl_id);
|
||||
final TextView linkausgabe = (TextView) popupContentView.findViewById(R.id.shareLink);
|
||||
linkausgabe.setText("invite.dergeorg.at/invite/" + link);
|
||||
|
||||
ImageButton exitButton = (ImageButton) popupContentView.findViewById(R.id.shareExit);
|
||||
Picasso.get().load(R.drawable.close).into(exitButton);
|
||||
exitButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
final Button copyButton = (Button) popupContentView.findViewById(R.id.shareCopy);
|
||||
copyButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
copyText(linkausgabe.getText().toString());
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
Button delShare = (Button) popupContentView.findViewById(R.id.delShare);
|
||||
|
||||
final String finalLink = link;
|
||||
delShare.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Shoppinglist spl = null;
|
||||
try {
|
||||
spl = db.getShoppinglist(db.getSlIdFromInvite(finalLink));
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
MyFirebaseSender myFirebaseSender = new MyFirebaseSender(db.getMembers(sl_id));
|
||||
myFirebaseSender.addMember(db.getAdmin(sl_id));
|
||||
myFirebaseSender.sendMessage("Das Sharing von " + spl.getname() + " wurde von " + db.getUser(FirebaseAuth.getInstance().getCurrentUser().getUid()).getName() + " aufgehoben!", spl.getname() + " sharing wurde geändert!");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
db.deleteInvite(finalLink);
|
||||
|
||||
|
||||
TabHost tabhost = (TabHost) findViewById(R.id.tabHost1);
|
||||
tabhost.setCurrentTab(0);
|
||||
sharedswiperefresh.setRefreshing(true);
|
||||
|
||||
showSharedShoppingList(FirebaseAuth.getInstance().getCurrentUser().getUid());
|
||||
sharedswiperefresh.setRefreshing(false);
|
||||
popupShare.dismiss();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
popupShare = new PopupWindow(popupContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
popupShare.setOutsideTouchable(false);
|
||||
popupShare.setFocusable(true);
|
||||
// Set an elevation value for popup window
|
||||
// Call requires API level 21
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
popupShare.setElevation(5.0f);
|
||||
}
|
||||
popupShare.setAnimationStyle(R.style.popup_window_animation_phone);
|
||||
|
||||
|
||||
popupShare.showAtLocation(v, Gravity.CENTER, 0, 0);
|
||||
popupShare.update();
|
||||
} else {
|
||||
final String invitelink = db.generateInviteLink();
|
||||
String url = "https://smartshopper.cf/androidinvite/" + sl_id;
|
||||
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
|
||||
.setLink(Uri.parse("https://smartshopper.cf/invite/" + invitelink + "?slid=" + sl_id))
|
||||
.setDomainUriPrefix("https://invite.dergeorg.at/invite")
|
||||
.setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
|
||||
.buildShortDynamicLink()
|
||||
.addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
|
||||
@Override
|
||||
public void onComplete(@NonNull Task<ShortDynamicLink> task) {
|
||||
if (task.isSuccessful()) {
|
||||
// Short link created
|
||||
final Uri shortLink = task.getResult().getShortLink();
|
||||
try {
|
||||
db.createInviteLink(sl_id, invitelink, db.getinviteFromLink(shortLink.toString()));
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
final LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||
View popupContentView = inflater.inflate(R.layout.add_share, null);
|
||||
|
||||
final TextView linkausgabe = (TextView) popupContentView.findViewById(R.id.shareLink);
|
||||
try {
|
||||
linkausgabe.setText("invite.dergeorg.at/invite/" + db.getInviteLink(sl_id));
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
ImageButton exitButton = (ImageButton) popupContentView.findViewById(R.id.shareExit);
|
||||
Picasso.get().load(R.drawable.close).into(exitButton);
|
||||
exitButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
final Button copyButton = (Button) popupContentView.findViewById(R.id.shareCopy);
|
||||
copyButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
copyText(linkausgabe.getText().toString());
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
Button delShare = (Button) popupContentView.findViewById(R.id.delShare);
|
||||
|
||||
delShare.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Shoppinglist spl = null;
|
||||
try {
|
||||
spl = db.getShoppinglist(sl_id);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
MyFirebaseSender myFirebaseSender = new MyFirebaseSender(db.getMembers(sl_id));
|
||||
myFirebaseSender.addMember(db.getAdmin(sl_id));
|
||||
myFirebaseSender.sendMessage("Das Sharing von " + spl.getname() + " wurde von " + db.getUser(FirebaseAuth.getInstance().getCurrentUser().getUid()).getName() + " aufgehoben!", spl.getname() + " sharing wurde geändert!");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
db.deleteInvite(db.getInviteLink(shortLink.toString()));
|
||||
|
||||
|
||||
TabHost tabhost = (TabHost) findViewById(R.id.tabHost1);
|
||||
tabhost.setCurrentTab(0);
|
||||
sharedswiperefresh.setRefreshing(true);
|
||||
|
||||
showSharedShoppingList(FirebaseAuth.getInstance().getCurrentUser().getUid());
|
||||
sharedswiperefresh.setRefreshing(false);
|
||||
popupShare.dismiss();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
popupShare = new PopupWindow(popupContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
popupShare.setOutsideTouchable(false);
|
||||
popupShare.setFocusable(true);
|
||||
// Set an elevation value for popup window
|
||||
// Call requires API level 21
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
popupShare.setElevation(5.0f);
|
||||
}
|
||||
popupShare.setAnimationStyle(R.style.popup_window_animation_phone);
|
||||
|
||||
|
||||
popupShare.showAtLocation(v, Gravity.CENTER, 0, 0);
|
||||
popupShare.update();
|
||||
Uri flowchartLink = task.getResult().getPreviewLink();
|
||||
} else {
|
||||
// Error
|
||||
// ...
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return link;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShareClick(final String sl_id, View v) {
|
||||
final String link = getInviteLink(sl_id);
|
||||
|
||||
final LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||
View popupContentView = inflater.inflate(R.layout.add_share, null);
|
||||
|
||||
final TextView linkausgabe = (TextView) popupContentView.findViewById(R.id.shareLink);
|
||||
linkausgabe.setText("www.smartshopper.cf/invite/" + link);
|
||||
|
||||
ImageButton exitButton = (ImageButton) popupContentView.findViewById(R.id.shareExit);
|
||||
Picasso.get().load(R.drawable.close).into(exitButton);
|
||||
exitButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
final Button copyButton = (Button) popupContentView.findViewById(R.id.shareCopy);
|
||||
copyButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
copyText(linkausgabe.getText().toString());
|
||||
popupShare.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
Button delShare = (Button) popupContentView.findViewById(R.id.delShare);
|
||||
|
||||
final String finalLink = link;
|
||||
delShare.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Shoppinglist spl = null;
|
||||
try {
|
||||
spl = db.getShoppinglist(db.getSlIdFromInvite(finalLink));
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
try {
|
||||
MyFirebaseSender myFirebaseSender = new MyFirebaseSender(db.getMembers(sl_id));
|
||||
myFirebaseSender.addMember(db.getAdmin(sl_id));
|
||||
myFirebaseSender.sendMessage("Das Sharing von " + spl.getname() + " wurde von " + db.getUser(FirebaseAuth.getInstance().getCurrentUser().getUid()).getName() + " aufgehoben!", spl.getname() + " sharing wurde geändert!");
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
db.deleteInvite(finalLink);
|
||||
|
||||
|
||||
TabHost tabhost = (TabHost) findViewById(R.id.tabHost1);
|
||||
tabhost.setCurrentTab(0);
|
||||
sharedswiperefresh.setRefreshing(true);
|
||||
|
||||
showSharedShoppingList(FirebaseAuth.getInstance().getCurrentUser().getUid());
|
||||
sharedswiperefresh.setRefreshing(false);
|
||||
popupShare.dismiss();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
popupShare = new PopupWindow(popupContentView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
popupShare.setOutsideTouchable(false);
|
||||
popupShare.setFocusable(true);
|
||||
// Set an elevation value for popup window
|
||||
// Call requires API level 21
|
||||
if (Build.VERSION.SDK_INT >= 21) {
|
||||
popupShare.setElevation(5.0f);
|
||||
}
|
||||
popupShare.setAnimationStyle(R.style.popup_window_animation_phone);
|
||||
|
||||
|
||||
popupShare.showAtLocation(v, Gravity.CENTER, 0, 0);
|
||||
popupShare.update();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -945,7 +1090,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
|
||||
@Override
|
||||
public void onShoppinglistClick(String sl_id, View v) {
|
||||
onShoppinglistClickContainer(sl_id, v);
|
||||
onShoppinglistClickContainer(sl_id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -959,7 +1104,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sharedOnShareClick(String sl_id, View v) {
|
||||
public void sharedOnShareClick(String sl_id, View v) throws SQLException, JSONException {
|
||||
final LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
|
||||
View popupContentView = inflater.inflate(R.layout.edit_share_member, null);
|
||||
|
||||
@ -970,7 +1115,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
Button stopShareBtn = popupContentView.findViewById(R.id.delShare);
|
||||
|
||||
|
||||
linkAusgabe.setText("www.smartshopper.cf/invite/" + getInviteLink(sl_id));
|
||||
linkAusgabe.setText("invite.dergeorg.at/invite/" + db.getInviteLink(sl_id));
|
||||
exitBtn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@ -1019,6 +1164,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
|
||||
|
||||
@Override
|
||||
public void sharedOnShoppinglistClick(String sl_id, View v) {
|
||||
onShoppinglistClickContainer(sl_id, v);
|
||||
onShoppinglistClickContainer(sl_id);
|
||||
}
|
||||
}
|
||||
|
@ -60,12 +60,21 @@ public class LoginActivity extends AppCompatActivity {
|
||||
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
|
||||
// Get deep link from result (may be null if no link is found)
|
||||
Uri deepLink = null;
|
||||
String sl_idToGo = "";
|
||||
if (pendingDynamicLinkData != null) {
|
||||
deepLink = pendingDynamicLinkData.getLink();
|
||||
String invite = deepLink.toString();
|
||||
invite = invite.replaceAll("https://smartshopper.cf/invite/", "");
|
||||
invite = invite.replaceAll(".slid=.*", "");
|
||||
sl_idToGo = deepLink.getQueryParameter("slid");
|
||||
Log.d("SmartShopper", deepLink.toString());
|
||||
if (null != mAuth.getCurrentUser()) {
|
||||
goDash(sl_idToGo, invite);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Handle the deep link. For example, open the linked
|
||||
// content, or apply promotional credit to the user's
|
||||
// account.
|
||||
@ -109,7 +118,7 @@ public class LoginActivity extends AppCompatActivity {
|
||||
/**
|
||||
* Wechselt zu der Dash Activity
|
||||
*/
|
||||
private void goDash() {
|
||||
private void goDash(String sl_idToGo, String inviteToAdd) {
|
||||
|
||||
FirebaseInstanceId.getInstance().getInstanceId()
|
||||
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
|
||||
@ -156,6 +165,10 @@ public class LoginActivity extends AppCompatActivity {
|
||||
|
||||
|
||||
Intent intent = new Intent(this, Dash.class);
|
||||
if(sl_idToGo != null){
|
||||
intent.putExtra("sl_idToGo", sl_idToGo);
|
||||
intent.putExtra("inviteToAdd", inviteToAdd);
|
||||
}
|
||||
finish();
|
||||
startActivity(intent);
|
||||
}
|
||||
@ -175,7 +188,7 @@ public class LoginActivity extends AppCompatActivity {
|
||||
// Sign in success, update UI with the signed-in user's information
|
||||
Log.d(TAG, "signInWithEmail:success");
|
||||
FirebaseUser user = mAuth.getCurrentUser();
|
||||
goDash();
|
||||
goDash(null, null);
|
||||
} else {
|
||||
// If sign in fails, display a message to the user.
|
||||
Log.w(TAG, "signInWithEmail:failure", task.getException());
|
||||
@ -225,7 +238,7 @@ public class LoginActivity extends AppCompatActivity {
|
||||
mAuth = FirebaseAuth.getInstance();
|
||||
db = new Database();
|
||||
|
||||
getDynamicLink();
|
||||
|
||||
|
||||
Button loginEmailBtn = (Button) findViewById(R.id.loginEmailBtn);
|
||||
final TextView email = (TextView) findViewById(R.id.email);
|
||||
@ -277,7 +290,7 @@ public class LoginActivity extends AppCompatActivity {
|
||||
// Sign in success, update UI with the signed-in user's information
|
||||
Log.d(TAG, "signInWithCredential:success");
|
||||
FirebaseUser user = mAuth.getCurrentUser();
|
||||
goDash();
|
||||
goDash(null, null);
|
||||
} else {
|
||||
// If sign in fails, display a message to the user.
|
||||
Log.w(TAG, "signInWithCredential:failure", task.getException());
|
||||
@ -297,9 +310,10 @@ public class LoginActivity extends AppCompatActivity {
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
|
||||
getDynamicLink();
|
||||
|
||||
if (null != mAuth.getCurrentUser()) {
|
||||
goDash();
|
||||
goDash(null, null);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,12 +1,21 @@
|
||||
package at.smartshopper.smartshopperapp.db;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.StrictMode;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
|
||||
import com.google.android.gms.tasks.OnCompleteListener;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.firebase.auth.FirebaseAuth;
|
||||
import com.google.firebase.dynamiclinks.DynamicLink;
|
||||
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
|
||||
import com.google.firebase.dynamiclinks.ShortDynamicLink;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
@ -21,7 +30,7 @@ import at.smartshopper.smartshopperapp.shoppinglist.details.Details;
|
||||
import at.smartshopper.smartshopperapp.shoppinglist.details.group.Group;
|
||||
import at.smartshopper.smartshopperapp.shoppinglist.details.item.Item;
|
||||
|
||||
public class Database {
|
||||
public class Database extends AppCompatActivity {
|
||||
|
||||
final private String HOST = "188.166.124.80";
|
||||
final private String DB_NAME = "smartshopperdb";
|
||||
@ -163,7 +172,7 @@ public class Database {
|
||||
public void deleteInvite(String invitelink) throws SQLException, JSONException {
|
||||
String sl_id = getSlIdFromInvite(invitelink);
|
||||
sqlUpdate("DELETE FROM \"Shoppinglist_member\" WHERE sl_id = ?", sl_id);
|
||||
sqlUpdate("Update \"Shoppinglist\" set invitelink=null where sl_id=?", sl_id);
|
||||
sqlUpdate("Update \"Shoppinglist\" set invitelink=null, dynamiclink=null where sl_id=?", sl_id);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -179,15 +188,17 @@ public class Database {
|
||||
}
|
||||
|
||||
|
||||
private String getinviteFromLink(String eingabeLink) {
|
||||
public String getinviteFromLink(String eingabeLink) {
|
||||
String delString = null;
|
||||
if (eingabeLink.contains("https://")) {
|
||||
delString = "https://www.smartshopper.cf/invite/";
|
||||
delString = "https://invite.dergeorg.at/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 = "http://invite.dergeorg.at/invite/";
|
||||
} else if (eingabeLink.contains("invite.dergeorg.at/invite/")) {
|
||||
delString = "invite.dergeorg.at/invite/";
|
||||
} else if (eingabeLink.contains("www.invite.dergeorg.atf/invite/")) {
|
||||
delString = "www.invite.dergeorg.at/invite";
|
||||
} else {
|
||||
delString = "";
|
||||
}
|
||||
String invite = eingabeLink.replace(delString, "");
|
||||
@ -204,7 +215,7 @@ public class Database {
|
||||
* @throws JSONException
|
||||
*/
|
||||
public String getInviteLink(String sl_id) throws SQLException, JSONException {
|
||||
String SQL = "Select invitelink from \"Shoppinglist\" WHERE sl_id = ?";
|
||||
String SQL = "Select dynamiclink from \"Shoppinglist\" WHERE sl_id = ?";
|
||||
String returnLink = executeQuery(SQL, sl_id);
|
||||
return returnLink;
|
||||
}
|
||||
@ -218,6 +229,20 @@ public class Database {
|
||||
* @throws JSONException
|
||||
*/
|
||||
public String getSlIdFromInvite(String invitelink) throws SQLException, JSONException {
|
||||
String SQL = "Select sl_id from \"Shoppinglist\" WHERE dynamiclink = ?";
|
||||
String returnSl_id = executeQuery(SQL, getinviteFromLink(invitelink));
|
||||
return returnSl_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sucht anhand des invitelinks eine Shoppingliste und gibt dessen sl_id zurück
|
||||
*
|
||||
* @param invitelink Der invitelink nach dem gesucht werden soll
|
||||
* @return Die sl_id die dem invitelink zugeordnet ist
|
||||
* @throws SQLException
|
||||
* @throws JSONException
|
||||
*/
|
||||
public String getSlIdFromInviteDynamicLink(String invitelink) throws SQLException, JSONException {
|
||||
String SQL = "Select sl_id from \"Shoppinglist\" WHERE invitelink = ?";
|
||||
String returnSl_id = executeQuery(SQL, getinviteFromLink(invitelink));
|
||||
return returnSl_id;
|
||||
@ -239,6 +264,21 @@ public class Database {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fügt einen invite link zu den shoppinglisten hinzu
|
||||
*
|
||||
* @param invitelink Der invite link der hinzugefügt werden soll
|
||||
* @param uid Der user zu dem der invitelink hinzugefügt werden soll
|
||||
* @throws SQLException
|
||||
* @throws JSONException
|
||||
*/
|
||||
public void addInviteLinkDynamicLink(String invitelink, String uid) throws SQLException, JSONException {
|
||||
String sl_id = getSlIdFromInviteDynamicLink(invitelink);
|
||||
if (!sl_id.equals("null")) {
|
||||
sqlUpdate2Param("INSERT INTO \"Shoppinglist_member\" (username, sl_id) VALUES (?, ?)", uid, sl_id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt einen neuen InviteLink
|
||||
*
|
||||
@ -246,10 +286,17 @@ public class Database {
|
||||
* @return Der neue InviteLink
|
||||
* @throws SQLException
|
||||
*/
|
||||
public String createInviteLink(String sl_id) throws SQLException {
|
||||
String invitelink = generateInviteLink();
|
||||
sqlUpdate2Param("UPDATE \"Shoppinglist\" SET invitelink = ? WHERE sl_id = ?", invitelink, sl_id);
|
||||
return invitelink;
|
||||
public void createInviteLink(String sl_id, String invitelink, String dynamiclink) throws SQLException, IOException, JSONException {
|
||||
sqlUpdate3Param("UPDATE \"Shoppinglist\" SET invitelink = ?, dynamiclink = ? WHERE sl_id = ?", invitelink, dynamiclink, sl_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generiert einen neuen dynamic link bei google und gibt nur die id zurück
|
||||
*
|
||||
* @return DynamicId von dem neuen link
|
||||
*/
|
||||
private void generateDynamicLink(final String sl_id, final String invitelink) throws IOException, SQLException, JSONException {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -99,7 +99,13 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
|
||||
public void onClick(View v) {
|
||||
String sl_id = shoppinglist.getSlId();
|
||||
Toast.makeText(v.getContext(), "LISTENER im ADAPTER geht: " + sl_id, Toast.LENGTH_LONG);
|
||||
sharedOnShareClick.sharedOnShareClick(sl_id, v);
|
||||
try {
|
||||
sharedOnShareClick.sharedOnShareClick(sl_id, v);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -211,7 +217,7 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
|
||||
* Interface damit onoclick in der dash activity ausgeführt werden kann
|
||||
*/
|
||||
public interface SharedOnShareClick {
|
||||
void sharedOnShareClick(String sl_id, View v);
|
||||
void sharedOnShareClick(String sl_id, View v) throws SQLException, JSONException;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user