package com

package com.logicvalley.facetag.ui; import import import import import import import import import import import import

Views 148 Downloads 5 File size 254KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

package com.logicvalley.facetag.ui; import import import import import import import import import import import import import import import import import import import import import import import

android.Manifest; android.arch.persistence.room.Room; android.content.Intent; android.content.pm.PackageManager; android.os.Handler; android.os.StrictMode; android.support.v4.content.ContextCompat; android.support.v7.app.AppCompatActivity; android.os.Bundle; android.support.v7.widget.AppCompatButton; android.support.v7.widget.AppCompatCheckBox; android.support.v7.widget.AppCompatEditText; android.support.v7.widget.AppCompatImageView; android.support.v7.widget.CardView; android.telecom.Call; android.util.Log; android.view.View; android.view.animation.Animation; android.view.animation.AnimationUtils; android.widget.EditText; android.widget.LinearLayout; android.widget.ProgressBar; android.widget.Toast;

import import import import import import import import import import import import import import import import import import import import import import import import import import

com.crashlytics.android.Crashlytics; com.google.android.gms.location.FusedLocationProviderClient; com.google.gson.JsonArray; com.logicvalley.facetag.Api.ApiService; com.logicvalley.facetag.FaceTag; com.logicvalley.facetag.R; com.logicvalley.facetag.Retrofit.GetBack; com.logicvalley.facetag.RoomDB.RoomDatabase; com.logicvalley.facetag.model.RegisterResponseModel.AdditionalField; com.logicvalley.facetag.model.RegisterResponseModel.EmployeeInfo; com.logicvalley.facetag.model.RegisterResponseModel.FieldControl; com.logicvalley.facetag.model.RegisterResponseModel.FieldElement; com.logicvalley.facetag.model.RegisterResponseModel.GenericFieldName; com.logicvalley.facetag.model.RegisterResponseModel.LocationDetails; com.logicvalley.facetag.model.RegisterResponseModel.RegisterResponse; com.logicvalley.facetag.model.RequestModel.RegisterRequest; com.logicvalley.facetag.model.ResponseModel; com.logicvalley.facetag.service.Constant; com.logicvalley.facetag.service.GetLocation; com.logicvalley.facetag.service.IServiceCallback; com.logicvalley.facetag.service.LocationActivity; com.logicvalley.facetag.service.MySingleton; com.logicvalley.facetag.service.Permission; com.logicvalley.facetag.service.PrefManager; com.logicvalley.facetag.service.ProgressUtils; com.logicvalley.facetag.service.Utils;

import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import import import import import

java.io.IOException; java.io.InputStream; java.net.SocketTimeoutException; java.util.ArrayList; java.util.List;

import import import import

am.appwise.components.ni.NoInternetDialog; io.fabric.sdk.android.Fabric; retrofit2.Callback; retrofit2.Response;

