diff --git a/.idea/dbnavigator.xml b/.idea/dbnavigator.xml
new file mode 100644
index 00000000..7b943652
--- /dev/null
+++ b/.idea/dbnavigator.xml
@@ -0,0 +1,558 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index a34d8852..45e84b2f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services'
android {
- def appVersionCode = 266
- def appVersionName = '1.23.11'
+ def appVersionCode = 267
+ def appVersionName = '1.23.12'
signingConfigs {
release {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
index 89343310..950e296f 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/AppDatabase.java
@@ -18,7 +18,7 @@ import it.integry.integrywmsnative.core.data_store.db.entity.Ordine;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColr;
import it.integry.integrywmsnative.core.data_store.db.entity.SqlMtbColt;
-@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 7, exportSchema = false)
+@Database(entities = {ArticoloGriglia.class, Griglia.class, Ordine.class, ArticoloOrdine.class, SqlMtbColt.class, SqlMtbColr.class}, version = 8, exportSchema = false)
@TypeConverters({
DateConverter.class
})
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java
index 7e5d5d74..9480717b 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/dao/ArticoloGrigliaDao.java
@@ -4,7 +4,9 @@ import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;
+import androidx.room.RawQuery;
import androidx.room.Update;
+import androidx.sqlite.db.SupportSQLiteQuery;
import java.util.List;
@@ -45,6 +47,9 @@ public interface ArticoloGrigliaDao {
@Query("SELECT articolo_griglia_id FROM articoli_griglia WHERE (cod_mart = :codMart AND bar_code =:barCode) AND id_griglia = :idGriglia LIMIT 1")
Integer getIdArticoloByGrigliaAndBarcodeAndCodMart(int idGriglia, String barCode, String codMart);
+ @RawQuery(observedEntities = ArticoloGriglia.class)
+ List getArticoli(SupportSQLiteQuery query);
+
@Query("SELECT * FROM articoli_griglia WHERE id_griglia = :grigliaId")
List getArticoliFromGriglia(int grigliaId);
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
index f28a2434..2a109a0c 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/entity/ArticoloGriglia.java
@@ -27,7 +27,7 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
public class ArticoloGriglia {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "articolo_griglia_id")
- private int articoloGrigliaId;
+ private Integer articoloGrigliaId;
@ColumnInfo(name = "cod_mart")
private String codMart;
@@ -74,11 +74,11 @@ public class ArticoloGriglia {
@ColumnInfo(name = "new_no_promo")
private boolean newNoPromo = false;
- public int getArticoloGrigliaId() {
+ public Integer getArticoloGrigliaId() {
return articoloGrigliaId;
}
- public void setArticoloGrigliaId(int articoloGrigliaId) {
+ public void setArticoloGrigliaId(Integer articoloGrigliaId) {
this.articoloGrigliaId = articoloGrigliaId;
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java
index d47945ed..da7ecbeb 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/data_store/db/repository/implementations/ArticoliGrigliaDataSource.java
@@ -5,7 +5,14 @@ import com.annimon.stream.Stream;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
import javax.inject.Inject;
@@ -24,27 +31,21 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
this.mArticoloGrigliaDao = articoloGrigliaDao;
}
- public void saveArticoliToGriglia(List articoli, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) {
+ public void saveArticoliToGriglia(List updatedArts, Griglia griglia, Runnable onSuccess, RunnableArgs onFail) {
execute(() -> {
try {
- List toUpdate = new ArrayList<>();
- List toInsert = new ArrayList<>();
- List codMarts = new ArrayList<>();
- for (ArticoloGriglia art : articoli) {
- Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(griglia.getGrigliaId(), art.getBarCode(), art.getCodMart());
- codMarts.add(art.getCodMart());
- if (id != null) {
- art.setArticoloGrigliaId(id);
- toUpdate.add(art);
- } else {
- toInsert.add(art);
- }
- }
+ var tmp = calcItemsToInsertAndUpdate(updatedArts);
+ var toInsert = (List) tmp.get("toInsert");
+ var toUpdate = (List) tmp.get("toUpdate");
+ var codMarts = (List) tmp.get("codMarts");
+
mArticoloGrigliaDao.insertAll(toInsert);
mArticoloGrigliaDao.updateAll(toUpdate);
+
List articoliGriglia = mArticoloGrigliaDao.getArticoliFromGriglia(griglia.getGrigliaId());
List toDelete = Stream.of(articoliGriglia).filter(articolo -> !codMarts.contains(articolo.getCodMart())).toList();
mArticoloGrigliaDao.deleteList(toDelete);
+
onSuccess.run();
} catch (Exception e) {
onFail.run(e);
@@ -52,6 +53,52 @@ public class ArticoliGrigliaDataSource extends Repository implements ArticoloGri
});
}
+ private HashMap calcItemsToInsertAndUpdate(List updatedArts) throws InterruptedException, ExecutionException {
+ var toInsert = new ArrayList();
+ var toUpdate = new ArrayList();
+ var codMarts = new ArrayList();
+
+ int cores = Runtime.getRuntime().availableProcessors();
+ ThreadPoolExecutor executor = (ThreadPoolExecutor) Executors.newFixedThreadPool(cores);
+ List> calls = new ArrayList<>();
+
+ for (int i = 0; i < updatedArts.size(); i++) {
+ int finalI = i;
+ Callable callableTask = () -> {
+ var updatedArt = updatedArts.get(finalI);
+ Integer id = mArticoloGrigliaDao.getIdArticoloByGrigliaAndBarcodeAndCodMart(updatedArt.getIdGriglia(), updatedArt.getBarCode(), updatedArt.getCodMart());
+
+ if (id != null) {
+ updatedArt.setArticoloGrigliaId(id);
+ }
+
+ return updatedArt;
+ };
+
+ calls.add(callableTask);
+ }
+
+ List> futures = executor.invokeAll(calls, Long.MAX_VALUE, TimeUnit.MILLISECONDS);
+
+ for (Future future : futures) {
+ if (future.isDone()) {
+ codMarts.add(future.get().getCodMart());
+ if (future.get().getArticoloGrigliaId() == null) toInsert.add(future.get());
+ else toUpdate.add(future.get());
+ } else {
+ future.cancel(true);
+ }
+ }
+
+ var tmp = new HashMap();
+
+ tmp.put("toInsert", toInsert);
+ tmp.put("toUpdate", toUpdate);
+ tmp.put("codMarts", codMarts);
+
+ return tmp;
+ }
+
public void findArticoloByBarcodeAndGriglia(String barcode, int idGriglia, RunnableArgs onSuccess, RunnableArgs onFail) {
execute(() -> {
try {
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/OnListGeneralChangedCallback.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/OnListGeneralChangedCallback.java
index b8d387b1..014be5be 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/OnListGeneralChangedCallback.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/OnListGeneralChangedCallback.java
@@ -1,28 +1,28 @@
package it.integry.integrywmsnative.core.expansion;
-import androidx.databinding.ObservableArrayList;
import androidx.databinding.ObservableList;
+import androidx.databinding.ObservableList.OnListChangedCallback;
-public abstract class OnListGeneralChangedCallback extends ObservableList.OnListChangedCallback {
+public abstract class OnListGeneralChangedCallback extends OnListChangedCallback> {
@Override
- public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
+ public void onItemRangeChanged(ObservableList sender, int positionStart, int itemCount) {
onChanged(sender);
}
@Override
- public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
+ public void onItemRangeInserted(ObservableList sender, int positionStart, int itemCount) {
onChanged(sender);
}
@Override
- public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
+ public void onItemRangeMoved(ObservableList sender, int fromPosition, int toPosition, int itemCount) {
onChanged(sender);
}
@Override
- public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
+ public void onItemRangeRemoved(ObservableList sender, int positionStart, int itemCount) {
onChanged(sender);
}
diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java
index 41f2105c..c335508e 100644
--- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java
+++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/PVOrdiniAcquistoRESTConsumer.java
@@ -6,6 +6,7 @@ import com.annimon.stream.Stream;
import java.math.BigDecimal;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import javax.inject.Singleton;
@@ -41,32 +42,35 @@ public class PVOrdiniAcquistoRESTConsumer extends _BaseRESTConsumer {
PVOrdiniAcquistoRESTConsumerService ordiniARestService = RESTBuilder.getService(PVOrdiniAcquistoRESTConsumerService.class);
ordiniARestService
.getArticoliListino(codAlis)
- .enqueue(new Callback>() {
+ .enqueue(new Callback<>() {
@Override
public void onResponse(Call> call, Response> response) {
analyzeAnswer(response, "getArticoliListino", griglia -> {
UtilityThread.executeParallel(() -> {
+ var startTime = new Date().getTime();
+
List listaArticoli = new ArrayList<>();
+
Stream.of(griglia.getGrigliaAcquistiChild())
- .map(ArticoloDTO::getCodMart)
- .distinct()
- .withoutNulls()
- .forEach(art -> {
- List inList = Stream.of(griglia.getGrigliaAcquistiChild())
- .filter(x -> x.getCodMart().equalsIgnoreCase(art))
- .toList();
- if (inList.size() > 1) {
- for (ArticoloDTO articolo : inList) {
+ .groupBy(ArticoloDTO::getCodMart)
+ .forEach(entry -> {
+
+ if(entry.getValue().size() == 1) {
+ listaArticoli.add(entry.getValue().get(0));
+ } else {
+ for (ArticoloDTO articolo : entry.getValue()) {
if (!articolo.getBarCode().endsWith(articolo.getCodMart())) {
listaArticoli.add(articolo);
}
}
- } else {
- listaArticoli.add(inList.get(0));
}
+
});
+
griglia.setGrigliaAcquistiChild(listaArticoli);
+
+ Log.d("LOADING TIME 1", "MS: " + (new Date().getTime() - startTime));
onSuccess.run(griglia);
}, false);
}, onFailed);
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
index e5c792f3..24a065d6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditActivity.java
@@ -14,6 +14,7 @@ import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.annimon.stream.Stream;
+import com.ravikoradiya.liveadapter.LiveAdapter;
import java.math.BigDecimal;
import java.util.List;
@@ -21,6 +22,7 @@ import java.util.List;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
+import it.integry.integrywmsnative.BR;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
@@ -34,7 +36,6 @@ import it.integry.integrywmsnative.core.settings.SettingsManager;
import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView;
-import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListAdapter;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListModel;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
@@ -133,16 +134,20 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
}
private void initRecyclerView() {
- this.mViewModel.getArticoli().observe(this, updatedData -> {
- this.mArticoliMutableData.clear();
- this.mArticoliMutableData.addAll(convertDataModelToListModel(updatedData));
-// this.noItemsToPick.set(!isThereAnyItemToPick(updatedData));
- });
+// this.mViewModel.getArticoli().observe(this, updatedData -> {
+// this.mArticoliMutableData.clear();
+// this.mArticoliMutableData.addAll(convertDataModelToListModel(updatedData));
+//// this.noItemsToPick.set(!isThereAnyItemToPick(updatedData));
+// });
- var mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoliMutableData)
- .setOnItemClicked(this::selectAction);
+// var mAdapter = new OrdineAcquistoArtListAdapter(this, mArticoliMutableData)
+// .setOnItemClicked(this::selectAction);
- mBinding.articoliOrdineList.setAdapter(mAdapter);
+ var liveAdapter = new LiveAdapter(this.mViewModel.getArticoli(), this, BR.articolo)
+ .map(ArticoloOrdine.class, R.layout.fragment_pv_articoli_ordine_acquisto__list_single_item)
+ .into(mBinding.articoliOrdineList);
+
+// mBinding.articoliOrdineList.setAdapter(mAdapter);
mBinding.articoliOrdineList.setHasFixedSize(true);
mBinding.articoliOrdineList.setLayoutManager(new LinearLayoutManager(this));
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java
index cc5271e0..d81cd2f6 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditModule.java
@@ -22,7 +22,6 @@ public class PVOrdineAcquistoEditModule {
}
@Provides
- @Singleton
PVOrdineAcquistoEditViewModel providesPvOrdineAcquistoEditViewModel(OrdineRepository ordineRepository,
GrigliaRepository grigliaRepository,
ArticoliOrdineRepository articoliOrdineRepository,
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
index 51b25773..027e94ca 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordine_acquisto_edit/PVOrdineAcquistoEditViewModel.java
@@ -90,7 +90,7 @@ public class PVOrdineAcquistoEditViewModel {
var newList = this.mArticoli.getValue();
var alreadySavedItem = Stream.of(newList)
- .filter(x -> Objects.equals(x.getArticoloOrdineId(), articolo.getArticoloOrdineId()))
+ .filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
.findFirst();
if(alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java
index 051bd880..5c6e5aff 100644
--- a/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java
+++ b/app/src/main/java/it/integry/integrywmsnative/gest/pv_ordini_acquisto/helper/OrdineAcquistoPvHelper.java
@@ -40,7 +40,7 @@ public class OrdineAcquistoPvHelper {
updateGriglia(griglia, onSave, onFail);
}
- public void updateGriglia(Griglia griglia, RunnableArgs onSave, RunnableArgs onFail) {
+ public void updateGriglia(Griglia griglia, RunnableArgs onSaved, RunnableArgs onFail) {
PVOrdiniAcquistoRESTConsumer.getArticoliListinoStatic(griglia.getCodAlis(), dto -> {
mContext.runOnUiThread(() -> {
if (dto.getGrigliaAcquistiChild().size() <= 0) {
@@ -50,7 +50,13 @@ public class OrdineAcquistoPvHelper {
griglia.setDescrLisa(dto.getDescrLisa());
griglia.setDescrDepo(dto.getDescrDepo());
griglia.setCountArticoli(dto.getGrigliaAcquistiChild().size());
- mGrigliaRepository.saveGriglia(griglia, id -> saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSave, onFail), onFail);
+
+
+ mGrigliaRepository.saveGriglia(griglia, id -> {
+ saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, grigliaResult -> {
+ onSaved.run(grigliaResult);
+ }, onFail);
+ }, onFail);
});
}, onFail);
}
diff --git a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml
index c637ec46..0eafc37c 100644
--- a/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml
+++ b/app/src/main/res/layout/activity_pv_ordine_acquisto_edit.xml
@@ -155,7 +155,6 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="16dp"
- android:layout_marginBottom="92dp"
android:paddingStart="2dp"
android:paddingEnd="2dp"
android:clipToPadding="false"
@@ -163,7 +162,8 @@
android:scrollbars="vertical"
app:layout_constraintTop_toBottomOf="@id/header_content"
app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent" />
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintBottom_toBottomOf="parent"/>