diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5c287ad..461987f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -32,63 +32,10 @@
android:theme="@style/Theme.HSEObservationsApp"
tools:targetApi="31">
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -97,6 +44,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationNearMissActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationNearMissActivity.java
new file mode 100644
index 0000000..5d8e301
--- /dev/null
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationNearMissActivity.java
@@ -0,0 +1,112 @@
+package com.utopiaindustries.hseobservationsapp.activities.ObservationForms;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.AutoCompleteTextView;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import com.utopiaindustries.hseobservationsapp.R;
+import com.utopiaindustries.hseobservationsapp.adapters.ObservationClassAdapter;
+import com.utopiaindustries.hseobservationsapp.adapters.ObservationSubClassAdapter;
+import com.utopiaindustries.hseobservationsapp.models.Shift;
+
+import java.util.ArrayList;
+
+public class ObservationNearMissActivity extends AppCompatActivity {
+
+ private AutoCompleteTextView observationTextview;
+ private ObservationClassAdapter observationClassAdapter;
+ private ArrayList obClassArrayList = new ArrayList<>();
+
+ private Button btnNext;
+ ImageView imgBack;
+
+ String observationClass = "";
+ EditText etDescription;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_observation_near_miss);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ initializeLayout();
+
+ imgBack.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
+
+ btnNext.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (isValidate()) {
+
+ }
+ }
+ });
+
+ observationTextview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(AdapterView> parent, View view, int position, long id) {
+ // Perform action when shiftTextview item is clicked
+ //Toast.makeText(ObservationNearMissActivity.this, "Item clicked: " + obClassArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+
+ }
+ });
+ }
+
+ public void initializeLayout() {
+ observationTextview = findViewById(R.id.observation_near_textview);
+ btnNext = findViewById(R.id.btn_next);
+ imgBack = findViewById(R.id.img_back);
+ etDescription = findViewById(R.id.et_description);
+
+ obClassArrayList.add(new Shift(1, "Option 1"));
+ obClassArrayList.add(new Shift(2, "Option 2"));
+ obClassArrayList.add(new Shift(3, "Option 3"));
+
+ observationClassAdapter = new ObservationClassAdapter(this, obClassArrayList);
+ observationTextview.setAdapter(observationClassAdapter);
+
+ }
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (etDescription.getText().toString().isEmpty()) {
+ message = "Please enter description.";
+ returnValue = false;
+ }
+
+ if (observationClass.isEmpty()) {
+ message = "Please select Location.";
+ 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/ObservationForms/ObservationOneActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationOneActivity.java
index cc5d7e7..683f053 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
@@ -36,6 +36,8 @@ public class ObservationOneActivity extends AppCompatActivity {
private Button btnNext;
ImageView imgBack;
+ String observationClass = "", observationSubClass = "";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -59,8 +61,17 @@ public class ObservationOneActivity extends AppCompatActivity {
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- Intent intent = new Intent(ObservationOneActivity.this, ObservationTwoActivity.class);
- startActivity(intent);
+ // if (isValidate()) {
+ if (observationClass.equalsIgnoreCase("Near Miss")) {
+ Intent intent = new Intent(ObservationOneActivity.this, ObservationNearMissActivity.class);
+ startActivity(intent);
+ }
+ else {
+ Intent intent = new Intent(ObservationOneActivity.this, ObservationTwoActivity.class);
+ startActivity(intent);
+ }
+
+ // }
}
});
@@ -68,8 +79,8 @@ public class ObservationOneActivity extends AppCompatActivity {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
// Perform action when shiftTextview item is clicked
- Toast.makeText(ObservationOneActivity.this, "Item clicked: " + obClassArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
-
+ //Toast.makeText(ObservationOneActivity.this, "Item clicked: " + obClassArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+ observationClass = obClassArrayList.get(position).getTitle();
}
});
@@ -77,7 +88,7 @@ public class ObservationOneActivity extends AppCompatActivity {
@Override
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();
+ //Toast.makeText(ObservationOneActivity.this, "Item clicked: " + obSubClassArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
}
});
@@ -103,4 +114,25 @@ public class ObservationOneActivity extends AppCompatActivity {
observationSubClassAdapter = new ObservationSubClassAdapter(this, obSubClassArrayList);
observationSubTextview.setAdapter(observationSubClassAdapter);
}
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (observationSubClass.isEmpty()) {
+ message = "Please select observation sub class.";
+ returnValue = false;
+ }
+
+ if (observationClass.isEmpty()) {
+ message = "Please select observation class.";
+ 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/ObservationForms/ObservationTwoActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationTwoActivity.java
index 65787ba..7039ecc 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationTwoActivity.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/ObservationForms/ObservationTwoActivity.java
@@ -1,6 +1,9 @@
package com.utopiaindustries.hseobservationsapp.activities.ObservationForms;
+import static com.utopiaindustries.hseobservationsapp.R.*;
+
import android.Manifest;
+import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
@@ -60,7 +63,8 @@ import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.AppSettingsDialog;
import pub.devrel.easypermissions.EasyPermissions;
-public class ObservationTwoActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks{
+public class ObservationTwoActivity extends AppCompatActivity implements EasyPermissions.PermissionCallbacks,
+ EasyPermissions.RationaleCallbacks{
private Button btnNext;
ImageView imgBack;
@@ -79,39 +83,62 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
String filePathBefore = "no_pic";
String filePathAfter = "no_pic";
+ String imgType = "";
+
// 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();
- Glide.with(this)
- .load(selectedImage) // Glide will handle the decoding and placeholder
- .placeholder(R.drawable.img_load)
- .apply(new RequestOptions().centerCrop())
- .into(imgBefore);
+ if (imgType.equalsIgnoreCase("before")) {
- uriToByteArrayAsync(
- this,
- selectedImage,
- 200, // Target size in KB
- compressedImage -> {
- // Handle the compressed image here, e.g., display it
- /*runOnUiThread(() -> {
- itemModelList.get(selectedPosition).setImageUri(compressedImage);
- List tempList = new ArrayList<>();
- tempList.add(compressedImage);
- itemModelList.get(selectedPosition).setImageArrayList(tempList);
- adapter.notifyItemChanged(selectedPosition);
- });*/
- },
- error -> {
- // Handle any errors
- runOnUiThread(() -> {
- Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
- });
- }
- );
+ uriToByteArrayAsync(
+ this,
+ selectedImage,
+ 100, // Target size in KB
+ compressedImage -> {
+ // Handle the compressed image here, e.g., display it
+ runOnUiThread(() -> {
+ Glide.with(this)
+ .load(compressedImage) // Glide will handle the decoding and placeholder
+ .placeholder(R.drawable.img_load)
+ .apply(new RequestOptions().centerCrop())
+ .into(imgBefore);
+ });
+ },
+ error -> {
+ // Handle any errors
+ runOnUiThread(() -> {
+ Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ });
+ }
+ );
+
+ }
+ else {
+ uriToByteArrayAsync(
+ this,
+ selectedImage,
+ 100, // Target size in KB
+ compressedImage -> {
+ // Handle the compressed image here, e.g., display it
+ runOnUiThread(() -> {
+ Glide.with(this)
+ .load(compressedImage) // Glide will handle the decoding and placeholder
+ .placeholder(R.drawable.img_load)
+ .apply(new RequestOptions().centerCrop())
+ .into(imgAfter);
+ });
+ },
+ 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();
@@ -126,35 +153,57 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK) {
- Uri contentUri = Uri.fromFile(new File((filePathBefore)));
- Glide.with(this)
- .load(contentUri) // Glide will handle the decoding and placeholder
- .placeholder(R.drawable.img_load)
- .apply(new RequestOptions().centerCrop())
- .into(imgAfter);
+ if (imgType.equalsIgnoreCase("before")) {
+ Uri contentUri = Uri.fromFile(new File((filePathBefore)));
- uriToByteArrayAsync(
- this,
- contentUri,
- 200, // Target size in KB
- compressedImage -> {
- // Handle the compressed image here, e.g., display it
- /*runOnUiThread(() -> {
- itemModelList.get(selectedPosition).setImageUri(compressedImage);
- List tempList = new ArrayList<>();
- tempList.add(compressedImage);
- itemModelList.get(selectedPosition).setImageArrayList(tempList);
- adapter.notifyItemChanged(selectedPosition);
- });*/
- },
- error -> {
- // Handle any errors
- runOnUiThread(() -> {
- Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
- });
- }
- );
+ uriToByteArrayAsync(
+ this,
+ contentUri,
+ 100, // Target size in KB
+ compressedImage -> {
+ // Handle the compressed image here, e.g., display it
+ runOnUiThread(() -> {
+ Glide.with(this)
+ .load(contentUri) // Glide will handle the decoding and placeholder
+ .placeholder(R.drawable.img_load)
+ .apply(new RequestOptions().centerCrop())
+ .into(imgBefore);
+ });
+ },
+ error -> {
+ // Handle any errors
+ runOnUiThread(() -> {
+ Toast.makeText(this, "Error compressing image: " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ });
+ }
+ );
+ }
+ else {
+ Uri contentUri = Uri.fromFile(new File((filePathAfter)));
+
+ uriToByteArrayAsync(
+ this,
+ contentUri,
+ 100, // Target size in KB
+ compressedImage -> {
+ // Handle the compressed image here, e.g., display it
+ runOnUiThread(() -> {
+ Glide.with(this)
+ .load(contentUri) // Glide will handle the decoding and placeholder
+ .placeholder(R.drawable.img_load)
+ .apply(new RequestOptions().centerCrop())
+ .into(imgAfter);
+ });
+ },
+ 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, "Camera capture failed!", Toast.LENGTH_SHORT).show();
@@ -195,28 +244,30 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
imgBefore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- alertForPictures(ObservationTwoActivity.this, "before");
+ imgType = "before";
+ alertForPictures(ObservationTwoActivity.this);
}
});
imgAfter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- alertForPictures(ObservationTwoActivity.this, "after");
+ imgType = "after";
+ alertForPictures(ObservationTwoActivity.this);
}
});
beforeCrossButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ imgBefore.setImageResource(R.drawable.icon_image);
}
});
afterCrossButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
-
+ imgAfter.setImageResource(R.drawable.icon_image);
}
});
@@ -256,7 +307,8 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
riskLevelTextview.setAdapter(riskLevelAdapter);
}
- public void alertForPictures(Context con, String imageType) {
+ @SuppressLint("MissingInflatedId")
+ public void alertForPictures(Context con) {
ViewGroup viewGroup = findViewById(android.R.id.content);
TextView dialogCameraBtn, dialogGalleryBtn;
@@ -277,7 +329,7 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
public void onClick(View view) {
alertDialog.dismiss();
- openCamera(imageType);
+ openCamera();
}
});
@@ -287,7 +339,7 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
public void onClick(View view) {
alertDialog.dismiss();
- openGallery(imageType);
+ openGallery();
}
});
@@ -296,7 +348,7 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
}
@AfterPermissionGranted(CAMERA_REQUEST)
- public void openCamera(String imgType) {
+ public void openCamera() {
if (hasCameraPermission()) {
try {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
@@ -332,7 +384,7 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
}
@AfterPermissionGranted(GALLERY_REQUEST)
- public void openGallery(String imgType) {
+ 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);
@@ -460,10 +512,22 @@ public class ObservationTwoActivity extends AppCompatActivity implements EasyPer
}
@Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ 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 onRationaleAccepted(int requestCode) {
+
+ }
+
+ @Override
+ public void onRationaleDenied(int requestCode) {
+
+ }
}
\ No newline at end of file
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 4de81b2..a15bf76 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
@@ -44,8 +44,8 @@ public class PermitOneActivity extends AppCompatActivity {
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- /*Intent intent = new Intent(PermitOneActivity.this, ObservationThreeActivity.class);
- startActivity(intent);*/
+ Intent intent = new Intent(PermitOneActivity.this, PermitTwoActivity.class);
+ startActivity(intent);
}
});
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 1de335d..1ddb0c7 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
@@ -14,6 +14,7 @@ import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.CheckBox;
+import android.widget.ImageView;
import android.widget.Toast;
import androidx.activity.EdgeToEdge;
@@ -25,10 +26,11 @@ import androidx.core.content.FileProvider;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
+import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.utopiaindustries.hseobservationsapp.R;
-import com.utopiaindustries.hseobservationsapp.adapters.PaperWorkImageAdapter;
+import com.utopiaindustries.hseobservationsapp.adapters.PTWImageAdapter;
import com.utopiaindustries.hseobservationsapp.models.DocumentTypeImageModel;
import java.io.ByteArrayOutputStream;
@@ -48,13 +50,14 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
EasyPermissions.RationaleCallbacks{
private CheckBox checkboxCompany, checkboxContractor;
- RecyclerView paperRecyclerView;
- PaperWorkImageAdapter imagePaperAdapter;
+ RecyclerView ptwRecyclerView;
+ PTWImageAdapter imagePaperAdapter;
String paperFilePath = "no_pic";
ArrayList PaperImageList = new ArrayList<>();
String docTypeId = "";
String docTypeTitle = "";
private static final int CAMERA_REQUEST_PAPER = 101;
+ ImageView imgUpload, imgBack;
// Activity Result Launcher for Paper Camera
private final ActivityResultLauncher paperCameraLauncher =
@@ -71,7 +74,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
bitmapToByteArrayAsync(
originalBitmap,
- 200, // Target size in KB
+ 100, // Target size in KB
imageBytes -> {
this.runOnUiThread(() -> {
@@ -136,13 +139,33 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
}
}
});
+
+ imgUpload.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ openPaperCamera();
+ }
+ });
+
+ imgBack.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ }
+ });
}
private void initializeLayouts() {
checkboxCompany = findViewById(R.id.checkbox_company);
checkboxContractor = findViewById(R.id.checkbox_contractor);
+ imgUpload = findViewById(R.id.img_upload);
+ imgBack = findViewById(R.id.img_back);
- paperRecyclerView = findViewById(R.id.paperRecyclerView);
+ ptwRecyclerView = findViewById(R.id.ptwRecyclerView);
+
+ imagePaperAdapter = new PTWImageAdapter(PaperImageList, this, "");
+ ptwRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
+ ptwRecyclerView.setAdapter(imagePaperAdapter);
}
@@ -153,7 +176,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File photoFile = null;
try {
- photoFile = createImageFile("Paper");
+ photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
@@ -284,7 +307,7 @@ public class PermitTwoActivity extends AppCompatActivity implements EasyPermissi
return bitmap;
}
- private File createImageFile(String pathType) throws IOException {
+ private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/SplashActivity.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/SplashActivity.java
new file mode 100644
index 0000000..3551a24
--- /dev/null
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/activities/SplashActivity.java
@@ -0,0 +1,57 @@
+package com.utopiaindustries.hseobservationsapp.activities;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.widget.TextView;
+
+import androidx.activity.EdgeToEdge;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.graphics.Insets;
+import androidx.core.view.ViewCompat;
+import androidx.core.view.WindowInsetsCompat;
+
+import com.utopiaindustries.hseobservationsapp.R;
+import com.utopiaindustries.hseobservationsapp.helper.Helper;
+import com.utopiaindustries.hseobservationsapp.helper.Preference;
+
+public class SplashActivity extends AppCompatActivity {
+
+ private final int TIMER = 1200;
+ boolean isLoggedIn = false;
+ TextView txtVersion;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ EdgeToEdge.enable(this);
+ setContentView(R.layout.activity_splash);
+ ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
+ Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
+ v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
+ return insets;
+ });
+
+ txtVersion = findViewById(R.id.txt_version);
+ txtVersion.setText(getResources().getString(R.string.app_version));
+
+ isLoggedIn = Preference.getMyBooleanPref(Helper.project_file, "isLoggedIn", getApplicationContext());
+
+ new Handler().postDelayed(new Runnable() {
+ public void run() {
+
+ if (isLoggedIn) {
+ Intent myIntent = new Intent(SplashActivity.this, DashboardActivity.class);
+ startActivity(myIntent);
+ overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
+ finish();
+ } else {
+ Intent myIntent = new Intent(SplashActivity.this, LoginActivity.class);
+ startActivity(myIntent);
+ overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
+ finish();
+ }
+ }
+ }, TIMER);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PaperWorkImageAdapter.java b/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PTWImageAdapter.java
similarity index 95%
rename from app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PaperWorkImageAdapter.java
rename to app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PTWImageAdapter.java
index 79206cf..6d3cc6f 100644
--- a/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PaperWorkImageAdapter.java
+++ b/app/src/main/java/com/utopiaindustries/hseobservationsapp/adapters/PTWImageAdapter.java
@@ -29,13 +29,13 @@ import com.utopiaindustries.hseobservationsapp.utils.FullScreenImageDialog;
import java.io.IOException;
import java.util.List;
-public class PaperWorkImageAdapter extends RecyclerView.Adapter {
+public class PTWImageAdapter extends RecyclerView.Adapter {
List imageList;
private Context context;
String classType;
- public PaperWorkImageAdapter(List imageList, Context context, String classType) {
+ public PTWImageAdapter(List imageList, Context context, String classType) {
this.imageList = imageList;
this.context = context;
this.classType = classType;
@@ -73,7 +73,7 @@ public class PaperWorkImageAdapter extends RecyclerView.Adapter formArrayList = new ArrayList<>();
- int selectedOption;
+ int selectedOption = 0;
+ String userName = "";
+ String shiftName = "";
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -62,11 +66,11 @@ public class HomeFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
- View view = inflater.inflate(R.layout.fragment_home , container, false );
+ View view = inflater.inflate(R.layout.fragment_home, container, false);
initializeLayout(view);
- txtUserName.setText("Supervisor Name");
+ txtUserName.setText(String.format("Supervisor Name: %s", userName));
imgCalendar.setOnClickListener(new View.OnClickListener() {
@Override
@@ -79,7 +83,8 @@ public class HomeFragment extends Fragment {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
// Perform action when shiftTextview item is clicked
- Toast.makeText(getActivity(), "Item clicked: " + shiftArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+ //Toast.makeText(getActivity(), "Item clicked: " + shiftArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+ shiftName = shiftArrayList.get(position).getTitle();
}
});
@@ -88,7 +93,7 @@ public class HomeFragment extends Fragment {
@Override
public void onItemClick(AdapterView> parent, View view, int position, long id) {
// Perform action when formTextview item is clicked
- Toast.makeText(getActivity(), "Item clicked: " + formArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
+ // Toast.makeText(getActivity(), "Item clicked: " + formArrayList.get(position).getTitle(), Toast.LENGTH_SHORT).show();
selectedOption = formArrayList.get(position).getId();
}
@@ -97,32 +102,35 @@ public class HomeFragment extends Fragment {
btnNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- switch (selectedOption) {
- case 1:
- startActivity(new Intent(getActivity(), ObservationOneActivity.class));
- break;
- case 2:
- startActivity(new Intent(getActivity(), PermitOneActivity.class));
- break;
- case 3:
- startActivity(new Intent(getActivity(), HseOneActivity.class));
- break;
- case 4:
- startActivity(new Intent(getActivity(), InjuryFormOne.class));
- break;
- case 5:
- startActivity(new Intent(getActivity(), WeeklyFormOne.class));
- break;
- case 6:
- startActivity(new Intent(getActivity(), ProgressiveActivity.class));
- break;
- case 7:
- startActivity(new Intent(getActivity(), OtherHseActivity.class));
- break;
- default:
- Toast.makeText(getActivity(), "No option selected", Toast.LENGTH_SHORT).show();
- break;
- }
+ // if (isValidate()) {
+ switch (selectedOption) {
+ case 1:
+ startActivity(new Intent(getActivity(), ObservationOneActivity.class));
+ break;
+ case 2:
+ startActivity(new Intent(getActivity(), PermitOneActivity.class));
+ break;
+ case 3:
+ startActivity(new Intent(getActivity(), HseOneActivity.class));
+ break;
+ case 4:
+ startActivity(new Intent(getActivity(), InjuryFormOne.class));
+ break;
+ case 5:
+ startActivity(new Intent(getActivity(), WeeklyFormOne.class));
+ break;
+ case 6:
+ startActivity(new Intent(getActivity(), ProgressiveActivity.class));
+ break;
+ case 7:
+ startActivity(new Intent(getActivity(), OtherHseActivity.class));
+ break;
+ default:
+ startActivity(new Intent(getActivity(), ObservationOneActivity.class));
+ // Toast.makeText(getActivity(), "No option selected", Toast.LENGTH_SHORT).show();
+ break;
+ }
+ // }
}
});
@@ -143,6 +151,8 @@ public class HomeFragment extends Fragment {
shiftTextview = view.findViewById(R.id.shift_textview);
formTextview = view.findViewById(R.id.form_textview);
+ userName = Preference.getMyStringPref(Helper.project_file, Helper.logInUser, getActivity());
+
shiftArrayList.add(new Shift(1, "General Shift(08:00AM - 05:00PM)"));
shiftArrayList.add(new Shift(2, "Evening Shift(12:00PM - 09:00PM)"));
shiftArrayList.add(new Shift(3, "Night Shift(09:00PM - 06:00AM)"));
@@ -180,4 +190,30 @@ public class HomeFragment extends Fragment {
);
datePickerDialog.show();
}
+
+ public boolean isValidate() {
+ boolean returnValue = true;
+ String message = "";
+
+ if (selectedOption == 0) {
+ message = "Please select form type.";
+ returnValue = false;
+ }
+
+ if (shiftName.isEmpty()) {
+ message = "Please select shift.";
+ returnValue = false;
+ }
+
+ if (txtDate.getText().toString().isEmpty()) {
+ message = "Please select date.";
+ returnValue = false;
+ }
+
+ if (!returnValue) {
+ Toast.makeText(getActivity(), message, Toast.LENGTH_SHORT).show();
+ }
+
+ return returnValue;
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/img_upload.xml b/app/src/main/res/drawable/img_upload.xml
new file mode 100644
index 0000000..43ea751
--- /dev/null
+++ b/app/src/main/res/drawable/img_upload.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_hse_one.xml b/app/src/main/res/layout/activity_hse_one.xml
index 3518ea7..7b9a9ec 100644
--- a/app/src/main/res/layout/activity_hse_one.xml
+++ b/app/src/main/res/layout/activity_hse_one.xml
@@ -53,6 +53,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_observation_one.xml b/app/src/main/res/layout/activity_observation_one.xml
index 2a19e01..3e6f3d6 100644
--- a/app/src/main/res/layout/activity_observation_one.xml
+++ b/app/src/main/res/layout/activity_observation_one.xml
@@ -22,7 +22,7 @@
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="Form Type"
+ android:text="Observation Form"
android:textColor="@color/white"
android:textSize="@dimen/_15sdp"
app:layout_constraintBottom_toBottomOf="@+id/toolbar"
@@ -61,7 +61,7 @@
android:layout_marginTop="25dp"
android:gravity="left"
android:padding="5dp"
- android:text="Observation Class "
+ android:text="Observation Class *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
@@ -95,7 +95,7 @@
android:layout_marginTop="50dp"
android:gravity="left"
android:padding="5dp"
- android:text="Observation Sub Class "
+ android:text="Observation Sub Class *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
diff --git a/app/src/main/res/layout/activity_permit_one.xml b/app/src/main/res/layout/activity_permit_one.xml
index 051d840..5e79a44 100644
--- a/app/src/main/res/layout/activity_permit_one.xml
+++ b/app/src/main/res/layout/activity_permit_one.xml
@@ -53,6 +53,7 @@
@@ -92,7 +93,7 @@
android:layout_marginTop="5dp"
android:gravity="left"
android:padding="5dp"
- android:text="Sub Location "
+ android:text="Sub Location *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
@@ -123,7 +124,7 @@
android:layout_marginTop="5dp"
android:gravity="left"
android:padding="5dp"
- android:text="PTW Type "
+ android:text="PTW Type *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
@@ -186,7 +187,7 @@
android:layout_marginTop="5dp"
android:gravity="left"
android:padding="5dp"
- android:text="Working Team "
+ android:text="Working Team *"
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 cb18730..ff0fd3a 100644
--- a/app/src/main/res/layout/activity_permit_two.xml
+++ b/app/src/main/res/layout/activity_permit_two.xml
@@ -63,7 +63,7 @@
android:layout_marginTop="5dp"
android:gravity="left"
android:padding="5dp"
- android:text="Working Party "
+ android:text="Working Party *"
android:textColor="@color/black"
android:textSize="@dimen/_13sdp"
android:textStyle="bold" />
@@ -88,20 +88,37 @@
-
+ android:layout_height="wrap_content">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
index 1e67004..4df1d17 100644
--- a/app/src/main/res/layout/fragment_home.xml
+++ b/app/src/main/res/layout/fragment_home.xml
@@ -59,6 +59,7 @@
android:src="@drawable/icon_calendar" />
+
-
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 993f194..edcfcca 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -3,6 +3,8 @@
Hello blank fragment
+ Version 1.0
+
Select Shift
Select Form