diff --git a/examples/example_bestshot/example/.idea/assetWizardSettings.xml b/examples/example_bestshot/example/.idea/assetWizardSettings.xml
index 8934cf4..5d79692 100644
--- a/examples/example_bestshot/example/.idea/assetWizardSettings.xml
+++ b/examples/example_bestshot/example/.idea/assetWizardSettings.xml
@@ -18,7 +18,7 @@
@@ -28,8 +28,8 @@
diff --git a/examples/example_bestshot/example/app/build.gradle b/examples/example_bestshot/example/app/build.gradle
index a55d981..32c7f6c 100644
--- a/examples/example_bestshot/example/app/build.gradle
+++ b/examples/example_bestshot/example/app/build.gradle
@@ -172,7 +172,7 @@ dependencies {
implementation 'com.trello:rxlifecycle-components:1.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
-
+ implementation 'com.google.android.gms:play-services-location:18.0.0'
@@ -181,6 +181,10 @@ dependencies {
implementation 'io.github.inflationx:calligraphy3:3.1.1'
implementation 'io.github.inflationx:viewpump:2.0.3'
+ implementation 'com.android.volley:volley:1.2.1'
+ implementation 'com.github.f0ris.sweetalert:library:1.6.2'
+ /*implementation 'com.github.f0ris.sweetalert:library:1.5.1'*/
+
// implementation('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
// transitive = true;
// }
diff --git a/examples/example_bestshot/example/app/src/main/AndroidManifest.xml b/examples/example_bestshot/example/app/src/main/AndroidManifest.xml
index e7805d4..98fb172 100644
--- a/examples/example_bestshot/example/app/src/main/AndroidManifest.xml
+++ b/examples/example_bestshot/example/app/src/main/AndroidManifest.xml
@@ -11,6 +11,8 @@
+
+
@@ -19,10 +21,35 @@
+ android:theme="@style/AppTheme"
+ android:usesCleartextTraffic="true">
+
+
+
+
+
+
+
+
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/constant/Url.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/constant/Url.java
index dfd7439..ed2c978 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/constant/Url.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/constant/Url.java
@@ -2,5 +2,5 @@ package ru.visionlab.constant;
public class Url {
- public static final String Base_url= "https://reqres.in/api/";
+ public static final String Base_url= "http://huaiglobal.com/api/";
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java
index 7153f4f..6dfd6b6 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/App.java
@@ -2,7 +2,6 @@ package ru.visionlab.femdemo;
import android.app.Application;
import android.os.StrictMode;
-import android.widget.Toast;
//import com.crashlytics.android.Crashlytics;
@@ -90,5 +89,7 @@ public class App extends Application {
void inject(AuthSuccessActivity activity);
void inject(ServerSettingsActivity activity);
+
+ void inject(RegisterFromCheckActivity registerFromCheckActivity);
}
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ApprovalListActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ApprovalListActivity.java
new file mode 100644
index 0000000..cb552e6
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ApprovalListActivity.java
@@ -0,0 +1,119 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.ProgressDialog;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+public class ApprovalListActivity extends AppCompatActivity {
+
+ ImageButton back;
+ TextView RequestIDVal,EmployeeIDVal,EmployeeNameVal,LDateVal,LTimeOutVal,LTimeInVal,NoOfHrsVal,LeaveTypeVal,ApproverIDVal,ApproverNameVal,ReasonVal;
+
+ String RequestID,EmployeeID,EmployeeName,LDate,LTimeOut,LTimeIn,NoOfHrs,LeaveType,ApproverID,ApproverName,Reason;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_approval_list);
+
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ onBackPressed();
+
+ }
+ });
+
+ PermissionApprovalList();
+
+ RequestIDVal = findViewById(R.id.RequestIDVal);
+ EmployeeIDVal = findViewById(R.id.EmployeeIDVal);
+ EmployeeNameVal = findViewById(R.id.EmployeeNameVal);
+ LDateVal = findViewById(R.id.LDateVal);
+ LTimeOutVal = findViewById(R.id.LTimeOutVal);
+ LTimeInVal = findViewById(R.id.LTimeInVal);
+ NoOfHrsVal = findViewById(R.id.NoOfHrsVal);
+ LeaveTypeVal = findViewById(R.id.LeaveTypeVal);
+ ApproverIDVal = findViewById(R.id.ApproverIDVal);
+ ApproverNameVal = findViewById(R.id.ApproverNameVal);
+ ReasonVal = findViewById(R.id.ReasonVal);
+
+
+
+ }
+
+ public void PermissionApprovalList(){
+ final ProgressDialog loading = ProgressDialog.show(ApprovalListActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionApprovallist?ApproverID=27256";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ try {
+ JSONArray jsonArray=new JSONArray(response);
+ JSONObject jb1=jsonArray.getJSONObject(0);
+ RequestID = jb1.getString("RequestID");
+ EmployeeID = jb1.getString("EmployeeID");
+ EmployeeName = jb1.getString("EmployeeName");
+ LDate = jb1.getString("LDate");
+ LTimeOut = jb1.getString("LTimeOut");
+ LTimeIn = jb1.getString("LTimeIn");
+ NoOfHrs = jb1.getString("NoOfHrs");
+ LeaveType = jb1.getString("LeaveType");
+ ApproverID = jb1.getString("ApproverID");
+ ApproverName = jb1.getString("ApproverName");
+ Reason = jb1.getString("Reason");
+
+ RequestIDVal.setText(RequestID);
+ EmployeeIDVal.setText(EmployeeID);
+ EmployeeNameVal.setText(EmployeeName);
+ LDateVal.setText(LDate);
+ LTimeOutVal.setText(LTimeOut);
+ LTimeInVal.setText(LTimeIn);
+ NoOfHrsVal.setText(NoOfHrs);
+ LeaveTypeVal.setText(LeaveType);
+ ApproverIDVal.setText(ApproverID);
+ ApproverNameVal.setText(ApproverName);
+ ReasonVal.setText(Reason);
+
+
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(ApprovalListActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(ApprovalListActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java
index 83286ec..feaf1b7 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInActivity.java
@@ -1,26 +1,57 @@
package ru.visionlab.femdemo;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.LinearLayoutCompat;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
+import android.location.Location;
import android.os.Bundle;
+import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
-import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
-import android.widget.Button;
import android.widget.ImageView;
-import android.widget.PopupMenu;
+import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+import com.google.android.gms.location.FusedLocationProviderClient;
+import com.google.android.gms.tasks.OnSuccessListener;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+import javax.inject.Inject;
+
+import cn.pedant.SweetAlert.SweetAlertDialog;
+import ru.visionlab.femdemo.authentication.AuthSuccessActivity;
import ru.visionlab.femdemo.login.LoginActivity;
-import ru.visionlab.femdemo.register.RegisterActivityNew;
+import ru.visionlab.femdemo.login.LoginActivityNew;
+import ru.visionlab.femdemo.register.RegisterActivity;
+import ru.visionlab.femdemo.settings.VLPreferences;
public class CheckInActivity extends AppCompatActivity {
@@ -28,19 +59,108 @@ public class CheckInActivity extends AppCompatActivity {
ImageView menu;
AlertDialog dialogBuilder;
+ TextView btnCheckIn,btnCheckOut;
+
+ private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
+ private FusedLocationProviderClient fusedLocationClient;
+
+ String targetLat1="",targetlat2="",targetLon1="",targetLon2="";
+
+ SharedPreferences sharedPreferences;
+
+ private Context mContext;
+
+ boolean FromRegister=true,FromRegisterCheck,backToCheck;
+
+ private static boolean RUN_ONCE = true;
+ boolean checkInprssd = false;
+
+ String valueFromApiCheckIn,valueFromApiCheckInFromReg,valueEmer;
+
+ LinearLayoutCompat checkSuccess;
+
+ TextView txtSuccess;
+
+ @Inject
+ VLPreferences preferences;
+
+ String login="", currentDateAndTime;
+
+ RelativeLayout rel3;
+
+ boolean _approverstatus;
+
+
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_checkin);
+
+
+ checkSuccess = findViewById(R.id.checkSuccess);
+ txtSuccess = findViewById(R.id.txtSuccess);
+
+
+
+ Intent intent = getIntent();
+ FromRegister = intent.getBooleanExtra("FromRegister",false);
+ FromRegisterCheck = intent.getBooleanExtra("FromRegisterCheck",false);
+ backToCheck = intent.getBooleanExtra("backToCheck",false);
+ valueFromApiCheckInFromReg = intent.getStringExtra("valueFromApiCheckIn");
+ System.out.println("Value of FromRegisterCheck "+FromRegisterCheck + FromRegister + " "+backToCheck + " " + valueFromApiCheckInFromReg);
+
+ login = intent.getStringExtra("UserName");
+ System.out.println("Value of loginUserName "+login);
+ /*if(login == null){
+ login = "";
+ }
+ else{
+ login = "User";
+
+ }*/
+ leaveApprover();
+
+ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss ");
+
+ // on below line we are creating a variable
+ // for current date and time and calling a simple date format in it.
+ currentDateAndTime = sdf.format(new Date());
+
+ System.out.println("Current date and time " + currentDateAndTime);
+
+ SharedPreferences shared = getSharedPreferences("MyPrefs", MODE_PRIVATE);
+ String loginFromShare = shared.getString("login", "");
+ String Descriptor = shared.getString("Descriptor", "");
+
+
+
+
+
+
+
+
+
+
+ sharedPreferences= this.getSharedPreferences("MyPrefs", MODE_PRIVATE);
+ String userId = sharedPreferences.getString("id", "");
+
+
+
+ System.out.println("Value of userId: "+ userId);
+
logout = findViewById(R.id.logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- Intent intent = new Intent(CheckInActivity.this, LoginActivity.class);
+
+
+ Intent intent = new Intent(CheckInActivity.this, LoginActivityNew.class);
startActivity(intent);
+ finish();
}
});
@@ -49,36 +169,95 @@ public class CheckInActivity extends AppCompatActivity {
@Override
public void onClick(View view) {
LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
- view = inflater.inflate(R.layout.layout, null);
+ view = inflater.inflate(R.layout.layout, null);
TextView popup_log_out = view.findViewById(R.id.popup_log_out);
+ login = "";
+
+
+ rel3 = view.findViewById(R.id.rel3);
+ if(!_approverstatus){
+ rel3.setVisibility(View.GONE);
+ }
+
+
+
popup_log_out.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- Intent intent = new Intent(CheckInActivity.this, LoginActivity.class);
+ Intent intent = new Intent(CheckInActivity.this, LoginActivityNew.class);
+ startActivity(intent);
+ finish();
+ }
+ });
+ System.out.println("Value of username "+ login);
+ if(login==""){
+
+ login = "User";
+
+ }
+ else{
+ System.out.println("Value of username in else "+ login);
+ login = intent.getStringExtra("UserName");
+ }
+
+
+
+
+
+ TextView username = view.findViewById(R.id.username);
+ username.setText(loginFromShare);
+
+ TextView request = view.findViewById(R.id.request);
+
+ TextView permissionApproval = view.findViewById(R.id.permissionApproval);
+ permissionApproval.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(CheckInActivity.this, ApprovalListActivity.class);
startActivity(intent);
}
});
+ request.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(CheckInActivity.this, PermissionRequestActivity.class);
+ startActivity(intent);
+ //leaveApprover();
+ }
+ });
+ TextView report = view.findViewById(R.id.report);
+ report.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+
- /*Button btn_confirm = view.findViewById(R.id.btn_confirm);
- Button btn_cancel = view.findViewById(R.id.btn_cancel);
- TextView txt_title = view.findViewById(R.id.txt_title);
- TextView txt_content = view.findViewById(R.id.txt_content);
+ Intent intent = new Intent(CheckInActivity.this, ReportActivity.class);
+ startActivity(intent);
+ //getReport();
+ //checkIn();
+ }
+ });
+
+ TextView emergency = view.findViewById(R.id.emergency);
+ emergency.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ emergencySos();
+ }
+ });
- btn_cancel.setVisibility(View.GONE);
- btn_confirm.setText("OK");
- txt_title.setText("WARNING");
- txt_content.setText("This job is not active. Please synchronize to get the latest data, then contact your coordinator if needed.");*/
final AlertDialog alertDialog = new AlertDialog.Builder(CheckInActivity.this)
.setView(view)
.create();
alertDialog.show();
- alertDialog.getWindow().setLayout(600,460);
- alertDialog.getWindow().setGravity(Gravity.TOP|Gravity.LEFT);
+ // alertDialog.getWindow().setLayout(780, );
+ alertDialog.getWindow().setGravity(Gravity.TOP | Gravity.LEFT);
alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
@@ -87,60 +266,635 @@ public class CheckInActivity extends AppCompatActivity {
params.horizontalMargin = -100;
alertDialog.getWindow().setAttributes(params);
- /*btn_confirm.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- alertDialog.cancel();
- }
- });
- btn_cancel.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- alertDialog.cancel();
- }
- });*/
}
});
- /*menu.setOnClickListener(new View.OnClickListener() {
+
+ btnCheckIn = findViewById(R.id.btnCheckIn);
+ btnCheckIn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ System.out.println("Clicked check in button");
+ checkInprssd = true;
+ System.out.println(checkInprssd);
+ //requestLocationUpdates();
+ if (ContextCompat.checkSelfPermission(CheckInActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION)
+ == PackageManager.PERMISSION_GRANTED) {
+ // Permission granted, so request location updates
+ //requestLocationUpdates();
+ targetLocationListFromCheckIn();
- // instance of alert dialog to build alert dialog
- AlertDialog.Builder builder = new AlertDialog.Builder(CheckInActivity.this);
- builder.setIcon(R.drawable.andrew);
- builder.setTitle("Andrew Bahl");
- // builder.setMessage("Bottom Alert dialog");
+ } else {
+ // Permission not granted, request it
+ ActivityCompat.requestPermissions(CheckInActivity.this,
+ new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
+ LOCATION_PERMISSION_REQUEST_CODE);
+ }
+ }
+ });
+ btnCheckOut = findViewById(R.id.btnCheckOut);
+ btnCheckOut.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ System.out.println("Clicked check in button");
- // set the neutral button to do some actions
- builder.setNeutralButton("Logout", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- Intent intent = new Intent(CheckInActivity.this, LoginActivity.class);
- startActivity(intent);
+ //requestLocationUpdates();
+ if (ContextCompat.checkSelfPermission(CheckInActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION)
+ == PackageManager.PERMISSION_GRANTED) {
+ // Permission granted, so request location updates
+ // requestLocationUpdates();
+ targetLocationListFromCheckOut();
+
+ } else {
+ // Permission not granted, request it
+ ActivityCompat.requestPermissions(CheckInActivity.this,
+ new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
+ LOCATION_PERMISSION_REQUEST_CODE);
+ }
+ }
+ });
+
+ SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putBoolean("loggedBefore",true);
+ editor.apply();
+
+ runOnce();
+
+ }
+
+ private void runOnce() {
+ if (RUN_ONCE) {
+ RUN_ONCE = false;
+ FromRegister = true;
+
+ // do something
+ }
+ else {
+
+ new SweetAlertDialog(CheckInActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText(valueFromApiCheckIn)
+ .setConfirmText("OK")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText(valueFromApiCheckInFromReg).show();
+
+ /*if(FromRegister){
+ new SweetAlertDialog(CheckInActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText("You have checked in successfully")
+ .setConfirmText("Thanks you.")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText("Have a productive day").show();
+ }
+ else{
+ new SweetAlertDialog(CheckInActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText("You have checked out successfully")
+ .setConfirmText("Thanks you.")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText("").show();
+ }*/
+
+ /*if(!backToCheck) {
+ if(checkInprssd){
+ new SweetAlertDialog(CheckInActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText("You have checked in successfully")
+ .setConfirmText("Thanks you.")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText("Have a productive day").show();
}
- });
- // show the alert dialog
- AlertDialog alertDialog = builder.create();
- alertDialog.show();
- alertDialog.getWindow().setLayout(800,400);
- alertDialog.getWindow().setGravity(Gravity.TOP);
- *//*PopupMenu popupMenu = new PopupMenu(CheckInActivity.this, menu);
- popupMenu.getMenuInflater().inflate(R.menu.navigation_menu, popupMenu.getMenu());
- popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+
+ }*/
+ }
+ }
+
+ private void requestLocationUpdates() {
+ if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
+ fusedLocationClient = new FusedLocationProviderClient(getApplicationContext());
+ fusedLocationClient.getLastLocation()
+ .addOnSuccessListener(this, new OnSuccessListener() {
@Override
- public boolean onMenuItemClick(MenuItem menuItem) {
- // Toast message on menu item clicked
- Toast.makeText(CheckInActivity.this, "You Clicked " + menuItem.getTitle(), Toast.LENGTH_SHORT).show();
- return true;
+ public void onSuccess(Location location) {
+ if (location != null) {
+ double latitude = location.getLatitude();
+ double longitude = location.getLongitude();
+
+ // Do something with the latitude and longitude
+ String message = "Latitude: " + latitude + "\nLongitude: " + longitude;
+ System.out.println("My current location: "+ message);
+ Toast.makeText(CheckInActivity.this, message, Toast.LENGTH_SHORT).show();
+ Location target = new Location("");
+ target.setLatitude(latitude);
+ target.setLongitude(longitude);
+
+ Location current = new Location("");
+ current.setLatitude(20.5109958);
+ current.setLongitude(88.4009709);
+
+ float distance = current.distanceTo(target);
+ System.out.println("Distance: "+distance);
+ if(distance<500){
+ Toast.makeText(CheckInActivity.this, "You are out of range!Please get back to location", Toast.LENGTH_SHORT).show();
+ //showFailedDialog();
+ }
+ else{
+ //showSuccessDialog();
+ Toast.makeText(CheckInActivity.this, "Attendance ready to be captured", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(CheckInActivity.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ startActivity(intent);
+ }
+ } else {
+ Toast.makeText(CheckInActivity.this, "Location not available", Toast.LENGTH_SHORT).show();
+ }
}
});
- // Showing the popup menu
- popupMenu.show();*//*
+
+
+ }
+ public void leaveApprover(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Authenticating", "Please wait while logging", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/IsELeaveApprover?employeeid=27256";
+ //String url= "http://43.242.212.92:7001/api/lgt/IsELeaveApprover?employeeid=29034";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ try {
+ JSONArray jsonArray=new JSONArray(response);
+ JSONObject jb1=jsonArray.getJSONObject(0);
+ _approverstatus=jb1.getBoolean("_approverstatus");
+
+
+
+ System.out.println("_approverstatus " + _approverstatus);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+
+ public void emergencySos(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Authenticating", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/EmargencySOS";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ JSONObject jsonObject= null;
+ try {
+ jsonObject = new JSONObject(response);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ try {
+ valueEmer = jsonObject.getString("_statusMessage");
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ Toast.makeText(CheckInActivity.this, valueEmer, Toast.LENGTH_LONG).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "29034");
+ params.put("userid", "skumar");
+
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+ public void getReport(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Authenticating", "Please wait ", false, false);
+ //String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport";
+ String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport?employeeid="+"101"+"&fromdate="+"06/06/2023"+"&todate="+"06/07/2023";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ Toast.makeText(CheckInActivity.this, "Response successful", Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ /*params.put("employeeid", "101");
+ params.put("fromdate", "06/06/2023");
+ params.put("todate", "06/07/2023");*/
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+ public void checkIn(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Checking in", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/CheckIn";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+
+
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ valueFromApiCheckIn = jsonObject.getString("_statusMessage");
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+ Toast.makeText(CheckInActivity.this, valueFromApiCheckIn, Toast.LENGTH_LONG).show();
+
+ Intent intent = new Intent(CheckInActivity.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ intent.putExtra("valueFromApiCheckIn",valueFromApiCheckIn);
+ startActivity(intent);
+
+
+ loading.dismiss();
+
+
+ }
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "101");
+ params.put("location", "loca1");
+ params.put("latitude", "10.235");
+ params.put("longitude", "55.666");
+ params.put("checkintime", currentDateAndTime);
+ params.put("locStateDevice", "1");
+ params.put("locStateApp", "1");
+ params.put("batteryPercent", "1");
+ params.put("cellInfo", "1");
+ params.put("accuracy", "1");
+ params.put("locTS", "1");
+ params.put("spoofingEnb", "0");
+ params.put("providerNetTime", "10/07/2023 12:10:05");
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+ public void checkOut(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Checking out", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/CheckOut";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ valueFromApiCheckIn = jsonObject.getString("_statusMessage");
+
+ System.out.println("Value from api check out "+valueFromApiCheckIn);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+ Log.d("data-=>",response);
+ Toast.makeText(CheckInActivity.this, valueFromApiCheckIn, Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(CheckInActivity.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ intent.putExtra("valueFromApiCheckIn",valueFromApiCheckIn);
+ startActivity(intent);
+ /*new SweetAlertDialog(CheckInActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText("You have successfully checked out.")
+ .setConfirmText("Face recognition")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText("Thank you.").show();*/
+ loading.dismiss();
+ }
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "29034");
+ params.put("location", "loca1");
+ params.put("latitude", "10.235");
+ params.put("longitude", "55.666");
+ params.put("checkouttime", currentDateAndTime);
+ params.put("locStateDevice", "1");
+ params.put("locStateApp", "1");
+ params.put("batteryPercent", "1");
+ params.put("cellInfo", "1");
+ params.put("accuracy", "1");
+ params.put("locTS", "1");
+ params.put("spoofingEnb", "0");
+ params.put("providerNetTime", "10/07/2023 12:10:05");
+
+ return params;
}
- });*/
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
}
+ public void targetLocationListFromCheckIn(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Checking location", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/EmployeeLocation?employeeid=29034";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ JSONArray jsonArray=jsonObject.getJSONArray("_lstEmployee_Location");
+ /*for(int i=0;i",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+
+ public void targetLocationListFromCheckOut(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInActivity.this, "Checking location", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/EmployeeLocation?employeeid=29034";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ JSONArray jsonArray=jsonObject.getJSONArray("_lstEmployee_Location");
+ /*for(int i=0;i",error.getMessage());
+ Toast.makeText(CheckInActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(CheckInActivity.this).add(stringRequest);
+ }
+
+ private void showSuccessDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Success");
+ builder.setMessage("Attendance ready to be captured.");
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Perform any necessary action when the user clicks the "OK" button.
+ dialog.dismiss(); // Close the dialog.
+ }
+ });
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+ private void showFailedDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Failed");
+ builder.setMessage("You are out of range!Please get back to location");
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Perform any necessary action when the user clicks the "OK" button.
+ dialog.dismiss(); // Close the dialog.
+ }
+ });
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
+ @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+ if (requestCode == LOCATION_PERMISSION_REQUEST_CODE) {
+ if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ // Permission granted, so request location updates
+ requestLocationUpdates();
+ } else {
+ Toast.makeText(this, "Location permission denied", Toast.LENGTH_SHORT).show();
+ }
+ }
+ }
+
}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInNewActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInNewActivity.java
new file mode 100644
index 0000000..a80194b
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/CheckInNewActivity.java
@@ -0,0 +1,211 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.location.Location;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import cn.pedant.SweetAlert.SweetAlertDialog;
+import ru.visionlab.femdemo.register.RegisterActivity;
+
+public class CheckInNewActivity extends AppCompatActivity {
+
+ TextView btnCheckIn,btnCheckOut;
+ private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
+
+ String targetLat1="",targetlat2="",targetLon1="",targetLon2="";
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_check_in_new);
+
+ /*new SweetAlertDialog(CheckInNewActivity.this, SweetAlertDialog.SUCCESS_TYPE)
+ .setTitleText("You have successfully checked out.")
+ .setConfirmText("Face recognition")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+ }
+ })
+ .setContentText("Thank you.").show();*/
+
+ btnCheckIn = findViewById(R.id.btnCheckIn);
+ btnCheckIn.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ System.out.println("Clicked check in button");
+ //requestLocationUpdates();
+ if (ContextCompat.checkSelfPermission(CheckInNewActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION)
+ == PackageManager.PERMISSION_GRANTED) {
+ // Permission granted, so request location updates
+ //requestLocationUpdates();
+ targetLocationListFromCheckIn();
+
+ } else {
+ // Permission not granted, request it
+ ActivityCompat.requestPermissions(CheckInNewActivity.this,
+ new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
+ LOCATION_PERMISSION_REQUEST_CODE);
+ }
+ }
+ });
+ }
+
+ public void targetLocationListFromCheckIn(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInNewActivity.this, "Checking location", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/EmployeeLocation?employeeid=29034";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ JSONArray jsonArray=jsonObject.getJSONArray("_lstEmployee_Location");
+ /*for(int i=0;i",error.getMessage());
+ Toast.makeText(CheckInNewActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(CheckInNewActivity.this).add(stringRequest);
+ }
+
+ public void checkIn(){
+ final ProgressDialog loading = ProgressDialog.show(CheckInNewActivity.this, "Checking in", "Please wait while checking", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/CheckIn";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+
+
+
+ Toast.makeText(CheckInNewActivity.this, "Attendance captured", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(CheckInNewActivity.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ intent.putExtra("FromNewCheck",true);
+ startActivity(intent);
+
+
+ loading.dismiss();
+
+
+ }
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(CheckInNewActivity.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "101");
+ params.put("location", "loca1");
+ params.put("latitude", "10.235");
+ params.put("longitude", "55.666");
+ params.put("checkintime", "10/07/2023 12:10:05");
+ params.put("locStateDevice", "1");
+ params.put("locStateApp", "1");
+ params.put("batteryPercent", "1");
+ params.put("cellInfo", "1");
+ params.put("accuracy", "1");
+ params.put("locTS", "1");
+ params.put("spoofingEnb", "0");
+ params.put("providerNetTime", "10/07/2023 12:10:05");
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(CheckInNewActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestActivity.java
new file mode 100644
index 0000000..abd2d09
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestActivity.java
@@ -0,0 +1,47 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+
+public class LeaveRequestActivity extends AppCompatActivity {
+ LinearLayout lin1,lin2;
+
+ ImageButton back;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_leave_request);
+
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onBackPressed();
+ }
+ });
+
+ lin1 = findViewById(R.id.lin1);
+ lin1.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(LeaveRequestActivity.this, LeaveRequestDetailsActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ lin2 = findViewById(R.id.lin2);
+ lin2.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(LeaveRequestActivity.this, LeaveRequestDetailsActivity.class);
+ startActivity(intent);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestDetailsActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestDetailsActivity.java
new file mode 100644
index 0000000..280fc85
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/LeaveRequestDetailsActivity.java
@@ -0,0 +1,115 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.ProgressDialog;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import ru.visionlab.femdemo.R;
+
+public class LeaveRequestDetailsActivity extends AppCompatActivity {
+
+ Button btnapprove,btnreject;
+
+ ImageButton back;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_leave_request_details);
+
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onBackPressed();
+ }
+ });
+
+ btnapprove = findViewById(R.id.btnapprove);
+ btnapprove.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ PermissionApprovalAction();
+ }
+ });
+
+ btnreject = findViewById(R.id.btnreject);
+ }
+
+ public void PermissionApprovalAction(){
+
+
+ final ProgressDialog loading = ProgressDialog.show(LeaveRequestDetailsActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionApprovalAction";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+
+ try {
+ JSONObject jsonObject = new JSONObject(response);
+ String _statusMessage3 = jsonObject.getString("_statusMessage");
+ System.out.println("_statusMessage "+_statusMessage3);
+ if(_statusMessage3.equals("Saved Successfully")){
+ Toast.makeText(LeaveRequestDetailsActivity.this, "Current Status :A", Toast.LENGTH_SHORT).show();
+ }
+
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+
+
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(LeaveRequestDetailsActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("permissionID", "27507");
+ params.put("eleavetype", "27256");
+ params.put("actionby", "asaif");
+ params.put("remark", "Testing Approve");
+ params.put("actionflag", "A");
+
+
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(LeaveRequestDetailsActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/PermissionRequestActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/PermissionRequestActivity.java
new file mode 100644
index 0000000..d1e026f
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/PermissionRequestActivity.java
@@ -0,0 +1,383 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.ProgressDialog;
+import android.app.TimePickerDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.TimePicker;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+
+import ru.visionlab.femdemo.R;
+import ru.visionlab.femdemo.login.LoginActivity;
+
+public class PermissionRequestActivity extends AppCompatActivity {
+
+ ImageButton back;
+ Button btnSubmit,btn_private;
+ String _statusMessage;
+ EditText edtRemarks;
+ String remarks="";
+ LinearLayout timePickerFrom,timePickerTo;
+ private int mDay, mHour, mMinute;
+ TextView textTimeFrom,textTimeTo;
+
+ LinearLayout linearLayout1;
+
+ Spinner spinner;
+
+ String permission_type;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_permission_request);
+ linearLayout1 = findViewById(R.id.linearLayout1);
+
+ IsELeaveApprover();
+ //PermissionInsert();
+ PermissionApprovalList();
+ PermissionTypes();
+
+
+ spinner = findViewById(R.id.spinner);
+ ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_items, android.R.layout.simple_spinner_item);
+ adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spinner.setAdapter(adapter);
+
+ spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parentView, View selectedItemView, int position, long id) {
+ // Handle the selected item here
+ permission_type = parentView.getItemAtPosition(position).toString();
+ System.out.println("Value of permission_type "+permission_type);
+ // Do something with the selected item
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parentView) {
+ // Handle the case where nothing is selected (if needed)
+ }
+ });
+
+
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ /*Intent intent = new Intent(PermissionRequestActivity.this, CheckInActivity.class);
+ intent.putExtra("backToCheck",true);
+ startActivity(intent);*/
+ onBackPressed();
+
+ }
+ });
+
+ btn_private = findViewById(R.id.btn_private);
+ btn_private.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(PermissionRequestActivity.this, LeaveRequestActivity.class);
+ startActivity(intent);
+ }
+ });
+
+ btnSubmit = findViewById(R.id.btnSubmit);
+ btnSubmit.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ getPermission();
+ }
+ });
+ edtRemarks = findViewById(R.id.edtRemarks);
+
+ timePickerFrom = findViewById(R.id.timePickerFrom);
+ textTimeFrom = findViewById(R.id.textTimeFrom);
+ timePickerFrom.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ final Calendar c = Calendar.getInstance();
+ mHour = c.get(Calendar.HOUR_OF_DAY);
+ mMinute = c.get(Calendar.MINUTE);
+
+ // Launch Time Picker Dialog
+ TimePickerDialog timePickerDialog = new TimePickerDialog(PermissionRequestActivity.this,
+ new android.app.TimePickerDialog.OnTimeSetListener() {
+
+ @Override
+ public void onTimeSet(TimePicker view, int hourOfDay,
+ int minute) {
+
+
+
+ textTimeFrom.setText(hourOfDay + ":" + minute);
+ }
+ }, mHour, mMinute, false);
+ timePickerDialog.show();
+ }
+ });
+ timePickerTo = findViewById(R.id.timePickerTo);
+ textTimeTo = findViewById(R.id.textTimeTo);
+ timePickerTo.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ final Calendar c = Calendar.getInstance();
+ mHour = c.get(Calendar.HOUR_OF_DAY);
+ mMinute = c.get(Calendar.MINUTE);
+
+ // Launch Time Picker Dialog
+ TimePickerDialog timePickerDialog = new TimePickerDialog(PermissionRequestActivity.this,
+ new android.app.TimePickerDialog.OnTimeSetListener() {
+
+ @Override
+ public void onTimeSet(TimePicker view, int hourOfDay,
+ int minute) {
+
+
+
+ textTimeTo.setText(hourOfDay + ":" + minute);
+ }
+ }, mHour, mMinute, false);
+ timePickerDialog.show();
+ }
+ });
+
+
+
+
+ }
+
+ public void getPermission(){
+ final ProgressDialog loading = ProgressDialog.show(PermissionRequestActivity.this, "Fetching information", "Please wait ", false, false);
+ remarks = edtRemarks.getText().toString();
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionInsert";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ JSONObject jsonObject= null;
+ try {
+ jsonObject = new JSONObject(response);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ try {
+ _statusMessage = jsonObject.getString("_statusMessage");
+ System.out.println("Status message: "+_statusMessage);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ Toast.makeText(PermissionRequestActivity.this, _statusMessage, Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(PermissionRequestActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "101");
+ params.put("eleavetype", "P");
+ params.put("datedaytype", "Today");
+ params.put("fromtime", "13:22");
+ params.put("totime", "15:22");
+ params.put("reason", remarks);
+ params.put("attachment", "");
+ params.put("userid", "a");
+
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(PermissionRequestActivity.this).add(stringRequest);
+ }
+ public void IsELeaveApprover(){
+
+
+ final ProgressDialog loading = ProgressDialog.show(PermissionRequestActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/IsELeaveApprover?employeeid=29034";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+
+ try {
+ JSONArray jsonArray=new JSONArray(response);
+ JSONObject jb1=jsonArray.getJSONObject(0);
+ boolean _approverstatus=jb1.getBoolean("_approverstatus");
+
+ if(!_approverstatus){
+ linearLayout1.setVisibility(View.GONE);
+ }
+
+
+ System.out.println("_approverstatus " + _approverstatus);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+
+
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(PermissionRequestActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(PermissionRequestActivity.this).add(stringRequest);
+ }
+
+ public void PermissionInsert(){
+ final ProgressDialog loading = ProgressDialog.show(PermissionRequestActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionInsert";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ try {
+ JSONObject jsonObject = new JSONObject(response);
+ String _statusMessage = jsonObject.getString("_statusMessage");
+ System.out.println("_statusMessage "+_statusMessage);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(PermissionRequestActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ params.put("employeeid", "101");
+ params.put("eleavetype", "P");
+ params.put("datedaytype", "Today");
+ params.put("fromtime", "13:22");
+ params.put("totime", "15:22");
+ params.put("reason", "Meeting");
+ params.put("attachment", "");
+ params.put("userid", "a");
+ params.put("startdate", "demouser1");
+ params.put("enddate", "");
+
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(PermissionRequestActivity.this).add(stringRequest);
+ }
+ public void PermissionApprovalList(){
+ final ProgressDialog loading = ProgressDialog.show(PermissionRequestActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionApprovallist?ApproverID=27256";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Toast.makeText(PermissionRequestActivity.this, "Response successful1", Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(PermissionRequestActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(PermissionRequestActivity.this).add(stringRequest);
+ }
+ public void PermissionTypes(){
+ final ProgressDialog loading = ProgressDialog.show(PermissionRequestActivity.this, "Fetching information", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/PermissionTypes";
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Toast.makeText(PermissionRequestActivity.this, "Response successful2", Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(PermissionRequestActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+
+ };
+ Volley.newRequestQueue(PermissionRequestActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/RegisterFromCheckActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/RegisterFromCheckActivity.java
new file mode 100644
index 0000000..0f22b92
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/RegisterFromCheckActivity.java
@@ -0,0 +1,565 @@
+package ru.visionlab.femdemo;
+
+import android.Manifest;
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.media.MediaScannerConnection;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Environment;
+import android.os.Handler;
+import android.provider.MediaStore;
+import android.util.Base64;
+import android.util.Log;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.tbruyelle.rxpermissions.RxPermissions;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.net.SocketException;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import butterknife.BindView;
+import cn.pedant.SweetAlert.SweetAlertDialog;
+import ru.PreferenceManager.PreferenceManager;
+import ru.visionlab.femdemo.CheckInActivity;
+import ru.visionlab.femdemo.Config;
+import ru.visionlab.femdemo.Core.PhotoProcessor;
+import ru.visionlab.femdemo.App;
+import ru.visionlab.femdemo.BuildConfig;
+import ru.visionlab.femdemo.LocationHelper;
+import ru.visionlab.femdemo.R;
+import ru.visionlab.femdemo.Storage;
+import ru.visionlab.femdemo.Utils;
+import ru.visionlab.femdemo.api.RegisterApiImplLuna2;
+import ru.visionlab.femdemo.api.RegisterApiImplLocal;
+import ru.visionlab.femdemo.api.RegisterApiInterface;
+import ru.visionlab.femdemo.api.VLApi;
+import ru.visionlab.femdemo.api.VerifyApiImplLuna2;
+import ru.visionlab.femdemo.api.VerifyApiImplLunaLocal;
+import ru.visionlab.femdemo.api.VerifyApiInterface;
+import ru.visionlab.femdemo.authentication.AuthSuccessActivity;
+import ru.visionlab.femdemo.authentication.AuthenticationActivity;
+import ru.visionlab.femdemo.authentication.FaceNotRecognizedFragment;
+import ru.visionlab.femdemo.base.PhotoFragment;
+import ru.visionlab.femdemo.base.ToolbarActivity;
+import ru.visionlab.femdemo.login.LoginActivity;
+import ru.visionlab.femdemo.login.LoginActivityNew;
+import ru.visionlab.femdemo.models.SearchResult;
+import ru.visionlab.femdemo.models.SearchResultPerson;
+import ru.visionlab.femdemo.register.FaceNotFoundFragment;
+import ru.visionlab.femdemo.register.RegisterFragment;
+import ru.visionlab.femdemo.register.RegistrationModel;
+import ru.visionlab.femdemo.register.SavePhotoFragment;
+import ru.visionlab.femdemo.settings.VLPreferences;
+
+public class RegisterFromCheckActivity extends ToolbarActivity implements RegisterFragment.Listener, PhotoFragment.Listener,
+ SavePhotoFragment.Listener, FaceNotFoundFragment.Listener, RegisterApiInterface.Listener, VerifyApiInterface.Listener, FaceNotRecognizedFragment.Listener{
+
+ public static final String REGISTER_FRAGMENT = "REGISTER FRAGMENT";
+ public static final String PHOTO_FRAGMENT = "PHOTO_FRAGMENT";
+ public static final String SAVE_PHOTO_FRAGMENT = "SAVE PHOTO FRAGMENT";
+ public static final String FACE_NOT_FOUND_FRAGMENT = "FACE NOT FOUND FRAGMENT";
+ public static final String SAVE_PHOTO_NAME = "PhotomakerAndroidDemo Registration Photo";
+ private Thread thread;
+ EditText compId,username,otp;
+ String company_ID="",user="",OTP="";
+
+
+ @Inject
+ VLPreferences preferences;
+
+ @Inject
+ VLApi api;
+
+ @Inject
+ LocationHelper locationHelper;
+
+ @Inject
+ PhotoProcessor photoProcessor;
+ @Nullable
+ @BindView(R.id.toolbar)
+ Toolbar toolbar;
+
+ Bitmap bitmap;
+
+ RegistrationModel registrationModel;
+
+ ImageButton back_img;
+ Button verifynproceed;
+ ImageView photo;
+ private static final int pic_id = 123;
+ PreferenceManager preferenceManager;
+ Bitmap photo2=null;
+ Button save,retry;
+ String encodedImage="";
+ boolean fromLoginPage,FromNewCheck;
+ private PhotoFragment fragment;
+ String login;
+ private long verifEndTime;
+ private long verifStartTime;
+
+ private int faceFailCount;
+
+ private boolean goingSomewhere = false;
+
+ @SuppressLint("MissingInflatedId")
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ ((App) getApplication()).getComponent().inject(this);
+ setContentView(R.layout.activity_register);
+
+ //ButterKnife.bind(this);
+ setToolbar();
+ Intent intent = getIntent();
+ fromLoginPage = intent.getBooleanExtra("FromLoginPage",true);
+ System.out.println("Value of FromLoginPage "+fromLoginPage);
+ if(fromLoginPage){
+ showPhotoScreen();
+ }
+ else {
+ showRegisterScreen();
+ }
+ FromNewCheck = intent.getBooleanExtra("FromLoginPage",false);
+ System.out.println("Value of FromNewCheck "+FromNewCheck);
+
+
+ /*back_img.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
+ startActivity(intent);
+ }
+ });*/
+ // compId = findViewById(R.id.compId);
+// username = findViewById(R.id.username);
+ // otp = findViewById(R.id.otp);
+
+
+ // company_ID = compId.getText().toString().trim();
+// user = username.getText().toString().trim();
+ // OTP = otp.getText().toString().trim();
+
+ /*verifynproceed = findViewById(R.id.verifynproceed);
+ verifynproceed.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if(company_ID.equals("002") *//*&& user.equals("34") *//* && OTP.equals("444")){
+ Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
+ startActivity(intent);
+ }
+ }
+ });*/
+
+ preferenceManager=PreferenceManager.getInstance(this);
+ }
+
+ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ // Match the request 'pic id with requestCode
+ if (requestCode == pic_id) {
+ // BitMap is data structure of image file which store the image in memory
+ photo2 = (Bitmap) data.getExtras().get("data");
+ // Set the image in imageview for display
+
+ if(photo2.equals("") || photo2==null){
+ photo.setBackgroundResource(R.drawable.user1);
+
+ }
+ else {
+ photo.setImageDrawable(null);
+ photo.setImageBitmap(photo2);
+ System.out.println("imageview "+ photo.getDrawable());
+ System.out.println("imageview photo2 "+ photo2);
+
+ Toast.makeText(this, "Image set", Toast.LENGTH_SHORT).show();
+ }
+
+ }
+ }
+
+ @Override
+ protected void onDestroy()
+ {
+ photoProcessor.release();
+ super.onDestroy();
+ }
+
+ private void showRegisterScreen() {
+ final RegisterFragment fragment = RegisterFragment.newInstance();
+ fragment.setListener(this);
+ getSupportFragmentManager()
+ .beginTransaction()
+ .replace(R.id.container, fragment, PHOTO_FRAGMENT)
+ .addToBackStack(fragment.toString())
+ .commit();
+ }
+
+ private void setToolbar() {
+ setSupportActionBar(toolbar);
+ final ActionBar actionBar = getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ actionBar.setDisplayShowHomeEnabled(true);
+ }
+ }
+
+ @Override
+ public void onBackPressed() {
+ Log.i("STATUS","STACK COUNT "+getSupportFragmentManager().getBackStackEntryCount());
+ preferences.setStartTime(String.valueOf(System.currentTimeMillis()));
+ if (getSupportFragmentManager().getBackStackEntryCount() > 1) {
+ getSupportFragmentManager().popBackStack();
+ } else {
+ super.onBackPressed();
+ }
+ }
+
+ @Override
+ public void onSignUpClick(RegistrationModel registrationModel) {
+ if((!BuildConfig.IS_OFFLINE_VERSION) && preferences.getLuna2()) {
+ thread = new Thread(() -> {
+ Storage.getInstance().updateDatabase(preferences.getLuna2Server(), preferences.getEncodedUserData(), api, preferences.getServerChanged());
+ });
+ thread.start();
+ }
+ this.registrationModel = registrationModel;
+ Utils.hideKeyboard(this, getCurrentFocus());
+ new Handler().post(this::showPhotoScreen);
+ }
+
+ private void showPhotoScreen() {
+ fragment = PhotoFragment.newInstance();
+ fragment.setPhotoProcessor(photoProcessor);
+ fragment.setListener(this);
+ fragment.enableLivenessCheck(false);
+
+ preferences.setStartTime(String.valueOf(System.currentTimeMillis()));
+ preferences.setNeedPortrait(false);
+ System.out.println("Inside photo screen method");
+ getSupportFragmentManager()
+ .beginTransaction()
+ .replace(R.id.container, fragment, PHOTO_FRAGMENT)
+ .addToBackStack(fragment.toString())
+ .commit();
+ }
+
+ private void showPhotoReadyScreen(Bitmap bitmap) {
+ final SavePhotoFragment fragment = SavePhotoFragment.newInstance();
+ fragment.setPhoto(bitmap);
+ fragment.setListener(this);
+ getSupportFragmentManager()
+ .beginTransaction()
+ .replace(R.id.container, fragment, SAVE_PHOTO_FRAGMENT)
+ .addToBackStack(fragment.toString())
+ .commit();
+ System.out.println("Inside save photo screen method");
+ }
+
+ @Override
+ public void onBestFrameReady(Bitmap bitmap) {
+ this.bitmap = bitmap;
+ if(fromLoginPage){
+ verifyPhoto(bitmap);
+ }
+ showPhotoReadyScreen(bitmap);
+ }
+
+ private void verifyPhoto(Bitmap bitmap){
+ fragment.showWaitState();
+ login=preferences.getUsername();
+ System.out.println("Value of login while verification " + login);
+ try {
+ if (thread != null)
+ thread.join();
+ }catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ VerifyApiInterface verifyApi;
+ if (BuildConfig.IS_OFFLINE_VERSION) {
+ verifyApi = new VerifyApiImplLunaLocal(this, photoProcessor, login, this);
+ } else { //if (preferences.getLuna2()) {
+ Log.i("LUNA2 ", preferences.getLuna2Server());
+ verifyApi = new VerifyApiImplLuna2(this, preferences.getLuna2Server(), login, api, this, bitmap, preferences.getEncodedUserData());
+ }
+
+ verifStartTime = System.nanoTime();
+ verifyApi.verifyPerson();
+ }
+
+ @Override
+ public void onTimeout(FaceNotFoundFragment.Reason reason) {
+ final FaceNotFoundFragment fragment = FaceNotFoundFragment.newInstance();
+ fragment.setReason(reason);
+ fragment.setListener(this);
+ getSupportFragmentManager()
+ .beginTransaction()
+ .replace(R.id.container, fragment, FACE_NOT_FOUND_FRAGMENT)
+ .addToBackStack(fragment.toString())
+ .commit();
+ }
+
+ @Override
+ public void onNeedCameraPermission() {
+ goToAppDetails(R.string.permission_need_for_register);
+ }
+
+ @Override
+ public void onInteractionWaitingOpenedEyes() {}
+
+ @Override
+ public void onTimeout(){}
+
+ @Override
+ public void onLivenessResult(int livenessState, int blinkState, int livenessType){}
+
+ @Override
+ public void onRetryClick() {
+ onBackPressed();
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem menuItem) {
+ if (menuItem.getItemId() == android.R.id.home) {
+ if (getSupportFragmentManager().findFragmentByTag(SAVE_PHOTO_FRAGMENT) != null) {
+ getSupportFragmentManager().popBackStack();
+ getSupportFragmentManager().popBackStack();
+ return true;
+ }
+ }
+ return super.onOptionsItemSelected(menuItem);
+ }
+
+ @Override
+ public void onSaveClick() {
+ registerPerson();
+ }
+
+ private void registerPerson() {
+ RegisterApiInterface registerApi;
+ try {
+ if (thread != null) {
+ thread.join();
+ }
+ }catch (InterruptedException e){
+ e.printStackTrace();
+ }
+
+ if (BuildConfig.IS_OFFLINE_VERSION) {
+ registerApi = new RegisterApiImplLocal(this, registrationModel, photoProcessor, this, bitmap);
+ } else {
+ registerApi = new RegisterApiImplLuna2(this, preferences.getLuna2Server(), registrationModel, api, locationHelper, this, bitmap, preferences.getEncodedUserData());
+ }
+
+ registerApi.registerPerson();
+ }
+
+ private void SaveBitmapToGallery(Bitmap finalBitmap) {
+ String root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
+
+ File myDir = new File(root + "/saved_images");
+ myDir.mkdirs();
+
+ File file = null;
+ int num = 0;
+ // find next name
+ do {
+ try {
+ file = new File (myDir, new String(SAVE_PHOTO_NAME + num + ".jpg"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ break;
+ }
+
+ ++num;
+ }
+ while(file.exists());
+
+ try {
+ FileOutputStream out = new FileOutputStream(file);
+ finalBitmap.compress(Bitmap.CompressFormat.JPEG, 50, out);
+ out.flush();
+ out.close();
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ // Tell the media scanner about the new file so that it is
+ // immediately available to the user.
+ MediaScannerConnection.scanFile(this, new String[] { file.toString() }, null,
+ new MediaScannerConnection.OnScanCompletedListener() {
+ public void onScanCompleted(String path, Uri uri) {
+ Log.i("ExternalStorage", "Scanned " + path + ":");
+ Log.i("ExternalStorage", "-> uri=" + uri);
+ }
+ });
+ System.out.println("Inside saving image method");
+ }
+
+ @Override
+ public void onRegistrationFail(Throwable throwable) {
+
+ if(throwable instanceof RegisterApiImplLuna2.InternetConnectionException){
+ Toast.makeText(this,getResources().getString(R.string.bad_internet_conneciton), Toast.LENGTH_LONG).show();
+ }else if(throwable instanceof RegisterApiImplLuna2.SocketTimeOutException ||
+ throwable instanceof SocketException) {
+ Toast.makeText(this,getResources().getString(R.string.TimeOut), Toast.LENGTH_LONG).show();
+ }else if(throwable instanceof RegisterApiImplLuna2.WrongAccDataException){
+ Toast.makeText(this,getResources().getString(R.string.bad_acc_data), Toast.LENGTH_LONG).show();
+ }else if(throwable instanceof RegisterApiImplLuna2.WrongServAddrException ||
+ throwable instanceof IllegalArgumentException){
+ Toast.makeText(this,getResources().getString(R.string.bad_server_address), Toast.LENGTH_LONG).show();
+ }else if(throwable instanceof retrofit2.adapter.rxjava.HttpException ){
+ Toast.makeText(this,throwable.getMessage(), Toast.LENGTH_LONG).show();
+ }
+ else if(throwable instanceof RegisterApiImplLocal.DescriptorNotExtractedException) {
+ Toast.makeText(this,throwable.getMessage(), Toast.LENGTH_LONG).show();
+ }
+
+ if(preferences.getLuna2()){
+ Storage.getInstance().clearConnectionFlags();
+ }
+ if (getSupportFragmentManager().findFragmentByTag(SAVE_PHOTO_FRAGMENT) != null) {
+ getSupportFragmentManager().popBackStack();
+ getSupportFragmentManager().popBackStack();
+ }
+ }
+
+ @Override
+ public void onRegistrationSuccess() {
+ preferences.setServerChanged(false);
+ if (preferences.getSavePhoto()) {
+ RxPermissions.getInstance(this)
+ .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ .subscribe(granted -> {
+ if (granted) {
+ SaveBitmapToGallery(bitmap);
+
+ Toast.makeText(this, R.string.photo_saved_to_gallery, Toast.LENGTH_SHORT).show();
+ } else {
+ Toast.makeText(this, R.string.permission_need_for_write_external, Toast.LENGTH_SHORT).show();
+ }
+
+ // finish on any case
+ finishRegistration();
+ });
+ }
+ else
+ {
+ finishRegistration();
+ }
+ }
+
+ private void finishRegistration()
+ {
+ preferences.setUsername(registrationModel.login);
+
+ // preferences.setPin(registrationModel.password);
+ Intent intent = new Intent(RegisterFromCheckActivity.this, LoginActivityNew.class);
+ startActivity(intent);
+ finish();
+ }
+
+ @Override
+ public void onVerificationSuccess(SearchResult searchResult) {
+ verifEndTime = System.nanoTime();
+ preferences.setServerChanged(false);
+ final List persons = searchResult.getPersons();
+ if (persons != null && !persons.isEmpty()) {
+ final SearchResultPerson person = persons.get(0);
+ if (person.similarity > Config.MIN_SIMILARITY) {
+ onFaceAuthSuccess();
+ } else {
+ onFaceAuthFail(AuthenticationActivity.AuthFailReason.SIMILARITY);
+ }
+ } else {
+ onFaceAuthFail(AuthenticationActivity.AuthFailReason.SIMILARITY);
+ }
+ }
+
+ @Override
+ public void onVerificationFail(Throwable throwable) {
+
+ }
+
+ private void onFaceAuthSuccess() {
+ showSuccess();
+ /*if (preferences.getFingerAuth()) {
+ onFingerClick(finger);
+ } else {
+ showSuccess();
+ }*/
+ }
+ private void showSuccess() {
+
+
+
+ final Intent intent = new Intent(RegisterFromCheckActivity.this, CheckInActivity.class);
+ intent.putExtra(AuthSuccessActivity.LOGIN, login);
+ intent.putExtra("FromRegisterCheck", true);
+
+ if (BuildConfig.IS_OFFLINE_VERSION) {
+ intent.putExtra(AuthSuccessActivity.TIME, (int) (((double) (verifEndTime - verifStartTime)) / 1e6));
+ }
+
+ startActivity(intent);
+
+ finish();
+
+
+
+ }
+
+ private void onFaceAuthFail(AuthenticationActivity.AuthFailReason reason) {
+ if (faceFailCount < 4) {
+ final FaceNotRecognizedFragment fragment = FaceNotRecognizedFragment.newInstance();
+ fragment.setListener(this);
+ if (reason == AuthenticationActivity.AuthFailReason.SIMILARITY && BuildConfig.IS_OFFLINE_VERSION)
+ {
+ fragment.setVerificationTime((int)((double)(verifEndTime - verifStartTime) / 1e6));
+ }
+ fragment.setFailReason(reason);
+ showFragment(fragment);
+ } else {
+ showFail();
+ }
+ }
+
+ private void showFail() {
+ Toast.makeText(this, R.string.access_denied, Toast.LENGTH_SHORT).show();
+ finish();
+ }
+
+ private void showFragment(Fragment fragment) {
+ final FragmentManager fragmentManager = getSupportFragmentManager();
+ if (fragmentManager.findFragmentByTag(fragment.toString()) == null) {
+ if (!goingSomewhere) {
+ goingSomewhere = true;
+ fragmentManager
+ .beginTransaction()
+ .replace(R.id.container, fragment, fragment.toString())
+ .commit();
+ goingSomewhere = false;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportActivity.java
new file mode 100644
index 0000000..a849969
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportActivity.java
@@ -0,0 +1,203 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.DatePickerDialog;
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.DatePicker;
+import android.widget.ImageButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ReportActivity extends AppCompatActivity {
+
+ Button btnReport;
+ ImageButton back;
+
+ LinearLayout fromDate,toDate;
+ TextView textFromDate,textToDate;
+
+ int yearFrom,monthOfYearFrom,dayOfmonthFrom;
+ int yearTo,monthOfYearTo,dayOfmonthTo;
+
+ String valuefromApi="";
+
+ String passingDateFrom,passingDateTo;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_report);
+
+ btnReport = findViewById(R.id.btnReport);
+ btnReport.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ Intent intent = new Intent(ReportActivity.this, ReportDetailsActivity.class);
+ intent.putExtra("passingDateFrom",passingDateFrom);
+ intent.putExtra("passingDateTo",passingDateTo);
+ startActivity(intent);
+ //getReport();
+ }
+ });
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ /*Intent intent = new Intent(ReportActivity.this, CheckInActivity.class);
+ intent.putExtra("backToCheck",true);
+ startActivity(intent);*/
+ onBackPressed();
+ }
+ });
+
+ fromDate = findViewById(R.id.fromDate);
+ textFromDate = findViewById(R.id.textFromDate);
+ fromDate.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ final Calendar c = Calendar.getInstance();
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH);
+ int day = c.get(Calendar.DAY_OF_MONTH);
+
+ DatePickerDialog datePickerDialog = new DatePickerDialog(
+ // on below line we are passing context.
+ ReportActivity.this,
+ new DatePickerDialog.OnDateSetListener() {
+ @Override
+ public void onDateSet(DatePicker view, int year,
+ int monthOfYear, int dayOfMonth) {
+ // on below line we are setting date to our text view.
+ textFromDate.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year);
+
+ yearFrom = year;
+ dayOfmonthFrom = dayOfMonth;
+ monthOfYearFrom = monthOfYear;
+
+ System.out.println("Date from values: " + dayOfmonthFrom + "/" + (monthOfYearFrom + 1) + "/" + yearFrom);
+
+ passingDateFrom = dayOfmonthFrom + "/" + (monthOfYearFrom + 1) + "/" + yearFrom;
+ System.out.println("passingDateFrom " + passingDateFrom);
+ }
+ },
+ // on below line we are passing year,
+ // month and day for selected date in our date picker.
+ year, month, day);
+ // at last we are calling show to
+ // display our date picker dialog.
+ datePickerDialog.show();
+
+ }
+ });
+
+ toDate = findViewById(R.id.toDate);
+ textToDate = findViewById(R.id.textToDate);
+ toDate.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ final Calendar c = Calendar.getInstance();
+ int year = c.get(Calendar.YEAR);
+ int month = c.get(Calendar.MONTH);
+ int day = c.get(Calendar.DAY_OF_MONTH);
+
+ DatePickerDialog datePickerDialog = new DatePickerDialog(
+ // on below line we are passing context.
+ ReportActivity.this,
+ new DatePickerDialog.OnDateSetListener() {
+ @Override
+ public void onDateSet(DatePicker view, int year,
+ int monthOfYear, int dayOfMonth) {
+ // on below line we are setting date to our text view.
+ textToDate.setText(dayOfMonth + "/" + (monthOfYear + 1) + "/" + year);
+
+ yearTo = year;
+ dayOfmonthTo = dayOfMonth;
+ monthOfYearTo = monthOfYear;
+
+ System.out.println("Date from values: " + dayOfmonthTo + "/" + (monthOfYearTo + 1) + "/" + yearTo);
+
+ passingDateTo = dayOfmonthTo + "/" + (monthOfYearTo + 1) + "/" + yearTo;
+ System.out.println("passingDateTo " + passingDateTo);
+
+ }
+ },
+ // on below line we are passing year,
+ // month and day for selected date in our date picker.
+ year, month, day);
+ // at last we are calling show to
+ // display our date picker dialog.
+ datePickerDialog.show();
+
+ }
+ });
+
+ }
+
+ public void getReport(){
+ final ProgressDialog loading = ProgressDialog.show(ReportActivity.this, "Authenticating", "Please wait ", false, false);
+ //String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport";
+ //String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport?employeeid="+"101"+"&fromdate="+"06/06/2023"+"&todate="+"06/07/2023";
+ String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport?employeeid="+"101"+"&fromdate="+dayOfmonthFrom + "/" + (monthOfYearFrom + 1) + "/" + yearFrom+"&todate="+dayOfmonthTo + "/" + (monthOfYearTo + 1) + "/" + yearTo;
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ JSONObject jb1=jsonObject.getJSONObject("statusModel");
+ valuefromApi = jb1.getString("_statusMessage");
+ System.out.println("Report status from api " + valuefromApi);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+ Toast.makeText(ReportActivity.this, valuefromApi, Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(ReportActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ /*params.put("employeeid", "101");
+ params.put("fromdate", "06/06/2023");
+ params.put("todate", "06/07/2023");*/
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(ReportActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportDetailsActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportDetailsActivity.java
new file mode 100644
index 0000000..ed4d2a2
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/ReportDetailsActivity.java
@@ -0,0 +1,122 @@
+package ru.visionlab.femdemo;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.volley.Request;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ReportDetailsActivity extends AppCompatActivity {
+
+ String passingDateFrom,passingDateTo;
+ TextView empIdVal,pdateVal,Check_InVal,Check_OutVal,statusVal;
+
+ ImageView back;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_report_details);
+
+ empIdVal = findViewById(R.id.empIdVal);
+ pdateVal = findViewById(R.id.pdateVal);
+ Check_InVal = findViewById(R.id.Check_InVal);
+ Check_OutVal = findViewById(R.id.Check_OutVal);
+ statusVal = findViewById(R.id.statusVal);
+
+ back = findViewById(R.id.back);
+ back.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(ReportDetailsActivity.this, ReportActivity.class);
+ startActivity(intent);
+ }
+ });
+
+
+
+ Intent intent = getIntent();
+ passingDateFrom = intent.getStringExtra("passingDateFrom");
+ passingDateTo = intent.getStringExtra("passingDateTo");
+
+ System.out.println("passingDateFrom " + passingDateFrom + " " + passingDateTo);
+
+ getReport();
+ }
+
+ public void getReport(){
+ final ProgressDialog loading = ProgressDialog.show(ReportDetailsActivity.this, "Authenticating", "Please wait ", false, false);
+
+ String url= "http://43.242.212.92:7001/api/lgt/AttendanceReport?employeeid="+"101"+"&fromdate="+passingDateFrom+"&todate="+passingDateTo;
+ StringRequest stringRequest=new StringRequest(Request.Method.GET, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+ try {
+ JSONObject jsonObject=new JSONObject(response);
+ JSONArray jsonArray=jsonObject.getJSONArray("_lstAttendanceData");
+ JSONObject jb1=jsonArray.getJSONObject(0);
+ String EmployeeID = jb1.getString("EmployeeID");
+ String pdate = jb1.getString("pdate");
+ String Check_In = jb1.getString("Check_In");
+ String Check_Out = jb1.getString("Check_Out");
+ String status = jb1.getString("status");
+
+ empIdVal.setText(EmployeeID);
+ pdateVal.setText(pdate);
+ Check_InVal.setText(Check_In);
+ Check_OutVal.setText(Check_Out);
+ statusVal.setText(status);
+
+ System.out.println("data from api " + EmployeeID + " " + pdate+" "+Check_In+" "+Check_Out+" "+status);
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }
+
+
+ Toast.makeText(ReportDetailsActivity.this, "Successfull" , Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ }
+
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(ReportDetailsActivity.this, "Failed to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ loading.dismiss();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() {
+ Map params = new HashMap();
+
+ /*params.put("employeeid", "101");
+ params.put("fromdate", "06/06/2023");
+ params.put("todate", "06/07/2023");*/
+
+ return params;
+ }
+ };
+ Volley.newRequestQueue(ReportDetailsActivity.this).add(stringRequest);
+ }
+}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java
index 48f1828..5131472 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Splashactivity.java
@@ -2,12 +2,16 @@ package ru.visionlab.femdemo;
import androidx.appcompat.app.AppCompatActivity;
+import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.view.WindowManager;
+import cn.pedant.SweetAlert.SweetAlertDialog;
import ru.visionlab.femdemo.login.LoginActivity;
+import ru.visionlab.femdemo.login.LoginActivityNew;
public class Splashactivity extends AppCompatActivity {
@@ -23,15 +27,28 @@ public class Splashactivity extends AppCompatActivity {
public void run() {
// on below line we are
// creating a new intent
- Intent i = new Intent(Splashactivity.this, LoginActivity.class);
+ SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
+ boolean loggedBefore = sharedPreferences.getBoolean("loggedBefore",false);
+
+ System.out.println("Value of loggedBefore "+ loggedBefore);
+
+ if(loggedBefore){
+ Intent i = new Intent(Splashactivity.this, LoginActivity.class);
+ startActivity(i);
+ }
+ else {
+
+
+ Intent i = new Intent(Splashactivity.this, LoginActivity.class); // on below line we are
+ // starting a new activity.
+ startActivity(i);
+
+ // on the below line we are finishing
+ // our current activity.
+ finish();
+ }
- // on below line we are
- // starting a new activity.
- startActivity(i);
- // on the below line we are finishing
- // our current activity.
- finish();
}
}, 2000);
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java
index 65e3797..5f8cc90 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/Storage.java
@@ -88,8 +88,10 @@ public class Storage {
}
public void addToStorageLunaLocal(String login, String Descriptor) {
+
+ System.out.println("making sure this metyhos " + login +" "+ Descriptor);
if (!LunaLocalData.containsKey(login)){
- Log.i(TAG, "Pushed new person!: login"+login+"DESCR"+LunaLocalData.get(login));
+ Log.i(TAG, "Pushed new person!: login "+login+" DESCR "+Descriptor);
LunaLocalData.put(login,Descriptor);
}
else{
@@ -102,10 +104,10 @@ public class Storage {
public String getDescriptorLocal(String Login){
if(LunaLocalData.containsKey(Login)){
- Log.i(TAG,"Returned descriptor is"+LunaLocalData.get(Login));
+ Log.i(TAG,"Returned descriptor is "+LunaLocalData.get(Login));
return LunaLocalData.get(Login);
}
- Log.i(TAG,"NO SUCH LOGIN!!!");
+ Log.i(TAG,"NO SUCH LOGIN!!!"+Login);
return null;
}
@@ -258,9 +260,11 @@ public class Storage {
public void updateOfflineData(){
SharedPreferences sharedpref = context.getSharedPreferences("Offline",Context.MODE_PRIVATE);
+
try{
if(sharedpref != null){
String jsonString = sharedpref.getString("My_map",(new JSONObject()).toString());
+ Log.i(TAG,"Inside updateOfflineData "+jsonString);
JSONObject jsonObject = new JSONObject(jsonString);
Iterator keyStr = jsonObject.keys();
while(keyStr.hasNext()){
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/JsonPlaceHolderApi.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/JsonPlaceHolderApi.java
index 70b6fa1..471705f 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/JsonPlaceHolderApi.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/JsonPlaceHolderApi.java
@@ -6,18 +6,22 @@ import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.Headers;
import retrofit2.http.POST;
import ru.visionlab.femdemo.models.RegistrationNew;
import ru.visionlab.femdemo.models.Users;
public interface JsonPlaceHolderApi {
- @FormUrlEncoded
+ // @FormUrlEncoded
@POST("services/app/Employee/RegisterEmployee")
- //Call createpost(@Body RegistrationNew registrationNew);
- Call createpost(@FieldMap Map fields);
+ Call createpost(@Body RegistrationNew registrationNew);
+ //Call createpost(@FieldMap Map fields);
- @FormUrlEncoded
- @POST("posts")
- Call login(@FieldMap Map fields);
+ //@FormUrlEncoded
+ @Headers("Content-Type:application/json")
+ @POST("TokenAuth/LogIn")
+ //Call login(@Body Map fields);
+ Call login(@Body Users users);
+ //Call login(@FieldMap Map fields);
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java
index 634afb2..3f0067c 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/api/RegisterApiImplLocal.java
@@ -1,10 +1,13 @@
package ru.visionlab.femdemo.api;
import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.util.Base64;
import android.util.Log;
+import cn.pedant.SweetAlert.SweetAlertDialog;
import ru.visionlab.femdemo.Core.PhotoProcessor;
import ru.visionlab.femdemo.Storage;
import ru.visionlab.femdemo.register.RegistrationModel;
@@ -41,17 +44,36 @@ public class RegisterApiImplLocal implements RegisterApiInterface {
@Override
public void registerPerson() {
- Log.i(TAG,"Login is"+registrationModel.login);
- // photoProcessor.calcFaceDescriptorFromBestFrame();
- byte[] bestFrameDescriptorByteArray = photoProcessor.getFaceDescriptorByteArray();
+ Log.i("Route", "registerPerson registerapiimplocal");
+ //Log.i(TAG,"Login is"+registrationModel.login);
- if (bestFrameDescriptorByteArray == null || bestFrameDescriptorByteArray.length == 0) {
- onFail(new DescriptorNotExtractedException("FAILED to register: could not extract descriptor "));
+ if(registrationModel == null){
+ new SweetAlertDialog(context, SweetAlertDialog.WARNING_TYPE)
+ .setTitleText("Face not recognised")
+ .setConfirmText("Back to login")
+ .setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() {
+ @Override
+ public void onClick(SweetAlertDialog sDialog) {
+ sDialog.dismissWithAnimation();
+
+
+ }
+ })
+ .setContentText("OK").show();
}
else{
- String descriptorEncrypted = Base64.encodeToString(bestFrameDescriptorByteArray, Base64.DEFAULT);
- onSuccess(descriptorEncrypted);
+ // photoProcessor.calcFaceDescriptorFromBestFrame();
+ byte[] bestFrameDescriptorByteArray = photoProcessor.getFaceDescriptorByteArray();
+
+ if (bestFrameDescriptorByteArray == null || bestFrameDescriptorByteArray.length == 0) {
+ onFail(new DescriptorNotExtractedException("FAILED to register: could not extract descriptor "));
+ }
+ else{
+ String descriptorEncrypted = Base64.encodeToString(bestFrameDescriptorByteArray, Base64.DEFAULT);
+ onSuccess(descriptorEncrypted);
+ }
}
+
}
private void onFail(Throwable throwable) {
@@ -59,9 +81,16 @@ public class RegisterApiImplLocal implements RegisterApiInterface {
}
private void onSuccess(String descriptor) {
+ Log.i("Route", "onSuccess");
Log.i(TAG,"Desctiptor has been saved : descr = "+descriptor);
System.out.println("Value of login after registration " + registrationModel.login);
+ SharedPreferences sharedPreferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = sharedPreferences.edit();
+ editor.putString("login",registrationModel.login);
+ editor.putString("Descriptor",descriptor);
+ editor.commit();
Storage.getInstance().addToStorageLunaLocal(registrationModel.login, descriptor);
+
listener.onRegistrationSuccess();
}
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java
index d157def..abd8351 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/authentication/AuthenticationActivity.java
@@ -37,6 +37,7 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import retrofit2.adapter.rxjava.HttpException;
import ru.visionlab.femdemo.App;
+import ru.visionlab.femdemo.CheckInActivity;
import ru.visionlab.femdemo.Config;
import ru.visionlab.femdemo.Core.PhotoProcessor;
import ru.visionlab.femdemo.BuildConfig;
@@ -397,10 +398,12 @@ public class AuthenticationActivity extends ToolbarActivity implements PinFragme
}
private void onFaceAuthSuccess() {
+ System.out.println("Success after face recognition");
if (preferences.getFingerAuth()) {
onFingerClick(finger);
} else {
showSuccess();
+
}
}
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java
index 383f25f..b3aaf1e 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/base/PhotoFragment.java
@@ -274,7 +274,7 @@ public class PhotoFragment extends BaseFragment implements Camera.PreviewCallbac
@Override
public void onError() {
- System.out.println("On photo success2");
+ System.out.println("On photo failure");
}
});
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java
index c9bee3a..44492d2 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/di/NetworkModule.java
@@ -76,6 +76,8 @@ public class NetworkModule {
// Install the all-trusting trust manager
final SSLContext sslContext;
try {
+
+
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
// Create an ssl socket factory with our all-trusting manager
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java
index f4c0e5c..87114a8 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivity.java
@@ -2,7 +2,9 @@ package ru.visionlab.femdemo.login;
import android.Manifest;
import android.app.Activity;
+import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.hardware.Camera;
import android.os.Bundle;
@@ -75,9 +77,11 @@ public class LoginActivity extends BaseActivity {
LinearLayout register;
String user = "";
Button login_new;
- Button reg_new;
+ // Button reg_new;
LinearLayoutCompat lay_licence_verify;
+ TextView reg_new;
+
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -89,6 +93,12 @@ public class LoginActivity extends BaseActivity {
lay_licence_verify = findViewById(R.id.lay_licence_verify);
+ SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
+ String login = sharedPreferences.getString("login","");
+ String Descriptor = sharedPreferences.getString("Descriptor","");
+
+ System.out.println("Value of login and Descriptor " + login+" "+Descriptor );
+
login_new = findViewById(R.id.login_new);
login_new.setOnClickListener(new View.OnClickListener() {
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java
index 10f5bde..09c0ef5 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/login/LoginActivityNew.java
@@ -1,16 +1,43 @@
package ru.visionlab.femdemo.login;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.core.app.ActivityCompat;
+import androidx.core.content.ContextCompat;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
+import android.widget.ImageView;
import android.widget.Toast;
+import com.android.volley.AuthFailureError;
+import com.android.volley.NetworkResponse;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.ServerError;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.HttpHeaderParser;
+import com.android.volley.toolbox.JsonObjectRequest;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+import com.google.android.gms.location.FusedLocationProviderClient;
+import com.google.android.gms.tasks.OnSuccessListener;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
@@ -22,6 +49,7 @@ import retrofit2.converter.gson.GsonConverterFactory;
import ru.visionlab.constant.Url;
import ru.visionlab.femdemo.CheckInActivity;
import ru.visionlab.femdemo.R;
+import ru.visionlab.femdemo.Storage;
import ru.visionlab.femdemo.api.CallApiService;
import ru.visionlab.femdemo.api.JsonPlaceHolderApi;
import ru.visionlab.femdemo.authentication.AuthenticationActivity;
@@ -32,6 +60,9 @@ import ru.visionlab.femdemo.register.RegisterActivityNew;
public class LoginActivityNew extends AppCompatActivity {
+ public static final String MyPREFERENCES = "MyPrefs" ;
+ public static final String ID = "id";
+
Button btnSignin;
ImageButton back;
@@ -45,6 +76,13 @@ public class LoginActivityNew extends AppCompatActivity {
String tenancyName ="";
+ private static final int LOCATION_PERMISSION_REQUEST_CODE = 1;
+ private FusedLocationProviderClient fusedLocationClient;
+
+ ImageView faceImage;
+
+ SharedPreferences sharedpreferences;
+ String empIdShared="";
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -53,6 +91,22 @@ public class LoginActivityNew extends AppCompatActivity {
edt_empId = findViewById(R.id.edt_empId);
edt_pass = findViewById(R.id.edt_pass);
+
+ sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
+
+ SharedPreferences shared = getSharedPreferences("MyPrefs", MODE_PRIVATE);
+ String login = shared.getString("login", "");
+ String Descriptor = shared.getString("Descriptor", "");
+
+ System.out.println("value of login and Descriptor in login new " + login + " " + Descriptor);
+
+ if(Descriptor != null){
+ Storage.getInstance().addToStorageLunaLocal(login,Descriptor);
+ }
+
+ if(login == null || login.equals("")){
+ Toast.makeText(LoginActivityNew.this,"Please register before logging in ",Toast.LENGTH_SHORT).show();
+ }
createRetrofit();
empId = edt_empId.getText().toString().trim();
@@ -63,20 +117,56 @@ public class LoginActivityNew extends AppCompatActivity {
btnSignin = findViewById(R.id.btnSignin);
- btnSignin.setOnClickListener(new View.OnClickListener() {
+ if(!login.equals("")){
+ btnSignin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ /*if (ContextCompat.checkSelfPermission(LoginActivityNew.this, android.Manifest.permission.ACCESS_FINE_LOCATION)
+ == PackageManager.PERMISSION_GRANTED) {
+ // Permission granted, so request location updates
+ requestLocationUpdates();
+ } else {
+ // Permission not granted, request it
+ ActivityCompat.requestPermissions(LoginActivityNew.this,
+ new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION},
+ LOCATION_PERMISSION_REQUEST_CODE);
+ }*/
+
isAllFieldsChecked = CheckAllFields();
if(isAllFieldsChecked) {
- // login();
- Intent intent = new Intent(LoginActivityNew.this, RegisterActivity.class);
+ // login();
+ System.out.println("After login activity new ");
+ /*Intent intent = new Intent(LoginActivityNew.this, RegisterActivity.class);
intent.putExtra("FromLoginPage",true);
- startActivity(intent);
+ startActivity(intent);*/
+ //login();
+ //loginVolley();
+ loginVolleyNil();
+ //loginRetro();
}
}
});
+ }
+ else{
+ Toast.makeText(LoginActivityNew.this,"Please register before logging in ",Toast.LENGTH_SHORT).show();
+ }
+
+
+ faceImage = findViewById(R.id.faceImage);
+
+ if(!login.equals("")){
+ faceImage.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Intent intent = new Intent(LoginActivityNew.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ startActivity(intent);
+ }
+ });
+ }
+
back = findViewById(R.id.back);
back.setOnClickListener(new View.OnClickListener() {
@@ -99,6 +189,89 @@ public class LoginActivityNew extends AppCompatActivity {
jsonPlaceHolderApi=retrofit.create(JsonPlaceHolderApi.class);
}
+ private void requestLocationUpdates() {
+ if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
+ fusedLocationClient = new FusedLocationProviderClient(getApplicationContext());
+ fusedLocationClient.getLastLocation()
+ .addOnSuccessListener(this, new OnSuccessListener() {
+ @Override
+ public void onSuccess(Location location) {
+ if (location != null) {
+ double latitude = location.getLatitude();
+ double longitude = location.getLongitude();
+
+ // Do something with the latitude and longitude
+ String message = "Latitude: " + latitude + "\nLongitude: " + longitude;
+ System.out.println("My current location: "+ message);
+ Toast.makeText(LoginActivityNew.this, message, Toast.LENGTH_SHORT).show();
+ Location target = new Location("");
+ target.setLatitude(latitude);
+ target.setLongitude(longitude);
+
+ Location current = new Location("");
+ current.setLatitude(20.5109958);
+ current.setLongitude(88.4009709);
+
+ float distance = current.distanceTo(target);
+ System.out.println("Distance: "+distance);
+ if(distance<500){
+ showFailedDialog();
+ }
+ else{
+ showSuccessDialog();
+
+ // Toast.makeText(CheckInActivity.this, "Attendance ready to be captured", Toast.LENGTH_SHORT).show();
+ }
+ } else {
+ Toast.makeText(LoginActivityNew.this, "Location not available", Toast.LENGTH_SHORT).show();
+ }
+ }
+ });
+
+
+ }
+
+ private void showSuccessDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Success");
+ builder.setMessage("Attendance ready to be captured.");
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Intent intent = new Intent(LoginActivityNew.this, RegisterActivity.class);
+ startActivity(intent);
+ // dialog.dismiss(); // Close the dialog.
+ }
+ });
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+ private void showFailedDialog() {
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Failed");
+ builder.setMessage("You are out of range!Please get back to location");
+ builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // Perform any necessary action when the user clicks the "OK" button.
+ dialog.dismiss(); // Close the dialog.
+ }
+ });
+
+ AlertDialog dialog = builder.create();
+ dialog.show();
+ }
+
private boolean CheckAllFields() {
if (edt_empId.length() == 0) {
@@ -118,11 +291,26 @@ public class LoginActivityNew extends AppCompatActivity {
Map fields=new HashMap<>();
fields.put("employeeId",edt_empId.getText().toString());
fields.put("password",edt_pass.getText().toString());
- fields.put("tenancyName","facebio");
+ fields.put("tenancyName","Testing");
/*Users users = new Users(empId,pass,tenancyName);*/
- CallApiService.getClient().login(fields);
- Call call=jsonPlaceHolderApi.login(fields);
+ /*CallApiService.getClient().login(fields);
+ Call call=jsonPlaceHolderApi.login(fields);*/
+
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://huaiglobal.com/api/")
+ // as we are sending data in json format so
+ // we have to add Gson converter factory
+ .addConverterFactory(GsonConverterFactory.create())
+ // at last we are building our retrofit builder.
+ .build();
+ // below line is to create an instance for our retrofit api class.
+ jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
+
+ Users users = new Users(edt_empId.getText().toString(),edt_pass.getText().toString(),"Testing");
+ System.out.println("Login credentials: " + edt_empId.getText().toString() + " "+ edt_pass.getText().toString() + " "+"Testing");
+ Call call = jsonPlaceHolderApi.login(users);
+ //Call call = jsonPlaceHolderApi.login(fields);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
@@ -137,6 +325,56 @@ public class LoginActivityNew extends AppCompatActivity {
}
else{
Toast.makeText(LoginActivityNew.this, "Error "+String.valueOf(response.code()), Toast.LENGTH_SHORT).show();
+ System.out.println("Error: " + response.message());
+ }
+
+ }
+
+ @Override
+ public void onFailure(Call call, Throwable t) {
+ Toast.makeText(LoginActivityNew.this, ""+t.getMessage(), Toast.LENGTH_SHORT).show();
+ Log.e("error=",t.getMessage().toString());
+ }
+ });
+ }
+ public void loginRetro(){
+ Map fields=new HashMap<>();
+ fields.put("username","demouser1");
+ fields.put("password","123");
+ fields.put("imei","string");
+
+ /*Users users = new Users(empId,pass,tenancyName);*/
+ /*CallApiService.getClient().login(fields);
+ Call call=jsonPlaceHolderApi.login(fields);*/
+
+ Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://43.242.212.92:7001/api/lgt/Login")
+ // as we are sending data in json format so
+ // we have to add Gson converter factory
+ .addConverterFactory(GsonConverterFactory.create())
+ // at last we are building our retrofit builder.
+ .build();
+ // below line is to create an instance for our retrofit api class.
+ jsonPlaceHolderApi = retrofit.create(JsonPlaceHolderApi.class);
+
+ Users users = new Users("demouser1","123","string");
+ System.out.println("Login credentials: " + edt_empId.getText().toString() + " "+ edt_pass.getText().toString() + " "+"Testing");
+ Call call = jsonPlaceHolderApi.login(users);
+ //Call call = jsonPlaceHolderApi.login(fields);
+ call.enqueue(new Callback() {
+ @Override
+ public void onResponse(Call call, Response response) {
+ if(response.isSuccessful())
+ {
+ response.code();
+ Log.e("login response code=", String.valueOf(response.code()));
+ Toast.makeText(LoginActivityNew.this, "Logging in ", Toast.LENGTH_SHORT).show();
+
+
+ }
+ else{
+ Toast.makeText(LoginActivityNew.this, "Error "+String.valueOf(response.code()), Toast.LENGTH_SHORT).show();
+ System.out.println("Error: " + response.message());
}
}
@@ -148,4 +386,149 @@ public class LoginActivityNew extends AppCompatActivity {
}
});
}
+ public void loginVolley(){
+ String url = "http://huaiglobal.com/api/TokenAuth/LogIn"; // Replace with your API endpoint URL
+
+ RequestQueue queue = Volley.newRequestQueue(LoginActivityNew.this);
+ StringRequest request = new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+
+ // on below line we are displaying a success toast message.
+ Toast.makeText(LoginActivityNew.this, "Data added to API", Toast.LENGTH_SHORT).show();
+
+ }
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ // method to handle errors.
+
+
+ NetworkResponse response = error.networkResponse;
+ if (error instanceof ServerError && response != null) {
+ try {
+ String res = new String(response.data,
+ HttpHeaderParser.parseCharset(response.headers, "utf-8"));
+ // Now you can use any deserializer to make sense of data
+ JSONObject obj = new JSONObject(res);
+ System.out.println("Error message: "+ obj);
+ } catch (UnsupportedEncodingException e1) {
+ // Couldn't properly decode data to string
+ e1.printStackTrace();
+ } catch (JSONException e2) {
+ // returned data is not JSONObject?
+ e2.printStackTrace();
+ }
+ }
+
+ Toast.makeText(LoginActivityNew.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+ }
+ }) {
+ @Override
+ protected Map getParams() {
+ // below line we are creating a map for
+ // storing our values in key and value pair.
+ Map params = new HashMap();
+
+ // on below line we are passing our key
+ // and value pair to our parameters.
+ params.put("userNameOrEmailAddress", edt_empId.getText().toString());
+ params.put("password", edt_pass.getText().toString());
+ params.put("tenancyName", "Testing");
+
+
+
+
+
+ // at last we are
+ // returning our params.
+ return params;
+ }
+ @Override
+ public Map getHeaders() throws AuthFailureError {
+ HashMap headers = new HashMap();
+ headers.put("Content-Type", "application/json; charset=utf-8");
+ return headers;
+ }
+ /*@Override
+ public Map getHeaders() throws AuthFailureError {
+ Map params = new HashMap();
+ params.put("Authorization", "bearer "+"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjUiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW4iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9lbWFpbGFkZHJlc3MiOiJkYXNzYW5kaXBAc2VudGllbnRnZWVrcy5jb20iLCJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI6IjdFR1lVNFRBU1BUS05BREIzVEtHM0ZQNzdFQ1AzVjNBIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWRtaW4iLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiI0Iiwic3ViIjoiNSIsImp0aSI6IjYwOTFhMTgwLTkzMWItNGYwMS05ZWVjLTM3OTNkYmExMjkxYiIsImlhdCI6MTY5Mzg5OTk1NCwidG9rZW5fdmFsaWRpdHlfa2V5IjoiMzM3ZjAzMmEtN2I3NS00MTkzLWFhY2QtYjA3OWEyYjYxMjI0IiwidXNlcl9pZGVudGlmaWVyIjoiNUA0IiwidG9rZW5fdHlwZSI6IjAiLCJyZWZyZXNoX3Rva2VuX3ZhbGlkaXR5X2tleSI6Ijg1MTlmMjU3LWE3NmEtNDViOS05MDQ0LTU4ZTk0ZThhZTEwZSIsIm5iZiI6MTY5Mzg5OTk1NCwiZXhwIjoxNjkzOTg2MzU0LCJpc3MiOiJtdWx0aSIsImF1ZCI6Im11bHRpIn0.ImuWLPg85b7fN1nWzr1Es1L9j6xm7DrK4L_UxApzkqM");
+ return params;
+ }*/
+ };
+
+ queue.add(request);
+ }
+
+ public void loginVolleyNil(){
+ final ProgressDialog loading = ProgressDialog.show(LoginActivityNew.this, "Authenticating", "Please wait while logging", false, false);
+ String url= "http://43.242.212.92:7001/api/lgt/Login";
+ StringRequest stringRequest=new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ Log.d("data-=>",response);
+ String _employeeid = response.toString();
+ System.out.println("Value of _employeeid " +_employeeid );
+ /*try {
+ JSONObject jsonObject=new JSONObject(response);
+ empIdShared = jsonObject.getString("_employeeid");
+ SharedPreferences.Editor editor = sharedpreferences.edit();
+ editor.putString(ID, empIdShared);
+ editor.commit();
+ } catch (JSONException e) {
+ throw new RuntimeException(e);
+ }*/
+ loading.dismiss();
+ Toast.makeText(LoginActivityNew.this, "Data added to API", Toast.LENGTH_SHORT).show();
+ Intent intent = new Intent(LoginActivityNew.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",true);
+ startActivity(intent);
+
+ }
+ /*JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, null, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(JSONObject response) {
+ // inside the on response method.
+ // we are hiding our progress bar.
+
+ try {
+
+ String _employeeid = response.getString("_employeeid");
+ String _employeename = response.getString("_employeename");
+
+
+
+ } catch (JSONException e) {
+ // if we do not extract data from json object properly.
+ // below line of code is use to handle json exception
+ e.printStackTrace();
+ }
+ }*/
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+// Log.d("error-=>",error.getMessage());
+ Toast.makeText(LoginActivityNew.this, "Fail to get response = " + error.getMessage(), Toast.LENGTH_SHORT).show();
+ System.out.println("Error message: "+ error.getMessage());
+
+
+ }
+ })
+ {
+ @Override
+ protected Map getParams() throws AuthFailureError {
+ HashMapmap=new HashMap<>();
+ map.put("username","demouser1");
+ map.put("password","123");
+ map.put("imei","string");
+
+ return map;
+ }
+ };
+ Volley.newRequestQueue(LoginActivityNew.this).add(stringRequest);
+ }
}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java
index 206d149..40a351d 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivity.java
@@ -2,7 +2,9 @@ package ru.visionlab.femdemo.register;
import android.Manifest;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.media.MediaScannerConnection;
import android.net.Uri;
@@ -37,7 +39,9 @@ import java.util.List;
import javax.inject.Inject;
import butterknife.BindView;
+import cn.pedant.SweetAlert.SweetAlertDialog;
import ru.PreferenceManager.PreferenceManager;
+import ru.visionlab.femdemo.CheckInActivity;
import ru.visionlab.femdemo.Config;
import ru.visionlab.femdemo.Core.PhotoProcessor;
import ru.visionlab.femdemo.App;
@@ -103,7 +107,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
Bitmap photo2=null;
Button save,retry;
String encodedImage="";
- boolean fromLoginPage;
+ boolean fromLoginPage,FromNewCheck,checkinButton;
private PhotoFragment fragment;
String login;
private long verifEndTime;
@@ -113,6 +117,8 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
private boolean goingSomewhere = false;
+ String valueFromApiCheckIn;
+
@SuppressLint("MissingInflatedId")
@@ -124,15 +130,25 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
//ButterKnife.bind(this);
setToolbar();
+
+ SharedPreferences sharedPreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
+ String login = sharedPreferences.getString("login","");
+ String Descriptor = sharedPreferences.getString("Descriptor","");
+
+ System.out.println("Value of login and Descriptor " + preferences.getUsername()+" ");
Intent intent = getIntent();
fromLoginPage = intent.getBooleanExtra("FromLoginPage",true);
- System.out.println("Value of FromLoginPage "+fromLoginPage);
+ checkinButton = intent.getBooleanExtra("checkinButton",false);
+ valueFromApiCheckIn = intent.getStringExtra("valueFromApiCheckIn");
+ System.out.println("Value of FromLoginPage "+fromLoginPage + checkinButton + " "+ valueFromApiCheckIn);
if(fromLoginPage){
showPhotoScreen();
}
else {
showRegisterScreen();
}
+ FromNewCheck = intent.getBooleanExtra("FromLoginPage",false);
+ System.out.println("Value of FromNewCheck "+FromNewCheck);
/*back_img.setOnClickListener(new View.OnClickListener() {
@@ -249,6 +265,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
private void showRegisterScreen() {
+ Log.i("Route", "showRegisterScreen");
final RegisterFragment fragment = RegisterFragment.newInstance();
fragment.setListener(this);
getSupportFragmentManager()
@@ -280,9 +297,12 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
@Override
public void onSignUpClick(RegistrationModel registrationModel) {
+ Log.i("Route", "onSignUpClick");
if((!BuildConfig.IS_OFFLINE_VERSION) && preferences.getLuna2()) {
thread = new Thread(() -> {
+
Storage.getInstance().updateDatabase(preferences.getLuna2Server(), preferences.getEncodedUserData(), api, preferences.getServerChanged());
+ Log.i("Route", "updateDatabase");
});
thread.start();
}
@@ -292,6 +312,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
private void showPhotoScreen() {
+ Log.i("Route", "showPhotoScreen");
fragment = PhotoFragment.newInstance();
fragment.setPhotoProcessor(photoProcessor);
fragment.setListener(this);
@@ -308,6 +329,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
private void showPhotoReadyScreen(Bitmap bitmap) {
+ Log.i("Route", "showPhotoReadyScreen");
final SavePhotoFragment fragment = SavePhotoFragment.newInstance();
fragment.setPhoto(bitmap);
fragment.setListener(this);
@@ -321,6 +343,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
@Override
public void onBestFrameReady(Bitmap bitmap) {
+ Log.i("Route", "onBestFrameReady");
this.bitmap = bitmap;
if(fromLoginPage){
verifyPhoto(bitmap);
@@ -329,6 +352,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
private void verifyPhoto(Bitmap bitmap){
+ Log.i("Route", "verifyPhoto fromLoginPage");
fragment.showWaitState();
login=preferences.getUsername();
System.out.println("Value of login while verification " + login);
@@ -340,6 +364,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
VerifyApiInterface verifyApi;
if (BuildConfig.IS_OFFLINE_VERSION) {
+ Log.i("Route", "VerifyApiInterface");
verifyApi = new VerifyApiImplLunaLocal(this, photoProcessor, login, this);
} else { //if (preferences.getLuna2()) {
Log.i("LUNA2 ", preferences.getLuna2Server());
@@ -399,6 +424,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}
private void registerPerson() {
+ Log.i("Route", "registerPerson");
RegisterApiInterface registerApi;
try {
if (thread != null) {
@@ -410,6 +436,7 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
if (BuildConfig.IS_OFFLINE_VERSION) {
registerApi = new RegisterApiImplLocal(this, registrationModel, photoProcessor, this, bitmap);
+ Log.i("Route", "registerPerson registerApi");
} else {
registerApi = new RegisterApiImplLuna2(this, preferences.getLuna2Server(), registrationModel, api, locationHelper, this, bitmap, preferences.getEncodedUserData());
}
@@ -555,18 +582,66 @@ public class RegisterActivity extends ToolbarActivity implements RegisterFragmen
}*/
}
private void showSuccess() {
- final Intent intent = new Intent(this, AuthSuccessActivity.class);
+
+ final Intent intent = new Intent(RegisterActivity.this, CheckInActivity.class);
intent.putExtra(AuthSuccessActivity.LOGIN, login);
+ System.out.println("login value "+ login);
+
+
if (BuildConfig.IS_OFFLINE_VERSION) {
- intent.putExtra(AuthSuccessActivity.TIME, (int)(((double) (verifEndTime - verifStartTime)) / 1e6));
+ intent.putExtra(AuthSuccessActivity.TIME, (int) (((double) (verifEndTime - verifStartTime)) / 1e6));
+ intent.putExtra("FromRegister", true);
+ intent.putExtra("checkinButtonFromRegister", true);
+ intent.putExtra("valueFromApiCheckIn", valueFromApiCheckIn);
+ intent.putExtra("UserName", login);
}
startActivity(intent);
+
finish();
+
+ /*if (checkinButton) {
+ final Intent intent = new Intent(RegisterActivity.this, CheckInActivity.class);
+ intent.putExtra(AuthSuccessActivity.LOGIN, login);
+
+
+ if (BuildConfig.IS_OFFLINE_VERSION) {
+ intent.putExtra(AuthSuccessActivity.TIME, (int) (((double) (verifEndTime - verifStartTime)) / 1e6));
+ intent.putExtra("FromRegister", true);
+ intent.putExtra("checkinButtonFromRegister", true);
+ intent.putExtra("valueFromApiCheckIn", valueFromApiCheckIn);
+ }
+
+ startActivity(intent);
+
+ finish();
+ }
+ else{
+ final Intent intent = new Intent(RegisterActivity.this, CheckInActivity.class);
+ intent.putExtra(AuthSuccessActivity.LOGIN, login);
+
+
+ if (BuildConfig.IS_OFFLINE_VERSION) {
+ intent.putExtra(AuthSuccessActivity.TIME, (int) (((double) (verifEndTime - verifStartTime)) / 1e6));
+ intent.putExtra("FromRegister", false);
+ intent.putExtra("checkinButtonFromRegister", false);
+ intent.putExtra("valueFromApiCheckIn", valueFromApiCheckIn);
+ }
+
+ startActivity(intent);
+
+ finish();
+ }
+*/
+
+
+
+
}
private void onFaceAuthFail(AuthenticationActivity.AuthFailReason reason) {
+ System.out.println("Root fail");
if (faceFailCount < 4) {
final FaceNotRecognizedFragment fragment = FaceNotRecognizedFragment.newInstance();
fragment.setListener(this);
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java
index 49c2ee0..3d5a905 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterActivityNew.java
@@ -9,8 +9,20 @@ import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
+import android.widget.TextView;
import android.widget.Toast;
+import com.android.volley.AuthFailureError;
+import com.android.volley.DefaultRetryPolicy;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.VolleyError;
+import com.android.volley.toolbox.BasicNetwork;
+import com.android.volley.toolbox.DiskBasedCache;
+import com.android.volley.toolbox.HurlStack;
+import com.android.volley.toolbox.StringRequest;
+import com.android.volley.toolbox.Volley;
+
import org.json.JSONException;
import org.json.JSONObject;
@@ -42,7 +54,10 @@ public class RegisterActivityNew extends AppCompatActivity {
JsonPlaceHolderApi jsonPlaceHolderApi;
- Button verifynproceed;
+ Button verifynproceed,face;
+ TextView skip;
+
+
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -57,19 +72,41 @@ public class RegisterActivityNew extends AppCompatActivity {
verifynproceed = findViewById(R.id.verifynproceed);
+ verifynproceed.setEnabled(true);
verifynproceed.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- isAllFieldsChecked = CheckAllFields();
+
+ Intent intent = new Intent(RegisterActivityNew.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",false);
+ startActivity(intent);
+ /*isAllFieldsChecked = CheckAllFields();
if(isAllFieldsChecked) {
+
Intent intent = new Intent(RegisterActivityNew.this, RegisterActivity.class);
intent.putExtra("FromLoginPage",false);
startActivity(intent);
//saveInfo();
- }
+ //savaData();
+ }*/
+ }
+ });
+
+
+
+ skip = findViewById(R.id.skip);
+ skip.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ Intent intent = new Intent(RegisterActivityNew.this, RegisterActivity.class);
+ intent.putExtra("FromLoginPage",false);
+ startActivity(intent);
+
}
});
+
back_img = findViewById(R.id.back_img);
back_img.setOnClickListener(new View.OnClickListener() {
@Override
@@ -80,12 +117,12 @@ public class RegisterActivityNew extends AppCompatActivity {
});
}
public void createRetrofit(){
- Retrofit retrofit=new Retrofit.Builder()
+ /*Retrofit retrofit=new Retrofit.Builder()
.baseUrl("http://huaiglobal.com/api/")
.addConverterFactory(GsonConverterFactory.create())
.build();
- jsonPlaceHolderApi=retrofit.create(JsonPlaceHolderApi.class);
+ jsonPlaceHolderApi=retrofit.create(JsonPlaceHolderApi.class);*/
}
@@ -114,25 +151,34 @@ public class RegisterActivityNew extends AppCompatActivity {
fields.put("employeeId",edt_emp.getText().toString());
fields.put("otp",edt_otp.getText().toString());
- /* RegistrationNew registrationNew = new RegistrationNew(edt_comp.getText().toString(),edt_emp.getText().toString(),edt_otp.getText().toString());
- System.out.println("Value of registrationNew " );*/
- CallApiService.getClient().createpost(fields);
- Call call=jsonPlaceHolderApi.createpost(fields);
+
+ Retrofit retrofit=new Retrofit.Builder()
+ .baseUrl("http://huaiglobal.com/api/services/app/Account/RegisterLunaEmployee")
+ .addConverterFactory(GsonConverterFactory.create())
+ .build();
+
+ jsonPlaceHolderApi=retrofit.create(JsonPlaceHolderApi.class);
+
+ RegistrationNew registrationNew = new RegistrationNew(edt_comp.getText().toString(),edt_emp.getText().toString(),edt_otp.getText().toString());
+ System.out.println("Value of registrationNew " );
+ //CallApiService.getClient().createpost(fields);
+ Call call=jsonPlaceHolderApi.createpost(registrationNew);
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if(response.isSuccessful()) {
Log.e("register code=", String.valueOf(response.code()));
- Toast.makeText(RegisterActivityNew.this, "User Added succesfully", Toast.LENGTH_SHORT).show();
- Intent intent = new Intent(RegisterActivityNew.this, RegisterFragment.class);
- startActivity(intent);
+ Toast.makeText(RegisterActivityNew.this, "User Added successfully", Toast.LENGTH_SHORT).show();
+ /*Intent intent = new Intent(RegisterActivityNew.this, RegisterFragment.class);
+ startActivity(intent);*/
}
else{
Log.e("else part register code=", String.valueOf(response.code()));
- Intent intent = new Intent(RegisterActivityNew.this, RegisterFragment.class);
- startActivity(intent);
+ /*Intent intent = new Intent(getApplicationContext(), RegisterFragment.class);
+ startActivity(intent);*/
+ System.out.println("Response code: "+response.code());
Toast.makeText(RegisterActivityNew.this, "Current user did not login to the application!", Toast.LENGTH_SHORT).show();
@@ -146,4 +192,63 @@ public class RegisterActivityNew extends AppCompatActivity {
}
});
}
+ public void savaData(){
+ System.out.println("Inside save info");
+ String url = "http://huaiglobal.com/api/services/app/Account/RegisterLunaEmployee"; // Replace with your API endpoint URL
+
+ RequestQueue queue = Volley.newRequestQueue(RegisterActivityNew.this);
+ StringRequest request = new StringRequest(Request.Method.POST, url, new com.android.volley.Response.Listener() {
+ @Override
+ public void onResponse(String response) {
+
+ // on below line we are displaying a success toast message.
+ Toast.makeText(RegisterActivityNew.this, "Data added to API", Toast.LENGTH_SHORT).show();
+
+ }
+ }, new com.android.volley.Response.ErrorListener() {
+ @Override
+ public void onErrorResponse(VolleyError error) {
+ // method to handle errors.
+ Toast.makeText(RegisterActivityNew.this, "Fail to get response = " + error, Toast.LENGTH_SHORT).show();
+ System.out.println("Error: " + error);
+ /*Intent intent = new Intent(RegisterActivityNew.this, RegisterFragment.class);
+ startActivity(intent);*/
+ }
+ }) {
+ @Override
+ protected Map getParams() {
+ // below line we are creating a map for
+ // storing our values in key and value pair.
+ Map params = new HashMap();
+
+ // on below line we are passing our key
+ // and value pair to our parameters.
+ params.put("companyCode", edt_comp.getText().toString());
+ params.put("employeeCode", edt_emp.getText().toString());
+ params.put("otp", edt_otp.getText().toString());
+ System.out.println("Data input: "+ edt_comp.getText().toString() + " " +edt_emp.getText().toString() +" "+ edt_otp.getText().toString());
+
+
+ // at last we are
+ // returning our params.
+ return params;
+ }
+ /*@Override
+ public Map getHeaders() throws AuthFailureError {
+ Map params = new HashMap();
+ params.put("Authorization", "bearer "+"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1laWRlbnRpZmllciI6IjUiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiYWRtaW4iLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9lbWFpbGFkZHJlc3MiOiJkYXNzYW5kaXBAc2VudGllbnRnZWVrcy5jb20iLCJBc3BOZXQuSWRlbnRpdHkuU2VjdXJpdHlTdGFtcCI6IjdFR1lVNFRBU1BUS05BREIzVEtHM0ZQNzdFQ1AzVjNBIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiQWRtaW4iLCJodHRwOi8vd3d3LmFzcG5ldGJvaWxlcnBsYXRlLmNvbS9pZGVudGl0eS9jbGFpbXMvdGVuYW50SWQiOiI0Iiwic3ViIjoiNSIsImp0aSI6IjYwOTFhMTgwLTkzMWItNGYwMS05ZWVjLTM3OTNkYmExMjkxYiIsImlhdCI6MTY5Mzg5OTk1NCwidG9rZW5fdmFsaWRpdHlfa2V5IjoiMzM3ZjAzMmEtN2I3NS00MTkzLWFhY2QtYjA3OWEyYjYxMjI0IiwidXNlcl9pZGVudGlmaWVyIjoiNUA0IiwidG9rZW5fdHlwZSI6IjAiLCJyZWZyZXNoX3Rva2VuX3ZhbGlkaXR5X2tleSI6Ijg1MTlmMjU3LWE3NmEtNDViOS05MDQ0LTU4ZTk0ZThhZTEwZSIsIm5iZiI6MTY5Mzg5OTk1NCwiZXhwIjoxNjkzOTg2MzU0LCJpc3MiOiJtdWx0aSIsImF1ZCI6Im11bHRpIn0.ImuWLPg85b7fN1nWzr1Es1L9j6xm7DrK4L_UxApzkqM");
+ return params;
+ }*/
+
+ @Override
+ public Map getHeaders() throws AuthFailureError {
+ HashMap headers = new HashMap();
+ headers.put("Content-Type", "application/json; charset=utf-8");
+ return headers;
+ }
+ };
+
+ queue.add(request);
+
+ }
}
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java
index 66adeaf..180a31c 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/RegisterFragment.java
@@ -8,6 +8,7 @@ import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.method.PasswordTransformationMethod;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -57,6 +58,11 @@ public class RegisterFragment extends BaseFragment {
TextInputLayout phoneWrapper;
Listener listener;
+ @BindView(R.id.pass)
+ EditText pass;
+
+ String password="";
+
public RegisterFragment() {
}
@@ -115,6 +121,14 @@ public class RegisterFragment extends BaseFragment {
@OnClick(R.id.signUp)
public void onClick() {
+ Log.i("Route", "signUp");
+ password = pass.getText().toString();
+ if(password.equals("")){
+ signUp.setEnabled(false);
+ }
+
+
+
Utils.hideKeyboardRoutine(getContext(), getView());
if (listener != null && validateFields(true, true)) {
RegistrationModel registrationModel = new RegistrationModel();
@@ -132,6 +146,7 @@ public class RegisterFragment extends BaseFragment {
result = validateEmail(changeFocus, showError);
result = validateLogin(showError) && result;
+
signUp.setEnabled(result);
return result;
diff --git a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java
index 71ff66f..a55b434 100644
--- a/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java
+++ b/examples/example_bestshot/example/app/src/main/java/ru/visionlab/femdemo/register/SavePhotoFragment.java
@@ -6,6 +6,8 @@ import android.graphics.PorterDuff;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
+
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -81,6 +83,7 @@ public class SavePhotoFragment extends BaseFragment {
@OnClick({R.id.save})
public void onClick() {
+ Log.i("Route", "save onClick");
save.setEnabled(false);
progressBar.setVisibility(View.VISIBLE);
if (listener != null) {
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/approval.png b/examples/example_bestshot/example/app/src/main/res/drawable/approval.png
new file mode 100644
index 0000000..81f9b19
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/approval.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/attendance_icon.png b/examples/example_bestshot/example/app/src/main/res/drawable/attendance_icon.png
new file mode 100644
index 0000000..529c357
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/attendance_icon.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_grey.xml b/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_grey.xml
new file mode 100644
index 0000000..f58f3d8
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_grey.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_red.xml b/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_red.xml
new file mode 100644
index 0000000..58c8395
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/bg_btn_with_stroke_red.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_sos.xml b/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_sos.xml
new file mode 100644
index 0000000..8c4670d
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_sos.xml
@@ -0,0 +1,11 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_time.xml b/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_time.xml
new file mode 100644
index 0000000..d56ab3a
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/bg_button_time.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/bg_linear_grey.xml b/examples/example_bestshot/example/app/src/main/res/drawable/bg_linear_grey.xml
new file mode 100644
index 0000000..1261c6a
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/bg_linear_grey.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/calender.png b/examples/example_bestshot/example/app/src/main/res/drawable/calender.png
new file mode 100644
index 0000000..df79c48
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/calender.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/calender2.xml b/examples/example_bestshot/example/app/src/main/res/drawable/calender2.xml
new file mode 100644
index 0000000..4ec8c56
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/calender2.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/cross.png b/examples/example_bestshot/example/app/src/main/res/drawable/cross.png
new file mode 100644
index 0000000..290802f
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/cross.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/custom_spinner_background.xml b/examples/example_bestshot/example/app/src/main/res/drawable/custom_spinner_background.xml
new file mode 100644
index 0000000..8b75828
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/custom_spinner_background.xml
@@ -0,0 +1,7 @@
+
+
+ -
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/down_arrow.xml b/examples/example_bestshot/example/app/src/main/res/drawable/down_arrow.xml
new file mode 100644
index 0000000..210ee4c
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/down_arrow.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/edittext_border.xml b/examples/example_bestshot/example/app/src/main/res/drawable/edittext_border.xml
new file mode 100644
index 0000000..19f4b33
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/edittext_border.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/emergency.png b/examples/example_bestshot/example/app/src/main/res/drawable/emergency.png
new file mode 100644
index 0000000..2625162
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/emergency.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/ese.png b/examples/example_bestshot/example/app/src/main/res/drawable/ese.png
new file mode 100644
index 0000000..ff2397b
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/ese.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/frank.png b/examples/example_bestshot/example/app/src/main/res/drawable/frank.png
new file mode 100644
index 0000000..12f14f6
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/frank.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/permission.png b/examples/example_bestshot/example/app/src/main/res/drawable/permission.png
new file mode 100644
index 0000000..9651fc4
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/permission.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/report.png b/examples/example_bestshot/example/app/src/main/res/drawable/report.png
new file mode 100644
index 0000000..e6663cb
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/report.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/tick.png b/examples/example_bestshot/example/app/src/main/res/drawable/tick.png
new file mode 100644
index 0000000..4f2b7bb
Binary files /dev/null and b/examples/example_bestshot/example/app/src/main/res/drawable/tick.png differ
diff --git a/examples/example_bestshot/example/app/src/main/res/drawable/time.xml b/examples/example_bestshot/example/app/src/main/res/drawable/time.xml
new file mode 100644
index 0000000..523d30b
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/drawable/time.xml
@@ -0,0 +1,6 @@
+
+
+
+
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_approval_list.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_approval_list.xml
new file mode 100644
index 0000000..3522dc5
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_approval_list.xml
@@ -0,0 +1,393 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_check_in_new.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_check_in_new.xml
new file mode 100644
index 0000000..55bdf6a
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_check_in_new.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_checkin.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_checkin.xml
index c1d6a27..d60e4bb 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/activity_checkin.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_checkin.xml
@@ -40,12 +40,12 @@
android:layout_height="180px"
android:layout_centerInParent="true"
android:layout_marginTop="30dp"
- android:background="@drawable/homepage_logo" />
+ android:background="@drawable/ese" />
-
+ android:gravity="center"/>-->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request.xml
new file mode 100644
index 0000000..65c5062
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request.xml
@@ -0,0 +1,238 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request_details.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request_details.xml
new file mode 100644
index 0000000..882459d
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_leave_request_details.xml
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_login.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_login.xml
index d6a4e84..d3129e3 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/activity_login.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_login.xml
@@ -54,51 +54,96 @@
android:layout_height="180px"
android:layout_centerInParent="true"
android:layout_marginTop="30dp"
- android:background="@drawable/homepage_logo" />
+ android:background="@drawable/ese" />
-
+ />-->
-
+
+
+
+
-
+
+
+
+
+
+
+ android:visibility="gone"
+ >
+
+
+
+
+ android:layout_marginTop="30dp"
+ android:background="@drawable/ese" />
@@ -112,7 +125,7 @@
android:ems="10"
android:drawableLeft="@drawable/user1"
android:drawablePadding="12dp"
- android:hint="Employee ID"
+ android:hint="User ID"
android:textStyle="bold"
android:textSize="14sp"
android:background="@drawable/custom_input"
@@ -188,7 +201,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:background="@drawable/bg_btn_with_stroke"
- android:text="Sign in "
+ android:text="Log In "
android:textAllCaps="false"
android:textColor="@color/white"
/>
@@ -202,8 +215,11 @@
android:padding="10dp"
android:text="Forget password ?"
android:textColor="#576277"
- android:textSize="13sp" />
+ android:textSize="13sp"
+ android:visibility="gone"/>
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_permission_request.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_permission_request.xml
new file mode 100644
index 0000000..d066d57
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_permission_request.xml
@@ -0,0 +1,231 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_register_from_check.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_register_from_check.xml
new file mode 100644
index 0000000..2fa1587
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_register_from_check.xml
@@ -0,0 +1,321 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_register_new.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_register_new.xml
index 6c586cd..79b6485 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/activity_register_new.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_register_new.xml
@@ -34,6 +34,19 @@
+
+
+
+
+
+ android:layout_marginTop="30dp"
+ android:visibility="gone"/>
+ android:layout_marginTop="2dp"
+ android:visibility="gone"
+ />
+ android:layout_marginTop="37dp"
+ android:visibility="gone"/>
+ android:layout_marginTop="18dp"
+ android:visibility="gone"/>
+ android:maxLength="6"
+ android:visibility="gone"/>
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_report.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_report.xml
new file mode 100644
index 0000000..33b9290
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_report.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_report_details.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_report_details.xml
new file mode 100644
index 0000000..dbb35f4
--- /dev/null
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_report_details.xml
@@ -0,0 +1,251 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/activity_splashactivity.xml b/examples/example_bestshot/example/app/src/main/res/layout/activity_splashactivity.xml
index de1be33..540f302 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/activity_splashactivity.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/activity_splashactivity.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Splashactivity"
- android:background="#4262D3">
+ android:background="@color/white">
+ android:src="@drawable/ese" />
\ No newline at end of file
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/fragment_register.xml b/examples/example_bestshot/example/app/src/main/res/layout/fragment_register.xml
index 44e3229..37718d4 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/fragment_register.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/fragment_register.xml
@@ -19,6 +19,44 @@
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
+
+
+
+
+
+
+
+
+
+
+
@@ -96,7 +134,7 @@
android:layout_marginTop="35dp"
android:background="@drawable/selector_button"
android:enabled="false"
- android:text="@string/register_sign_up"
+ android:text="NEXT"
android:textColor="@android:color/white"
android:textSize="14sp"/>
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/fragment_save_photo.xml b/examples/example_bestshot/example/app/src/main/res/layout/fragment_save_photo.xml
index 5af7076..bd3938a 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/fragment_save_photo.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/fragment_save_photo.xml
@@ -19,7 +19,7 @@
android:layout_width="@dimen/rounded_photo_size"
android:layout_height="@dimen/rounded_photo_size"
android:scaleType="centerCrop"
- app:riv_border_color="@color/accentColor"
+ app:riv_border_color="#4262D3"
app:riv_border_width="7dp"
app:riv_mutate_background="true"
app:riv_oval="false"/>
@@ -43,7 +43,7 @@
android:layout_centerHorizontal="true"
android:layout_marginBottom="10dp"
android:text="@string/retry"
- android:textColor="@color/accentColor"
+ android:textColor="#4262D3"
android:textSize="14sp"/>
diff --git a/examples/example_bestshot/example/app/src/main/res/layout/layout.xml b/examples/example_bestshot/example/app/src/main/res/layout/layout.xml
index 55748b7..742c8de 100644
--- a/examples/example_bestshot/example/app/src/main/res/layout/layout.xml
+++ b/examples/example_bestshot/example/app/src/main/res/layout/layout.xml
@@ -1,14 +1,12 @@
+ android:layout_height="match_parent"
+ android:orientation="vertical">
@@ -18,8 +16,6 @@
android:layout_height="wrap_content"
>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_below="@id/view5">
Zoom in slowly and look straight at the camera
Success!
Tap to login with Selfie Validation
- Sign up using your Login Credential
+ Please enter your Login Credentials
Tap to login with Selfie Validation
@@ -120,4 +120,13 @@
Open
Close
+ Face registration
+
+
+ - School Meeting
+ - Private
+ - Official-Work
+ - Bad Weather Leave
+
+