diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a83ff78..b068fd1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -37,21 +37,21 @@
android:name=".ui.activities.MainActivity"
android:exported="true"
android:screenOrientation="portrait"
- android:windowSoftInputMode="stateAlwaysVisible|adjustResize">
+ android:windowSoftInputMode="adjustResize">
+ android:windowSoftInputMode="adjustPan|adjustResize">
+ android:windowSoftInputMode="adjustPan|adjustResize">
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/db/DatabaseHelper.java b/app/src/main/java/com/utopiaindustries/qualitychecker/db/DatabaseHelper.java
index 4287102..28b8a77 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/db/DatabaseHelper.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/db/DatabaseHelper.java
@@ -71,6 +71,7 @@ public class DatabaseHelper extends SQLiteOpenHelper {
* */
public static final String CHECKPOINT_SKU_TABLE_NAME = "checkpoint_sku";
public static final String CHECKPOINT_SKU_SKU = "sku";
+ public static final String CHECKPOINT_SKU_MARKETPLACE = "marketplace";
public static final String CHECKPOINT_SKU_CHECKPOINT_ID = "checkpoint_id";
public static final String CHECKPOINT_SKU_STANDARD = "standard";
@@ -130,9 +131,10 @@ public class DatabaseHelper extends SQLiteOpenHelper {
String CREATE_SKU_CHECKPOINT_TABLE = "CREATE TABLE " + CHECKPOINT_SKU_TABLE_NAME + " (" +
CHECKPOINT_SKU_SKU + " TEXT NOT NULL," +
+ CHECKPOINT_SKU_MARKETPLACE + " TEXT NOT NULL," +
CHECKPOINT_SKU_CHECKPOINT_ID + " INTEGER NOT NULL," +
CHECKPOINT_SKU_STANDARD + " TEXT," +
- "PRIMARY KEY (" + CHECKPOINT_SKU_SKU + ", " + CHECKPOINT_SKU_CHECKPOINT_ID + "))";
+ "PRIMARY KEY (" + CHECKPOINT_SKU_SKU + ", " + CHECKPOINT_SKU_MARKETPLACE + ", " + CHECKPOINT_SKU_CHECKPOINT_ID + "))";
db.execSQL( CREATE_PRODUCT_TABLE );
db.execSQL( CREATE_INSPECTION_DIMENSION_TABLE );
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/db/InspectionCheckpointSkuRepository.java b/app/src/main/java/com/utopiaindustries/qualitychecker/db/InspectionCheckpointSkuRepository.java
index 669edad..fc0d6d4 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/db/InspectionCheckpointSkuRepository.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/db/InspectionCheckpointSkuRepository.java
@@ -33,6 +33,7 @@ public class InspectionCheckpointSkuRepository {
for ( InspectionCheckpointSku checkPoint : checkPoints ) {
ContentValues values = new ContentValues();
values.put(DatabaseHelper.CHECKPOINT_SKU_SKU, checkPoint.getSku() );
+ values.put(DatabaseHelper.CHECKPOINT_SKU_MARKETPLACE, checkPoint.getMarketplace() );
values.put(DatabaseHelper.CHECKPOINT_SKU_CHECKPOINT_ID, checkPoint.getCheckpointId() );
values.put(DatabaseHelper.CHECKPOINT_SKU_STANDARD, checkPoint.getStandard() );
database.insertWithOnConflict(DatabaseHelper.CHECKPOINT_SKU_TABLE_NAME, null, values, SQLiteDatabase.CONFLICT_REPLACE);
@@ -46,10 +47,10 @@ public class InspectionCheckpointSkuRepository {
}
@SuppressLint("Range")
- public List findBySku(String sku ){
+ public List findBySkuAndMarketplace(String sku, String marketplace ){
- String selection = DatabaseHelper.CHECKPOINT_SKU_SKU + "=?";
- String[] selectionArgs = {sku};
+ String selection = DatabaseHelper.CHECKPOINT_SKU_SKU + "=? AND " + DatabaseHelper.CHECKPOINT_SKU_MARKETPLACE + "=?";
+ String[] selectionArgs = {sku,marketplace};
Cursor cursor = database.query( DatabaseHelper.CHECKPOINT_SKU_TABLE_NAME,
null,
@@ -64,6 +65,7 @@ public class InspectionCheckpointSkuRepository {
do {
InspectionCheckpointSku checkpointSku = new InspectionCheckpointSku();
checkpointSku.setSku( cursor.getString( cursor.getColumnIndex( DatabaseHelper.CHECKPOINT_SKU_SKU )));
+ checkpointSku.setMarketplace( cursor.getString( cursor.getColumnIndex( DatabaseHelper.CHECKPOINT_SKU_MARKETPLACE )));
checkpointSku.setCheckpointId( cursor.getLong(cursor.getColumnIndex( DatabaseHelper.CHECKPOINT_SKU_CHECKPOINT_ID )));
checkpointSku.setStandard( cursor.getString(cursor.getColumnIndex(DatabaseHelper.CHECKPOINT_SKU_STANDARD )));
checkpointSkus.add( checkpointSku );
@@ -90,6 +92,7 @@ public class InspectionCheckpointSkuRepository {
do {
InspectionCheckpointSku checkPoint = new InspectionCheckpointSku();
checkPoint.setSku(cursor.getString( cursor.getColumnIndex(DatabaseHelper.CHECKPOINT_SKU_SKU )));
+ checkPoint.setMarketplace( cursor.getString( cursor.getColumnIndex( DatabaseHelper.CHECKPOINT_SKU_MARKETPLACE )));
checkPoint.setCheckpointId(cursor.getLong(cursor.getColumnIndex(DatabaseHelper.CHECKPOINT_SKU_CHECKPOINT_ID) ));
checkPoint.setStandard(cursor.getString(cursor.getColumnIndex(DatabaseHelper.CHECKPOINT_SKU_STANDARD )));
checkPoints.add( checkPoint );
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/models/InspectionCheckpointSku.java b/app/src/main/java/com/utopiaindustries/qualitychecker/models/InspectionCheckpointSku.java
index 548119b..c44aece 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/models/InspectionCheckpointSku.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/models/InspectionCheckpointSku.java
@@ -5,14 +5,16 @@ public class InspectionCheckpointSku {
private String sku;
private long checkpointId;
private String standard;
+ private String marketplace;
public InspectionCheckpointSku() {
}
- public InspectionCheckpointSku(String sku, long checkpointId, String standard) {
+ public InspectionCheckpointSku(String sku, long checkpointId, String standard, String marketplace) {
this.sku = sku;
this.checkpointId = checkpointId;
this.standard = standard;
+ this.marketplace = marketplace;
}
public String getSku() {
@@ -38,4 +40,22 @@ public class InspectionCheckpointSku {
public void setStandard(String standard) {
this.standard = standard;
}
+
+ public String getMarketplace() {
+ return marketplace;
+ }
+
+ public void setMarketplace(String marketplace) {
+ this.marketplace = marketplace;
+ }
+
+ @Override
+ public String toString() {
+ return "InspectionCheckpointSku{" +
+ "sku='" + sku + '\'' +
+ ", checkpointId=" + checkpointId +
+ ", standard='" + standard + '\'' +
+ ", marketplace='" + marketplace + '\'' +
+ '}';
+ }
}
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/activities/MainActivity.java b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/activities/MainActivity.java
index f06d743..1a8bf53 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/activities/MainActivity.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/activities/MainActivity.java
@@ -7,6 +7,7 @@ import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
+import android.view.ViewTreeObserver;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/CheckPointAdapter.java b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/CheckPointAdapter.java
index 9444895..6d056fc 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/CheckPointAdapter.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/CheckPointAdapter.java
@@ -13,6 +13,7 @@ import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
+import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -74,7 +75,8 @@ public class CheckPointAdapter extends
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
InspectionItemCheckPoint checkPoint = checkPointList.get( position );
holder.bind(checkPoints, defects, defectTypes, checkPoint, checkpointSkus, context );
- holder.setIsRecyclable(false);
+
+ //holder.setIsRecyclable(false);
// spinner on change
{
holder.checkpointSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@@ -96,21 +98,7 @@ public class CheckPointAdapter extends
}
// checkboxes on change
{
- holder.okCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
- if (isChecked) {
- holder.linearLayout.setVisibility(View.INVISIBLE);
- }
- checkPoint.setChecked ( false );
- holder.noCheckBox.setChecked( !isChecked );
- });
-
- holder.noCheckBox.setOnCheckedChangeListener((buttonView, isChecked) -> {
- if (isChecked) {
- holder.linearLayout.setVisibility(View.VISIBLE);
- }
- checkPoint.setChecked( true );
- holder.okCheckBox.setChecked( !isChecked );
- });
+ holder.setUpCheckboxesListeners( checkPoint );
}
// remarks on change
{
@@ -154,8 +142,11 @@ public class CheckPointAdapter extends
private final TextView selectedImage,standard;
private final ImageView imagePreview;
private final RecyclerView defectRecyclerView;
+ private TextWatcher remarksTextWatcher;
+ private CompoundButton.OnCheckedChangeListener okCheckboxListener;
+ private CompoundButton.OnCheckedChangeListener noCheckboxListener;
- public ViewHolder(@NonNull View itemView ) {
+ public ViewHolder(@NonNull View itemView) {
super(itemView);
remarks = itemView.findViewById(R.id.check_point_remarks);
checkpointSpinner = itemView.findViewById(R.id.check_point_spinner);
@@ -178,8 +169,27 @@ public class CheckPointAdapter extends
InspectionItemCheckPoint data,
List checkpointSkus,
Context context ) {
- // initialize recyclerview
+ if ( remarksTextWatcher != null) {
+ remarks.removeTextChangedListener(remarksTextWatcher);
+ }
+ if( okCheckboxListener != null ){
+ okCheckBox.setOnCheckedChangeListener( null );
+ }
+ if( noCheckboxListener != null ){
+ noCheckBox.setOnCheckedChangeListener( null );
+ }
+
+ remarks.setText( data.getRemarks() );
+ imagePreview.setImageBitmap( null );
+ selectedImage.setText( "" );
+ if( data.getFile() != null && data.getFile().length > 0 && data.getImagePath() != null && ! data.getImagePath().isEmpty() ){
+ Bitmap bitmap = BitmapFactory.decodeByteArray( data.getFile(), 0 , data.getFile().length );
+ imagePreview.setImageBitmap( bitmap );
+ selectedImage.setText( data.getImagePath() );
+ }
+
+ // initialize recyclerview
List checkPointsList = checkPoints.stream().map(InspectionCheckPoint::getTitle).collect(Collectors.toList());
// Populate checklist Spinner dropdown
@@ -188,13 +198,11 @@ public class CheckPointAdapter extends
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
checkpointSpinner.setAdapter(spinnerAdapter);
-
// Pre populate
String defaultSelectedItem = data.getTitle();
int defaultPosition = checkPointsList.indexOf(defaultSelectedItem);
checkpointSpinner.setSelection(defaultPosition);
- remarks.setText( data.getRemarks() );
okCheckBox.setChecked( data.getChecked() );
noCheckBox.setChecked( ! data.getChecked());
@@ -204,12 +212,6 @@ public class CheckPointAdapter extends
linearLayout.setVisibility(View.VISIBLE);
}
- selectedImage.setText( data.getImagePath() );
- if( data.getFile() != null ){
- Bitmap bitmap = BitmapFactory.decodeByteArray( data.getFile(), 0 , data.getFile().length );
- imagePreview.setImageBitmap( bitmap );
- }
-
InspectionCheckPoint cp = checkPoints.stream().filter(c -> c.getTitle().equalsIgnoreCase(defaultSelectedItem)).findFirst().orElse( new InspectionCheckPoint());
// set standard
if( checkpointSkus != null ){
@@ -220,7 +222,9 @@ public class CheckPointAdapter extends
if( cpSku.getStandard() != null && ! cpSku.getStandard().isEmpty() ){
standard.setText( cpSku.getStandard() );
} else {
- ((ViewGroup) standard.getParent() ).removeView( standard );
+ if( standard.getParent() != null ){
+ ((ViewGroup) standard.getParent() ).removeView( standard );
+ }
}
}
defectRecyclerView.setLayoutManager( new LinearLayoutManager( context ) );
@@ -235,20 +239,11 @@ public class CheckPointAdapter extends
.collect(Collectors.toList());
List defectList = filteredDefects.stream().map(InspectionDefect::getDefect).collect(Collectors.toList());
- // Populate defect Spinner dropdown
-// ArrayAdapter defectSpinnerAdapter = new ArrayAdapter<>(defectsSpinner.getContext(),
-// android.R.layout.simple_spinner_item, defectList);
-// defectSpinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
-// defectsSpinner.setAdapter(defectSpinnerAdapter);
-//
-// String defaultDefectSelectedItem = data.getDefectTitle();
-// int defaultSelectedDefectPosition = defectList.indexOf(defaultDefectSelectedItem);
-// defectsSpinner.setSelection(defaultSelectedDefectPosition);
}
public void setupRemarksListener(InspectionItemCheckPoint checkPoint) {
// Remarks EditText listener
- remarks.addTextChangedListener(new TextWatcher() {
+ remarksTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@@ -261,7 +256,30 @@ public class CheckPointAdapter extends
@Override
public void afterTextChanged(Editable s) {
}
- });
+ };
+ remarks.addTextChangedListener( remarksTextWatcher );
+ }
+
+ public void setUpCheckboxesListeners( InspectionItemCheckPoint checkPoint ){
+
+ okCheckboxListener = (buttonView, isChecked) -> {
+ if (isChecked) {
+ linearLayout.setVisibility(View.INVISIBLE);
+ }
+ checkPoint.setChecked ( false );
+ noCheckBox.setChecked( !isChecked );
+ };
+
+ noCheckboxListener = (buttonView, isChecked) -> {
+ if (isChecked) {
+ linearLayout.setVisibility(View.VISIBLE);
+ }
+ checkPoint.setChecked( true );
+ okCheckBox.setChecked( !isChecked );
+ };
+
+ okCheckBox.setOnCheckedChangeListener( okCheckboxListener );
+ noCheckBox.setOnCheckedChangeListener( noCheckboxListener );
}
}
}
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/DefectsAdapter.java b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/DefectsAdapter.java
index 299a4a0..96b5dcf 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/DefectsAdapter.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/adapter/DefectsAdapter.java
@@ -101,7 +101,6 @@ public class DefectsAdapter extends RecyclerView.Adapter {
System.out.println( holder.getAdapterPosition() );
@@ -185,6 +163,8 @@ public class DefectsAdapter extends RecyclerView.Adapter() );
+ populateSkuCheckpointsParams( store.getReport().getItems().get(0).getSku(),
+ store.getReport().getItems().get(0).getMarketplace());
}
}
if( v.getId() == R.id.scan_sku_btn ){
@@ -308,10 +314,10 @@ public class FirstStepFragment extends Fragment implements View.OnClickListener
}
}
- private void populateSkuCheckpointsParams( String sku ){
- if( sku != null && ! sku.isEmpty() ){
+ private void populateSkuCheckpointsParams( String sku, String marketplace ){
+ if( sku != null && ! sku.isEmpty() && marketplace != null && ! marketplace.isEmpty() ){
List checkpointSkus = new InspectionCheckpointSkuRepository( getContext() )
- .findBySku( sku );
+ .findBySkuAndMarketplace( sku, marketplace );
System.out.println( checkpointSkus );
store.setCheckpointSkus( checkpointSkus );
}
@@ -341,7 +347,7 @@ public class FirstStepFragment extends Fragment implements View.OnClickListener
fri.setChecked( store.getReport().getFri() );
refri.setChecked( ! store.getReport().getFri() );
// sku
- sku.setText( store.getReport().getItems().get(0).getSku() );
+ sku.setText( store.getReport().getItems().get(0).getFnsku() );
System.out.println( products );
System.out.println( store.getReport().getItems().get(0) );
diff --git a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/SecondStepFragment.java b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/SecondStepFragment.java
index bac8bb4..8433abb 100644
--- a/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/SecondStepFragment.java
+++ b/app/src/main/java/com/utopiaindustries/qualitychecker/ui/fragments/SecondStepFragment.java
@@ -7,12 +7,15 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.ViewTreeObserver;
import android.widget.Button;
+import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -112,6 +115,7 @@ public class SecondStepFragment extends Fragment
public void onImagePickerResult(int requestCode, int resultCode, Intent data) {
if ( resultCode == RESULT_OK && data != null ) {
try {
+ System.out.println( requestCode );
ImageProcessor imageProcessor = new ImageProcessor();
Uri selectedImageUri = data.getData();
assert selectedImageUri != null;
@@ -138,7 +142,7 @@ public class SecondStepFragment extends Fragment
int lastVisibleItemPosition = layoutManager.findLastCompletelyVisibleItemPosition();
int totalItemCount = layoutManager.getItemCount();
- if (lastVisibleItemPosition == totalItemCount - 1) {
+ if ( lastVisibleItemPosition == totalItemCount - 1 ) {
navController.navigate( R.id.action_secondStepFragment_to_thirdStepFragment );
} else {
Toast.makeText( getContext(), "Please Scroll at the bottom to continue", Toast.LENGTH_SHORT ).show();
diff --git a/app/src/main/res/layout/check_point.xml b/app/src/main/res/layout/check_point.xml
index e8066d3..bd94c31 100644
--- a/app/src/main/res/layout/check_point.xml
+++ b/app/src/main/res/layout/check_point.xml
@@ -84,7 +84,7 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:textAlignment="center"
- android:text="image">
+ android:text="">
-
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:padding="8dp"
+ android:id="@+id/check_point_recycler_view">