From 52098b237cf973728211d218ff4d61c75537a987 Mon Sep 17 00:00:00 2001 From: Jamal Eldeen Wari Date: Tue, 30 Nov 2021 20:28:33 +0200 Subject: [PATCH 1/2] adding some stuff --- .idea/deploymentTargetDropDown.xml | 2 +- .idea/misc.xml | 51 +++++---- app/build.gradle | 2 + app/src/main/AndroidManifest.xml | 6 +- .../com/example/thrifty/CartActivity.java | 64 +++++++++++ .../com/example/thrifty/MainActivity.java | 14 ++- .../java/com/example/thrifty/ProductView.java | 20 ++++ .../example/thrifty/adapters/CartAdapter.java | 105 ++++++++++++++++++ .../thrifty/adapters/NewItemsAdapter.java | 6 +- .../thrifty/fragments/FirstCartFragment.java | 54 +++++++++ .../res/drawable/ic_baseline_delete_24.xml | 10 ++ app/src/main/res/layout/activity_cart.xml | 41 +++++++ .../main/res/layout/activity_product_view.xml | 6 +- app/src/main/res/layout/card_layout.xml | 2 +- app/src/main/res/layout/cart_item.xml | 47 ++++++++ .../main/res/layout/first_cart_fragment.xml | 77 +++++++++++++ 16 files changed, 473 insertions(+), 34 deletions(-) create mode 100644 app/src/main/java/com/example/thrifty/CartActivity.java create mode 100644 app/src/main/java/com/example/thrifty/adapters/CartAdapter.java create mode 100644 app/src/main/java/com/example/thrifty/fragments/FirstCartFragment.java create mode 100644 app/src/main/res/drawable/ic_baseline_delete_24.xml create mode 100644 app/src/main/res/layout/activity_cart.xml create mode 100644 app/src/main/res/layout/cart_item.xml create mode 100644 app/src/main/res/layout/first_cart_fragment.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index b40952a..cee9a5c 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -12,6 +12,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 112d5d7..640cf10 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,34 +3,41 @@ diff --git a/app/build.gradle b/app/build.gradle index 036fd14..4278d33 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,6 +54,8 @@ dependencies { testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation 'com.github.onimur:handle-path-oz:1.0.7' + implementation 'com.squareup.picasso:picasso:2.71828' } apply plugin: 'com.google.gms.google-services' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0ae36f0..eef4376 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" /> { + Intent intent = new Intent(CartActivity.this, MainActivity.class); + startActivity(intent); + }); + bottomNav(); + + FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.container,new FirstCartFragment()); + transaction.commit(); + } + + public void bottomNav(){ + BottomNavigationView bottomNavigationView = findViewById(R.id.bottomNavigationView); + bottomNavigationView.setSelectedItemId(R.id.cart); + 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(), Categories.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); + }); + + + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/thrifty/MainActivity.java b/app/src/main/java/com/example/thrifty/MainActivity.java index 391d655..2fa0a1c 100644 --- a/app/src/main/java/com/example/thrifty/MainActivity.java +++ b/app/src/main/java/com/example/thrifty/MainActivity.java @@ -23,6 +23,7 @@ import android.util.Log; import android.widget.Button; +import android.widget.ImageView; import com.amazonaws.mobile.client.AWSMobileClient; import com.amazonaws.mobile.client.Callback; @@ -50,6 +51,8 @@ import java.util.ArrayList; import java.util.List; +import com.squareup.picasso.Picasso; +import com.squareup.picasso.Picasso; public class MainActivity extends AppCompatActivity { @@ -105,7 +108,7 @@ public void bottomNav(){ bottomNavigationView.setSelectedItemId(R.id.homeNav); BottomNavigationItemView homeNav = findViewById(R.id.homeNav); BottomNavigationItemView search = findViewById(R.id.search); -// BottomNavigationItemView cart = findViewById(R.id.cart); + BottomNavigationItemView cart = findViewById(R.id.cart); // BottomNavigationItemView wishlist = findViewById(R.id.wishlist); BottomNavigationItemView profile = findViewById(R.id.profile); @@ -127,6 +130,11 @@ public void bottomNav(){ startActivity(intent); }); + cart.setOnClickListener(view -> { + Intent intent = new Intent(getApplicationContext(), CartActivity.class); + startActivity(intent); + }); + } private void initRecyclerViews(){ @@ -165,6 +173,8 @@ public boolean handleMessage(@NonNull Message message) { @Override public boolean handleMessage(@NonNull Message message) { suggestedRecView.getAdapter().notifyDataSetChanged(); + + return false; } }); @@ -207,7 +217,7 @@ protected void onResume() { stopButton.setVisibility(View.GONE); SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); String email1 = sharedPreferences.getString("email", "Your email"); - if (email1.equals("aboud.coding@gmail.com")){ + if (email1.equals("jamalwari2@gmail.com")){ stopButton.setVisibility(View.VISIBLE); } } diff --git a/app/src/main/java/com/example/thrifty/ProductView.java b/app/src/main/java/com/example/thrifty/ProductView.java index 3b99aaf..9a16452 100644 --- a/app/src/main/java/com/example/thrifty/ProductView.java +++ b/app/src/main/java/com/example/thrifty/ProductView.java @@ -15,6 +15,7 @@ import com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin; import com.amplifyframework.core.Amplify; import com.amplifyframework.datastore.AWSDataStorePlugin; +import com.amplifyframework.datastore.generated.model.Product; import com.amplifyframework.storage.s3.AWSS3StoragePlugin; public class ProductView extends AppCompatActivity { @@ -55,6 +56,25 @@ protected void onCreate(Bundle savedInstanceState) { priceTxt.setText(price); categoryTxt.setText(category); + findViewById(R.id.addToCart).setOnClickListener(view -> { + Intent intent1 = new Intent(ProductView.this, CartActivity.class); + intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK| Intent.FLAG_ACTIVITY_NEW_TASK); + +// String name = title.toString(); +// String priceItem = price; +// Product product = new Product.Builder() +// .title(name) +// .description("") +// .price("10000$") +// .size("") +// .color("") +// .image("") +// .build(); + + + startActivity(intent1); + }); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/thrifty/adapters/CartAdapter.java b/app/src/main/java/com/example/thrifty/adapters/CartAdapter.java new file mode 100644 index 0000000..74525ae --- /dev/null +++ b/app/src/main/java/com/example/thrifty/adapters/CartAdapter.java @@ -0,0 +1,105 @@ +package com.example.thrifty.adapters; + +import android.annotation.SuppressLint; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.RecyclerView; + +import com.amplifyframework.datastore.generated.model.Product; +import com.example.thrifty.CartActivity; +import com.example.thrifty.R; + +import org.w3c.dom.Text; + +import java.util.ArrayList; +import java.util.List; + +public class CartAdapter extends RecyclerView.Adapter{ + + public interface DeleteItem{ + void onDeleteItem(Product product); + } + + private DeleteItem deleteItem; + private Fragment fragment; + List items = new ArrayList<>(); + + Context context; + public CartAdapter(List items, CartActivity cartActivity){ + this.items = items; + } + + public CartAdapter(Fragment fragment, Context context) { + this.fragment = fragment; + this.context = context; + } + + @NonNull + @Override + public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cart_item,parent,false); + return new ViewHolder(view); + } + + @SuppressLint("SetTextI18n") + @Override + public void onBindViewHolder(@NonNull ViewHolder holder, int position) { + holder.product = items.get(position); + TextView txtName = holder.itemView.findViewById(R.id.txtName); + TextView txtPrice = holder.itemView.findViewById(R.id.price); + ImageButton imageButton = holder.itemView.findViewById(R.id.deleteBtn); + + txtName.setText(holder.product.getTitle()); + txtPrice.setText(holder.product.getPrice()+"$"); + + imageButton.setOnClickListener(view -> { + + AlertDialog.Builder builder = new AlertDialog.Builder(context) + .setTitle("Deleting......") + .setMessage("Are Sure You Want To Remove This Item? ") + .setNegativeButton("NO", (dialogInterface, i) -> { + + }).setPositiveButton("YES", (dialogInterface, i) -> { +//Here is the deleting from the cart + try{ + deleteItem = (DeleteItem) fragment; + }catch (Exception e){ + e.getMessage(); + } + + }); + builder.create().show(); + }); + + + } + + @Override + public int getItemCount() { + return items.size(); + } + + @SuppressLint("NotifyDataSetChanged") + public void setItems(List items){ + this.items = items; + notifyDataSetChanged(); + } + + public static class ViewHolder extends RecyclerView.ViewHolder{ + public Product product; + public View itemView; + public ViewHolder(@NonNull View itemView) { + super(itemView); + this.itemView = itemView; + } + } +} 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 7b70297..a2505f4 100644 --- a/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java +++ b/app/src/main/java/com/example/thrifty/adapters/NewItemsAdapter.java @@ -10,6 +10,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; @@ -27,8 +28,7 @@ import com.example.thrifty.MainActivity; import com.example.thrifty.ProductView; import com.example.thrifty.R; - - +import com.squareup.picasso.Picasso; public class NewItemsAdapter extends RecyclerView.Adapter { @@ -52,6 +52,7 @@ 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); + ImageView image = holder.itemView.findViewById(R.id.idIVCourseImage); // TextView email = holder.itemView.findViewById(R.id.editTextTextPersonName6); Button btn = holder.itemView.findViewById(R.id.button2); @@ -82,6 +83,7 @@ public void onClick(View view) { title.setText(holder.product.getTitle()); category.setText(holder.product.getCategoryId()); price.setText(holder.product.getPrice()); + Picasso.get().load(holder.product.getImage()).into(image); holder.itemView.findViewById(R.id.card).setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/java/com/example/thrifty/fragments/FirstCartFragment.java b/app/src/main/java/com/example/thrifty/fragments/FirstCartFragment.java new file mode 100644 index 0000000..54ced37 --- /dev/null +++ b/app/src/main/java/com/example/thrifty/fragments/FirstCartFragment.java @@ -0,0 +1,54 @@ +package com.example.thrifty.fragments; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.amplifyframework.datastore.generated.model.Product; +import com.example.thrifty.CartActivity; +import com.example.thrifty.R; +import com.example.thrifty.adapters.CartAdapter; + +public class FirstCartFragment extends Fragment implements CartAdapter.DeleteItem { + + private RecyclerView recyclerView; + private TextView txtTotalPrice, txtNoItems; + private Button nextButton; + private RelativeLayout relativeLayout; + + private CartAdapter cartAdapter; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.first_cart_fragment, container, false); + initViews(view); + cartAdapter = new CartAdapter(this, getActivity()); + recyclerView.setAdapter(cartAdapter); + recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); + return view; + } + + private void initViews(View view){ + recyclerView = view.findViewById(R.id.recyclerView); + txtTotalPrice = view.findViewById(R.id.txtTotalPrice); + txtNoItems = view.findViewById(R.id.txtNoItems); + nextButton = view.findViewById(R.id.nextButton); + relativeLayout = view.findViewById(R.id.itemsRelLayout); + } + + @Override + public void onDeleteItem(Product product) { + + } +} diff --git a/app/src/main/res/drawable/ic_baseline_delete_24.xml b/app/src/main/res/drawable/ic_baseline_delete_24.xml new file mode 100644 index 0000000..3c4030b --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_delete_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout/activity_cart.xml b/app/src/main/res/layout/activity_cart.xml new file mode 100644 index 0000000..a50dbab --- /dev/null +++ b/app/src/main/res/layout/activity_cart.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_product_view.xml b/app/src/main/res/layout/activity_product_view.xml index 7a42762..8023666 100644 --- a/app/src/main/res/layout/activity_product_view.xml +++ b/app/src/main/res/layout/activity_product_view.xml @@ -29,11 +29,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/toolbar" - android:text="Add To Cart" + android:layout_marginStart="20dp" + android:layout_marginEnd="20dp" android:elevation="5dp" android:padding="10dp" - android:layout_marginStart="20dp" - android:layout_marginEnd="20dp"/> + android:text="Add To Cart" />