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.Test;
import org.junit.runner.RunWith; 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. * Instrumented test, which will execute on an Android device.

View File

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

View File

@ -11,8 +11,6 @@ import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton; 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.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
@ -29,9 +27,6 @@ import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import at.smartshopper.smartshopper.R;
import android.widget.PopupWindow; import android.widget.PopupWindow;
import android.widget.TabHost; import android.widget.TabHost;
import android.widget.TextView; import android.widget.TextView;
@ -43,22 +38,14 @@ import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.iid.FirebaseInstanceId; import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult; import com.google.firebase.iid.InstanceIdResult;
import com.google.gson.JsonSerializer;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import org.json.JSONException; 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.sql.SQLException;
import java.util.Base64;
import java.util.List; 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.db.Database;
import at.smartshopper.smartshopper.shoppinglist.Shoppinglist; import at.smartshopper.smartshopper.shoppinglist.Shoppinglist;
import at.smartshopper.smartshopper.shoppinglist.ShoppinglistAdapter; 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 PopupWindow popupWindowAdd, popupShare, popupAddShare, popupEditShare;
private String color; private String color;
private Button colorBtn; 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 * 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 * Holt den msg token
* * <p>
* SETZT IHN NOCH NED * SETZT IHN NOCH NED
* * <p>
* * <p>
* WEITER PROGRAMMIERN * WEITER PROGRAMMIERN
* * <p>
* MIR FEHLT NOCH DIE DB VON LUKAS * MIR FEHLT NOCH DIE DB VON LUKAS
*/ */
private void setMsgId(){ private void setMsgId() {
FirebaseInstanceId.getInstance().getInstanceId() FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() { .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override @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 @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -258,9 +245,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
Picasso.get().load(R.drawable.close).into(addClose); Picasso.get().load(R.drawable.close).into(addClose);
if(!name.getText().toString().isEmpty()){ if (!name.getText().toString().isEmpty()) {
addFertig.setEnabled(true); addFertig.setEnabled(true);
}else{ } else {
addFertig.setEnabled(false); addFertig.setEnabled(false);
} }
name.addTextChangedListener(new TextWatcher() { name.addTextChangedListener(new TextWatcher() {
@ -276,9 +263,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if(!name.getText().toString().isEmpty()){ if (!name.getText().toString().isEmpty()) {
addFertig.setEnabled(true); addFertig.setEnabled(true);
}else{ } else {
addFertig.setEnabled(false); addFertig.setEnabled(false);
} }
} }
@ -401,7 +388,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
ownswiperefresh.setRefreshing(false); ownswiperefresh.setRefreshing(false);
} }
/** /**
* Macht eine Datenbankverbindung und holt alle Shoppinglists die mit dem User geteilt werden, diese werden auf dem recycled view angezeigt * 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); startActivity(intent);
} }
@Override @Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present. // 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; return true;
} }
/** /**
* Menu item Action listener * 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); final Button finish = (Button) popupContentView.findViewById(R.id.shareAddFinish);
if(!linkEingabe.getText().toString().isEmpty()){ if (!linkEingabe.getText().toString().isEmpty()) {
finish.setEnabled(true); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); finish.setEnabled(false);
} }
linkEingabe.addTextChangedListener(new TextWatcher() { linkEingabe.addTextChangedListener(new TextWatcher() {
@ -546,9 +530,9 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if(!linkEingabe.getText().toString().isEmpty()){ if (!linkEingabe.getText().toString().isEmpty()) {
finish.setEnabled(true); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); finish.setEnabled(false);
} }
} }
@ -561,7 +545,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
String invite = linkEingabe.getText().toString(); String invite = linkEingabe.getText().toString();
try { try {
db.addInviteLink(invite, FirebaseAuth.getInstance().getCurrentUser().getUid()); db.addInviteLink(invite, FirebaseAuth.getInstance().getCurrentUser().getUid());
} catch (SQLException e) { } catch (SQLException e) {
@ -602,10 +585,6 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
popupAddShare.update(); 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 * 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 * @param sl_id Die Shoppingliste dieser Id wird gelöscht
*/ */
private void onItemClickContainer(String sl_id){ private void onItemClickContainer(String sl_id) {
try { try {
db.delShoppinglist(sl_id); db.delShoppinglist(sl_id);
refreshOwnShoppinglist(FirebaseAuth.getInstance().getCurrentUser().getUid()); 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 * @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 { try {
showShoppinglistEditView(true, sl_id, "Shoppingliste bearbeiten", v); showShoppinglistEditView(true, sl_id, "Shoppingliste bearbeiten", v);
} catch (SQLException e) { } 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 intent = new Intent(this, ShoppinglistDetails.class);
intent.putExtra("sl_id", sl_id); intent.putExtra("sl_id", sl_id);
@ -688,10 +667,11 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
/** /**
* Holt den Invitelink einer Shoppingliste * Holt den Invitelink einer Shoppingliste
*
* @param sl_id Die Shoppingliste von der der invitelink gewünscht ist * @param sl_id Die Shoppingliste von der der invitelink gewünscht ist
* @return * @return
*/ */
private String getInviteLink(String sl_id){ private String getInviteLink(String sl_id) {
String link = null; String link = null;
try { try {
if (db.isShared(sl_id)) { if (db.isShared(sl_id)) {
@ -781,9 +761,10 @@ public class Dash extends AppCompatActivity implements ShoppinglistAdapter.OnIte
/** /**
* Kopiert einen Text in die Zwischenablage * Kopiert einen Text in die Zwischenablage
*
* @param text Der Text, welcher zu kopieren ist * @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); ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText("SmartShopper", text); ClipData clip = ClipData.newPlainText("SmartShopper", text);
clipboard.setPrimaryClip(clip); clipboard.setPrimaryClip(clip);

View File

@ -1,8 +1,8 @@
package at.smartshopper.smartshopper.activitys; package at.smartshopper.smartshopper.activitys;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity; import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
@ -14,8 +14,6 @@ import java.util.List;
import at.smartshopper.smartshopper.R; import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.customViews.SpaceItemDecoration; import at.smartshopper.smartshopper.customViews.SpaceItemDecoration;
import at.smartshopper.smartshopper.db.Database; 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.Item;
import at.smartshopper.smartshopper.shoppinglist.details.item.ItemShoppinglistDetailsAdapter; import at.smartshopper.smartshopper.shoppinglist.details.item.ItemShoppinglistDetailsAdapter;
@ -58,6 +56,7 @@ public class DoneItemActivity extends AppCompatActivity {
/** /**
* Zeigt alle erledigten Items an * Zeigt alle erledigten Items an
*
* @throws SQLException * @throws SQLException
* @throws JSONException * @throws JSONException
*/ */
@ -68,7 +67,7 @@ public class DoneItemActivity extends AppCompatActivity {
RecyclerView.ItemDecoration itemDecoration; RecyclerView.ItemDecoration itemDecoration;
while (doneRecycle.getItemDecorationCount() > 0 while (doneRecycle.getItemDecorationCount() > 0
&&(itemDecoration = doneRecycle.getItemDecorationAt(0)) != null) { && (itemDecoration = doneRecycle.getItemDecorationAt(0)) != null) {
doneRecycle.removeItemDecoration(itemDecoration); doneRecycle.removeItemDecoration(itemDecoration);
} }
doneRecycle.addItemDecoration(new SpaceItemDecoration(spacingInPixels)); 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.groupNameString = myIntent.getStringExtra("groupNameString"); // will return "SecondKeyValue"
this.db = new Database(); this.db = new Database();
this.groupName = (TextView)findViewById(R.id.groupViewName); this.groupName = (TextView) findViewById(R.id.groupViewName);
this.groupName.setText(groupNameString); this.groupName.setText(groupNameString);
this.colorView = (View) findViewById(R.id.itemListColorView); 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() { fabAddItem.setOnClickListener(new View.OnClickListener() {
@Override @Override
@ -119,7 +119,7 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
RecyclerView.ItemDecoration itemDecoration; RecyclerView.ItemDecoration itemDecoration;
while (itemsListRecycler.getItemDecorationCount() > 0 while (itemsListRecycler.getItemDecorationCount() > 0
&&(itemDecoration = itemsListRecycler.getItemDecorationAt(0)) != null) { && (itemDecoration = itemsListRecycler.getItemDecorationAt(0)) != null) {
itemsListRecycler.removeItemDecoration(itemDecoration); itemsListRecycler.removeItemDecoration(itemDecoration);
} }
itemsListRecycler.addItemDecoration(new SpaceItemDecoration(spacingInPixels)); itemsListRecycler.addItemDecoration(new SpaceItemDecoration(spacingInPixels));
@ -195,9 +195,9 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
colorString = "ffffff"; colorString = "ffffff";
} }
if(!name.getText().toString().isEmpty()){ if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); finish.setEnabled(false);
} }
TextWatcher tw = new TextWatcher() { TextWatcher tw = new TextWatcher() {
@ -213,9 +213,9 @@ public class ItemListActivity extends Activity implements ItemAdapter.OnItemEdit
@Override @Override
public void afterTextChanged(Editable s) { 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); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); finish.setEnabled(false);
} }
} }

View File

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

View File

@ -1,10 +1,10 @@
package at.smartshopper.smartshopper.activitys; package at.smartshopper.smartshopper.activitys;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.app.Activity;
import android.support.design.widget.FloatingActionButton; import android.support.design.widget.FloatingActionButton;
import android.support.v4.widget.SwipeRefreshLayout; import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
@ -22,14 +22,10 @@ import android.widget.PopupWindow;
import android.widget.TextView; import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuth;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import org.json.JSONException; import org.json.JSONException;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
@ -50,6 +46,16 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
private Button colorBtn; private Button colorBtn;
private SwipeRefreshLayout detailsSwiperefresh; 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 @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(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 * Zeigt ein Popup zum bearbeiten und erstellen von groups
* Wenn from db true ist wird die groupid benötigt * Wenn from db true ist wird die groupid benötigt
@ -151,9 +156,9 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
colorString = "ffffff"; colorString = "ffffff";
} }
if(!name.getText().toString().isEmpty()){ if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); finish.setEnabled(false);
} }
name.addTextChangedListener(new TextWatcher() { name.addTextChangedListener(new TextWatcher() {
@ -169,9 +174,9 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if(!name.getText().toString().isEmpty()){ if (!name.getText().toString().isEmpty()) {
finish.setEnabled(true); finish.setEnabled(true);
}else{ } else {
finish.setEnabled(false); 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 * Zeigt das Card View der Shoppinglist Details an
* *
@ -287,7 +282,7 @@ public class ShoppinglistDetails extends Activity implements DetailsAdapter.OnGr
RecyclerView.ItemDecoration itemDecoration; RecyclerView.ItemDecoration itemDecoration;
while (detailsRecycleView.getItemDecorationCount() > 0 while (detailsRecycleView.getItemDecorationCount() > 0
&&(itemDecoration = detailsRecycleView.getItemDecorationAt(0)) != null) { && (itemDecoration = detailsRecycleView.getItemDecorationAt(0)) != null) {
detailsRecycleView.removeItemDecoration(itemDecoration); detailsRecycleView.removeItemDecoration(itemDecoration);
} }
detailsRecycleView.addItemDecoration(new SpaceItemDecoration(spacingInPixels)); 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. * Creates rounded transformation for top or bottom corners.
* *
* @param radius radius is corner radii in dp * @param radius radius is corner radii in dp
* @param margin margin is the board in dp * @param margin margin is the board in dp
* @param topCornersOnly Rounded corner for top corners only. * @param topCornersOnly Rounded corner for top corners only.
* @param bottomCornersOnly Rounded corner for bottom corners only. * @param bottomCornersOnly Rounded corner for bottom corners only.
*/ */
public RoundCornersTransformation(final int radius, final int margin, boolean topCornersOnly, 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; 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. * Prepares a path for rounded corner selectively.
* Source taken from http://stackoverflow.com/a/35668889/6635889 * 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 leftX The X coordinate of the left side of the rectangle
* @param rightX The X coordinate of the right side of the rectangle * @param topY The Y coordinate of the top of the rectangle
* @param bottomY The Y coordinate of the bottom of the rectangle * @param rightX The X coordinate of the right side of the rectangle
* @param rx The x-radius of the oval used to round the corners * @param bottomY The Y coordinate of the bottom of the rectangle
* @param ry The y-radius of the oval used to round the corners * @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 topLeft
* @param topRight * @param topRight
* @param bottomRight * @param bottomRight
@ -115,31 +82,31 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
path.moveTo(rightX, topY + ry); path.moveTo(rightX, topY + ry);
if (topRight) if (topRight)
path.rQuadTo(0, -ry, -rx, -ry);//top-right corner path.rQuadTo(0, -ry, -rx, -ry);//top-right corner
else{ else {
path.rLineTo(0, -ry); path.rLineTo(0, -ry);
path.rLineTo(-rx,0); path.rLineTo(-rx, 0);
} }
path.rLineTo(-widthMinusCorners, 0); path.rLineTo(-widthMinusCorners, 0);
if (topLeft) if (topLeft)
path.rQuadTo(-rx, 0, -rx, ry); //top-left corner path.rQuadTo(-rx, 0, -rx, ry); //top-left corner
else{ else {
path.rLineTo(-rx, 0); path.rLineTo(-rx, 0);
path.rLineTo(0,ry); path.rLineTo(0, ry);
} }
path.rLineTo(0, heightMinusCorners); path.rLineTo(0, heightMinusCorners);
if (bottomLeft) if (bottomLeft)
path.rQuadTo(0, ry, rx, ry);//bottom-left corner path.rQuadTo(0, ry, rx, ry);//bottom-left corner
else{ else {
path.rLineTo(0, ry); path.rLineTo(0, ry);
path.rLineTo(rx,0); path.rLineTo(rx, 0);
} }
path.rLineTo(widthMinusCorners, 0); path.rLineTo(widthMinusCorners, 0);
if (bottomRight) if (bottomRight)
path.rQuadTo(rx, 0, rx, -ry); //bottom-right corner path.rQuadTo(rx, 0, rx, -ry); //bottom-right corner
else{ else {
path.rLineTo(rx,0); path.rLineTo(rx, 0);
path.rLineTo(0, -ry); path.rLineTo(0, -ry);
} }
@ -149,4 +116,37 @@ public class RoundCornersTransformation implements com.squareup.picasso.Transfor
return path; 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; package at.smartshopper.smartshopper.db;
import android.os.StrictMode; import android.os.StrictMode;
import android.util.Log;
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuth;
import com.google.gson.JsonSerializer;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.Serializable;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import at.smartshopper.smartshopper.shoppinglist.Member; import at.smartshopper.smartshopper.shoppinglist.Member;
@ -29,7 +23,6 @@ import at.smartshopper.smartshopper.shoppinglist.details.item.Item;
public class Database { public class Database {
private transient Connection conect;
final private String HOST = "188.166.124.80"; final private String HOST = "188.166.124.80";
final private String DB_NAME = "smartshopperdb"; final private String DB_NAME = "smartshopperdb";
final private String USERNAME = "smartshopper-user"; final private String USERNAME = "smartshopper-user";
@ -39,6 +32,7 @@ public class Database {
final private int groupIdLength = 10; final private int groupIdLength = 10;
final private int itemIdLength = 10; final private int itemIdLength = 10;
final private int inviteLength = 50; 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 = ?"; String SQL = "SELECT row_to_json(\"User\") as obj FROM \"User\" JOIN \"Shoppinglist_member\" USING (username) WHERE sl_id = ?";
ArrayList<Member> members = new ArrayList(); ArrayList<Member> members = new ArrayList();
List<JSONObject> jsonObjects = executeQueryJSONObject(SQL, sl_id); 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); 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"))); 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 * Stopt eine Einladung, indem der Member die liste nichtmehr sehen kann
*
* @param invitelink Der invitelink * @param invitelink Der invitelink
* @throws SQLException * @throws SQLException
* @throws JSONException * @throws JSONException
@ -143,7 +138,7 @@ public class Database {
} }
private String getinviteFromLink(String eingabeLink){ private String getinviteFromLink(String eingabeLink) {
String delString = null; String delString = null;
if (eingabeLink.contains("https://")) { if (eingabeLink.contains("https://")) {
delString = "https://www.smartshopper.cf/invite/"; delString = "https://www.smartshopper.cf/invite/";
@ -158,6 +153,7 @@ public class Database {
return invite; return invite;
} }
/** /**
* Gibt den Invite link einer Shoppingliste zurück, wenn keiner vorhanden ist --> null * 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 = ?"; String SQL = "SELECT row_to_json(\"Shoppinglist\") AS obj FROM \"Shoppinglist\" WHERE sl_id = ?";
boolean returnBoolean = false; boolean returnBoolean = false;
List<JSONObject> jsonObjects = executeQueryJSONObject(SQL, sl_id); 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); JSONObject jsonObject = jsonObjects.get(i);
if (jsonObject.getString("invitelink").equals("null")) { if (jsonObject.getString("invitelink").equals("null")) {
returnBoolean = false; returnBoolean = false;
@ -740,7 +736,7 @@ public class Database {
/** /**
* Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List * 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 * @return Das ergebnis als JSONObject
* @throws SQLException * @throws SQLException
* @throws JSONException * @throws JSONException
@ -758,7 +754,7 @@ public class Database {
/** /**
* Führt ein SQL Befehl aus und gibt die antwort in ein JSONObject List * 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 * @return Das ergebnis als JSONObject
* @throws SQLException * @throws SQLException
* @throws JSONException * @throws JSONException

View File

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

View File

@ -3,7 +3,7 @@ package at.smartshopper.smartshopper.shoppinglist;
public class Member { public class Member {
private String uid, msid, name, pic, email; 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.uid = uid;
this.msid = msid; this.msid = msid;
this.name = name; this.name = name;

View File

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

View File

@ -1,11 +1,8 @@
package at.smartshopper.smartshopper.shoppinglist; package at.smartshopper.smartshopper.shoppinglist;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.media.Image;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle;
import android.support.v7.widget.CardView; import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -20,11 +17,9 @@ import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import java.sql.SQLException;
import java.util.List; import java.util.List;
import at.smartshopper.smartshopper.R; import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.activitys.ShoppinglistDetails;
import at.smartshopper.smartshopper.customViews.RoundCornersTransformation; import at.smartshopper.smartshopper.customViews.RoundCornersTransformation;
import at.smartshopper.smartshopper.db.Database; 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 * Holt die anzahl der items in dem Adapter
*
* @return Anzahl der Items in dem Adapter * @return Anzahl der Items in dem Adapter
*/ */
@Override @Override
@ -147,6 +143,42 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter<ShoppinglistAdapte
return shoppinglist.size(); 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 * 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface OnChangeItemClick{ public interface OnChangeItemClick {
void onChangeItemClick(String sl_id, View v); 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface OnShareClick{ public interface OnShareClick {
void onShareClick(String sl_id, View v); 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface OnShoppinglistClick{ public interface OnShoppinglistClick {
void onShoppinglistClick(String sl_id, View v); 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 * 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.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.net.Uri;
import android.support.v7.widget.CardView; import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -13,8 +12,6 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import org.json.JSONException; import org.json.JSONException;
@ -121,14 +118,12 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
} }
} }
/** /**
* Holt die anzahl der items in dem Adapter * Holt die anzahl der items in dem Adapter
*
* @return Anzahl der Items in dem Adapter * @return Anzahl der Items in dem Adapter
*/ */
@Override @Override
@ -136,6 +131,42 @@ public class ShoppinglistSharedAdapter extends RecyclerView.Adapter<Shoppinglist
return shoppinglist.size(); 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 * 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface SharedOnChangeItemClick{ public interface SharedOnChangeItemClick {
void sharedOnChangeItemClick(String sl_id, View v); 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface SharedOnShareClick{ public interface SharedOnShareClick {
void sharedOnShareClick(String sl_id, View v); 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 * Interface damit onoclick in der dash activity ausgeführt werden kann
*/ */
public interface SharedOnShoppinglistClick{ public interface SharedOnShoppinglistClick {
void sharedOnShoppinglistClick(String sl_id, View v); 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 * 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; return items;
} }
public void addItem(Item item){ public void addItem(Item item) {
this.items.add(item); this.items.add(item);
} }

View File

@ -12,8 +12,11 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.TextView; import android.widget.TextView;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import java.util.List; import java.util.List;
import at.smartshopper.smartshopper.R; import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.activitys.ItemListActivity; import at.smartshopper.smartshopper.activitys.ItemListActivity;
import at.smartshopper.smartshopper.customViews.SpaceItemDecoration; import at.smartshopper.smartshopper.customViews.SpaceItemDecoration;
@ -75,9 +78,6 @@ public class DetailsAdapter extends RecyclerView.Adapter<DetailsAdapter.MyViewHo
itemsrecycle.setAdapter(itemAdapter); itemsrecycle.setAdapter(itemAdapter);
int cardcolor; int cardcolor;
try { try {
cardcolor = Color.parseColor(details.get(i).getGroup().getColor()); 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 { public void setCardClick(OnCardClicked onCardClicked) {
void onCardClick(String group_id, String sl_id, String groupName, View v); this.onCardClicked = onCardClicked;
} }
/** /**
* Setzt das OnChangeItemClick event * Setzt das OnChangeItemClick event
* @param onCardClicked Der Click event Listener *
* @param onGroupDeleteClicked Der Click event Listener
*/ */
public void setCardClick(OnCardClicked onCardClicked){ public void setGroupDeleteClick(OnGroupDeleteClicked onGroupDeleteClicked) {
this.onCardClicked = onCardClicked; 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); 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 * 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); 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 * 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.sl_id = sl_id;
this.name = name; this.name = name;
String colorstring; String colorstring;
if(color.contains("#")){ if (color.contains("#")) {
colorstring = color; colorstring = color;
}else{ } else {
colorstring = "#" + color; colorstring = "#" + color;
} }
this.color = colorstring; this.color = colorstring;
@ -36,11 +36,11 @@ public class Group {
} }
public String getColor() { public String getColor() {
if(color.isEmpty()){ if (color.isEmpty()) {
return "#FFFFFF"; return "#FFFFFF";
}else if (!color.contains("#")){ } else if (!color.contains("#")) {
return "#" + this.color; return "#" + this.color;
}else { } else {
return this.color; return this.color;
} }
} }

View File

@ -8,7 +8,7 @@ public class Item {
private String name; private String name;
private String count; 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.item_id = item_id;
this.group_id = group_id; this.group_id = group_id;
this.sl_id = sl_id; this.sl_id = sl_id;

View File

@ -1,10 +1,8 @@
package at.smartshopper.smartshopper.shoppinglist.details.item; package at.smartshopper.smartshopper.shoppinglist.details.item;
import android.graphics.Color;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v7.widget.CardView; import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -16,15 +14,9 @@ import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseAuth;
import com.squareup.picasso.Picasso; import com.squareup.picasso.Picasso;
import org.json.JSONException;
import java.sql.SQLException;
import java.util.List; import java.util.List;
import at.smartshopper.smartshopper.R; 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> { 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) { public void setItemDelClick(OnItemDelClicked onItemDelClicked) {
this.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) { public void setOnItemEditClick(OnItemEditClicked onItemEditClick) {
this.onItemEditClick = 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) { public void setOnItemCheckClick(OnItemCheckClicked onItemCheckClick) {
this.onItemCheckClick = onItemCheckClick; this.onItemCheckClick = onItemCheckClick;
} }
@ -126,6 +106,18 @@ public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.MyViewHolder>
return data.size(); 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 * 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.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.google.firebase.auth.FirebaseAuth;
import com.squareup.picasso.Picasso;
import org.json.JSONException; import org.json.JSONException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List; import java.util.List;
import at.smartshopper.smartshopper.R; import at.smartshopper.smartshopper.R;
import at.smartshopper.smartshopper.db.Database; import at.smartshopper.smartshopper.db.Database;
@ -78,11 +71,6 @@ public class ItemShoppinglistDetailsAdapter extends RecyclerView.Adapter<ItemSho
itemAnzahl.setText(data.get(i).getCount()); 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) { public void setOnItemEditClick(OnItemEditClicked onItemEditClick) {
this.onItemEditClick = onItemEditClick; this.onItemEditClick = onItemEditClick;
} }
@ -92,6 +80,10 @@ public class ItemShoppinglistDetailsAdapter extends RecyclerView.Adapter<ItemSho
return data.size(); 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 * 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"?> <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <selector>
</selector> </selector>

View File

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

View File

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

View File

@ -60,6 +60,7 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteY="232dp" /> tools:layout_editor_absoluteY="232dp" />
</TableRow> </TableRow>
<TableRow <TableRow
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="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" <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cardViewGroup" android:id="@+id/cardViewGroup"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@ package at.smartshopper.smartshopper;
import org.junit.Test; 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). * Example local unit test, which will execute on the development machine (host).