diff --git a/.idea/misc.xml b/.idea/misc.xml index 31e5cb0..d7916a5 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 8565d2d..419b565 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.cpm.lorealbaMabeline" //noinspection OldTargetApi targetSdk 34 - versionCode 24 - versionName "3.2" + versionCode 23 + versionName "3.1" multiDexEnabled true useLibrary 'org.apache.http.legacy' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index e9f9102..31a6577 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 24, - "versionName": "3.2", + "versionCode": 23, + "versionName": "3.1", "outputFile": "app-release.apk" } ], diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/CounterLoginActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/CounterLoginActivity.java index 694eb82..fd83430 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/CounterLoginActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/CounterLoginActivity.java @@ -307,7 +307,7 @@ public class CounterLoginActivity extends AppCompatActivity implements View.OnCl JSONObject jsonObject = new JSONObject(); jsonObject.put("Latitude", lat); jsonObject.put("Longitude", lon); - jsonObject.put("Appversion", app_ver); + jsonObject.put("Appversion", app_ver +"T1"); jsonObject.put("Attmode", "0"); jsonObject.put("Networkstatus", "0"); jsonObject.put("Manufacturer", manufacturer); @@ -502,7 +502,7 @@ public class CounterLoginActivity extends AppCompatActivity implements View.OnCl try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; - versioncode_txt.setText("Version : " + version); + versioncode_txt.setText("Version : " + version +"-T1"); } catch (PackageManager.NameNotFoundException e) { e.fillInStackTrace(); versioncode_txt.setText("Version : 0.0"); diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/DealarBoardActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/DealarBoardActivity.java index beeb878..eab2930 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/DealarBoardActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/DealarBoardActivity.java @@ -818,7 +818,7 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; - version_code.setText("Version : " + version); + version_code.setText("Version : " + version +"-T1"); } catch (PackageManager.NameNotFoundException e) { e.fillInStackTrace(); version_code.setText("Version : 0.0"); diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/IMEILoginActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/IMEILoginActivity.java index bc2cd62..4c6230e 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/IMEILoginActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/IMEILoginActivity.java @@ -166,7 +166,7 @@ public class IMEILoginActivity extends AppCompatActivity implements GoogleApiCli try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; - versioncode_txt.setText("Version : " + version); + versioncode_txt.setText("Version : " + version+"-T1"); } catch (PackageManager.NameNotFoundException e) { e.fillInStackTrace(); versioncode_txt.setText("Version : 0.0"); diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/LocationEngine.java b/app/src/main/java/com/cpm/lorealbaMabeline/LocationEngine.java new file mode 100644 index 0000000..b002bec --- /dev/null +++ b/app/src/main/java/com/cpm/lorealbaMabeline/LocationEngine.java @@ -0,0 +1,119 @@ +package com.cpm.lorealbaMabeline; + +import android.Manifest; +import android.content.Context; +import android.content.pm.PackageManager; +import android.location.Location; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; + +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; + +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.location.Priority; + + +public class LocationEngine { + + public interface LocationResultListener { + void onLocationReady(Location location, float accuracy); + void onFailure(String msg); + } + + private final Context context; + private final FusedLocationProviderClient fusedClient; + + private LocationCallback locationCallback; + + private Location bestLocation = null; + private float bestAccuracy = Float.MAX_VALUE; + + private Handler handler = new Handler(Looper.getMainLooper()); + + public LocationEngine(Context context) { + this.context = context; + fusedClient = LocationServices.getFusedLocationProviderClient(context); + } + + public void start(LocationResultListener listener) { + + com.google.android.gms.location.LocationRequest request = new com.google.android.gms.location.LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 2000L) + .setMinUpdateIntervalMillis(1000L) + .setMaxUpdateDelayMillis(3000L) + .setWaitForAccurateLocation(true) // Optional, improves first fix + .build(); + + /* LocationRequest request = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 2000L) // 👈 IMPORTANT + .setMinUpdateIntervalMillis(1000L) + .setMaxUpdateDelayMillis(3000L) + .setWaitForAccurateLocation(true) + .build();*/ + + locationCallback = new LocationCallback() { + @Override + public void onLocationResult(@NonNull LocationResult result) { + + for (Location location : result.getLocations()) { + + if (location == null) continue; + + float accuracy = location.getAccuracy(); + + // 🔥 Track best location always + if (accuracy < bestAccuracy) { + bestAccuracy = accuracy; + bestLocation = location; + } + + Log.d("LocationEngine", + "Lat: " + location.getLatitude() + + " Lng: " + location.getLongitude() + + " Acc: " + accuracy); + + // ✅ Accept good or stable location + if (accuracy <= 80) { + stop(); + listener.onLocationReady(location, accuracy); + return; + } + } + } + }; + + if (ActivityCompat.checkSelfPermission(context, + Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + + listener.onFailure("Permission not granted"); + return; + } + + fusedClient.requestLocationUpdates(request, locationCallback, Looper.getMainLooper()); + + // ⏱ Timeout fallback (VERY IMPORTANT) + handler.postDelayed(() -> { + + if (bestLocation != null) { + Log.d("LocationEngine", "Using fallback location"); + + listener.onLocationReady(bestLocation, bestAccuracy); + } else { + listener.onFailure("Unable to fetch location"); + } + + stop(); + + }, 8000); + } + + public void stop() { + if (locationCallback != null) { + fusedClient.removeLocationUpdates(locationCallback); + } + handler.removeCallbacksAndMessages(null); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/UserLoginActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/UserLoginActivity.java index 78410dc..f753df1 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/UserLoginActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/UserLoginActivity.java @@ -283,7 +283,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; - versioncode_txt.setText("Version : " + version); + versioncode_txt.setText("Version : " + version +"-T1"); } catch (PackageManager.NameNotFoundException e) { e.fillInStackTrace(); versioncode_txt.setText("Version : 0.0"); diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/StoreImageActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/StoreImageActivity.java index fc7ccd7..450958e 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/StoreImageActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/StoreImageActivity.java @@ -11,7 +11,6 @@ import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.IntentSender; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -27,7 +26,6 @@ import androidx.core.content.ContextCompat; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; -import android.os.Looper; import android.util.Log; import android.view.KeyEvent; import android.view.MenuItem; @@ -35,20 +33,16 @@ import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; +import android.widget.ProgressBar; import android.widget.Toast; -import com.google.android.gms.common.api.ResolvableApiException; +import com.cpm.lorealbaMabeline.Database.Lorealba_Database; +import com.cpm.lorealbaMabeline.LocationEngine; import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.LocationCallback; -import com.google.android.gms.location.LocationRequest; -import com.google.android.gms.location.LocationResult; import com.google.android.gms.location.LocationServices; -import com.google.android.gms.location.LocationSettingsRequest; -import com.google.android.gms.location.Priority; -import com.google.android.gms.location.SettingsClient; import com.google.gson.Gson; import com.cpm.lorealbaMabeline.BuildConfig; -import com.cpm.lorealbaMabeline.Database.Lorealba_Database; import com.cpm.lorealbaMabeline.DealarBoardActivity; import com.cpm.lorealbaMabeline.R; import com.cpm.lorealbaMabeline.constant.AlertandMessages; @@ -103,6 +97,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic private ImageView img_cam, img_clicked; private String _pathforcheck, _path, str, img_str, selfie_imge, visit_date, username, counter_id, userType; private Lorealba_Database db; + private LocationEngine locationEngine; private Runnable run; private boolean isGeoTagAlertShown = false; private Toolbar toolbar; @@ -116,12 +111,14 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic private FusedLocationProviderClient fusedLocationClient = null; private LocationCallback locationCallback = null; private SharedPreferences.Editor editor = null; - + private boolean isLocationFetching = false; + private ProgressBar locationLoader; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_store_image); + locationEngine = new LocationEngine(this); db = new Lorealba_Database(this); db.open(); SharedPreferences preferences = PrefHelper.getPrefs(this); @@ -130,6 +127,13 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); img_cam = (ImageView) findViewById(R.id.img_selfie); img_clicked = (ImageView) findViewById(R.id.img_cam_selfie); + locationLoader = findViewById(R.id.locationLoader); + locationLoader.setVisibility(View.VISIBLE); + + getWindow().setFlags( + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE + ); btn_save = (Button) findViewById(R.id.btn_save_selfie); toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); @@ -169,9 +173,8 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } catch (Exception e) { e.fillInStackTrace(); } - checkAndRequestPermissions(); - getLastLocation(); + fetchLocationAndCheckGeoFence(); } private void checkdates() { @@ -546,7 +549,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } } else { /// checking GeoFencing - getLastLocation(); + fetchLocationAndCheckGeoFence(); } } @@ -557,13 +560,13 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic success_geoTag = true; } if (!success_geoTag) { - getLastLocation(); + fetchLocationAndCheckGeoFence(); } - checkgpsEnableDevice(); + // checkgpsEnableDevice(); getMid(); } - private void checkgpsEnableDevice() { + /*private void checkgpsEnableDevice() { if (!hasGPSDevice(this)) { Toast.makeText(this, "Gps not Supported", Toast.LENGTH_SHORT).show(); } @@ -608,7 +611,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } private void startLocationUpdates(LocationRequest locationRequest) { - fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); + fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); locationCallback = new LocationCallback() { @Override @@ -617,8 +620,10 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic for (Location location : locationResult.getLocations()) { if (location != null) { - lat = location.getLatitude(); - lon = location.getLongitude(); + if(location.getAccuracy()<80){ + lat = location.getLatitude(); + lon = location.getLongitude(); + } } } } @@ -634,14 +639,13 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } - private boolean hasGPSDevice(Context context) { final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); if (mgr == null) return false; final List providers = mgr.getAllProviders(); if (providers == null) return false; return providers.contains(LocationManager.GPS_PROVIDER); - } + }*/ private void DownloadJCP(final Context context, final ProgressDialog loading) { try { @@ -675,8 +679,9 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic jcpObject = new Gson().fromJson(data, JCPGetterSetter.class); db.open(); if (jcpObject != null && db.insertJCPData(jcpObject)) { + Log.d("jcpdatanew","jcp data inserted"); /// checking GeoFencing - getLastLocation(); + fetchLocationAndCheckGeoFence(); AlertandMessages.showToastMsg(context, "Journey Plan Download Successfully."); JourneyPlan jcp = db.getBIDfromJCP(username, counter_id); if (jcp != null && jcp.getCheckout() != null && !jcp.getCheckout().isEmpty() && jcp.getCheckout().equals("Y")) { @@ -832,7 +837,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic boolean allPermissionsGranted = Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.CAMERA)) && Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.ACCESS_NETWORK_STATE)) && Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.ACCESS_COARSE_LOCATION)) && Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.ACCESS_FINE_LOCATION)) && Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.READ_PHONE_STATE)); if (allPermissionsGranted) { - getLastLocation(); + fetchLocationAndCheckGeoFence(); } else { //test("", "Some permissions are not granted ask again "); if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { @@ -858,7 +863,46 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } } - private void getLastLocation() { + private void fetchLocationAndCheckGeoFence() { + if (isLocationFetching) return; // prevent multiple calls + isLocationFetching = true; + + locationLoader.setVisibility(View.VISIBLE); + getWindow().setFlags( + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, + WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE + ); + + locationEngine.start(new LocationEngine.LocationResultListener() { + + @Override + public void onLocationReady(Location location, float accuracy) { + isLocationFetching = false; + + locationLoader.setVisibility(View.GONE); + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); + + lat = location.getLatitude(); + lon = location.getLongitude(); + + Log.d("GeoFence", "Lat: " + lat + ", Lon: " + lon + ", Acc: " + accuracy); + + // 🔥 Pass accuracy also + checkingGeoFencing(getMid(), accuracy); + } + + @Override + public void onFailure(String msg) { + isLocationFetching = false; + + locationLoader.setVisibility(View.GONE); + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); + Toast.makeText(StoreImageActivity.this, msg, Toast.LENGTH_SHORT).show(); + } + }); + } + + /*private void fetchLocationAndCheckGeoFence() { if (fusedLocationClient == null) { fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); } @@ -869,7 +913,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic return; } // First, try to get the last known location - fusedLocationClient.getLastLocation() + fusedLocationClient.fetchLocationAndCheckGeoFence() .addOnSuccessListener(location -> { if (location != null) { lat = location.getLatitude(); @@ -884,38 +928,74 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic // Fallback: explicit request for a new location requestNewLocation(); }); - } + }*/ - private void requestNewLocation() { - LocationRequest locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 5000) - .setMinUpdateIntervalMillis(3000) - .setMaxUpdateDelayMillis(6000) + /*private void requestNewLocation() { + + LocationRequest locationRequest = new LocationRequest.Builder( + Priority.PRIORITY_HIGH_ACCURACY, 2000) + .setMinUpdateIntervalMillis(1000) + .setMaxUpdateDelayMillis(3000) .setMinUpdateDistanceMeters(0f) .setWaitForAccurateLocation(true) .build(); + locationCallback = new LocationCallback() { @Override public void onLocationResult(@NonNull LocationResult locationResult) { + for (Location location : locationResult.getLocations()) { + if (location != null) { - lat = location.getLatitude(); - lon = location.getLongitude(); - Log.d("Location", "Lat: " + lat + ", Lng: " + lon + " (new)"); - checkingGeoFencing(getMid()); - stopLocationUpdates(); // Stop updates after first valid location - break; + + float accuracy = location.getAccuracy(); + + Log.d("Location", "Lat: " + location.getLatitude() + + ", Lng: " + location.getLongitude() + + ", Accuracy: " + accuracy); + + // 🎯 IMPORTANT: Accept only accurate location + if (accuracy <= 80) { + + lat = location.getLatitude(); + lon = location.getLongitude(); + + Log.d("Location", "Accurate location received ✅"); + + checkingGeoFencing(getMid(),accuracy); + + stopLocationUpdates(); // stop after good fix + break; + + } else { + Log.d("Location", "Waiting for better accuracy..."); + } } } } }; + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) - != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { - // Request permissions if not granted + != PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) + != PackageManager.PERMISSION_GRANTED) { + checkAndRequestPermissions(); return; } - fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); - } + + fusedLocationClient.requestLocationUpdates( + locationRequest, + locationCallback, + Looper.getMainLooper() + ); + + // ⏱ OPTIONAL: timeout (avoid infinite wait) + new android.os.Handler().postDelayed(() -> { + Log.d("Location", "Timeout reached ⏳"); + stopLocationUpdates(); + }, 10000); // 10 seconds max + }*/ private void stopLocationUpdates() { if (fusedLocationClient != null && locationCallback != null) { @@ -926,7 +1006,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic @Override public void onDestroy() { super.onDestroy(); - // stopLocationUpdates(); + // stopLocationUpdates(); if (loading != null && loading.isShowing()) { loading.dismiss(); } @@ -938,19 +1018,27 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic stopLocationUpdates(); } - private void checkingGeoFencing(JourneyPlan jcp) { + + private void checkingGeoFencing(JourneyPlan jcp, float accuracy) { if (jcp != null && jcp.getBID() != null) { if (jcp.getGeoTag() != null && !jcp.getGeoTag().equalsIgnoreCase(CommonString.KEY_N) && jcp.getGeoFencingAllow() != null && jcp.getGeoFencingAllow() == 1) { int distance = jcp.getGeoFencingRadius() != null ? jcp.getGeoFencingRadius() : 0; int current_dist_from_store_using_lat = 0; - Log.d("latdata",lat + ","+lon + ","+jcp.getLatitude() + ","+jcp.getLongitude()); + + + Log.d("latdata", lat + "," + lon + "," + jcp.getLatitude() + "," + jcp.getLongitude()); if (jcp.getLatitude() != 0.0 && jcp.getLongitude() != 0.0 && jcp.getGeoFencingRadius() != 0 && lat != 0.0 && lon != 0.0) { current_dist_from_store_using_lat = DistanceUtils.calculateDistanceInMeters(lat, lon, jcp.getLatitude(), jcp.getLongitude()); + int adjustedDistance = current_dist_from_store_using_lat - (int) accuracy; + Log.d("GeoFence", "Actual: " + current_dist_from_store_using_lat + + " Accuracy: " + accuracy + + " Adjusted: " + adjustedDistance); Log.d("TagLoc", "Radius " + distance + "\nCurrent dist " + current_dist_from_store_using_lat); - if (current_dist_from_store_using_lat > distance) { + // if (current_dist_from_store_using_lat > distance) { + if (adjustedDistance > distance) { String msg = getString(R.string.you_need_to_be_within) + " " + distance + " metres " + getString(R.string.you_need_to_be_in_the_store) + "\n\n" + getString(R.string.distance_from_the_store) + " " + current_dist_from_store_using_lat + " " + getString(R.string.meters); - if (isFinishing() || (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1 && isDestroyed())) { + if (isFinishing() || isDestroyed()) { return; } AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -964,10 +1052,11 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } } } else { - if (isFinishing() || (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1 && isDestroyed())) { + if (isFinishing() || isDestroyed()) { return; } db.open(); + Log.d("jcpdata", jcp.getGeoTag()); if (jcp.getGeoTag() != null && !jcp.getGeoTag().equalsIgnoreCase(CommonString.KEY_Y) && !isGeoTagAlertShown) { isGeoTagAlertShown = true; AlertDialog.Builder builder = new AlertDialog.Builder(this); @@ -989,5 +1078,6 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic } } + } diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/TabLoginActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/TabLoginActivity.java index db3d440..6051e86 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/TabLoginActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/dailyactivity/TabLoginActivity.java @@ -260,7 +260,7 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClickL try { PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); String version = pInfo.versionName; - versioncode_txt.setText("Version : " + version); + versioncode_txt.setText("Version : " + version +"-T1"); } catch (PackageManager.NameNotFoundException e) { e.fillInStackTrace(); versioncode_txt.setText("Version : 0.0"); @@ -329,7 +329,7 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClickL jsonObject.put("CounterId", counterId); jsonObject.put("Latitude", lat); jsonObject.put("Longitude", lon); - jsonObject.put("Appversion", app_ver); + jsonObject.put("Appversion", app_ver +"-T1"); jsonObject.put("Attmode", "0"); jsonObject.put("Networkstatus", "0"); jsonObject.put("ModelNumber", model); diff --git a/app/src/main/java/com/cpm/lorealbaMabeline/geotag/GeoTaggingActivity.java b/app/src/main/java/com/cpm/lorealbaMabeline/geotag/GeoTaggingActivity.java index cbbb0ee..5fe59bb 100644 --- a/app/src/main/java/com/cpm/lorealbaMabeline/geotag/GeoTaggingActivity.java +++ b/app/src/main/java/com/cpm/lorealbaMabeline/geotag/GeoTaggingActivity.java @@ -31,6 +31,7 @@ import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import com.cpm.lorealbaMabeline.LocationEngine; import com.google.android.gms.common.api.ResolvableApiException; import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.LocationCallback; @@ -106,44 +107,97 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); geocoder = new Geocoder(this); declaration(); - fab.setOnClickListener(view -> { + /*fab.setOnClickListener(view -> { try { - startLocationUpdates(); if (!img_str.isEmpty()) { - if (db.InsertSTOREgeotag(jcpGetset.getStoreId().toString(), counter_id, jcpGetset.getBID().toString(), username, latitude, longitude, img_str) > 0) { - img_str = ""; - if (checkNetIsAvailable(view.getContext())) { - new GeoTagUpload().execute(); - } else { - AlertandMessages.showToastMsg(context, getResources().getString(R.string.nonetwork)); - } - } else { - AlertandMessages.showToastMsg(context, "Error in saving Geotag"); - } + startLocationUpdates(true); } else { AlertandMessages.showToastMsg(view.getContext(), getResources().getString(R.string.takeimage)); } + } catch (Exception e) { + e.fillInStackTrace(); + } + });*/ + fab.setOnClickListener(view -> { + try { + if (!img_str.isEmpty()) { + + LocationEngine engine = new LocationEngine(this); + + engine.start(new LocationEngine.LocationResultListener() { + @Override + public void onLocationReady(Location location, float accuracy) { + + // ✅ Validate location + if (location == null) { + AlertandMessages.showToastMsg(context, "Unable to fetch location,Please try later"); + return; + } + + // ✅ Accuracy check (important for geofencing) + if (accuracy > 80) { + AlertandMessages.showToastMsg(context, "Fetching accurate location, please wait..."); + return; + } + + latitude = location.getLatitude(); + longitude = location.getLongitude(); + // ✅ Lat/Lng validation + if (latitude == 0.0 || longitude == 0.0) { + AlertandMessages.showToastMsg(context, "Invalid location, please try again"); + return; + } + + Log.d("GeoTag", "Acc: " + accuracy +","+ latitude + ","+longitude); + updateMapWithLocation(latitude, longitude); + + // 🔥 Save geotag + if (db.InsertSTOREgeotag( + jcpGetset.getStoreId().toString(), + counter_id, + jcpGetset.getBID().toString(), + username, + latitude, + longitude, + img_str) > 0) { + + if (checkNetIsAvailable(context)) { + new GeoTagUpload().execute(); + } else { + AlertandMessages.showToastMsg(context, getString(R.string.nonetwork)); + } + } else { + AlertandMessages.showToastMsg(context, "Error in saving Geotag"); + } + } + + @Override + public void onFailure(String msg) { + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } + }); + + } else { + AlertandMessages.showToastMsg(view.getContext(), getString(R.string.takeimage)); + } + } catch (Exception e) { e.printStackTrace(); } }); camera_fab.setOnClickListener(view -> { try { - if (checkNetIsAvailable(view.getContext())) { - if (latitude != 0.0 && longitude != 0.0) { - _pathforcheck = jcpGetset.getStoreId().toString() + "-" + jcpGetset.getCounterId().toString() + - "-" + jcpGetset.getBID().toString() + "_GeoTag-" + jcpGetset.getVisitDate().replace("/", "") - + "_" + getCurrentTime().replace(":", "") + ".jpg"; - _path = CommonString.getImagesFolder(context) + _pathforcheck; - CommonFunctions.startAnncaCameraActivity(context, _path, null, false, CommonString.CAMERA_FACE_REAR); - } else { - AlertandMessages.showToastMsg(context, "Please wait for location"); - } + if (latitude != 0.0 && longitude != 0.0) { + _pathforcheck = jcpGetset.getStoreId().toString() + "-" + jcpGetset.getCounterId().toString() + + "-" + jcpGetset.getBID().toString() + "_GeoTag-" + jcpGetset.getVisitDate().replace("/", "") + + "_" + getCurrentTime().replace(":", "") + ".jpg"; + _path = CommonString.getImagesFolder(context) + _pathforcheck; + CommonFunctions.startAnncaCameraActivity(context, _path, null, false, CommonString.CAMERA_FACE_REAR); } else { - AlertandMessages.showToastMsg(context, getResources().getString(R.string.nonetwork)); + AlertandMessages.showToastMsg(context, "Please wait for location"); } } catch (Exception e) { - e.printStackTrace(); + e.fillInStackTrace(); } }); if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || @@ -170,7 +224,6 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC if (distance > 10) { previousLatitude = latitude; previousLongitude = longitude; - updateMapWithLocation(latitude, longitude); } } @@ -179,25 +232,60 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC } }; } - - private void startLocationUpdates() { - LocationRequest locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 5000) - .setMinUpdateIntervalMillis(3000) + private void startLocationUpdates(boolean save) { + LocationRequest locationRequest = new LocationRequest.Builder( + Priority.PRIORITY_HIGH_ACCURACY, 2000) + .setMinUpdateIntervalMillis(1000) + .setMaxUpdateDelayMillis(3000) .setWaitForAccurateLocation(true) - .setMaxUpdateDelayMillis(6000) .build(); + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper()); - fusedLocationClient.getLastLocation().addOnSuccessListener(this, location -> { - if (location != null && (latitude == 0.0 && longitude == 0.0)) { - latitude = location.getLatitude(); - longitude = location.getLongitude(); - previousLatitude = latitude; - previousLongitude = longitude; - updateMapWithLocation(latitude, longitude); - } - }); + + fusedLocationClient.requestLocationUpdates( + locationRequest, + new LocationCallback() { + @Override + public void onLocationResult(@NonNull LocationResult locationResult) { + + for (Location location : locationResult.getLocations()) { + + if (location != null) { + + float accuracy = location.getAccuracy(); + + Log.d("Location", "Accuracy: " + accuracy); + + // ✅ Only accept good accuracy + latitude = location.getLatitude(); + longitude = location.getLongitude(); + Log.d("Location", "Accuracy: " + accuracy +","+ latitude +","+ longitude); + + previousLatitude = latitude; + previousLongitude = longitude; + if (save){ + runOnUiThread(() -> { + if (db.InsertSTOREgeotag(jcpGetset.getStoreId().toString(), counter_id, jcpGetset.getBID().toString(), username, latitude, longitude, img_str) > 0) { + if (checkNetIsAvailable(context)) { + new GeoTagUpload().execute(); + } else { + AlertandMessages.showToastMsg(context, getResources().getString(R.string.nonetwork)); + } + } else { + AlertandMessages.showToastMsg(context, "Error in saving Geotag"); + } + }); + } + updateMapWithLocation(latitude, longitude); + stopLocationUpdates(); // stop after good fix + break; + } + } + } + }, + Looper.getMainLooper() + ); } else { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, @@ -205,6 +293,19 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC } } + + private void stopLocationUpdates() { + if (fusedLocationClient != null && locationCallback != null) { + fusedLocationClient.removeLocationUpdates(locationCallback); + } + } + + @Override + protected void onPause() { + super.onPause(); + stopLocationUpdates(); + } + private void updateMapWithLocation(double lat, double lon) { if (geocoder != null && mMap != null) { Log.e("jeevanp", "" + lat); @@ -248,29 +349,69 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC @Override public void onMapReady(@NonNull GoogleMap googleMap) { + mMap = googleMap; + mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); mMap.getUiSettings().setZoomControlsEnabled(true); mMap.getUiSettings().setCompassEnabled(true); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude,longitude), 15)); - if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || - ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + + // ❌ REMOVE this (causes 0,0 jump) + // mMap.moveCamera(...) + + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) + == PackageManager.PERMISSION_GRANTED || + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) + == PackageManager.PERMISSION_GRANTED) { + mMap.setMyLocationEnabled(true); mMap.getUiSettings().setMyLocationButtonEnabled(true); - startLocationUpdates(); + + // ✅ Use LocationEngine instead + fetchMapLocation(); + } else { ActivityCompat.requestPermissions(this, - new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, + new String[]{ + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_COARSE_LOCATION + }, LOCATION_PERMISSION_REQUEST_CODE); } - fusedLocationClient.getLastLocation().addOnSuccessListener(location -> { - if (location != null && (latitude == 0.0 && longitude == 0.0)) { + } + + private void fetchMapLocation() { + + LocationEngine engine = new LocationEngine(this); + + engine.start(new LocationEngine.LocationResultListener() { + + @Override + public void onLocationReady(Location location, float accuracy) { + + if (location == null) return; + + // 🎯 Optional: accuracy check + if (accuracy > 80) { + Log.d("Map", "Waiting for better accuracy..."); + return; + } + latitude = location.getLatitude(); longitude = location.getLongitude(); + previousLatitude = latitude; previousLongitude = longitude; + + Log.d("Map", "Lat: " + latitude + ", Lng: " + longitude + ", Acc: " + accuracy); + updateMapWithLocation(latitude, longitude); } + + @Override + public void onFailure(String msg) { + Toast.makeText(GeoTaggingActivity.this, msg, Toast.LENGTH_SHORT).show(); + } }); } @@ -293,7 +434,7 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC mMap.getUiSettings().setMyLocationButtonEnabled(true); } } - startLocationUpdates(); + startLocationUpdates(false); } else { Toast.makeText(this, "Location permissions are required for geotagging", Toast.LENGTH_LONG).show(); } @@ -303,13 +444,13 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC @Override protected void onResume() { super.onResume(); - checkgpsEnableDevice(); + //checkgpsEnableDevice(); } @Override protected void onStart() { super.onStart(); - startLocationUpdates(); + startLocationUpdates(false); } @@ -399,9 +540,9 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC geotaglist = db.getinsertGeotaggingData(jcpGetset.getStoreId().toString(), counter_id, username, CommonString.KEY_N); if (!geotaglist.isEmpty()) { String jsonString2 = getString(); - // Log.e("jsonString2", jsonString2); + // Log.e("jsonString2", jsonString2); String result = upload.downloadDataUniversal(jsonString2); - // Log.e("jsonString2", result); + // Log.e("jsonString2", result); if (result.equalsIgnoreCase(CommonString.MESSAGE_NO_RESPONSE_SERVER)) { uploadflag = false; throw new SocketTimeoutException(); @@ -433,7 +574,6 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC } else { return errormsg; } - } private @NonNull String getString() throws JSONException { @@ -442,7 +582,6 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC JSONObject obj = getJsonObject(j); topUpArray.put(obj); } - JSONObject jsonObject = new JSONObject(); jsonObject.put("MID", jcpGetset.getMID() != null ? jcpGetset.getMID() : 0); jsonObject.put("Keys", "GeoTag"); @@ -454,7 +593,7 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC @NonNull private JSONObject getJsonObject(int j) throws JSONException { JSONObject obj = new JSONObject(); - obj.put("UserId",username); + obj.put("UserId", username); obj.put("StoreId", geotaglist.get(j).getStoreid()); obj.put("CounterId", geotaglist.get(j).getCounterId()); obj.put("bID", geotaglist.get(j).getBid()); @@ -510,9 +649,8 @@ public class GeoTaggingActivity extends AppCompatActivity implements OnMapReadyC settingsClient.checkLocationSettings(builder.build()).addOnSuccessListener(locationSettingsResponse -> { // All location settings are satisfied. You can request location updates here. }).addOnFailureListener(e -> { - if (e instanceof ResolvableApiException) { + if (e instanceof ResolvableApiException resolvable) { try { - ResolvableApiException resolvable = (ResolvableApiException) e; resolvable.startResolutionForResult((Activity) this, REQUEST_LOCATION); } catch (IntentSender.SendIntentException sendEx) { // Ignore the error. diff --git a/app/src/main/res/layout-sw600dp/content_store_image.xml b/app/src/main/res/layout-sw600dp/content_store_image.xml index 2271534..eef9b1c 100644 --- a/app/src/main/res/layout-sw600dp/content_store_image.xml +++ b/app/src/main/res/layout-sw600dp/content_store_image.xml @@ -25,6 +25,13 @@ android:gravity="center" android:orientation="vertical"> + + + + diff --git a/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml b/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml index 4aebd2b..dc05a95 100644 --- a/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml +++ b/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release-artifact-libraries.xml @@ -1,9 +1,9 @@ diff --git a/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml b/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml index 2015474..ae4a3cc 100644 --- a/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml +++ b/library/build/intermediates/incremental/lintVitalAnalyzeRelease/release.xml @@ -6,7 +6,7 @@ mergedManifest="build\intermediates\merged_manifest\release\AndroidManifest.xml" proguardFiles="build\intermediates\default_proguard_files\global\proguard-android.txt-8.2.2;proguard-rules.txt" partialResultsDir="build\intermediates\lint_vital_partial_results\release\out" - desugaredMethodsFiles="C:\Users\jeevanp\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> + desugaredMethodsFiles="C:\Users\ravik\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> @@ -26,6 +26,6 @@ applicationId="com.androidbuts.multispinnerfilter" generatedSourceFolders="build\generated\ap_generated_sources\release\out" generatedResourceFolders="build\generated\res\resValues\release" - desugaredMethodsFiles="C:\Users\jeevanp\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> + desugaredMethodsFiles="C:\Users\ravik\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> diff --git a/library/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml b/library/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml index ef8df9b..248ae88 100644 --- a/library/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml +++ b/library/build/intermediates/incremental/mergeReleaseJniLibFolders/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/library/build/intermediates/incremental/mergeReleaseShaders/merger.xml b/library/build/intermediates/incremental/mergeReleaseShaders/merger.xml index 5be71aa..5cd8e0e 100644 --- a/library/build/intermediates/incremental/mergeReleaseShaders/merger.xml +++ b/library/build/intermediates/incremental/mergeReleaseShaders/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/library/build/intermediates/incremental/packageReleaseAssets/merger.xml b/library/build/intermediates/incremental/packageReleaseAssets/merger.xml index 3f0cd51..3763019 100644 --- a/library/build/intermediates/incremental/packageReleaseAssets/merger.xml +++ b/library/build/intermediates/incremental/packageReleaseAssets/merger.xml @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/library/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties b/library/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties index 40fa7e1..1914825 100644 --- a/library/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties +++ b/library/build/intermediates/incremental/release/packageReleaseResources/compile-file-map.properties @@ -1,6 +1,6 @@ -#Tue Dec 30 12:54:23 IST 2025 -com.androidbuts.multispinnerfilter.library-main-5\:/layout/textview_for_spinner.xml=D\:\\jeevanp_cpm_projects\\LorealBaProjects\\LorealBa-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\textview_for_spinner.xml -com.androidbuts.multispinnerfilter.library-main-5\:/layout/activity_main.xml=D\:\\jeevanp_cpm_projects\\LorealBaProjects\\LorealBa-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\activity_main.xml -com.androidbuts.multispinnerfilter.library-main-5\:/layout/alert_dialog_listview_search.xml=D\:\\jeevanp_cpm_projects\\LorealBaProjects\\LorealBa-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\alert_dialog_listview_search.xml -com.androidbuts.multispinnerfilter.library-main-5\:/layout/item_listview_single.xml=D\:\\jeevanp_cpm_projects\\LorealBaProjects\\LorealBa-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_single.xml -com.androidbuts.multispinnerfilter.library-main-5\:/layout/item_listview_multiple.xml=D\:\\jeevanp_cpm_projects\\LorealBaProjects\\LorealBa-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_multiple.xml +#Mon Mar 23 16:15:42 IST 2026 +com.androidbuts.multispinnerfilter.library-main-5\:/layout/textview_for_spinner.xml=E\:\\LorealBa-MNY-Latest-2024\\LorealBA-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\textview_for_spinner.xml +com.androidbuts.multispinnerfilter.library-main-5\:/layout/activity_main.xml=E\:\\LorealBa-MNY-Latest-2024\\LorealBA-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\activity_main.xml +com.androidbuts.multispinnerfilter.library-main-5\:/layout/alert_dialog_listview_search.xml=E\:\\LorealBa-MNY-Latest-2024\\LorealBA-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\alert_dialog_listview_search.xml +com.androidbuts.multispinnerfilter.library-main-5\:/layout/item_listview_single.xml=E\:\\LorealBa-MNY-Latest-2024\\LorealBA-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_single.xml +com.androidbuts.multispinnerfilter.library-main-5\:/layout/item_listview_multiple.xml=E\:\\LorealBa-MNY-Latest-2024\\LorealBA-MNY-Latest-2024\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_multiple.xml diff --git a/library/build/intermediates/incremental/release/packageReleaseResources/merger.xml b/library/build/intermediates/incremental/release/packageReleaseResources/merger.xml index fc5aa6c..89dce33 100644 --- a/library/build/intermediates/incremental/release/packageReleaseResources/merger.xml +++ b/library/build/intermediates/incremental/release/packageReleaseResources/merger.xml @@ -1,5 +1,5 @@ -#29CA97#06ACE4#06ACE4#1589FF#FFFFFF#000000#D1D0CE#E1E2E2#3f51b5#E1E2E2#303f9f#F06292#FF0000#00FFFF#ADD8E6#686868#747474#AAAAAA#AAAAAA#E1E2E2#455FB6#99979C16dp16dpType to Search + - \ No newline at end of file + \ No newline at end of file diff --git a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/com/google/android/material/group-index.xml b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/com/google/android/material/group-index.xml index 3a831fa..b934f31 100644 --- a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/com/google/android/material/group-index.xml +++ b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/com/google/android/material/group-index.xml @@ -3,5 +3,5 @@ - + diff --git a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/master-index.xml b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/master-index.xml index 9824017..81fa30e 100644 --- a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/master-index.xml +++ b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/maven.google/master-index.xml @@ -67,6 +67,7 @@ + @@ -116,6 +117,7 @@ + @@ -226,6 +228,7 @@ + diff --git a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/sdk_index/snapshot.gz b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/sdk_index/snapshot.gz index 9bfdca2..255b926 100644 Binary files a/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/sdk_index/snapshot.gz and b/library/build/intermediates/lint-cache/lintVitalAnalyzeRelease/sdk_index/snapshot.gz differ diff --git a/library/build/intermediates/lint_model/release/module.xml b/library/build/intermediates/lint_model/release/module.xml index 0aa3cd4..045e0ac 100644 --- a/library/build/intermediates/lint_model/release/module.xml +++ b/library/build/intermediates/lint_model/release/module.xml @@ -1,12 +1,12 @@ diff --git a/library/build/intermediates/lint_model/release/release-artifact-libraries.xml b/library/build/intermediates/lint_model/release/release-artifact-libraries.xml index 4aebd2b..dc05a95 100644 --- a/library/build/intermediates/lint_model/release/release-artifact-libraries.xml +++ b/library/build/intermediates/lint_model/release/release-artifact-libraries.xml @@ -1,9 +1,9 @@ diff --git a/library/build/intermediates/lint_model/release/release-testArtifact-dependencies.xml b/library/build/intermediates/lint_model/release/release-testArtifact-dependencies.xml index 9d419f0..5d9fe3e 100644 --- a/library/build/intermediates/lint_model/release/release-testArtifact-dependencies.xml +++ b/library/build/intermediates/lint_model/release/release-testArtifact-dependencies.xml @@ -3,7 +3,7 @@ roots=":@@:library::release,com.github.rey5137:material:1.2.2@aar,androidx.legacy:legacy-support-v4:1.0.0@aar,com.google.android.material:material:1.12.0@aar,androidx.viewpager2:viewpager2:1.0.0@aar,androidx.recyclerview:recyclerview:1.1.0@aar,androidx.constraintlayout:constraintlayout:2.0.1@aar,androidx.appcompat:appcompat:1.6.1@aar,androidx.cardview:cardview:1.0.0@aar,androidx.media:media:1.0.0@aar,androidx.legacy:legacy-support-core-ui:1.0.0@aar,androidx.dynamicanimation:dynamicanimation:1.0.0@aar,androidx.legacy:legacy-support-core-utils:1.0.0@aar,androidx.fragment:fragment:1.3.6@aar,androidx.fragment:fragment:1.3.6@aar,androidx.activity:activity:1.8.0@aar,androidx.coordinatorlayout:coordinatorlayout:1.1.0@aar,androidx.drawerlayout:drawerlayout:1.1.1@aar,androidx.transition:transition:1.5.0@aar,androidx.appcompat:appcompat-resources:1.6.1@aar,androidx.vectordrawable:vectordrawable-animated:1.1.0@aar,androidx.vectordrawable:vectordrawable:1.1.0@aar,androidx.viewpager:viewpager:1.0.0@aar,androidx.slidingpanelayout:slidingpanelayout:1.0.0@aar,androidx.customview:customview:1.1.0@aar,androidx.loader:loader:1.0.0@aar,androidx.swiperefreshlayout:swiperefreshlayout:1.0.0@aar,androidx.asynclayoutinflater:asynclayoutinflater:1.0.0@aar,androidx.lifecycle:lifecycle-livedata:2.6.2@aar,androidx.lifecycle:lifecycle-common:2.6.2@jar,androidx.lifecycle:lifecycle-viewmodel:2.6.2@aar,androidx.lifecycle:lifecycle-viewmodel:2.6.2@aar,androidx.lifecycle:lifecycle-livedata-core:2.6.2@aar,androidx.lifecycle:lifecycle-runtime:2.6.2@aar,androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2@aar,androidx.core:core-ktx:1.13.0@aar,androidx.core:core:1.13.0@aar,androidx.core:core:1.13.0@aar,androidx.versionedparcelable:versionedparcelable:1.1.1@aar,androidx.collection:collection:1.1.0@jar,androidx.cursoradapter:cursoradapter:1.0.0@aar,androidx.savedstate:savedstate:1.2.1@aar,androidx.documentfile:documentfile:1.0.0@aar,androidx.localbroadcastmanager:localbroadcastmanager:1.0.0@aar,androidx.print:print:1.0.0@aar,androidx.interpolator:interpolator:1.0.0@aar,androidx.arch.core:core-runtime:2.2.0@aar,androidx.arch.core:core-common:2.2.0@jar,androidx.annotation:annotation-jvm:1.6.0@jar,androidx.annotation:annotation-experimental:1.4.0@aar,org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4@jar,org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22@jar,org.jetbrains:annotations:13.0@jar,androidx.resourceinspection:resourceinspection-annotation:1.0.1@jar,androidx.constraintlayout:constraintlayout-solver:2.0.1@jar"> + simpleName="LorealBA-MNY-Latest-2024:library"/> @@ -174,7 +174,7 @@ roots=":@@:library::release,com.github.rey5137:material:1.2.2@aar,androidx.legacy:legacy-support-v4:1.0.0@aar,com.google.android.material:material:1.12.0@aar,androidx.viewpager2:viewpager2:1.0.0@aar,androidx.recyclerview:recyclerview:1.1.0@aar,androidx.constraintlayout:constraintlayout:2.0.1@aar,androidx.appcompat:appcompat-resources:1.6.1@aar,androidx.appcompat:appcompat:1.6.1@aar,androidx.cardview:cardview:1.0.0@aar,androidx.media:media:1.0.0@aar,androidx.legacy:legacy-support-core-ui:1.0.0@aar,androidx.transition:transition:1.5.0@aar,androidx.dynamicanimation:dynamicanimation:1.0.0@aar,androidx.legacy:legacy-support-core-utils:1.0.0@aar,androidx.fragment:fragment:1.3.6@aar,androidx.fragment:fragment:1.3.6@aar,androidx.activity:activity:1.8.0@aar,androidx.coordinatorlayout:coordinatorlayout:1.1.0@aar,androidx.drawerlayout:drawerlayout:1.1.1@aar,androidx.vectordrawable:vectordrawable-animated:1.1.0@aar,androidx.vectordrawable:vectordrawable:1.1.0@aar,androidx.loader:loader:1.0.0@aar,androidx.viewpager:viewpager:1.0.0@aar,androidx.slidingpanelayout:slidingpanelayout:1.0.0@aar,androidx.swiperefreshlayout:swiperefreshlayout:1.0.0@aar,androidx.asynclayoutinflater:asynclayoutinflater:1.0.0@aar,androidx.emoji2:emoji2-views-helper:1.2.0@aar,androidx.emoji2:emoji2:1.2.0@aar,androidx.customview:customview:1.1.0@aar,androidx.savedstate:savedstate:1.2.1@aar,androidx.lifecycle:lifecycle-viewmodel:2.6.2@aar,androidx.lifecycle:lifecycle-viewmodel:2.6.2@aar,androidx.lifecycle:lifecycle-process:2.6.2@aar,androidx.lifecycle:lifecycle-livedata-core:2.6.2@aar,androidx.lifecycle:lifecycle-livedata:2.6.2@aar,androidx.lifecycle:lifecycle-common:2.6.2@jar,androidx.lifecycle:lifecycle-runtime:2.6.2@aar,androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.2@aar,androidx.core:core-ktx:1.13.0@aar,androidx.core:core:1.13.0@aar,androidx.core:core:1.13.0@aar,com.google.errorprone:error_prone_annotations:2.15.0@jar,androidx.resourceinspection:resourceinspection-annotation:1.0.1@jar,androidx.documentfile:documentfile:1.0.0@aar,androidx.localbroadcastmanager:localbroadcastmanager:1.0.0@aar,androidx.print:print:1.0.0@aar,androidx.interpolator:interpolator:1.0.0@aar,androidx.cursoradapter:cursoradapter:1.0.0@aar,androidx.profileinstaller:profileinstaller:1.3.0@aar,androidx.startup:startup-runtime:1.1.1@aar,androidx.tracing:tracing:1.0.0@aar,androidx.versionedparcelable:versionedparcelable:1.1.1@aar,androidx.collection:collection:1.1.0@jar,androidx.concurrent:concurrent-futures:1.1.0@jar,androidx.arch.core:core-runtime:2.2.0@aar,androidx.arch.core:core-common:2.2.0@jar,androidx.annotation:annotation-experimental:1.4.0@aar,androidx.annotation:annotation-jvm:1.6.0@jar,org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4@jar,org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib:1.8.22@jar,org.jetbrains.kotlin:kotlin-stdlib-common:1.8.22@jar,androidx.constraintlayout:constraintlayout-solver:2.0.1@jar,org.jetbrains:annotations:13.0@jar,com.google.guava:listenablefuture:1.0@jar"> + simpleName="LorealBA-MNY-Latest-2024:library"/> diff --git a/library/build/intermediates/lint_model/release/release-testArtifact-libraries.xml b/library/build/intermediates/lint_model/release/release-testArtifact-libraries.xml index 894cdda..9e65191 100644 --- a/library/build/intermediates/lint_model/release/release-testArtifact-libraries.xml +++ b/library/build/intermediates/lint_model/release/release-testArtifact-libraries.xml @@ -1,9 +1,9 @@ + desugaredMethodsFiles="C:\Users\ravik\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> diff --git a/library/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties b/library/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties index c3934a2..c1ba84c 100644 --- a/library/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties +++ b/library/build/intermediates/lint_model_metadata/release/lint-model-metadata.properties @@ -1,2 +1,2 @@ mavenArtifactId=library -mavenGroupId=LorealBa-MNY-Latest-2024 \ No newline at end of file +mavenGroupId=LorealBA-MNY-Latest-2024 \ No newline at end of file diff --git a/library/build/intermediates/lint_vital_lint_model/release/module.xml b/library/build/intermediates/lint_vital_lint_model/release/module.xml index 0aa3cd4..045e0ac 100644 --- a/library/build/intermediates/lint_vital_lint_model/release/module.xml +++ b/library/build/intermediates/lint_vital_lint_model/release/module.xml @@ -1,12 +1,12 @@ diff --git a/library/build/intermediates/lint_vital_lint_model/release/release-artifact-libraries.xml b/library/build/intermediates/lint_vital_lint_model/release/release-artifact-libraries.xml index 4aebd2b..dc05a95 100644 --- a/library/build/intermediates/lint_vital_lint_model/release/release-artifact-libraries.xml +++ b/library/build/intermediates/lint_vital_lint_model/release/release-artifact-libraries.xml @@ -1,9 +1,9 @@ diff --git a/library/build/intermediates/lint_vital_lint_model/release/release.xml b/library/build/intermediates/lint_vital_lint_model/release/release.xml index 4ed9842..fba59de 100644 --- a/library/build/intermediates/lint_vital_lint_model/release/release.xml +++ b/library/build/intermediates/lint_vital_lint_model/release/release.xml @@ -26,6 +26,6 @@ applicationId="com.androidbuts.multispinnerfilter" generatedSourceFolders="build\generated\ap_generated_sources\release\out" generatedResourceFolders="build\generated\res\resValues\release" - desugaredMethodsFiles="C:\Users\jeevanp\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> + desugaredMethodsFiles="C:\Users\ravik\.gradle\caches\transforms-3\779002c5fca6709f17972a1b9610de5c\transformed\D8BackportedDesugaredMethods.txt"> diff --git a/library/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt b/library/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt index e19ebb7..1f3d7a0 100644 --- a/library/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt +++ b/library/build/intermediates/manifest_merge_blame_file/release/manifest-merger-blame-release-report.txt @@ -5,8 +5,8 @@ 5 6 7 -7-->D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:5-7:19 -7-->D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:18-44 +7-->E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:5-7:19 +7-->E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:18-44 8 9 10 diff --git a/library/build/outputs/logs/manifest-merger-release-report.txt b/library/build/outputs/logs/manifest-merger-release-report.txt index 047d371..6248dfc 100644 --- a/library/build/outputs/logs/manifest-merger-release-report.txt +++ b/library/build/outputs/logs/manifest-merger-release-report.txt @@ -1,21 +1,21 @@ -- Merging decision tree log --- manifest -ADDED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:1-9:12 -INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:1-9:12 +ADDED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:1-9:12 +INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:1-9:12 package - ADDED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:3:5-49 - INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml + ADDED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:3:5-49 + INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml xmlns:android - ADDED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:11-69 + ADDED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:2:11-69 application -ADDED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:5-7:19 +ADDED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:5-7:19 android:allowBackup - ADDED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:18-44 + ADDED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml:5:18-44 uses-sdk -INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml reason: use-sdk injection requested -INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml -INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml +INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml reason: use-sdk injection requested +INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml +INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml android:targetSdkVersion - INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml + INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml android:minSdkVersion - INJECTED from D:\jeevanp_cpm_projects\LorealBaProjects\LorealBa-MNY-Latest-2024\library\src\main\AndroidManifest.xml + INJECTED from E:\LorealBa-MNY-Latest-2024\LorealBA-MNY-Latest-2024\library\src\main\AndroidManifest.xml