mirror of
https://github.com/Nezumi-2711/Foodify.git
synced 2026-09-22 20:00:50 +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}")
|
@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>
|
||||||
Reference in New Issue
Block a user