Feedback implemented

master
saad.siddiq 2024-12-04 18:06:54 +05:00
parent 3d276199f4
commit f82d10ddea
18 changed files with 190 additions and 56 deletions

View File

@ -48,6 +48,7 @@ public class HomeActivity extends AppCompatActivity {
private final List<Fragment> fragmentList = new ArrayList<>();
//Button btnNext;
ImageView imgLogout;
ImageView img_back;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -64,6 +65,7 @@ public class HomeActivity extends AppCompatActivity {
Toast.makeText( this, "No Internet Connection", Toast.LENGTH_LONG ).show();
}
img_back = findViewById(R.id.img_back);
imgLogout = findViewById(R.id.img_logout);
imgLogout.setOnClickListener(new View.OnClickListener() {
@ -72,6 +74,18 @@ public class HomeActivity extends AppCompatActivity {
alertLogOut(HomeActivity.this);
}
});
img_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
getSupportFragmentManager().popBackStack(); // Go back to the previous fragment
} else {
finish();
}
}
});
//btnNext = findViewById(R.id.btn_next);
// Initialize fragments

View File

@ -18,6 +18,7 @@ import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@ -86,6 +87,9 @@ public class ItemStepsAdapter extends RecyclerView.Adapter<ItemStepsAdapter.Item
.into(holder.imageView);
}
else {
holder.imageView.setImageResource(R.drawable.image_picker);
}
currentItem.setStepId(position + 1);
switch (position) {
@ -141,6 +145,15 @@ public class ItemStepsAdapter extends RecyclerView.Adapter<ItemStepsAdapter.Item
}
});
holder.deleteImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (imageSelectionListener != null) {
imageSelectionListener.onDeleteImage(holder.getAdapterPosition()); // Notify the fragment
}
}
});
ScoreSpinnerAdapter scoreSpinnerAdapter = new ScoreSpinnerAdapter(context, dropdownOptions);
holder.scoreTextview.setAdapter(scoreSpinnerAdapter);
@ -169,6 +182,7 @@ public class ItemStepsAdapter extends RecyclerView.Adapter<ItemStepsAdapter.Item
AutoCompleteTextView scoreTextview;
EditText et_remarks;
ImageView imageView;
ImageButton deleteImage;
public ItemViewHolder(@NonNull View itemView) {
super(itemView);
@ -177,7 +191,7 @@ public class ItemStepsAdapter extends RecyclerView.Adapter<ItemStepsAdapter.Item
tvPercentage = itemView.findViewById(R.id.tv_percentage);
et_remarks = itemView.findViewById(R.id.et_remarks);
imageView = itemView.findViewById(R.id.img1);
deleteImage = itemView.findViewById(R.id.delete_image);
}
}

View File

@ -76,6 +76,7 @@ public class CheckingFragment extends Fragment implements EasyPermissions.Permis
List<ItemModel> itemModelList = new ArrayList<>();
ItemStepsAdapter adapter;
private int selectedPosition = -1;
private int deletePosition = -1;
// Activity Result Launcher for Gallery
private final ActivityResultLauncher<Intent> imagePickerLauncher =
@ -496,4 +497,16 @@ public class CheckingFragment extends Fragment implements EasyPermissions.Permis
})
.show();
}
@Override
public void onDeleteImage(int position) {
deletePosition = position;
if (itemModelList.get(deletePosition).getImageArrayList() != null && !itemModelList.get(deletePosition).getImageArrayList().isEmpty()) {
itemModelList.get(deletePosition).setImageArrayList(null);
itemModelList.get(deletePosition).setImageUri(null);
adapter.notifyItemChanged(deletePosition);
}
}
}

View File

