diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index ed15b62..0c0c338 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -3,20 +3,7 @@ - - - - - - - - - - - - - - + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a2160cd..21d4513 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,8 @@ android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/AppTheme" - tools:targetApi="31"> + tools:targetApi="31" + android:usesCleartextTraffic="true"> saveInspectionReport( + Call> saveInspectionReport( @Body InspectionReport inspectionReport ); diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/apiservice/RetrofitClient.java b/app/src/main/java/com/utopiaindustries/qualitychecker/apiservice/RetrofitClient.java index 8341c9e..4108c7a 100644 --- a/app/src/main/java/com/utopiaindustries/qualitychecker/apiservice/RetrofitClient.java +++ b/app/src/main/java/com/utopiaindustries/qualitychecker/apiservice/RetrofitClient.java @@ -8,7 +8,9 @@ import retrofit2.converter.gson.GsonConverterFactory; public class RetrofitClient { +// private final static String BASE_URL = "https://portal.utopiaindustries.pk/uind/"; private final static String BASE_URL = "http://192.168.91.16:8080/uind/"; + private static Retrofit retrofit; public synchronized static Retrofit getClient() { diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/service/InspectionReportService.java b/app/src/main/java/com/utopiaindustries/qualitychecker/service/InspectionReportService.java index 541a0bb..202ea4e 100644 --- a/app/src/main/java/com/utopiaindustries/qualitychecker/service/InspectionReportService.java +++ b/app/src/main/java/com/utopiaindustries/qualitychecker/service/InspectionReportService.java @@ -12,6 +12,7 @@ import com.utopiaindustries.qualitychecker.store.Store; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Objects; import retrofit2.Call; @@ -96,17 +97,25 @@ public class InspectionReportService { } // post object apiService.saveInspectionReport( inspectionReport ).enqueue( - new Callback() { + new Callback>() { @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - callback.onSuccess(); + public void onResponse(Call> call, + Response> response) { + if ( response.isSuccessful() ) { + System.out.println( response.body() ); + if( response.body().get("result").equalsIgnoreCase("success")){ + callback.onSuccess(); + } + else { + callback.onFailure(new Exception( "Error on submitting report" )); + } } else { callback.onFailure(new Exception("API call failed with status code: " + response.code())); } } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call> call, Throwable t) { + System.out.println( t ); callback.onFailure( t ); } } diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/ThirdStepFragment.java b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/ThirdStepFragment.java index 4129a1d..6546a83 100644 --- a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/ThirdStepFragment.java +++ b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/ThirdStepFragment.java @@ -12,6 +12,7 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; +import android.widget.ProgressBar; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -134,18 +135,26 @@ public class ThirdStepFragment extends Fragment implements View.OnClickListener } private void saveReportDialog(){ - AlertDialog.Builder builder = new AlertDialog.Builder( getContext() ); - builder.setTitle("So you want to save report?") + LayoutInflater inflater = LayoutInflater.from( getContext() ); + View dialogView = inflater.inflate( R.layout.save_report_dialog, null); + // progress bar + ProgressBar progressBar = dialogView.findViewById( R.id.save_report_progress ); + AlertDialog.Builder builder = new AlertDialog.Builder( Objects.requireNonNull(getContext()) ); + builder.setView( dialogView ) + .setTitle("So you want to save report?") .setPositiveButton( "Save",(dialog, which) -> { + progressBar.setVisibility( View.VISIBLE ); inspectionReportService.saveReport(store.getReport(), new SaveReportCallback() { @Override public void onSuccess() { Toast.makeText( getContext(), "Report saved Successfully", Toast.LENGTH_LONG ).show(); + progressBar.setVisibility( View.INVISIBLE ); Objects.requireNonNull( getActivity() ).finish(); } @Override public void onFailure(Throwable throwable) { Toast.makeText( getContext(), throwable.getMessage(), Toast.LENGTH_LONG ).show(); + progressBar.setVisibility( View.INVISIBLE ); } }); }) @@ -242,17 +251,19 @@ public class ThirdStepFragment extends Fragment implements View.OnClickListener List dimensions = store.getDimensions(); List newDimensions = new ArrayList<>(); try { - // calculations for averaging - Map> typeToDimensionsMap = - dimensions.stream().collect(Collectors.groupingBy( InspectionItemDimension::getType) ); + if(! dimensions.isEmpty() ){ + // calculations for averaging + Map> typeToDimensionsMap = + dimensions.stream().collect(Collectors.groupingBy( InspectionItemDimension::getType) ); - for( Map.Entry> entry : typeToDimensionsMap.entrySet() ){ - InspectionItemDimension newDimen = getInspectionItemDimension( entry ); - newDimensions.add( newDimen ); + for( Map.Entry> entry : typeToDimensionsMap.entrySet() ){ + InspectionItemDimension newDimen = getInspectionItemDimension( entry ); + newDimensions.add( newDimen ); + } + store.getReport().getItems().get(0).setDimensions( newDimensions ); + ItemDimensionAdapter adapter = new ItemDimensionAdapter( store.getReport().getItems().get(0).getDimensions() ); + itemDimensionsRecyclerView.setAdapter( adapter ); } - store.getReport().getItems().get(0).setDimensions( newDimensions ); - ItemDimensionAdapter adapter = new ItemDimensionAdapter( store.getReport().getItems().get(0).getDimensions() ); - itemDimensionsRecyclerView.setAdapter( adapter ); } catch ( NullPointerException ex ){ Toast.makeText( getContext() , "Please fill the required Fields", Toast.LENGTH_LONG ).show(); } diff --git a/app/src/main/res/layout/save_report_dialog.xml b/app/src/main/res/layout/save_report_dialog.xml new file mode 100644 index 0000000..618eb80 --- /dev/null +++ b/app/src/main/res/layout/save_report_dialog.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file