From e8c1cb4d5c7474783802407f70f7b5837527fb75 Mon Sep 17 00:00:00 2001 From: Nezumi <123229563+Nez27@users.noreply.github.com> Date: Wed, 12 Apr 2023 16:59:32 +0700 Subject: [PATCH] Completed Shipper App --- app/build.gradle | 6 + app/lint-baseline.xml | 15 ++ app/release/output-metadata.json | 20 +++ .../shipper/Activity/OrderDetailActivity.java | 23 +-- .../shipper/Activity/SignInActivity.java | 20 ++- .../com/capstone/foodify/shipper/Common.java | 4 +- .../shipper/Fragment/Order/AwaitingOrder.java | 157 ++++++++++++++++++ .../Fragment/Order/CompletedOrder.java | 52 +++++- .../Fragment/Order/OrderViewPagerAdapter.java | 10 +- ...ippingOrder.java => ShippingFragment.java} | 53 ++++-- .../GoogleMap/GeofenceBroadcastReceiver.java | 6 +- .../main/res/layout/activity_order_detail.xml | 83 ++++----- .../res/layout/fragment_completed_order.xml | 100 +++++++---- app/src/main/res/layout/fragment_order.xml | 5 + app/src/main/res/layout/fragment_shipping.xml | 79 +++++++++ .../res/layout/fragment_shipping_order.xml | 49 ------ .../res/layout/fragment_waiting_order.xml | 80 +++++++++ 17 files changed, 595 insertions(+), 167 deletions(-) create mode 100644 app/lint-baseline.xml create mode 100644 app/release/output-metadata.json create mode 100644 app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/AwaitingOrder.java rename app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/{ShippingOrder.java => ShippingFragment.java} (71%) create mode 100644 app/src/main/res/layout/fragment_shipping.xml delete mode 100644 app/src/main/res/layout/fragment_shipping_order.xml create mode 100644 app/src/main/res/layout/fragment_waiting_order.xml diff --git a/app/build.gradle b/app/build.gradle index 4bd256b..86437d7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,12 @@ android { namespace 'com.capstone.foodify.shipper' compileSdk 31 + lintOptions { + checkReleaseBuilds false + tasks.lint.enabled = false + baseline file("lint-baseline.xml") + } + defaultConfig { applicationId "com.capstone.foodify.shipper" minSdk 26 diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml new file mode 100644 index 0000000..834272d --- /dev/null +++ b/app/lint-baseline.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json new file mode 100644 index 0000000..f9f09c5 --- /dev/null +++ b/app/release/output-metadata.json @@ -0,0 +1,20 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.capstone.foodify.shipper", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 1, + "versionName": "1.0", + "outputFile": "app-release.apk" + } + ], + "elementType": "File" +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java b/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java index 3ac5c63..b1599f4 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Activity/OrderDetailActivity.java @@ -82,7 +82,7 @@ public class OrderDetailActivity extends AppCompatActivity { ConstraintLayout progressLayout; RecyclerView rcv_list_order; OrderDetailAdapter adapter; - LinearLayout layoutConfirmOrder; + LinearLayout layout1; private GeofencingClient geofencingClient; private GeofenceHelper geofenceHelper; private float GEOFENCE_RADIUS = 200; @@ -155,6 +155,7 @@ public class OrderDetailActivity extends AppCompatActivity { } else{ Common.showErrorDialog(OrderDetailActivity.this, "Không thể lấy được thông tin đơn, vui lòng thử lại sau!"); } + } }); @@ -184,7 +185,7 @@ public class OrderDetailActivity extends AppCompatActivity { geofencingClient = LocationServices.getGeofencingClient(this); geofenceHelper = new GeofenceHelper(this); - if(!order.getStatus().equals(COMPLETE_STATUS) && !order.getStatus().equals(CANCEL_STATUS)){ + if(!order.getStatus().equals(COMPLETE_STATUS)){ getLocation(); final Handler handler = new Handler(Looper.getMainLooper()); @@ -202,8 +203,8 @@ public class OrderDetailActivity extends AppCompatActivity { } }, 5000); } else { - btn_shipping.setVisibility(View.GONE); - layoutConfirmOrder.setVisibility(View.GONE); + btn_call.setVisibility(View.GONE); + layout1.setVisibility(View.GONE); progressLayout.setVisibility(View.GONE); } } @@ -215,7 +216,7 @@ public class OrderDetailActivity extends AppCompatActivity { if(response.code() == 200){ String tempToken = response.body(); assert tempToken != null; - Common.FCM_TOKEN_USER = tempToken.replace("\"", ""); + Common.FCM_TOKEN_CUSTOMER = tempToken.replace("\"", ""); } else { Toast.makeText(OrderDetailActivity.this, "Error code: " + response.code(), Toast.LENGTH_SHORT).show(); } @@ -278,7 +279,7 @@ public class OrderDetailActivity extends AppCompatActivity { rcv_list_order = findViewById(R.id.list_order); - layoutConfirmOrder = findViewById(R.id.layout1); + layout1 = findViewById(R.id.layout1); progressLayout = findViewById(R.id.progress_layout); @@ -471,11 +472,11 @@ public class OrderDetailActivity extends AppCompatActivity { private void changeLayoutButton(double lat1, double lng1) { if(distance(lat1, lng1, order.getLat(), order.getLng()) < 0.2){ - btn_shipping.setVisibility(View.GONE); - layoutConfirmOrder.setVisibility(View.VISIBLE); + layout1.setVisibility(View.GONE); + btn_confirm_ship_completed.setVisibility(View.VISIBLE); } else { - btn_shipping.setVisibility(View.VISIBLE); - layoutConfirmOrder.setVisibility(View.GONE); + layout1.setVisibility(View.VISIBLE); + btn_confirm_ship_completed.setVisibility(View.GONE); } } @@ -531,6 +532,6 @@ public class OrderDetailActivity extends AppCompatActivity { super.onDestroy(); stopLocationService(); Common.CURRENT_ORDER = null; - Common.FCM_TOKEN_USER = null; + Common.FCM_TOKEN_CUSTOMER = null; } } \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java b/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java index 4bae66d..fd6b1d6 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Activity/SignInActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.View; import android.widget.Toast; @@ -30,6 +31,7 @@ import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.google.firebase.auth.GetTokenResult; import com.google.firebase.auth.SignInMethodQueryResult; +import com.google.firebase.messaging.FirebaseMessaging; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -92,6 +94,16 @@ public class SignInActivity extends AppCompatActivity { } }); + FirebaseMessaging.getInstance().getToken() + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if(task.isSuccessful()){ + Log.d("TOKEN_FCM", "Token: " + task.getResult()); + } + } + }); + edt_password.addTextChangedListener(new TextWatcher() { @Override @@ -182,9 +194,6 @@ public class SignInActivity extends AppCompatActivity { //Get shipper id getShipperId(userData.getId()); - - startActivity(new Intent(SignInActivity.this, MainActivity.class)); - finish(); } else { Toast.makeText(SignInActivity.this, "Tài khoản không hợp lệ! Vui lòng kiểm tra lại!", Toast.LENGTH_SHORT).show(); FirebaseAuth.getInstance().signOut(); @@ -277,7 +286,10 @@ public class SignInActivity extends AppCompatActivity { @Override public void onResponse(Call call, Response response) { if(response.code() == 200){ - Common.CURRENT_SHIPPER = response.body(); + Common.CURRENT_SHIPPER = response.body(); + + startActivity(new Intent(SignInActivity.this, MainActivity.class)); + finish(); //Dismiss progress bar progressLayout.setVisibility(View.GONE); } diff --git a/app/src/main/java/com/capstone/foodify/shipper/Common.java b/app/src/main/java/com/capstone/foodify/shipper/Common.java index 1d41672..cdb2c4e 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Common.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Common.java @@ -26,9 +26,9 @@ public class Common { public static Order CURRENT_ORDER = null; public static String TOKEN = null; public static String FCM_TOKEN_SHIPPER = null; - public static String FCM_TOKEN_USER = null; + public static String FCM_TOKEN_CUSTOMER = null; public static Location CURRENT_LOCATION = null; - public static final String BASE_URL = "http://192.168.1.183:8080/api/"; + public static final String BASE_URL = "https://foodify-backend-production.up.railway.app/api/"; public static final String MAP_API = "AIzaSyAY14Ic32UP26Hg6GILznOfbBihiY5BUxw"; public static final String FORMAT_DATE="dd-MM-yyyy"; public static final String VALID_EMAIL_ADDRESS_REGEX = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$"; diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/AwaitingOrder.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/AwaitingOrder.java new file mode 100644 index 0000000..50c37b6 --- /dev/null +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/AwaitingOrder.java @@ -0,0 +1,157 @@ +package com.capstone.foodify.shipper.Fragment.Order; + +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.core.widget.NestedScrollView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ProgressBar; +import android.widget.TextView; +import android.widget.Toast; + +import com.capstone.foodify.shipper.API.FoodApiToken; +import com.capstone.foodify.shipper.Adapter.OrderAdapter; +import com.capstone.foodify.shipper.Common; +import com.capstone.foodify.shipper.Model.Order; +import com.capstone.foodify.shipper.Model.Response.Orders; +import com.capstone.foodify.shipper.R; + +import java.util.ArrayList; +import java.util.Currency; +import java.util.List; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public class AwaitingOrder extends Fragment { + private static int CURRENT_PAGE = 0; + private static final int PAGE_SIZE = 8; + private static final String SORT_BY = "id"; + private static final String SORT_DIR = "asc"; + private static boolean LAST_PAGE = false; + private final List listOrders = new ArrayList<>(); + RecyclerView recyclerView; + OrderAdapter orderAdapter; + TextView end_of_list_text_view, no_order_text; + NestedScrollView list_order_layout; + ProgressBar progressBar; + SwipeRefreshLayout swipeRefreshLayout; + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View view = inflater.inflate(R.layout.fragment_waiting_order, container, false); + + //Init component + recyclerView = view.findViewById(R.id.rcv_list_order); + list_order_layout = view.findViewById(R.id.list_order_layout); + progressBar = view.findViewById(R.id.progress_bar); + end_of_list_text_view = view.findViewById(R.id.end_of_list_text); + no_order_text = view.findViewById(R.id.no_oder_text); + swipeRefreshLayout = view.findViewById(R.id.swipe_refresh); + + orderAdapter = new OrderAdapter(getActivity()); + + CURRENT_PAGE = 0; + getListOrder(); + + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false); + recyclerView.setLayoutManager(linearLayoutManager); + + recyclerView.setAdapter(orderAdapter); + + if (list_order_layout != null) { + list_order_layout.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() { + @Override + public void onScrollChange(@NonNull NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) { + if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) { + //When user scroll to bottom, load more data + dataLoadMore(); + } + } + }); + } + + + swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + listOrders.clear(); + CURRENT_PAGE = 0; + getListOrder(); + + progressBar.setVisibility(View.VISIBLE); + no_order_text.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + swipeRefreshLayout.setRefreshing(false); + } + }); + + return view; + } + + private void getListOrder(){ + if(Common.CURRENT_SHIPPER != null){ + FoodApiToken.apiService.getListOrder(Common.CURRENT_SHIPPER.getId(), "AWAITING", CURRENT_PAGE++, PAGE_SIZE, SORT_BY, SORT_DIR).enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if(response.code() == 200){ + + assert response.body() != null; + listOrders.addAll(response.body().getOrders()); + + orderAdapter.setData(listOrders); + + LAST_PAGE = response.body().getPage().isLast(); + + + if(listOrders.size() == 0){ + progressBar.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + no_order_text.setVisibility(View.VISIBLE); + } else { + if(LAST_PAGE) + hideProgressBarAndShowEndOfListText(); + } + + } else { + Toast.makeText(getContext(), "Đã có lỗi hệ thống! Mã lỗi: " + response.code(), Toast.LENGTH_SHORT).show(); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + Toast.makeText(getContext(), Common.ERROR_CONNECT_SERVER, Toast.LENGTH_SHORT).show(); + } + }); + } + } + + private void hideProgressBarAndShowEndOfListText(){ + progressBar.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.VISIBLE); + } + + private void defaultLayout(){ + + } + + private void dataLoadMore() { + if(!LAST_PAGE){ + getListOrder(); + } else { + hideProgressBarAndShowEndOfListText(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/CompletedOrder.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/CompletedOrder.java index 8c7c52e..bc3c20a 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/CompletedOrder.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/CompletedOrder.java @@ -7,6 +7,7 @@ import androidx.core.widget.NestedScrollView; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; @@ -31,28 +32,30 @@ import retrofit2.Response; public class CompletedOrder extends Fragment { private static int CURRENT_PAGE = 0; - private static int PAGE_SIZE = 8; - private static String SORT_BY = "id"; - private static String SORT_DIR = "asc"; + private static final int PAGE_SIZE = 8; + private static final String SORT_BY = "id"; + private static final String SORT_DIR = "asc"; private static boolean LAST_PAGE = false; - private List listOrders = new ArrayList<>(); + private final List listOrders = new ArrayList<>(); RecyclerView recyclerView; OrderAdapter orderAdapter; - TextView end_of_list_text_view; + TextView end_of_list_text_view, no_order_text; NestedScrollView list_order_layout; ProgressBar progressBar; - + SwipeRefreshLayout swipeRefreshLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.fragment_completed_order, container, false); + View view = inflater.inflate(R.layout.fragment_waiting_order, container, false); //Init component recyclerView = view.findViewById(R.id.rcv_list_order); list_order_layout = view.findViewById(R.id.list_order_layout); progressBar = view.findViewById(R.id.progress_bar); end_of_list_text_view = view.findViewById(R.id.end_of_list_text); + no_order_text = view.findViewById(R.id.no_oder_text); + swipeRefreshLayout = view.findViewById(R.id.swipe_refresh); orderAdapter = new OrderAdapter(getActivity()); @@ -76,6 +79,23 @@ public class CompletedOrder extends Fragment { } }); } + + + swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + listOrders.clear(); + CURRENT_PAGE = 0; + getListOrder(); + + progressBar.setVisibility(View.VISIBLE); + no_order_text.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + swipeRefreshLayout.setRefreshing(false); + } + }); + return view; } @@ -86,14 +106,24 @@ public class CompletedOrder extends Fragment { public void onResponse(Call call, Response response) { if(response.code() == 200){ + assert response.body() != null; listOrders.addAll(response.body().getOrders()); orderAdapter.setData(listOrders); LAST_PAGE = response.body().getPage().isLast(); - if(LAST_PAGE) - hideProgressBarAndShowEndOfListText(); + + if(listOrders.size() == 0){ + progressBar.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + no_order_text.setVisibility(View.VISIBLE); + } else { + if(LAST_PAGE) + hideProgressBarAndShowEndOfListText(); + } + } else { Toast.makeText(getContext(), "Đã có lỗi hệ thống! Mã lỗi: " + response.code(), Toast.LENGTH_SHORT).show(); } @@ -112,6 +142,10 @@ public class CompletedOrder extends Fragment { end_of_list_text_view.setVisibility(View.VISIBLE); } + private void defaultLayout(){ + + } + private void dataLoadMore() { if(!LAST_PAGE){ getListOrder(); diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/OrderViewPagerAdapter.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/OrderViewPagerAdapter.java index 9f27d87..e6c4810 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/OrderViewPagerAdapter.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/OrderViewPagerAdapter.java @@ -5,9 +5,6 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.viewpager2.adapter.FragmentStateAdapter; -import com.capstone.foodify.shipper.Fragment.OrderFragment; -import com.capstone.foodify.shipper.Fragment.ProfileFragment; - public class OrderViewPagerAdapter extends FragmentStateAdapter { public OrderViewPagerAdapter(@NonNull FragmentActivity fragmentActivity) { @@ -18,13 +15,14 @@ public class OrderViewPagerAdapter extends FragmentStateAdapter { @Override public Fragment createFragment(int position) { switch(position) { - case 1: return new CompletedOrder(); - default: return new ShippingOrder(); + case 1: return new ShippingFragment(); + case 2: return new CompletedOrder(); + default: return new AwaitingOrder(); } } @Override public int getItemCount() { - return 2; + return 3; } @Override diff --git a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingOrder.java b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingFragment.java similarity index 71% rename from app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingOrder.java rename to app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingFragment.java index 7e9bd64..87278d2 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingOrder.java +++ b/app/src/main/java/com/capstone/foodify/shipper/Fragment/Order/ShippingFragment.java @@ -7,6 +7,7 @@ import androidx.core.widget.NestedScrollView; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; @@ -29,30 +30,32 @@ import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; -public class ShippingOrder extends Fragment { +public class ShippingFragment extends Fragment { private static int CURRENT_PAGE = 0; - private static int PAGE_SIZE = 8; - private static String SORT_BY = "id"; - private static String SORT_DIR = "asc"; + private static final int PAGE_SIZE = 8; + private static final String SORT_BY = "id"; + private static final String SORT_DIR = "asc"; private static boolean LAST_PAGE = false; - private List listOrders = new ArrayList<>(); + private final List listOrders = new ArrayList<>(); RecyclerView recyclerView; OrderAdapter orderAdapter; - TextView end_of_list_text_view; + TextView end_of_list_text_view, no_order_text; NestedScrollView list_order_layout; ProgressBar progressBar; - + SwipeRefreshLayout swipeRefreshLayout; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment - View view = inflater.inflate(R.layout.fragment_shipping_order, container, false); + View view = inflater.inflate(R.layout.fragment_waiting_order, container, false); //Init component recyclerView = view.findViewById(R.id.rcv_list_order); list_order_layout = view.findViewById(R.id.list_order_layout); progressBar = view.findViewById(R.id.progress_bar); end_of_list_text_view = view.findViewById(R.id.end_of_list_text); + no_order_text = view.findViewById(R.id.no_oder_text); + swipeRefreshLayout = view.findViewById(R.id.swipe_refresh); orderAdapter = new OrderAdapter(getActivity()); @@ -76,6 +79,23 @@ public class ShippingOrder extends Fragment { } }); } + + + swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + listOrders.clear(); + CURRENT_PAGE = 0; + getListOrder(); + + progressBar.setVisibility(View.VISIBLE); + no_order_text.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + swipeRefreshLayout.setRefreshing(false); + } + }); + return view; } @@ -93,8 +113,17 @@ public class ShippingOrder extends Fragment { LAST_PAGE = response.body().getPage().isLast(); - if(LAST_PAGE) - hideProgressBarAndShowEndOfListText(); + + if(listOrders.size() == 0){ + progressBar.setVisibility(View.GONE); + end_of_list_text_view.setVisibility(View.GONE); + + no_order_text.setVisibility(View.VISIBLE); + } else { + if(LAST_PAGE) + hideProgressBarAndShowEndOfListText(); + } + } else { Toast.makeText(getContext(), "Đã có lỗi hệ thống! Mã lỗi: " + response.code(), Toast.LENGTH_SHORT).show(); } @@ -113,6 +142,10 @@ public class ShippingOrder extends Fragment { end_of_list_text_view.setVisibility(View.VISIBLE); } + private void defaultLayout(){ + + } + private void dataLoadMore() { if(!LAST_PAGE){ getListOrder(); diff --git a/app/src/main/java/com/capstone/foodify/shipper/GoogleMap/GeofenceBroadcastReceiver.java b/app/src/main/java/com/capstone/foodify/shipper/GoogleMap/GeofenceBroadcastReceiver.java index 9ea5d76..1fb3d68 100644 --- a/app/src/main/java/com/capstone/foodify/shipper/GoogleMap/GeofenceBroadcastReceiver.java +++ b/app/src/main/java/com/capstone/foodify/shipper/GoogleMap/GeofenceBroadcastReceiver.java @@ -43,7 +43,7 @@ public class GeofenceBroadcastReceiver extends BroadcastReceiver { if(transitionType == Geofence.GEOFENCE_TRANSITION_ENTER){ notificationHelper.sendHighPriorityNotification("Đã tới khu vực giao!", "Nhấp vào đây để quay về app!", OrderDetailActivity.class); - if(Common.FCM_TOKEN_USER != null) + if(Common.FCM_TOKEN_CUSTOMER != null) sendNotification(); } @@ -53,7 +53,9 @@ public class GeofenceBroadcastReceiver extends BroadcastReceiver { Notification notification = new Notification("Thông báo!", "Đơn hàng đang gần đến bạn!"); FirebaseMessaging firebaseMessaging = new FirebaseMessaging(); - firebaseMessaging.setTo(Common.FCM_TOKEN_USER); + + + firebaseMessaging.setTo(Common.FCM_TOKEN_CUSTOMER); firebaseMessaging.setNotification(notification); FirebaseMessagingAPI.apiService.sendNotification(firebaseMessaging).enqueue(new Callback() { @Override diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml index add93d2..ed510bf 100644 --- a/app/src/main/res/layout/activity_order_detail.xml +++ b/app/src/main/res/layout/activity_order_detail.xml @@ -348,23 +348,50 @@ + + - - - - - + android:layout_height="match_parent" + android:id="@+id/swipe_refresh" + > - + android:layout_height="match_parent" + android:id="@+id/list_order_layout" + > - + - + - + - \ No newline at end of file + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_order.xml b/app/src/main/res/layout/fragment_order.xml index 04f1ffb..16888ed 100644 --- a/app/src/main/res/layout/fragment_order.xml +++ b/app/src/main/res/layout/fragment_order.xml @@ -70,6 +70,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content"/> + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_shipping_order.xml b/app/src/main/res/layout/fragment_shipping_order.xml deleted file mode 100644 index 3e8f288..0000000 --- a/app/src/main/res/layout/fragment_shipping_order.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_waiting_order.xml b/app/src/main/res/layout/fragment_waiting_order.xml new file mode 100644 index 0000000..87a18e4 --- /dev/null +++ b/app/src/main/res/layout/fragment_waiting_order.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file