@ -78,6 +78,7 @@ public class CuttingFragment extends Fragment implements EasyPermissions.Permiss
List<ItemModel> itemModelList = new ArrayList<>();
ItemStepsAdapter adapter;
private int selectedPosition = -1;
private int deletePosition = -1;
// Activity Result Launcher for Gallery
private final ActivityResultLauncher<Intent> imagePickerLauncher =
@ -559,6 +560,19 @@ public class CuttingFragment extends Fragment implements EasyPermissions.Permiss
}
@Override
public void onDeleteImage(int position) {
deletePosition = position;
Log.e("delete-position: ",""+deletePosition);
if (itemModelList.get(deletePosition).getImageArrayList() != null && !itemModelList.get(deletePosition).getImageArrayList().isEmpty()) {
itemModelList.get(deletePosition).setImageArrayList(null);
itemModelList.get(deletePosition).setImageUri(null);
adapter.notifyItemChanged(deletePosition);
}
}
public boolean isValidate(int rateCutting, int rateStitching, int rateChecking, int ratePacking, int rateSub) {
boolean returnValue = true;
String message = "";

View File

@ -22,6 +22,7 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.textfield.TextInputLayout;
import com.utopiaindustries.qualitycontrol.R;
import com.utopiaindustries.qualitycontrol.activities.HomeActivity;
import com.utopiaindustries.qualitycontrol.adapters.DepartmentItemAdapter;
@ -48,6 +49,7 @@ import java.util.stream.Collectors;
public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnItemClickListener {
AutoCompleteTextView locationSiteTextview, unitTextview, floorTextview;
TextInputLayout loc_input;
TextView txtCurrentDate;
LoginViewModel loginViewModel;
Button nextButton;
@ -84,9 +86,10 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
locationSiteTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
Log.e("locationSiteTextview: ","onItemClick: ");
LocationSite clickedItem = locationSiteList.get(position);
unitTextview.setText("Select Unit");
floorTextview.setText("Select Floor");
//unitTextview.setText("Select Unit");
//floorTextview.setText("Select Floor");
//viewModel.setLocation(String.valueOf(clickedItem.getId()));
Preference.setMyStringPref(Helper.project_file, Helper.locationSiteId, getActivity(), String.valueOf(clickedItem.getId()));
@ -152,7 +155,7 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
nextButton.setOnClickListener(v -> {
if (getActivity() instanceof HomeActivity) {
//viewModel.setFromViewModel(true);
// Preference.setMyStringPref(Helper.project_file, Helper.InProcess, getActivity(), "true");
// Preference.setMyStringPref(Helper.project_file, Helper.InProcess, getActivity(), "true");
String siteID = Preference.getMyStringPref(Helper.project_file, Helper.locationSiteId, getActivity());
String unitId = Preference.getMyStringPref(Helper.project_file, Helper.unitId, getActivity());
String departId = Preference.getMyStringPref(Helper.project_file, Helper.departmentId, getActivity());
@ -171,19 +174,19 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// Do nothing
Log.e("beforeTextChanged: ","------");
//Log.e("beforeTextChanged: ", "------");
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.e("onTextChanged: ","------");
//Log.e("onTextChanged: ", "------");
filterList(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
// Do nothing
Log.e("afterTextChanged: ","------");
//Log.e("afterTextChanged: ", "------");
}
});
@ -203,6 +206,8 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
txtCurrentDate = view.findViewById(R.id.txt_current_date);
locationSiteTextview = view.findViewById(R.id.location_textview);
loc_input = view.findViewById(R.id.loc_input);
unitTextview = view.findViewById(R.id.unit_textview);
floorTextview = view.findViewById(R.id.floor_textview);
nextButton = view.findViewById(R.id.btn_next);
@ -215,6 +220,9 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
loginViewModel = new ViewModelProvider(getActivity()).get(LoginViewModel.class);
locationSitesAdapter = new LocationSitesAdapter(getActivity(), locationSiteList);
locationSiteTextview.setAdapter(locationSitesAdapter);
loginViewModel.getLoadingState().observe(getActivity(), isLoading -> {
//Log.e("HomeFragment: ", "isLoading: ");
if (isLoading != null && isLoading) {
@ -272,6 +280,7 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
Helper.saveList(qcResponse.getLocationUnits(), Helper.homeUnit, getActivity());
locationUnitList.addAll(qcResponse.getLocationUnits());
}
Log.e("From-Service: ","****");
Preference.setMyStringPref(Helper.project_file, Helper.firstTimeApiCall, getActivity(), "true");
@ -285,13 +294,15 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
loginViewModel.getQualityControlData();
} else {
if (!Preference.getMyStringPref(Helper.project_file, Helper.departmentName, getActivity()).equalsIgnoreCase("default")) {
Log.e("From-Preference: ","****");
isFromPrevious = true;
/*if (!Preference.getMyStringPref(Helper.project_file, Helper.departmentName, getActivity()).equalsIgnoreCase("default")) {
searchEditText.setText(Preference.getMyStringPref(Helper.project_file, Helper.departmentName, getActivity()));
isFromPrevious = true;
locationSiteTextview.setText(Preference.getMyStringPref(Helper.project_file, Helper.locationSiteName, getActivity()));
unitTextview.setText(Preference.getMyStringPref(Helper.project_file, Helper.unitName, getActivity()));
floorTextview.setText(Preference.getMyStringPref(Helper.project_file, Helper.floorName, getActivity()));
}
}*/
departmentList.clear();
locationSiteList.clear();
@ -301,9 +312,7 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
//locationSiteList.addAll(viewModel.getLocationSiteList());
locationSiteList.addAll(Helper.getList(Helper.homeSite, getActivity(), LocationSite.class));
Log.e("locationSiteList-size: ", "" + locationSiteList.size());
locationSitesAdapter = new LocationSitesAdapter(getActivity(), locationSiteList);
locationSiteTextview.setAdapter(locationSitesAdapter);
locationSitesAdapter.notifyDataSetChanged();
//department list
//departmentList.addAll(viewModel.getDepartmentList());
@ -390,23 +399,30 @@ public class HomeFragment extends Fragment implements DepartmentItemAdapter.OnIt
boolean returnValue = true;
String message = "";
if (departId.isEmpty() || departId.equalsIgnoreCase("default")) {
message = "Please select Department";
if (floorId.isEmpty() || floorId.equalsIgnoreCase("default")
|| floorTextview.getText().toString().equalsIgnoreCase("Select Floor")
|| floorTextview.getText().toString().isEmpty()) {
message = "Please select Floor.";
returnValue = false;
}
if (siteId.isEmpty() || siteId.equalsIgnoreCase("default")) {
message = "Please select Location Site";
returnValue = false;
}
if (unitId.isEmpty() || unitId.equalsIgnoreCase("default")) {
if (unitId.isEmpty() || unitId.equalsIgnoreCase("default")
|| unitTextview.getText().toString().equalsIgnoreCase("Select Unit")
|| unitTextview.getText().toString().isEmpty()) {
message = "Please select Unit.";
returnValue = false;
}
if (floorId.isEmpty() || floorId.equalsIgnoreCase("default")) {
message = "Please select Floor.";
if (siteId.isEmpty() || siteId.equalsIgnoreCase("default")
|| locationSiteTextview.getText().toString().equalsIgnoreCase("")
|| locationSiteTextview.getText().toString().isEmpty()) {
message = "Please select Location Site";
returnValue = false;
}
if (departId.isEmpty() || departId.equalsIgnoreCase("default")
|| searchEditText.getText().toString().isEmpty()) {
message = "Please select Department";
returnValue = false;
}

View File

@ -77,6 +77,7 @@ public class PackingFragment extends Fragment implements EasyPermissions.Permiss
List<ItemModel> itemModelList = new ArrayList<>();
ItemStepsAdapter adapter;
private int selectedPosition = -1;
private int deletePosition = -1;
// Activity Result Launcher for Gallery
private final ActivityResultLauncher<Intent> imagePickerLauncher =
@ -497,4 +498,16 @@ public class PackingFragment extends Fragment implements EasyPermissions.Permiss
})
.show();
}
@Override
public void onDeleteImage(int position) {
deletePosition = position;
if (itemModelList.get(deletePosition).getImageArrayList() != null && !itemModelList.get(deletePosition).getImageArrayList().isEmpty()) {
itemModelList.get(deletePosition).setImageArrayList(null);
itemModelList.get(deletePosition).setImageUri(null);
adapter.notifyItemChanged(deletePosition);
}
}
}

View File

@ -79,6 +79,7 @@ public class StitchingFragment extends Fragment implements EasyPermissions.Permi
List<ItemModel> itemModelList = new ArrayList<>();
ItemStepsAdapter adapter;
private int selectedPosition = -1;
private int deletePosition = -1;
// Activity Result Launcher for Gallery
private final ActivityResultLauncher<Intent> imagePickerLauncher =
@ -499,4 +500,16 @@ public class StitchingFragment extends Fragment implements EasyPermissions.Permi
})
.show();
}
@Override
public void onDeleteImage(int position) {
deletePosition = position;
if (itemModelList.get(deletePosition).getImageArrayList() != null && !itemModelList.get(deletePosition).getImageArrayList().isEmpty()) {
itemModelList.get(deletePosition).setImageArrayList(null);
itemModelList.get(deletePosition).setImageUri(null);
adapter.notifyItemChanged(deletePosition);
}
}
}

View File

@ -82,6 +82,7 @@ public class SubStoreFragment extends Fragment implements EasyPermissions.Permis
ItemStepsAdapter adapter;
private int selectedPosition = -1;
HomeViewModel homeViewModel;
private int deletePosition = -1;
// Activity Result Launcher for Gallery
private final ActivityResultLauncher<Intent> imagePickerLauncher =
@ -271,7 +272,20 @@ public class SubStoreFragment extends Fragment implements EasyPermissions.Permis
tempList.addAll(Helper.getArrayList(Helper.listSubStore, getActivity()));
String generatedBy = Preference.getMyStringPref(Helper.project_file,Helper.logInUser,getActivity());
QualityControl qualityControl = new QualityControl(generatedBy, siteID, unitId, departId, floorId, tempList);
/*Log.e("AdapterData-1", "siteID: " + siteID +
", unitId: " + unitId +
", departId: " + departId +
", floorId: " + floorId);*/
QualityControl qualityControl = new QualityControl(generatedBy,siteID,unitId,departId,floorId,tempList);
/*Log.e("---------------","-----------------");
Log.e("AdapterData-2", "Generated-By: " + qualityControl.getGeneratedBy() +
", siteID: " + qualityControl.getSiteId() +
", unitId: " + qualityControl.getUnitId() +
", departId: " + qualityControl.getDepartmentId() +
", floorId: " + qualityControl.getFloorId());*/
homeViewModel.saveQualityControlData(qualityControl);
} else {
@ -587,6 +601,18 @@ public class SubStoreFragment extends Fragment implements EasyPermissions.Permis
.show();
}
@Override
public void onDeleteImage(int position) {
deletePosition = position;
if (itemModelList.get(deletePosition).getImageArrayList() != null && !itemModelList.get(deletePosition).getImageArrayList().isEmpty()) {
itemModelList.get(deletePosition).setImageArrayList(null);
itemModelList.get(deletePosition).setImageUri(null);
adapter.notifyItemChanged(deletePosition);
}
}
public void showProgressDialog() {
ProgressDialogFragment progressDialog = new ProgressDialogFragment();
progressDialog.setCancelable(false);

View File

@ -107,9 +107,9 @@ public class Helper {
SharedPreferences.Editor editor = prefs.edit();
editor.remove(key); // Remove the key-value pair
editor.apply(); // Apply changes
Log.e("SharedPreferences", "Key '" + key + "' removed successfully.");
///Log.e("SharedPreferences", "Key '" + key + "' removed successfully.");
} else {
Log.e("SharedPreferences", "Key '" + key + "' does not exist.");
//Log.e("SharedPreferences", "Key '" + key + "' does not exist.");
}
}

