Code und Imports Optimierung

This commit is contained in:
Georg Reisinger 2019-02-20 23:04:09 +01:00
parent f719fe1326
commit 42ffa7cadb
32 changed files with 308 additions and 365 deletions

View File

@ -7,7 +7,7 @@ import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
/**
* Instrumented test, which will execute on an Android device.

View File

@ -1,12 +1,10 @@
package at.smartshopper.smartshopper.activitys;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.net.Uri;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

View File

@ -11,8 +11,6 @@ import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.design.widget.TabLayout;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
@ -29,9 +27,6 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import at.smartshopper.smartshopper.R;
import android.widget.PopupWindow;
import android.widget.TabHost;
import android.widget.TextView;
@ -43,22 +38,14 @@ import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;
import com.google.gson.JsonSerializer;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import org.w3c.dom.Text;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.Base64;
import java.util.List;
import at.smartshopper.smartshopper.customViews.SpaceItemDecoration;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.db.Database;
import at.smartshopper.smartshopper.shoppinglist.Shoppinglist;
import at.smartshopper.smartshopper.shoppinglist.ShoppinglistAdapter;
@ -73,6 +60,18 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
private PopupWindow popupWindowAdd, popupShare, popupAddShare, popupEditShare;
private String color;
private Button colorBtn;
//Für Double Back press to exit
private boolean doubleBackToExitPressedOnce = false;
/**
* Convertiert eine int farbe in eine hexa dezimale Farbe
*
* @param color Farbe zum umwandeln in int
* @return farbe als hex im string
*/
private static String colorToHexString(int color) {
return String.format("#%06X", 0xFFFFFFFF & color);
}
/**
* Setzt das atribut color wenn die activity colorpicker beendet wird
@ -91,18 +90,17 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
}
}
/**
* Holt den msg token
*
* <p>
* SETZT IHN NOCH NED
*
*
* <p>
* <p>
* WEITER PROGRAMMIERN
*
* <p>
* MIR FEHLT NOCH DIE DB VON LUKAS
*/
private void setMsgId(){
private void setMsgId() {
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
@ -126,17 +124,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
});
}
/**
* Convertiert eine int farbe in eine hexa dezimale Farbe
*
* @param color Farbe zum umwandeln in int
* @return farbe als hex im string
*/
private static String colorToHexString(int color) {
return String.format("#%06X", 0xFFFFFFFF & color);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -258,9 +245,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
Picasso.get().load(R.drawable.close).into(addClose);
if(!name.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty()) {
addFertig.setEnabled(true);
}else{
} else {
addFertig.setEnabled(false);
}
name.addTextChangedListener(new TextWatcher() {
@ -276,9 +263,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
@Override
public void afterTextChanged(Editable s) {
if(!name.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty()) {
addFertig.setEnabled(true);
}else{
} else {
addFertig.setEnabled(false);
}
}
@ -401,7 +388,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
ownswiperefresh.setRefreshing(false);
}
/**
* Macht eine Datenbankverbindung und holt alle Shoppinglists die mit dem User geteilt werden, diese werden auf dem recycled view angezeigt
*
@ -472,7 +458,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
@ -480,7 +465,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
return true;
}
/**
* Menu item Action listener
*
@ -528,9 +512,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
});
final Button finish = (Button) popupContentView.findViewById(R.id.shareAddFinish);
if(!linkEingabe.getText().toString().isEmpty()){
if (!linkEingabe.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
linkEingabe.addTextChangedListener(new TextWatcher() {
@ -546,9 +530,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
@Override
public void afterTextChanged(Editable s) {
if(!linkEingabe.getText().toString().isEmpty()){
if (!linkEingabe.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
}
@ -561,7 +545,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
String invite = linkEingabe.getText().toString();
try {
db.addInviteLink(invite, FirebaseAuth.getInstance().getCurrentUser().getUid());
} catch (SQLException e) {
@ -602,10 +585,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
popupAddShare.update();
}
//Für Double Back press to exit
private boolean doubleBackToExitPressedOnce = false;
/**
* 2 Mal Zurück Drücken um die App zu schließen
*/
@ -635,7 +614,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
*
* @param sl_id Die Shoppingliste dieser Id wird gelöscht
*/
private void onItemClickContainer(String sl_id){
private void onItemClickContainer(String sl_id) {
try {
db.delShoppinglist(sl_id);
refreshOwnShoppinglist(FirebaseAuth.getInstance().getCurrentUser().getUid());
@ -649,7 +628,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
*
* @param sl_id Die Shoppinglist die bearbeitet werden soll
*/
private void onChangeItemClickContainer(String sl_id, View v){
private void onChangeItemClickContainer(String sl_id, View v) {
try {
showShoppinglistEditView(true, sl_id, "Shoppingliste bearbeiten", v);
} catch (SQLException e) {
@ -659,7 +638,7 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
}
}
private void onShoppinglistClickContainer(String sl_id, View v){
private void onShoppinglistClickContainer(String sl_id, View v) {
Intent intent = new Intent(this, ShoppinglistDetails.class);
intent.putExtra("sl_id", sl_id);
@ -688,10 +667,11 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
/**
* Holt den Invitelink einer Shoppingliste
*
* @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 link = null;
try {
if (db.isShared(sl_id)) {
@ -781,9 +761,10 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
/**
* Kopiert einen Text in die Zwischenablage
*
* @param text Der Text, welcher zu kopieren ist
*/
private void copyText(String text){
private void copyText(String text) {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("SmartShopper", text);
clipboard.setPrimaryClip(clip);

View File

@ -1,8 +1,8 @@
package at.smartshopper.smartshopper.activitys;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@ -14,8 +14,6 @@ import java.util.List;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.customViews.SpaceItemDecoration;
import at.smartshopper.smartshopper.db.Database;
import at.smartshopper.smartshopper.shoppinglist.Shoppinglist;
import at.smartshopper.smartshopper.shoppinglist.ShoppinglistSharedAdapter;
import at.smartshopper.smartshopper.shoppinglist.details.item.Item;
import at.smartshopper.smartshopper.shoppinglist.details.item.ItemShoppinglistDetailsAdapter;
@ -58,6 +56,7 @@ public class DoneItemActivity extends AppCompatActivity {
/**
* Zeigt alle erledigten Items an
*
* @throws SQLException
* @throws JSONException
*/
@ -68,7 +67,7 @@ public class DoneItemActivity extends AppCompatActivity {
RecyclerView.ItemDecoration itemDecoration;
while (doneRecycle.getItemDecorationCount() > 0
&&(itemDecoration = doneRecycle.getItemDecorationAt(0)) != null) {
&& (itemDecoration = doneRecycle.getItemDecorationAt(0)) != null) {
doneRecycle.removeItemDecoration(itemDecoration);
}
doneRecycle.addItemDecoration(new SpaceItemDecoration(spacingInPixels));

View File

@ -58,7 +58,7 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
this.groupNameString = myIntent.getStringExtra("groupNameString"); // will return "SecondKeyValue"
this.db = new Database();
this.groupName = (TextView)findViewById(R.id.groupViewName);
this.groupName = (TextView) findViewById(R.id.groupViewName);
this.groupName.setText(groupNameString);
this.colorView = (View) findViewById(R.id.itemListColorView);
@ -86,7 +86,7 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
}
});
this.fabAddItem = (FloatingActionButton)findViewById(R.id.fabItemAdd);
this.fabAddItem = (FloatingActionButton) findViewById(R.id.fabItemAdd);
fabAddItem.setOnClickListener(new View.OnClickListener() {
@Override
@ -119,7 +119,7 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
RecyclerView.ItemDecoration itemDecoration;
while (itemsListRecycler.getItemDecorationCount() > 0
&&(itemDecoration = itemsListRecycler.getItemDecorationAt(0)) != null) {
&& (itemDecoration = itemsListRecycler.getItemDecorationAt(0)) != null) {
itemsListRecycler.removeItemDecoration(itemDecoration);
}
itemsListRecycler.addItemDecoration(new SpaceItemDecoration(spacingInPixels));
@ -195,9 +195,9 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
colorString = "ffffff";
}
if(!name.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
TextWatcher tw = new TextWatcher() {
@ -213,9 +213,9 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
@Override
public void afterTextChanged(Editable s) {
if(!name.getText().toString().isEmpty() && !count.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty() && !count.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
}

View File

@ -1,11 +1,11 @@
package at.smartshopper.smartshopper.activitys;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
@ -27,9 +27,6 @@ import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.GoogleAuthProvider;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;
import com.google.firebase.messaging.FirebaseMessaging;
import org.json.JSONException;
import java.sql.SQLException;
@ -40,11 +37,12 @@ public class LoginActivity extends AppCompatActivity {
private static final String TAG = "SMASH";
private static final int RC_SIGN_IN = 1;
private FirebaseAuth mAuth;
private Database db;
SignInButton button;
GoogleSignInClient mGoogleSignInClient;
private FirebaseAuth mAuth;
private Database db;
//Für Double Back press to exit
private boolean doubleBackToExitPressedOnce = false;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
@ -142,7 +140,6 @@ public class LoginActivity extends AppCompatActivity {
});
}
/**
* Erstellt einen Account mit Email und Passwort
*
@ -170,7 +167,6 @@ public class LoginActivity extends AppCompatActivity {
});
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -244,7 +240,6 @@ public class LoginActivity extends AppCompatActivity {
});
}
/**
* Prüft ob der User bereits eingelogt ist. Wenn ja, wird er auf die Dash Activity weitergeleitet
*/
@ -259,9 +254,6 @@ public class LoginActivity extends AppCompatActivity {
}
//Für Double Back press to exit
private boolean doubleBackToExitPressedOnce = false;
/**
* 2 Mal Zurück Drücken um die App zu schließen
*/

View File

@ -1,10 +1,10 @@
package at.smartshopper.smartshopper.activitys;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.app.Activity;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
@ -22,14 +22,10 @@ import android.widget.PopupWindow;
import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
@ -50,6 +46,16 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
private Button colorBtn;
private SwipeRefreshLayout detailsSwiperefresh;
/**
* Convertiert eine int farbe in eine hexa dezimale Farbe
*
* @param color Farbe zum umwandeln in int
* @return farbe als hex im string
*/
private static String colorToHexString(int color) {
return String.format("#%06X", 0xFFFFFFFF & color);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -110,7 +116,6 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
}
/**
* Zeigt ein Popup zum bearbeiten und erstellen von groups
* Wenn from db true ist wird die groupid benötigt
@ -151,9 +156,9 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
colorString = "ffffff";
}
if(!name.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
name.addTextChangedListener(new TextWatcher() {
@ -169,9 +174,9 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
@Override
public void afterTextChanged(Editable s) {
if(!name.getText().toString().isEmpty()){
if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true);
}else{
} else {
finish.setEnabled(false);
}
}
@ -264,16 +269,6 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
}
}
/**
* Convertiert eine int farbe in eine hexa dezimale Farbe
*
* @param color Farbe zum umwandeln in int
* @return farbe als hex im string
*/
private static String colorToHexString(int color) {
return String.format("#%06X", 0xFFFFFFFF & color);
}
/**
* Zeigt das Card View der Shoppinglist Details an
*
@ -287,7 +282,7 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
RecyclerView.ItemDecoration itemDecoration;
while (detailsRecycleView.getItemDecorationCount() > 0
&&(itemDecoration = detailsRecycleView.getItemDecorationAt(0)) != null) {
&& (itemDecoration = detailsRecycleView.getItemDecorationAt(0)) != null) {
detailsRecycleView.removeItemDecoration(itemDecoration);
}
detailsRecycleView.addItemDecoration(new SpaceItemDecoration(spacingInPixels));

View File

@ -37,9 +37,9 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
/**
* Creates rounded transformation for top or bottom corners.
*
* @param radius radius is corner radii in dp
* @param margin margin is the board in dp
* @param topCornersOnly Rounded corner for top corners only.
* @param radius radius is corner radii in dp
* @param margin margin is the board in dp
* @param topCornersOnly Rounded corner for top corners only.
* @param bottomCornersOnly Rounded corner for bottom corners only.
*/
public RoundCornersTransformation(final int radius, final int margin, boolean topCornersOnly,
@ -50,49 +50,16 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
KEY = "rounded_" + radius + margin + topCorners + bottomCorners;
}
@Override
public Bitmap transform(final Bitmap source) {
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
if(topCorners && bottomCorners) {
// Uses native method to draw symmetric rounded corners
canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin,
source.getHeight() - margin), radius, radius, paint);
} else {
// Uses custom path to generate rounded corner individually
canvas.drawPath(RoundedRect(margin, margin, source.getWidth() - margin,
source.getHeight() - margin, radius, radius, topCorners, topCorners,
bottomCorners, bottomCorners), paint);
}
if (source != output) {
source.recycle();
}
return output;
}
@Override
public String key() {
return "rounded_" + radius + margin;
// return KEY;
}
/**
* Prepares a path for rounded corner selectively.
* Source taken from http://stackoverflow.com/a/35668889/6635889
* @param leftX The X coordinate of the left side of the rectangle
* @param topY The Y coordinate of the top of the rectangle
* @param rightX The X coordinate of the right side of the rectangle
* @param bottomY The Y coordinate of the bottom of the rectangle
* @param rx The x-radius of the oval used to round the corners
* @param ry The y-radius of the oval used to round the corners
*
* @param leftX The X coordinate of the left side of the rectangle
* @param topY The Y coordinate of the top of the rectangle
* @param rightX The X coordinate of the right side of the rectangle
* @param bottomY The Y coordinate of the bottom of the rectangle
* @param rx The x-radius of the oval used to round the corners
* @param ry The y-radius of the oval used to round the corners
* @param topLeft
* @param topRight
* @param bottomRight
@ -115,31 +82,31 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
path.moveTo(rightX, topY + ry);
if (topRight)
path.rQuadTo(0, -ry, -rx, -ry);//top-right corner
else{
else {
path.rLineTo(0, -ry);
path.rLineTo(-rx,0);
path.rLineTo(-rx, 0);
}
path.rLineTo(-widthMinusCorners, 0);
if (topLeft)
path.rQuadTo(-rx, 0, -rx, ry); //top-left corner
else{
else {
path.rLineTo(-rx, 0);
path.rLineTo(0,ry);
path.rLineTo(0, ry);
}
path.rLineTo(0, heightMinusCorners);
if (bottomLeft)
path.rQuadTo(0, ry, rx, ry);//bottom-left corner
else{
else {
path.rLineTo(0, ry);
path.rLineTo(rx,0);
path.rLineTo(rx, 0);
}
path.rLineTo(widthMinusCorners, 0);
if (bottomRight)
path.rQuadTo(rx, 0, rx, -ry); //bottom-right corner
else{
path.rLineTo(rx,0);
else {
path.rLineTo(rx, 0);
path.rLineTo(0, -ry);
}
@ -149,4 +116,37 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
return path;
}
@Override
public Bitmap transform(final Bitmap source) {
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP));
Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
if (topCorners && bottomCorners) {
// Uses native method to draw symmetric rounded corners
canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin,
source.getHeight() - margin), radius, radius, paint);
} else {
// Uses custom path to generate rounded corner individually
canvas.drawPath(RoundedRect(margin, margin, source.getWidth() - margin,
source.getHeight() - margin, radius, radius, topCorners, topCorners,
bottomCorners, bottomCorners), paint);
}
if (source != output) {
source.recycle();
}
return output;
}
@Override
public String key() {
return "rounded_" + radius + margin;
// return KEY;
}
}

View File

@ -1,24 +1,18 @@
package at.smartshopper.smartshopper.db;
import android.os.StrictMode;
import android.util.Log;
import com.google.firebase.auth.FirebaseAuth;
import com.google.gson.JsonSerializer;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import at.smartshopper.smartshopper.shoppinglist.Member;
@ -29,7 +23,6 @@ import at.smartshopper.smartshopper.shoppinglist.details.item.Item;
public class Database {
private transient Connection conect;
final private String HOST = "188.166.124.80";
final private String DB_NAME = "smartshopperdb";
final private String USERNAME = "smartshopper-user";
@ -39,6 +32,7 @@ public class Database {
final private int groupIdLength = 10;
final private int itemIdLength = 10;
final private int inviteLength = 50;
private transient Connection conect;
/**
@ -111,7 +105,7 @@ public class Database {
String SQL = "SELECT row_to_json(\"User\") as obj FROM \"User\" JOIN \"Shoppinglist_member\" USING (username) WHERE sl_id = ?";
ArrayList<Member> members = new ArrayList();
List<JSONObject> jsonObjects = executeQueryJSONObject(SQL, sl_id);
for(int i = 0; i < jsonObjects.size(); i++){
for (int i = 0; i < jsonObjects.size(); i++) {
JSONObject jsonObject = jsonObjects.get(i);
members.add(new Member(jsonObject.getString("username"), jsonObject.getString("message_id"), jsonObject.getString("name"), jsonObject.getString("picture"), jsonObject.getString("email")));
}
@ -133,6 +127,7 @@ public class Database {
/**
* Stopt eine Einladung, indem der Member die liste nichtmehr sehen kann
*
* @param invitelink Der invitelink
* @throws SQLException
* @throws JSONException
@ -143,7 +138,7 @@ public class Database {
}
private String getinviteFromLink(String eingabeLink){
private String getinviteFromLink(String eingabeLink) {
String delString = null;
if (eingabeLink.contains("https://")) {
delString = "https://www.smartshopper.cf/invite/";
@ -158,6 +153,7 @@ public class Database {
return invite;
}
/**
* Gibt den Invite link einer Shoppingliste zurück, wenn keiner vorhanden ist --> null
*
@ -227,7 +223,7 @@ public class Database {
String SQL = "SELECT row_to_json(\"Shoppinglist\") AS obj FROM \"Shoppinglist\" WHERE sl_id = ?";
boolean returnBoolean = false;
List<JSONObject> jsonObjects = executeQueryJSONObject(SQL, sl_id);
for(int i = 0; i < jsonObjects.size(); i++){
for (int i = 0; i < jsonObjects.size(); i++) {
JSONObject jsonObject = jsonObjects.get(i);
if (jsonObject.getString("invitelink").equals("null")) {
returnBoolean = false;
@ -740,7 +736,7 @@ public class Database {
/**
* Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List
*
* @param SQL Der SQL der auszuführen ist
* @param SQL Der SQL der auszuführen ist
* @return Das ergebnis als JSONObject
* @throws SQLException
* @throws JSONException
@ -758,7 +754,7 @@ public class Database {
/**
* Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List
*
* @param SQL Der SQL der auszuführen ist
* @param SQL Der SQL der auszuführen ist
* @return Das ergebnis als JSONObject
* @throws SQLException
* @throws JSONException

View File

@ -8,12 +8,12 @@ import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import at.smartshopper.smartshopper.activitys.Dash;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.activitys.Dash;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@ -48,7 +48,7 @@ public class MyFirebaseMessagingService extends FirebaseMessagingService {
/**
* Persist token to third-party servers.
*
* <p>
* Modify this method to associate the user's FCM InstanceID token with any server-side account
* maintained by your application.
*
@ -88,8 +88,8 @@ public class MyFirebaseMessagingService extends FirebaseMessagingService {
//if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// NotificationChannel channel = new NotificationChannel(channelId,
// "Channel human readable title",
// NotificationManager.IMPORTANCE_DEFAULT);
// notificationManager.createNotificationChannel(channel);
// NotificationManager.IMPORTANCE_DEFAULT);
// notificationManager.createNotificationChannel(channel);
//}
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());

View File

@ -3,7 +3,7 @@ package at.smartshopper.smartshopper.shoppinglist;
public class Member {
private String uid, msid, name, pic, email;
public Member(String uid, String msid, String name, String pic, String email){
public Member(String uid, String msid, String name, String pic, String email) {
this.uid = uid;
this.msid = msid;
this.name = name;

View File

@ -3,18 +3,18 @@ package at.smartshopper.smartshopper.shoppinglist;
public class Shoppinglist {
private String sl_id, name, description, invitelink, color;
/**
* Erstellt ein Object von Shoppinglist.
* @param sl_id Shoppinglist ID
* @param name Shoppinglist Name
*
* @param sl_id Shoppinglist ID
* @param name Shoppinglist Name
* @param description Shoppinglist Beschreibung
* @param invitelink Shoppinglist Einladungslink
* @param color Shoppinglist Farbe
* @param invitelink Shoppinglist Einladungslink
* @param color Shoppinglist Farbe
*/
public Shoppinglist(String sl_id, String name, String description, String invitelink, String color){
public Shoppinglist(String sl_id, String name, String description, String invitelink, String color) {
this.sl_id = sl_id;
this.name = name;
this.description = description;
@ -22,23 +22,29 @@ public class Shoppinglist {
this.color = color;
}
public String getSlId(){
public String getSlId() {
return this.sl_id;
}
public String getname(){
public String getname() {
return this.name;
}
public String getdescription(){return this.description;}
public String getdescription() {
return this.description;
}
public String getInvitelink(){return this.invitelink;}
public String getInvitelink() {
return this.invitelink;
}
public String getcolor(){ return this.color;}
public String getcolor() {
return this.color;
}
@Override
public String toString(){
return "SL_ID: " + sl_id + " name: " + name + " description: " + description + " invitelink: " + invitelink + " color: "+ color;
public String toString() {
return "SL_ID: " + sl_id + " name: " + name + " description: " + description + " invitelink: " + invitelink + " color: " + color;
}
}

View File

@ -1,11 +1,8 @@
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;
@ -20,11 +17,9 @@ 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;
@ -140,6 +135,7 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter<ShoppinglistAdapte
/**
* Holt die anzahl der items in dem Adapter
*
* @return Anzahl der Items in dem Adapter
*/
@Override
@ -147,6 +143,42 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter<ShoppinglistAdapte
return shoppinglist.size();
}
/**
* Setzt das OnChangeItemClick event
*
* @param onChangeClick Der Click event Listener
*/
public void setOnChangeClick(OnChangeItemClick onChangeClick) {
this.onChangeClick = onChangeClick;
}
/**
* Setzt das OnItemClicked event
*
* @param onClick Der Click Listener
*/
public void setOnDelClick(OnItemClicked onClick) {
this.onClick = onClick;
}
/**
* Setzt das OnChangeItemClick event
*
* @param onShareClick Der Click event Listener
*/
public void setOnShareClick(OnShareClick onShareClick) {
this.onShareClick = onShareClick;
}
/**
* Setzt das OnChangeItemClick event
*
* @param onShoppinglistClick Der Click event Listener
*/
public void setOnShoppinglistClick(OnShoppinglistClick onShoppinglistClick) {
this.onShoppinglistClick = onShoppinglistClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
@ -157,60 +189,24 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter<ShoppinglistAdapte
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface OnChangeItemClick{
public interface OnChangeItemClick {
void onChangeItemClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onChangeClick Der Click event Listener
*/
public void setOnChangeClick(OnChangeItemClick onChangeClick){
this.onChangeClick = onChangeClick;
}
/**
* Setzt das OnItemClicked event
* @param onClick Der Click Listener
*/
public void setOnDelClick(OnItemClicked onClick)
{
this.onClick=onClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface OnShareClick{
public interface OnShareClick {
void onShareClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onShareClick Der Click event Listener
*/
public void setOnShareClick(OnShareClick onShareClick){
this.onShareClick = onShareClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface OnShoppinglistClick{
public interface OnShoppinglistClick {
void onShoppinglistClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onShoppinglistClick Der Click event Listener
*/
public void setOnShoppinglistClick(OnShoppinglistClick onShoppinglistClick){
this.onShoppinglistClick = onShoppinglistClick;
}
/**
* Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden
*/

View File

@ -2,7 +2,6 @@ package at.smartshopper.smartshopper.shoppinglist;
import android.content.Context;
import android.graphics.Color;
import android.net.Uri;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@ -13,8 +12,6 @@ import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
@ -121,14 +118,12 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
}
}
/**
* Holt die anzahl der items in dem Adapter
*
* @return Anzahl der Items in dem Adapter
*/
@Override
@ -136,6 +131,42 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
return shoppinglist.size();
}
/**
* Setzt das OnChangeItemClick event
*
* @param onChangeClick Der Click event Listener
*/
public void setOnChangeClick(SharedOnChangeItemClick onChangeClick) {
this.sharedOnChangeClick = onChangeClick;
}
/**
* Setzt das OnItemClicked event
*
* @param onClick Der Click Listener
*/
public void setOnDelClick(SharedOnItemClicked onClick) {
this.sharedOnClick = onClick;
}
/**
* Setzt das OnChangeItemClick event
*
* @param onShareClick Der Click event Listener
*/
public void setOnShareClick(SharedOnShareClick onShareClick) {
this.sharedOnShareClick = onShareClick;
}
/**
* Setzt das OnChangeItemClick event
*
* @param onShoppinglistClick Der Click event Listener
*/
public void setOnShoppinglistClick(SharedOnShoppinglistClick onShoppinglistClick) {
this.sharedOnShoppinglistClick = onShoppinglistClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
@ -146,60 +177,24 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface SharedOnChangeItemClick{
public interface SharedOnChangeItemClick {
void sharedOnChangeItemClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onChangeClick Der Click event Listener
*/
public void setOnChangeClick(SharedOnChangeItemClick onChangeClick){
this.sharedOnChangeClick = onChangeClick;
}
/**
* Setzt das OnItemClicked event
* @param onClick Der Click Listener
*/
public void setOnDelClick(SharedOnItemClicked onClick)
{
this.sharedOnClick=onClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface SharedOnShareClick{
public interface SharedOnShareClick {
void sharedOnShareClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onShareClick Der Click event Listener
*/
public void setOnShareClick(SharedOnShareClick onShareClick){
this.sharedOnShareClick = onShareClick;
}
/**
* Interface damit onoclick in der dash activity ausgeführt werden kann
*/
public interface SharedOnShoppinglistClick{
public interface SharedOnShoppinglistClick {
void sharedOnShoppinglistClick(String sl_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onShoppinglistClick Der Click event Listener
*/
public void setOnShoppinglistClick(SharedOnShoppinglistClick onShoppinglistClick){
this.sharedOnShoppinglistClick = onShoppinglistClick;
}
/**
* Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden
*/

View File

@ -23,7 +23,7 @@ public class Details {
return items;
}
public void addItem(Item item){
public void addItem(Item item) {
this.items.add(item);
}

View File

@ -12,8 +12,11 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.List;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.activitys.ItemListActivity;
import at.smartshopper.smartshopper.customViews.SpaceItemDecoration;
@ -75,9 +78,6 @@ public class DetailsAdapter extends RecyclerView.Adapter<DetailsAdapter.MyViewHo
itemsrecycle.setAdapter(itemAdapter);
int cardcolor;
try {
cardcolor = Color.parseColor(details.get(i).getGroup().getColor());
@ -123,18 +123,42 @@ public class DetailsAdapter extends RecyclerView.Adapter<DetailsAdapter.MyViewHo
}
/**
* Interface damit onoclick in der Shoppinglistdetails activity ausgeführt werden kann
* Setzt das OnChangeItemClick event
*
* @param onCardClicked Der Click event Listener
*/
public interface OnCardClicked {
void onCardClick(String group_id, String sl_id, String groupName, View v);
public void setCardClick(OnCardClicked onCardClicked) {
this.onCardClicked = onCardClicked;
}
/**
* Setzt das OnChangeItemClick event
* @param onCardClicked Der Click event Listener
*
* @param onGroupDeleteClicked Der Click event Listener
*/
public void setCardClick(OnCardClicked onCardClicked){
this.onCardClicked = onCardClicked;
public void setGroupDeleteClick(OnGroupDeleteClicked onGroupDeleteClicked) {
this.onGroupDeleteClicked = onGroupDeleteClicked;
}
/**
* Setzt das OnChangeItemClick event
*
* @param onGroupEditClicked Der Click event Listener
*/
public void setGroupEditClick(OnGroupEditClicked onGroupEditClicked) {
this.onGroupEditClicked = onGroupEditClicked;
}
@Override
public int getItemCount() {
return details.size();
}
/**
* Interface damit onoclick in der Shoppinglistdetails activity ausgeführt werden kann
*/
public interface OnCardClicked {
void onCardClick(String group_id, String sl_id, String groupName, View v);
}
/**
@ -144,14 +168,6 @@ public class DetailsAdapter extends RecyclerView.Adapter<DetailsAdapter.MyViewHo
void onGroupDeleteClick(String sl_id, String group_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onGroupDeleteClicked Der Click event Listener
*/
public void setGroupDeleteClick(OnGroupDeleteClicked onGroupDeleteClicked){
this.onGroupDeleteClicked = onGroupDeleteClicked;
}
/**
* Interface damit onoclick in der Shoppinglistdetails activity ausgeführt werden kann
*/
@ -159,19 +175,6 @@ public class DetailsAdapter extends RecyclerView.Adapter<DetailsAdapter.MyViewHo
void onGroupEditClick(String sl_id, String group_id, View v);
}
/**
* Setzt das OnChangeItemClick event
* @param onGroupEditClicked Der Click event Listener
*/
public void setGroupEditClick(OnGroupEditClicked onGroupEditClicked){
this.onGroupEditClicked = onGroupEditClicked;
}
@Override
public int getItemCount() {
return details.size();
}
/**
* Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden
*/

View File

@ -14,9 +14,9 @@ public class Group {
this.sl_id = sl_id;
this.name = name;
String colorstring;
if(color.contains("#")){
if (color.contains("#")) {
colorstring = color;
}else{
} else {
colorstring = "#" + color;
}
this.color = colorstring;
@ -36,11 +36,11 @@ public class Group {
}
public String getColor() {
if(color.isEmpty()){
if (color.isEmpty()) {
return "#FFFFFF";
}else if (!color.contains("#")){
} else if (!color.contains("#")) {
return "#" + this.color;
}else {
} else {
return this.color;
}
}

View File

@ -8,7 +8,7 @@ public class Item {
private String name;
private String count;
public Item(String item_id, String group_id, String sl_id, String name, String count){
public Item(String item_id, String group_id, String sl_id, String name, String count) {
this.item_id = item_id;
this.group_id = group_id;
this.sl_id = sl_id;

View File

@ -1,10 +1,8 @@
package at.smartshopper.smartshopper.shoppinglist.details.item;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -16,15 +14,9 @@ import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import java.sql.SQLException;
import java.util.List;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.db.Database;
import at.smartshopper.smartshopper.shoppinglist.ShoppinglistAdapter;
public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyViewHolder> {
@ -97,26 +89,14 @@ public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyViewHolder>
}
public interface OnItemDelClicked {
void onItemDelClicked(String item_id, String group_id, String sl_id);
}
public void setItemDelClick(OnItemDelClicked onItemDelClicked) {
this.onItemDelClicked = onItemDelClicked;
}
public interface OnItemEditClicked {
void onItemEditClicked(String item_id, String group_id, String sl_id, View v);
}
public void setOnItemEditClick(OnItemEditClicked onItemEditClick) {
this.onItemEditClick = onItemEditClick;
}
public interface OnItemCheckClicked {
void onItemCheckClicked(String uid, String name, String itemId, String groupId, String sl_id, int count);
}
public void setOnItemCheckClick(OnItemCheckClicked onItemCheckClick) {
this.onItemCheckClick = onItemCheckClick;
}
@ -126,6 +106,18 @@ public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyViewHolder>
return data.size();
}
public interface OnItemDelClicked {
void onItemDelClicked(String item_id, String group_id, String sl_id);
}
public interface OnItemEditClicked {
void onItemEditClicked(String item_id, String group_id, String sl_id, View v);
}
public interface OnItemCheckClicked {
void onItemCheckClicked(String uid, String name, String itemId, String groupId, String sl_id, int count);
}
/**
* Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden
*/

View File

@ -6,20 +6,13 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.squareup.picasso.Picasso;
import org.json.JSONException;
import java.sql.SQLException;
import java.util.List;
import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.db.Database;
@ -78,11 +71,6 @@ public class ItemShoppinglistDetailsAdapter extends RecyclerView.Adapter<ItemSho
itemAnzahl.setText(data.get(i).getCount());
}
public interface OnItemEditClicked {
void onItemEditClicked(String item_id, String group_id, String sl_id, String groupName, View v);
}
public void setOnItemEditClick(OnItemEditClicked onItemEditClick) {
this.onItemEditClick = onItemEditClick;
}
@ -92,6 +80,10 @@ public class ItemShoppinglistDetailsAdapter extends RecyclerView.Adapter<ItemSho
return data.size();
}
public interface OnItemEditClicked {
void onItemEditClicked(String item_id, String group_id, String sl_id, String groupName, View v);
}
/**
* Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden
*/

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<selector>
</selector>

View File

@ -9,7 +9,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:padding="16dp" >
android:padding="16dp">
<com.github.danielnilsson9.colorpickerview.view.ColorPickerView
android:id="@id/colorpickerview__color_picker_view"
@ -20,11 +20,11 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_below="@id/colorpickerview__color_picker_view"
android:layout_alignLeft="@id/colorpickerview__color_picker_view"
android:layout_alignRight="@id/colorpickerview__color_picker_view"
android:layout_below="@id/colorpickerview__color_picker_view"
android:layout_marginTop="16dp"
android:orientation="horizontal" >
android:orientation="horizontal">
<com.github.danielnilsson9.colorpickerview.view.ColorPanelView
android:id="@id/colorpickerview__color_panel_old"
@ -56,7 +56,7 @@
style="@android:style/ButtonBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
android:orientation="horizontal">
<Button
android:id="@+id/okButton"
@ -70,7 +70,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@android:string/cancel" />
android:text="@android:string/cancel" />
</LinearLayout>
</LinearLayout>

View File

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

View File

@ -60,6 +60,7 @@
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="232dp" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"

View File

@ -3,7 +3,6 @@
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cardViewGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/itemCardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_height="match_parent">
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout
android:layout_width="match_parent"
@ -32,7 +33,7 @@
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
android:gravity="center">
<EditText
android:id="@+id/linkausgabe"
@ -46,7 +47,7 @@
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
android:gravity="center">
<Button
android:id="@+id/copyButton"
@ -58,7 +59,7 @@
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" >
android:gravity="center">
<Button
android:id="@+id/delShare"

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/addInvite"
android:title="Insert Invite" />
@ -9,6 +8,6 @@
android:title="Erledigte Einkäufe" />
<item
android:id="@+id/logoutBtn"
android:title="Logout"
android:enabled="true" />
android:enabled="true"
android:title="Logout" />
</menu>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@mipmap/ic_launcher_foreground" />
</adaptive-icon>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>

View File

@ -2,7 +2,7 @@ package at.smartshopper.smartshopper;
import org.junit.Test;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
/**
* Example local unit test, which will execute on the development machine (host).