Fix bug can't access shop detail after access another activity

This commit is contained in:
Nezumi
2023-03-14 15:29:26 +07:00
parent 431025575f
commit b16d7560c9
5 changed files with 81 additions and 36 deletions
@@ -61,10 +61,10 @@ public interface FoodApi {
@GET("products/shops/{id}") @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); 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); Call<List<DistrictWardResponse>> wardResponse(@Path("districtId") int district_id);
@GET("district") @GET("districts")
Call<List<DistrictWardResponse>> districtResponse(); Call<List<DistrictWardResponse>> districtResponse();
@GET("sliders") @GET("sliders")
@@ -1,26 +1,25 @@
package com.capstone.foodify.Activity; 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.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.widget.NestedScrollView; import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; 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.API.FoodApi;
import com.capstone.foodify.Adapter.FoodShopAdapter;
import com.capstone.foodify.Common; import com.capstone.foodify.Common;
import com.capstone.foodify.Model.Food.Food; 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.Foods;
import com.capstone.foodify.Model.Response.Shops;
import com.capstone.foodify.Model.Shop.Shop; import com.capstone.foodify.Model.Shop.Shop;
import com.capstone.foodify.R; import com.capstone.foodify.R;
import com.google.android.material.appbar.CollapsingToolbarLayout; import com.google.android.material.appbar.CollapsingToolbarLayout;
@@ -49,10 +48,10 @@ public class ShopDetailActivity extends AppCompatActivity {
RecyclerView recycler_view_food_shop; RecyclerView recycler_view_food_shop;
FoodShopAdapter adapter; FoodShopAdapter adapter;
private CollapsingToolbarLayout collapsingToolbarLayout; private CollapsingToolbarLayout collapsingToolbarLayout;
private PopupDialog popupDialog;
private NestedScrollView nestedScrollView; private NestedScrollView nestedScrollView;
private ProgressBar progressBar; private ProgressBar progressBar;
private Shop shop; private Shop shop;
private ConstraintLayout progressLayout;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -70,10 +69,7 @@ public class ShopDetailActivity extends AppCompatActivity {
nestedScrollView = findViewById(R.id.food_detail); nestedScrollView = findViewById(R.id.food_detail);
progressBar = findViewById(R.id.progress_bar); progressBar = findViewById(R.id.progress_bar);
end_of_list_text_view = findViewById(R.id.end_of_list_text); end_of_list_text_view = findViewById(R.id.end_of_list_text);
progressLayout = findViewById(R.id.progress_layout);
popupDialog = PopupDialog.getInstance(this);
popupDialog.setStyle(Styles.PROGRESS).setProgressDialogTint(getResources().getColor(R.color.primaryColor, null))
.setCancelable(false).showDialog();
//Get data //Get data
if (getIntent() != null) if (getIntent() != null)
@@ -130,12 +126,15 @@ public class ShopDetailActivity extends AppCompatActivity {
recycler_view_food_shop.setAdapter(adapter); recycler_view_food_shop.setAdapter(adapter);
initData(shop); initData(shop);
progressLayout.setVisibility(View.GONE);
} }
@Override @Override
public void onFailure(Call<Foods> call, Throwable t) { public void onFailure(Call<Foods> call, Throwable t) {
//Check internet connection //Check internet connection
Common.showNotificationError(getBaseContext(), ShopDetailActivity.this); Common.showNotificationError(getBaseContext(), ShopDetailActivity.this);
progressLayout.setVisibility(View.GONE);
} }
}); });
} }
@@ -176,7 +175,6 @@ public class ShopDetailActivity extends AppCompatActivity {
hideProgressBarAndShowEndOfListText(); hideProgressBarAndShowEndOfListText();
nestedScrollView.setVisibility(View.VISIBLE); nestedScrollView.setVisibility(View.VISIBLE);
popupDialog.dismissDialog();
} }
private void hideProgressBarAndShowEndOfListText(){ private void hideProgressBarAndShowEndOfListText(){
@@ -12,6 +12,7 @@ import android.net.NetworkInfo;
import android.os.Build; import android.os.Build;
import android.widget.Toast; import android.widget.Toast;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.capstone.foodify.Model.Basket.Basket; import com.capstone.foodify.Model.Basket.Basket;
@@ -47,19 +48,39 @@ public class Common {
return Typeface.createFromAsset(assetManager, "font/opensans.ttf"); return Typeface.createFromAsset(assetManager, "font/opensans.ttf");
} }
public static boolean checkInternetConnection(Context context){ @IntRange(from = 0, to = 3)
ConnectivityManager connectivityManager = public static int getConnectionType(Context context) {
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); int result = 0; // Returns connection type. 0: none; 1: mobile data; 2: wifi
Network activeNetwork = connectivityManager.getActiveNetwork(); ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(activeNetwork); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (cm != null) {
if (capabilities != null) { NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork());
if (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) return true; if (capabilities != null) {
else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)) return true; if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) {
else if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET)) return true; result = 2;
else return false; } 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){ public static void showErrorInternetConnectionNotification(Activity activity){
@@ -78,7 +99,7 @@ public class Common {
} }
public static void showNotificationError(Context context, Activity activity) { public static void showNotificationError(Context context, Activity activity) {
if(checkInternetConnection(context)){ if(getConnectionType(context) != 0){
//Has internet connection //Has internet connection
showErrorServerNotification(activity); showErrorServerNotification(activity);
} else { } else {
@@ -65,10 +65,6 @@ public class HomeFragment extends Fragment {
popupDialog = PopupDialog.getInstance(getContext()); 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()){ if(listFood.isEmpty() || recentFood.isEmpty()){
getListFood(); getListFood();
@@ -90,7 +86,18 @@ public class HomeFragment extends Fragment {
return view; return view;
} }
@Override
public void onDestroy() {
super.onDestroy();
System.out.println("Main activity destroy!");
}
private void showSlider(){ 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>>() { FoodApi.apiService.listSlider().enqueue(new Callback<List<Slider>>() {
@Override @Override
public void onResponse(Call<List<Slider>> call, Response<List<Slider>> response) { public void onResponse(Call<List<Slider>> call, Response<List<Slider>> response) {
@@ -20,7 +20,6 @@
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap" app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
app:contentScrim="@color/primaryDarkColor" app:contentScrim="@color/primaryDarkColor"
app:title="Shop Name"
android:theme="@style/CustomToolbarTheme" android:theme="@style/CustomToolbarTheme"
> >
@@ -162,6 +161,26 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView> </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> </androidx.coordinatorlayout.widget.CoordinatorLayout>