View File

@ -3,4 +3,6 @@ package com.utopiaindustries.qualitycontrol.utils;
public interface ImageSelectionListener {
void onSelectImage(int position);
void onDeleteImage(int position);
}

View File

@ -74,9 +74,9 @@ public class LoginViewModel extends ViewModel {
@Override
public void onResponse(@NonNull Call<Boolean> call, @NonNull Response<Boolean> response) {
isLoading.setValue(false);
Log.e("onResponse-1: ", "Successful: "+response);
//Log.e("onResponse-1: ", "Successful: "+response);
if (response.isSuccessful() && response.body() != null) {
Log.e("onResponse-2: ", "Successful: "+response);
//Log.e("onResponse-2: ", "Successful: "+response);
userLoginLiveData.setValue(response.body());
} else {
userLoginLiveData.setValue(false);

View File

@ -11,16 +11,13 @@ public class QualityControl {
private int floorId;
private List<ItemModel> qualityControlItemList;
public QualityControl(String generatedBy, int siteId, int floorId, int departmentId, int unitId, List<ItemModel> qualityControlItemList) {
public QualityControl(String generatedBy, int siteId, int unitId, int departmentId, int floorId, List<ItemModel> qualityControlItemList) {
this.generatedBy = generatedBy;
this.siteId = siteId;
this.qualityControlItemList = qualityControlItemList;
this.floorId = floorId;
this.departmentId = departmentId;
this.unitId = unitId;
}
public QualityControl() {
this.departmentId = departmentId;
this.floorId = floorId;
this.qualityControlItemList = qualityControlItemList;
}
public String getGeneratedBy() {
@ -70,21 +67,4 @@ public class QualityControl {
public void setQualityControlItemList(List<ItemModel> qualityControlItemList) {
this.qualityControlItemList = qualityControlItemList;
}
public void appendToQualityControlItemList(List<ItemModel> items) {
if (items != null) {
qualityControlItemList.addAll(items);
}
}
@Override
public String toString() {
return "QualityControl{" +
"siteId=" + siteId +
", unitId=" + unitId +
", departmentId=" + departmentId +
", floorId=" + floorId +
", qualityControlItemList=" + qualityControlItemList +
'}';
}
}

View File

@ -23,7 +23,7 @@
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="5S Application"
android:text="5S App"
android:textColor="@color/white"
android:textSize="@dimen/_15sdp"
app:layout_constraintBottom_toBottomOf="@+id/toolbar"
@ -61,6 +61,17 @@
android:text="Next" />-->
</LinearLayout>
<ImageView
android:id="@+id/img_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:layout_marginStart="10dp"
app:layout_constraintBottom_toBottomOf="@+id/toolbar"
app:layout_constraintStart_toStartOf="@+id/toolbar"
app:layout_constraintTop_toTopOf="@+id/toolbar"
app:srcCompat="@drawable/arrow_back" />
<ImageView
android:id="@+id/img_logout"
android:layout_width="wrap_content"

View File

@ -60,6 +60,7 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:passwordToggleEnabled="true"
android:layout_marginTop="5dp">
<EditText

View File

@ -48,13 +48,16 @@
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="5S Application"
android:layout_marginStart="30dp"
android:layout_marginBottom="10dp"
android:gravity="center"
android:padding="5dp"
android:text="5S App"
android:textColor="@color/theme_color"
android:textStyle="bold"
android:textSize="@dimen/_30sdp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

View File

@ -39,6 +39,7 @@
android:hint="Search Department"
android:padding="10dp"
android:layout_margin="5dp"
android:imeOptions="actionDone"
android:background="@drawable/et_border"
android:inputType="text" />
@ -80,6 +81,7 @@
android:textStyle="bold" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/loc_input"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@ -78,6 +78,7 @@
android:layout_marginEnd="10dp"
android:maxLines="1"
android:hint="Remarks"
android:imeOptions="actionDone"
android:layout_toEndOf="@+id/tv_percentage"
android:background="@drawable/et_border"
android:padding="5dp" />
@ -91,6 +92,17 @@
android:layout_toEndOf="@+id/et_remarks"
android:src="@drawable/image_picker" />
<ImageButton
android:id="@+id/delete_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerInParent="true"
android:layout_toEndOf="@+id/img1"
android:contentDescription="delete"
android:src="@drawable/ic_delete"
android:background="@null"
android:padding="5dp"/>
</RelativeLayout>
</HorizontalScrollView>

View File

@ -1,5 +1,5 @@
<resources>
<string name="app_name">5S Application</string>
<string name="app_name">5S App</string>
<string name="app_version">Version 1.0</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>