From c3e20bdf95aba3ec16fc00cb6b07d41d49db8424 Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 28 Jan 2019 00:13:55 +0100 Subject: [PATCH] Shoppinglisten, Gruppen, Items Anzeigen --- .idea/assetWizardSettings.xml | 77 ++++++ app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 32 ++- app/src/main/ic_launcher-web.png | Bin 0 -> 12896 bytes .../smartshopper/smartshopper/Database.java | 67 ------ .../smartshopper/Shoppinglists.java | 13 - .../smartshopper/{ => activitys}/Dash.java | 82 +++++-- .../{ => activitys}/LoginActivity.java | 60 ++++- .../activitys/ShoppinglistDetails.java | 77 ++++++ .../RoundCornersTransformation.java | 2 +- .../smartshopper/db/Database.java | 224 ++++++++++++++++++ .../messaging/MyFirebaseMessagingService.java | 136 +++++++++++ .../{ => shoppinglist}/Shoppinglist.java | 7 +- .../ShoppinglistAdapter.java | 46 +++- .../shoppinglist/details/Details.java | 37 +++ .../shoppinglist/details/DetailsAdapter.java | 104 ++++++++ .../shoppinglist/details/group/Group.java | 50 ++++ .../shoppinglist/details/item/Item.java | 49 ++++ .../details/item/ItemAdapter.java | 81 +++++++ app/src/main/res/drawable-hdpi/add.png | Bin 0 -> 358 bytes app/src/main/res/drawable-hdpi/addoutline.png | Bin 0 -> 528 bytes app/src/main/res/drawable-hdpi/bearbeiten.png | Bin 0 -> 269 bytes app/src/main/res/drawable-hdpi/delete.png | Bin 0 -> 274 bytes app/src/main/res/drawable-hdpi/user.png | Bin 0 -> 340 bytes app/src/main/res/drawable-mdpi/add.png | Bin 0 -> 306 bytes app/src/main/res/drawable-mdpi/addoutline.png | Bin 0 -> 401 bytes app/src/main/res/drawable-mdpi/bearbeiten.png | Bin 0 -> 149 bytes app/src/main/res/drawable-mdpi/delete.png | Bin 0 -> 165 bytes app/src/main/res/drawable-mdpi/user.png | Bin 0 -> 220 bytes app/src/main/res/drawable-xhdpi/add.png | Bin 0 -> 639 bytes .../main/res/drawable-xhdpi/addoutline.png | Bin 0 -> 995 bytes .../main/res/drawable-xhdpi/bearbeiten.png | Bin 0 -> 216 bytes app/src/main/res/drawable-xhdpi/delete.png | Bin 0 -> 266 bytes app/src/main/res/drawable-xhdpi/user.png | Bin 0 -> 384 bytes app/src/main/res/drawable-xxhdpi/add.png | Bin 0 -> 486 bytes .../main/res/drawable-xxhdpi/addoutline.png | Bin 0 -> 708 bytes .../main/res/drawable-xxhdpi/bearbeiten.png | Bin 0 -> 386 bytes app/src/main/res/drawable-xxhdpi/delete.png | Bin 0 -> 458 bytes app/src/main/res/drawable-xxhdpi/user.png | Bin 0 -> 679 bytes app/src/main/res/drawable-xxxhdpi/add.png | Bin 0 -> 1130 bytes .../main/res/drawable-xxxhdpi/addoutline.png | Bin 0 -> 1703 bytes .../main/res/drawable-xxxhdpi/bearbeiten.png | Bin 0 -> 373 bytes app/src/main/res/drawable-xxxhdpi/delete.png | Bin 0 -> 505 bytes app/src/main/res/drawable-xxxhdpi/user.png | Bin 0 -> 795 bytes app/src/main/res/layout/activity_dash.xml | 30 ++- app/src/main/res/layout/activity_login.xml | 2 +- .../layout/activity_shoppinglist_details.xml | 28 +++ app/src/main/res/layout/cardviewgroup.xml | 77 ++++++ app/src/main/res/layout/cardviewitem.xml | 59 +++++ ...{cardview.xml => cardviewshoppinglist.xml} | 1 + app/src/main/res/menu/dash_menu.xml | 3 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 4 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 4 +- app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2963 -> 1246 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 1863 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 4905 -> 2880 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2060 -> 931 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 1127 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2783 -> 1840 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4490 -> 1780 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 2558 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 6895 -> 4090 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 6387 -> 2718 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 4320 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 10413 -> 6493 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9128 -> 3907 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 6050 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 15132 -> 9401 bytes .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 2 + .../release/res/drawable-hdpi/bearbeiten.png | Bin 0 -> 269 bytes .../res/drawable-hdpi/ic_action_name.png | Bin 0 -> 274 bytes app/src/release/res/drawable-hdpi/user.png | Bin 0 -> 340 bytes .../release/res/drawable-mdpi/bearbeiten.png | Bin 0 -> 149 bytes .../res/drawable-mdpi/ic_action_name.png | Bin 0 -> 165 bytes app/src/release/res/drawable-mdpi/user.png | Bin 0 -> 220 bytes .../release/res/drawable-xhdpi/bearbeiten.png | Bin 0 -> 216 bytes .../res/drawable-xhdpi/ic_action_name.png | Bin 0 -> 266 bytes app/src/release/res/drawable-xhdpi/user.png | Bin 0 -> 384 bytes .../res/drawable-xxhdpi/bearbeiten.png | Bin 0 -> 386 bytes .../res/drawable-xxhdpi/ic_action_name.png | Bin 0 -> 458 bytes app/src/release/res/drawable-xxhdpi/user.png | Bin 0 -> 679 bytes .../res/drawable-xxxhdpi/bearbeiten.png | Bin 0 -> 373 bytes .../res/drawable-xxxhdpi/ic_action_name.png | Bin 0 -> 505 bytes app/src/release/res/drawable-xxxhdpi/user.png | Bin 0 -> 795 bytes 85 files changed, 1241 insertions(+), 119 deletions(-) create mode 100644 .idea/assetWizardSettings.xml create mode 100644 app/src/main/ic_launcher-web.png delete mode 100644 app/src/main/java/at/smartshopper/smartshopper/Database.java delete mode 100644 app/src/main/java/at/smartshopper/smartshopper/Shoppinglists.java rename app/src/main/java/at/smartshopper/smartshopper/{ => activitys}/Dash.java (71%) rename app/src/main/java/at/smartshopper/smartshopper/{ => activitys}/LoginActivity.java (82%) create mode 100644 app/src/main/java/at/smartshopper/smartshopper/activitys/ShoppinglistDetails.java rename app/src/main/java/at/smartshopper/smartshopper/{ => customViews}/RoundCornersTransformation.java (99%) create mode 100644 app/src/main/java/at/smartshopper/smartshopper/db/Database.java create mode 100644 app/src/main/java/at/smartshopper/smartshopper/messaging/MyFirebaseMessagingService.java rename app/src/main/java/at/smartshopper/smartshopper/{ => shoppinglist}/Shoppinglist.java (79%) rename app/src/main/java/at/smartshopper/smartshopper/{ => shoppinglist}/ShoppinglistAdapter.java (69%) create mode 100644 app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/Details.java create mode 100644 app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/DetailsAdapter.java create mode 100644 app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/group/Group.java create mode 100644 app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/Item.java create mode 100644 app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/ItemAdapter.java create mode 100644 app/src/main/res/drawable-hdpi/add.png create mode 100644 app/src/main/res/drawable-hdpi/addoutline.png create mode 100644 app/src/main/res/drawable-hdpi/bearbeiten.png create mode 100644 app/src/main/res/drawable-hdpi/delete.png create mode 100644 app/src/main/res/drawable-hdpi/user.png create mode 100644 app/src/main/res/drawable-mdpi/add.png create mode 100644 app/src/main/res/drawable-mdpi/addoutline.png create mode 100644 app/src/main/res/drawable-mdpi/bearbeiten.png create mode 100644 app/src/main/res/drawable-mdpi/delete.png create mode 100644 app/src/main/res/drawable-mdpi/user.png create mode 100644 app/src/main/res/drawable-xhdpi/add.png create mode 100644 app/src/main/res/drawable-xhdpi/addoutline.png create mode 100644 app/src/main/res/drawable-xhdpi/bearbeiten.png create mode 100644 app/src/main/res/drawable-xhdpi/delete.png create mode 100644 app/src/main/res/drawable-xhdpi/user.png create mode 100644 app/src/main/res/drawable-xxhdpi/add.png create mode 100644 app/src/main/res/drawable-xxhdpi/addoutline.png create mode 100644 app/src/main/res/drawable-xxhdpi/bearbeiten.png create mode 100644 app/src/main/res/drawable-xxhdpi/delete.png create mode 100644 app/src/main/res/drawable-xxhdpi/user.png create mode 100644 app/src/main/res/drawable-xxxhdpi/add.png create mode 100644 app/src/main/res/drawable-xxxhdpi/addoutline.png create mode 100644 app/src/main/res/drawable-xxxhdpi/bearbeiten.png create mode 100644 app/src/main/res/drawable-xxxhdpi/delete.png create mode 100644 app/src/main/res/drawable-xxxhdpi/user.png create mode 100644 app/src/main/res/layout/activity_shoppinglist_details.xml create mode 100644 app/src/main/res/layout/cardviewgroup.xml create mode 100644 app/src/main/res/layout/cardviewitem.xml rename app/src/main/res/layout/{cardview.xml => cardviewshoppinglist.xml} (99%) create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/release/res/drawable-hdpi/bearbeiten.png create mode 100644 app/src/release/res/drawable-hdpi/ic_action_name.png create mode 100644 app/src/release/res/drawable-hdpi/user.png create mode 100644 app/src/release/res/drawable-mdpi/bearbeiten.png create mode 100644 app/src/release/res/drawable-mdpi/ic_action_name.png create mode 100644 app/src/release/res/drawable-mdpi/user.png create mode 100644 app/src/release/res/drawable-xhdpi/bearbeiten.png create mode 100644 app/src/release/res/drawable-xhdpi/ic_action_name.png create mode 100644 app/src/release/res/drawable-xhdpi/user.png create mode 100644 app/src/release/res/drawable-xxhdpi/bearbeiten.png create mode 100644 app/src/release/res/drawable-xxhdpi/ic_action_name.png create mode 100644 app/src/release/res/drawable-xxhdpi/user.png create mode 100644 app/src/release/res/drawable-xxxhdpi/bearbeiten.png create mode 100644 app/src/release/res/drawable-xxxhdpi/ic_action_name.png create mode 100644 app/src/release/res/drawable-xxxhdpi/user.png diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml new file mode 100644 index 0000000..2d46eba --- /dev/null +++ b/.idea/assetWizardSettings.xml @@ -0,0 +1,77 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d22dc95..7a7adac 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,6 +28,8 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'com.google.firebase:firebase-auth:16.1.0' + implementation 'com.google.firebase:firebase-messaging:17.3.4' + implementation 'com.firebase:firebase-jobdispatcher:0.8.5' implementation 'com.google.android.gms:play-services-auth:16.0.1' implementation 'com.firebaseui:firebase-ui-auth:4.1.0' // http://mvnrepository.com/artifact/postgresql/postgresql diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2961219..235453a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,9 @@ + + - + @@ -18,9 +20,33 @@ + android:theme="@style/AppTheme" /> + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/ic_launcher-web.png b/app/src/main/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..4037ea3a77bef637d4d64d473009f24177093065 GIT binary patch literal 12896 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/at/smartshopper/smartshopper/Database.java b/app/src/main/java/at/smartshopper/smartshopper/Database.java deleted file mode 100644 index fda8775..0000000 --- a/app/src/main/java/at/smartshopper/smartshopper/Database.java +++ /dev/null @@ -1,67 +0,0 @@ -package at.smartshopper.smartshopper; - -import android.os.StrictMode; -import android.util.Log; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.util.ArrayList; -import java.util.List; - -public class Database { - - private Connection conect; - final String HOST = "188.166.124.80"; - final String DB_NAME = "smartshopperdb"; - final String USERNAME = "smartshopper-user"; - final String PASSWORD = "jW^v#&LjNY_b3-k*jYj!U4Xz?T??m_D6249XAeWZ#7C^FRbKm!c_Dt+qj@4&a-Hs"; - final int PORT = 5432; - - - public Database(){}; - public void connectDatabase() throws SQLException { - StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); - StrictMode.setThreadPolicy(policy); - DriverManager.registerDriver(new org.postgresql.Driver()); - conect = DriverManager.getConnection("jdbc:postgresql://" + HOST + ":" + PORT + "/" + DB_NAME, USERNAME, PASSWORD); - - System.out.println("Database connected!"); - } - - public List getMyShoppinglists(String uid) throws JSONException { - try { - connectDatabase(); - } catch (SQLException e) { - e.printStackTrace(); - } - String SQL = "SELECT row_to_json(\"Shoppinglist\") AS obj FROM \"Shoppinglist\" JOIN \"Shoppinglist_admin\" USING (sl_id) WHERE username = ?"; - ArrayList shoppinglistsList = null; - try ( - Statement stmt = conect.createStatement(); - PreparedStatement pstmt = conect.prepareStatement(SQL)) { - pstmt.setString(1, uid); - ResultSet rs = pstmt.executeQuery(); - System.out.println(uid); - shoppinglistsList = new ArrayList(); - while (rs.next()) { - String shoppinglist = rs.getString(1); - JSONObject jsonObject = new JSONObject(shoppinglist); - - shoppinglistsList.add(new Shoppinglist(jsonObject.getString("sl_id"), jsonObject.getString("name"), jsonObject.getString("description"), jsonObject.getString("invitelink"), jsonObject.getString("color"))); - } - Log.d("DATABASE SHOPPINGLISTS", shoppinglistsList.toString()); - - } catch (SQLException ex) { - System.out.println(ex.getMessage()); - } - return (List) shoppinglistsList; - - } -} diff --git a/app/src/main/java/at/smartshopper/smartshopper/Shoppinglists.java b/app/src/main/java/at/smartshopper/smartshopper/Shoppinglists.java deleted file mode 100644 index 842f78f..0000000 --- a/app/src/main/java/at/smartshopper/smartshopper/Shoppinglists.java +++ /dev/null @@ -1,13 +0,0 @@ -package at.smartshopper.smartshopper; - -import at.smartshopper.smartshopper.Shoppinglist; - -public class Shoppinglists { - - - - - public Shoppinglists(){ - - } -} diff --git a/app/src/main/java/at/smartshopper/smartshopper/Dash.java b/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java similarity index 71% rename from app/src/main/java/at/smartshopper/smartshopper/Dash.java rename to app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java index 02a5354..b3ddaff 100644 --- a/app/src/main/java/at/smartshopper/smartshopper/Dash.java +++ b/app/src/main/java/at/smartshopper/smartshopper/activitys/Dash.java @@ -1,34 +1,30 @@ -package at.smartshopper.smartshopper; +package at.smartshopper.smartshopper.activitys; -import android.app.ActionBar; import android.content.Intent; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.ColorInt; -import android.support.annotation.NonNull; +import android.os.Handler; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; -import android.view.View; -import android.widget.Button; import android.widget.TabHost; +import android.widget.Toast; -import com.google.android.gms.tasks.OnCompleteListener; -import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; -import com.google.firebase.auth.GetTokenResult; import org.json.JSONException; +import java.sql.SQLException; import java.util.List; -import java.util.jar.JarInputStream; + +import at.smartshopper.smartshopper.R; +import at.smartshopper.smartshopper.db.Database; +import at.smartshopper.smartshopper.shoppinglist.Shoppinglist; +import at.smartshopper.smartshopper.shoppinglist.ShoppinglistAdapter; public class Dash extends AppCompatActivity { @@ -70,7 +66,11 @@ public class Dash extends AppCompatActivity { try { - showOwnShoppingList(uid); + try { + showOwnShoppingList(uid); + } catch (SQLException e) { + e.printStackTrace(); + } } catch (JSONException e) { e.printStackTrace(); } @@ -79,7 +79,11 @@ public class Dash extends AppCompatActivity { ownswiperefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { - refreshOwnShoppinglist(uid); + try { + refreshOwnShoppinglist(uid); + } catch (SQLException e) { + e.printStackTrace(); + } } }); @@ -92,6 +96,7 @@ public class Dash extends AppCompatActivity { * Logt den User aus und geht zur Login Activity */ private void logout(){ + finish(); FirebaseAuth.getInstance().signOut(); Intent intent = new Intent(this, LoginActivity.class); startActivity(intent); @@ -102,7 +107,7 @@ public class Dash extends AppCompatActivity { * * @param uid Von dem benutzer von welchem die Shoppinglists angezeigt werden sollen */ - private void refreshOwnShoppinglist(String uid) { + private void refreshOwnShoppinglist(String uid) throws SQLException { try { showOwnShoppingList(uid); } catch (JSONException e) { @@ -128,7 +133,7 @@ public class Dash extends AppCompatActivity { * * @param uid Die UserId damit von diesem user die shoppinglisten angezeigt werden */ - private void showOwnShoppingList(String uid) throws JSONException { + private void showOwnShoppingList(String uid) throws JSONException, SQLException { RecyclerView ownRecycleView = (RecyclerView) findViewById(R.id.ownrecycler); ownRecycleView.setHasFixedSize(true); ownRecycleView.setLayoutManager(new LinearLayoutManager(this)); @@ -158,6 +163,16 @@ public class Dash extends AppCompatActivity { host.addTab(spec); } + /** + * Schickt an die Login Activity einen intend mit dem extra EXIT. Um die app zu schließen + */ + private void exit(){ + Intent intent = new Intent(Dash.this, LoginActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + intent.putExtra("EXIT", true); + startActivity(intent); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { @@ -167,6 +182,11 @@ public class Dash extends AppCompatActivity { } + /** + * Menu item Action listener + * @param item Action Item + * @return True wenn erfolgreich + */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { @@ -174,7 +194,6 @@ public class Dash extends AppCompatActivity { logout(); return true; - default: // If we got here, the user's action was not recognized. // Invoke the superclass to handle it. @@ -184,4 +203,31 @@ public class Dash 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 + */ + @Override + public void onBackPressed() { + if (doubleBackToExitPressedOnce) { + super.onBackPressed(); + exit(); + + return; + } + + this.doubleBackToExitPressedOnce = true; + Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show(); + + new Handler().postDelayed(new Runnable() { + + @Override + public void run() { + doubleBackToExitPressedOnce=false; + } + }, 2000); + } + } diff --git a/app/src/main/java/at/smartshopper/smartshopper/LoginActivity.java b/app/src/main/java/at/smartshopper/smartshopper/activitys/LoginActivity.java similarity index 82% rename from app/src/main/java/at/smartshopper/smartshopper/LoginActivity.java rename to app/src/main/java/at/smartshopper/smartshopper/activitys/LoginActivity.java index 5593cfe..0529d0f 100644 --- a/app/src/main/java/at/smartshopper/smartshopper/LoginActivity.java +++ b/app/src/main/java/at/smartshopper/smartshopper/activitys/LoginActivity.java @@ -1,6 +1,7 @@ -package at.smartshopper.smartshopper; +package at.smartshopper.smartshopper.activitys; import android.content.Intent; +import android.os.Handler; import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; @@ -25,6 +26,8 @@ import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.GoogleAuthProvider; +import at.smartshopper.smartshopper.R; + public class LoginActivity extends AppCompatActivity { private static final String TAG = "SMASH"; @@ -58,11 +61,20 @@ public class LoginActivity extends AppCompatActivity { startActivityForResult(signInIntent, RC_SIGN_IN); } + /** + * Wechselt zu der Dash Activity + */ private void goDash() { Intent intent = new Intent(this, Dash.class); + finish(); startActivity(intent); } + /** + * Loggt den User per Email ein + * @param email Email des Users + * @param password Passwort des Users + */ private void signInEmail(String email, String password) { mAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener() { @@ -85,6 +97,12 @@ public class LoginActivity extends AppCompatActivity { }); } + + /** + * Erstellt einen Account mit Email und Passwort + * @param email Email des neuen Users + * @param password Passwort des neuen Users + */ private void createAccount(String email, String password) { mAuth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener() { @@ -106,10 +124,15 @@ public class LoginActivity extends AppCompatActivity { }); } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); + if (getIntent().getBooleanExtra("EXIT", false)) + { + finish(); + } mAuth = FirebaseAuth.getInstance(); Button loginEmailBtn = (Button) findViewById(R.id.loginEmailBtn); @@ -146,6 +169,10 @@ public class LoginActivity extends AppCompatActivity { } + /** + * Loggt den User ein. Bei erfolg wird der Aufruf zur Dash Activity getätigt + * @param acct Der Google Account, welcher eingelogt werden soll + */ private void firebaseAuthWithGoogle(GoogleSignInAccount acct) { Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId()); @@ -171,6 +198,10 @@ public class LoginActivity extends AppCompatActivity { }); } + + /** + * Prüft ob der User bereits eingelogt ist. Wenn ja, wird er auf die Dash Activity weitergeleitet + */ @Override public void onStart() { super.onStart(); @@ -181,4 +212,31 @@ 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 + */ + @Override + public void onBackPressed() { + if (doubleBackToExitPressedOnce) { + super.onBackPressed(); + finish(); + + return; + } + + this.doubleBackToExitPressedOnce = true; + Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show(); + + new Handler().postDelayed(new Runnable() { + + @Override + public void run() { + doubleBackToExitPressedOnce=false; + } + }, 2000); + } } diff --git a/app/src/main/java/at/smartshopper/smartshopper/activitys/ShoppinglistDetails.java b/app/src/main/java/at/smartshopper/smartshopper/activitys/ShoppinglistDetails.java new file mode 100644 index 0000000..0bfd429 --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/activitys/ShoppinglistDetails.java @@ -0,0 +1,77 @@ +package at.smartshopper.smartshopper.activitys; + +import android.os.Bundle; +import android.app.Activity; +import android.support.design.widget.Snackbar; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.widget.Toast; + +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.FirebaseUser; + +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.Shoppinglist; +import at.smartshopper.smartshopper.shoppinglist.ShoppinglistAdapter; +import at.smartshopper.smartshopper.shoppinglist.details.Details; +import at.smartshopper.smartshopper.shoppinglist.details.DetailsAdapter; + +public class ShoppinglistDetails extends Activity { + + private Database db = new Database(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_shoppinglist_details); + + Bundle bundle = getIntent().getExtras(); + int position = -1; // or other values + if (bundle != null) + position = bundle.getInt("pos"); + + Toast.makeText(this, "Click detected on item " + position, Toast.LENGTH_LONG).show(); + + List shoppinglists = null; + try { + shoppinglists = db.getMyShoppinglists(FirebaseAuth.getInstance().getCurrentUser().getUid()); + } catch (JSONException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + + Shoppinglist aktuelleShopinglist = shoppinglists.get(position); + + try { + showDetails(aktuelleShopinglist.getSlId()); + } catch (SQLException e) { + e.printStackTrace(); + } catch (JSONException e) { + e.printStackTrace(); + } + + } + + /** + * Zeigt das Card View der Shoppinglist Details an + * @param sl_id Shoppinglist welche angezeigt werden soll + * @throws SQLException + * @throws JSONException + */ + private void showDetails(String sl_id) throws SQLException, JSONException { + RecyclerView detailsRecycleView = (RecyclerView) findViewById(R.id.groupRecycle); + detailsRecycleView.setHasFixedSize(true); + detailsRecycleView.setLayoutManager(new LinearLayoutManager(this)); + List
detailsList = db.getListDetails(sl_id); + DetailsAdapter detailsAdapter = new DetailsAdapter(detailsList); + detailsRecycleView.setAdapter(detailsAdapter); + } + +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/RoundCornersTransformation.java b/app/src/main/java/at/smartshopper/smartshopper/customViews/RoundCornersTransformation.java similarity index 99% rename from app/src/main/java/at/smartshopper/smartshopper/RoundCornersTransformation.java rename to app/src/main/java/at/smartshopper/smartshopper/customViews/RoundCornersTransformation.java index 5ef900f..71632ec 100644 --- a/app/src/main/java/at/smartshopper/smartshopper/RoundCornersTransformation.java +++ b/app/src/main/java/at/smartshopper/smartshopper/customViews/RoundCornersTransformation.java @@ -1,4 +1,4 @@ -package at.smartshopper.smartshopper; +package at.smartshopper.smartshopper.customViews; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; diff --git a/app/src/main/java/at/smartshopper/smartshopper/db/Database.java b/app/src/main/java/at/smartshopper/smartshopper/db/Database.java new file mode 100644 index 0000000..d23d2aa --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/db/Database.java @@ -0,0 +1,224 @@ +package at.smartshopper.smartshopper.db; + +import android.os.StrictMode; +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +import at.smartshopper.smartshopper.shoppinglist.Shoppinglist; +import at.smartshopper.smartshopper.shoppinglist.details.Details; +import at.smartshopper.smartshopper.shoppinglist.details.group.Group; +import at.smartshopper.smartshopper.shoppinglist.details.item.Item; + +public class Database { + + private Connection conect; + final String HOST = "188.166.124.80"; + final String DB_NAME = "smartshopperdb"; + final String USERNAME = "smartshopper-user"; + final String PASSWORD = "jW^v#&LjNY_b3-k*jYj!U4Xz?T??m_D6249XAeWZ#7C^FRbKm!c_Dt+qj@4&a-Hs"; + final int PORT = 5432; + + + /** + * Macht nix + */ + public Database() { + } + + + /** + * Verbindet Sich mit der Datenbank. Auf der Konsole wird "Database connected!" angezeigt, bei erfolgreicher verbindung + * + * @throws SQLException Bei einem error bei der Verbindung, können details über diese Exception abgerufen werden + */ + private void connectDatabase() throws SQLException { + StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); + StrictMode.setThreadPolicy(policy); + DriverManager.registerDriver(new org.postgresql.Driver()); + conect = DriverManager.getConnection("jdbc:postgresql://" + HOST + ":" + PORT + "/" + DB_NAME, USERNAME, PASSWORD); + + System.out.println("Database connected!"); + } + + /** + * Verbindet sich mit dem Server + * Holt die eigenen Shoppinglisten vom Server. Und speichert diese in eine List mit Shoppinglist Objekten + * + * @param uid Die UID auf welche die Abfrage ausgeführt werden soll + * @return Das Ergebnis der eigenen Shoppinglisten in einer List gefüllt mit Shoppinglist Objekten + * @throws JSONException Ein JSON Umwandlungsfehler + * @throws SQLException Ein PostgreSQL Fehler + */ + public List getMyShoppinglists(String uid) throws JSONException, SQLException { + String SQL = "SELECT row_to_json(\"Shoppinglist\") AS obj FROM \"Shoppinglist\" JOIN \"Shoppinglist_admin\" USING (sl_id) WHERE username = ?"; + + connectDatabase(); + + ArrayList shoppinglistsList = new ArrayList(); + + ResultSet rs = null; + try (PreparedStatement pstmt = conect.prepareStatement(SQL)) { + pstmt.setString(1, uid); + rs = pstmt.executeQuery(); + System.out.println(uid); + + + while (rs.next()) { + String shoppinglist = rs.getString(1); + JSONObject jsonObject = new JSONObject(shoppinglist); + + shoppinglistsList.add(new Shoppinglist(jsonObject.getString("sl_id"), jsonObject.getString("name"), jsonObject.getString("description"), jsonObject.getString("invitelink"), jsonObject.getString("color"))); + } + + } catch (SQLException ex) { + System.out.println(ex.getMessage()); + } + + + Log.d("DATABASE SHOPPINGLISTS", shoppinglistsList.toString()); + + return (List) shoppinglistsList; + + } + + + /** + * Hoolt alle groups und items der list und erstelt ein Detail objekt von jeder group. Die detail objekte kommen in eine List + * @param sl_id Shoppinglist Id mit der gearbeitet wird + * @return Eine List mit Details über jede Shoppinglist + * @throws SQLException + * @throws JSONException + */ + public List
getListDetails(String sl_id) throws SQLException, JSONException { + + List groups = getGroups(sl_id); + + List items = getItems(sl_id); + + ArrayList
detailsArrayList = new ArrayList
(); + for (Group group : groups) { + Details detailsTmp = new Details(group); + for (Item item : items) { + if (group.getGroup_id().equals(item.getGroup_id())) { + detailsTmp.addItem(item); + } + } + detailsArrayList.add(detailsTmp); + } + + return (List
) detailsArrayList; + + + } + + /** + * Holt alle Items einer bestimmten shoppingliste, angegeben durch die shoppinglist id + * + * @param sl_id + * @return + * @throws SQLException + * @throws JSONException + */ + private List getItems(String sl_id) throws SQLException, JSONException { + String SQL = "SELECT row_to_json(\"Item\") AS obj FROM \"Item\" JOIN \"Group\" USING (group_id) WHERE \"Group\".sl_id = ?"; + connectDatabase(); + + ArrayList listItems = new ArrayList(); + ResultSet rsitems = null; + try (PreparedStatement pstmt = conect.prepareStatement(SQL)) { + pstmt.setString(1, sl_id); + rsitems = pstmt.executeQuery(); + System.out.println(sl_id); + while (rsitems.next()) { + String itemsString = rsitems.getString(1); + JSONObject jsonObject = new JSONObject(itemsString); + + listItems.add(new Item(jsonObject.getString("item_id"), jsonObject.getString("group_id"), jsonObject.getString("sl_id"), jsonObject.getString("name"), jsonObject.getString("count"))); + } + + } catch (SQLException ex) { + System.out.println(ex.getMessage()); + } + + return (List) listItems; + + } + + /** + * Holt alle gruppen einer bestimmten Shoppinglist id + * + * @param sl_id Holt alle goups dieser Shoppinglist id + * @return Gibt alle groups der Abgefragten Shoppinglist id zurück + * @throws SQLException + * @throws JSONException + */ + private List getGroups(String sl_id) throws SQLException, JSONException { + String SQLGroups = "SELECT row_to_json(\"Group\") AS obj FROM \"Group\" JOIN \"Shoppinglist\" USING (sl_id) WHERE sl_id = ?"; + connectDatabase(); + + ResultSet rsgroups = null; + ArrayList listGroup = new ArrayList(); + try (PreparedStatement pstmt = conect.prepareStatement(SQLGroups)) { + pstmt.setString(1, sl_id); + rsgroups = pstmt.executeQuery(); + System.out.println(sl_id); + while (rsgroups.next()) { + String groupString = rsgroups.getString(1); + JSONObject jsonObject = new JSONObject(groupString); + + + listGroup.add(new Group(jsonObject.getString("group_id"), jsonObject.getString("sl_id"), jsonObject.getString("name"), jsonObject.getString("color"), jsonObject.getString("hidden"))); + + } + + } catch (SQLException ex) { + System.out.println(ex.getMessage()); + } + + return (List) listGroup; + + + } + + + /** + * NICHT VERWENDEN FUNKTIONIERT NICHT!! + *

+ *

+ * NUR EIN KOPIE SAMPLE + *

+ * Beim Start wird die Verbindung zum Server hergesetellt. Dann wird das resultSet von dem SQL reqest zurückgegeben + * + * @param SQL Der zumachende SQL Request + * @param uid Die UID des Benutzers, für den die Abfrage gemacht wird + * @return Das entstandene Result set, mit der Antwort des Servers + */ + private ResultSet databaseRequest(String SQL, String uid) throws SQLException { + connectDatabase(); + + ResultSet rs = null; + try (PreparedStatement pstmt = conect.prepareStatement(SQL)) { + pstmt.setString(1, uid); + rs = pstmt.executeQuery(); + System.out.println(uid); + + //HIER + //WEITER + //PROGRAMMIEREN + + } catch (SQLException ex) { + System.out.println(ex.getMessage()); + } + return rs; + } +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/messaging/MyFirebaseMessagingService.java b/app/src/main/java/at/smartshopper/smartshopper/messaging/MyFirebaseMessagingService.java new file mode 100644 index 0000000..e4f00b5 --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/messaging/MyFirebaseMessagingService.java @@ -0,0 +1,136 @@ +package at.smartshopper.smartshopper.messaging; + +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.content.Context; +import android.content.Intent; +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; + +public class MyFirebaseMessagingService extends FirebaseMessagingService { + + private static final String TAG = "MyFirebaseMsgService"; + + /** + * Called when message is received. + * + * @param remoteMessage Object representing the message received from Firebase Cloud Messaging. + */ + // [START receive_message] + @Override + public void onMessageReceived(RemoteMessage remoteMessage) { + // [START_EXCLUDE] + // There are two types of messages data messages and notification messages. Data messages + // are handled + // here in onMessageReceived whether the app is in the foreground or background. Data + // messages are the type + // traditionally used with GCM. Notification messages are only received here in + // onMessageReceived when the app + // is in the foreground. When the app is in the background an automatically generated + // notification is displayed. + // When the user taps on the notification they are returned to the app. Messages + // containing both notification + // and data payloads are treated as notification messages. The Firebase console always + // sends notification + // messages. For more see: https://firebase.google.com/docs/cloud-messaging/concept-options + // [END_EXCLUDE] + + // TODO(developer): Handle FCM messages here. + // Not getting messages here? See why this may be: https://goo.gl/39bRNJ + Log.d(TAG, "From: " + remoteMessage.getFrom()); + + // Check if message contains a data payload. + if (remoteMessage.getData().size() > 0) { + Log.d(TAG, "Message data payload: " + remoteMessage.getData()); + sendNotification(remoteMessage.getData() + ""); + + } + + // Check if message contains a notification payload. + if (remoteMessage.getNotification() != null) { + Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody()); + sendNotification(remoteMessage.getNotification().getBody()); + } + + // Also if you intend on generating your own notifications as a result of a received FCM + // message, here is where that should be initiated. See sendNotification method below. + } + // [END receive_message] + + + // [START on_new_token] + + /** + * Called if InstanceID token is updated. This may occur if the security of + * the previous token had been compromised. Note that this is called when the InstanceID token + * is initially generated so this is where you would retrieve the token. + */ + @Override + public void onNewToken(String token) { + Log.d(TAG, "Refreshed token: " + token); + + // If you want to send messages to this application instance or + // manage this apps subscriptions on the server side, send the + // Instance ID token to your app server. + sendRegistrationToServer(token); + } + // [END on_new_token] + + + /** + * Persist token to third-party servers. + * + * Modify this method to associate the user's FCM InstanceID token with any server-side account + * maintained by your application. + * + * @param token The new token. + */ + private void sendRegistrationToServer(String token) { + // TODO: Implement this method to send token to your app server. + } + + /** + * Create and show a simple notification containing the received FCM message. + * + * @param messageBody FCM message body received. + */ + private void sendNotification(String messageBody) { + Intent intent = new Intent(this, Dash.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, + PendingIntent.FLAG_ONE_SHOT); + + // String channelId = getString(R.string.default_notification_channel_id); + Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); + NotificationCompat.Builder notificationBuilder = + //new NotificationCompat.Builder(this, channelId) + new NotificationCompat.Builder(this) + .setSmallIcon(R.drawable.ic_launcher_foreground) + .setContentTitle("SmartShopper") + .setContentText(messageBody) + .setAutoCancel(true) + .setSound(defaultSoundUri) + .setContentIntent(pendingIntent); + + NotificationManager notificationManager = + (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + + // Since android Oreo notification channel is needed. + //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.notify(0 /* ID of notification */, notificationBuilder.build()); + } +} \ No newline at end of file diff --git a/app/src/main/java/at/smartshopper/smartshopper/Shoppinglist.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/Shoppinglist.java similarity index 79% rename from app/src/main/java/at/smartshopper/smartshopper/Shoppinglist.java rename to app/src/main/java/at/smartshopper/smartshopper/shoppinglist/Shoppinglist.java index b3ea0be..b8f680e 100644 --- a/app/src/main/java/at/smartshopper/smartshopper/Shoppinglist.java +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/Shoppinglist.java @@ -1,4 +1,4 @@ -package at.smartshopper.smartshopper; +package at.smartshopper.smartshopper.shoppinglist; public class Shoppinglist { @@ -36,4 +36,9 @@ public class Shoppinglist { public String getcolor(){ return this.color;} + @Override + public String toString(){ + return "SL_ID: " + sl_id + " name: " + name + " description: " + description + " invitelink: " + invitelink + " color: "+ color; + } + } diff --git a/app/src/main/java/at/smartshopper/smartshopper/ShoppinglistAdapter.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java similarity index 69% rename from app/src/main/java/at/smartshopper/smartshopper/ShoppinglistAdapter.java rename to app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java index a26915b..d93f45b 100644 --- a/app/src/main/java/at/smartshopper/smartshopper/ShoppinglistAdapter.java +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/ShoppinglistAdapter.java @@ -1,8 +1,9 @@ -package at.smartshopper.smartshopper; +package at.smartshopper.smartshopper.shoppinglist; import android.content.Context; -import android.graphics.drawable.Drawable; +import android.content.Intent; import android.net.Uri; +import android.os.Bundle; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -16,6 +17,10 @@ import com.squareup.picasso.Picasso; import java.util.List; +import at.smartshopper.smartshopper.R; +import at.smartshopper.smartshopper.activitys.ShoppinglistDetails; +import at.smartshopper.smartshopper.customViews.RoundCornersTransformation; + public class ShoppinglistAdapter extends RecyclerView.Adapter { @@ -31,14 +36,25 @@ public class ShoppinglistAdapter extends RecyclerView.Adapter items; + + public Details(Group group) { + this.group = group; + this.items = new ArrayList(); + } + + public Group getGroup() { + return group; + } + + public ArrayList getItems() { + return items; + } + + public void addItem(Item item){ + this.items.add(item); + } + + @Override + public String toString() { + return "Details{" + + "group=" + group.toString() + + ", items=" + items.toString() + + '}'; + } +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/DetailsAdapter.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/DetailsAdapter.java new file mode 100644 index 0000000..11fe511 --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/DetailsAdapter.java @@ -0,0 +1,104 @@ +package at.smartshopper.smartshopper.shoppinglist.details; + +import android.app.Activity; +import android.graphics.Color; +import android.support.annotation.NonNull; +import android.support.v7.widget.CardView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.TextView; +import com.squareup.picasso.Picasso; +import java.util.List; +import at.smartshopper.smartshopper.R; +import at.smartshopper.smartshopper.customViews.RoundCornersTransformation; +import at.smartshopper.smartshopper.db.Database; +import at.smartshopper.smartshopper.shoppinglist.details.item.ItemAdapter; + +public class DetailsAdapter extends RecyclerView.Adapter { + + private List

details; + + public DetailsAdapter(List
details) { + this.details = details; + } + + /** + * Erstellt einen Neuen view holder mit aktueller view + * @param viewGroup + * @param i + * @return + */ + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { + View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardviewgroup, viewGroup, false); + + MyViewHolder myViewHolder = new MyViewHolder(view); + return myViewHolder; + } + + + /** + * Setzt alle Daten in die View elemente + * @param viewHolder Das View Holder Objekt mit allen elementen + * @param i Der Index welcher aus der data list genommen werden soll + */ + @Override + public void onBindViewHolder(@NonNull MyViewHolder viewHolder, int i) { + TextView groupName = viewHolder.groupName; + ImageButton deleteGroup = viewHolder.deleteGroup; + RecyclerView itemsrecycle = viewHolder.itemsrecycle; + TextView ownerName = viewHolder.ownerName; + ImageView ownerImage = viewHolder.ownerImage; + CardView cardViewGroup = viewHolder.cardViewGroups; + + Database db = new Database(); + + groupName.setText(details.get(i).getGroup().getName()); + ownerName.setText("Kein SQL"); + cardViewGroup.setCardBackgroundColor(Color.parseColor("#" + details.get(i).getGroup().getColor())); + Picasso.get().load(R.drawable.delete).into(deleteGroup); + Picasso.get().load(R.drawable.user).resize(250,250).transform(new RoundCornersTransformation(30, 30, true, true)).into(ownerImage); + + itemsrecycle.setHasFixedSize(true); + itemsrecycle.setLayoutManager(new LinearLayoutManager(new Activity())); + List itemsList = details.get(i).getItems(); + ItemAdapter itemAdapter = new ItemAdapter(itemsList); + + itemsrecycle.setAdapter(itemAdapter); + } + + @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 + */ + public static class MyViewHolder extends RecyclerView.ViewHolder { + + TextView groupName, ownerName; + ImageButton deleteGroup; + RecyclerView itemsrecycle; + ImageView ownerImage; + CardView cardViewGroups; + + public MyViewHolder(@NonNull View itemView) { + super(itemView); + this.groupName = (TextView) itemView.findViewById(R.id.groupName); + this.deleteGroup = (ImageButton) itemView.findViewById(R.id.deleteGroup); + this.itemsrecycle = (RecyclerView) itemView.findViewById(R.id.itemsRecycle); + this.ownerName = (TextView)itemView.findViewById(R.id.ownerName); + this.ownerImage = (ImageView)itemView.findViewById(R.id.ownerImage); + this.cardViewGroups = (CardView)itemView.findViewById(R.id.cardViewGroup); + + } + + } +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/group/Group.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/group/Group.java new file mode 100644 index 0000000..276d07f --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/group/Group.java @@ -0,0 +1,50 @@ +package at.smartshopper.smartshopper.shoppinglist.details.group; + +public class Group { + + private String group_id; + private String sl_id; + private String name; + private String color; + private String hidden; + + + public Group(String group_id, String sl_id, String name, String color, String hidden) { + this.group_id = group_id; + this.sl_id = sl_id; + this.name = name; + this.color = color; + this.hidden = hidden; + } + + public String getGroup_id() { + return this.group_id; + } + + public String getSl_idd() { + return this.sl_id; + } + + public String getName() { + return this.name; + } + + public String getColor() { + return this.color; + } + + public String getHidden() { + return this.hidden; + } + + @Override + public String toString() { + return "Group{" + + "group_id='" + group_id + '\'' + + ", sl_id='" + sl_id + '\'' + + ", name='" + name + '\'' + + ", color='" + color + '\'' + + ", hidden='" + hidden + '\'' + + '}'; + } +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/Item.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/Item.java new file mode 100644 index 0000000..c8413b1 --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/Item.java @@ -0,0 +1,49 @@ +package at.smartshopper.smartshopper.shoppinglist.details.item; + +public class Item { + + private String item_id; + private String group_id; + private String sl_id; + private String name; + private 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; + this.name = name; + this.count = count; + } + + public String getItem_id() { + return item_id; + } + + public String getGroup_id() { + return group_id; + } + + public String getSl_id() { + return sl_id; + } + + public String getName() { + return name; + } + + public String getCount() { + return count; + } + + @Override + public String toString() { + return "Item{" + + "item_id='" + item_id + '\'' + + ", group_id='" + group_id + '\'' + + ", sl_id='" + sl_id + '\'' + + ", name='" + name + '\'' + + ", count='" + count + '\'' + + '}'; + } +} diff --git a/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/ItemAdapter.java b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/ItemAdapter.java new file mode 100644 index 0000000..905980c --- /dev/null +++ b/app/src/main/java/at/smartshopper/smartshopper/shoppinglist/details/item/ItemAdapter.java @@ -0,0 +1,81 @@ +package at.smartshopper.smartshopper.shoppinglist.details.item; + +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; +import com.squareup.picasso.Picasso; +import java.util.List; + + + +import at.smartshopper.smartshopper.R; + +public class ItemAdapter extends RecyclerView.Adapter { + + private List data; + + public ItemAdapter(List data){ + this.data = data; + } + + + /** + * Erstellt einen Neuen view holder mit aktueller view + * @param viewGroup + * @param i + * @return + */ + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { + View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.cardviewitem, viewGroup, false); + + MyViewHolder myViewHolder = new MyViewHolder(view); + return myViewHolder; + } + + /** + * Setzt alle Daten in die View elemente + * @param myViewHolder Das View Holder Objekt mit allen elementen + * @param i Der Index welcher aus der data list genommen werden soll + */ + @Override + public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) { + TextView itemName = myViewHolder.itemName; + TextView itemAnzahl = myViewHolder.itemAnzahl; + ImageView itemBearbeiten = myViewHolder.itemBearbeiten; + ImageView itemDel = myViewHolder.itemDel; + + itemName.setText(data.get(i).getName()); + itemAnzahl.setText(data.get(i).getCount()); + Picasso.get().load(R.drawable.bearbeiten).into(itemBearbeiten); + Picasso.get().load(R.drawable.delete).into(itemDel); + } + + @Override + public int getItemCount() { + return data.size(); + } + + /** + * Haltet alle elemente. Durch ein Objekt von dem kann jedes Element welches hier drinnen angeführt ist verwendet werden + */ + public static class MyViewHolder extends RecyclerView.ViewHolder{ + + TextView itemName, itemAnzahl; + ImageView itemBearbeiten, itemDel; + + public MyViewHolder(View itemView){ + super(itemView); + + this.itemName = (TextView)itemView.findViewById(R.id.nameItem); + this.itemAnzahl = (TextView)itemView.findViewById(R.id.anzahlItem); + this.itemBearbeiten = (ImageView)itemView.findViewById(R.id.itemBearbeiten); + this.itemDel = (ImageView)itemView.findViewById(R.id.itemDel); + } + } +} diff --git a/app/src/main/res/drawable-hdpi/add.png b/app/src/main/res/drawable-hdpi/add.png new file mode 100644 index 0000000000000000000000000000000000000000..d377914e8152587125517f10898f4bd9f9b3532c GIT binary patch literal 358 zcmV-s0h#`ZP)Qc{mylexXd5-1o%-YLj4dI^t1+4LAV8)eV3n~1$~0Ik*>q)ia7@;QN3Ln-T>za%$mLk5tO?-K2%RMgoxjN} zI8(XH7O}vDLIpx0CbU-|w8w-J%4}+5w&t53#$ef(U_zCkZ6Et`H*8|5K&TwmFN+l{ z>UdOXZzvE#OWhfeNfgS+JJE0?3OO_>s*}=SFy%)bwuA!BX5GwufiiyA9X1jmv;C$93pw2jbgj_uiN63K_nH`O4A%R++`m&OfiUf0X+Ecknr~8xBvhE07*qoM6N<$ Eg6qPPF8}}l literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/addoutline.png b/app/src/main/res/drawable-hdpi/addoutline.png new file mode 100644 index 0000000000000000000000000000000000000000..69b1eb9d4068445593d7b12883b299e9a8b370b2 GIT binary patch literal 528 zcmV+r0`L8aP)>!o(+TrqY+8;04Bg1mL7lvHOfa>AiDBUR+~1d zRG_DNrkiM_l9x=FSC2Q-UES3aiLB$FL8gl*L`*5F38RN{dP_L8`cf#TuQD`8#3W-2;ex)oB)a#eGBiU( z$D$zz-JAWXA;aQXi<5evJOr!k>lO{wxn-Xr3!^PVcwtnwx?%$yB67}xp&a55eKzjz zD3Q%IVR&zgh78*2SE0000s#) literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/bearbeiten.png b/app/src/main/res/drawable-hdpi/bearbeiten.png new file mode 100644 index 0000000000000000000000000000000000000000..152b5b93885b5f11ed8f25fa214d942ea8e721b3 GIT binary patch literal 269 zcmV+o0rLKdP)P*er+1>u`^ZQ&lPT>-DAXr@L7Y^t`5(hEN?cP7p9NO0DQI3(4%KV2 znyeYP)8kemJyq_lMLrq1cBn}cM zzyRAD4AwLaQ{V=Kf>6Mk(ik7dM$GRE8Db<%@%wrBTaWOsGQZO>Y0ArM+>gf76^P-ew3t6~K1J8$_t0**1tL+7F4&`g|V=*W#;=`f83H*TWo%clM~^ek-Gn@sW7E>BJlS z^K^iZv7%0{Y8+70II8%zq#IWyMeUBROdBs`KW2-yO4B#|=c$UsTBTVr$mFbagw~8g mYb#WTP>6{fg!b~YsXI?tj|vrpH>A@50000$CRP~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/add.png b/app/src/main/res/drawable-mdpi/add.png new file mode 100644 index 0000000000000000000000000000000000000000..9f570999d969eb947568316abb7acae8b0a80f99 GIT binary patch literal 306 zcmV-20nPr2P)NP-hxEf*VI^Z0(+to5+h;*B4J;JTD>?8csy31My+1N3eO`D z5;h1s>s(J_P9Rfw-hOpccnR#zI@gno6G$}*q@2KAqeXX4Akf(4Ky^$@4FaX=nCkq| ztXZy#HV({@9YcoP`LFA*51jXr>0mr^Bh&e0Wd26H0E?*HL$UFCIsgCw07*qoM6N<$ Ef_AEZA^-pY literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/addoutline.png b/app/src/main/res/drawable-mdpi/addoutline.png new file mode 100644 index 0000000000000000000000000000000000000000..8db68ac32a60c249188f6634156f949e9a477381 GIT binary patch literal 401 zcmV;C0dD?@P)OGRp#ybG>ywk>p{_|= zc;S<86x|pIN=D-a_FR?oAyUbAfzp0n}%ngn>nT7eCsU!s7I$3`o#s-Q*Z zc&xMnbHs6pMIPfZcWqO%j~|7`4+=EM-MO}D{zr>S{%Gy0kBZ)Rj*2X9*=9u#yO`Wk v$8}J}asBHTj(uegxgNDEb6Doe{2TEJz}$9SqWT?J00000NkvXXu0mjfK25nX literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/bearbeiten.png b/app/src/main/res/drawable-mdpi/bearbeiten.png new file mode 100644 index 0000000000000000000000000000000000000000..d49726c50a6c2db60c33cd5df601f068b791f3a2 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjF`h1tAr-fh6C_v#CNLdoZ@AGb z*0!ASqojtNC%5+m-36;uk5%YcI_QQkf4D)Vb(UjOo~M*4@9{LwtGw-r$x%}C%(8y0 wc=*L|PUE#U;|sS6*rKG*Ib3$jTfrz=7-$cJr>mdKI;Vst0LuL^=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/delete.png b/app/src/main/res/drawable-mdpi/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..0b509d12dcd48db4a33efd7661f6c2e9de598763 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjIi4<#Ar-fh6C^YhcstH7cxY0@ zYwfHkSHa!JzM%30k3M%8(?(5!_ijSBc}1f=dAWTSCY=gsE_c4k6JXh;>tGfj*}Hdk zRAEC7r`}=q^{giRO0(RJ&Q5-L;mk?vlLj^FnqoI5W}Ng}F)xvWVdd==KV_z|%>vrX N;OXk;vd$@?2>=`gHQ4|F literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/user.png b/app/src/main/res/drawable-mdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..07a2e1982005b3c8051a49b1497c12a03b3f4a81 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gji#=T&Ln>}1CrGe{Fm*ZHVL#Ho zP~yn6<;xzjH~ip{y63Lz{cD2+-(lM;8y*%01>?5d<^6~H0?x=eR--$Pyp8fByi2XCcQGB1Z&_b0P_}C>@(>_0;}LA zK=T$i>|0wSAkzcmb~5y$JkE=E@L03c2aff-q{23xSV#1tG*1kIWllaioeIP2AWhcU zrW314FGDH`%z%=M$G%JBmeOp~jaQ;4X>EgNgA#bACn+VsKKL{!flqo$$Rsce&RmWh zUMKKFPqQ)!h*|K~zyxmTt*cHz&A)*<1R|&6>%$>SL_SC$^>ijViOZ+$^@(ODTMYF zGW8>F&|6oX8a#}i{)>q$ZSYcJPWF^dESx?JO5j6fG1teXYu%s(>h#nnJ1$RyqCp81 z=_%A(%E7R1>W_6c_13XU)_`M`tj@7YyYf9e*vfl#v{>L;Jd{U^p+DUH6UXcJ0>^>G zidBUMWBOX)XfH91`%q#U530n}smNF6Sg%s#E8B{E{k^POCRjS{RAzm5D6=MFks?KM ZtzQ8haUiN-NT~n-002ovPDHLkV1f)8BgX&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/addoutline.png b/app/src/main/res/drawable-xhdpi/addoutline.png new file mode 100644 index 0000000000000000000000000000000000000000..e8caa219468c2c579e666759e7764de96c25de28 GIT binary patch literal 995 zcmV<9104K`P)9~)ET3V8rlp+>Od>F z48s7J z;2XdQSW%p0m{FdC4saesUD%9Lr=62nrcG&og+3enn7|{jrv1#qVLv$KgMDG+0kfFu zV~xH&%LUM5vqm3-#sI#t%ixKPzaGZoI?szWIIk_6G#ynq=!?AG1iDBQ$BvT<+SZrT z8^+?QPQ*YjvrCpA*#|HHA_n>*;65-z`Z(q!!uCVHs3RrA^)izg%Plaiy?v4XP8;fX zF>t9r!!Z*nV`fu-g=xlQEFv@PCHKyqAFeW3Z2Xo*zmAAn?P#xj~ zgs%i!jVxoCV{DGn36>P+OYBo3Axw@>yjmFPJEbGQO)Q+U0#c&+8=F^Gh2kj^%pZu1?6hpnk|7O(w7j zekqEzOl`;Id7TvPNE@3R%k{inohYMkX+!MnHcTdPz+IG7JOfG{mPo$XEwNJime2fQ z3+^cUd{`=$+m!JzCQw4(>IC*pCa}R@K`O=yxP)R}me5K1h#M6fyNu0I7PU0m;j#+* znMT{SG`i@ekR=OP$dXDg!Tfb7*k$b$~3ooL2oGs zxP8^PlrcXx^~)h_>eJfWpZBtQ@@$KU? zPd@32pWrySxs#Nk0?mm&aMl138=gNf?k7#Cpzgk-|-K3`Udw<^DXf3;}BZ78m zM{YLkm)f|bf5&cz?1CegUrup%Tay>QWZ#Fk=iit6{?VO%Jd*kSQMUZTQ=2Px3o2L4 z7Bv20`|?~fJHMPw#fJw6o7wB0(d)Rj?D`TY!=FR(`V-z2N>$%eb*~);I+elG L)z4*}Q$iB}KO9}8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/delete.png b/app/src/main/res/drawable-xhdpi/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3f52c5a18e4f777984f778805b88e2dadc25c5 GIT binary patch literal 266 zcmV+l0rmcgP)-(3;_s000QL#F_lf_3cwuo#$E(Akdb;m7ZQ$o3_TNj5U{(xoWw8u zH?{|XBe1DELZS+W@243_W$VvPI4}n)MA=N{ydK*=Lkg2~) zsK3mqzfR+i3<7Tv2o2!_hk$P=;5h__RC5FPnZ9MXBs|k{3iNI^cm#Q3R!%3Q>#1U( QM*si-07*qoM6N<$g2<7XSbN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/user.png b/app/src/main/res/drawable-xhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..508a52f10bec0be947525d13eb7026381010377d GIT binary patch literal 384 zcmV-`0e}99P)bLS5 z_rM3D+~0HLs#hIHrBbQhO-(QaKG+eT`Cm^}I@@Qpr&PR4nQ$tj$Da@C&9O0RQ0o zj`}uh0teYo$^@1LK$UZOwmOnJiz0@zAmfFcV-tVrCOyEhxa+Ccse`8bAYR e0F_Fm5~maNE!hN<3xR+D0000@P)J6h%V=tAU1HP(TL-)M-Gpe0BmQ3qS%I2+;7WyeOJ`3nHNzO`aXwI#)W)D6;*I zl*snjnav0xgb*^E9dRk{#FO|DU&7D*xeMWT5Y(%nO>rn5MGD649tro0pjHL#iC2*d z<9dN9TnMUF(6vaF<8dOW7C~nsHHOEHpmhn_7pZYv2ZBlo@)Z7EL=X5@ z%$M-<=>FcsmOxN$K_{a0gf904)O8^!x1bl%n;_SPpj?8s#kv-ir53@i6G72}&PDHn zTqlB}1>K0=1-VWHMGLwYQA>ya*cHq1^RewrU7EN~1Vsz-E8tc(%cp)NKLvuK1$~I# z1-VWHMGN9b8bPZG%C+TL+eFcIA}CrAi&X@zCdh{+dlxkMP$+^1vLT*DZ-QKx>qJnr zAm>>0CdhTI90U!-FZun_pTi3XnwA66`T;7}5gr7M%&BNijK`fl2pSn*jH_MDl_(wr zW!^03whw~-#uwQZqO=hATm6kg1P#Oo&wbhUK|~92yUpHuM$p79+@U`f_!j*00)hx3 cgpi#11?cL&YU4Q-g#Z8m07*qoM6N<$f+SYaQvd(} literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/addoutline.png b/app/src/main/res/drawable-xxhdpi/addoutline.png new file mode 100644 index 0000000000000000000000000000000000000000..fd19e5b00847ca0ae5688c9525720901a52ccf6b GIT binary patch literal 708 zcmV;#0z3VQP)+M zJyp+iRlD2VE1hIC^Xk>HXQsQWdS)}naU92S%2|O2@EYF3U-%7rT+h1?s$)TiRnQ5z z1@B49>XPAhSPy_a2fPE)hUgqzAR|0 zf*wKE;0L$~$DnVH!wvWdSs&`tg2p1~E@TZogQ325HO^DW`cmH(bWnn>LDs+y9CUUe z>r?ZvprHimU-&!30bjrom^T+-BcR9Ujrw>FvEMy72^Q2^&>e^a>Fad~Y9DC!J&Ib-%!ZY76=av7nY^rY1;z$Jc3|7F1i1Kcp?F zpP;O99dJ$UKyekaKZFI<7L=W=Zo$+9sqf}z^A<$3Su(p|HZ?)n1+#@Wg<4P{T7dfu zv2d-eZmk8W&sbmcT6DqFg1TlMvV}t}(2Y%y`uYU1zUI|C7F389`L*aD2ht{iv29+^ zri$j97c8h_uEW?jP-V+ILi4B|3+k9n7~3XJjhpqQzMIE_Iz~6f4ZV?ELR7c3k^CVH z9t-MupqJgu@&t5~%JR&2`~2U6;z{9G7<$=9 qOSq*U7Wf1H&sa*C7W1SLa_c zPPuPwy2?LTG;Ni03ceAcbA!`zigKP}(wV$DD`r;8+r5X&?f$$hnonl>uBS{z z%cH+Cs+jLus`t|DuG))l`?9rzH+A^u-t`Mxwzv;Sf4lbW^s3}ZMJ3!H-=)3c6%|rg z`a(=7vA^gg8|z&+ZuRv3FBf%L*UfB>UzfLRYnDh!@xrM)=Ndh!J#{78^LN*UaP#n} znOD~a&71T5+Q)ZoVe|MK-<4gs5Vg~WWszvqLflC5w@Y)FJwwVXW5cLg!3it#pWkXY z^RKosjG5VJ+Kxxyk-Lt*I1)< zQv@gLC~zmTif%5Omuk>IOLv0p1_qbqijg7lOTsx9s@!PE$~ianT~GQ<;rRa(l6agr z6kFbW)wAo!@3YHztM$M{nZY!>!9>hY{?ejS?mG-j0u2l-3rv|o>K+MrTLXCt42&EO zAPF_*tfQ?K;^E41n=ajQy4}Tf!L>#t|EP4K+B(@+*=uiRNW146b2+TtcVS)d^bUI+ z#jC$^F0H(uIXjo9f$Q(p-(DplAelF{r5}E+_I=1To literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/user.png b/app/src/main/res/drawable-xxhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..974449e2c9ab1456d6bd42e367e31d88552a85aa GIT binary patch literal 679 zcmV;Y0$BZtP)wQBt@Yzv@Khna)KfjRL}^bwh-jOEHOwvuXC-=Lf&bx|yAQoY~2|8|Q=&LI@#*=rcy(G+cyxFoIPY z@z?^K;<>q@04L!FgJ{6Gi4C6P&z<0BO>+&-!S8K?xhSX#EWrWG;Vf|q#a(&=Us?>Q zz>#y6aFQXFtWCE`POCVO-{3t5z1w!g+__?*}7%Mym~*kf)mTfGPS13$X6pRRPW zGcRzYd}14|-jnUJFJrC`N+UPnGq}(HYA3awC-7FAp#0xPIh88z@^x+BmoM-s``B}Q z$7kRHhj};E!6W#U&yxoXYmkoe*c#6{>hc=L?Bk5udHsRqk@= z)-x1N@>gm8E$^MQ!WoC#84TuMw|Or?xdFFaI_8H*TM8;Dv{0xds|ASy33jN_NCJr=V1&d1wEz+=O!#QDKr1zokS$WypfxU{@VqRiB#%!|MD^EH@1ZTy=(e&|*k{>!8mt3SJxDfi&1O>;PNv zBOpc`sNbb^bneU5TSb#a9)r)DD!zIeKm)3# zt6;z|3ziLEzyZhxXh2q7SK?S!@eQcBL$7`?rGBG>EOsfTNPJT&ZW=%XN>{JpF*pu6 zl1DEMpaJKq(a;IT3~xZ#4Ujy>RDO-MXn+muCD@2S;d9wg`E}9&8t`AY!32Wb!2j1# zGvGkwH=*)&t|wq2f<-@z1(i1qh@$~rhCy%~bEFPkG$7&z=<$4e!Dqn5P=OuiPvwwy zG}Iw=81#ESK@TU-8GeGG619c>0H)OwsxYmN?*tgv4`6F@0o2og2pZ68xB+aEhajj# z)85JaZqm@6LsA`22mI5RMNMvkOMV#8W_Soz9Ng?u>f7F)C%$%dJmnz16;+=$8W2GP z?4S5|kfi~6e~P3&Ng5C#1Db%Hp4$UQG~g6Rsy_XyZWZe?7;*f>S?dO9MpWHsK-dkq z2WDtM(afm2Rjj9Akp>jaqN*DW2)hCAL5c>H6sy#Y287*!k6_K`@%%z8c_(jFC-TIZ zP{)_bIDa+g6V_DSD%Kj<@_9J95Vo+_Ky#iro7M55GR|Mk;p{C{HyRLj17zYQD=Myq&qNZZWBDk#2H&NHB=1p8L0HFb4Hy{IOKxqa@-Dp7A z4Un73K5xQBvtP}dF#iqZb3nWe_ypED6j3zms%{laz7-sdD=k*38x07%0Wz_$L<8K; zh|vH?2HXd;G@xi^t2rqzyG)JJfRbKIk-E`;r*hX&*>(#rbsO%0xNp`Wb?6TA4FVeA*Z{2wFdw6$ z&#Szhiv~E>Eimq#?Af1*V9_%wzj2j!&8WjW>3WflpaC|g7ofwdLD2xmYD8d`sBT>> z`PJms#ai6Fn+C+&04-^RFzNm4-Lmb~ZUYC2Z_g0SSr3MA}$@$N&HU07*qoM6N<$f_#(vAOHXW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/addoutline.png b/app/src/main/res/drawable-xxxhdpi/addoutline.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd9d9283d4aa3aaaca4c1bcb95f4fd591874185 GIT binary patch literal 1703 zcmV;Y23YxtP)@9{gEQL0pxPSPHEV8c=E^mV^*$g!pUK#8RV)Mrci1 zA1Y6@C?S0)TO_o!SfsT-9{NXlZ}=YfxX#_%?ac1%%$$>aUYK<5Ip;g<{e7=eVq#)q zVq#)qVq#)q;aQ{R8E{hbC71x$HGhD=G%Mh5u)v;QXMdLgC)xWOCEX%G*{w=b4VpDA z;1zIKa|(Q~`2}RbEzLYI310&w#1eaci~Zdw_>R5*Fe{h*XlDLZ#ZdqgSPeL!IRRm}BK02M3sc)gpih5SYCHj%Y4`G0pE_39OV+fE89Q`7y@)JHq^qymf)|>^Hic z$u33|^6xzJTLcgRinl|W(_o_sSVdFPFrxVeP;15f9JGOy=CM4sXm)}Q&8vXkGs51# zT7+K|#~~3w1Sn_?n%&@x=0{-r?@k@4-+-wE2SK0aZSWLm*K7xMti@6b%)e~|?aUW? zk9p^}V2qW!3~ZuM9B0@&8!Ax%0zCDi?_Pi#*4{Qc3SYo9-^pv;}@t@)3 zK{VTJO}DF>pFtJFkEKv|bYK|!bRNgp^HcyI8!-$f3N)$jA}7=-tQG-cD1hnWzXmR& z>%M9k%Q4e_FM^<~Mdc=OOhP8}7-r8~0xWkg=(CI^(UjAjRSvWpPvaYb-xqEN{N; zY0zhBhSBnlOo=-pVGF=Jq8S#qS5Ep^-b8??3-B%&P=%-LdIRckRjL5IgVw7GPq_}T zy!p0|!H{Dtq`SmpQI#M7S+`>>Y>4Ge1c`Z8Fz_(FLT0irIz z6)^acpc#ms5-$h#GHd|yp{K&HB=}o-9nE3<~>$AWsCsQnMzHJK3S_*3g%|3^d zU1TugXqfl#W1c^R%km}yL|p)ycv-X*wguGt9M5-=RfShq^VQAS zO}xLD`Gk5Fw^vR~u4tmhx6v9-+miA+Q0uc24Vz*r@mdzQYXgV~5Oo0-flUBf9$u3m z0cu#>HUTJaB0$sypvvUFr7&tc*CnVDu48d~<>Y>lm9R8Jr5})N0mi`%OJUR{Pts7t zPRCHh4VE|GMqib!;-o>TBn`$rp?L||Ds;-52oQAvXkua5QrIWpXo3Vd%Hl5DjF<=z zk^t|43zouu04EY8zzG(&S58c>0-KblQ>IQS_p+3v2=Ik+FH51ki2zX-pb41ec3$h_ zY1Gf0#qd06ilG2aEWQ!-|D}n1e?%9{n{T7VNNJVZ_hnn0OGmuKb#X4mXIq?0`AMq) z7paK=Aqzle#yxt$MmA{B#)ha1z&B{nj!D}F4a!f+cF2eTAqtScNpB_Zr-)ZVrWHV& z+k&zvY|^9rY%7HTW?43E!yHt(2?wuc*o4Y$?~M93RoZTQRaL+~VG$ri0g64UfPOEd zcvOKAu^Uj!CiJ5U@_!fK0&zU7!?paJLwVR+P6tJRkOkn@4=$=`AK28v{F`yaa*@Ry zx`_ZG+neC5%AMK2sG@mjANl81;V!cH&a${G#&)UPtruBUna5Vr*S?>XyU}ASO-x^b zU6ojIi2xy60~|91ada^yh>i>9M;F(#PER?HE~fY@^5|l2eh=?9XE6)_I)vL)l5N0j zjF7{-MSy4+O=6r=5AJT6Q6_uOVd&ES5GMnov!%no-4d&Xxjb3F)=a+8eDnojIr%K>ehA!LeWuDZL xx~B?X=J|n=+f+pWF)=YQF)=YQF)=Z*e*lqVWq^tNZ;Ai_002ovPDHLkV1hsR8Gir( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/bearbeiten.png b/app/src/main/res/drawable-xxxhdpi/bearbeiten.png new file mode 100644 index 0000000000000000000000000000000000000000..7aa7a82299376913e5f57011cf4ce9712b184e42 GIT binary patch literal 373 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V6^dcaSW-r_4bCL-(d$4*T8U* zHQZ%Q%RWqV(7b$M6Qfm^j@D%t#jeZ`55BjapZt&Q+|-=Yms8Tf;QseJ?{BF}+$?v0dMZu||;VL3aQ{d<)YLB@s@ACJv>J0G+1$ zVh=ft&*ij~PYJ&u*72e9pIFgr4)!14HKN@rn)cU3yJUPg&Sd(das`|H{}n*?ejRt0 zhW($exir|ns1s)V_u#f^h7`oi1L6xA_HnR&aMfsdZ!K?E^W($A!|nXUG5-9w`eDt> zU@yT?XTb0$f#JtNh7Zk*57?Ox@Uu0@^I(%OH->=CvF~`!CcnP7?CpL>U~n>cy85}S Ib4q9e04gG*4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/delete.png b/app/src/main/res/drawable-xxxhdpi/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..00fd1c8ac349b2550d3fdafeb14787095127301f GIT binary patch literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U_9XI;uunK>+NmByh8>e?H_sG z-tac~#vs$VH{h$UZS&`@V+I=2u<6E^ z(s>cmhI-<5oUASWPK*!RrxoPw;ZSH`V1g10Tp58X84@15GBC0TIG_;+E?9lr`YwCE z;g(vd&mITfeu%$pp+8gQ&E<$#sox;}ZXcn4?e|kB2?QNj`eC`(4v{)O&W9{9-2dY^ zuOFJPr8uYI>w&^{FA1T4^4UzsSj)Vf&TX7Ei@Au!-2KPGaK~V#Iof|d{BEdjnq&M& zt?W=T^IYRUX;qHNDrY3?g3s=V5h`lCA7fs!s^!i@^P7G9!Vf7Q%Kv7Qu%^Ym)t`Ye z&QUFK@`ltEy)$}egtes2Nt;tvBEiU)A|~>{qbQM)@2R-hgD5Y?;)d=>)-_ErzB&o= z4~p^_trM?b=FWEi?a&Ml24H}kdM;w|CzzLM9}~C56@>)phy&5QOkuTuS$O_i+eVA- zVHer(TID literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/user.png b/app/src/main/res/drawable-xxxhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..77436f91786679797e57dbc2e83aef6a47b66678 GIT binary patch literal 795 zcmV+$1LXXPP)2(>t>SHC1@TrY7Ie{q<}cWkuEh(ki>P4iHZ|r4=nrrqXmrS1W=>L9I+C>{FbuVFY+p202|mZ@-bilAFyBKSHJ+av0tPSFn~YU zPXNK$<`Kk8c%muL44vGL*fRDBmAPXslz_OGW%vvus$sR9vejo3IXR68o#y9MR%QBP! ze+~JVowcg9^DkjvvOVUkjo-MI%ul<+8}_+m$Cl~g0ssI2000000Km}V#_Kbx>mJH- zW!x6#2;`<}P4!mV|A@nF(!P*lnHQzK5xj0?uUTEjo+;I$>V@j7be~N5Vn(H5ey?)f zv7FU$YMhKet9qm=OS}p6#RThcOZ6j0`DLr~nNc==UZN$3{jU3TtJfZ@jt@`=ckWZ^ ze-pT?yPMja8ztl29PWlBxAXm*>Vd?YW^{l1(9TVw4(?j=GUO{OrtOZcNO~KqU#sq_ zmQ?4gB{O56m+aUZNpH1v#jbIB*vxmU4@weloxg9DQfeslgPK6K?+A5LSJge@&u2woUZES3U1DfcKc*p?AK_&tP^}Wqbrs#OSVi z=_7zLMt9X`9|6=bx@T`abuhZO2!H?xfB*=900@8p2!H?xfB*wj literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_dash.xml b/app/src/main/res/layout/activity_dash.xml index 68a497f..b957ffa 100644 --- a/app/src/main/res/layout/activity_dash.xml +++ b/app/src/main/res/layout/activity_dash.xml @@ -1,15 +1,19 @@ - + android:layout_height="match_parent"> + android:layout_height="wrap_content" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"> + + android:layout_height="match_parent"> + + @@ -82,4 +89,15 @@ - \ No newline at end of file + + diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index e880fc3..94b2c5c 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".LoginActivity"> + tools:context=".activitys.LoginActivity"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/cardviewgroup.xml b/app/src/main/res/layout/cardviewgroup.xml new file mode 100644 index 0000000..867b76e --- /dev/null +++ b/app/src/main/res/layout/cardviewgroup.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/cardviewitem.xml b/app/src/main/res/layout/cardviewitem.xml new file mode 100644 index 0000000..8892c33 --- /dev/null +++ b/app/src/main/res/layout/cardviewitem.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/cardview.xml b/app/src/main/res/layout/cardviewshoppinglist.xml similarity index 99% rename from app/src/main/res/layout/cardview.xml rename to app/src/main/res/layout/cardviewshoppinglist.xml index af934fd..d306b27 100644 --- a/app/src/main/res/layout/cardview.xml +++ b/app/src/main/res/layout/cardviewshoppinglist.xml @@ -61,6 +61,7 @@ card_view:layout_constraintBottom_toBottomOf="parent" card_view:layout_constraintStart_toStartOf="parent" card_view:layout_constraintTop_toBottomOf="@+id/shoppinglistOwner" /> + \ No newline at end of file diff --git a/app/src/main/res/menu/dash_menu.xml b/app/src/main/res/menu/dash_menu.xml index 0a3c72e..ed9219b 100644 --- a/app/src/main/res/menu/dash_menu.xml +++ b/app/src/main/res/menu/dash_menu.xml @@ -1,5 +1,6 @@ - + - - + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index eca70cf..036d09b 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 898f3ed59ac9f3248734a00e5902736c9367d455..6125900da1f5435469d665c3428c8b044a693007 100644 GIT binary patch delta 1227 zcmV;+1T_1T7v2ewBYy;?NklAK*vI~U$VRp+B5)#6tg+L3H%cKRP z=z>xmPPQxR(El|W;x&a-sDNsKhB%;d-`2^l5 zP>z52(10~aNlAGzH8r(VqtTSp=WhDGM@q1BcAa}E%Mu7l&I8qI^?YjDLVzboQVYxG ztEAcaNzGbaO{X~nDwWFUCdczN$+d`uP=h=-IpBV|6n{#FD|r``kdRQ#vic%uZgO(+KHdc>6p9*_)h9toNl8^Q5Ol~NLHqp{ zq|rc|twru)T|il~I2-8;vjQRL@c$}k!9p#H_8D-}coIMM9Kv94wO?E{SHsj@i=Ahh zv7}@d2ZFTOSXOJsO5zE7H{$-Ur@Z1Gaew>9X*68Ei1nQlSkY!d&c_G% z5yS#9^dzcr;4G%cPk1G0VzdtLb`8z;;Zo45w%a(`^(8F*ui*a8IjZ<`gYEnY z%Kv5z`R8tVE~51g^ruI$qWO0j2x_^59hEg$_kTsb$Aa>khEZNsjl!B{d5j>#l?lAj zeBJXAL?fqmU>xss{w5DW4I_5E-aX~jT61vFj`#YkG7&Uv$9gXX)%;>daj#4S9lK`7 zTRol&%6Ce2{G(JZ1(jd6VaI^YV?l)-7JNJAz)GV`w)qXFDb&+6TV?c2&?cH%$A|1P z`hOop)KTDV7p?y(XLY;9DRXo0lzap+*m`p2x&xccR_Om_B)v>itD1JNs;f46{gZZ= z^fj$5CurOMkVexw`ublTAHVqm~GaS2Ur%8(;pELk;5{w5#;N$^N$kG5lNAeksm}yN7u&2#x}&n#2AQr ziD6*p&N8qpER!qSV}8A}gLs^HhD3-a6ogXZC|p^dCY}h?J3QvGxfUKCK0hoh>?tY3 pGO#QxQ&8Rl!wI59i4rA=`U5)=>*2zYl{EkW002ovPDHLkV1kQ)U%LPR delta 2958 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index dffca3601eba7bf5f409bdd520820e2eb5122c75..7970df76a348ade9caead5da26f51eccf7a0769e 100644 GIT binary patch delta 2874 zcmV-A3&r%QCcqYuBYz7ANkl*h!5|!HpJfMN2C-~0%F{(noVLrNsOXp zECsn8e*67(UbBy3W|--j9tP>EA2alHzka_@|E~A?xbMEfU4KRhaWf<8@55#pv25A0 zk?HB_qxjR>os9Om=YYAfa>63|Eio}MV`j~oHDS)2IbryWW)a^f@NZh$91@Fq*5!36 zDJlM`si_(Gd;t&&ASWR8kQ?5$#7f4NOtt#Qy70j1Xspj04~ zS_35yLasr`PJiJx4se^?w(P#fC&c9}MmBjUkOoEGgWQxAge4g8c~=#!8j*e}Fw9B2=6Mu|3P|`6wxKF0~>Qp%R^hT!+ zNuBL>78DE8ErC1CeRL`$^*}gyB24*`+9^lG7YACDK?TKqM4ywK0!a;gIOrl_#;#&D z7Oe@uxUY+K4c?OF_;&R7@q`*3qV#CVHfx)@n-vm<~Xi?kIP26T<~B0J>zWTQQ)_!mla!SS$VN_$}Ib zrU9UiQv0<-n!((>T0*4&vl(EPR<=+M+FooOpnu-J!_^v-l9GI79qj@nrE;4BvI>Zm zU|~?tpZtohUM$cAr@N_;D$adOk5}I8ZPP|Ty*kX8G2>HdE=s#=!6Y|m%~mp?CC6H5 z+wm%Dtj(wH`j@m>P}3gjI=6yKK7W~3S64dwDhqDR)0j(rcGO9i>s-Dxy+toaOuh%DlJ}1U)HRn z|J3%CbN}6?qIF}-+x6&^`ajD z73d9URdpLxG<8v4rR{(=1MdFsyJ(5Nfc6;2A@vrMkub3;y#eu*NBNa5dgfG{&4B*? zO((teb%&$tAmcz?4Hl#2TW{20`w7k6pFhpbkN%t6g4Hw5O+!ecD)6#_5f0K zMjWmO3r{&vD@9Rsbaa4vbAN%|mv9CE^mJ_-ow(jb`Bl~f+HtOfKKZ^=u|PclNd@Ee zkdTl*1*7t3%9JTQ_jB7BfLO`bzv`eO1nZS2ExQ_TyRq(PpuekW(_^U72N2?Lb7W*> zoGC!D(&Si=o`6_5NbmlxQ^`s%AoV|SqE)ddUe8&IUFt~$baurmz<=3T*KW~z8~~_C z0BQrE{-fU@FvtJ##UV+?8u4-cOz15zS2m)On<(k?dL z(Jx2`1qDr#vzVIZJ%62*=3Nnxl;#`2!p|5G%Q$RwT<=2BRRKwbVhvb$^|?n|l-2iR zH2dLj2E;>+sZ*zZ%q;p$d5D48XpBR)4QD_+nn$wQ!7NM-R!8wr-yyf03^71#IU>aq zGT3rvVLYp-T=MYo@rl63SM;1Pb5THQfNt{i^o*6B6X`c6?SG9pRHWyWtBbmr5`W_3 z7juM;nxCX*v-5R#cb^7xthf4xP6qUs_ni#rjx`pf^c^R>0XofM-9%xi zeF+W@9*d7akj_HtZ?-n|XT10(wwP3W6%Q^|&>|gx+{CI{f zG%PG^HGfKSgEf%S7UxiQ(Iw{qI(mm5-uW*|d2sGPa10?KAx}Yb>0GcAb%^L9(Z)QE|Rt|n^Jz6HV~XFLRDK8Oqq49wwR#~l&Ry}Q&SnL>CN(SVqf$9)!k*ZnDIH*ppskO}4> zU6yf8Az4$;AcE;pt%m!AD)}??F@^i8x8?MUNvN{;^pewNx6I zO4+;*@5^nVtrBjN+ZGlR#m5xI-;j8h&`2HxinAHUw;yr9^ziVQ2RB$79Uc7|&VPI% zQgAg&g>T^^S0F#3O25s*-+3MX#@q0=ybtfoZ3t`OHpBTCV!%0cUb1BLfXo;!Fa<2W z_b-}nXyfdM6g-1V1y&l{EJU_>goVHJI{Y@9x8ZHYKD=)zw5b)!sP26p1| YKjc@xeA3|a)Bpeg07*qoM6N<$f;Lc$CjbBd literal 4905 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..5dba3a5009b1e4693ddc2bd53d958a7b1161b25e GIT binary patch literal 1127 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=u;_WZIEGZ*dV9AwKR8t8*vEf@ zUH_y{$92h0TsXVKI9gOjs-UIONhHmwY0nC8A0HMWfxu*ec23SSu8Tjac5&*Q%3Jt) zm*Fy>7Lo9iFPf55lb4nj{;5{ ziY;hFgm-1-&*oLSs}!$thR$5ScEySvYxk9{-1qKlmAr=AnrA=zOr+x?BX6EQ+Vb_F zQ_HD~<=v?%jiu}LcmADc${6H!+}q3RUAcAyx5LfQ@0;)Dv2rs`+03}TsnGJw-5t>f z51hO!lF+bIc+IlR)iqyAXP1=kiT@xMwtjQX@7oQLnW3MfgYM6qF!$k%m<~1*YE2*vjcA!X1~m~z5aB%Jx}z4Usnsuz8*2^2%r(9H9T-qeu%rMd~f zEIRLL{WQ42H)C!BuUm|jlWwqj#j>)-vtL49_-4M?!#d-t-S*sWmqX{%=iG5>cp1lO ze(F{&JA?7pe~hu1 z>CMr1OGcD5`g}vkb*58>|+r|;mIBnTJDX)|2;lY)SvcGLr z<72!xnwW|wtY+eT8NPY1^2C$>Wix+0cNbkZFLoWzhG`b*-TTk4nEe0lSL@)(9pzVS zb8Ew&EnVknd+qzK_^VGpM}Mte&7|{hSJKwHVhhdOi!TM2EdOJCwcmfm`}|jao1)I| z4`*QJF*raJapq`3_w>;7x;GA=W;nfl>wMlboME}u_VX_%F7pn{pRlWM$Kr_6xE*^M*VYBl8 zoRcg8g0*?I;ueYf1$d>x_#+_ f7}+#(!B6RyE4Av6ml>Z179b3su6{1-oD!M<6=)#G literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index dae5e082342fcdeee5db8a6e0b27028e2d2808f5..23351545c33e3d7bf2caae086da1426428e87f68 100644 GIT binary patch delta 1826 zcmV+-2i^GJ6|fGFBYy_>Nkl`Yun_>lRL=h zJ-b)K+ECkApA#Y1i>r*_3egTAn41U+v>5fFzBI=8@#BZd&Ed_LLD07WCtr>r&WV5! zNH0$A@WiOCgn!UE8k5Ha^M-fgLkvuuJPjvr5I{Td+Rd(-JRsMX#-=&s=GF}!2QR`& zdW6Y)w1QT!9)SqGFVamy?1+PI6(;MJk$`SvV|ELlx9K6_FMu!Ot4{hACr!(I0`eB* z!lH%Q{j$P^IWQ|{9+=XnxW;5L;$U-@^H|VA!XU_|M1MM{XqmYMP+avRR5e$@Wy@D^ z#aaPZJ+O951)M+o4eUHo2MfNahV&5 z_HYN}*4~13r!T^lKfVP=`+i01Y1;?&*2A#u_*KX@cfy>CpCElkmTZtSgXHAoH$`l! zc^*5Ncz=*eWg|ymacv9iYuF5(7dELAX#E=g{J97|s5=08<_@<6#JLeq&%}unr>gA} z{(^LPs_a$@JRF&St$X30U!I3+r?Oyo{dSmJ(d?FhhylHD zQo!i%Ryqj&Rl$XBv(1$BR46W*4Xq8c!QPnRG=D7ws6CN3R~Eqh+-Zv0iA!n1gb6F% zNy(qNXDBx0JFH@!pO!Np-aS}}QmBLt%r>5ChK)^^RO~!#s5iU%tUp!>OSbL6Of*$- zpI~0FL`O#t@8bo|2pbd%8hps6SC_LB#pPc+1a*o{4>;bkf+)PYNOmb~*JT0MomI_-sXeF?)t_w=7HdVP4 z9Pfgy7CX$V?bPZ4G74zGQhtRirE(A8hksJFystzc|7a)dx?oo&P>2LdkU)-EI{{V^ z0IFq|q{R0#;Fm}B5FjhNWQX~+$^@33=z=Z3*)#{Shz$uGN6Z1zXIQIV0w12W!K%hC zMFIqV#i=g61TI8GL_F*wfRP=Bu4&avVEM`a;$XosdGN(ew^2T}JM`Zl0vNAtqkr+` zB7nIy3cvVEF9Fi^+X%88rSwkoZI_%1Fu*@T@9a2lheh>W{n`gaYKj3+33X1 zN(lqj7b}JOyZ0WfMtgZFff=ZnZNC4P5~D_qO2#j*-^=ARE9P#5g@vVyB{eUngHcA+ z{Vu2PzJ#2Z#*G_iMywCs@hHIKAU;0+b#jp>GV&z>E+3Q(L`6lBd;+A8m4D6$grK0H zaCDKylSfJ)d!UDJK1{#6y^C*9%f|^gYyC z>_q~n!89d9E^Ruc6B84&iGMJu9xV!~iCpv;#zPq+(dT?L{pmUI%-&!16R5cbPp$o2 z4!m>Mjf;z`AS?`%LCf(vxhfK$*7h?JcgiU(4Kh$hGe6!BS*1rH>$4iXYA|a5X*JAP zQzAWDdy}xL(rmde<&wc`sxP`nv1P`G-2>mI)8418f`S`5QE9a zk2kzUL;&8)a=i`b+Dvom0xyx%VA3JJUchwLD0qVtacCjK4{Sx?G$xH58XEc{)BIq~ zvQY|bj0GByP685eh1OzCZV`yM%3V)P(ueAM3y!%C$4;a<*j(QK8v@J0B&kP@Mq_eh zWaMhhRA!Xc-vmSmc7LVScY>xq)R)Gfv1m+>^1L^^!6pep3qgw;IdbG&EV9;M)~LYM zYoMA10ba(<@G2R-r+X-o25LiXsSoyzXJZ7hF$d&76EyK~2804H0ar97I5>FPh!G=Z zk>1Q0k4iwfXCnh Q#{d8T07*qoM6N<$f+Fc<4*&oF delta 2776 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 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..44cbf7af92114de54c6ab5ac5f86d75bc1d85e62 GIT binary patch literal 2558 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 literal 6895 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index b0907cac3bfd8fbfdc46e1108247f0a1055387ec..941cebdd25e08f9b282f7724eccee296637a4ee3 100644 GIT binary patch literal 2718 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 literal 6387 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..67e0b28873175724102718ef929eb8f0eb7ee4df GIT binary patch literal 4320 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 literal 10413 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 XdJ+W}DiIkV00000NkvXXu0mjfKBlg6 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 2c18de9e66108411737e910f5c1972476f03ddbf..51d0c25d82e9192eca0bb7d9d5d98e4c487ab4b9 100644 GIT binary patch literal 3907 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 I20H400LcNok^lez diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ce3d294a92c10f90c8e8249746289ea1402aaecd GIT binary patch literal 6050 zcmc&&3pCVS*LSHDxh2;L^^_Ef$SoR`N|IX`BxWch#{D*A1|^D;CoygzucwsTh(ZiA z?ztDajmt1@#W1-IW?a7i%=Erb?|Pp1TkBivTkDk8KIeD#-e*UfnHcc% zO7U`VaPS*mxp5TFNOG z+YKPo6cDRBl`&t>MTFlU2zs#NK%s=94CsR8X@$%EW^Naaor+U??%Y(rEOMCF?dFpj z9pU}(D92>U{pX*UOY9PyH*%a`r*6B#;8M!4iV*r5DmU~Mf)=T^yo5qmWX^B(HvwAw z*FF*)qN1XivZ}W~8R|b2NKe1|YCbls;AxmgOo;pz8hKNt1gE4uLaQ%`Ya(^6^@Wh% zX(RfJ9OVV1PJi?3fCx22j6=uo`2_2pb0ZVewc2_9INq2{!Ns?OFn`a5IjdW-eemw^Nn zqujJ#r9_FsnPaiI`E^WEKv%7`5tM#5@yf^%>i8qU3VtS~3nGtH)2WP)%fm_vXsNYM zk*)d%ItnK&7o8LI(V0mp&S8k0YblF{F1Ef?1kK|*{cTF(plKzej(Q%O*od|^-**!c zgmmZT9t3nda5PW&fIA%X_=DhzT=K**SdtE*O{q!K?*-NUagJbnTlXU~bMu9D?xa-# zRkhYhTK!V{sg8=3zTQQ;{mdnAB=M`62@fq$%@UtVppD0wa!;`2fC13$_V{px0whY**Ftsx`g zo(}J|o`eM%Uy0Qnxn)ZbDq0*|un3bdu_Ny5u&X}2vGO76^T(BULZv6(bJ;U`o9aZu zppvh9=dW&mOfS6+y%H-m_f846+h%$}Eh_v7NC*l>!6D?~)L}@Bx`UniLVNX8~gf{N1Pb?- zv#xCxU3j>;zB@Vm5R8i^T{~m)odWM~uBd3k~tn51_}Wr{TTWRu`AIlq0M?_hLO!4&~%{#qJ4S^+CJ~ zyVKXl$v6XY6CzIY*f6$jLaavV)Heu-<{WLj+OQn!xxJkQNd-FZ;HS*ea0 zZAU&EI3d2EAXDtMl_twD$T7}J&w&z0FyO_jMQ&zah$jw0j1TvwnMq3k#MT%}?HD4rdy*bIU5_}M**$b8#@z}Tl zF{$9fRE5hKfpceFTE+G-LDs7Ydyc6V5$oMlMJpmpP0G12!{KrWFI}*%B{C$r$REoT zaujBfN7|h?+u1o24I%i76h$E3WD0lW5?Po@q@LUu`|gOSD}V9g_D&@vrx7i%?hkL< zmB-9OViSBKQA*0Q!s+6j0@=h8k^JyU4Onx0+%o-po4HIku#t&PjR!J$O-bsiIr0$B zR#Sq&{4+a)DD%S>G9+gA{Oc#OG7e~zrGrT>7X}|L7xLXSyLJsLxTGbnvLk<)mc10m zSLwDWuFToW#FE_^g`3O6 zkmcKG^*uAJb~z<$u~+Y5H-;k0#6v!e8*qbfa1?pR+6Q}5(zK3Sj(m8dOJ2eAjd$uS zoW)19D0=Q^ahh>sF3ybZVN}c(@(G?@Hq)ZwmT220Y8|{eCr0dvoFQ06oG@;V;h{P0S;NM}2B zOIzMF;{cIJyc^1+IqcsJjG7r_t&rlU@ZrUr@Lh zGsJ*CU67YIyDqKdfYZ8G4ujAIj9I6HcSVDqqZzqk7r5+zRzj&-j^GY%c`;hXHRy67 z`jh-iwd0*&(vpr%&jGCNc164WBc|iY!aobP4ncM{GfMGgNt2-HX^nv84FQe$Iof47 zbBjK6YrM;q^QX}iH#R00_x59<9@KSd%69-IK<_Ab;8bz%=N#zRqLqiUWYLi!9=Y?G zW^yd2cAm%mhCSjN;_@wo?Ji1-RaMy+`SW_&m)T|t^b1OSB^y2q(cuU?i6F0RYX!G!RMhy`pl2 z&PE=C9fWz3y+t0f4?K4u2pwE4NNMuS7FQ7}BJ=hm1%eMRiH>|aa0d4bh}$ZP8{u;D zGf%-g8PpGx>*m*+UCz-^@;55u;`aeTB8FUtDl1zNqiA9iT?kVi-!@f9ui0)>F($mK zA}4Qpq6&7)05CGeI2}N3l(an;Gp35_6LL#w8MwT0QqnB~WNs#Q?YY-aOzq`l+*%@l z(U9GF81qP(CJY<7Vk-lE!KZZv5 zXyZw$ByJ6%%*(&A!?U^jbsX94J6ci+Z4|7%)7{g8YVk&gSfM}3v7y7x0s<54N-9^6 zMopI{^u->C)wvr+BYN0#FH#TwoMJv}>K>j~@{uukVrFSRK$>lZ1>qz#aow>rsX!^N zuVyO0W8P-zG{Q`Rn^-%gEcyQ<=#dJEG^q>?+_yFpFP&Hi~cu!LxPX?m?# z5|PJ1p)9*c?p2Xl{$NLbW+lEewHww$5V)xaF+Va3-$a$kmry3!ZY zq0LD_VqN%bHq>n$CJ)J;N(}9$Rt}Fb~uWrLwdhmTdMpJQ8j06qDs z1x!u5>h3vra?Q)r#Gzzx03(UbEl78~z&T=moP`LRr?i4p%nx!$+oKPGbKA733yjaC zBW8GLpYR#gK~cBTfLC57$LmQyBdd0(pq1}Vzc-1e+{O2Q;ulUjUHY1OQunJ`+8I82 zl{HLqRAS?emB26VA7=g#$R}dW9mpR0R5At(qOfrY#H2NfKH-ZwAbti3=@J8%d zxa%8a<%p%UtWa@8X~RpoOs?(zwDd9L?3vnaTvx`{zV->vnhE1>9!;GsQeS;o=&cRX z^R!bkVR>q}q7p^vdcp4A58JM7Z(AQz+k4qY^N+@R>k45}^w8sQFs`RddP*Z;|1c<@ z4Oc}1=xlu6o1Gw?S~{{)ztj(d8%ac6*wSy89xD!NfY?spf8GLk{YkdHsiCkk+c zCN=7nm0g{rfTh$+nL43h=$SwA_ov-tk1;xB^#)cY6W z-w0+J_fxljs`z(;cPB?&WhGGnT9^;u5&k`;`di}vInTOA(A@&EKIUYc-0Vgl5X6pj ze<%1qX!9?@|LLlHaEp!nvZ~!=e3fJUHxZU? ziu3%kr+%{pmo-IKz2KrH8Ot!3NpfT3_JW)|O_iv*Z8qnl4CLLel!V!NA1CGPbpJ{0 z*?DF%{0yXB9q?2n-t)@kZynZpaa1xmIy9WikO*sOs)mfo4bUT>SezBV|h}$zRo*z)GToao{ zl8A~uFzLf$_N;$9Uc07;_3Kj3irvO1)%k3XJ=X;C4#kI$(wA3$w68%aCR=je-HlZ} zW91_FDW4O}yS;n=BjK?G1auo3U#__+nIwZ}=4if`G<+>3mWChKHTMlkHjXSD4J}Q!+((_sSv2VZtW@n6(w!o05|QIIha3^FU$dF7Lu+ z7yDxPr{52iuqrnVOYN2bVSPW@S{kV2wIccGO!y}GCIi}Si$UFruP|k6i-~k;q)4tuBO-ukXM{^8&I{jn48c@VAgpSZXcp4adCdsignrMV{OW;z>_&cC-g-Y(Xwoi<_2YE}qPkl_fM3sgtHE zr0KumhvM)I5K0{|_pBSOiNKG#w}e01URiEmJ4gvUm^vU_IBfB7f2~DypO!>BWw%#a z<`~8B(Aq`RxelaR>VV_CMvgIWO~v^{TRkVTWrc*K$+&zlsq z87_YH*%`a*pRAo$bbWO|%G1Wh8r2)sn>^wM zJ>bCuv>+vo2E0c7S*h)<#v?WhRGtuJ@&8(}nd1_5n=|0>*r3dV^%$lWhL=n(7G8ke F{~yj;qw4?w literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index beed3cdd2c32af5114a7dc70b9ef5b698eb8797e..dc3fe08fcb0e3efac89b8bed4def0423f8a5c5ba 100644 GIT binary patch literal 9401 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%0A2MPx;j0BSgTL3a~ zY@~rN-6XbF;%Ix+;$0-zVI(9h*?DPt&s4GdTB(Y%VwNn1^>G zjI1JfR~#g>I|=k(-`}`)`GLxM55tw)o4zJGuy=46jYd7q;YS)4HSdC3R}(~eqX#qep-bq*!I$3yI2=DT)Gc@@t-N7m(a^Z zzVR5udK}zG%gWq*ie(19SjnAHbJ8t3{JVeSwf9OJEqGC%2uE?ik3Z3fM9{(GiU@8} zv$CcU7zZ1jd_(072?d3=e?&xfo`ptNqGXYgT_MzXEaQaz$6N>$^Q&d7s4eJGVb+e- z)&0E(br%nA8<+v><)Nrl6v`s9D;oQzOy`+hUmS?$!<#p6VksGf8F*6;p>y@;0zq}T zOo!nwZsV)}a51i;LCQww#eqi>B!U8g!#E8R(8h4}Fj$DGWU&!tXH$|AEZkB2UiEEd`X z6C^#n@^3mnCBGf)_yYO6x&!Xv#0pcLJA*Xe)lxh^(w@~2pws-tocuLierV-A-E**kPdIE$e)bC0T{$-h!I%g z9<8ReWX6JfCyq=D_sFD9hp4YxYJ+N_^lt_y!v+28Vf5tWWZ5_YiMfhxvSRPLO>8zh z{93sb8T5#fOXsb=gkDspfT*aKe4)z;n9HxEZEjL_?%0WQT^kp#-R8c0T}_Vct--OL-*qGR#M0NEOb-IBpetY z#6)n+_Wm2GRtfdFpXjm3(KEPf7)=L8Bbfi*yTy~&h~)~CaTZH~BlB;u$+@|qX|o=W z$uwNn*wqk`Q!;-isPXlqs%z7#9HOh(&z&X8AIhu4-x-hb@g_x^l)RP2)uS8kwo$Sa zS}-PR07=F#<3)=SOD0{*1d=XeN!_yV@eYwDK#r;CYpL+jRjY>NM-tQLZ+~P78j1xI zOyj0NXoAL{idX=>;B>oIzNxbmeu(`clqUT} z$PbAygeuXflLbG%A3w$JL=G&Ght)|dDP09^)6n7Lk!v{>VrdoLL9ev)7SnMj4YI~V zZy{XD;v^Us-dvbvv6ncb7eUqy+!8C_6s114ka00Z!u6^CfQ|LgvLtqe_q6)-TkE|1 zF&em}ej+|3ynYEGdai99mf#$xE@|we zbDyq+z`ava;QRuYeMg|24qZFBYi#S2P_PZb^PaxYj|wDS6_3c%6jUNTh+|FRx_j4; zmHZ527*32mb<1+|K0E#~F8>d%ySuJAU*BVPdOcvZRB%kfRE$`!-Sb z)H*D0e~-NR}?;GyE4)7q8|a@lz;E z_MbarWtG)RMo$lL=HMlY7|O{6ix{q}97G_Lhw#-PABRSaJ-22opqN72PR5^{$&Kvk z?d4am3v<=i|9019qG-7ARhLokP46h~X~m33RN=fQIaYM>o&-p_VE2dq$%sf8wbDa< z*(qfm@X}3#)>{k4RTSwyf+`isA0LHd2lLVx0>5|}d4P1D)+hM17Kdos5L#5Y=DyloaZR*sH{if59j7rmp;m-R8f5Iu4V)*en50aDwEs=xD z)}#N3x*M2c*-`1%zJO{0pL>bs3FVA<7P&KR%x(CIK|%O>zfr0~QnxWZcQJ~xuaw+< zq`8y}_xe(*br7*B`gZy}cFvSKjgVBlv$^#C&FjNFeR*y9JgJQLDH_xIg&{cle1d%U zb4qw{&|wB?BCK1f&n}hj9vpR_)^dPadflXwL~#8N886c5})l;b;mK&wyu$h7SOAc40a zfv;)Z?0ud?NDy$UFU#ez1yo%Mbu5K?bwl@jqt+8y(La;>smcjLfRB)NmZTdZ6BBvC V(kj>1+h39Zq^6<9dv&|W{{b(&a5?}0 literal 15132 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 diff --git a/app/src/main/res/values/ic_launcher_background.xml b/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..80d7b54 --- /dev/null +++ b/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #353535 + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e86118c..8b9f805 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,4 +1,6 @@ SmartShopper Dash + ShoppinglistDetail + ShoppinglistDetails diff --git a/app/src/release/res/drawable-hdpi/bearbeiten.png b/app/src/release/res/drawable-hdpi/bearbeiten.png new file mode 100644 index 0000000000000000000000000000000000000000..152b5b93885b5f11ed8f25fa214d942ea8e721b3 GIT binary patch literal 269 zcmV+o0rLKdP)P*er+1>u`^ZQ&lPT>-DAXr@L7Y^t`5(hEN?cP7p9NO0DQI3(4%KV2 znyeYP)8kemJyq_lMLrq1cBn}cM zzyRAD4AwLaQ{V=Kf>6Mk(ik7dM$GRE8Db<%@%wrBTaWOsGQZO>Y0ArM+>gf76^P-ew3t6~K1J8$_t0**1tL+7F4&`g|V=*W#;=`f83H*TWo%clM~^ek-Gn@sW7E>BJlS z^K^iZv7%0{Y8+70II8%zq#IWyMeUBROdBs`KW2-yO4B#|=c$UsTBTVr$mFbagw~8g mYb#WTP>6{fg!b~YsXI?tj|vrpH>A@50000$CRP~ literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-mdpi/bearbeiten.png b/app/src/release/res/drawable-mdpi/bearbeiten.png new file mode 100644 index 0000000000000000000000000000000000000000..d49726c50a6c2db60c33cd5df601f068b791f3a2 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjF`h1tAr-fh6C_v#CNLdoZ@AGb z*0!ASqojtNC%5+m-36;uk5%YcI_QQkf4D)Vb(UjOo~M*4@9{LwtGw-r$x%}C%(8y0 wc=*L|PUE#U;|sS6*rKG*Ib3$jTfrz=7-$cJr>mdKI;Vst0LuL^=l}o! literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-mdpi/ic_action_name.png b/app/src/release/res/drawable-mdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..0b509d12dcd48db4a33efd7661f6c2e9de598763 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjIi4<#Ar-fh6C^YhcstH7cxY0@ zYwfHkSHa!JzM%30k3M%8(?(5!_ijSBc}1f=dAWTSCY=gsE_c4k6JXh;>tGfj*}Hdk zRAEC7r`}=q^{giRO0(RJ&Q5-L;mk?vlLj^FnqoI5W}Ng}F)xvWVdd==KV_z|%>vrX N;OXk;vd$@?2>=`gHQ4|F literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-mdpi/user.png b/app/src/release/res/drawable-mdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..07a2e1982005b3c8051a49b1497c12a03b3f4a81 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gji#=T&Ln>}1CrGe{Fm*ZHVL#Ho zP~yn6<;xzjH~ip{y63Lz{cD2+-(lM;8y*%0Q@@$KU? zPd@32pWrySxs#Nk0?mm&aMl138=gNf?k7#Cpzgk-|-K3`Udw<^DXf3;}BZ78m zM{YLkm)f|bf5&cz?1CegUrup%Tay>QWZ#Fk=iit6{?VO%Jd*kSQMUZTQ=2Px3o2L4 z7Bv20`|?~fJHMPw#fJw6o7wB0(d)Rj?D`TY!=FR(`V-z2N>$%eb*~);I+elG L)z4*}Q$iB}KO9}8 literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-xhdpi/ic_action_name.png b/app/src/release/res/drawable-xhdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3f52c5a18e4f777984f778805b88e2dadc25c5 GIT binary patch literal 266 zcmV+l0rmcgP)-(3;_s000QL#F_lf_3cwuo#$E(Akdb;m7ZQ$o3_TNj5U{(xoWw8u zH?{|XBe1DELZS+W@243_W$VvPI4}n)MA=N{ydK*=Lkg2~) zsK3mqzfR+i3<7Tv2o2!_hk$P=;5h__RC5FPnZ9MXBs|k{3iNI^cm#Q3R!%3Q>#1U( QM*si-07*qoM6N<$g2<7XSbN literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-xhdpi/user.png b/app/src/release/res/drawable-xhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..508a52f10bec0be947525d13eb7026381010377d GIT binary patch literal 384 zcmV-`0e}99P)bLS5 z_rM3D+~0HLs#hIHrBbQhO-(QaKG+eT`Cm^}I@@Qpr&PR4nQ$tj$Da@C&9O0RQ0o zj`}uh0teYo$^@1LK$UZOwmOnJiz0@zAmfFcV-tVrCOyEhxa+Ccse`8bAYR e0F_Fm5~maNE!hN<3xR+D0000&sa*C7W1SLa_c zPPuPwy2?LTG;Ni03ceAcbA!`zigKP}(wV$DD`r;8+r5X&?f$$hnonl>uBS{z z%cH+Cs+jLus`t|DuG))l`?9rzH+A^u-t`Mxwzv;Sf4lbW^s3}ZMJ3!H-=)3c6%|rg z`a(=7vA^gg8|z&+ZuRv3FBf%L*UfB>UzfLRYnDh!@xrM)=Ndh!J#{78^LN*UaP#n} znOD~a&71T5+Q)ZoVe|MK-<4gs5Vg~WWszvqLflC5w@Y)FJwwVXW5cLg!3it#pWkXY z^RKosjG5VJ+Kxxyk-Lt*I1)< zQv@gLC~zmTif%5Omuk>IOLv0p1_qbqijg7lOTsx9s@!PE$~ianT~GQ<;rRa(l6agr z6kFbW)wAo!@3YHztM$M{nZY!>!9>hY{?ejS?mG-j0u2l-3rv|o>K+MrTLXCt42&EO zAPF_*tfQ?K;^E41n=ajQy4}Tf!L>#t|EP4K+B(@+*=uiRNW146b2+TtcVS)d^bUI+ z#jC$^F0H(uIXjo9f$Q(p-(DplAelF{r5}E+_I=1To literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-xxhdpi/user.png b/app/src/release/res/drawable-xxhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..974449e2c9ab1456d6bd42e367e31d88552a85aa GIT binary patch literal 679 zcmV;Y0$BZtP)wQBt@Yzv@Khna)KfjRL}^bwh-jOEHOwvuXC-=Lf&bx|yAQoY~2|8|Q=&LI@#*=rcy(G+cyxFoIPY z@z?^K;<>q@04L!FgJ{6Gi4C6P&z<0BO>+&-!S8K?xhSX#EWrWG;Vf|q#a(&=Us?>Q zz>#y6aFQXFtWCE`POCVO-{3t5z1w!g+__?*}7%Mym~*kf)mTfGPS13$X6pRRPW zGcRzYd}14|-jnUJFJrC`N+UPnGq}(HYA3awC-7FAp#0xPIh88z@^x+BmoM-s``B}Q z$7kRHhj};E!6W#U&yxoXYmkoe*c#6{>hc=L?Bk5udHsRqk@= z)-x1N@>gm8E$^MQ!WoC#84TuMw|Or?xdFFaIV6^dcaSW-r_4bCL-(d$4*T8U* zHQZ%Q%RWqV(7b$M6Qfm^j@D%t#jeZ`55BjapZt&Q+|-=Yms8Tf;QseJ?{BF}+$?v0dMZu||;VL3aQ{d<)YLB@s@ACJv>J0G+1$ zVh=ft&*ij~PYJ&u*72e9pIFgr4)!14HKN@rn)cU3yJUPg&Sd(das`|H{}n*?ejRt0 zhW($exir|ns1s)V_u#f^h7`oi1L6xA_HnR&aMfsdZ!K?E^W($A!|nXUG5-9w`eDt> zU@yT?XTb0$f#JtNh7Zk*57?Ox@Uu0@^I(%OH->=CvF~`!CcnP7?CpL>U~n>cy85}S Ib4q9e04gG*4*&oF literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-xxxhdpi/ic_action_name.png b/app/src/release/res/drawable-xxxhdpi/ic_action_name.png new file mode 100644 index 0000000000000000000000000000000000000000..00fd1c8ac349b2550d3fdafeb14787095127301f GIT binary patch literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U_9XI;uunK>+NmByh8>e?H_sG z-tac~#vs$VH{h$UZS&`@V+I=2u<6E^ z(s>cmhI-<5oUASWPK*!RrxoPw;ZSH`V1g10Tp58X84@15GBC0TIG_;+E?9lr`YwCE z;g(vd&mITfeu%$pp+8gQ&E<$#sox;}ZXcn4?e|kB2?QNj`eC`(4v{)O&W9{9-2dY^ zuOFJPr8uYI>w&^{FA1T4^4UzsSj)Vf&TX7Ei@Au!-2KPGaK~V#Iof|d{BEdjnq&M& zt?W=T^IYRUX;qHNDrY3?g3s=V5h`lCA7fs!s^!i@^P7G9!Vf7Q%Kv7Qu%^Ym)t`Ye z&QUFK@`ltEy)$}egtes2Nt;tvBEiU)A|~>{qbQM)@2R-hgD5Y?;)d=>)-_ErzB&o= z4~p^_trM?b=FWEi?a&Ml24H}kdM;w|CzzLM9}~C56@>)phy&5QOkuTuS$O_i+eVA- zVHer(TID literal 0 HcmV?d00001 diff --git a/app/src/release/res/drawable-xxxhdpi/user.png b/app/src/release/res/drawable-xxxhdpi/user.png new file mode 100644 index 0000000000000000000000000000000000000000..77436f91786679797e57dbc2e83aef6a47b66678 GIT binary patch literal 795 zcmV+$1LXXPP)2(>t>SHC1@TrY7Ie{q<}cWkuEh(ki>P4iHZ|r4=nrrqXmrS1W=>L9I+C>{FbuVFY+p202|mZ@-bilAFyBKSHJ+av0tPSFn~YU zPXNK$<`Kk8c%muL44vGL*fRDBmAPXslz_OGW%vvus$sR9vejo3IXR68o#y9MR%QBP! ze+~JVowcg9^DkjvvOVUkjo-MI%ul<+8}_+m$Cl~g0ssI2000000Km}V#_Kbx>mJH- zW!x6#2;`<}P4!mV|A@nF(!P*lnHQzK5xj0?uUTEjo+;I$>V@j7be~N5Vn(H5ey?)f zv7FU$YMhKet9qm=OS}p6#RThcOZ6j0`DLr~nNc==UZN$3{jU3TtJfZ@jt@`=ckWZ^ ze-pT?yPMja8ztl29PWlBxAXm*>Vd?YW^{l1(9TVw4(?j=GUO{OrtOZcNO~KqU#sq_ zmQ?4gB{O56m+aUZNpH1v#jbIB*vxmU4@weloxg9DQfeslgPK6K?+A5LSJge@&u2woUZES3U1DfcKc*p?AK_&tP^}Wqbrs#OSVi z=_7zLMt9X`9|6=bx@T`abuhZO2!H?xfB*=900@8p2!H?xfB*wj literal 0 HcmV?d00001