diff --git a/app/src/main/java/com/capstone/foodify/API/FoodApi.java b/app/src/main/java/com/capstone/foodify/API/FoodApi.java index a5f756e..618376a 100644 --- a/app/src/main/java/com/capstone/foodify/API/FoodApi.java +++ b/app/src/main/java/com/capstone/foodify/API/FoodApi.java @@ -61,10 +61,10 @@ public interface FoodApi { @GET("products/shops/{id}") Call 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> wardResponse(@Path("districtId") int district_id); - @GET("district") + @GET("districts") Call> districtResponse(); @GET("sliders") diff --git a/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java b/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java index fdb10fc..e9511a5 100644 --- a/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java +++ b/app/src/main/java/com/capstone/foodify/Activity/ShopDetailActivity.java @@ -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 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(){ diff --git a/app/src/main/java/com/capstone/foodify/Common.java b/app/src/main/java/com/capstone/foodify/Common.java index 787cf16..67ecc57 100644 --- a/app/src/main/java/com/capstone/foodify/Common.java +++ b/app/src/main/java/com/capstone/foodify/Common.java @@ -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 { diff --git a/app/src/main/java/com/capstone/foodify/Fragment/HomeFragment.java b/app/src/main/java/com/capstone/foodify/Fragment/HomeFragment.java index 0b0fd2d..7ff6161 100644 --- a/app/src/main/java/com/capstone/foodify/Fragment/HomeFragment.java +++ b/app/src/main/java/com/capstone/foodify/Fragment/HomeFragment.java @@ -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>() { @Override public void onResponse(Call> call, Response> response) { diff --git a/app/src/main/res/layout/activity_shop_detail.xml b/app/src/main/res/layout/activity_shop_detail.xml index 1c5dc20..ea2bcd3 100644 --- a/app/src/main/res/layout/activity_shop_detail.xml +++ b/app/src/main/res/layout/activity_shop_detail.xml @@ -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 @@ + + + + + + \ No newline at end of file