diff --git a/.idea/misc.xml b/.idea/misc.xml
index 28966ce..92875a1 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -31,7 +31,13 @@
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e829941..fa6d60e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -9,17 +9,18 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Thrifty">
+
-
-
@@ -39,7 +40,6 @@
android:name=".MenClothes"
android:exported="false" />
-
-
-
+ android:exported="false" />
+
+
diff --git a/app/src/main/java/com/amplifyframework/datastore/generated/model/Favourites.java b/app/src/main/java/com/amplifyframework/datastore/generated/model/Favourites.java
index 5907f93..1b49ceb 100644
--- a/app/src/main/java/com/amplifyframework/datastore/generated/model/Favourites.java
+++ b/app/src/main/java/com/amplifyframework/datastore/generated/model/Favourites.java
@@ -1,7 +1,6 @@
package com.amplifyframework.datastore.generated.model;
-import java.util.List;
import java.util.UUID;
import java.util.Objects;
@@ -11,7 +10,6 @@
import com.amplifyframework.core.model.Model;
import com.amplifyframework.core.model.ModelOperation;
import com.amplifyframework.core.model.annotations.AuthRule;
-import com.amplifyframework.core.model.annotations.Index;
import com.amplifyframework.core.model.annotations.ModelConfig;
import com.amplifyframework.core.model.annotations.ModelField;
import com.amplifyframework.core.model.query.predicate.QueryField;
diff --git a/app/src/main/java/com/example/thrifty/FavouriteActivity.java b/app/src/main/java/com/example/thrifty/FavouriteActivity.java
new file mode 100644
index 0000000..ed1d188
--- /dev/null
+++ b/app/src/main/java/com/example/thrifty/FavouriteActivity.java
@@ -0,0 +1,137 @@
+package com.example.thrifty;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.os.Bundle;
+
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Message;
+import android.preference.PreferenceManager;
+import android.view.View;
+import android.util.Log;
+import android.widget.Toolbar;
+
+import com.amplifyframework.AmplifyException;
+import com.amplifyframework.api.aws.AWSApiPlugin;
+import com.amplifyframework.api.graphql.model.ModelQuery;
+import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin;
+import com.amplifyframework.core.Amplify;
+import com.amplifyframework.datastore.AWSDataStorePlugin;
+import com.amplifyframework.datastore.generated.model.Favourites;
+import com.amplifyframework.datastore.generated.model.Product;
+import com.amplifyframework.storage.s3.AWSS3StoragePlugin;
+import com.example.thrifty.adapters.FavAdapter;
+import com.example.thrifty.fragments.MainMenuFragment;
+import com.google.android.material.bottomnavigation.BottomNavigationItemView;
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+
+public class FavouriteActivity extends AppCompatActivity {
+
+ private List favProduct = new ArrayList<>();
+ private List myProduct= new ArrayList<>();
+
+ RecyclerView favRecView;
+ FavAdapter favAdapter;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ MainMenuFragment mainMenuFragment = new MainMenuFragment();
+ Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+// toolbar.setNavigationIcon(R.drawable.ic_baseline_arrow_back_ios_new_24);
+ toolbar.setNavigationOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ }
+ });
+
+ try {
+ Amplify.addPlugin(new AWSS3StoragePlugin());
+ Amplify.addPlugin(new AWSCognitoAuthPlugin());
+ Amplify.addPlugin(new AWSDataStorePlugin());
+ Amplify.addPlugin(new AWSApiPlugin());
+ Amplify.configure(getApplicationContext());
+ Log.i("MyAmplifyApp", "Initialized Amplify");
+ } catch (AmplifyException error) {
+ Log.e("MyAmplifyApp", "Could not initialize Amplify", error);
+ }
+
+ bottomNav();
+ initRecyclerViews();
+ }
+
+ public void bottomNav(){
+ BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
+ bottomNavigationView.setSelectedItemId(R.id.homeNav);
+ BottomNavigationItemView homeNav = findViewById(R.id.homeNav);
+ BottomNavigationItemView search = findViewById(R.id.search);
+// BottomNavigationItemView cart = findViewById(R.id.cart);
+ BottomNavigationItemView wishlist = findViewById(R.id.wishlist);
+ BottomNavigationItemView profile = findViewById(R.id.profile);
+
+ search.setOnClickListener(view -> {
+ Intent intent = new Intent(getApplicationContext(), SearchActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ });
+
+ homeNav.setOnClickListener(view -> {
+ Intent intent = new Intent(getApplicationContext(), MainActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ });
+
+ profile.setOnClickListener(view -> {
+ Intent intent = new Intent(getApplicationContext(), Profile.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ });
+
+ wishlist.setOnClickListener(view -> {
+ Intent intent = new Intent(getApplicationContext(), FavouriteActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ });
+ }
+
+ private void initRecyclerViews() {
+ favRecView = findViewById(R.id.FavRecView);
+ favRecView.setAdapter(favAdapter);
+ favRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), RecyclerView.HORIZONTAL, false));
+
+ favRecView.setAdapter(new FavAdapter(favProduct));
+ Handler handler = new Handler(Looper.myLooper(), new Handler.Callback() {
+ @SuppressLint("NotifyDataSetChanged")
+ @Override
+ public boolean handleMessage(@NonNull Message message) {
+ Objects.requireNonNull(favRecView.getAdapter()).notifyDataSetChanged();
+ return false;
+ }
+ });
+
+ Amplify.API.query(
+ ModelQuery.list(Product.class),
+ response -> {
+ for (Product todo : response.getData()) {
+ myProduct.add(todo);
+ }
+ handler.sendEmptyMessage(1);
+ }, error -> Log.e("MyAmplifyApp", "Query failure", error)
+ );
+ }
+}
diff --git a/app/src/main/java/com/example/thrifty/MainActivity.java b/app/src/main/java/com/example/thrifty/MainActivity.java
index 03cfcde..6e576f2 100644
--- a/app/src/main/java/com/example/thrifty/MainActivity.java
+++ b/app/src/main/java/com/example/thrifty/MainActivity.java
@@ -41,7 +41,7 @@
import java.util.List;
-public class MainActivity extends AppCompatActivity {
+public class MainActivity extends AppCompatActivity {
private List NewProduct = new ArrayList<>();
private List PopularProduct = new ArrayList<>();
@@ -69,7 +69,6 @@ public void onClick(View v) {
});
try {
-// Amplify.addPlugin(new AWSPinpointAnalyticsPlugin(getApplication()));
Amplify.addPlugin(new AWSS3StoragePlugin());
Amplify.addPlugin(new AWSCognitoAuthPlugin());
Amplify.addPlugin(new AWSDataStorePlugin());
@@ -85,7 +84,6 @@ public void onClick(View v) {
initRecyclerViews();
-
findViewById(R.id.admin).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -93,53 +91,58 @@ public void onClick(View view) {
startActivity(intent);
}
});
-
}
- public void bottomNav(){
+ public void bottomNav() {
BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView);
bottomNavigationView.setSelectedItemId(R.id.homeNav);
BottomNavigationItemView homeNav = findViewById(R.id.homeNav);
BottomNavigationItemView search = findViewById(R.id.search);
// BottomNavigationItemView cart = findViewById(R.id.cart);
-// BottomNavigationItemView wishlist = findViewById(R.id.wishlist);
+ BottomNavigationItemView wishlist = findViewById(R.id.wishlist);
BottomNavigationItemView profile = findViewById(R.id.profile);
search.setOnClickListener(view -> {
Intent intent = new Intent(getApplicationContext(), SearchActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
});
homeNav.setOnClickListener(view -> {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
});
profile.setOnClickListener(view -> {
Intent intent = new Intent(getApplicationContext(), Profile.class);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ });
+
+ wishlist.setOnClickListener(view -> {
+ Intent intent = new Intent(getApplicationContext(), FavouriteActivity.class);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
});
}
- private void initRecyclerViews(){
+ private void initRecyclerViews() {
newItemRecView = findViewById(R.id.newItemsRecView);
suggestedRecView = findViewById(R.id.suggestedRecView);
popularRecView = findViewById(R.id.popularRecView);
// newItemRecView.setAdapter(newItemsAdapter);
- newItemRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(),RecyclerView.HORIZONTAL,false));
+ newItemRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), RecyclerView.HORIZONTAL, false));
suggestedRecView.setAdapter(suggestedItemsAdapter);
- suggestedRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), RecyclerView.HORIZONTAL,false));
+ suggestedRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), RecyclerView.HORIZONTAL, false));
popularRecView.setAdapter(popularItemsAdapter);
- popularRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(),RecyclerView.HORIZONTAL,false));
+ popularRecView.setLayoutManager(new LinearLayoutManager(getApplicationContext(), RecyclerView.HORIZONTAL, false));
- newItemRecView.setAdapter(new NewItemsAdapter(NewProduct , MainActivity.this));
+ newItemRecView.setAdapter(new NewItemsAdapter(NewProduct));
Handler handler = new Handler(Looper.myLooper(), new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
@@ -150,7 +153,7 @@ public boolean handleMessage(@NonNull Message message) {
});
- popularRecView.setAdapter(new NewItemsAdapter(PopularProduct , MainActivity.this));
+ popularRecView.setAdapter(new NewItemsAdapter(PopularProduct));
Handler popularhandler = new Handler(Looper.myLooper(), new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
@@ -160,7 +163,7 @@ public boolean handleMessage(@NonNull Message message) {
}
});
- suggestedRecView.setAdapter(new NewItemsAdapter(SuggestProduct , MainActivity.this));
+ suggestedRecView.setAdapter(new NewItemsAdapter(SuggestProduct));
Handler suggesthandler = new Handler(Looper.myLooper(), new Handler.Callback() {
@SuppressLint("NotifyDataSetChanged")
@Override
@@ -212,7 +215,7 @@ protected void onResume() {
stopButton.setVisibility(View.GONE);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
String email1 = sharedPreferences.getString("email", "Your email");
- if (email1.equals("jamalwari2@gmail.com")){
+ if (email1.equals("jamalwari2@gmail.com")) {
stopButton.setVisibility(View.VISIBLE);
}
}
diff --git a/app/src/main/java/com/example/thrifty/adapters/FavAdapter.java b/app/src/main/java/com/example/thrifty/adapters/FavAdapter.java
new file mode 100644
index 0000000..2afe1db
--- /dev/null
+++ b/app/src/main/java/com/example/thrifty/adapters/FavAdapter.java
@@ -0,0 +1,104 @@
+package com.example.thrifty.adapters;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.amplifyframework.api.graphql.model.ModelMutation;
+import com.amplifyframework.core.Amplify;
+import com.amplifyframework.datastore.generated.model.Favourites;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.amplifyframework.datastore.generated.model.Product;
+import com.example.thrifty.ProductView;
+import com.example.thrifty.R;
+
+
+public class FavAdapter extends RecyclerView.Adapter {
+ List favouritesList = new ArrayList<>();
+ List productList = new ArrayList<>();
+
+ public FavAdapter(List favouritesList) {
+ this.favouritesList = favouritesList;
+ }
+
+
+ @NonNull
+ @Override
+ public FavHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_layout, parent, false);
+ return new FavAdapter.FavHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull FavHolder holder, @SuppressLint("RecyclerView") int position) {
+ holder.favourite = favouritesList.get(position);
+
+ TextView title = holder.itemView.findViewById(R.id.titlefrag1);
+ TextView category = holder.itemView.findViewById(R.id.categoryfrag);
+// TextView price = holder.itemView.findViewById(R.id.price);
+
+ title.setText(holder.favourite.getProductId());
+ category.setText(holder.favourite.getUserId());
+// price.setText(holder.product.getPrice());
+ }
+
+
+ @Override
+ public int getItemCount() {
+ return favouritesList.size();
+ }
+
+
+ public static class FavHolder extends RecyclerView.ViewHolder {
+ public Favourites favourite;
+ public View itemView;
+ public Product product;
+
+ public FavHolder(@NonNull View itemView) {
+ super(itemView);
+ this.itemView = itemView;
+
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(itemView.getContext());
+
+ String email = sharedPreferences.getString("email", "Your email");
+
+ Button btn = itemView.findViewById(R.id.button2);
+ btn.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View view) {
+ Toast.makeText(view.getContext(), "fav Button Clicked", Toast.LENGTH_LONG).show();
+
+ Favourites favourite = new Favourites.Builder()
+ .productId(product.getId())
+ .userId(email)
+ .build();
+
+ Amplify.API.mutate(
+ ModelMutation.create(favourite),
+ response -> Log.i("MyAmplifyApp", "Added Todo with id: " + response.getData().getId()),
+ error -> Log.e("MyAmplifyApp", "Create failed", error)
+
+ );
+ }
+ });
+
+ }
+ }
+}
+
+
diff --git a/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java b/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java
index 452d31d..5ab9cfd 100644
--- a/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java
+++ b/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java
@@ -1,7 +1,6 @@
package com.example.thrifty.adapters;
import android.annotation.SuppressLint;
-import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
@@ -18,32 +17,34 @@
import com.amplifyframework.api.graphql.model.ModelMutation;
import com.amplifyframework.core.Amplify;
-import com.amplifyframework.datastore.generated.model.Favorite;
+import com.amplifyframework.datastore.generated.model.Favourites;
import com.amplifyframework.datastore.generated.model.Product;
import java.util.ArrayList;
import java.util.List;
+import com.amplifyframework.datastore.generated.model.User;
import com.example.thrifty.MainActivity;
import com.example.thrifty.ProductView;
import com.example.thrifty.R;
-
-
public class NewItemsAdapter extends RecyclerView.Adapter {
List products = new ArrayList<>();
+ List favourites;
+ List users;
+
- public NewItemsAdapter(List products, MainActivity mainActivity){
- this.products = products;
+ public NewItemsAdapter(List products) {
+ this.products = products;
}
@NonNull
@Override
public NewItemsHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
- View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_layout, parent , false);
- return new NewItemsAdapter.NewItemsHolder(view);
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_layout, parent, false);
+ return new NewItemsAdapter.NewItemsHolder(view);
}
@Override
@@ -52,38 +53,11 @@ public void onBindViewHolder(@NonNull NewItemsHolder holder, @SuppressLint("Recy
TextView title = holder.itemView.findViewById(R.id.titlefrag1);
TextView category = holder.itemView.findViewById(R.id.categoryfrag);
TextView price = holder.itemView.findViewById(R.id.price);
- // TextView email = holder.itemView.findViewById(R.id.editTextTextPersonName6);
-
-// Button btn = holder.itemView.findViewById(R.id.button2);
-// btn.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View view) {
-// Toast.makeText(view.getContext(), "fav Button Clicked", Toast.LENGTH_LONG).show();
-// String name = title.getText().toString();
-// String cat = category.getText().toString();
-//// String emailText = email.getText().toString();
-// Favorite favorite = new Favorite.Builder()
-// .titleFav(name)
-// .imageFav("categoryFav")
-// .priceFav("15")
-// .sizeFav("15")
-// .categoryFav(cat)
-// .userId("emailText")
-// .build();
-// Amplify.API.mutate(
-// ModelMutation.create(favorite),
-// response -> Log.i("MyAmplifyApp", "Added Todo with id: " + response.getData().getId()),
-// error -> Log.e("MyAmplifyApp", "Create failed", error)
-//
-// );
-// }
-// });
title.setText(holder.product.getTitle());
category.setText(holder.product.getCategoryId());
price.setText(holder.product.getPrice());
-
holder.itemView.findViewById(R.id.card).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -97,19 +71,48 @@ public void onClick(View view) {
});
}
-
@Override
public int getItemCount() {
return products.size();
}
- public static class NewItemsHolder extends RecyclerView.ViewHolder{
- public Product product;
+ public static class NewItemsHolder extends RecyclerView.ViewHolder {
+ public Product product;
public View itemView;
+ public User user;
+
public NewItemsHolder(@NonNull View itemView) {
- super(itemView);
- this.itemView = itemView;
- }
- }
+ super(itemView);
+ this.itemView = itemView;
+
+ SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(itemView.getContext());
+
+ String email = sharedPreferences.getString("email", "Your email");
+
+ Button btn = itemView.findViewById(R.id.button2);
+ btn.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View view) {
+ Toast.makeText(view.getContext(), "fav Button Clicked", Toast.LENGTH_LONG).show();
+
+ Favourites favourite = new Favourites.Builder()
+ .productId(product.getId())
+ .userId(email)
+ .build();
+
+ Amplify.API.mutate(
+ ModelMutation.create(favourite),
+ response -> Log.i("MyAmplifyApp", "Added Todo with id: " + response.getData().getId()),
+ error -> Log.e("MyAmplifyApp", "Create failed", error)
+
+ );
+ }
+ });
+
+ }
+
+
+ }
}
diff --git a/app/src/main/res/layout/activity_favourite.xml b/app/src/main/res/layout/activity_favourite.xml
new file mode 100644
index 0000000..02dbd7a
--- /dev/null
+++ b/app/src/main/res/layout/activity_favourite.xml
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/card_layout.xml b/app/src/main/res/layout/card_layout.xml
index a6861d2..38f5749 100644
--- a/app/src/main/res/layout/card_layout.xml
+++ b/app/src/main/res/layout/card_layout.xml
@@ -21,7 +21,6 @@