From c51300e6ef26a92ca8d90b39782c20a5a461016d Mon Sep 17 00:00:00 2001
From: Nezumi <123229563+Nez27@users.noreply.github.com>
Date: Mon, 6 Mar 2023 16:23:47 +0700
Subject: [PATCH] Add address manager screen
---
app/src/main/AndroidManifest.xml | 3 +
.../Activity/AddressManagerActivity.java | 53 +++++++++
.../foodify/Fragment/ProfileFragment.java | 12 +-
.../foodify/Model/Address/Address.java | 47 ++++++++
.../foodify/Model/Address/AddressAdapter.java | 74 +++++++++++++
.../res/layout/activity_address_manager.xml | 58 ++++++++++
app/src/main/res/layout/item_address.xml | 103 ++++++++++++++++++
7 files changed, 349 insertions(+), 1 deletion(-)
create mode 100644 app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java
create mode 100644 app/src/main/java/com/capstone/foodify/Model/Address/Address.java
create mode 100644 app/src/main/java/com/capstone/foodify/Model/Address/AddressAdapter.java
create mode 100644 app/src/main/res/layout/activity_address_manager.xml
create mode 100644 app/src/main/res/layout/item_address.xml
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3b00419..ddd6b0c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,6 +15,9 @@
android:theme="@style/Theme.Foodify"
tools:replace="android:theme"
tools:targetApi="31">
+
diff --git a/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java b/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java
new file mode 100644
index 0000000..c4ca51a
--- /dev/null
+++ b/app/src/main/java/com/capstone/foodify/Activity/AddressManagerActivity.java
@@ -0,0 +1,53 @@
+package com.capstone.foodify.Activity;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import android.os.Bundle;
+import android.widget.Button;
+
+import com.capstone.foodify.Model.Address.Address;
+import com.capstone.foodify.Model.Address.AddressAdapter;
+import com.capstone.foodify.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AddressManagerActivity extends AppCompatActivity {
+
+ private RecyclerView recycler_view_address;
+ private AddressAdapter adapter;
+ private Button add_address_button;
+
+ private List
listAddress = new ArrayList<>();
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_address_manager);
+
+ //Init Component
+ recycler_view_address = findViewById(R.id.recycler_view_address);
+ add_address_button = findViewById(R.id.add_address_button);
+
+ //Set layout recyclerview
+ LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
+ recycler_view_address.setLayoutManager(linearLayoutManager);
+
+ adapter = new AddressAdapter();
+
+ getAddressList();
+
+ }
+
+ private void getAddressList(){
+
+ for(int i = 1; i <= 10; i++){
+ listAddress.add(new Address(i, "Hẻm 215, đường Phạm Như Xương", "phường Hoà Khánh Nam", "Liên Chiểu"));
+ }
+
+ adapter.setData(listAddress);
+ recycler_view_address.setAdapter(adapter);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java b/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java
index e107638..72089bf 100644
--- a/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java
+++ b/app/src/main/java/com/capstone/foodify/Fragment/ProfileFragment.java
@@ -11,6 +11,7 @@ import android.widget.LinearLayout;
import androidx.fragment.app.Fragment;
import com.capstone.foodify.Activity.AccountAndProfileActivity;
+import com.capstone.foodify.Activity.AddressManagerActivity;
import com.capstone.foodify.Activity.SignUpActivity;
import com.capstone.foodify.R;
@@ -18,7 +19,7 @@ public class ProfileFragment extends Fragment {
Button btnSignUp;
- LinearLayout account_and_profile;
+ LinearLayout account_and_profile, manage_address;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@@ -26,6 +27,8 @@ public class ProfileFragment extends Fragment {
View rootView = inflater.inflate(R.layout.fragment_profile, container, false);
btnSignUp = (Button) rootView.findViewById(R.id.sign_up_button);
account_and_profile = (LinearLayout) rootView.findViewById(R.id.account_and_profile);
+ manage_address = (LinearLayout) rootView.findViewById(R.id.manage_address);
+
btnSignUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -39,6 +42,13 @@ public class ProfileFragment extends Fragment {
startActivity(new Intent(getActivity(), AccountAndProfileActivity.class));
}
});
+
+ manage_address.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ startActivity(new Intent(getActivity(), AddressManagerActivity.class));
+ }
+ });
return rootView;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/capstone/foodify/Model/Address/Address.java b/app/src/main/java/com/capstone/foodify/Model/Address/Address.java
new file mode 100644
index 0000000..9b5c658
--- /dev/null
+++ b/app/src/main/java/com/capstone/foodify/Model/Address/Address.java
@@ -0,0 +1,47 @@
+package com.capstone.foodify.Model.Address;
+
+public class Address {
+ private int id;
+ private String address;
+ private String ward;
+ private String district;
+
+ public Address(int id, String address, String ward, String district) {
+ this.id = id;
+ this.address = address;
+ this.ward = ward;
+ this.district = district;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getWard() {
+ return ward;
+ }
+
+ public void setWard(String ward) {
+ this.ward = ward;
+ }
+
+ public String getDistrict() {
+ return district;
+ }
+
+ public void setDistrict(String district) {
+ this.district = district;
+ }
+}
diff --git a/app/src/main/java/com/capstone/foodify/Model/Address/AddressAdapter.java b/app/src/main/java/com/capstone/foodify/Model/Address/AddressAdapter.java
new file mode 100644
index 0000000..6a57232
--- /dev/null
+++ b/app/src/main/java/com/capstone/foodify/Model/Address/AddressAdapter.java
@@ -0,0 +1,74 @@
+package com.capstone.foodify.Model.Address;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.capstone.foodify.Model.Food.FoodAdapter;
+import com.capstone.foodify.R;
+
+import java.util.List;
+
+public class AddressAdapter extends RecyclerView.Adapter{
+
+ private List listAddress;
+
+ public AddressAdapter() {
+ }
+
+ public void setData(List listAddress){
+ this.listAddress = listAddress;
+ }
+
+ @NonNull
+ @Override
+ public AddressViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_address, parent, false);
+ return new AddressViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull AddressViewHolder holder, int position) {
+ Address address = listAddress.get(position);
+
+ if(address == null)
+ return;
+
+ //Create a full address string
+ String fullAddress = address.getAddress() + ", " + address.getWard() + ", " + address.getDistrict();
+
+ //Bind data to component
+ holder.text_view_address.setText(fullAddress);
+
+
+ }
+
+ @Override
+ public int getItemCount() {
+ if(listAddress != null)
+ return listAddress.size();
+ return 0;
+ }
+
+ public class AddressViewHolder extends RecyclerView.ViewHolder{
+
+ private TextView text_view_address, default_text_view, blank_text_view;
+ private Button edit_btn, delete_btn;
+
+ public AddressViewHolder(@NonNull View itemView) {
+ super(itemView);
+
+ text_view_address = itemView.findViewById(R.id.text_view_address);
+ default_text_view = itemView.findViewById(R.id.default_text_view);
+ blank_text_view = itemView.findViewById(R.id.blank_text_view);
+
+ edit_btn = itemView.findViewById(R.id.edit_button);
+ delete_btn = itemView.findViewById(R.id.delete_button);
+ }
+ }
+}
diff --git a/app/src/main/res/layout/activity_address_manager.xml b/app/src/main/res/layout/activity_address_manager.xml
new file mode 100644
index 0000000..d486de9
--- /dev/null
+++ b/app/src/main/res/layout/activity_address_manager.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_address.xml b/app/src/main/res/layout/item_address.xml
new file mode 100644
index 0000000..60050b6
--- /dev/null
+++ b/app/src/main/res/layout/item_address.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file