import static com.logicvalley.facetag.service.LocationIntent.mCurrentLocation; public class RegisterActivity extends AppCompatActivity { private static final String TAG = RegisterActivity.class.getSimpleName(); AppCompatEditText edtPhoneNo; AppCompatButton btnRegister; AppCompatImageView imgLogo; CardView btnCardReg; FusedLocationProviderClient mFusedLocationClient; GetLocation lastLocation; NoInternetDialog noInternetDialog; Permission permission = new Permission(this); ProgressUtils progressUtils; LocationActivity locationActivity = new LocationActivity(); boolean doubleBackToExitPressedOnce = false; private boolean status;

private private private private private private private

ApiService apiService; List locDetails=new ArrayList(); List additionalFieldList=new ArrayList(); List fieldControlList=new ArrayList(); List fieldElementList=new ArrayList(); List genericFieldList=new ArrayList(); List employeeInfoList=new ArrayList();

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fabric.with(this, new Crashlytics()); setContentView(R.layout.activity_register); Log.e(TAG, "onCreate:firebase token "+PrefManager.getInstance().getFirebaseToken() ); if (MySingleton.getInstance(FaceTag.getContext()).getUtils().checkWifiOrMobileNetwork(RegisterActivit y.this)) { if (MySingleton.getInstance(getApplicationContext()).getUtils().enableLocPermission(RegisterActivity. this)) { MySingleton.getInstance(getApplicationContext()).getLastLocation().getLocation(RegisterActivity.th is); } else { Permission permission = new Permission(this); permission.checkpermission(); } } else { noInternetDialog = new NoInternetDialog.Builder(RegisterActivity.this).build(); } if (PrefManager.getInstance().isLogin()) { startActivity(new Intent(getApplicationContext(), HomeActivity.class)); finish(); } progressUtils = new ProgressUtils(RegisterActivity.this); edtPhoneNo = findViewById(R.id.edtPhoneNo); btnRegister = findViewById(R.id.btnRegister); imgLogo = findViewById(R.id.imgLogo); btnCardReg = findViewById(R.id.btnCardReg); btnRegister.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Log.e(TAG, "onClick:reg "); btnRegister.setEnabled(false); int locationpermission = ContextCompat.checkSelfPermission(FaceTag.getContext(), Manifest.permission.ACCESS_FINE_LOCATION); if (locationpermission == PackageManager.PERMISSION_GRANTED) { // if (permission.checkpermission()) { if (! MySingleton.getInstance(FaceTag.getContext()).getUtils().checkWifiOrMobileNetwork(RegisterActivity .this)) { btnRegister.setEnabled(true); noInternetDialog = new NoInternetDialog.Builder(RegisterActivity.this).build(); } else { btnRegister.setEnabled(true); if (!edtPhoneNo.getText().toString().isEmpty()) { Animation shake = AnimationUtils.loadAnimation(RegisterActivity.this, R.anim.shake); btnRegister.startAnimation(shake); if (! MySingleton.getInstance(getApplicationContext()).getUtils().isAutoTimeOn(RegisterActivity.this)) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Thread thread = new Thread(new Runnable() { @Override public void run() { Log.e(TAG, "checkPermission: " + MySingleton.getInstance(getApplicationContext()).getUtils().getCurrentNetworkTime()); } }); thread.start(); } if (! MySingleton.getInstance(getApplicationContext()).getUtils().enableLocPermission(RegisterActivity.t his)) { btnRegister.setEnabled(true); MySingleton.getInstance(getApplicationContext()).getUtils().locAlertDialogShow(RegisterActivity.th is); } else { locationActivity.createLocationApi(RegisterActivity.this, 1000, 500); Log.e(TAG, "onClick: " + mCurrentLocation); if (mCurrentLocation != null) {

Log.e(TAG, "onClick:loc " + mCurrentLocation.getLatitude() + " " + mCurrentLocation.getLongitude()); if (MySingleton.getInstance(getApplicationContext()).getUtils().isMockLocation(mCurrentLocation, RegisterActivity.this)) { btnRegister.setEnabled(true); MySingleton.getInstance(getApplicationContext()).getPermissions().permissions(RegisterActivity.thi s); } else { callRegApi(); } } else { Toast.makeText(RegisterActivity.this, "Unable get current location,please try again", Toast.LENGTH_SHORT).show(); btnRegister.setEnabled(true); } } } else { Toast.makeText(RegisterActivity.this, "Enter phone number", Toast.LENGTH_SHORT).show(); btnRegister.setEnabled(true); } } } else { Toast.makeText(RegisterActivity.this, "Enable location permission", Toast.LENGTH_SHORT).show(); // permission.checkpermission(); btnRegister.setEnabled(true); } } }); } private void callRegApi() { apiService = MySingleton.getInstance(FaceTag.getContext()).getRetrofit().getApiService(); final RegisterRequest request = new RegisterRequest(); request.setPhoneNumber(edtPhoneNo.getText().toString()); request.setIMEINumber(MySingleton.getInstance(getApplicationContext()).getUtils().getDeviceInfo(ge tApplicationContext()).getIMEINumber()); request.setModelName(MySingleton.getInstance(getApplicationContext()).getUtils().getDeviceInfo(get ApplicationContext()).getModelName()); retrofit2.Call call = apiService.getRegisterResponse(request); progressUtils.setMessage("loading..."); progressUtils.show(); if (!edtPhoneNo.getText().toString().isEmpty()) { if (MySingleton.getInstance(getApplicationContext()).getUtils().isValidPhone(edtPhoneNo.getText().toS tring())) { call.enqueue(new Callback() { @Override public void onResponse(retrofit2.Call call, Response response) { if (response.isSuccessful()) { if (response.body().getResultResponse().equalsIgnoreCase("Success")) { Log.e(TAG, "onResponse:msg " + response.message()); progressUtils.dismiss(); Log.e(TAG, "onResponse: " + response.body().getOTPValue()); PrefManager.getInstance().setEmpCode(response.body().getEmployeeInfo().get(0).getEmployeeCode()); RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().deleteRegResponse(); RoomDatabase.getAppDatabase(FaceTag.getContext()).getLogSupervisorDao().deleteSupervisorLog(); RoomDatabase.getAppDatabase(FaceTag.getContext()).getLogEmployeeDao().deleteEmployeeLog(); RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().insertRegResponse(response.body()); for (EmployeeInfo employeeInfo : response.body().getEmployeeInfo()) { employeeInfoList=new ArrayList(); Log.e(TAG, "onResponse:emp id "+RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().getRegisterResponse().getId() ); employeeInfo.setEmpId(RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().getRegisterRes ponse().getId()); employeeInfoList.add(employeeInfo); }

RoomDatabase.getAppDatabase(FaceTag.getContext()).getEmployeeDao().insertEmployeeDetails(employeeI nfoList.get(0)); if (response.body().getLocationInfo().size() > 0) { Log.e(TAG, "onResponse:Id "+RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().getRegisterResponse().getId() ); Log.e(TAG, "onResponse:123 "+response.body().getId() ); for (LocationDetails details : response.body().getLocationInfo()) { locDetails = new ArrayList(); details.setLocId(RoomDatabase.getAppDatabase(FaceTag.getContext()).getRegDao().getRegisterResponse ().getId()); details.setEmpCode(PrefManager.getInstance().getEmpCode()); locDetails.add(details); } RoomDatabase.getAppDatabase(FaceTag.getContext()).getLocationDao().insertLocationDetails(locDetail s); } if (response.body().getAdditionalField().size() > 0 && response.body().getFieldControl().size() > 0) { /* for (int i = 0; i