diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 01344a0..651e3d3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -85,7 +85,7 @@
PaperImageList = new ArrayList<>();
String docTypeId = "";
String docTypeTitle = "";
- private static final int CAMERA_REQUEST_PAPER = 101;
- private static final int GALLERY_REQUEST = 201;
- ImageView imgUpload, imgBack;
+
+ ImageView imgBack;
Button btnNext;
+ AutoCompleteTextView safetyTextview, targetAudienceTextview, locationTextview, subLocationTextView;
- // Activity Result Launcher for Gallery
- private final ActivityResultLauncher imagePickerLauncher =
- registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
- if (result.getResultCode() == RESULT_OK && result.getData() != null) {
- Uri selectedImage = result.getData().getData();
+ private ArrayList safetyTrainingArrayList = new ArrayList<>();
+ private ArrayList departmentArrayList = new ArrayList<>();
+ private ArrayList departmentArrayList_temp = new ArrayList<>();
- uriToByteArrayAsync(
- this,
- selectedImage,
- 100, // Target size in KB
- compressedImage -> {
- // Handle the compressed image here, e.g., display it
- runOnUiThread(() -> {
- /*DocumentTypeImageModel documentImage = new DocumentTypeImageModel(
- docTypeId,
- docTypeTitle,
- compressedImage
- );*/
+ private DepartmentAdapter departmentAdapter;
+ private SafetyTrainingAdapter safetyTrainingAdapter;
- //Log.e("doc-image: ",""+ documentImage);
+ private String safetyTrainingTopic = "";
+ private String targetAudience = "", location = "", subLocation = "";
+ EditText etNoOfEmployees;
- int position = PaperImageList.size();
- PaperImageList.add(compressedImage);
- imagePaperAdapter.notifyItemInserted(position);
- });
- },
- error -> {
- // Handle any errors
- runOnUiThread(() -> {
- Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
- });
- }
- );
- }
- else if (result.getResultCode() == RESULT_CANCELED) {
- Toast.makeText(this, "Gallery Selection Cancelled!", Toast.LENGTH_SHORT).show();
- }
- else {
- Toast.makeText(this, "Gallery Selection Cancelled!", Toast.LENGTH_SHORT).show();
- }
- });
+ private ArrayList locationArrayList_temp = new ArrayList<>();
+ private ArrayList locationArrayList = new ArrayList<>();
+ private BuildingsAdapter buildingAdapter;
- // Activity Result Launcher for Paper Camera
- private final ActivityResultLauncher paperCameraLauncher =
- registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
+ private ArrayList subLocationArrayList_temp = new ArrayList<>();
+ private ArrayList subLocationArrayList = new ArrayList<>();
+ private FloorsAdapter floorsAdapter;
- if (result.getResultCode() == RESULT_OK) {
- File imageFile = new File(paperFilePath);
- if (imageFile.exists()) {
-
- Bitmap originalBitmap = fixImageRotation(paperFilePath);
-
- //Bitmap timestampedBitmap = addTimestampToImage(originalBitmap);
-
- bitmapToByteArrayAsync(
- originalBitmap,
- 100, // Target size in KB
- imageBytes -> {
- this.runOnUiThread(() -> {
-
- /*DocumentTypeImageModel documentImage = new DocumentTypeImageModel(
- docTypeId,
- docTypeTitle,
- imageBytes
- );*/
-
- //Log.e("doc-image: ",""+ documentImage);
-
- int position = PaperImageList.size();
- PaperImageList.add(imageBytes);
- imagePaperAdapter.notifyItemInserted(position);
-
- });
- },
- error -> {
- error.printStackTrace();
- }
- );
-
- } else {
- Toast.makeText(this, "Image file not found!", Toast.LENGTH_SHORT).show();
- }
- }
- else if (result.getResultCode() == RESULT_CANCELED) {
- Toast.makeText(this, "Camera capture failed!", Toast.LENGTH_SHORT).show();
- }
- else {
- Toast.makeText(this, "Camera capture failed!", Toast.LENGTH_SHORT).show();
- }
- });
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -176,12 +118,7 @@ public class HseOneActivity extends AppCompatActivity implements EasyPermissions
initializeLayouts();
- imgUpload.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- alertForPictures(HseOneActivity.this);
- }
- });
+
imgBack.setOnClickListener(new View.OnClickListener() {
@Override
@@ -193,237 +130,126 @@ public class HseOneActivity extends AppCompatActivity implements EasyPermissions
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent intent = new Intent(HseOneActivity.this, HseTwoActivity.class);
- startActivity(intent);
+ if (isValidate()) {
+ Intent intent = new Intent(HseOneActivity.this, HseTwoActivity.class);
+ startActivity(intent);
+ }
+
+ }
+ });
+
+ safetyTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ safetyTrainingTopic = safetyTrainingArrayList.get(position).getTitle();
+ StorageManager.getInstance().getHseTrainingModel().get(0).setSafetyTopicId(safetyTrainingArrayList.get(position).getId());
+ }
+ });
+
+ targetAudienceTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ targetAudience = departmentArrayList.get(position).getTitle();
+ StorageManager.getInstance().getHseTrainingModel().get(0).setTargetAudienceId(departmentArrayList.get(position).getId());
+ }
+ });
+
+ locationTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ location = locationArrayList.get(position).getTitle();
+ StorageManager.getInstance().getHseTrainingModel().get(0).setLocationId(locationArrayList.get(position).getId());
+ }
+ });
+
+ subLocationTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ subLocation = subLocationArrayList.get(position).getTitle();
+ StorageManager.getInstance().getHseTrainingModel().get(0).setSubLocationId(subLocationArrayList.get(position).getId());
+ }
+ });
+
+ etNoOfEmployees.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (!s.toString().isEmpty()) {
+ StorageManager.getInstance().getHseTrainingModel().get(0).setEmployeeAttendance(Integer.parseInt(s.toString()));
+ }
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
}
});
}
private void initializeLayouts() {
- imgUpload = findViewById(R.id.img_upload);
imgBack = findViewById(R.id.img_back);
btnNext = findViewById(R.id.btn_next);
+ etNoOfEmployees = findViewById(R.id.et_no_of_employees);
- trainingPicRecyclerView = findViewById(R.id.tPicturesRecyclerView);
+ safetyTextview = findViewById(R.id.safety_textview);
+ targetAudienceTextview = findViewById(R.id.target_audience_textview);
- imagePaperAdapter = new PTWImageAdapter(PaperImageList, this, "");
- trainingPicRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
- trainingPicRecyclerView.setAdapter(imagePaperAdapter);
+ locationTextview = findViewById(R.id.location_textview);
+ subLocationTextView = findViewById(R.id.sub_location_textview);
- }
+ safetyTrainingArrayList.addAll(Helper.getList(Helper.hseSafetyTrainingTopics, this, HseSafetyTrainingTopic.class));
+ safetyTrainingAdapter = new SafetyTrainingAdapter(this, safetyTrainingArrayList);
+ safetyTextview.setAdapter(safetyTrainingAdapter);
- public void bitmapToByteArrayAsync(
- Bitmap bitmap,
- int targetSizeInKB,
- Consumer onSuccess,
- Consumer onError
- ) {
- new Thread(() -> {
- try {
- if (bitmap == null) {
- throw new IllegalArgumentException("Bitmap cannot be null.");
- }
+ departmentArrayList_temp.addAll(Helper.getList(Helper.hseDepartment, this, HseDepartment.class));
- int targetSizeInBytes = targetSizeInKB * 1024;
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- int minQuality = 10;
- int maxQuality = 100;
- int quality = maxQuality;
+ if (!departmentArrayList_temp.isEmpty()) {
- // Binary search for the best quality that meets the target size
- while (minQuality <= maxQuality) {
- byteArrayOutputStream.reset();
- bitmap.compress(Bitmap.CompressFormat.JPEG, quality, byteArrayOutputStream);
+ List filteredUnitItems = departmentArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
- int byteSize = byteArrayOutputStream.size();
- if (byteSize > targetSizeInBytes) {
- maxQuality = quality - 1;
- } else {
- minQuality = quality + 1;
- }
- quality = (minQuality + maxQuality) / 2;
- }
-
- onSuccess.accept(byteArrayOutputStream.toByteArray());
- } catch (Exception e) {
- onError.accept(e);
- }
- }).start();
- }
-
- public void uriToByteArrayAsync(
- Context context,
- Uri uri,
- int targetSizeInKB,
- Consumer onSuccess,
- Consumer onError
- ) {
- new Thread(() -> {
- try {
- int targetSizeInBytes = targetSizeInKB * 1024;
-
- // Load the image as a Bitmap without scaling
- Bitmap bitmap;
- try (InputStream inputStream = context.getContentResolver().openInputStream(uri)) {
- bitmap = BitmapFactory.decodeStream(inputStream);
- }
-
- if (bitmap == null) {
- throw new IOException("Failed to decode image from URI.");
- }
-
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- int minQuality = 10;
- int maxQuality = 100;
- int quality = maxQuality;
-
- // Binary search for the best quality that meets the target size
- while (minQuality <= maxQuality) {
- byteArrayOutputStream.reset();
- bitmap.compress(Bitmap.CompressFormat.JPEG, quality, byteArrayOutputStream);
-
- int byteSize = byteArrayOutputStream.size();
- if (byteSize > targetSizeInBytes) {
- maxQuality = quality - 1;
- } else {
- minQuality = quality + 1;
- }
- quality = (minQuality + maxQuality) / 2;
- }
-
- onSuccess.accept(byteArrayOutputStream.toByteArray());
- } catch (IOException e) {
- onError.accept(e);
- }
- }).start();
- }
-
- private Bitmap fixImageRotation(String imagePath) {
- Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
- try {
- ExifInterface exif = new ExifInterface(imagePath);
- int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
-
- int rotationAngle = 0;
- switch (orientation) {
- case ExifInterface.ORIENTATION_ROTATE_90:
- rotationAngle = 90;
- break;
- case ExifInterface.ORIENTATION_ROTATE_180:
- rotationAngle = 180;
- break;
- case ExifInterface.ORIENTATION_ROTATE_270:
- rotationAngle = 270;
- break;
- }
-
- if (rotationAngle != 0) {
- Matrix matrix = new Matrix();
- matrix.postRotate(rotationAngle);
- return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
- }
- } catch (IOException e) {
- e.printStackTrace();
+ departmentArrayList.clear();
+ departmentArrayList.addAll(filteredUnitItems);
+ departmentAdapter = new DepartmentAdapter(this, departmentArrayList);
+ targetAudienceTextview.setAdapter(departmentAdapter);
}
- return bitmap;
- }
- @SuppressLint("MissingInflatedId")
- public void alertForPictures(Context con) {
- ViewGroup viewGroup = findViewById(android.R.id.content);
+ locationArrayList_temp.addAll(Helper.getList(Helper.hseBuildings, this, HseBuilding.class));
- TextView dialogCameraBtn, dialogGalleryBtn;
+ //Location -- Building
+ if (!locationArrayList_temp.isEmpty()) {
- AlertDialog.Builder builder = new AlertDialog.Builder(con);
- View view1 = LayoutInflater.from(con).inflate(R.layout.custom_layout_for_image, viewGroup, false);
- builder.setCancelable(false);
- builder.setView(view1);
+ List filteredUnitItems = locationArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
- dialogCameraBtn = view1.findViewById(R.id.dialog_camera_btn);
- dialogGalleryBtn = view1.findViewById(R.id.dialog_gallery_btn);
-
- AlertDialog alertDialog = builder.create();
- alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
-
- dialogCameraBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
-
- alertDialog.dismiss();
- openCamera();
-
- }
- });
-
- dialogGalleryBtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
-
- alertDialog.dismiss();
- openGallery();
-
- }
- });
-
- alertDialog.show();
- }
-
- @AfterPermissionGranted(GALLERY_REQUEST)
- public void openGallery() {
- if (hasGalleryPermission()) {
- // Have permission, do the thing!
- Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
- // Start the Intent
- //startActivityForResult(galleryIntent, GALLERY_REQUEST);
- imagePickerLauncher.launch(galleryIntent);
- } else {
- // Ask for one permission
- String[] perms = {};
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES};
- } else {
- perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
-
- }
- EasyPermissions.requestPermissions(this, getString(R.string.rationale_gallery), GALLERY_REQUEST, perms);
+ locationArrayList.clear();
+ locationArrayList.addAll(filteredUnitItems);
+ buildingAdapter = new BuildingsAdapter(this, locationArrayList);
+ locationTextview.setAdapter(buildingAdapter);
}
- }
- @AfterPermissionGranted(CAMERA_REQUEST_PAPER)
- public void openCamera() {
- if (hasCameraPermission()) {
- try {
- Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- File photoFile = null;
- try {
- photoFile = createImageFile();
- } catch (IOException ex) {
- // Error occurred while creating the File
- }
+ subLocationArrayList_temp.addAll(Helper.getList(Helper.hseFloors, this, HseFloor.class));
- if (photoFile != null) {
+ //Sub Location -- floor
+ if (!subLocationArrayList_temp.isEmpty()) {
- Uri photoURI = FileProvider.getUriForFile(this,
- getPackageName(),
- photoFile);
- takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
- //startActivityForResult(takePictureIntent, CAMERA_REQUEST);
- paperCameraLauncher.launch(takePictureIntent);
- }
- } catch (ActivityNotFoundException e) {
- Toast.makeText(this, "Camera app not found", Toast.LENGTH_SHORT).show();
- }
- } else {
- // Ask for one permission
- String[] perms = {};
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.CAMERA};
- } else {
- perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
- }
+ List filteredUnitItems = subLocationArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
- EasyPermissions.requestPermissions(this, getString(R.string.rationale_camera), CAMERA_REQUEST_PAPER, perms);
+ subLocationArrayList.clear();
+ subLocationArrayList.addAll(filteredUnitItems);
+ floorsAdapter = new FloorsAdapter(this, subLocationArrayList);
+ subLocationTextView.setAdapter(floorsAdapter);
}
+
}
/*@AfterPermissionGranted(CAMERA_REQUEST_ITEM)
@@ -462,76 +288,41 @@ public class HseOneActivity extends AppCompatActivity implements EasyPermissions
}
}*/
- @Override
- public void onRequestPermissionsResult(int requestCode,
- @NonNull String[] permissions,
- @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- // EasyPermissions handles the request result.
- EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
- }
- @Override
- public void onPermissionsGranted(int requestCode, @NonNull List perms) {
-
- }
-
- @Override
- public void onPermissionsDenied(int requestCode, @NonNull List perms) {
- if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
- new AppSettingsDialog.Builder(this).build().show();
- }
- }
-
- private boolean hasCameraPermission() {
- String[] perms = {};
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.CAMERA};
- } else {
- perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+ if (subLocation.isEmpty()) {
+ message = "Please select floor.";
+ returnValue = false;
}
- //Log.e("perms: ",""+perms);
- return EasyPermissions.hasPermissions(this, perms);
- }
-
- private boolean hasGalleryPermission() {
- String[] perms = {};
-
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES};
- } else {
- perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
+ if (location.isEmpty()) {
+ message = "Please select building.";
+ returnValue = false;
}
- return EasyPermissions.hasPermissions(this, perms);
- }
+ if (targetAudience.isEmpty()) {
+ message = "Please select department.";
+ returnValue = false;
+ }
- private File createImageFile() throws IOException {
- // Create an image file name
- String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- String imageFileName = "JPEG_" + timeStamp + "_";
- File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
- File image = File.createTempFile(
- imageFileName, //prefix
- ".jpg", //suffix
- storageDir //directory
- );
+ if (etNoOfEmployees.getText().toString().isEmpty()) {
+ message = "Please enter No of Employees.";
+ returnValue = false;
+ }
- paperFilePath = image.getAbsolutePath();
+ if (safetyTrainingTopic.isEmpty()) {
+ message = "Please select Safety Training Topic.";
+ returnValue = false;
+ }
- return image;
- }
-
- @Override
- public void onRationaleAccepted(int requestCode) {
-
- }
-
- @Override
- public void onRationaleDenied(int requestCode) {
+ if (!returnValue) {
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
+ }
+ return returnValue;
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/HSETrainingForms/HseTwoActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/HSETrainingForms/HseTwoActivity.java
index bcfbd96..0cb12d1 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/HSETrainingForms/HseTwoActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/HSETrainingForms/HseTwoActivity.java
@@ -1,24 +1,186 @@
package com.utopiaindustries.hseobservationsapp.activities.HSETrainingForms;
+import android.Manifest;
+import android.annotation.SuppressLint;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Color;
+import android.graphics.Matrix;
+import android.graphics.drawable.ColorDrawable;
+import android.media.ExifInterface;
+import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
+import android.os.Environment;
+import android.provider.MediaStore;
+import android.text.Editable;
+import android.text.InputType;
+import android.text.TextWatcher;
+import android.util.Log;
+import android.view.LayoutInflater;
import android.view.View;
+import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.content.FileProvider;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.DashboardActivity;
import com.utopiaindustries.hseobservationsapp.activities.PermitToWorkForms.PermitTwoActivity;
+import com.utopiaindustries.hseobservationsapp.adapters.PTWImageAdapter;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseActivity;
+import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseTrainingModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ReportActivityModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
+import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
-public class HseTwoActivity extends AppCompatActivity {
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.function.Consumer;
+
+import pub.devrel.easypermissions.AfterPermissionGranted;
+import pub.devrel.easypermissions.AppSettingsDialog;
+import pub.devrel.easypermissions.EasyPermissions;
+
+public class HseTwoActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,
+ EasyPermissions.RationaleCallbacks{
Button btnSubmit;
+ EditText etTrainingSession, etDescription;
+ LoginViewModel loginViewModel;
+ ImageView imgBack;
+
+ RecyclerView trainingPicRecyclerView;
+ PTWImageAdapter imagePaperAdapter;
+ String paperFilePath = "no_pic";
+ ArrayList imageList = new ArrayList<>();
+
+ private static final int CAMERA_REQUEST_PAPER = 1011;
+ private static final int GALLERY_REQUEST = 2011;
+
+ ImageView imgUpload;
+
+ // Activity Result Launcher for Gallery
+ private final ActivityResultLauncher imagePickerLauncher =
+ registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
+ if (result.getResultCode() == RESULT_OK && result.getData() != null) {
+ Uri selectedImage = result.getData().getData();
+
+ uriToByteArrayAsync(
+ this,
+ selectedImage,
+ 100, // Target size in KB
+ compressedImage -> {
+ // Handle the compressed image here, e.g., display it
+ runOnUiThread(() -> {
+ /*DocumentTypeImageModel documentImage = new DocumentTypeImageModel(
+ docTypeId,
+ docTypeTitle,
+ compressedImage
+ );*/
+
+ //Log.e("doc-image: ",""+ documentImage);
+
+ int position = imageList.size();
+ imageList.add(compressedImage);
+ imagePaperAdapter.notifyItemInserted(position);
+ });
+ },
+ error -> {
+ // Handle any errors
+ runOnUiThread(() -> {
+ Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ });
+ }
+ );
+ }
+ else if (result.getResultCode() == RESULT_CANCELED) {
+ Toast.makeText(this, "Gallery Selection Cancelled!", Toast.LENGTH_SHORT).show();
+ }
+ else {
+ Toast.makeText(this, "Gallery Selection Cancelled!", Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ // Activity Result Launcher for Paper Camera
+ private final ActivityResultLauncher paperCameraLauncher =
+ registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
+
+ if (result.getResultCode() == RESULT_OK) {
+
+ File imageFile = new File(paperFilePath);
+ if (imageFile.exists()) {
+
+ Bitmap originalBitmap = fixImageRotation(paperFilePath);
+
+ //Bitmap timestampedBitmap = addTimestampToImage(originalBitmap);
+
+ bitmapToByteArrayAsync(
+ originalBitmap,
+ 100, // Target size in KB
+ imageBytes -> {
+ this.runOnUiThread(() -> {
+
+ /*DocumentTypeImageModel documentImage = new DocumentTypeImageModel(
+ docTypeId,
+ docTypeTitle,
+ imageBytes
+ );*/
+
+ //Log.e("doc-image: ",""+ documentImage);
+
+ int position = imageList.size();
+ imageList.add(imageBytes);
+ imagePaperAdapter.notifyItemInserted(position);
+
+ });
+ },
+ error -> {
+ error.printStackTrace();
+ }
+ );
+
+ } else {
+ Toast.makeText(this, "Image file not found!", Toast.LENGTH_SHORT).show();
+ }
+ }
+ else if (result.getResultCode() == RESULT_CANCELED) {
+ Toast.makeText(this, "Camera capture failed!", Toast.LENGTH_SHORT).show();
+ }
+ else {
+ Toast.makeText(this, "Camera capture failed!", Toast.LENGTH_SHORT).show();
+ }
+ });
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -33,10 +195,109 @@ public class HseTwoActivity extends AppCompatActivity {
initializeLayouts();
+ imgBack.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ imgUpload.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ alertForPictures(HseTwoActivity.this);
+ }
+ });
+
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Toast.makeText(HseTwoActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
+ /*Toast.makeText(HseTwoActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(HseTwoActivity.this, DashboardActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);*/
+ if (isValidate()){
+ StorageManager.getInstance().getHseTrainingModel().get(0).setPictures(imageList);
+ alertReportSubmit(HseTwoActivity.this);
+ }
+
+ }
+ });
+
+ etTrainingSession.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ if (!s.toString().isEmpty()) {
+ StorageManager.getInstance().getHseTrainingModel().get(0).setTrainingMinutes(Double.parseDouble(s.toString()));
+ }
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+ });
+
+ etDescription.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+ StorageManager.getInstance().getHseTrainingModel().get(0).setDescription(s.toString());
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+
+ }
+ });
+ }
+
+ private void initializeLayouts() {
+
+ btnSubmit = findViewById(R.id.btn_submit);
+ etTrainingSession = findViewById(R.id.et_training_session);
+ imgBack = findViewById(R.id.img_back);
+ imgUpload = findViewById(R.id.img_upload);
+
+ etDescription = findViewById(R.id.et_description);
+ etDescription.setImeOptions(EditorInfo.IME_ACTION_DONE);
+ etDescription.setRawInputType(InputType.TYPE_CLASS_TEXT);
+
+ trainingPicRecyclerView = findViewById(R.id.tPicturesRecyclerView);
+
+ imagePaperAdapter = new PTWImageAdapter(imageList, this, "");
+ trainingPicRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
+ trainingPicRecyclerView.setAdapter(imagePaperAdapter);
+
+ loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);
+
+ loginViewModel.getLoadingState().observe(this, isLoading -> {
+
+ if (isLoading != null && isLoading) {
+ showProgressDialog();
+ } else {
+ dismissProgressDialog();
+ }
+ });
+
+ loginViewModel.getErrorMessage().observe(this, errorResponse -> {
+ Toast.makeText(this, errorResponse, Toast.LENGTH_SHORT).show();
+ });
+
+ loginViewModel.getUserSaveLiveData().observe(this, hseSaveResponse -> {
+ if (hseSaveResponse != null && hseSaveResponse.getStatus().equals("success")) {
+ Toast.makeText(this, "Reported Submitted", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(HseTwoActivity.this, DashboardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -46,8 +307,381 @@ public class HseTwoActivity extends AppCompatActivity {
});
}
- private void initializeLayouts() {
+ public void alertReportSubmit(Context con) {
+ ViewGroup viewGroup = findViewById(android.R.id.content);
+
+ TextView dialogOkBtn, dialogCancelBtn;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(con);
+ View view1 = LayoutInflater.from(con).inflate(R.layout.custom_layout_for_report_submission, viewGroup, false);
+ builder.setCancelable(false);
+ builder.setView(view1);
+
+ dialogOkBtn = view1.findViewById(R.id.dialogOkBtn);
+ dialogCancelBtn = view1.findViewById(R.id.dialogCancelBtn);
+
+ AlertDialog alertDialog = builder.create();
+ alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ dialogOkBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+
+ List reportList = StorageManager.getInstance().getHseTrainingModel();
+ HseReportRequest hseTrainingRequest = new HseReportRequest<>();
+ hseTrainingRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ hseTrainingRequest.setUserId(StorageManager.getInstance().getUserId());
+ hseTrainingRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ hseTrainingRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ hseTrainingRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ hseTrainingRequest.setShift(StorageManager.getInstance().getShift());
+ hseTrainingRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ hseTrainingRequest.setReportData(reportList);
+
+ Gson gson = new GsonBuilder().setPrettyPrinting().create();
+ String jsonRequest = gson.toJson(hseTrainingRequest);
+ Log.e("RequestModel JSON", jsonRequest);
+
+ loginViewModel.saveHSEData(hseTrainingRequest);
+
+
+ }
+ });
+
+ dialogCancelBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+ //Toast.makeText(con, "Cancel", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+
+ alertDialog.show();
+ }
+
+ public void showProgressDialog() {
+ ProgressDialogFragment progressDialog = new ProgressDialogFragment();
+ progressDialog.setCancelable(false);
+ progressDialog.show(getSupportFragmentManager(), "progressDialog");
+ }
+
+ public void dismissProgressDialog() {
+ ProgressDialogFragment progressDialog = (ProgressDialogFragment)
+ getSupportFragmentManager().findFragmentByTag("progressDialog");
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (etDescription.getText().toString().isEmpty()) {
+ message = "Please enter Description";
+ returnValue = false;
+ }
+
+ if (etTrainingSession.getText().toString().isEmpty()) {
+ message = "Please enter Minutes of Session.";
+ returnValue = false;
+ }
+
+ if (!returnValue) {
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
+ }
+
+ return returnValue;
+ }
+
+ public void bitmapToByteArrayAsync(
+ Bitmap bitmap,
+ int targetSizeInKB,
+ Consumer onSuccess,
+ Consumer onError
+ ) {
+ new Thread(() -> {
+ try {
+ if (bitmap == null) {
+ throw new IllegalArgumentException("Bitmap cannot be null.");
+ }
+
+ int targetSizeInBytes = targetSizeInKB * 1024;
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ int minQuality = 10;
+ int maxQuality = 100;
+ int quality = maxQuality;
+
+ // Binary search for the best quality that meets the target size
+ while (minQuality <= maxQuality) {
+ byteArrayOutputStream.reset();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, quality, byteArrayOutputStream);
+
+ int byteSize = byteArrayOutputStream.size();
+ if (byteSize > targetSizeInBytes) {
+ maxQuality = quality - 1;
+ } else {
+ minQuality = quality + 1;
+ }
+ quality = (minQuality + maxQuality) / 2;
+ }
+
+ onSuccess.accept(byteArrayOutputStream.toByteArray());
+ } catch (Exception e) {
+ onError.accept(e);
+ }
+ }).start();
+ }
+
+ public void uriToByteArrayAsync(
+ Context context,
+ Uri uri,
+ int targetSizeInKB,
+ Consumer onSuccess,
+ Consumer onError
+ ) {
+ new Thread(() -> {
+ try {
+ int targetSizeInBytes = targetSizeInKB * 1024;
+
+ // Load the image as a Bitmap without scaling
+ Bitmap bitmap;
+ try (InputStream inputStream = context.getContentResolver().openInputStream(uri)) {
+ bitmap = BitmapFactory.decodeStream(inputStream);
+ }
+
+ if (bitmap == null) {
+ throw new IOException("Failed to decode image from URI.");
+ }
+
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ int minQuality = 10;
+ int maxQuality = 100;
+ int quality = maxQuality;
+
+ // Binary search for the best quality that meets the target size
+ while (minQuality <= maxQuality) {
+ byteArrayOutputStream.reset();
+ bitmap.compress(Bitmap.CompressFormat.JPEG, quality, byteArrayOutputStream);
+
+ int byteSize = byteArrayOutputStream.size();
+ if (byteSize > targetSizeInBytes) {
+ maxQuality = quality - 1;
+ } else {
+ minQuality = quality + 1;
+ }
+ quality = (minQuality + maxQuality) / 2;
+ }
+
+ onSuccess.accept(byteArrayOutputStream.toByteArray());
+ } catch (IOException e) {
+ onError.accept(e);
+ }
+ }).start();
+ }
+
+ private Bitmap fixImageRotation(String imagePath) {
+ Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
+ try {
+ ExifInterface exif = new ExifInterface(imagePath);
+ int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);
+
+ int rotationAngle = 0;
+ switch (orientation) {
+ case ExifInterface.ORIENTATION_ROTATE_90:
+ rotationAngle = 90;
+ break;
+ case ExifInterface.ORIENTATION_ROTATE_180:
+ rotationAngle = 180;
+ break;
+ case ExifInterface.ORIENTATION_ROTATE_270:
+ rotationAngle = 270;
+ break;
+ }
+
+ if (rotationAngle != 0) {
+ Matrix matrix = new Matrix();
+ matrix.postRotate(rotationAngle);
+ return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return bitmap;
+ }
+
+ @SuppressLint("MissingInflatedId")
+ public void alertForPictures(Context con) {
+ ViewGroup viewGroup = findViewById(android.R.id.content);
+
+ TextView dialogCameraBtn, dialogGalleryBtn;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(con);
+ View view1 = LayoutInflater.from(con).inflate(R.layout.custom_layout_for_image, viewGroup, false);
+ builder.setCancelable(false);
+ builder.setView(view1);
+
+ dialogCameraBtn = view1.findViewById(R.id.dialog_camera_btn);
+ dialogGalleryBtn = view1.findViewById(R.id.dialog_gallery_btn);
+
+ AlertDialog alertDialog = builder.create();
+ alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ dialogCameraBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+ openCamera();
+
+ }
+ });
+
+ dialogGalleryBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+ openGallery();
+
+ }
+ });
+
+ alertDialog.show();
+ }
+
+ @AfterPermissionGranted(GALLERY_REQUEST)
+ public void openGallery() {
+ if (hasGalleryPermission()) {
+ // Have permission, do the thing!
+ Intent galleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
+ // Start the Intent
+ //startActivityForResult(galleryIntent, GALLERY_REQUEST);
+ imagePickerLauncher.launch(galleryIntent);
+ } else {
+ // Ask for one permission
+ String[] perms = {};
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES};
+ } else {
+ perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
+
+ }
+ EasyPermissions.requestPermissions(this, getString(R.string.rationale_gallery), GALLERY_REQUEST, perms);
+ }
+ }
+
+ @AfterPermissionGranted(CAMERA_REQUEST_PAPER)
+ public void openCamera() {
+ if (hasCameraPermission()) {
+ try {
+ Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ File photoFile = null;
+ try {
+ photoFile = createImageFile();
+ } catch (IOException ex) {
+ // Error occurred while creating the File
+ }
+
+ if (photoFile != null) {
+
+ Uri photoURI = FileProvider.getUriForFile(this,
+ getPackageName(),
+ photoFile);
+ takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
+ //startActivityForResult(takePictureIntent, CAMERA_REQUEST);
+ paperCameraLauncher.launch(takePictureIntent);
+ }
+ } catch (ActivityNotFoundException e) {
+ Toast.makeText(this, "Camera app not found", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ // Ask for one permission
+ String[] perms = {};
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.CAMERA};
+ } else {
+ perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
+ }
+
+ EasyPermissions.requestPermissions(this, getString(R.string.rationale_camera), CAMERA_REQUEST_PAPER, perms);
+ }
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode,
+ @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ // EasyPermissions handles the request result.
+ EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
+ }
+
+ @Override
+ public void onPermissionsGranted(int requestCode, @NonNull List perms) {
+
+ }
+
+ @Override
+ public void onPermissionsDenied(int requestCode, @NonNull List perms) {
+ if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
+ new AppSettingsDialog.Builder(this).build().show();
+ }
+ }
+
+ private boolean hasCameraPermission() {
+ String[] perms = {};
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.CAMERA};
+ } else {
+ perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA};
+
+ }
+
+ //Log.e("perms: ",""+perms);
+ return EasyPermissions.hasPermissions(this, perms);
+ }
+
+ private boolean hasGalleryPermission() {
+ String[] perms = {};
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ perms = new String[]{Manifest.permission.READ_MEDIA_IMAGES};
+ } else {
+ perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
+ }
+
+ return EasyPermissions.hasPermissions(this, perms);
+ }
+
+ private File createImageFile() throws IOException {
+ // Create an image file name
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
+ String imageFileName = "JPEG_" + timeStamp + "_";
+ File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
+ File image = File.createTempFile(
+ imageFileName, //prefix
+ ".jpg", //suffix
+ storageDir //directory
+ );
+
+ paperFilePath = image.getAbsolutePath();
+
+ return image;
+ }
+
+ @Override
+ public void onRationaleAccepted(int requestCode) {
+
+ }
+
+ @Override
+ public void onRationaleDenied(int requestCode) {
- btnSubmit = findViewById(R.id.btn_submit);
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationOneActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationOneActivity.java
index a2c4ec0..200a024 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationOneActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationOneActivity.java
@@ -17,9 +17,13 @@ import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.utopiaindustries.hseobservationsapp.R;
+import com.utopiaindustries.hseobservationsapp.adapters.BuildingsAdapter;
+import com.utopiaindustries.hseobservationsapp.adapters.FloorsAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.ObservationClassAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.ObservationSubClassAdapter;
import com.utopiaindustries.hseobservationsapp.helper.Helper;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseBuilding;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseFloor;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseObservationClass;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseObservationSubClass;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
@@ -31,7 +35,7 @@ import java.util.stream.Collectors;
public class ObservationOneActivity extends AppCompatActivity {
- private AutoCompleteTextView observationTextview, observationSubTextview;
+ private AutoCompleteTextView observationTextview, observationSubTextview, buildingTextview, floorTextview;
private ObservationClassAdapter observationClassAdapter;
private ObservationSubClassAdapter observationSubClassAdapter;
@@ -40,11 +44,19 @@ public class ObservationOneActivity extends AppCompatActivity {
private ArrayList obSubClassArrayList_temp = new ArrayList<>();
private ArrayList obSubClassArrayList = new ArrayList<>();
+ private ArrayList hseBuildingArrayList_temp = new ArrayList<>();
+ private ArrayList hseBuildingArrayList = new ArrayList<>();
+
+ private ArrayList hseFloorArrayList_temp = new ArrayList<>();
+ private ArrayList hseFloorArrayList = new ArrayList<>();
+
private Button btnNext;
ImageView imgBack;
- String observationClass = "", observationSubClass = "";
+ String observationClass = "", observationSubClass = "", building = "", floor = "";
int observationClassId = 0, observationSubClassId = 0;
+ private BuildingsAdapter buildingAdapter;
+ private FloorsAdapter floorsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -92,6 +104,7 @@ public class ObservationOneActivity extends AppCompatActivity {
HseObservationClass clickedItem = obClassArrayList.get(position);
StorageManager.getInstance().getObservationsModel().get(0).setObservationClassId(clickedItem.getId());
+ StorageManager.getInstance().getObservationsModel().get(0).setHseObservationName(observationClass);
observationSubTextview.setText(null);
@@ -116,7 +129,28 @@ public class ObservationOneActivity extends AppCompatActivity {
public void onItemClick(AdapterView> parent, View view, int position, long id) {
// Perform action when shiftTextview item is clicked
//Toast.makeText(ObservationOneActivity.this, "Item clicked: " + obSubClassArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+ observationSubClass = obSubClassArrayList.get(position).getTitle();
StorageManager.getInstance().getObservationsModel().get(0).setObservationSubClassId(obSubClassArrayList.get(position).getId());
+ StorageManager.getInstance().getObservationsModel().get(0).setHseObservationSubClassName(observationSubClass);
+ }
+ });
+
+ buildingTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ building = hseBuildingArrayList.get(position).getTitle();
+ StorageManager.getInstance().getObservationsModel().get(0).setBuildingId(hseBuildingArrayList.get(position).getId());
+ StorageManager.getInstance().getObservationsModel().get(0).setBuildingName(hseBuildingArrayList.get(position).getTitle());
+
+ }
+ });
+
+ floorTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ floor = hseFloorArrayList.get(position).getTitle();
+ StorageManager.getInstance().getObservationsModel().get(0).setFloorId(hseFloorArrayList.get(position).getId());
+ StorageManager.getInstance().getObservationsModel().get(0).setFloorName(hseFloorArrayList.get(position).getTitle());
}
});
}
@@ -124,6 +158,8 @@ public class ObservationOneActivity extends AppCompatActivity {
public void initializeLayout() {
observationTextview = findViewById(R.id.observation_textview);
observationSubTextview = findViewById(R.id.observation_sub_textview);
+ buildingTextview = findViewById(R.id.building_textview);
+ floorTextview = findViewById(R.id.floor_textview);
btnNext = findViewById(R.id.btn_next);
imgBack = findViewById(R.id.img_back);
@@ -133,6 +169,35 @@ public class ObservationOneActivity extends AppCompatActivity {
observationClassAdapter = new ObservationClassAdapter(this, obClassArrayList);
observationTextview.setAdapter(observationClassAdapter);
+ hseBuildingArrayList_temp.addAll(Helper.getList(Helper.hseBuildings, this, HseBuilding.class));
+ hseFloorArrayList_temp.addAll(Helper.getList(Helper.hseFloors, this, HseFloor.class));
+
+ //Location -- Building
+ if (!hseBuildingArrayList_temp.isEmpty()) {
+
+ List filteredUnitItems = hseBuildingArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
+
+ hseBuildingArrayList.clear();
+ hseBuildingArrayList.addAll(filteredUnitItems);
+ buildingAdapter = new BuildingsAdapter(this, hseBuildingArrayList);
+ buildingTextview.setAdapter(buildingAdapter);
+ }
+
+ //Sub Location -- floor
+ if (!hseFloorArrayList_temp.isEmpty()) {
+
+ List filteredUnitItems = hseFloorArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
+
+ hseFloorArrayList.clear();
+ hseFloorArrayList.addAll(filteredUnitItems);
+ floorsAdapter = new FloorsAdapter(this, hseFloorArrayList);
+ floorTextview.setAdapter(floorsAdapter);
+ }
+
//observation sub class items
//for Unsafe
//for condition
@@ -145,6 +210,16 @@ public class ObservationOneActivity extends AppCompatActivity {
boolean returnValue = true;
String message = "";
+ if (floor.isEmpty()) {
+ message = "Please select floor.";
+ returnValue = false;
+ }
+
+ if (building.isEmpty()) {
+ message = "Please select building.";
+ returnValue = false;
+ }
+
if (observationSubClass.isEmpty()) {
message = "Please select observation sub class.";
returnValue = false;
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationThreeActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationThreeActivity.java
index 944f444..d62e024 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationThreeActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationThreeActivity.java
@@ -33,6 +33,8 @@ import com.google.gson.GsonBuilder;
import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.DashboardActivity;
import com.utopiaindustries.hseobservationsapp.utils.HSERequestModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ObservationModel;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
@@ -40,6 +42,7 @@ import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
+import java.util.List;
public class ObservationThreeActivity extends AppCompatActivity {
@@ -48,6 +51,7 @@ public class ObservationThreeActivity extends AppCompatActivity {
ImageView imgBack;
Button btnSubmit, btnDraft;
EditText etDescription;
+ String obStatus = "";
LoginViewModel loginViewModel;
@@ -92,8 +96,10 @@ public class ObservationThreeActivity extends AppCompatActivity {
{
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.rb_open) {
+ obStatus = "true";
StorageManager.getInstance().getObservationsModel().get(0).setObservationStatus(true);
} else if (checkedId == R.id.rb_closed) {
+ obStatus = "false";
StorageManager.getInstance().getObservationsModel().get(0).setObservationStatus(false);
}
}
@@ -102,14 +108,9 @@ public class ObservationThreeActivity extends AppCompatActivity {
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
- alertReportSubmit(ObservationThreeActivity.this);
- /*Toast.makeText(ObservationThreeActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
- Intent intent = new Intent(ObservationThreeActivity.this, DashboardActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);*/
+ if (isValidate()) {
+ alertReportSubmit(ObservationThreeActivity.this);
+ }
}
});
@@ -181,22 +182,22 @@ public class ObservationThreeActivity extends AppCompatActivity {
alertDialog.dismiss();
- // byte[] reportBytes = convertReportToByteArray();
- /*HSERequestModel requestModel = new HSERequestModel();
- requestModel.setSite_id(StorageManager.getInstance().getSite_id());
- requestModel.setSupervisorId(StorageManager.getInstance().getSupervisorId());
- requestModel.setObservation_date(StorageManager.getInstance().getObservation_date());
- requestModel.setShift(StorageManager.getInstance().getShift());
- requestModel.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
- requestModel.setObservationModel(StorageManager.getInstance().getObservationsModel());*/
+ List observationList = StorageManager.getInstance().getObservationsModel();
+ HseReportRequest observationRequest = new HseReportRequest<>();
+ observationRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ observationRequest.setUserId(StorageManager.getInstance().getUserId());
+ observationRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ observationRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ observationRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ observationRequest.setShift(StorageManager.getInstance().getShift());
+ observationRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ observationRequest.setReportData(observationList);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String jsonRequest = gson.toJson(StorageManager.getInstance());
+ String jsonRequest = gson.toJson(observationRequest);
Log.e("RequestModel JSON", jsonRequest);
- //loginViewModel.saveHSEData(requestModel);
-
-
+ loginViewModel.saveHSEData(observationRequest);
}
});
@@ -254,4 +255,25 @@ public class ObservationThreeActivity extends AppCompatActivity {
progressDialog.dismiss();
}
}
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (etDescription.getText().toString().isEmpty()) {
+ message = "Please enter description.";
+ returnValue = false;
+ }
+
+ if (obStatus.isEmpty()) {
+ message = "Please select Status.";
+ returnValue = false;
+ }
+
+ if (!returnValue) {
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
+ }
+
+ return returnValue;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/OtherHSEActivityForms/OtherHseActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/OtherHSEActivityForms/OtherHseActivity.java
index d505b9d..319e451 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/OtherHSEActivityForms/OtherHseActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/OtherHSEActivityForms/OtherHseActivity.java
@@ -33,9 +33,14 @@ import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.DashboardActivity;
import com.utopiaindustries.hseobservationsapp.utils.HSERequestModel;
import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ObservationModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ReportActivityModel;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
+import java.util.List;
+
public class OtherHseActivity extends AppCompatActivity {
Button btnSubmit;
@@ -188,11 +193,22 @@ public class OtherHseActivity extends AppCompatActivity {
alertDialog.dismiss();
+ List reportList = StorageManager.getInstance().getReportActivityModel();
+ HseReportRequest reportRequest = new HseReportRequest<>();
+ reportRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ reportRequest.setUserId(StorageManager.getInstance().getUserId());
+ reportRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ reportRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ reportRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ reportRequest.setShift(StorageManager.getInstance().getShift());
+ reportRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ reportRequest.setReportData(reportList);
+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String jsonRequest = gson.toJson(StorageManager.getInstance());
+ String jsonRequest = gson.toJson(reportRequest);
Log.e("RequestModel JSON", jsonRequest);
- //loginViewModel.saveHSEData(requestModel);
+ loginViewModel.saveHSEData(reportRequest);
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitOneActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitOneActivity.java
index 9f8d107..62cf111 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitOneActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitOneActivity.java
@@ -25,12 +25,14 @@ import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.ObservationForms.ObservationThreeActivity;
import com.utopiaindustries.hseobservationsapp.activities.ObservationForms.ObservationTwoActivity;
import com.utopiaindustries.hseobservationsapp.adapters.BuildingsAdapter;
+import com.utopiaindustries.hseobservationsapp.adapters.DepartmentAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.FloorsAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.HsePtwTypeAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.WorkingTeamAdapter;
import com.utopiaindustries.hseobservationsapp.helper.Helper;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseActivity;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseBuilding;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseDepartment;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseFloor;
import com.utopiaindustries.hseobservationsapp.models.HseData.HsePtwType;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseWorkingTeam;
@@ -41,16 +43,21 @@ import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
+//Department dropdown working
public class PermitOneActivity extends AppCompatActivity {
private Button btnNext;
ImageView imgBack;
private AutoCompleteTextView locationTextview, subLocationTextView, ptwTypeTextView,
- ptwSubTypeTextView, workingTeamTextView;
+ ptwSubTypeTextView, workingTeamTextView, departmentTextview;
private TextInputLayout ptwTextInputLayout;
+ private DepartmentAdapter departmentAdapter;
+ private ArrayList departmentArrayList_temp = new ArrayList<>();
+ private ArrayList departmentArrayList = new ArrayList<>();
+
private ArrayList locationArrayList_temp = new ArrayList<>();
private ArrayList locationArrayList = new ArrayList<>();
private BuildingsAdapter buildingAdapter;
@@ -67,6 +74,7 @@ public class PermitOneActivity extends AppCompatActivity {
private WorkingTeamAdapter workingTeamAdapter;
String location = "", subLocation = "", ptwType = "", workingTeam = "";
+ String departmentName = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -133,6 +141,15 @@ public class PermitOneActivity extends AppCompatActivity {
}
});
+ departmentTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ departmentName = departmentArrayList.get(position).getTitle();
+ StorageManager.getInstance().getPermitToWorkModel().get(0).setDepartmentId(departmentArrayList.get(position).getId());
+
+ }
+ });
+
}
private void initializeLayout() {
@@ -144,6 +161,7 @@ public class PermitOneActivity extends AppCompatActivity {
subLocationTextView = findViewById(R.id.sub_location_textview);
ptwTypeTextView = findViewById(R.id.ptw_type_textview);
ptwTextInputLayout = findViewById(R.id.ptw_type_input);
+ departmentTextview = findViewById(R.id.department_textview);
ptwTypeTextView.setFocusable(false);
ptwTypeTextView.setCursorVisible(false);
@@ -152,6 +170,21 @@ public class PermitOneActivity extends AppCompatActivity {
workingTeamTextView = findViewById(R.id.working_team_textview);
+ //department
+ departmentArrayList_temp.addAll(Helper.getList(Helper.hseDepartment, this, HseDepartment.class));
+
+ if (!departmentArrayList_temp.isEmpty()) {
+
+ List filteredUnitItems = departmentArrayList_temp.stream()
+ .filter(item -> Objects.equals(item.getSiteId(), StorageManager.getInstance().getSite_id()))
+ .collect(Collectors.toList());
+
+ departmentArrayList.clear();
+ departmentArrayList.addAll(filteredUnitItems);
+ departmentAdapter = new DepartmentAdapter(this, departmentArrayList);
+ departmentTextview.setAdapter(departmentAdapter);
+ }
+
locationArrayList_temp.addAll(Helper.getList(Helper.hseBuildings, this, HseBuilding.class));
//Location -- Building
@@ -213,6 +246,10 @@ public class PermitOneActivity extends AppCompatActivity {
message = "Please select location.";
returnValue = false;
}
+ if (departmentName.isEmpty()) {
+ message = "Please select Department.";
+ returnValue = false;
+ }
if (!returnValue) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
@@ -239,8 +276,10 @@ public class PermitOneActivity extends AppCompatActivity {
}
String selectedTitles = selected.get(0).getTitle() + ", " + selected.get(1).getTitle();
+ String selectedTypeSubType = selected.get(0).getId() + ", " + selected.get(1).getId();
textView.setText(selectedTitles);
ptwType = selectedTitles;
+ StorageManager.getInstance().getPermitToWorkModel().get(0).setTypeId(selectedTypeSubType);
});
builder.setNegativeButton("Cancel", (dialog, which) -> dialog.dismiss());
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitTwoActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitTwoActivity.java
index b8777af..f68bd0b 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitTwoActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/PermitToWorkForms/PermitTwoActivity.java
@@ -15,10 +15,12 @@ import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
+import android.os.Handler;
import android.provider.MediaStore;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -40,17 +42,26 @@ import androidx.core.content.FileProvider;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import androidx.core.widget.NestedScrollView;
+import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.DashboardActivity;
import com.utopiaindustries.hseobservationsapp.activities.ObservationForms.ObservationThreeActivity;
import com.utopiaindustries.hseobservationsapp.adapters.PTWImageAdapter;
import com.utopiaindustries.hseobservationsapp.models.DocumentTypeImageModel;
+import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseTrainingModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.PermitToWorkModel;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
+import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@ -81,6 +92,9 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
ImageView imgUpload, imgBack;
Button btnSubmit;
EditText etDescription;
+ LoginViewModel loginViewModel;
+ NestedScrollView scrollView;
+ String workingParty = "";
// Activity Result Launcher for Gallery
private final ActivityResultLauncher imagePickerLauncher =
@@ -192,6 +206,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
public void onClick(View v) {
if (checkboxCompany.isChecked()) {
checkboxContractor.setChecked(false);
+ workingParty = "Company";
StorageManager.getInstance().getPermitToWorkModel().get(0).setWorkingPartyType("Company");
}
}
@@ -202,6 +217,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
public void onClick(View v) {
if (checkboxContractor.isChecked()) {
checkboxCompany.setChecked(false);
+ workingParty = "Contractor";
StorageManager.getInstance().getPermitToWorkModel().get(0).setWorkingPartyType("Contractor");
}
}
@@ -224,13 +240,12 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- StorageManager.getInstance().getPermitToWorkModel().get(0).setPictures(imageList);
- Toast.makeText(PermitTwoActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
- Intent intent = new Intent(PermitTwoActivity.this, DashboardActivity.class);
- intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
- startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ if (!isValidate()) {
+ StorageManager.getInstance().getPermitToWorkModel().get(0).setPictures(imageList);
+ // Toast.makeText(PermitTwoActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
+ alertReportSubmit(PermitTwoActivity.this);
+ }
+
}
});
@@ -250,6 +265,70 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
}
});
+
+ etDescription.setOnFocusChangeListener((v, hasFocus) -> {
+ if (hasFocus) {
+ new Handler().postDelayed(() -> {
+ scrollView.smoothScrollTo(0, etDescription.getBottom());
+ }, 200);
+ }
+ });
+ }
+
+ public void alertReportSubmit(Context con) {
+ ViewGroup viewGroup = findViewById(android.R.id.content);
+
+ TextView dialogOkBtn, dialogCancelBtn;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(con);
+ View view1 = LayoutInflater.from(con).inflate(R.layout.custom_layout_for_report_submission, viewGroup, false);
+ builder.setCancelable(false);
+ builder.setView(view1);
+
+ dialogOkBtn = view1.findViewById(R.id.dialogOkBtn);
+ dialogCancelBtn = view1.findViewById(R.id.dialogCancelBtn);
+
+ AlertDialog alertDialog = builder.create();
+ alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ dialogOkBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+
+ List reportList = StorageManager.getInstance().getPermitToWorkModel();
+ HseReportRequest hseTrainingRequest = new HseReportRequest<>();
+ hseTrainingRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ hseTrainingRequest.setUserId(StorageManager.getInstance().getUserId());
+ hseTrainingRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ hseTrainingRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ hseTrainingRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ hseTrainingRequest.setShift(StorageManager.getInstance().getShift());
+ hseTrainingRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ hseTrainingRequest.setReportData(reportList);
+
+ Gson gson = new GsonBuilder().setPrettyPrinting().create();
+ String jsonRequest = gson.toJson(hseTrainingRequest);
+ Log.e("RequestModel JSON", jsonRequest);
+
+ loginViewModel.saveHSEData(hseTrainingRequest);
+
+
+ }
+ });
+
+ dialogCancelBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+ //Toast.makeText(con, "Cancel", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+
+ alertDialog.show();
}
@SuppressLint("MissingInflatedId")
@@ -322,6 +401,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
etDescription = findViewById(R.id.et_description);
etDescription.setImeOptions(EditorInfo.IME_ACTION_DONE);
etDescription.setRawInputType(InputType.TYPE_CLASS_TEXT);
+ scrollView = findViewById(R.id.scrollView2);
ptwRecyclerView = findViewById(R.id.ptwRecyclerView);
@@ -329,6 +409,32 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
ptwRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
ptwRecyclerView.setAdapter(imagePaperAdapter);
+ loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);
+
+ loginViewModel.getLoadingState().observe(this, isLoading -> {
+
+ if (isLoading != null && isLoading) {
+ showProgressDialog();
+ } else {
+ dismissProgressDialog();
+ }
+ });
+
+ loginViewModel.getErrorMessage().observe(this, errorResponse -> {
+ Toast.makeText(this, errorResponse, Toast.LENGTH_SHORT).show();
+ });
+
+ loginViewModel.getUserSaveLiveData().observe(this, hseSaveResponse -> {
+ if (hseSaveResponse != null && hseSaveResponse.getStatus().equals("success")) {
+ Toast.makeText(this, "Reported Submitted", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(PermitTwoActivity.this, DashboardActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ }
+ });
+
}
@AfterPermissionGranted(CAMERA_REQUEST_PAPER)
@@ -592,4 +698,39 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
}
}).start();
}
+
+ public void showProgressDialog() {
+ ProgressDialogFragment progressDialog = new ProgressDialogFragment();
+ progressDialog.setCancelable(false);
+ progressDialog.show(getSupportFragmentManager(), "progressDialog");
+ }
+
+ public void dismissProgressDialog() {
+ ProgressDialogFragment progressDialog = (ProgressDialogFragment)
+ getSupportFragmentManager().findFragmentByTag("progressDialog");
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (etDescription.getText().toString().isEmpty()) {
+ message = "Please enter description.";
+ returnValue = false;
+ }
+
+ if (workingParty.isEmpty()) {
+ message = "Please select Working Party.";
+ returnValue = false;
+ }
+
+ if (!returnValue) {
+ Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
+ }
+
+ return returnValue;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ProgressiveActivityForms/ProgressiveActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ProgressiveActivityForms/ProgressiveActivity.java
index 64205b3..fe01141 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ProgressiveActivityForms/ProgressiveActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ProgressiveActivityForms/ProgressiveActivity.java
@@ -19,6 +19,7 @@ import android.provider.MediaStore;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -41,17 +42,24 @@ import androidx.core.content.FileProvider;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
import com.utopiaindustries.hseobservationsapp.R;
import com.utopiaindustries.hseobservationsapp.activities.DashboardActivity;
+import com.utopiaindustries.hseobservationsapp.activities.PermitToWorkForms.PermitTwoActivity;
import com.utopiaindustries.hseobservationsapp.activities.WeeklyActivityForms.WeeklyFormOne;
import com.utopiaindustries.hseobservationsapp.adapters.HseActivitiesAdapter;
import com.utopiaindustries.hseobservationsapp.adapters.PTWImageAdapter;
import com.utopiaindustries.hseobservationsapp.helper.Helper;
import com.utopiaindustries.hseobservationsapp.models.DocumentTypeImageModel;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseActivity;
+import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ReportActivityModel;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
@@ -212,12 +220,17 @@ public class ProgressiveActivity extends AppCompatActivity implements EasyPermis
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Toast.makeText(ProgressiveActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
+
+ StorageManager.getInstance().getProgressiveActivityModel().get(0).setPictures(PaperImageList);
+ // Toast.makeText(PermitTwoActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
+ alertReportSubmit(ProgressiveActivity.this);
+ /*Toast.makeText(ProgressiveActivity.this,"Reported Submitted",Toast.LENGTH_SHORT).show();
Intent intent = new Intent(ProgressiveActivity.this, DashboardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
- overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);*/
+
}
});
@@ -250,6 +263,62 @@ public class ProgressiveActivity extends AppCompatActivity implements EasyPermis
});
}
+ public void alertReportSubmit(Context con) {
+ ViewGroup viewGroup = findViewById(android.R.id.content);
+
+ TextView dialogOkBtn, dialogCancelBtn;
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(con);
+ View view1 = LayoutInflater.from(con).inflate(R.layout.custom_layout_for_report_submission, viewGroup, false);
+ builder.setCancelable(false);
+ builder.setView(view1);
+
+ dialogOkBtn = view1.findViewById(R.id.dialogOkBtn);
+ dialogCancelBtn = view1.findViewById(R.id.dialogCancelBtn);
+
+ AlertDialog alertDialog = builder.create();
+ alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
+
+ dialogOkBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+
+ List reportList = StorageManager.getInstance().getReportActivityModel();
+ HseReportRequest reportRequest = new HseReportRequest<>();
+ reportRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ reportRequest.setUserId(StorageManager.getInstance().getUserId());
+ reportRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ reportRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ reportRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ reportRequest.setShift(StorageManager.getInstance().getShift());
+ reportRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ reportRequest.setReportData(reportList);
+
+ Gson gson = new GsonBuilder().setPrettyPrinting().create();
+ String jsonRequest = gson.toJson(reportRequest);
+ Log.e("RequestModel JSON", jsonRequest);
+
+ loginViewModel.saveHSEData(reportRequest);
+
+
+ }
+ });
+
+ dialogCancelBtn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ alertDialog.dismiss();
+ //Toast.makeText(con, "Cancel", Toast.LENGTH_SHORT).show();
+
+ }
+ });
+
+ alertDialog.show();
+ }
+
private void initializeLayouts() {
imgUpload = findViewById(R.id.img_upload);
@@ -269,6 +338,32 @@ public class ProgressiveActivity extends AppCompatActivity implements EasyPermis
imagePaperAdapter = new PTWImageAdapter(PaperImageList, this, "");
picturesRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
picturesRecyclerView.setAdapter(imagePaperAdapter);
+
+ loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);
+
+ loginViewModel.getLoadingState().observe(this, isLoading -> {
+
+ if (isLoading != null && isLoading) {
+ showProgressDialog();
+ } else {
+ dismissProgressDialog();
+ }
+ });
+
+ loginViewModel.getErrorMessage().observe(this, errorResponse -> {
+ Toast.makeText(this, errorResponse, Toast.LENGTH_SHORT).show();
+ });
+
+ loginViewModel.getUserSaveLiveData().observe(this, hseSaveResponse -> {
+ if (hseSaveResponse != null && hseSaveResponse.getStatus().equals("success")) {
+ Toast.makeText(this, "Reported Submitted", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(ProgressiveActivity.this, DashboardActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
+ }
+ });
}
@SuppressLint("MissingInflatedId")
@@ -593,4 +688,18 @@ public class ProgressiveActivity extends AppCompatActivity implements EasyPermis
}
}).start();
}
+
+ public void showProgressDialog() {
+ ProgressDialogFragment progressDialog = new ProgressDialogFragment();
+ progressDialog.setCancelable(false);
+ progressDialog.show(getSupportFragmentManager(), "progressDialog");
+ }
+
+ public void dismissProgressDialog() {
+ ProgressDialogFragment progressDialog = (ProgressDialogFragment)
+ getSupportFragmentManager().findFragmentByTag("progressDialog");
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/WeeklyActivityForms/WeeklyFormOne.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/WeeklyActivityForms/WeeklyFormOne.java
index 9c39f71..2c29e6a 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/WeeklyActivityForms/WeeklyFormOne.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/WeeklyActivityForms/WeeklyFormOne.java
@@ -62,6 +62,8 @@ import com.utopiaindustries.hseobservationsapp.models.DocumentTypeImageModel;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseActivity;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseObservationClass;
import com.utopiaindustries.hseobservationsapp.utils.ProgressDialogFragment;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.ReportActivityModel;
import com.utopiaindustries.hseobservationsapp.utils.StorageManager.StorageManager;
import com.utopiaindustries.hseobservationsapp.viewmodels.LoginViewModel;
@@ -672,11 +674,22 @@ public class WeeklyFormOne extends AppCompatActivity implements EasyPermissions.
alertDialog.dismiss();
+ List reportList = StorageManager.getInstance().getReportActivityModel();
+ HseReportRequest reportRequest = new HseReportRequest<>();
+ reportRequest.setObservation_date(StorageManager.getInstance().getObservation_date());
+ reportRequest.setUserId(StorageManager.getInstance().getUserId());
+ reportRequest.setSite_id(StorageManager.getInstance().getSite_id());
+ reportRequest.setSupervisorId(StorageManager.getInstance().getSupervisorId());
+ reportRequest.setSupervisorName(StorageManager.getInstance().getSupervisorName());
+ reportRequest.setShift(StorageManager.getInstance().getShift());
+ reportRequest.setRecordTypeId(StorageManager.getInstance().getRecordTypeId());
+ reportRequest.setReportData(reportList);
+
Gson gson = new GsonBuilder().setPrettyPrinting().create();
- String jsonRequest = gson.toJson(StorageManager.getInstance());
+ String jsonRequest = gson.toJson(reportRequest);
Log.e("RequestModel JSON", jsonRequest);
- //loginViewModel.saveHSEData(requestModel);
+ loginViewModel.saveHSEData(reportRequest);
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/SafetyTrainingAdapter.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/SafetyTrainingAdapter.java
new file mode 100644
index 0000000..d16f64e
--- /dev/null
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/SafetyTrainingAdapter.java
@@ -0,0 +1,41 @@
+package com.utopiaindustries.hseobservationsapp.adapters;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import com.utopiaindustries.hseobservationsapp.R;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseBuilding;
+import com.utopiaindustries.hseobservationsapp.models.HseData.HseSafetyTrainingTopic;
+
+import java.util.List;
+
+public class SafetyTrainingAdapter extends ArrayAdapter {
+
+ private final Context context;
+ private final List items;
+
+ public SafetyTrainingAdapter(Context context, List items) {
+ super(context, 0, items);
+ this.context = context;
+ this.items = items;
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent) {
+ if (convertView == null) {
+ convertView = LayoutInflater.from(context).inflate(R.layout.list_items, parent, false);
+ }
+
+ HseSafetyTrainingTopic item = items.get(position);
+
+ TextView titleTextView = convertView.findViewById(R.id.item_text);
+
+ titleTextView.setText(item.getTitle());
+
+ return convertView;
+ }
+}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/apiservice/ApiService.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/apiservice/ApiService.java
index 20ab210..5dfca1f 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/apiservice/ApiService.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/apiservice/ApiService.java
@@ -6,6 +6,7 @@ import com.utopiaindustries.hseobservationsapp.models.QualityControl;
import com.utopiaindustries.hseobservationsapp.models.QualityControlResponse;
import com.utopiaindustries.hseobservationsapp.models.QualitySaveResponse;
import com.utopiaindustries.hseobservationsapp.utils.HSERequestModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
import retrofit2.Call;
import retrofit2.http.Body;
@@ -25,7 +26,7 @@ public interface ApiService {
@POST("rest/uic/hse/save-hse-report")
Call saveHseReport(
- @Body HSERequestModel request
+ @Body HseReportRequest request
);
@POST("rest/authentication/authenticate-user")
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/models/HseData/HseSafetyTrainingTopic.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/models/HseData/HseSafetyTrainingTopic.java
index 9961a8d2..6ce097b 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/models/HseData/HseSafetyTrainingTopic.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/models/HseData/HseSafetyTrainingTopic.java
@@ -29,4 +29,9 @@ public class HseSafetyTrainingTopic {
this.title = title;
}
+ @Override
+ public String toString() {
+ return title;
+ }
+
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseReportRequest.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseReportRequest.java
new file mode 100644
index 0000000..07bd727
--- /dev/null
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseReportRequest.java
@@ -0,0 +1,97 @@
+package com.utopiaindustries.hseobservationsapp.utils.StorageManager;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class HseReportRequest {
+
+ private String observation_date;
+ private int userId;
+ private int site_id;
+ private int supervisorId;
+ private String supervisorName;
+ private String shift;
+ private int recordTypeId;
+
+ private List reportData;
+
+ public String getObservation_date() {
+ return observation_date;
+ }
+
+ public void setObservation_date(String observation_date) {
+ this.observation_date = observation_date;
+ }
+
+ public int getUserId() {
+ return userId;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ public int getSite_id() {
+ return site_id;
+ }
+
+ public void setSite_id(int site_id) {
+ this.site_id = site_id;
+ }
+
+ public int getSupervisorId() {
+ return supervisorId;
+ }
+
+ public void setSupervisorId(int supervisorId) {
+ this.supervisorId = supervisorId;
+ }
+
+ public String getSupervisorName() {
+ return supervisorName;
+ }
+
+ public void setSupervisorName(String supervisorName) {
+ this.supervisorName = supervisorName;
+ }
+
+ public String getShift() {
+ return shift;
+ }
+
+ public void setShift(String shift) {
+ this.shift = shift;
+ }
+
+ public int getRecordTypeId() {
+ return recordTypeId;
+ }
+
+ public void setRecordTypeId(int recordTypeId) {
+ this.recordTypeId = recordTypeId;
+ }
+
+ public List getReportData() {
+ return reportData;
+ }
+
+ public void setReportData(List reportData) {
+ this.reportData = reportData;
+ }
+
+ public HseReportRequest() {
+ this.reportData = new ArrayList<>();
+ }
+
+ public HseReportRequest(String observation_date, int userId, int site_id, int supervisorId, String supervisorName, String shift, int recordTypeId, List reportData) {
+ this.observation_date = observation_date;
+ this.userId = userId;
+ this.site_id = site_id;
+ this.supervisorId = supervisorId;
+ this.supervisorName = supervisorName;
+ this.shift = shift;
+ this.recordTypeId = recordTypeId;
+ this.reportData = reportData;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseTrainingModel.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseTrainingModel.java
new file mode 100644
index 0000000..df22da7
--- /dev/null
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/HseTrainingModel.java
@@ -0,0 +1,115 @@
+package com.utopiaindustries.hseobservationsapp.utils.StorageManager;
+
+import java.util.List;
+
+public class HseTrainingModel {
+
+ private int safetyTopicId;
+ private String safetyTopicName;
+ private int employeeAttendance;
+ private int targetAudienceId;
+ private String targetAudienceName;
+ private int locationId;
+ private String locationName;
+ private int subLocationId;
+ private String subLocationName;
+ private double trainingMinutes;
+ private String description;
+ private List pictures;
+
+ public int getSafetyTopicId() {
+ return safetyTopicId;
+ }
+
+ public void setSafetyTopicId(int safetyTopicId) {
+ this.safetyTopicId = safetyTopicId;
+ }
+
+ public int getEmployeeAttendance() {
+ return employeeAttendance;
+ }
+
+ public void setEmployeeAttendance(int employeeAttendance) {
+ this.employeeAttendance = employeeAttendance;
+ }
+
+ public int getTargetAudienceId() {
+ return targetAudienceId;
+ }
+
+ public void setTargetAudienceId(int targetAudienceId) {
+ this.targetAudienceId = targetAudienceId;
+ }
+
+ public double getTrainingMinutes() {
+ return trainingMinutes;
+ }
+
+ public void setTrainingMinutes(double trainingMinutes) {
+ this.trainingMinutes = trainingMinutes;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List getPictures() {
+ return pictures;
+ }
+
+ public void setPictures(List pictures) {
+ this.pictures = pictures;
+ }
+
+ public String getSafetyTopicName() {
+ return safetyTopicName;
+ }
+
+ public void setSafetyTopicName(String safetyTopicName) {
+ this.safetyTopicName = safetyTopicName;
+ }
+
+ public String getTargetAudienceName() {
+ return targetAudienceName;
+ }
+
+ public void setTargetAudienceName(String targetAudienceName) {
+ this.targetAudienceName = targetAudienceName;
+ }
+
+ public int getLocationId() {
+ return locationId;
+ }
+
+ public void setLocationId(int locationId) {
+ this.locationId = locationId;
+ }
+
+ public String getLocationName() {
+ return locationName;
+ }
+
+ public void setLocationName(String locationName) {
+ this.locationName = locationName;
+ }
+
+ public int getSubLocationId() {
+ return subLocationId;
+ }
+
+ public void setSubLocationId(int subLocationId) {
+ this.subLocationId = subLocationId;
+ }
+
+ public String getSubLocationName() {
+ return subLocationName;
+ }
+
+ public void setSubLocationName(String subLocationName) {
+ this.subLocationName = subLocationName;
+ }
+}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/ObservationModel.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/ObservationModel.java
index 3cec346..e2a7d78 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/ObservationModel.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/ObservationModel.java
@@ -10,6 +10,12 @@ public class ObservationModel {
private int observationSubClassId;
private String hseObservationSubClassName;
+ private int buildingId;
+ private String buildingName;
+
+ private int floorId;
+ private String floorName;
+
private int departmentId;
private String departmentName;
@@ -52,6 +58,38 @@ public class ObservationModel {
this.hseObservationSubClassName = hseObservationSubClassName;
}
+ public int getBuildingId() {
+ return buildingId;
+ }
+
+ public void setBuildingId(int buildingId) {
+ this.buildingId = buildingId;
+ }
+
+ public String getBuildingName() {
+ return buildingName;
+ }
+
+ public void setBuildingName(String buildingName) {
+ this.buildingName = buildingName;
+ }
+
+ public int getFloorId() {
+ return floorId;
+ }
+
+ public void setFloorId(int floorId) {
+ this.floorId = floorId;
+ }
+
+ public String getFloorName() {
+ return floorName;
+ }
+
+ public void setFloorName(String floorName) {
+ this.floorName = floorName;
+ }
+
public int getDepartmentId() {
return departmentId;
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/PermitToWorkModel.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/PermitToWorkModel.java
index 2dbe266..17f4526 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/PermitToWorkModel.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/PermitToWorkModel.java
@@ -4,11 +4,16 @@ import java.util.List;
public class PermitToWorkModel {
+ private int departmentId;
+ private String departmentName;
private int locationId;
+ private String locationName;
private int subLocationId;
- private int typeId;
- private int subTypeId;
+ private String subLocationName;
+ private String typeId;
+ private String typeName;
private int workingTeamId;
+ private String workingTeamName;
private String workingPartyType;
private String description;
@@ -31,22 +36,14 @@ public class PermitToWorkModel {
this.subLocationId = subLocationId;
}
- public int getTypeId() {
+ public String getTypeId() {
return typeId;
}
- public void setTypeId(int typeId) {
+ public void setTypeId(String typeId) {
this.typeId = typeId;
}
- public int getSubTypeId() {
- return subTypeId;
- }
-
- public void setSubTypeId(int subTypeId) {
- this.subTypeId = subTypeId;
- }
-
public int getWorkingTeamId() {
return workingTeamId;
}
@@ -78,4 +75,52 @@ public class PermitToWorkModel {
public void setPictures(List pictures) {
this.pictures = pictures;
}
+
+ public int getDepartmentId() {
+ return departmentId;
+ }
+
+ public void setDepartmentId(int departmentId) {
+ this.departmentId = departmentId;
+ }
+
+ public String getDepartmentName() {
+ return departmentName;
+ }
+
+ public void setDepartmentName(String departmentName) {
+ this.departmentName = departmentName;
+ }
+
+ public String getLocationName() {
+ return locationName;
+ }
+
+ public void setLocationName(String locationName) {
+ this.locationName = locationName;
+ }
+
+ public String getSubLocationName() {
+ return subLocationName;
+ }
+
+ public void setSubLocationName(String subLocationName) {
+ this.subLocationName = subLocationName;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+
+ public String getWorkingTeamName() {
+ return workingTeamName;
+ }
+
+ public void setWorkingTeamName(String workingTeamName) {
+ this.workingTeamName = workingTeamName;
+ }
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/StorageManager.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/StorageManager.java
index b3636dc..d2a83cc 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/StorageManager.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/utils/StorageManager/StorageManager.java
@@ -22,6 +22,7 @@ public class StorageManager {
private List reportActivityModel;
private List progressiveActivityModel;
private List permitToWorkModel;
+ private List hseTrainingModel;
private StorageManager() {
@@ -48,6 +49,9 @@ public class StorageManager {
permitToWorkModel = new ArrayList<>();
permitToWorkModel.add(new PermitToWorkModel());
+
+ hseTrainingModel = new ArrayList<>();
+ hseTrainingModel.add(new HseTrainingModel());
}
public String getObservation_date() {
@@ -146,6 +150,14 @@ public class StorageManager {
this.permitToWorkModel = permitToWorkModel;
}
+ public List getHseTrainingModel() {
+ return hseTrainingModel;
+ }
+
+ public void setHseTrainingModel(List hseTrainingModel) {
+ this.hseTrainingModel = hseTrainingModel;
+ }
+
public void clearAllData() {
observation_date = null;
@@ -161,5 +173,6 @@ public class StorageManager {
reportActivityModel.clear();
progressiveActivityModel.clear();
permitToWorkModel.clear();
+ hseTrainingModel.clear();
}
}
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/viewmodels/LoginViewModel.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/viewmodels/LoginViewModel.java
index 30fb7aa..b44bc02 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/viewmodels/LoginViewModel.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/viewmodels/LoginViewModel.java
@@ -10,6 +10,7 @@ import com.utopiaindustries.hseobservationsapp.apiservice.ApiServiceFactory;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseResponse;
import com.utopiaindustries.hseobservationsapp.models.HseData.HseSaveResponse;
import com.utopiaindustries.hseobservationsapp.utils.HSERequestModel;
+import com.utopiaindustries.hseobservationsapp.utils.StorageManager.HseReportRequest;
import retrofit2.Call;
import retrofit2.Callback;
@@ -98,7 +99,7 @@ public class LoginViewModel extends ViewModel {
});
}
- public void saveHSEData(HSERequestModel hseRequestModel) {
+ public void saveHSEData(HseReportRequest hseRequestModel) {
isLoading.setValue(true);
apiService.saveHseReport(hseRequestModel).enqueue(new Callback() {
@Override
diff --git a/app/src/main/res/layout/activity_hse_one.xml b/app/src/main/res/layout/activity_hse_one.xml
index 6afa9e2..5bad708 100644
--- a/app/src/main/res/layout/activity_hse_one.xml
+++ b/app/src/main/res/layout/activity_hse_one.xml
@@ -108,7 +108,7 @@
android:background="@drawable/et_border"
android:hint="No Of Employees"
android:imeOptions="actionDone"
- android:inputType="text"
+ android:inputType="number"
android:padding="13dp"
android:textSize="15sp" />
@@ -118,7 +118,7 @@
android:layout_marginTop="10dp"
android:gravity="left"
android:padding="5dp"
- android:text="Target Audience *"
+ android:text="Department *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
@@ -143,57 +143,67 @@
android:textSize="16sp" />
-
+ android:layout_height="wrap_content"
+ android:layout_marginTop="15dp"
+ android:gravity="left"
+ android:padding="5dp"
+ android:text="Building *"
+ android:textColor="@color/black"
+ android:textSize="@dimen/_13sdp"
+ android:textStyle="bold" />
-
+
+
-
-
-
+ android:inputType="none"
+ android:textSize="16sp" />
+
+ android:layout_marginTop="15dp"
+ android:gravity="left"
+ android:padding="5dp"
+ android:text="Floor *"
+ android:textColor="@color/black"
+ android:textSize="@dimen/_13sdp"
+ android:textStyle="bold" />
-
-
+ android:layout_marginLeft="5dp"
+ android:layout_marginRight="5dp"
+ android:padding="5dp"
+ android:hint="@string/select_sub_location"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent">
+
+
+
diff --git a/app/src/main/res/layout/activity_hse_two.xml b/app/src/main/res/layout/activity_hse_two.xml
index 16f81d3..bf91e87 100644
--- a/app/src/main/res/layout/activity_hse_two.xml
+++ b/app/src/main/res/layout/activity_hse_two.xml
@@ -68,16 +68,16 @@
android:textStyle="bold" />
@@ -115,6 +115,57 @@
android:textSize="@dimen/_12sdp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/heading_description"/>
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_injury_form_one.xml b/app/src/main/res/layout/activity_injury_form_one.xml
index b2cc064..1993690 100644
--- a/app/src/main/res/layout/activity_injury_form_one.xml
+++ b/app/src/main/res/layout/activity_injury_form_one.xml
@@ -185,7 +185,7 @@
android:layout_marginStart="5dp"
android:layout_marginTop="5dp"
android:gravity="left"
- android:hint="MM-dd-yyyy"
+ android:hint="yyyy-MM-dd"
android:padding="5dp"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp" />
diff --git a/app/src/main/res/layout/activity_observation_one.xml b/app/src/main/res/layout/activity_observation_one.xml
index 3e6f3d6..922d072 100644
--- a/app/src/main/res/layout/activity_observation_one.xml
+++ b/app/src/main/res/layout/activity_observation_one.xml
@@ -58,7 +58,7 @@
android:id="@+id/observation_heading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="25dp"
+ android:layout_marginTop="20dp"
android:gravity="left"
android:padding="5dp"
android:text="Observation Class *"
@@ -92,7 +92,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/observation_input"
- android:layout_marginTop="50dp"
+ android:layout_marginTop="15dp"
android:gravity="left"
android:padding="5dp"
android:text="Observation Sub Class *"
@@ -121,6 +121,74 @@
android:textSize="16sp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -93,7 +124,7 @@
android:layout_marginTop="15dp"
android:gravity="left"
android:padding="5dp"
- android:text="Sub Location *"
+ android:text="Floor *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
diff --git a/app/src/main/res/layout/activity_permit_two.xml b/app/src/main/res/layout/activity_permit_two.xml
index 27d4ff3..5a050fc 100644
--- a/app/src/main/res/layout/activity_permit_two.xml
+++ b/app/src/main/res/layout/activity_permit_two.xml
@@ -14,9 +14,9 @@
android:background="@color/theme_color"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme"
- app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent" />
+ app:layout_constraintEnd_toEndOf="parent" />
-
+ app:layout_constraintEnd_toEndOf="parent">
@@ -86,7 +88,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Contractor" />
-
-
-
+ android:textStyle="bold" />
-
+ android:textSize="@dimen/_12sdp" />
-
-
+
-
\ No newline at end of file
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent" />
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index b68df20..18e92e7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -13,6 +13,9 @@
Select Observation Class
Select Observation Sub Class
+ Select Building
+ Select Floor
+
Select Department
Select Risk Level