mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-22 13:38:41 +00:00
Fix bug can't access shop detail after access another activity
This commit is contained in:
@@ -61,10 +61,10 @@ public interface FoodApi {
|
||||
@GET("products/shops/{id}")
|
||||
Call<Foods> listFoodByShopId(@Path("id") int id, @Query("pageNo") int pageNo, @Query("pageSize") int pageSize, @Query("sortBy") String sortBy, @Query("sortDir") String sortDir);
|
||||
|
||||
@GET("district/{districtId}/ward")
|
||||
@GET("districts/{districtId}/wards")
|
||||
Call<List<DistrictWardResponse>> wardResponse(@Path("districtId") int district_id);
|
||||
|
||||
@GET("district")
|
||||
@GET("districts")
|
||||
Call<List<DistrictWardResponse>> districtResponse();
|
||||
|
||||
@GET("sliders")
|
||||
|
||||
@@ -1,26 +1,25 @@
|
||||
package com.capstone.foodify.Activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.DividerItemDecoration;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.capstone.foodify.API.FoodApi;
|
||||
import com.capstone.foodify.Adapter.FoodShopAdapter;
|
||||
import com.capstone.foodify.Common;
|
||||
import com.capstone.foodify.Model.Food.Food;
|
||||
import com.capstone.foodify.Adapter.FoodShopAdapter;
|
||||
import com.capstone.foodify.Model.Response.Foods;
|
||||
import com.capstone.foodify.Model.Response.Shops;
|
||||
import com.capstone.foodify.Model.Shop.Shop;
|
||||
import com.capstone.foodify.R;
|
||||
import com.google.android.material.appbar.CollapsingToolbarLayout;
|
||||
@@ -49,10 +48,10 @@ public class ShopDetailActivity extends AppCompatActivity {
|
||||
RecyclerView recycler_view_food_shop;
|
||||
FoodShopAdapter adapter;
|
||||
private CollapsingToolbarLayout collapsingToolbarLayout;
|
||||
private PopupDialog popupDialog;
|
||||
private NestedScrollView nestedScrollView;
|
||||
private ProgressBar progressBar;
|
||||
private Shop shop;
|
||||
private ConstraintLayout progressLayout;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -70,10 +69,7 @@ public class ShopDetailActivity extends AppCompatActivity {
|
||||
nestedScrollView = findViewById(R.id.food_detail);
|
||||
progressBar = findViewById(R.id.progress_bar);
|
||||
end_of_list_text_view = findViewById(R.id.end_of_list_text);
|
||||
|
||||
popupDialog = PopupDialog.getInstance(this);
|
||||
popupDialog.setStyle(Styles.PROGRESS).setProgressDialogTint(getResources().getColor(R.color.primaryColor, null))
|
||||
.setCancelable(false).showDialog();
|
||||
progressLayout = findViewById(R.id.progress_layout);
|
||||
|
||||
//Get data
|
||||
if (getIntent() != null)
|
||||
@@ -130,12 +126,15 @@ public class ShopDetailActivity extends AppCompatActivity {
|
||||
recycler_view_food_shop.setAdapter(adapter);
|
||||
|
||||
initData(shop);
|
||||
|
||||
progressLayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<Foods> call, Throwable t) {
|
||||
//Check internet connection
|
||||
Common.showNotificationError(getBaseContext(), ShopDetailActivity.this);
|
||||
progressLayout.setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -176,7 +175,6 @@ public class ShopDetailActivity extends AppCompatActivity {
|
||||
hideProgressBarAndShowEndOfListText();
|
||||
|
||||
nestedScrollView.setVisibility(View.VISIBLE);
|
||||
popupDialog.dismissDialog();
|
||||
}
|
||||
|
||||
private void hideProgressBarAndShowEndOfListText(){
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.net.NetworkInfo;
|
||||
import android.os.Build;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.IntRange;
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.capstone.foodify.Model.Basket.Basket;
|
||||
@@ -47,19 +48,39 @@ public class Common {
|
||||
return Typeface.createFromAsset(assetManager, "font/opensans.ttf");
|
||||
}
|
||||
|
||||
public static boolean checkInternetConnection(Context context){
|
||||
ConnectivityManager connectivityManager =
|
||||
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
Network activeNetwork = connectivityManager.getActiveNetwork();
|
||||
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork);
|
||||
|
||||
if (capabilities != null) {
|
||||
if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) return true;
|
||||
else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) return true;
|
||||
else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) return true;
|
||||
else return false;
|
||||
@IntRange(from = 0, to = 3)
|
||||
public static int getConnectionType(Context context) {
|
||||
int result = 0; // Returns connection type. 0: none; 1: mobile data; 2: wifi
|
||||
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (cm != null) {
|
||||
NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
|
||||
if (capabilities != null) {
|
||||
if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
|
||||
result = 2;
|
||||
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) {
|
||||
result = 1;
|
||||
} else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN)) {
|
||||
result = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (cm != null) {
|
||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||
if (activeNetwork != null) {
|
||||
// connected to the internet
|
||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI) {
|
||||
result = 2;
|
||||
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
||||
result = 1;
|
||||
} else if (activeNetwork.getType() == ConnectivityManager.TYPE_VPN) {
|
||||
result = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void showErrorInternetConnectionNotification(Activity activity){
|
||||
@@ -78,7 +99,7 @@ public class Common {
|
||||
}
|
||||
|
||||
public static void showNotificationError(Context context, Activity activity) {
|
||||
if(checkInternetConnection(context)){
|
||||
if(getConnectionType(context) != 0){
|
||||
//Has internet connection
|
||||
showErrorServerNotification(activity);
|
||||
} else {
|
||||
|
||||
@@ -65,10 +65,6 @@ public class HomeFragment extends Fragment {
|
||||
|
||||
popupDialog = PopupDialog.getInstance(getContext());
|
||||
|
||||
//Show progress bar
|
||||
popupDialog.setStyle(Styles.PROGRESS).setProgressDialogTint(getResources().getColor(R.color.primaryColor, null))
|
||||
.setCancelable(false).showDialog();
|
||||
|
||||
|
||||
if(listFood.isEmpty() || recentFood.isEmpty()){
|
||||
getListFood();
|
||||
@@ -90,7 +86,18 @@ public class HomeFragment extends Fragment {
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
System.out.println("Main activity destroy!");
|
||||
}
|
||||
|
||||
private void showSlider(){
|
||||
|
||||
//Show progress bar
|
||||
popupDialog.setStyle(Styles.PROGRESS).setProgressDialogTint(getResources().getColor(R.color.primaryColor, null))
|
||||
.setCancelable(false).showDialog();
|
||||
|
||||
FoodApi.apiService.listSlider().enqueue(new Callback<List<Slider>>() {
|
||||
@Override
|
||||
public void onResponse(Call<List<Slider>> call, Response<List<Slider>> response) {
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
android:fitsSystemWindows="true"
|
||||
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
|
||||
app:contentScrim="@color/primaryDarkColor"
|
||||
app:title="Shop Name"
|
||||
android:theme="@style/CustomToolbarTheme"
|
||||
>
|
||||
|
||||
@@ -162,6 +161,26 @@
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#80000000"
|
||||
android:id="@+id/progress_layout"
|
||||
>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progressBarLoadData"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:indeterminateTint="@color/primaryColor"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
Reference in New Issue
Block a user