Added checkout and mandate profile

This commit is contained in:
Jeevan Prasad
2025-07-03 19:02:40 +05:30
parent 917fee86de
commit e68ddd7133
491 changed files with 2336 additions and 30039 deletions
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
+2 -2
View File
@@ -68,8 +68,8 @@ artifacts {
} }
dependencies { dependencies {
implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.appcompat:appcompat:1.7.1'
androidTestImplementation 'androidx.annotation:annotation:1.2.0' androidTestImplementation 'androidx.annotation:annotation:1.9.1'
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
} }
+5 -11
View File
@@ -44,7 +44,6 @@ android {
} }
} }
// 👇 Add this block to force override // 👇 Add this block to force override
} }
android { android {
@@ -67,16 +66,12 @@ android {
} }
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
//noinspection GradleDependency implementation 'androidx.appcompat:appcompat:1.7.1'
implementation 'androidx.appcompat:appcompat:1.3.1' implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
//noinspection GradleDependency
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.cardview:cardview:1.0.0'
//noinspection GradleDependency implementation 'com.google.android.material:material:1.12.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
//noinspection GradleDependency implementation 'androidx.recyclerview:recyclerview:1.4.0'
implementation 'androidx.recyclerview:recyclerview:1.2.1'
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1' androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
@@ -90,7 +85,7 @@ dependencies {
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.google.code.gson:gson:2.11.0' implementation 'com.google.code.gson:gson:2.11.0'
// Import the BoM for the Firebase platform // Import the BoM for the Firebase platform
implementation platform('com.google.firebase:firebase-bom:33.13.0') implementation platform('com.google.firebase:firebase-bom:33.15.0')
// Declare the dependencies for the Crashlytics and Analytics libraries // Declare the dependencies for the Crashlytics and Analytics libraries
// When using the BoM, you don't specify versions in Firebase library dependencies // When using the BoM, you don't specify versions in Firebase library dependencies
implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-analytics'
@@ -105,7 +100,6 @@ dependencies {
///new lib ///new lib
implementation 'com.journeyapps:zxing-android-embedded:4.3.0' implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation files('libs/hoinsdk.jar') implementation files('libs/hoinsdk.jar')
//noinspection GradleDependency
implementation 'com.squareup.picasso:picasso:2.5.2' implementation 'com.squareup.picasso:picasso:2.5.2'
implementation project(':library') implementation project(':library')
implementation 'me.relex:circleindicator:1.2.2@aar' implementation 'me.relex:circleindicator:1.2.2@aar'
+8
View File
@@ -650,6 +650,14 @@
android:windowSoftInputMode="adjustPan" android:windowSoftInputMode="adjustPan"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".checkout.BaCheckoutActivity"
android:screenOrientation="portrait"
android:exported="false"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustPan"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<!-- <meta-data <!-- <meta-data
android:name="com.google.android.geo.API_KEY" android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyAJIqKPhsyYTp6WnM387Fri4nLJo4-mOvc" android:value="AIzaSyAJIqKPhsyYTp6WnM387Fri4nLJo4-mOvc"
@@ -9,6 +9,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; import android.util.Log;
import com.cpm.lorealbaautomation.checkout.MasterCheckoutQuestion;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
import com.cpm.lorealbaautomation.constant.CommonString; import com.cpm.lorealbaautomation.constant.CommonString;
@@ -372,6 +373,7 @@ public class Lorealba_Database extends SQLiteOpenHelper {
values.put("GeoTag", jcpList.get(i).getGeoTag()); values.put("GeoTag", jcpList.get(i).getGeoTag());
values.put("GeoFencingRadius", jcpList.get(i).getGeoFencingRadius()); values.put("GeoFencingRadius", jcpList.get(i).getGeoFencingRadius());
values.put("GeoFencingAllow", jcpList.get(i).getGeoFencingAllow()); values.put("GeoFencingAllow", jcpList.get(i).getGeoFencingAllow());
values.put("Checkout", jcpList.get(i).getCheckout());
if (!db.isOpen()) { if (!db.isOpen()) {
open(); open();
@@ -724,12 +726,12 @@ public class Lorealba_Database extends SQLiteOpenHelper {
sb.setCounterwidth(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("CounterWidth"))); sb.setCounterwidth(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("CounterWidth")));
sb.setSetupDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SetUpDate"))); sb.setSetupDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("SetUpDate")));
sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate"))); sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate")));
sb.setLatitude(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("Latitude"))); sb.setLatitude(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("Latitude")));
sb.setLongitude(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("Longitude"))); sb.setLongitude(dbcursor.getDouble(dbcursor.getColumnIndexOrThrow("Longitude")));
sb.setGeoTag(dbcursor.getString(dbcursor.getColumnIndexOrThrow("GeoTag"))); sb.setGeoTag(dbcursor.getString(dbcursor.getColumnIndexOrThrow("GeoTag")));
sb.setGeoFencingRadius(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("GeoFencingRadius"))); sb.setGeoFencingRadius(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("GeoFencingRadius")));
sb.setGeoFencingAllow(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("GeoFencingAllow"))); sb.setGeoFencingAllow(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("GeoFencingAllow")));
sb.setCheckout(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Checkout")));
list.add(sb); list.add(sb);
@@ -3108,7 +3110,6 @@ public class Lorealba_Database extends SQLiteOpenHelper {
dbcursor.moveToFirst(); dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) { while (!dbcursor.isAfterLast()) {
MasterProfile ch = new MasterProfile(); MasterProfile ch = new MasterProfile();
ch.setEmail(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Email"))); ch.setEmail(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Email")));
ch.setFullName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FullName"))); ch.setFullName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("FullName")));
ch.setSupervisor(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Supervisor"))); ch.setSupervisor(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Supervisor")));
@@ -3205,14 +3206,7 @@ public class Lorealba_Database extends SQLiteOpenHelper {
Cursor cursordata = null; Cursor cursordata = null;
ArrayList<MasterProfileQuestion> auditData = new ArrayList<>(); ArrayList<MasterProfileQuestion> auditData = new ArrayList<>();
try { try {
if (userType.trim().equalsIgnoreCase("BA")) { cursordata = db.rawQuery("select distinct CategoryId,Category from Master_ProfileQuestion where upper(" + userType + ") = '1'", null);
cursordata = db.rawQuery("select distinct CategoryId,Category from Master_ProfileQuestion where BA='1'", null);
} else if (userType.trim().equalsIgnoreCase("TBA")) {
cursordata = db.rawQuery("select distinct CategoryId,Category from Master_ProfileQuestion where TBA='1'", null);
} else if (userType.trim().equalsIgnoreCase("ME")) {
cursordata = db.rawQuery("select distinct CategoryId,Category from Master_ProfileQuestion where ME='1'", null);
}
if (cursordata != null) { if (cursordata != null) {
cursordata.moveToFirst(); cursordata.moveToFirst();
while (!cursordata.isAfterLast()) { while (!cursordata.isAfterLast()) {
@@ -3274,35 +3268,28 @@ public class Lorealba_Database extends SQLiteOpenHelper {
public ArrayList<AuditDataGetterSetter> getAuditCategoryWise(int categoryId) { public ArrayList<AuditDataGetterSetter> getAuditCategoryWise(int categoryId) {
Cursor cursordata = null; Cursor cursordata = null;
ArrayList<AuditDataGetterSetter> auditData = new ArrayList<>(); ArrayList<AuditDataGetterSetter> auditData = new ArrayList<>();
try { try {
cursordata = db.rawQuery("select distinct QuestionId,Question, QuestionType FROM Master_ProfileQuestion where CategoryId = " + categoryId, null);
cursordata = db.rawQuery("select distinct QuestionId,Question, QuestionType FROM Master_ProfileQuestion " + "where CategoryId ='" + categoryId + "'", null); cursordata.moveToFirst();
while (!cursordata.isAfterLast()) {
if (cursordata != null) { AuditDataGetterSetter sb = new AuditDataGetterSetter();
cursordata.moveToFirst(); sb.setQUESTION(cursordata.getString(cursordata.getColumnIndexOrThrow("Question")));
while (!cursordata.isAfterLast()) { sb.setQUESTION_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("QuestionId")));
AuditDataGetterSetter sb = new AuditDataGetterSetter(); sb.setANSWER_TYPE(cursordata.getString(cursordata.getColumnIndexOrThrow("QuestionType")));
sb.setQUESTION(cursordata.getString(cursordata.getColumnIndexOrThrow("Question"))); sb.setKEYACCOUNT_ID("0");
sb.setQUESTION_ID(cursordata.getString(cursordata.getColumnIndexOrThrow("QuestionId"))); auditData.add(sb);
sb.setANSWER_TYPE(cursordata.getString(cursordata.getColumnIndexOrThrow("QuestionType"))); cursordata.moveToNext();
sb.setKEYACCOUNT_ID("0");
auditData.add(sb);
cursordata.moveToNext();
}
cursordata.close();
} }
} catch (Exception ex) { cursordata.close();
} catch (Exception ignored) {
} }
return auditData; return auditData;
} }
public ArrayList<AuditDataGetterSetter> getAuditAnswerData(AuditDataGetterSetter auditGetSet, String select) { public ArrayList<AuditDataGetterSetter> getAuditAnswerData(AuditDataGetterSetter auditGetSet, String select) {
ArrayList<AuditDataGetterSetter> list = new ArrayList<>(); ArrayList<AuditDataGetterSetter> list = new ArrayList<>();
if (auditGetSet.getANSWER_TYPE().equalsIgnoreCase("Single selection")) { if (auditGetSet.getANSWER_TYPE().equalsIgnoreCase("Single selection")) {
AuditDataGetterSetter sb1 = new AuditDataGetterSetter(); AuditDataGetterSetter sb1 = new AuditDataGetterSetter();
@@ -3317,32 +3304,21 @@ public class Lorealba_Database extends SQLiteOpenHelper {
} }
Cursor dbcursor = null; Cursor dbcursor = null;
try { try {
dbcursor = db.rawQuery("select distinct QuestionType,AnswerId,Answer FROM Master_ProfileQuestion where QuestionId =" + auditGetSet.getQUESTION_ID(), null);
dbcursor = db.rawQuery("select distinct QuestionType,AnswerId,Answer FROM Master_ProfileQuestion where QuestionId =" + auditGetSet.getQUESTION_ID() + "", null); dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) {
if (dbcursor != null) { AuditDataGetterSetter sb = new AuditDataGetterSetter();
dbcursor.moveToFirst(); sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("AnswerId")));
while (!dbcursor.isAfterLast()) { sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Answer")));
AuditDataGetterSetter sb = new AuditDataGetterSetter(); list.add(sb);
dbcursor.moveToNext();
sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("AnswerId")));
sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Answer")));
list.add(sb);
dbcursor.moveToNext();
}
dbcursor.close();
return list;
} }
dbcursor.close();
return list;
} catch (Exception e) { } catch (Exception e) {
////////test("Exception", " answer " + e.toString());
return list; return list;
} }
////////test("Fetching", " audit answer-->Stop<-");
return list;
} }
@@ -5810,36 +5786,35 @@ public class Lorealba_Database extends SQLiteOpenHelper {
Cursor dbcursor = null; Cursor dbcursor = null;
try { try {
if (UserId == null) { if (UserId == null) {
dbcursor = db.rawQuery("SELECT distinct MID,BID,VisitDate from Mapping_JourneyPlan where CounterId=" + CounterId, null); dbcursor = db.rawQuery("SELECT distinct MID,BID,VisitDate,Checkout from Mapping_JourneyPlan where CounterId=" + CounterId, null);
} else { } else {
dbcursor = db.rawQuery("SELECT distinct MID,BID,VisitDate from Mapping_JourneyPlan where UserId='" + UserId + "' and CounterId=" + CounterId, null); dbcursor = db.rawQuery("SELECT distinct MID,BID,VisitDate,Checkout from Mapping_JourneyPlan where UserId='" + UserId + "' and CounterId=" + CounterId, null);
} }
if (dbcursor != null) { dbcursor.moveToFirst();
dbcursor.moveToFirst(); while (!dbcursor.isAfterLast()) {
while (!dbcursor.isAfterLast()) { if (UserId == null) {
if (UserId == null) { sb.setCheckout(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Checkout")));
sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate"))); sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate")));
sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID"))); sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID")));
sb.setBID(0); sb.setBID(0);
} else { } else {
sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID"))); sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID")));
sb.setBID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("BID"))); sb.setBID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("BID")));
sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate"))); sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate")));
} sb.setCheckout(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Checkout")));
dbcursor.moveToNext();
} }
dbcursor.close(); dbcursor.moveToNext();
return sb;
} }
dbcursor.close();
return sb;
} catch (Exception e) { } catch (Exception e) {
////////test("Exception get JCP!", e.toString()); ////////test("Exception get JCP!", e.toString());
return sb; return sb;
} }
return sb;
} }
//jeevan nmjnmn, //jeevan nmjnmn,
@@ -7434,34 +7409,39 @@ public class Lorealba_Database extends SQLiteOpenHelper {
public ArrayList<AuditDataGetterSetter> getSaveServerData(String categoryId, String userId) { public ArrayList<AuditDataGetterSetter> getSaveServerData(String categoryId, String userId) {
ArrayList<AuditDataGetterSetter> list = new ArrayList<>(); ArrayList<AuditDataGetterSetter> list = new ArrayList<>();
Cursor dbcursor = null; Cursor dbcursor = null;
try { try {
dbcursor = db.rawQuery("select distinct mp.QuestionId as QuestionId,mp.Question as Question,mb.AnswerId as AnswerId,mb.Answer as Answer," + "mp.QuestionType as QuestionType" + ",mp.CategoryId as CategoryId,mb.OthersValue as OthersValue from (select distinct QuestionId, Question, QuestionType, CategoryId from Master_ProfileQuestion) as mp " + "inner join Master_BAProfile mb on mp.QuestionId=mb.QuestionId inner join BA_List bl on bl.EmpId=mb.EmpId " + "where mp.CategoryId='" + categoryId + "' and bl.UserName='" + userId + "'", null); String query = "select distinct mp.QuestionId as QuestionId,mp.Question as Question,mb.AnswerId as AnswerId,mb.Answer as Answer," +
"mp.QuestionType as QuestionType" + ",mp.CategoryId as CategoryId,mb.OthersValue as OthersValue from (select distinct QuestionId, Question, QuestionType, CategoryId from Master_ProfileQuestion) as mp " +
if (dbcursor != null) { "inner join Master_BAProfile mb on mp.QuestionId=mb.QuestionId inner join BA_List bl on bl.EmpId=mb.EmpId "
dbcursor.moveToFirst(); + "where mp.CategoryId='" + categoryId + "' and bl.UserName='" + userId + "'";
while (!dbcursor.isAfterLast()) { if (categoryId == null) {
AuditDataGetterSetter sb = new AuditDataGetterSetter(); query = "select distinct mp.QuestionId as QuestionId,mp.Question as Question,mb.AnswerId as AnswerId,mb.Answer as Answer," +
"mp.QuestionType as QuestionType" + ",mp.CategoryId as CategoryId,mb.OthersValue as OthersValue from (select distinct QuestionId, Question, QuestionType, CategoryId from Master_ProfileQuestion) as mp " +
sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionId"))); "inner join Master_BAProfile mb on mp.QuestionId=mb.QuestionId inner join BA_List bl on bl.EmpId=mb.EmpId "
sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Question"))); + "where bl.UserName='" + userId + "'";
sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("AnswerId")));
sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Answer")));
sb.setMENU_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CategoryId")));
sb.setANSWER_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionType")));
sb.setSpin_others_for_edt(dbcursor.getString(dbcursor.getColumnIndexOrThrow("OthersValue")));
list.add(sb);
dbcursor.moveToNext();
}
dbcursor.close();
return list;
} }
dbcursor = db.rawQuery(query, null);
dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) {
AuditDataGetterSetter sb = new AuditDataGetterSetter();
sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionId")));
sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Question")));
sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("AnswerId")));
sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Answer")));
sb.setMENU_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CategoryId")));
sb.setANSWER_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionType")));
sb.setSpin_others_for_edt(dbcursor.getString(dbcursor.getColumnIndexOrThrow("OthersValue")));
list.add(sb);
dbcursor.moveToNext();
}
dbcursor.close();
return list;
} catch (Exception e) { } catch (Exception e) {
return list; return list;
} }
return list;
} }
@@ -7607,31 +7587,25 @@ public class Lorealba_Database extends SQLiteOpenHelper {
JourneyPlan sb = new JourneyPlan(); JourneyPlan sb = new JourneyPlan();
Cursor dbcursor = null; Cursor dbcursor = null;
try { try {
dbcursor = db.rawQuery("SELECT * from Mapping_JourneyPlan where VisitDate='" + date + "' and CounterId=" + counter_id + " and UserId='" + userId + "'", null); dbcursor = db.rawQuery("SELECT * from Mapping_JourneyPlan where VisitDate='" + date + "' and CounterId=" + counter_id + " and UserId='" + userId + "'", null);
dbcursor.moveToFirst();
if (dbcursor != null) { while (!dbcursor.isAfterLast()) {
dbcursor.moveToFirst(); sb.setCounterId((dbcursor.getInt(dbcursor.getColumnIndexOrThrow("CounterId"))));
while (!dbcursor.isAfterLast()) { sb.setStoreName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("StoreName")));
sb.setCounterName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CounterName")));
sb.setCounterId((dbcursor.getInt(dbcursor.getColumnIndexOrThrow("CounterId")))); sb.setAddress((dbcursor.getString(dbcursor.getColumnIndexOrThrow("Address"))));
sb.setStoreName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("StoreName"))); sb.setCityName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CityName")));
sb.setCounterName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CounterName"))); sb.setCheckout(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Checkout")));
sb.setAddress((dbcursor.getString(dbcursor.getColumnIndexOrThrow("Address")))); dbcursor.moveToNext();
sb.setCityName(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CityName")));
dbcursor.moveToNext();
}
dbcursor.close();
return sb;
} }
dbcursor.close();
return sb;
} catch (Exception e) { } catch (Exception e) {
////////test("Exception get JCP!", e.toString()); ////////test("Exception get JCP!", e.toString());
return sb; return sb;
} }
return sb;
} }
public long updateImageLoginData(String userId, String strImg) { public long updateImageLoginData(String userId, String strImg) {
@@ -8409,31 +8383,25 @@ public class Lorealba_Database extends SQLiteOpenHelper {
JourneyPlan sb = new JourneyPlan(); JourneyPlan sb = new JourneyPlan();
Cursor dbcursor = null; Cursor dbcursor = null;
try { try {
dbcursor = db.rawQuery("SELECT * from Mapping_JourneyPlan", null);
dbcursor = db.rawQuery("SELECT * from Mapping_JourneyPlan ", null); dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) {
if (dbcursor != null) { sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID")));
dbcursor.moveToFirst(); sb.setBID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("BID")));
while (!dbcursor.isAfterLast()) { sb.setCounterGroupId(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("CounterGroupId")));
sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate")));
sb.setMID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MID"))); sb.setCheckout(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Checkout")));
sb.setBID(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("BID"))); dbcursor.moveToNext();
sb.setCounterGroupId(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("CounterGroupId")));
sb.setVisitDate(dbcursor.getString(dbcursor.getColumnIndexOrThrow("VisitDate")));
dbcursor.moveToNext();
}
dbcursor.close();
return sb;
} }
dbcursor.close();
return sb;
} catch (Exception e) { } catch (Exception e) {
////////test("Exception get JCP!", e.toString()); ////////test("Exception get JCP!", e.toString());
return sb; return sb;
} }
return sb;
} }
public boolean CheckPreviousProduct(String visit_date) { public boolean CheckPreviousProduct(String visit_date) {
@@ -15168,6 +15136,15 @@ public class Lorealba_Database extends SQLiteOpenHelper {
} }
} }
public void updateCheckoutStatus(String counterId, String bID, String userId) {
ContentValues values = new ContentValues();
try {
values.put("Checkout", "Y");
db.update("Mapping_JourneyPlan", values, "UserId = '" + userId + "' And BID = " + bID + " And CounterId = " + counterId, null);
} catch (Exception ignored) {
}
}
public long InsertSTOREgeotag(String storeid, String counterId, String bId, String userId, double lat, double longitude, String path) { public long InsertSTOREgeotag(String storeid, String counterId, String bId, String userId, double lat, double longitude, String path) {
db.delete(CommonString.TABLE_STORE_GEOTAGGING, "STORE_ID = " + storeid + " And " db.delete(CommonString.TABLE_STORE_GEOTAGGING, "STORE_ID = " + storeid + " And "
@@ -15235,6 +15212,7 @@ public class Lorealba_Database extends SQLiteOpenHelper {
} }
} }
@SuppressLint("LongLogTag") @SuppressLint("LongLogTag")
public boolean insertMappingAppRestrictedKPI(MasterBAProfileGetterSetter data) { public boolean insertMappingAppRestrictedKPI(MasterBAProfileGetterSetter data) {
db.delete("Mapping_AppRestrictedKPI", null, null); db.delete("Mapping_AppRestrictedKPI", null, null);
@@ -15291,8 +15269,8 @@ public class Lorealba_Database extends SQLiteOpenHelper {
if (countCursor != null && countCursor.moveToFirst()) { if (countCursor != null && countCursor.moveToFirst()) {
count += countCursor.getInt(0); // Accumulate count count += countCursor.getInt(0); // Accumulate count
if (count>0) { if (count > 0) {
status = kpiFieldEnable!=null && !kpiFieldEnable.isEmpty() && kpiFieldEnable.equals("1")?true:false; status = kpiFieldEnable != null && !kpiFieldEnable.isEmpty() && kpiFieldEnable.equals("1") ? true : false;
} }
countCursor.close(); countCursor.close();
} }
@@ -15310,5 +15288,183 @@ public class Lorealba_Database extends SQLiteOpenHelper {
return status; return status;
} }
@SuppressLint("LongLogTag")
public boolean insertMasterCheckoutQuestion(MasterBAProfileGetterSetter data) {
db.delete("Master_CheckoutQuestion", null, null);
List<MasterCheckoutQuestion> questions = data.getMasterCheckoutQuestion();
ContentValues values = new ContentValues();
try {
db.beginTransaction();
if (questions.isEmpty()) {
return false;
}
for (MasterCheckoutQuestion question : questions) {
values.put("CategoryId", question.getCategoryId());
values.put("Category", question.getCategory());
values.put("QuestionId", question.getQuestionId());
values.put("Question", question.getQuestion());
values.put("QuestionType", question.getQuestionType());
values.put("QuestionImageAllow", question.getQuestionImageAllow());
values.put("QuestionImageMandatory", question.getQuestionImageMandatory());
values.put("QEnable", question.getQEnable());
values.put("LengthValidation", question.getLengthValidation());
values.put("MinLength", question.getMinLength());
values.put("MaxLength", question.getMaxLength());
values.put("AnswerId", question.getAnswerId());
values.put("Answer", question.getAnswer());
values.put("ImageAllow", question.getImageAllow());
values.put("ImageAllowMandatory", question.getImageAllowMandatory());
values.put("QuestionEnable", question.getQuestionEnable());
values.put("QuestionDisable", question.getQuestionDisable());
if (!db.isOpen()) {
open();
}
long id = db.insert("Master_CheckoutQuestion", null, values);
if (id == -1) {
throw new Exception();
}
}
// do ALL your inserts here
db.setTransactionSuccessful();
db.endTransaction();
return true;
} catch (Exception ex) {
ex.fillInStackTrace();
// do ALL your inserts here
db.setTransactionSuccessful();
db.endTransaction();
Log.d("Exception in Master_CheckoutQuestion", ex.toString());
return false;
}
}
public ArrayList<MasterCheckoutQuestion> getCheckoutQuestions(String counterId, String baId, String userId) {
ArrayList<MasterCheckoutQuestion> list = new ArrayList<>();
Cursor dbcursor = null;
try {
dbcursor = db.rawQuery("Select Distinct QuestionId, Question || ' - ' || Category as Question,QuestionType,QuestionImageAllow,QuestionImageMandatory,LengthValidation,MinLength,MaxLength From Master_CheckoutQuestion where QEnable =1", null);
dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) {
MasterCheckoutQuestion question = new MasterCheckoutQuestion();
question.setQuestionId(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("QuestionId")));
question.setQuestion(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Question")));
question.setQuestionType(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionType")));
question.setQuestionImageAllow("1".equals(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionImageAllow"))));
question.setQuestionImageMandatory("1".equals(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionImageMandatory"))));
question.setLengthValidation("1".equals(dbcursor.getString(dbcursor.getColumnIndexOrThrow("LengthValidation"))));
question.setMinLength(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MinLength")));
question.setMaxLength(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("MaxLength")));
question.setAns(question.getQuestionType().equals("List Single Choice") ? getCheckoutQuestionAns(question.getQuestionId()) : new ArrayList<>());
question.setImageAllowMandatory(false);
question.setImageAllow(false);
question.setCorrect_ansId(0);
question.setCorrect_ans("");
question.setQuestionImg("");
question.setAnsImg("");
list.add(question);
dbcursor.moveToNext();
}
dbcursor.close();
return list;
} catch (Exception e) {
Log.e("QError", e.getLocalizedMessage());
return list;
}
}
private ArrayList<MasterCheckoutQuestion> getCheckoutQuestionAns(int questionId) {
ArrayList<MasterCheckoutQuestion> list = new ArrayList<>();
Cursor dbcursor = null;
try {
MasterCheckoutQuestion question = new MasterCheckoutQuestion();
question.setAnswerId(0);
question.setAnswer("- Select -");
question.setImageAllow(false);
question.setQuestionEnable("");
question.setQuestionDisable("");
question.setImageAllowMandatory(false);
list.add(0, question);
dbcursor = db.rawQuery("Select Distinct AnswerId,Answer,QuestionType,ImageAllow,ImageAllowMandatory,QuestionEnable,QuestionDisable From Master_CheckoutQuestion where QuestionId =" + questionId, null);
dbcursor.moveToFirst();
while (!dbcursor.isAfterLast()) {
question = new MasterCheckoutQuestion();
question.setAnswerId(dbcursor.getInt(dbcursor.getColumnIndexOrThrow("AnswerId")));
question.setAnswer(dbcursor.getString(dbcursor.getColumnIndexOrThrow("Answer")));
question.setImageAllow("1".equals(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ImageAllow"))));
question.setImageAllowMandatory("1".equals(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ImageAllowMandatory"))));
question.setQuestionEnable((dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionEnable"))));
question.setQuestionDisable(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QuestionDisable")));
list.add(question);
dbcursor.moveToNext();
}
dbcursor.close();
return list;
} catch (Exception e) {
Log.e("QError", e.getLocalizedMessage());
return list;
}
}
public boolean isBaProfileFilled(String _counterId, String _userId, String _userType) {
boolean _filled = false;
Cursor outerCursor = null;
Cursor dbcursor = null;
try {
outerCursor = db.rawQuery("SELECT * from Master_ProfileQuestion Where " + _userType + " = '1'", null);
if (outerCursor.moveToFirst()) {
do {
int icount = outerCursor.getCount();
outerCursor.close();
String query = "SELECT ifnull(Profile_Pic,'')as Profile_Pic from BA_List Where UserName = '" + _userId + "' and CounterId = " + _counterId;
if (icount > 0) {
query = "SELECT DISTINCT T.EmpId,ifnull(K.Profile_Pic,'')as Profile_Pic FROM Master_BAProfile T " +
"INNER JOIN BA_List K ON K.EmpId = T.EmpId " +
"INNER JOIN Master_ProfileQuestion M ON M.QuestionId = T.QuestionId " +
"WHERE K.UserName = '" + _userId + "' and M." + _userType + " = '1' And K.CounterId = '" + _counterId + "'";
}
dbcursor = db.rawQuery(query, null);
if (dbcursor.moveToFirst()) {
String Profile_Pic = dbcursor.getString(dbcursor.getColumnIndexOrThrow("Profile_Pic"));
if (icount > 0) {
String empId = dbcursor.getString(dbcursor.getColumnIndexOrThrow("EmpId"));
if (empId != null && !empId.isEmpty() && !Profile_Pic.isEmpty()) {
_filled = true;
break;
}
} else {
if (!Profile_Pic.isEmpty()) {
_filled = true;
break;
}
}
dbcursor.close();
}
} while (outerCursor.moveToNext());
outerCursor.close();
}
return _filled;
} catch (Exception e) {
return _filled;
} finally {
if (outerCursor != null && !outerCursor.isClosed()) outerCursor.close();
if (dbcursor != null && !dbcursor.isClosed()) dbcursor.close();
}
}
} }
@@ -24,7 +24,6 @@ import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.location.Location;
import android.location.LocationManager; import android.location.LocationManager;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
@@ -33,6 +32,9 @@ import android.os.Bundle;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.cpm.lorealbaautomation.checkout.BaCheckoutActivity;
import com.cpm.lorealbaautomation.dailyactivity.ServiceActivity;
import com.cpm.lorealbaautomation.gsonGetterSetter.JourneyPlan;
import com.google.android.gms.common.api.ResolvableApiException; import com.google.android.gms.common.api.ResolvableApiException;
import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.SettingsClient; import com.google.android.gms.location.SettingsClient;
@@ -81,7 +83,6 @@ import com.cpm.lorealbaautomation.dailyactivity.CounterProfileActivity;
import com.cpm.lorealbaautomation.dailyactivity.GroomedActivity; import com.cpm.lorealbaautomation.dailyactivity.GroomedActivity;
import com.cpm.lorealbaautomation.dailyactivity.NotificationsActivity; import com.cpm.lorealbaautomation.dailyactivity.NotificationsActivity;
import com.cpm.lorealbaautomation.dailyactivity.RetailExcellenceActivity; import com.cpm.lorealbaautomation.dailyactivity.RetailExcellenceActivity;
import com.cpm.lorealbaautomation.dailyactivity.ServiceActivity;
import com.cpm.lorealbaautomation.databinding.DialogApplyLeaveBinding; import com.cpm.lorealbaautomation.databinding.DialogApplyLeaveBinding;
import com.cpm.lorealbaautomation.delegates.PrefHelper; import com.cpm.lorealbaautomation.delegates.PrefHelper;
import com.cpm.lorealbaautomation.download.DownloadActivity; import com.cpm.lorealbaautomation.download.DownloadActivity;
@@ -134,7 +135,6 @@ import retrofit2.converter.gson.GsonConverterFactory;
import static com.cpm.lorealbaautomation.constant.CommonFunctions.checkincomplete_upload_data; import static com.cpm.lorealbaautomation.constant.CommonFunctions.checkincomplete_upload_data;
import static com.cpm.lorealbaautomation.constant.CommonFunctions.getCroppedBitmap; import static com.cpm.lorealbaautomation.constant.CommonFunctions.getCroppedBitmap;
import static com.cpm.lorealbaautomation.constant.CommonFunctions.getCurrentTime_only;
import static com.cpm.lorealbaautomation.constant.CommonFunctions.getResizedBitmap; import static com.cpm.lorealbaautomation.constant.CommonFunctions.getResizedBitmap;
import static com.cpm.lorealbaautomation.dailyactivity.StoreImageActivity.convertBitmap; import static com.cpm.lorealbaautomation.dailyactivity.StoreImageActivity.convertBitmap;
@@ -154,9 +154,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
private double lat = 0.0; private double lat = 0.0;
private double lon = 0.0; private double lon = 0.0;
private static final int REQUEST_LOCATION = 1; private static final int REQUEST_LOCATION = 1;
private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000;
Location mLastLocation;
LocationRequest mLocationRequest;
SharedPreferences.Editor editor = null; SharedPreferences.Editor editor = null;
LinearLayout rl_pending_data; LinearLayout rl_pending_data;
TextView textCartItemCount; TextView textCartItemCount;
@@ -262,7 +259,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
navigationView.setNavigationItemSelectedListener(this); navigationView.setNavigationItemSelectedListener(this);
headerView = LayoutInflater.from(this).inflate(R.layout.nav_header_dealar_board, navigationView, false); headerView = LayoutInflater.from(this).inflate(R.layout.nav_header_dealar_board, navigationView, false);
checkAndRequestPermissions(); checkAndRequestPermissions();
createLocationRequest();
getLastLocation(); getLastLocation();
//find location //find location
@@ -307,7 +303,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
txt_dashboard.setText(getString(R.string.dashboard) + " Last Updated at - " + DASHBOARD_REFRESH_TIME + " - " + visitDate); txt_dashboard.setText(getString(R.string.dashboard) + " Last Updated at - " + DASHBOARD_REFRESH_TIME + " - " + visitDate);
txt_more.setOnClickListener(this); txt_more.setOnClickListener(this);
String couter_code = preferences.getString(CommonString.KEY_COUNTER_CODE, ""); String couter_code = preferences.getString(CommonString.KEY_COUNTER_CODE, "");
TextView txt_counter_code = (TextView) findViewById(R.id.txt_counter_code); TextView txt_counter_code = (TextView) findViewById(R.id.txt_counter_code);
txt_counter_code.setText("Counter Code - " + couter_code + " / Id - " + counterId); txt_counter_code.setText("Counter Code - " + couter_code + " / Id - " + counterId);
@@ -332,6 +327,7 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} }
}; };
@SuppressLint("MissingSuperCall")
@Override @Override
public void onBackPressed() { public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout); DrawerLayout drawer = findViewById(R.id.drawer_layout);
@@ -560,7 +556,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
AlertandMessages.showToastMsg(context, " Profile Data Not Found"); AlertandMessages.showToastMsg(context, " Profile Data Not Found");
} }
} }
} else if (id == 11) {//for logout } else if (id == 11) {//for logout
////upload data if not upload ////upload data if not upload
if (checkNetIsAvailable()) { if (checkNetIsAvailable()) {
@@ -581,7 +576,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} else { } else {
AlertandMessages.showToastMsg(context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE); AlertandMessages.showToastMsg(context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE);
} }
} else if (id == R.id.notification_img_nav) { } else if (id == R.id.notification_img_nav) {
if (!db.getNotificationList().isEmpty()) { if (!db.getNotificationList().isEmpty()) {
startActivity(new Intent(context, NotificationsActivity.class)); startActivity(new Intent(context, NotificationsActivity.class));
@@ -589,9 +583,7 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} else { } else {
AlertandMessages.showToastMsg(context, getResources().getString(R.string.notification_error_msg)); AlertandMessages.showToastMsg(context, getResources().getString(R.string.notification_error_msg));
} }
} else { } else {
String userId = Objects.requireNonNull(item.getTitle()).toString(); String userId = Objects.requireNonNull(item.getTitle()).toString();
String mpin = preferences.getString(userId, null); String mpin = preferences.getString(userId, null);
if (mpin != null) { if (mpin != null) {
@@ -653,7 +645,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
Intent profile = new Intent(context, BAProfileActivity.class); Intent profile = new Intent(context, BAProfileActivity.class);
startActivity(profile); startActivity(profile);
overridePendingTransition(R.anim.activity_in, R.anim.activity_out); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} else if (id == R.id.nav_counter_menu) { } else if (id == R.id.nav_counter_menu) {
Intent profile = new Intent(context, CounterProfileActivity.class); Intent profile = new Intent(context, CounterProfileActivity.class);
startActivity(profile); startActivity(profile);
@@ -664,6 +655,9 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} else if (id == R.id.nav_reset_password) { } else if (id == R.id.nav_reset_password) {
startActivity(new Intent(context, ChangePasswordActivity.class)); startActivity(new Intent(context, ChangePasswordActivity.class));
overridePendingTransition(R.anim.activity_in, R.anim.activity_out); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} else if (id == R.id.nav_counter_checkout) {
startActivity(new Intent(context, BaCheckoutActivity.class));
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} else if (id == R.id.nav_logout) { } else if (id == R.id.nav_logout) {
if (checkNetIsAvailable()) { if (checkNetIsAvailable()) {
AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam).setMessage(R.string.alertlogout); AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam).setMessage(R.string.alertlogout);
@@ -683,10 +677,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} else { } else {
AlertandMessages.showToastMsg(context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE); AlertandMessages.showToastMsg(context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE);
} }
/*Intent intent = new Intent(context, UserLoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);*/
} else if (id == R.id.nav_report) { } else if (id == R.id.nav_report) {
startActivity(new Intent(context, ReportsActivity.class).putExtra("from", user_type)); startActivity(new Intent(context, ReportsActivity.class).putExtra("from", user_type));
overridePendingTransition(R.anim.activity_in, R.anim.activity_out); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
@@ -754,13 +744,18 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
no_data_lay.setVisibility(View.GONE); no_data_lay.setVisibility(View.GONE);
fab_download.hide(); fab_download.hide();
dealerb_scroll_view.setVisibility(View.VISIBLE); dealerb_scroll_view.setVisibility(View.VISIBLE);
db.open();
JourneyPlan jcp = db.getBIDfromJCP(user_name, counterId);
if (jcp != null && jcp.getCheckout() != null && !jcp.getCheckout().isEmpty() && jcp.getCheckout().equals("Y")) {
editor = preferences.edit();
editor.putBoolean(CommonString.KEY_IS_CHECKOUT_DONE + user_name + visitDate, true);
editor.apply();
}
} }
checkAndRequestPermissions(); checkAndRequestPermissions();
createLocationRequest();
getLastLocation(); getLastLocation();
//find location //find location
checkgpsEnableDevice(); checkgpsEnableDevice();
/////set picture current user /////set picture current user
Bitmap bitmpprofile = null; Bitmap bitmpprofile = null;
@@ -853,22 +848,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} }
@SuppressLint("VisibleForTests")
protected void createLocationRequest() {
LocationRequest mLocationRequest = new LocationRequest();
// Location updates intervals in sec
// 5 sec
int UPDATE_INTERVAL = 5000;
mLocationRequest.setInterval(UPDATE_INTERVAL);
// 1 sec
int FATEST_INTERVAL = 1000;
mLocationRequest.setFastestInterval(FATEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// 10 meters
int DISPLACEMENT = 5;
mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
}
private void checkgpsEnableDevice() { private void checkgpsEnableDevice() {
if (!hasGPSDevice(context)) { if (!hasGPSDevice(context)) {
Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show();
@@ -1109,7 +1088,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
final Dialog dialog_for = new Dialog(context); final Dialog dialog_for = new Dialog(context);
Objects.requireNonNull(dialog_for.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); Objects.requireNonNull(dialog_for.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog_for.setContentView(R.layout.comment_layout); dialog_for.setContentView(R.layout.comment_layout);
Window window = dialog_for.getWindow(); Window window = dialog_for.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes(); WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER; wlp.gravity = Gravity.CENTER;
@@ -1130,7 +1108,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
final Dialog dialog_for = new Dialog(context); final Dialog dialog_for = new Dialog(context);
Objects.requireNonNull(dialog_for.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); Objects.requireNonNull(dialog_for.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog_for.setContentView(R.layout.comment_retail_excellence); dialog_for.setContentView(R.layout.comment_retail_excellence);
Window window = dialog_for.getWindow(); Window window = dialog_for.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes(); WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER; wlp.gravity = Gravity.CENTER;
@@ -1152,11 +1129,11 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
final Dialog dialogcounter = new Dialog(context); final Dialog dialogcounter = new Dialog(context);
Objects.requireNonNull(dialogcounter.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); Objects.requireNonNull(dialogcounter.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialogcounter.setContentView(R.layout.commentfor_counter_layout); dialogcounter.setContentView(R.layout.commentfor_counter_layout);
Window window = dialogcounter.getWindow(); Window window = dialogcounter.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes(); WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER; wlp.gravity = Gravity.CENTER;
window.setAttributes(wlp); window.setAttributes(wlp);
dialogcounter.setCancelable(false);
dialogcounter.setCanceledOnTouchOutside(false); dialogcounter.setCanceledOnTouchOutside(false);
RelativeLayout rl_dialog = dialogcounter.findViewById(R.id.rl_dialog); RelativeLayout rl_dialog = dialogcounter.findViewById(R.id.rl_dialog);
rl_dialog.setOnClickListener(view -> { rl_dialog.setOnClickListener(view -> {
@@ -1190,28 +1167,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
return hours; return hours;
} }
private int calculateTotalDurationinminutes(String currentTime) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("hh:mm:ss", Locale.ENGLISH);
int days = 0, hours = 0, min = 0;
try {
Date date1 = simpleDateFormat.parse(currentTime);
Date date2 = simpleDateFormat.parse(getCurrentTime_only());
assert date2 != null;
assert date1 != null;
long difference = date2.getTime() - date1.getTime();
days = (int) (difference / (1000 * 60 * 60 * 24));
hours = (int) ((difference - (1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60));
min = (int) (difference - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours)) / (1000 * 60);
hours = (hours < 0 ? -hours : hours);
Log.i("======= Hours", " :: " + hours);
} catch (ParseException e) {
e.fillInStackTrace();
}
return min;
}
//--------------Download all data........................--------- //--------------Download all data........................---------
private void download_data() { private void download_data() {
int incorrect_tStockSummery = preferences.getInt(CommonString.KEY_INCORRECT_TSTOCK_SUMMERY + visitDate, 0); int incorrect_tStockSummery = preferences.getInt(CommonString.KEY_INCORRECT_TSTOCK_SUMMERY + visitDate, 0);
@@ -1282,8 +1237,8 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} }
} }
private void showDialogOK(String message, DialogInterface.OnClickListener okListener) { private void showDialogOK(DialogInterface.OnClickListener okListener) {
new AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show(); new AlertDialog.Builder(this).setMessage("Location,File,Call and Camera Services Permission required for this app").setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show();
} }
@Override @Override
@@ -1312,8 +1267,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
if (allPermissionsGranted) { if (allPermissionsGranted) {
getLastLocation(); getLastLocation();
createLocationRequest();
} }
} else { } else {
//test("", "Some permissions are not granted ask again "); //test("", "Some permissions are not granted ask again ");
@@ -1321,7 +1274,7 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
// // shouldShowRequestPermissionRationale will return true // // shouldShowRequestPermissionRationale will return true
//show the dialog or snackbar saying its necessary and try again otherwise proceed with setup. //show the dialog or snackbar saying its necessary and try again otherwise proceed with setup.
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)) { 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)) {
showDialogOK("Location,File,Call and Camera Services Permission required for this app", (dialog, which) -> { showDialogOK((dialog, which) -> {
switch (which) { switch (which) {
case DialogInterface.BUTTON_POSITIVE: case DialogInterface.BUTTON_POSITIVE:
checkAndRequestPermissions(); checkAndRequestPermissions();
@@ -1378,12 +1331,10 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
} }
} }
public void downloadDataUniversalWithoutWait(final ArrayList<String> jsonStringList, private void downloadDataUniversalWithoutWait(final ArrayList<String> jsonStringList, final ArrayList<String> KeyNames, int downloadindex, final ProgressDialog pd) {
final ArrayList<String> KeyNames, int downloadindex, final ProgressDialog pd) {
final String[] data_global = {""}; final String[] data_global = {""};
String jsonString = "", KeyName = ""; String jsonString = "", KeyName = "";
int jsonIndex = 0; int jsonIndex = 0;
if (!jsonStringList.isEmpty()) { if (!jsonStringList.isEmpty()) {
final OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(20, TimeUnit.SECONDS).writeTimeout(20, TimeUnit.SECONDS).connectTimeout(20, TimeUnit.SECONDS).build(); final OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(20, TimeUnit.SECONDS).writeTimeout(20, TimeUnit.SECONDS).connectTimeout(20, TimeUnit.SECONDS).build();
jsonString = jsonStringList.get(downloadindex); jsonString = jsonStringList.get(downloadindex);
@@ -1526,7 +1477,6 @@ public class DealarBoardActivity extends AppCompatActivity implements Navigation
if (finalJsonIndex[0] != KeyNames.size()) { if (finalJsonIndex[0] != KeyNames.size()) {
downloadDataUniversalWithoutWait(jsonStringList, KeyNames, finalJsonIndex[0], pd); downloadDataUniversalWithoutWait(jsonStringList, KeyNames, finalJsonIndex[0], pd);
} else { } else {
/////update Dashboard UI reports....... /////update Dashboard UI reports.......
editor = preferences.edit(); editor = preferences.edit();
editor.putString(CommonString.KEY_DASHBOARD_REFRESH_TIME, CommonFunctions.getCurrentTime_only()); editor.putString(CommonString.KEY_DASHBOARD_REFRESH_TIME, CommonFunctions.getCurrentTime_only());
@@ -13,6 +13,8 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Bundle; import android.os.Bundle;
import com.cpm.lorealbaautomation.gsonGetterSetter.JourneyPlan;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.firebase.messaging.FirebaseMessaging; import com.google.firebase.messaging.FirebaseMessaging;
import com.cpm.lorealbaautomation.delegates.PrefHelper; import com.cpm.lorealbaautomation.delegates.PrefHelper;
@@ -92,14 +94,12 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_user_login); setContentView(R.layout.activity_user_login);
getViewId(); getViewId();
FirebaseMessaging.getInstance().getToken() FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(task -> { .addOnCompleteListener(task -> {
if (!task.isSuccessful()) { if (!task.isSuccessful()) {
Log.w(TAG, "Fetching FCM registration token failed", task.getException()); Log.w(TAG, "Fetching FCM registration token failed", task.getException());
return; return;
} }
// Get new FCM registration token // Get new FCM registration token
String token = task.getResult(); String token = task.getResult();
try { try {
@@ -111,12 +111,12 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
} catch (JSONException e) { } catch (JSONException e) {
e.fillInStackTrace(); e.fillInStackTrace();
} }
// Log and toast // Log and toast
//test(TAG, "Token: " + token); Log.d(TAG, "Token: " + token);
}); });
showAlertForLogoutUser(false);
} }
@@ -132,7 +132,6 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
lay_ma = (LinearLayout) findViewById(R.id.lay_ma); lay_ma = (LinearLayout) findViewById(R.id.lay_ma);
lay_tba = (LinearLayout) findViewById(R.id.lay_tba); lay_tba = (LinearLayout) findViewById(R.id.lay_tba);
btncontinue = (Button) findViewById(R.id.btncontinue); btncontinue = (Button) findViewById(R.id.btncontinue);
user_password = (EditText) findViewById(R.id.user_password); user_password = (EditText) findViewById(R.id.user_password);
counter_name = (TextView) findViewById(R.id.counter_name); counter_name = (TextView) findViewById(R.id.counter_name);
versioncode_txt = (TextView) findViewById(R.id.versioncode_txt); versioncode_txt = (TextView) findViewById(R.id.versioncode_txt);
@@ -140,10 +139,10 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
Objects.requireNonNull(getSupportActionBar()).setHomeButtonEnabled(true); Objects.requireNonNull(getSupportActionBar()).setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTitle(getString(R.string.user_login)); setTitle(getString(R.string.user_login));
counterId = preferences.getString(CommonString.KEY_COUNTER_ID, ""); counterId = preferences.getString(CommonString.KEY_COUNTER_ID, "");
counter_code = preferences.getString(CommonString.KEY_COUNTER_CODE, ""); counter_code = preferences.getString(CommonString.KEY_COUNTER_CODE, "");
counterName = preferences.getString(CommonString.KEY_COUNTER_NAME, ""); counterName = preferences.getString(CommonString.KEY_COUNTER_NAME, "");
userId = preferences.getString(CommonString.KEY_USERNAME, "");
visitdate = preferences.getString(CommonString.KEY_DATE, ""); visitdate = preferences.getString(CommonString.KEY_DATE, "");
counter_name.setText("Counter Name : " + counterName + "\n" + "Counter Code : " + counter_code); counter_name.setText("Counter Name : " + counterName + "\n" + "Counter Code : " + counter_code);
lay_ba.setOnClickListener(this); lay_ba.setOnClickListener(this);
@@ -151,12 +150,10 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
lay_tba.setOnClickListener(this); lay_tba.setOnClickListener(this);
btncontinue.setOnClickListener(this); btncontinue.setOnClickListener(this);
checkAndRequestPermissions(); checkAndRequestPermissions();
bsListData = db.getBAListAllData(visitdate, counterId); bsListData = db.getBAListAllData(visitdate, counterId);
if (bsListData.size() == 0) { if (bsListData.isEmpty()) {
UploadDataTask(); UploadDataTask();
} }
if (getIntent().getExtras() != null) { if (getIntent().getExtras() != null) {
for (String key : getIntent().getExtras().keySet()) { for (String key : getIntent().getExtras().keySet()) {
if (key.equalsIgnoreCase("title")) { if (key.equalsIgnoreCase("title")) {
@@ -172,7 +169,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
assert title != null; assert title != null;
assert body != null; assert body != null;
if (!title.equalsIgnoreCase("") && !body.equalsIgnoreCase("")) { if (!title.isEmpty() && !body.isEmpty()) {
db.open(); db.open();
long value = db.insertNotificationData(title, body, path, visitdate, type, counterId); long value = db.insertNotificationData(title, body, path, visitdate, type, counterId);
if (value > 0) { if (value > 0) {
@@ -181,8 +178,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
Toast.makeText(context, "Notification Not Inserted", Toast.LENGTH_SHORT).show(); Toast.makeText(context, "Notification Not Inserted", Toast.LENGTH_SHORT).show();
} }
} }
if (!title.isEmpty()) {
if (!title.equals("")) {
Intent in = new Intent(this, NotificationDetailActivity.class); Intent in = new Intent(this, NotificationDetailActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); in.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
in.putExtra("Type", type); in.putExtra("Type", type);
@@ -199,12 +195,11 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
public void onClick(View v) { public void onClick(View v) {
if (v.getId() == R.id.lay_ba) { if (v.getId() == R.id.lay_ba) {
db.open(); db.open();
if (db.getBAListAllData(visitdate, counterId).size() > 0) { if (!db.getBAListAllData(visitdate, counterId).isEmpty()) {
editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_BA); editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_BA);
editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN); editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN);
editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_BA); editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_BA);
editor.commit(); editor.commit();
Intent balogin = new Intent(context, TabLoginActivity.class); Intent balogin = new Intent(context, TabLoginActivity.class);
balogin.putExtra(CommonString.TAG_FROM, CommonString.TAG_FROM_BA); balogin.putExtra(CommonString.TAG_FROM, CommonString.TAG_FROM_BA);
balogin.putExtra(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN); balogin.putExtra(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN);
@@ -216,7 +211,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
} else if (v.getId() == R.id.lay_ma) { } else if (v.getId() == R.id.lay_ma) {
db.open(); db.open();
if (db.getBAListAllData(visitdate, counterId).size() > 0) { if (!db.getBAListAllData(visitdate, counterId).isEmpty()) {
editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_ME); editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_ME);
editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_ME_LOGIN); editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_ME_LOGIN);
editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_ME); editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_ME);
@@ -233,22 +228,19 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
} else if (v.getId() == R.id.lay_tba) { } else if (v.getId() == R.id.lay_tba) {
db.open(); db.open();
if (db.getBAListAllData(visitdate, counterId).size() > 0) { if (!db.getBAListAllData(visitdate, counterId).isEmpty()) {
editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_TBA); editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_TBA);
editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_TBA_LOGIN); editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_TBA_LOGIN);
editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_TBA); editor.putString(CommonString.KEY_USER_TYPE, CommonString.TAG_FROM_TBA);
editor.commit(); editor.commit();
Intent tbalogin = new Intent(context, TabLoginActivity.class); Intent tbalogin = new Intent(context, TabLoginActivity.class);
tbalogin.putExtra(CommonString.TAG_FROM, CommonString.TAG_FROM_TBA); tbalogin.putExtra(CommonString.TAG_FROM, CommonString.TAG_FROM_TBA);
tbalogin.putExtra(CommonString.TAG_MODE, CommonString.MODE_FROM_TBA_LOGIN); tbalogin.putExtra(CommonString.TAG_MODE, CommonString.MODE_FROM_TBA_LOGIN);
startActivity(tbalogin); startActivity(tbalogin);
overridePendingTransition(R.anim.activity_in, R.anim.activity_out); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} else { } else {
DownloadData(CommonString.TAG_FROM_TBA); DownloadData(CommonString.TAG_FROM_TBA);
} }
} }
} }
@@ -270,7 +262,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
jsonList.add(jsonObject.toString()); jsonList.add(jsonObject.toString());
KeyNames.add(keysList.get(i)); KeyNames.add(keysList.get(i));
} }
if (jsonList.size() > 0) { if (!jsonList.isEmpty()) {
ProgressDialog pd = new ProgressDialog(context); ProgressDialog pd = new ProgressDialog(context);
DownloadAllDatawithRetro downloadData = new DownloadAllDatawithRetro(context, db, pd, CommonString.TAG_FROM_CURRENT); DownloadAllDatawithRetro downloadData = new DownloadAllDatawithRetro(context, db, pd, CommonString.TAG_FROM_CURRENT);
downloadData.listSize = jsonList.size(); downloadData.listSize = jsonList.size();
@@ -301,7 +293,7 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
} }
private boolean checkAndRequestPermissions() { private void checkAndRequestPermissions() {
int CAMERA = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA); int CAMERA = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA);
int ACCESS_NETWORK_STATE = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_NETWORK_STATE); int ACCESS_NETWORK_STATE = ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_NETWORK_STATE);
int ACCESS_COARSE_LOCATION = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION); int ACCESS_COARSE_LOCATION = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION);
@@ -330,71 +322,58 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
if (!listPermissionsNeeded.isEmpty()) { if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), CommonString.PERMISSION_ALL); ActivityCompat.requestPermissions(this, listPermissionsNeeded.toArray(new String[listPermissionsNeeded.size()]), CommonString.PERMISSION_ALL);
return false;
} }
return true;
} }
private void showDialogOK(String message, DialogInterface.OnClickListener okListener) { private void showDialogOK(DialogInterface.OnClickListener okListener) {
new AlertDialog.Builder(this).setMessage(message).setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show(); new AlertDialog.Builder(this).setMessage("Location,File,Call and Camera Services Permission required for this app").setPositiveButton("OK", okListener).setNegativeButton("Cancel", okListener).create().show();
} }
@Override @Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults); super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//test("", "Permission callback called-------"); //test("", "Permission callback called-------");
switch (requestCode) { if (requestCode == CommonString.PERMISSION_ALL) {
case CommonString.PERMISSION_ALL: { Map<String, Integer> perms = new HashMap<>();
Map<String, Integer> perms = new HashMap<>(); // Initialize the map with both permissions
// Initialize the map with both permissions perms.put(Manifest.permission.CAMERA, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.CAMERA, PackageManager.PERMISSION_GRANTED); perms.put(Manifest.permission.ACCESS_NETWORK_STATE, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.ACCESS_NETWORK_STATE, PackageManager.PERMISSION_GRANTED); perms.put(Manifest.permission.ACCESS_COARSE_LOCATION, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.ACCESS_COARSE_LOCATION, PackageManager.PERMISSION_GRANTED); perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.ACCESS_FINE_LOCATION, PackageManager.PERMISSION_GRANTED); perms.put(Manifest.permission.READ_PHONE_STATE, PackageManager.PERMISSION_GRANTED);
perms.put(Manifest.permission.READ_PHONE_STATE, PackageManager.PERMISSION_GRANTED); // Fill with actual results from user
// Fill with actual results from user if (grantResults.length > 0) {
if (grantResults.length > 0) { for (int i = 0; i < permissions.length; i++)
for (int i = 0; i < permissions.length; i++) perms.put(permissions[i], grantResults[i]);
perms.put(permissions[i], grantResults[i]); // Check for both permissions
// Check for both permissions boolean allPermissionsGranted =
boolean allPermissionsGranted = Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.CAMERA)) &&
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_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_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.ACCESS_FINE_LOCATION)) && Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.READ_PHONE_STATE));
Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.READ_PHONE_STATE)); } else {
if (allPermissionsGranted) { //test("", "Some permissions are not granted ask again ");
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) ||
} ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE) ||
} else { ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) ||
//test("", "Some permissions are not granted ask again "); ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) ||
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA) || ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) {
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_NETWORK_STATE) || showDialogOK((dialog, which) -> {
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION) || switch (which) {
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) || case DialogInterface.BUTTON_POSITIVE:
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { checkAndRequestPermissions();
showDialogOK("Location,File,Call and Camera Services Permission required for this app", (dialog, which) -> { break;
switch (which) { case DialogInterface.BUTTON_NEGATIVE:
case DialogInterface.BUTTON_POSITIVE: // proceed with logic by disabling the related features or quit the app.
checkAndRequestPermissions(); Intent startMain = new Intent(Intent.ACTION_MAIN);
break; startMain.addCategory(Intent.CATEGORY_HOME);
case DialogInterface.BUTTON_NEGATIVE: startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// proceed with logic by disabling the related features or quit the app. startActivity(startMain);
Intent startMain = new Intent(Intent.ACTION_MAIN); break;
startMain.addCategory(Intent.CATEGORY_HOME); }
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); });
startActivity(startMain);
break;
}
});
}
//permission is denied (and never ask again is checked)
//shouldShowRequestPermissionRationale will return false
else {
Toast.makeText(this, "Go to settings and enable permissions", Toast.LENGTH_LONG).show();
// //proceed with logic by disabling the related features or quit the app.
}
} }
} }
} }
@@ -419,12 +398,10 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
jsonList.add(jsonObject.toString()); jsonList.add(jsonObject.toString());
KeyNames.add(keysList.get(i)); KeyNames.add(keysList.get(i));
} }
if (!jsonList.isEmpty()) {
if (jsonList.size() > 0) {
loading = ProgressDialog.show(context, "Downloading", "Please wait...", false, true); loading = ProgressDialog.show(context, "Downloading", "Please wait...", false, true);
downloadBaList(context, jsonList, KeyNames, downloadindex, userType, loading); downloadBaList(context, jsonList, KeyNames, downloadindex, userType, loading);
} }
} else { } else {
AlertandMessages.showToastMsg(context, getString(R.string.nonetwork)); AlertandMessages.showToastMsg(context, getString(R.string.nonetwork));
} }
@@ -437,21 +414,19 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
final String[] data_global = {""}; final String[] data_global = {""};
String jsonString = "", KeyName = ""; String jsonString = "", KeyName = "";
int jsonIndex = 0; int jsonIndex = 0;
if (jsonStringList.size() > 0) { if (!jsonStringList.isEmpty()) {
OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).writeTimeout(CommonString.TIMEOUT, OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).writeTimeout(CommonString.TIMEOUT,
TimeUnit.SECONDS).connectTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).build(); TimeUnit.SECONDS).connectTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).build();
jsonString = jsonStringList.get(downloadindex); jsonString = jsonStringList.get(downloadindex);
KeyName = KeyNames.get(downloadindex); KeyName = KeyNames.get(downloadindex);
jsonIndex = downloadindex; jsonIndex = downloadindex;
RequestBody jsonData = RequestBody.create(MediaType.parse("application/json"), jsonString); RequestBody jsonData = RequestBody.create(MediaType.parse("application/json"), jsonString);
Retrofit adapter = new Retrofit.Builder().baseUrl(CommonString.URL).client(okHttpClient).addConverterFactory(GsonConverterFactory.create()).build(); Retrofit adapter = new Retrofit.Builder().baseUrl(CommonString.URL).client(okHttpClient).addConverterFactory(GsonConverterFactory.create()).build();
PostApi api = adapter.create(PostApi.class); PostApi api = adapter.create(PostApi.class);
Call<String> call = api.getDownloadAll(jsonData); Call<String> call = api.getDownloadAll(jsonData);
final int[] finalJsonIndex = {jsonIndex}; final int[] finalJsonIndex = {jsonIndex};
final String finalKeyName = KeyName; final String finalKeyName = KeyName;
call.enqueue(new Callback<>() {
call.enqueue(new Callback<String>() {
@Override @Override
public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) { public void onResponse(@NonNull Call<String> call, @NonNull Response<String> response) {
String responseBody = response.body(); String responseBody = response.body();
@@ -459,20 +434,18 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
try { try {
data = response.body(); data = response.body();
if (data.equals("")) { assert data != null;
if (data.isEmpty()) {
data_global[0] = ""; data_global[0] = "";
} else { } else {
data_global[0] = data; data_global[0] = data;
if (finalKeyName.equalsIgnoreCase("Table_Structure")) { if (finalKeyName.equalsIgnoreCase("Table_Structure")) {
TableStructureGetterSetter tableStructureObj = new Gson().fromJson(data, TableStructureGetterSetter.class); TableStructureGetterSetter tableStructureObj = new Gson().fromJson(data, TableStructureGetterSetter.class);
String isAllTableCreated = createTable(tableStructureObj); String isAllTableCreated = createTable(tableStructureObj);
if (isAllTableCreated != CommonString.KEY_SUCCESS) { if (isAllTableCreated != CommonString.KEY_SUCCESS) {
loading.dismiss();
if (loading != null && loading.isShowing()) { if (loading != null && loading.isShowing()) {
loading.dismiss(); loading.dismiss();
} }
AlertandMessages.showAlert((Activity) context, isAllTableCreated + " not created", true); AlertandMessages.showAlert((Activity) context, isAllTableCreated + " not created", true);
} }
} else { } else {
@@ -488,11 +461,20 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
} }
break; break;
case "Mapping_JourneyPlan": case "Mapping_JourneyPlan":
Log.d("JSON_DATA", data);
if (!data.contains("No Data")) { if (!data.contains("No Data")) {
JCPGetterSetter jcpObject = new Gson().fromJson(data, JCPGetterSetter.class); JCPGetterSetter jcpObject = new Gson().fromJson(data, JCPGetterSetter.class);
if (jcpObject != null && !db.insertJCPData(jcpObject)) { db.open();
if (jcpObject != null && db.insertJCPData(jcpObject)) {
db.open();
JourneyPlan jcp = db.getBIDfromJCP(userId, counterId);
if (jcp != null && jcp.getCheckout() != null && !jcp.getCheckout().isEmpty() && jcp.getCheckout().equals("Y")) {
editor.putBoolean(CommonString.KEY_IS_CHECKOUT_DONE + userId + visitdate, true);
editor.apply();
showAlertForLogoutUser(true);
}
} else {
AlertandMessages.showToastMsg(context, "JCP data not saved"); AlertandMessages.showToastMsg(context, "JCP data not saved");
} }
} }
@@ -506,14 +488,10 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
if (finalJsonIndex[0] != KeyNames.size()) { if (finalJsonIndex[0] != KeyNames.size()) {
downloadBaList(context, jsonStringList, KeyNames, finalJsonIndex[0], userType, loading); downloadBaList(context, jsonStringList, KeyNames, finalJsonIndex[0], userType, loading);
} else { } else {
loading.dismiss();
if (loading != null && loading.isShowing()) { if (loading != null && loading.isShowing()) {
loading.dismiss(); loading.dismiss();
} }
AlertandMessages.showToastMsg(context, "BA List data downloaded Successfully"); AlertandMessages.showToastMsg(context, "BA List data downloaded Successfully");
if (userType.equalsIgnoreCase(CommonString.TAG_FROM_BA)) { if (userType.equalsIgnoreCase(CommonString.TAG_FROM_BA)) {
editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_BA); editor.putString(CommonString.TAG_FROM, CommonString.TAG_FROM_BA);
editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN); editor.putString(CommonString.TAG_MODE, CommonString.MODE_FROM_BA_LOGIN);
@@ -551,20 +529,15 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
overridePendingTransition(R.anim.activity_in, R.anim.activity_out); overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.fillInStackTrace(); e.fillInStackTrace();
loading.dismiss();
if (loading != null && loading.isShowing()) { if (loading != null && loading.isShowing()) {
loading.dismiss(); loading.dismiss();
} }
AlertandMessages.showToastMsg(context, "Ba List Data Not Found. Please Contact To Supervisor"); AlertandMessages.showToastMsg(context, "Ba List Data Not Found. Please Contact To Supervisor");
} }
} else { } else {
loading.dismiss();
if (loading != null && loading.isShowing()) { if (loading != null && loading.isShowing()) {
loading.dismiss(); loading.dismiss();
} }
@@ -574,11 +547,9 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
@Override @Override
public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) { public void onFailure(@NonNull Call<String> call, @NonNull Throwable t) {
loading.dismiss();
if (loading != null && loading.isShowing()) { if (loading != null && loading.isShowing()) {
loading.dismiss(); loading.dismiss();
} }
AlertandMessages.showAlertlogin((Activity) context, CommonString.MESSAGE_SOCKETEXCEPTION); AlertandMessages.showAlertlogin((Activity) context, CommonString.MESSAGE_SOCKETEXCEPTION);
} }
}); });
@@ -593,6 +564,20 @@ public class UserLoginActivity extends AppCompatActivity implements View.OnClick
return table; return table;
} }
} }
return CommonString.KEY_SUCCESS; return CommonString.KEY_SUCCESS;
} }
private void showAlertForLogoutUser(boolean direct) {
if (preferences.getBoolean(CommonString.KEY_IS_CHECKOUT_DONE + userId + visitdate, false) || direct) {
new MaterialAlertDialogBuilder(this, R.style.MyMaterialAlertDialog)
.setTitle("Alert")
.setMessage("You have already checked-out in Store/Counter.You can't login again for today.").setCancelable(false)
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
dialog.dismiss();
finishAffinity();
}).show();
}
}
} }
@@ -0,0 +1,697 @@
package com.cpm.lorealbaautomation.checkout;
import static com.cpm.lorealbaautomation.constant.CommonFunctions.getCurrentTime;
import static com.cpm.lorealbaautomation.dailyactivity.StoreImageActivity.convertBitmap;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.location.Location;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.InputFilter;
import android.text.InputType;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.cpm.lorealbaautomation.Database.Lorealba_Database;
import com.cpm.lorealbaautomation.R;
import com.cpm.lorealbaautomation.constant.AlertandMessages;
import com.cpm.lorealbaautomation.constant.CommonFunctions;
import com.cpm.lorealbaautomation.constant.CommonString;
import com.cpm.lorealbaautomation.databinding.ActivityBacheckoutBinding;
import com.cpm.lorealbaautomation.databinding.ItemBacheckoutBinding;
import com.cpm.lorealbaautomation.delegates.PrefHelper;
import com.cpm.lorealbaautomation.download.Downloader;
import com.cpm.lorealbaautomation.gsonGetterSetter.JourneyPlan;
import com.cpm.lorealbaautomation.gsonGetterSetter.MasterPosm;
import com.cpm.lorealbaautomation.retrofit.UploadDataWithRetrofit;
import com.google.android.gms.common.api.ResolvableApiException;
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.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.gson.JsonSyntaxException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.File;
import java.io.IOException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class BaCheckoutActivity extends AppCompatActivity {
private String counter_Id, visit_date, username, _pathforcheck, _path, img_str = "", checkout_img_str = "";
private double latitude = 0.0, logitude = 0.0;
private SharedPreferences.Editor editor = null;
private SharedPreferences preferences = null;
private Lorealba_Database db;
private boolean checkflag = true, clickFlag = false, onspinTouch = false;
private JourneyPlan jcp_Object = null;
private QuestionAdapter adapter = null;
private ActivityBacheckoutBinding binding = null;
private ArrayList<MasterCheckoutQuestion> questions = new ArrayList<>();
private int _pos = -1;
String blockCharacterSet = "[';:-+{('}<!>@=#$%^&*?)\"]";
InputFilter filter = (source, start, end, dest, dstart, dend) -> {
if (source != null && blockCharacterSet.contains(("" + source))) {
return "";
}
return null;
};
private static final int REQUEST_LOCATION = 1;
private FusedLocationProviderClient fusedLocationClient = null;
private LocationCallback locationCallback = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityBacheckoutBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
fusedLocationClient = LocationServices.
getFusedLocationProviderClient(this);
db = new Lorealba_Database(this);
db.open();
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Objects.requireNonNull(getSupportActionBar()).setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
if (!CommonFunctions.isTablet(this)) {
toolbar.setTitleTextAppearance(this, R.style.changestext_sizefor_mobile);
}
iduserinterface();
showAlertOfLogout();
setTitle("Checkout Selfie - " + username);
binding.contentCheckout.imgCamSelfie.setOnClickListener(v -> {
clickFlag = true;
_pathforcheck = counter_Id + "-Checkout_Selfie_img_" + username + "_" + visit_date.replace("/", "") + "_" + getCurrentTime().replace(":", "") + ".jpg";
_path = CommonString.getImagesFolder(this) + _pathforcheck;
if (CommonFunctions.isTablet(this)) {
CommonFunctions.startAnncaCameraActivity(this, _path, null, false, CommonString.CAMERA_FACE_REAR);
} else {
CommonFunctions.startAnncaCameraActivity(this, _path, null, false, CommonString.CAMERA_FACE_FRONT);
}
});
}
private void iduserinterface() {
preferences = PrefHelper.getPrefs(this);
editor = preferences.edit();
counter_Id = preferences.getString(CommonString.KEY_COUNTER_ID, "");
username = preferences.getString(CommonString.KEY_USERNAME, "");
visit_date = preferences.getString(CommonString.KEY_DATE, "");
jcp_Object = db.getBIDfromJCP(username, counter_Id);
Log.e("jcp_Object", "MID : " + jcp_Object.getMID().toString() + " BID : " + jcp_Object.getBID() + " UserId : " + username);
callquestions();
getLastLocation();
binding.fab.setOnClickListener(v -> {
CommonFunctions.dismissKeyboard(v);
if (checkout_img_str.isEmpty()) {
AlertandMessages.showToastMsg(v.getContext(), "Please click Selfie in front of counter at Checkout");
} else if (validate()) {
if (CommonFunctions.checkNetIsAvailable(v.getContext())) {
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext()).setTitle(R.string.parinaam).setMessage(R.string.title_activity_save_data).setCancelable(false).setPositiveButton(R.string.yes, (dialog, id) -> {
new BaCheckoutUpload(this).execute();
//upload service
Downloader.enqueueWork(v.getContext(), new Intent(v.getContext(),
Downloader.class).putExtra(CommonString.KEY_UPLOADIMAGE, "1"));
}).setNegativeButton(R.string.no, (dialog, id) -> dialog.cancel());
AlertDialog alert = builder.create();
alert.show();
}
}
});
}
@Override
protected void onResume() {
super.onResume();
db.open();
checkgpsEnableDevice();
}
private void checkgpsEnableDevice() {
if (!hasGPSDevice(this)) {
Toast.makeText(this, "Gps not Supported", Toast.LENGTH_SHORT).show();
}
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(this)) {
enableLocationSettings();
} else {
if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
hasGPSDevice(this);
}
}
}
private void enableLocationSettings() {
LocationRequest locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, // priority
5000 // intervalMillis: 5 seconds
).setMinUpdateIntervalMillis(3000) // fastest interval
.build();
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest).setAlwaysShow(true); // show dialog if GPS is off
SettingsClient settingsClient = LocationServices.getSettingsClient(this);
settingsClient.checkLocationSettings(builder.build()).addOnSuccessListener(locationSettingsResponse -> {
// All location settings are satisfied. You can request location updates here.
}).addOnFailureListener(e -> {
if (e instanceof ResolvableApiException) {
try {
ResolvableApiException resolvable = (ResolvableApiException) e;
resolvable.startResolutionForResult((Activity) this, REQUEST_LOCATION);
} catch (IntentSender.SendIntentException sendEx) {
// Ignore the error.
sendEx.fillInStackTrace();
}
}
});
}
private boolean hasGPSDevice(Context context) {
final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
if (mgr == null) return false;
final List<String> providers = mgr.getAllProviders();
return providers.contains(LocationManager.GPS_PROVIDER);
}
private void getLastLocation() {
if (fusedLocationClient == null) {
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
}
// fastest interval
LocationRequest locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, 5000)
.setMinUpdateIntervalMillis(3000) // fastest interval
.build();
locationCallback = new LocationCallback() {
@Override
public void onLocationResult(@NonNull LocationResult locationResult) {
for (Location location : locationResult.getLocations()) {
if (location != null) {
latitude = location.getLatitude();
logitude = location.getLongitude();
Log.d("Location", "Lat: " + latitude + ", Lng: " + logitude);
}
}
}
};
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
return;
}
fusedLocationClient.requestLocationUpdates(locationRequest, locationCallback, Looper.getMainLooper());
}
private void stopLocationUpdates() {
if (fusedLocationClient != null && locationCallback != null) {
fusedLocationClient.removeLocationUpdates(locationCallback);
}
}
@Override
public void onDestroy() {
super.onDestroy();
stopLocationUpdates();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == android.R.id.home) {
backPress();
}
return super.onOptionsItemSelected(item);
}
@SuppressLint("MissingSuperCall")
@Override
public void onBackPressed() {
backPress();
}
private void backPress() {
if (clickFlag) {
AlertDialog.Builder builder = new AlertDialog.Builder(this).setMessage(CommonString.ONBACK_ALERT_MESSAGE).setCancelable(false).setPositiveButton("Ok", (dialog, id1) -> {
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
this.finish();
}).setNegativeButton("Cancel", (dialog, id12) -> dialog.cancel());
AlertDialog alert = builder.create();
alert.show();
} else {
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
this.finish();
}
}
private void callquestions() {
db.open();
questions = db.getCheckoutQuestions(counter_Id, "", username);
binding.contentCheckout.tvPrompt.setVisibility(questions != null && !questions.isEmpty() ? View.VISIBLE : View.GONE);
binding.contentCheckout.recyclQuestionire.setVisibility(questions != null && !questions.isEmpty() ? View.VISIBLE : View.GONE);
adapter = new QuestionAdapter(this, questions);
binding.contentCheckout.recyclQuestionire.setAdapter(adapter);
binding.contentCheckout.recyclQuestionire.setLayoutManager(new LinearLayoutManager(this));
}
private class QuestionAdapter extends RecyclerView.Adapter<QuestionAdapter.ViewHolder> {
Context context;
ArrayList<MasterCheckoutQuestion> listDataHeader;
public QuestionAdapter(Context context, ArrayList<MasterCheckoutQuestion> listDataHeader) {
this.context = context;
this.listDataHeader = listDataHeader;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
ItemBacheckoutBinding itemBinding = ItemBacheckoutBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false);
return new ViewHolder(itemBinding);
}
@SuppressLint({"SetTextI18n", "ClickableViewAccessibility"})
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") final int pos) {
final MasterCheckoutQuestion object = listDataHeader.get(pos);
holder.item_binding.txtQuestion.setText(object.getQuestion());
holder.item_binding.txtQuestion.setId(pos);
if (object.getAns() != null && !object.getAns().isEmpty()) {
holder.item_binding.spAuditAnswer.setAdapter(new AnswerSpinnerAdapter(context, R.layout.custom_spinner_item, object.getAns()));
holder.item_binding.spAuditAnswer.setId(pos);
}
if (object.getQuestionType().equals("List Single Choice")) {
holder.item_binding.rlSpin.setVisibility(View.VISIBLE);
holder.item_binding.edtAnswer.setVisibility(View.GONE);
holder.item_binding.rlSpin.setId(pos);
holder.item_binding.edtAnswer.setId(pos);
} else if (object.getQuestionType().equals("Number") || object.getQuestionType().equals("Text")) {
holder.item_binding.rlSpin.setVisibility(View.GONE);
holder.item_binding.edtAnswer.setVisibility(View.VISIBLE);
holder.item_binding.rlSpin.setId(pos);
holder.item_binding.edtAnswer.setId(pos);
holder.item_binding.edtAnswer.setHint(object.getQuestion());
holder.item_binding.edtAnswer.setInputType(object.getQuestionType().equals("Number") ? InputType.TYPE_CLASS_NUMBER : InputType.TYPE_CLASS_TEXT);
holder.item_binding.edtAnswer.setTypeface(holder.item_binding.edtAnswer.getTypeface(), object.getQuestionType().equals("Number") ? Typeface.BOLD : Typeface.NORMAL);
holder.item_binding.edtAnswer.setFilters(new InputFilter[]{filter, object.getQuestionType().equals("Number") ? new InputFilter.LengthFilter(object.getMaxLength()) : new InputFilter.LengthFilter(350)});
}
holder.item_binding.spAuditAnswer.setOnTouchListener((view, motionEvent) -> {
onspinTouch = true;
return false;
});
holder.item_binding.spAuditAnswer.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (onspinTouch) {
if (position != 0) {
MasterCheckoutQuestion ans = object.getAns().get(position);
object.setCorrect_ans(ans.getAnswer());
object.setCorrect_ansId(ans.getAnswerId());
object.setImageAllow(ans.getImageAllow());
object.setImageAllowMandatory(ans.getImageAllowMandatory());
if (ans.getImageAllow()) {
holder.item_binding.rlAnsImg.setVisibility(View.VISIBLE);
} else {
holder.item_binding.rlAnsImg.setVisibility(View.GONE);
if (!object.getAnsImg().isEmpty()) {
if (new File(CommonString.getImagesFolder(context) + object.getAnsImg()).exists()) {
new File(CommonString.getImagesFolder(context) + object.getAnsImg()).delete();
}
}
object.setAnsImg("");
}
holder.item_binding.ansImg.setImageResource(object.getImageAllow() && object.getImageAllowMandatory() ? R.mipmap.camera_star : R.mipmap.camera_bs);
holder.item_binding.ansImg.setId(pos);
holder.item_binding.rlAnsImg.setId(pos);
} else {
object.setAnsImg("");
object.setCorrect_ans("");
object.setCorrect_ansId(0);
object.setImageAllow(false);
object.setImageAllowMandatory(false);
holder.item_binding.rlAnsImg.setId(pos);
holder.item_binding.rlAnsImg.setVisibility(View.GONE);
}
}
onspinTouch = false;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
holder.item_binding.edtAnswer.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) {
object.setCorrect_ansId(0);
object.setCorrect_ans(((EditText) v).getText().toString());
}
});
holder.item_binding.edtAnswer.setText(object.getCorrect_ans());
holder.item_binding.edtAnswer.setId(pos);
if (object.getAns() != null && !object.getAns().isEmpty()) {
for (int i = 0; i < object.getAns().size(); i++) {
if ((object.getQuestionType().equals("List Single Choice") && object.getAns().get(i).getAnswerId().toString().equals(object.getCorrect_ansId().toString()))) {
holder.item_binding.spAuditAnswer.setSelection(i);
break;
}
}
}
holder.item_binding.questionImg.setOnClickListener(v -> {
_pathforcheck = object.getQuestionId().toString() + "_" + counter_Id + "_CheckoutQuestionImg-" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeHHMMSS().replace(":", "") + ".jpg";
_path = CommonString.getImagesFolder(context) + _pathforcheck;
CommonFunctions.startAnncaCameraActivity(context, _path, null, false, CommonString.CAMERA_FACE_REAR);
_pos = pos;
});
holder.item_binding.ansImg.setOnClickListener(v -> {
String ansId = object.getCorrect_ansId() != 0 ? object.getCorrect_ansId().toString() + "_" : "";
_pathforcheck = object.getQuestionId().toString() + "_" + ansId + counter_Id + "_CheckoutAnsImg-" + visit_date.replace("/", "") + CommonFunctions.getCurrentTimeHHMMSS().replace(":", "") + ".jpg";
_path = CommonString.getImagesFolder(context) + _pathforcheck;
CommonFunctions.startAnncaCameraActivity(context, _path, null, false, CommonString.CAMERA_FACE_REAR);
_pos = pos;
});
if (!img_str.isEmpty()) {
if (_pos == pos) {
if (img_str.contains("_CounterCheckoutImg-")) {
object.setQuestionImg(img_str);
} else {
object.setAnsImg(img_str);
}
img_str = "";
_pos = -1;
}
}
holder.item_binding.rlQImg.setVisibility(object.getQuestionImageAllow() ? View.VISIBLE : View.GONE);
holder.item_binding.rlQImg.setId(pos);
holder.item_binding.questionImg.setImageResource(!object.getQuestionImg().isEmpty() ? R.mipmap.camera_bsd : object.getQuestionImageAllow()
&& object.getQuestionImageMandatory() ? R.mipmap.camera_star : R.mipmap.camera_bs);
holder.item_binding.questionImg.setId(pos);
holder.item_binding.rlAnsImg.setVisibility(object.getImageAllow() ? View.VISIBLE : View.GONE);
holder.item_binding.rlAnsImg.setId(pos);
holder.item_binding.ansImg.setImageResource(!object.getAnsImg().isEmpty() ? R.mipmap.camera_bsd :
object.getImageAllow() && object.getImageAllowMandatory() ? R.mipmap.camera_star : R.mipmap.camera_bs);
holder.item_binding.ansImg.setId(pos);
}
@Override
public int getItemCount() {
return listDataHeader.size();
}
private static class ViewHolder extends RecyclerView.ViewHolder {
ItemBacheckoutBinding item_binding;
private ViewHolder(@NonNull ItemBacheckoutBinding itemBacheckoutBinding) {
super(itemBacheckoutBinding.getRoot());
this.item_binding = itemBacheckoutBinding;
}
}
}
private static class AnswerSpinnerAdapter extends ArrayAdapter<MasterCheckoutQuestion> {
List<MasterCheckoutQuestion> list;
Context context;
int resourceId;
public AnswerSpinnerAdapter(Context context, int resourceId, ArrayList<MasterCheckoutQuestion> list) {
super(context, resourceId, list);
this.context = context;
this.list = list;
this.resourceId = resourceId;
}
@NonNull
@SuppressLint("ViewHolder")
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
View view = convertView;
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
view = inflater.inflate(resourceId, parent, false);
MasterCheckoutQuestion cm = list.get(position);
TextView txt_spinner = (TextView) view.findViewById(R.id.tv_ans);
txt_spinner.setGravity(Gravity.CENTER_VERTICAL);
txt_spinner.setText(list.get(position).getAnswer());
return view;
}
@Override
public View getDropDownView(int position, View _convertView, @NonNull ViewGroup parent) {
View view = _convertView;
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
view = inflater.inflate(resourceId, parent, false);
MasterCheckoutQuestion cm = list.get(position);
TextView txt_spinner = (TextView) view.findViewById(R.id.tv_ans);
txt_spinner.setGravity(Gravity.CENTER_VERTICAL);
txt_spinner.setText(cm.getAnswer());
return view;
}
}
@SuppressLint("NotifyDataSetChanged")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i("MakeMachine", "resultCode: " + resultCode);
switch (resultCode) {
case 0:
Log.i("MakeMachine", "User cancelled");
break;
case -1:
if (_pathforcheck != null && !_pathforcheck.isEmpty()) {
if (new File(CommonString.getImagesFolder(this) + _pathforcheck).exists()) {
Bitmap bmp = convertBitmap(CommonString.getImagesFolder(this) + _pathforcheck);
if (_pathforcheck.contains("-Checkout_Selfie_img_")) {
try {
binding.contentCheckout.imgSelfie.setImageBitmap(bmp);
} catch (OutOfMemoryError ex) {
CommonFunctions.setScaledImage(binding.contentCheckout.imgSelfie, CommonString.getImagesFolder(this) + _pathforcheck);
}
binding.contentCheckout.imgCamSelfie.setVisibility(View.GONE);
binding.contentCheckout.imgSelfie.setVisibility(View.VISIBLE);
checkout_img_str = _pathforcheck;
} else {
img_str = _pathforcheck;
if (adapter != null) adapter.notifyDataSetChanged();
}
_pathforcheck = "";
}
}
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
@SuppressLint("NotifyDataSetChanged")
private boolean validate() {
checkflag = true;
adapter.notifyDataSetChanged();
if (questions != null && !questions.isEmpty()) {
for (int a = 0; a < questions.size(); a++) {
if (questions.get(a).getCorrect_ans().isEmpty()) {
AlertandMessages.showToastMsg(this, "Please " + (questions.get(a).getQuestionType().equals("List Single Choice") ? "Select an answer for the " + questions.get(a).getQuestion() : "provide an answer to the " + questions.get(a).getQuestion()));
checkflag = false;
break;
} else if (questions.get(a).getQuestionImageAllow() && questions.get(a).getQuestionImageMandatory() && questions.get(a).getQuestionImg().isEmpty()) {
AlertandMessages.showToastMsg(this, "Please capture image of the " + questions.get(a).getQuestion());
checkflag = false;
break;
} else if (questions.get(a).getImageAllow() && questions.get(a).getImageAllowMandatory() && questions.get(a).getAnsImg().isEmpty()) {
AlertandMessages.showToastMsg(this, "Please capture image of the " + questions.get(a).getQuestion());
checkflag = false;
break;
}
}
}
return checkflag;
}
@SuppressLint({"StaticFieldLeak", ""})
private class BaCheckoutUpload extends AsyncTask<Void, Void, String> {
private ProgressDialog loading = null;
private boolean uploadflag;
private String errormsg = "";
private Context context;
private BaCheckoutUpload(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(context, "Uploading Checkout Info", "Please wait...", false, true);
}
@Override
protected String doInBackground(Void... params) {
try {
// uploading BaCheckoutUpload
uploadflag = false;
if (!checkout_img_str.isEmpty()) {
String jsonString2 = getString();
Log.e("jsonString2", jsonString2);
UploadDataWithRetrofit upload = new UploadDataWithRetrofit(context);
String result = upload.uploadDeviceTokenDetails(jsonString2, 420);
if (result.contains("1")) {
uploadflag = true;
} else if (result.equalsIgnoreCase(CommonString.MESSAGE_NO_RESPONSE_SERVER)) {
uploadflag = false;
throw new SocketTimeoutException();
} else if (result.equalsIgnoreCase(CommonString.MESSAGE_SOCKETEXCEPTION)) {
uploadflag = false;
throw new IOException();
} else if (result.equalsIgnoreCase(CommonString.KEY_FAILURE)) {
uploadflag = false;
throw new Exception();
}
}
} catch (IOException ex) {
uploadflag = false;
ex.fillInStackTrace();
errormsg = CommonString.MESSAGE_INTERNET_NOT_AVALABLE;
} catch (JsonSyntaxException ex) {
uploadflag = false;
ex.fillInStackTrace();
errormsg = CommonString.MESSAGE_INVALID_JSON;
} catch (Exception ex) {
uploadflag = false;
errormsg = CommonString.MESSAGE_EXCEPTION;
}
if (uploadflag) {
return CommonString.KEY_SUCCESS;
} else {
return errormsg;
}
}
private @NonNull String getString() throws JSONException {
JSONArray array = new JSONArray();
if (questions != null && !questions.isEmpty()) {
JSONObject jsonObject = null;
for (MasterCheckoutQuestion question : questions) {
jsonObject = new JSONObject();
jsonObject.put("QuestionId", question.getQuestionId());
jsonObject.put("QuestionType", question.getQuestionType());
jsonObject.put("AnswerId", question.getCorrect_ansId());
jsonObject.put("Answer", question.getCorrect_ans());
jsonObject.put("QuestionImg", question.getQuestionImg());
jsonObject.put("AnsImg", question.getAnsImg());
array.put(jsonObject);
}
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("MID", jcp_Object.getMID());
jsonObject.put("BID", jcp_Object.getBID());
jsonObject.put("Latitude", latitude);
jsonObject.put("Longitude", logitude);
jsonObject.put("CheckoutImage", checkout_img_str);
jsonObject.put("JsonQuestion", array.toString());
jsonObject.put("UserId", username);
return jsonObject.toString();
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if (result != null && result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(context.getString(R.string.parinaam));
builder.setMessage("You have successfully checked out.").setCancelable(false)
.setPositiveButton(android.R.string.ok, (dialog_, id) -> {
runOnUiThread(() -> {
db.open();
db.updateCheckoutStatus(counter_Id, jcp_Object.getBID().toString(), username);
editor = preferences.edit();
editor.putBoolean(CommonString.KEY_IS_CHECKOUT_DONE + username + visit_date, true);
editor.apply();
finishAffinity();
});
dialog_.dismiss();
});
AlertDialog alert = builder.create();
alert.show();
} else {
AlertandMessages.showAlert((Activity) context, getResources().getString(R.string.failure) + " : " + errormsg, true);
}
/// dismiss progress dialog
if (loading != null && loading.isShowing()) loading.dismiss();
}
}
private void showAlertOfLogout() {
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.MyMaterialAlertDialog)
.setTitle("Hi User!")
.setMessage("Once you have checked out at the store or counter, you cannot log in again for the rest of the day.")
.setCancelable(true);
androidx.appcompat.app.AlertDialog dialog_ = builder.show();
// Auto-dismiss after 5 seconds
new Handler(Looper.getMainLooper()).postDelayed(() -> {
if (dialog_.isShowing()) {
dialog_.dismiss();
}
}, 8000); // 5000 milliseconds = 5 seconds
}
}
@@ -0,0 +1,226 @@
package com.cpm.lorealbaautomation.checkout;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
public class MasterCheckoutQuestion {
@SerializedName("CategoryId")
private Integer categoryId;
@SerializedName("Category")
private String category;
@SerializedName("QuestionId")
private Integer questionId;
@SerializedName("Question")
private String question;
@SerializedName("QuestionType")
private String questionType;
@SerializedName("QuestionImageAllow")
private Boolean questionImageAllow;
@SerializedName("QuestionImageMandatory")
private Boolean questionImageMandatory;
@SerializedName("QEnable")
private Boolean qEnable;
@SerializedName("LengthValidation")
private Boolean lengthValidation;
@SerializedName("MinLength")
private Integer minLength;
@SerializedName("MaxLength")
private Integer maxLength;
@SerializedName("AnswerId")
private Integer answerId;
@SerializedName("Answer")
private String answer;
@SerializedName("ImageAllow")
private Boolean imageAllow;
@SerializedName("ImageAllowMandatory")
private Boolean imageAllowMandatory;
@SerializedName("QuestionEnable")
private String questionEnable;
@SerializedName("QuestionDisable")
private String questionDisable;
public Integer getCategoryId() {
return categoryId;
}
public void setCategoryId(Integer categoryId) {
this.categoryId = categoryId;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public Integer getQuestionId() {
return questionId;
}
public void setQuestionId(Integer questionId) {
this.questionId = questionId;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getQuestionType() {
return questionType;
}
public void setQuestionType(String questionType) {
this.questionType = questionType;
}
public Boolean getQuestionImageAllow() {
return questionImageAllow;
}
public void setQuestionImageAllow(Boolean questionImageAllow) {
this.questionImageAllow = questionImageAllow;
}
public Boolean getQuestionImageMandatory() {
return questionImageMandatory;
}
public void setQuestionImageMandatory(Boolean questionImageMandatory) {
this.questionImageMandatory = questionImageMandatory;
}
public Boolean getQEnable() {
return qEnable;
}
public void setQEnable(Boolean qEnable) {
this.qEnable = qEnable;
}
public Boolean getLengthValidation() {
return lengthValidation;
}
public void setLengthValidation(Boolean lengthValidation) {
this.lengthValidation = lengthValidation;
}
public Integer getMinLength() {
return minLength;
}
public void setMinLength(Integer minLength) {
this.minLength = minLength;
}
public Integer getMaxLength() {
return maxLength;
}
public void setMaxLength(Integer maxLength) {
this.maxLength = maxLength;
}
public Integer getAnswerId() {
return answerId;
}
public void setAnswerId(Integer answerId) {
this.answerId = answerId;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
}
public Boolean getImageAllow() {
return imageAllow;
}
public void setImageAllow(Boolean imageAllow) {
this.imageAllow = imageAllow;
}
public Boolean getImageAllowMandatory() {
return imageAllowMandatory;
}
public void setImageAllowMandatory(Boolean imageAllowMandatory) {
this.imageAllowMandatory = imageAllowMandatory;
}
public String getQuestionEnable() {
return questionEnable;
}
public void setQuestionEnable(String questionEnable) {
this.questionEnable = questionEnable;
}
public String getQuestionDisable() {
return questionDisable;
}
public void setQuestionDisable(String questionDisable) {
this.questionDisable = questionDisable;
}
public String getQuestionImg() {
return questionImg;
}
public void setQuestionImg(String questionImg) {
this.questionImg = questionImg;
}
public String getAnsImg() {
return ansImg;
}
public void setAnsImg(String ansImg) {
this.ansImg = ansImg;
}
public Integer getCorrect_ansId() {
return correct_ansId;
}
public void setCorrect_ansId(Integer correct_ansId) {
this.correct_ansId = correct_ansId;
}
public String getCorrect_ans() {
return correct_ans;
}
public void setCorrect_ans(String correct_ans) {
this.correct_ans = correct_ans;
}
String questionImg="";
String ansImg="";
Integer correct_ansId=0;
String correct_ans="";
ArrayList<MasterCheckoutQuestion>ans=new ArrayList<>();
public ArrayList<MasterCheckoutQuestion> getAns() {
return ans;
}
public void setAns(ArrayList<MasterCheckoutQuestion> ans) {
this.ans = ans;
}
}
@@ -322,14 +322,11 @@ public class CommonFunctions {
} }
public static String setTimeFormat(String start_dt) { public static String setTimeFormat(String start_dt) {
//test("xxxd" + start_dt);
String newvalue = ""; String newvalue = "";
try { try {
if (!start_dt.isEmpty()) { if (!start_dt.isEmpty()) {
String s[] = start_dt.split(":"); String s[] = start_dt.split(":");
//test("time-----------------" + s[0] + "parseint" + Integer.parseInt(s[0]));
int t = Integer.parseInt(s[0]); int t = Integer.parseInt(s[0]);
//test("vv....." + t);
if (t < 12) { if (t < 12) {
s[0] = Integer.valueOf(s[0]).toString(); s[0] = Integer.valueOf(s[0]).toString();
if (Integer.parseInt(s[0]) < 10 && s[0].length() == 0) { if (Integer.parseInt(s[0]) < 10 && s[0].length() == 0) {
@@ -337,7 +334,6 @@ public class CommonFunctions {
} else { } else {
newvalue = s[0] + ":" + s[1] + ":" + s[2]; newvalue = s[0] + ":" + s[1] + ":" + s[2];
} }
//test("value..." + newvalue);
} else { } else {
int time = Integer.parseInt(s[0]) - 12; int time = Integer.parseInt(s[0]) - 12;
if (time < 10) { if (time < 10) {
@@ -345,8 +341,6 @@ public class CommonFunctions {
} else { } else {
newvalue = "0" + time + ":" + s[1] + ":" + s[2]; newvalue = "0" + time + ":" + s[1] + ":" + s[2];
} }
//test("value..." + newvalue);
} }
} }
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
@@ -56,6 +56,7 @@ public class CommonString {
public static final String KEY_PASSWORD = "PASSWORD"; public static final String KEY_PASSWORD = "PASSWORD";
public static final String KEY_MPIN = "MPIN"; public static final String KEY_MPIN = "MPIN";
public static final String KEY_STATUS = "STATUS"; public static final String KEY_STATUS = "STATUS";
public static final String KEY_IS_CHECKOUT_DONE = "is_checkout_done";
public static final String KEY_INCORRECT_TSTOCK_SUMMERY = "TSTOCK_SUMMERY"; public static final String KEY_INCORRECT_TSTOCK_SUMMERY = "TSTOCK_SUMMERY";
public static final String KEY_MY_KNOWLEDGE_URL = "https://lba.parinaam.in/WebView/ViewContent?Counter_Id="; public static final String KEY_MY_KNOWLEDGE_URL = "https://lba.parinaam.in/WebView/ViewContent?Counter_Id=";
public static final String KEY_DATE = "DATE"; public static final String KEY_DATE = "DATE";
@@ -11,6 +11,7 @@ import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.os.Bundle; import android.os.Bundle;
import com.cpm.lorealbaautomation.utils.NonScrollExpandableListView;
import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.floatingactionbutton.FloatingActionButton;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@@ -102,7 +103,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
HashMap<AuditDataGetterSetter, ArrayList<AuditDataGetterSetter>> hashMapAnsListChildData; HashMap<AuditDataGetterSetter, ArrayList<AuditDataGetterSetter>> hashMapAnsListChildData;
int child_position = -1; int child_position = -1;
String error_msg = ""; String error_msg = "";
ExpandableListView expandableListView; NonScrollExpandableListView expandableListView;
ExpandableListAdapter adapter; ExpandableListAdapter adapter;
ArrayList<MasterProfileQuestion> listDataHeader = new ArrayList<>(); ArrayList<MasterProfileQuestion> listDataHeader = new ArrayList<>();
HashMap<MasterProfileQuestion, ArrayList<AuditDataGetterSetter>> listDataChild; HashMap<MasterProfileQuestion, ArrayList<AuditDataGetterSetter>> listDataChild;
@@ -190,7 +191,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
@SuppressLint("NonConstantResourceId") @SuppressLint("NonConstantResourceId")
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (view.getId() == R.id.img_dob) { if (view.getId() == R.id.img_dob) {
c = Calendar.getInstance(); c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR); mYear = c.get(Calendar.YEAR);
@@ -216,6 +216,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
if (file != null) { if (file != null) {
for (File value : file) arrayFiles.add(value.getName()); for (File value : file) arrayFiles.add(value.getName());
} }
return arrayFiles; return arrayFiles;
} }
@@ -242,7 +243,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
void getQuizProfileData() { void getQuizProfileData() {
hashMapAnsListChildData = new HashMap<>(); hashMapAnsListChildData = new HashMap<>();
childListData = new ArrayList<>(); childListData = new ArrayList<>();
expandableListView = (ExpandableListView) findViewById(R.id.list); expandableListView = (NonScrollExpandableListView) findViewById(R.id.list);
db.open(); db.open();
listDataHeader = db.getAuditQuestionCategoryData(user_type); listDataHeader = db.getAuditQuestionCategoryData(user_type);
question_list = new ArrayList<>(); question_list = new ArrayList<>();
@@ -268,7 +269,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
db.open(); db.open();
childListData = db.getAuditAnswerData(question_list.get(j), select); childListData = db.getAuditAnswerData(question_list.get(j), select);
if (question_list.get(j).getANSWER_TYPE().equalsIgnoreCase("Multi selection")) { if (question_list.get(j).getANSWER_TYPE().equalsIgnoreCase("Multi selection")) {
if (question_list.get(j).getANSWER() != null) { if (question_list.get(j).getANSWER() != null && !question_list.get(j).getANSWER().isEmpty()) {
final ArrayList<KeyPairBoolData> finalSelectedSamplingData = getKeyPairBoolData(j); final ArrayList<KeyPairBoolData> finalSelectedSamplingData = getKeyPairBoolData(j);
question_list.get(j).setSelectedSamplingData(finalSelectedSamplingData); question_list.get(j).setSelectedSamplingData(finalSelectedSamplingData);
} }
@@ -277,13 +278,10 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
hashMapAnsListChildData.put(question_list.get(j), answerList); // Header, Child data hashMapAnsListChildData.put(question_list.get(j), answerList); // Header, Child data
} }
} }
listDataChild.put(listDataHeader.get(i), question_list); listDataChild.put(listDataHeader.get(i), question_list);
} }
adapter = new ExpandableListAdapter(context, listDataHeader, listDataChild); adapter = new ExpandableListAdapter(context, listDataHeader, listDataChild);
expandableListView.setAdapter(adapter); expandableListView.setAdapter(adapter);
expandableListView.setAdapter(adapter);
for (int i = 0; i < adapter.getGroupCount(); i++) { for (int i = 0; i < adapter.getGroupCount(); i++) {
expandableListView.expandGroup(i); expandableListView.expandGroup(i);
} }
@@ -304,7 +302,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
fab.show();//setVisibility(View.VISIBLE); fab.show();//setVisibility(View.VISIBLE);
} }
} }
@Override @Override
public void onScrollStateChanged(AbsListView arg0, int arg1) { public void onScrollStateChanged(AbsListView arg0, int arg1) {
InputMethodManager inputManager = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE); InputMethodManager inputManager = (InputMethodManager) getApplicationContext().getSystemService(Context.INPUT_METHOD_SERVICE);
@@ -312,7 +309,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
getCurrentFocus().clearFocus(); getCurrentFocus().clearFocus();
} }
expandableListView.invalidateViews(); expandableListView.invalidateViews();
} }
}); });
@@ -321,13 +317,14 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
fab.setOnClickListener(view -> { fab.setOnClickListener(view -> {
expandableListView.clearFocus(); expandableListView.clearFocus();
expandableListView.invalidateViews(); expandableListView.invalidateViews();
baProfileGetterSetter.setLandmark(edt_landmark.getText().toString().trim().replaceAll("[(!@#$%^&*?)\"]", "")); baProfileGetterSetter.setLandmark(edt_landmark.getText().toString().trim().replaceAll("[(!@#$%^&*'?)\"]", ""));
baProfileGetterSetter.setLocation(edt_location.getText().toString().trim().replaceAll("[(!@#$%^&*?)\"]", "")); baProfileGetterSetter.setLocation(edt_location.getText().toString().trim().replaceAll("[(!@#$%^&'*?)\"]", ""));
baProfileGetterSetter.setAddress(edt_address.getText().toString().trim().replaceAll("[(!@#$%^&*?)\"]", "")); baProfileGetterSetter.setAddress(edt_address.getText().toString().trim().replaceAll("[(!@#$%^&*'?)\"]", ""));
baProfileGetterSetter.setDob(storeProfile_dob.getText().toString()); baProfileGetterSetter.setDob(storeProfile_dob.getText().toString());
baProfileGetterSetter.setMobile(edt_mobile_no.getText().toString().trim()); baProfileGetterSetter.setMobile(edt_mobile_no.getText().toString().trim());
baProfileGetterSetter.setEmail(edt_email.getText().toString().trim()); baProfileGetterSetter.setEmail(edt_email.getText().toString().trim());
baProfileGetterSetter.setInstragramAddress(edt_enstagram_address.getText().toString()); baProfileGetterSetter.setInstragramAddress(edt_enstagram_address.getText().toString());
baProfileGetterSetter.setProfilePic(img_str != null && !img_str.isEmpty() ? img_str : baProfileListData.get(0).getProfilePic());
if (validateimg_str()) { if (validateimg_str()) {
if (validateData(listDataHeader, listDataChild)) { if (validateData(listDataHeader, listDataChild)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam); AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam);
@@ -375,6 +372,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
h1.setSelected(question_list.get(j).getANSWER().contains(childListData.get(k).getANSWER())); h1.setSelected(question_list.get(j).getANSWER().contains(childListData.get(k).getANSWER()));
finalSelectedSamplingData.add(h1); finalSelectedSamplingData.add(h1);
} }
return finalSelectedSamplingData; return finalSelectedSamplingData;
} }
@@ -396,6 +394,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@SuppressLint("MissingSuperCall")
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (backpress_flag) { if (backpress_flag) {
@@ -530,7 +529,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
finalHolder.edt_for_others.setText(""); finalHolder.edt_for_others.setText("");
finalHolder.edt_for_others.setVisibility(View.GONE); finalHolder.edt_for_others.setVisibility(View.GONE);
finalHolder.edt_for_others.setId(childPosition); finalHolder.edt_for_others.setId(childPosition);
} }
} else { } else {
finalHolder.data.setANSWER_ID("0"); finalHolder.data.setANSWER_ID("0");
@@ -553,12 +551,10 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
} }
}); });
List<KeyPairBoolData> listArray0 = new ArrayList<>(); List<KeyPairBoolData> listArray0 = new ArrayList<>();
if (!checkList.getSelectedSamplingData().isEmpty()) { if (!checkList.getSelectedSamplingData().isEmpty()) {
selectedSamplingData.clear(); selectedSamplingData.clear();
listArray0.addAll(checkList.getSelectedSamplingData()); listArray0.addAll(checkList.getSelectedSamplingData());
holder.tv_mer.setVisibility(View.GONE);
} else { } else {
for (int i = 0; i < ans_list.size(); i++) { for (int i = 0; i < ans_list.size(); i++) {
KeyPairBoolData h = new KeyPairBoolData(); KeyPairBoolData h = new KeyPairBoolData();
@@ -568,8 +564,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
h.setMerCd(merCd); h.setMerCd(merCd);
h.setSelected(false); h.setSelected(false);
listArray0.add(h); listArray0.add(h);
holder.tv_mer.setVisibility(View.GONE);
} }
} }
@@ -596,25 +590,17 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
} }
if (!finalSelectedSamplingData.isEmpty()) { if (!finalSelectedSamplingData.isEmpty()) {
boolean selectedData = false;
for (int i = 0; i < finalSelectedSamplingData.size(); i++) { for (int i = 0; i < finalSelectedSamplingData.size(); i++) {
if (finalSelectedSamplingData.get(i).isSelected()) { if (finalSelectedSamplingData.get(i).isSelected()) {
selectedData = true;
break; break;
} }
} }
finalHolder2.tv_mer.setVisibility(View.GONE);
finalHolder2.tv_mer.setId(childPosition);
} else {
finalHolder2.tv_mer.setVisibility(View.GONE);
finalHolder2.tv_mer.setId(childPosition);
} }
checkList.setSelectedSamplingData(finalSelectedSamplingData); checkList.setSelectedSamplingData(finalSelectedSamplingData);
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
} }
multitouch = false;
}); });
holder.img_cam.setOnClickListener(v -> { holder.img_cam.setOnClickListener(v -> {
pathforcheck = counterId + "_ba_AuditPic_" + visitdate.replace("/", "") + CommonFunctions.getCurrentTimeHHMMSS().replace(":", "") + ".jpg"; pathforcheck = counterId + "_ba_AuditPic_" + visitdate.replace("/", "") + CommonFunctions.getCurrentTimeHHMMSS().replace(":", "") + ".jpg";
_path = CommonString.getImagesFolder(context) + pathforcheck; _path = CommonString.getImagesFolder(context) + pathforcheck;
@@ -630,8 +616,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
} }
}); });
holder.edt_for_others.setOnFocusChangeListener((v, hasFocus) -> { holder.edt_for_others.setOnFocusChangeListener((v, hasFocus) -> {
if (!hasFocus) { if (!hasFocus) {
finalHolder1.data.setSpin_others_for_edt(CommonFunctions.removed_special_char((EditText) v)); finalHolder1.data.setSpin_others_for_edt(CommonFunctions.removed_special_char((EditText) v));
@@ -647,14 +631,9 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
} }
} }
} }
holder.edt_for_others.setText(holder.data.getSpin_others_for_edt()); holder.edt_for_others.setText(holder.data.getSpin_others_for_edt());
holder.edt_for_others.setId(childPosition); holder.edt_for_others.setId(childPosition);
} else if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Number") || holder.data.getANSWER_TYPE().equalsIgnoreCase("Decimal") || holder.data.getANSWER_TYPE().equalsIgnoreCase("Text")) { } else if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Number") || holder.data.getANSWER_TYPE().equalsIgnoreCase("Decimal") || holder.data.getANSWER_TYPE().equalsIgnoreCase("Text")) {
holder.edt_answer.setText(holder.data.getANSWER()); holder.edt_answer.setText(holder.data.getANSWER());
holder.edt_answer.setId(childPosition); holder.edt_answer.setId(childPosition);
} }
@@ -760,13 +739,11 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
CardView card_view; CardView card_view;
public final RelativeLayout relay_multisppener; public final RelativeLayout relay_multisppener;
BaProfileMultiSelection searchSpinner; BaProfileMultiSelection searchSpinner;
public final TextView tv_mer;
AuditDataGetterSetter data; AuditDataGetterSetter data;
public ViewHolder(View view) { public ViewHolder(View view) {
super(view); super(view);
mView = view; mView = view;
tv_mer = (TextView) view.findViewById(R.id.tv_mer);
txt_question = (TextView) view.findViewById(R.id.txt_question); txt_question = (TextView) view.findViewById(R.id.txt_question);
sp_auditAnswer = (Spinner) view.findViewById(R.id.sp_auditAnswer); sp_auditAnswer = (Spinner) view.findViewById(R.id.sp_auditAnswer);
card_view = (CardView) view.findViewById(R.id.card_view); card_view = (CardView) view.findViewById(R.id.card_view);
@@ -893,7 +870,6 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
} catch (OutOfMemoryError ex) { } catch (OutOfMemoryError ex) {
CommonFunctions.setScaledImage(round_img_pic, CommonString.getImagesFolder(context) + pathforcheck); CommonFunctions.setScaledImage(round_img_pic, CommonString.getImagesFolder(context) + pathforcheck);
} }
round_img_pic.setVisibility(View.VISIBLE); round_img_pic.setVisibility(View.VISIBLE);
img_str = pathforcheck; img_str = pathforcheck;
baProfileGetterSetter.setProfilePic(img_str); baProfileGetterSetter.setProfilePic(img_str);
@@ -901,6 +877,7 @@ public class BAProfileActivity extends AppCompatActivity implements View.OnClick
pathforcheck = ""; pathforcheck = "";
} }
} }
break; break;
} }
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
@@ -197,6 +197,7 @@ public class BASurveyActivity extends AppCompatActivity {
expandableListView.clearFocus(); expandableListView.clearFocus();
if (validateData(listDataHeader, listDataChild)) { if (validateData(listDataHeader, listDataChild)) {
if (CommonFunctions.checkNetIsAvailable(context)) { if (CommonFunctions.checkNetIsAvailable(context)) {
AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam).setMessage(R.string.ba_survey_save_data_msg) AlertDialog.Builder builder = new AlertDialog.Builder(context).setTitle(R.string.parinaam).setMessage(R.string.ba_survey_save_data_msg)
.setCancelable(false) .setCancelable(false)
.setPositiveButton(R.string.yes, (dialog, id) -> { .setPositiveButton(R.string.yes, (dialog, id) -> {
@@ -428,7 +429,6 @@ public class BASurveyActivity extends AppCompatActivity {
@SuppressLint({"NewApi", "InflateParams"}) @SuppressLint({"NewApi", "InflateParams"})
@Override @Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
BASurveyGetterSetter checkList = (BASurveyGetterSetter) getChild(groupPosition, childPosition); BASurveyGetterSetter checkList = (BASurveyGetterSetter) getChild(groupPosition, childPosition);
ViewHolder holder = null; ViewHolder holder = null;
if (convertView == null) { if (convertView == null) {
@@ -4,11 +4,13 @@ import android.Manifest;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentSender; import android.content.IntentSender;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.ColorDrawable;
import android.location.LocationManager; import android.location.LocationManager;
import com.google.android.gms.common.api.ResolvableApiException; import com.google.android.gms.common.api.ResolvableApiException;
@@ -24,12 +26,17 @@ import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import androidx.appcompat.widget.Toolbar; import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import android.util.Log; import android.util.Log;
import android.view.Gravity;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast; import android.widget.Toast;
import com.google.android.gms.location.LocationServices; import com.google.android.gms.location.LocationServices;
@@ -174,6 +181,7 @@ public class CounterImageActivity extends AppCompatActivity implements
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@SuppressLint("MissingSuperCall")
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (click_flag) { if (click_flag) {
@@ -193,7 +201,6 @@ public class CounterImageActivity extends AppCompatActivity implements
@SuppressLint("NonConstantResourceId") @SuppressLint("NonConstantResourceId")
@Override @Override
public void onClick(View view) { public void onClick(View view) {
if (view.getId() == R.id.counter_img_one) { if (view.getId() == R.id.counter_img_one) {
if (!update_flag) { if (!update_flag) {
click_flag = false; click_flag = false;
@@ -341,11 +348,9 @@ public class CounterImageActivity extends AppCompatActivity implements
if (_pathforcheck.contains("_presetup_counter_img_one_")) { if (_pathforcheck.contains("_presetup_counter_img_one_")) {
presetup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); presetup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd));
counterimg_object.setPresetup_img_one_str(_pathforcheck); counterimg_object.setPresetup_img_one_str(_pathforcheck);
} else if (_pathforcheck.contains("_presetup_counter_img_two_")) { } else if (_pathforcheck.contains("_presetup_counter_img_two_")) {
presetup_img_two.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); presetup_img_two.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd));
counterimg_object.setPresetup_img_two_str(_pathforcheck); counterimg_object.setPresetup_img_two_str(_pathforcheck);
} else if (_pathforcheck.contains("_postsetup_counter_img_one_")) { } else if (_pathforcheck.contains("_postsetup_counter_img_one_")) {
post_setup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); post_setup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd));
counterimg_object.setPostsetup_img_one_str(_pathforcheck); counterimg_object.setPostsetup_img_one_str(_pathforcheck);
@@ -376,24 +381,24 @@ public class CounterImageActivity extends AppCompatActivity implements
@SuppressLint("UseCompatLoadingForDrawables") @SuppressLint("UseCompatLoadingForDrawables")
private void validate_ui() { private void validate_ui() {
if (!counterimg_object.getPresetup_img_one_str().isEmpty()) { if (!counterimg_object.getPresetup_img_one_str().isEmpty()) {
presetup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); presetup_img_one.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
if (!counterimg_object.getPresetup_img_two_str().isEmpty()) { if (!counterimg_object.getPresetup_img_two_str().isEmpty()) {
presetup_img_two.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); presetup_img_two.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
if (!counterimg_object.getPostsetup_img_one_str().isEmpty()) { if (!counterimg_object.getPostsetup_img_one_str().isEmpty()) {
post_setup_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); post_setup_img_one.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
if (!counterimg_object.getPostsetup_img_two_str().isEmpty()) { if (!counterimg_object.getPostsetup_img_two_str().isEmpty()) {
post_setup_img_two.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); post_setup_img_two.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
if (!counterimg_object.getCounter_img_onefor_ba().isEmpty()) { if (!counterimg_object.getCounter_img_onefor_ba().isEmpty()) {
counter_img_one.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); counter_img_one.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
if (!counterimg_object.getCounter_img_two_for_ba().isEmpty()) { if (!counterimg_object.getCounter_img_two_for_ba().isEmpty()) {
counter_img_two.setImageDrawable(getResources().getDrawable(R.mipmap.camera_bsd)); counter_img_two.setImageDrawable(ContextCompat.getDrawable(context, R.mipmap.camera_bsd));
} }
} }
@@ -423,27 +428,39 @@ public class CounterImageActivity extends AppCompatActivity implements
} }
public void showAlertProfile(final Context context) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
final Dialog dialogcounter = new Dialog(context);
Objects.requireNonNull(dialogcounter.getWindow()).setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialogcounter.setContentView(R.layout.dialog_alert_profile);
Window window = dialogcounter.getWindow();
WindowManager.LayoutParams wlp = window.getAttributes();
wlp.gravity = Gravity.CENTER;
window.setAttributes(wlp);
dialogcounter.setCancelable(false);
dialogcounter.setCanceledOnTouchOutside(false);
RelativeLayout rl_dialog = dialogcounter.findViewById(R.id.rl_dialog);
rl_dialog.setOnClickListener(view -> {
startActivity(new Intent(context, BAProfileActivity.class));
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
dialogcounter.dismiss();
});
dialogcounter.show();
}
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
db.open();
checkgpsEnableDevice(); checkgpsEnableDevice();
createLocationRequest(); if (!db.isBaProfileFilled(counter_id, username, user_type)) {
} showAlertProfile(context);
} else if (db.getSaveServerData(null, username).isEmpty()) {
@SuppressLint("VisibleForTests") showAlertProfile(context);
protected void createLocationRequest() { }
LocationRequest mLocationRequest = new LocationRequest();
// Location updates intervals in sec
// 5 sec
int UPDATE_INTERVAL = 5000;
mLocationRequest.setInterval(UPDATE_INTERVAL);
// 1 sec
int FATEST_INTERVAL = 1000;
mLocationRequest.setFastestInterval(FATEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// 10 meters
int DISPLACEMENT = 5;
mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
} }
private void checkgpsEnableDevice() { private void checkgpsEnableDevice() {
@@ -493,8 +510,6 @@ public class CounterImageActivity extends AppCompatActivity implements
if (mgr == null) if (mgr == null)
return false; return false;
final List<String> providers = mgr.getAllProviders(); final List<String> providers = mgr.getAllProviders();
if (providers == null)
return false;
return providers.contains(LocationManager.GPS_PROVIDER); return providers.contains(LocationManager.GPS_PROVIDER);
} }
} }
@@ -97,21 +97,22 @@ import retrofit2.converter.gson.GsonConverterFactory;
public class StoreImageActivity extends AppCompatActivity implements View.OnClickListener { public class StoreImageActivity extends AppCompatActivity implements View.OnClickListener {
private static final int PERMISSION_ALL = 99; private static final int PERMISSION_ALL = 99;
Button btn_save; private Button btn_save;
ImageView img_cam, img_clicked; private ImageView img_cam, img_clicked;
String _pathforcheck, _path, str, img_str, selfie_imge, visit_date, username, counter_id, userType; private String _pathforcheck, _path, str, img_str, selfie_imge, visit_date, username, counter_id, userType;
private Lorealba_Database db; private Lorealba_Database db;
Runnable run; private Runnable run;
Toolbar toolbar; private Toolbar toolbar;
ProgressDialog loading; private ProgressDialog loading;
private Retrofit adapter; private Retrofit adapter;
private Integer versionCode, mid=0, bid=0, storeId=0; private Integer versionCode, mid = 0, bid = 0, storeId = 0;
private double lat = 0.0; private double lat = 0.0;
private double lon = 0.0; private double lon = 0.0;
private static final int REQUEST_LOCATION = 1;
boolean clickFlag = false, success_geoTag = true; boolean clickFlag = false, success_geoTag = true;
private static final int REQUEST_LOCATION = 1;
private FusedLocationProviderClient fusedLocationClient = null; private FusedLocationProviderClient fusedLocationClient = null;
private LocationCallback locationCallback = null; private LocationCallback locationCallback = null;
private SharedPreferences.Editor editor = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -120,6 +121,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic
db = new Lorealba_Database(this); db = new Lorealba_Database(this);
db.open(); db.open();
SharedPreferences preferences = PrefHelper.getPrefs(this); SharedPreferences preferences = PrefHelper.getPrefs(this);
editor = preferences.edit();
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
img_cam = (ImageView) findViewById(R.id.img_selfie); img_cam = (ImageView) findViewById(R.id.img_selfie);
@@ -295,6 +297,7 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic
return bitmap; return bitmap;
} }
@SuppressLint("MissingSuperCall")
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (clickFlag) { if (clickFlag) {
@@ -636,13 +639,19 @@ public class StoreImageActivity extends AppCompatActivity implements View.OnClic
} else if (!data.contains("No Data")) { } else if (!data.contains("No Data")) {
JCPGetterSetter jcpObject; JCPGetterSetter jcpObject;
jcpObject = new Gson().fromJson(data, JCPGetterSetter.class); jcpObject = new Gson().fromJson(data, JCPGetterSetter.class);
if (jcpObject != null && !db.insertJCPData(jcpObject)) { db.open();
AlertandMessages.showAlert((Activity) context, "Mapping_JCP data not saved.", true); if (jcpObject != null && db.insertJCPData(jcpObject)) {
} else {
/// checking GeoFencing /// checking GeoFencing
getLastLocation(); getLastLocation();
checkingGeoFencing(getMid()); checkingGeoFencing(getMid());
AlertandMessages.showToastMsg(context, "Journey Plan Download Successfully."); 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")) {
editor.putBoolean(CommonString.KEY_IS_CHECKOUT_DONE + username + visit_date, true);
editor.apply();
}
} else {
AlertandMessages.showToastMsg(context, "JCP data not saved");
} }
} else { } else {
AlertandMessages.showAlert((Activity) context, "No Journey Plan", true); AlertandMessages.showAlert((Activity) context, "No Journey Plan", true);
@@ -34,12 +34,16 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat; import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.cpm.lorealbaautomation.constant.CommonFunctions;
import com.cpm.lorealbaautomation.gsonGetterSetter.JourneyPlan;
import com.google.android.gms.common.api.ResolvableApiException; import com.google.android.gms.common.api.ResolvableApiException;
import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices; import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest; import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.SettingsClient; import com.google.android.gms.location.SettingsClient;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar; import com.google.android.material.snackbar.Snackbar;
import com.google.firebase.analytics.FirebaseAnalytics; import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.google.firebase.crashlytics.FirebaseCrashlytics;
@@ -80,35 +84,23 @@ import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory; import retrofit2.converter.gson.GsonConverterFactory;
public class TabLoginActivity extends AppCompatActivity implements View.OnClickListener { public class TabLoginActivity extends AppCompatActivity implements View.OnClickListener {
private String counterId = ""; private String counterId = "", str_updated_date = "0", visitdate = "", tag_from = "", userId, passwordData, app_ver, manufacturer, model, os_version;
private String str_updated_date = "0";
private String visitdate = "";
private Spinner sp_sppiner; private Spinner sp_sppiner;
private EditText password; private EditText password;
private Button btncontinue; private Button btncontinue;
private String tag_from = "";
private Context context; private Context context;
private SharedPreferences preferences; private SharedPreferences preferences;
Lorealba_Database db; private Lorealba_Database db;
ArrayList<BaListGetterSetter> bsListData = new ArrayList<>(); ArrayList<BaListGetterSetter> bsListData = new ArrayList<>();
String userId;
String passwordData;
LoginGetterSetter loginGetterSetter; LoginGetterSetter loginGetterSetter;
private int versionCode; private int versionCode;
ProgressDialog loading; ProgressDialog loading;
private String[] imeiNumbers; private String[] imeiNumbers;
private SharedPreferences.Editor editor = null; private SharedPreferences.Editor editor = null;
private double lat = 0.0; private double lat = 0.0, lon = 0.0;
private double lon = 0.0;
private static final int REQUEST_LOCATION = 1; private static final int REQUEST_LOCATION = 1;
private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000;
private LocationRequest mLocationRequest;
private ImeiNumberClass imei; private ImeiNumberClass imei;
private String app_ver;
private String manufacturer;
private String model;
private String os_version;
ArrayList<LoginGetterSetter> allLoginListData = new ArrayList<>(); ArrayList<LoginGetterSetter> allLoginListData = new ArrayList<>();
TextView forgot_password, versioncode_txt; TextView forgot_password, versioncode_txt;
private FirebaseAnalytics mFirebaseAnalytics; private FirebaseAnalytics mFirebaseAnalytics;
@@ -125,52 +117,50 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
getViewId(); getViewId();
setSppinerData(); setSppinerData();
checkAndRequestPermissions(); checkAndRequestPermissions();
createLocationRequest();
getLastLocation(); getLastLocation();
/* To restrict Space Bar in Keyboard */ /* To restrict Space Bar in Keyboard */
InputFilter filter = new InputFilter() { InputFilter filter = (source, start, end, dest, dstart, dend) -> {
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { for (int i = start; i < end; i++) {
for (int i = start; i < end; i++) { if (Character.isWhitespace(source.charAt(i))) {
if (Character.isWhitespace(source.charAt(i))) { return "";
return "";
}
} }
return null;
} }
return null;
}; };
password.setFilters(new InputFilter[]{filter}); password.setFilters(new InputFilter[]{filter});
showAlertForLogoutUser(false);
}
private void showAlertForLogoutUser(boolean clicked) {
if (userId != null && !userId.isEmpty()) {
JourneyPlan jcp = db.getBIDfromJCP(userId, counterId);
if ((jcp != null && jcp.getCheckout() != null && jcp.getCheckout().equals("Y")) || preferences.getBoolean(CommonString.KEY_IS_CHECKOUT_DONE + userId + visitdate, false)) {
new MaterialAlertDialogBuilder(this, R.style.MyMaterialAlertDialog)
.setTitle("Alert")
.setMessage("You have already checked-out in Store/Counter.You can't login again for today.").setCancelable(false)
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
dialog.dismiss();
finishAffinity();
}).show();
} else if (clicked) {
attemptLogin();
}
}
} }
@Override @Override
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
checkgpsEnableDevice(); checkgpsEnableDevice();
createLocationRequest();
imeiNumbers = imei.getDeviceImei(); imeiNumbers = imei.getDeviceImei();
getDeviceName(); getDeviceName();
} }
@SuppressLint("VisibleForTests")
protected void createLocationRequest() {
LocationRequest mLocationRequest = new LocationRequest();
// Location updates intervals in sec
// 5 sec
int UPDATE_INTERVAL = 5000;
mLocationRequest.setInterval(UPDATE_INTERVAL);
// 1 sec
int FATEST_INTERVAL = 1000;
mLocationRequest.setFastestInterval(FATEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
// 10 meters
int DISPLACEMENT = 5;
mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
}
private void checkgpsEnableDevice() { private void checkgpsEnableDevice() {
if (!hasGPSDevice(context)) { if (!hasGPSDevice(context)) {
Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show(); Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show();
} }
final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) { if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) {
enableLocationSettings(); enableLocationSettings();
@@ -189,9 +179,7 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder() LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
.addLocationRequest(locationRequest) .addLocationRequest(locationRequest)
.setAlwaysShow(true); // show dialog if GPS is off .setAlwaysShow(true); // show dialog if GPS is off
SettingsClient settingsClient = LocationServices.getSettingsClient(this); SettingsClient settingsClient = LocationServices.getSettingsClient(this);
settingsClient.checkLocationSettings(builder.build()) settingsClient.checkLocationSettings(builder.build())
.addOnSuccessListener(locationSettingsResponse -> { .addOnSuccessListener(locationSettingsResponse -> {
// All location settings are satisfied. You can request location updates here. // All location settings are satisfied. You can request location updates here.
@@ -213,8 +201,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
if (mgr == null) if (mgr == null)
return false; return false;
final List<String> providers = mgr.getAllProviders(); final List<String> providers = mgr.getAllProviders();
if (providers == null)
return false;
return providers.contains(LocationManager.GPS_PROVIDER); return providers.contains(LocationManager.GPS_PROVIDER);
} }
@@ -224,7 +210,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
db = new Lorealba_Database(context); db = new Lorealba_Database(context);
db.open(); db.open();
preferences = PrefHelper.getPrefs(this); preferences = PrefHelper.getPrefs(this);
// preferences = PrefHelper.getPrefs(this);
editor = preferences.edit(); editor = preferences.edit();
sp_sppiner = (Spinner) findViewById(R.id.sp_sppiner); sp_sppiner = (Spinner) findViewById(R.id.sp_sppiner);
password = (EditText) findViewById(R.id.password); password = (EditText) findViewById(R.id.password);
@@ -233,7 +218,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
TextView counter_name = (TextView) findViewById(R.id.counter_name); TextView counter_name = (TextView) findViewById(R.id.counter_name);
forgot_password = (TextView) findViewById(R.id.forgot_password); forgot_password = (TextView) findViewById(R.id.forgot_password);
versioncode_txt = (TextView) findViewById(R.id.versioncode_txt); versioncode_txt = (TextView) findViewById(R.id.versioncode_txt);
String tag_mode = ""; String tag_mode = "";
if (getIntent().getSerializableExtra(CommonString.TAG_FROM) != null && getIntent().getSerializableExtra(CommonString.TAG_MODE) != null) { if (getIntent().getSerializableExtra(CommonString.TAG_FROM) != null && getIntent().getSerializableExtra(CommonString.TAG_MODE) != null) {
tag_from = getIntent().getStringExtra(CommonString.TAG_FROM); tag_from = getIntent().getStringExtra(CommonString.TAG_FROM);
@@ -256,7 +240,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.fillInStackTrace(); e.fillInStackTrace();
} }
user_type_login.setText(tag_mode); user_type_login.setText(tag_mode);
counterId = preferences.getString(CommonString.KEY_COUNTER_ID, ""); counterId = preferences.getString(CommonString.KEY_COUNTER_ID, "");
String counterCode = preferences.getString(CommonString.KEY_COUNTER_CODE, ""); String counterCode = preferences.getString(CommonString.KEY_COUNTER_CODE, "");
@@ -266,14 +249,15 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
db.open(); db.open();
bsListData = db.getBAListData(tag_from, counterId); bsListData = db.getBAListData(tag_from, counterId);
btncontinue.setOnClickListener(v -> { btncontinue.setOnClickListener(v -> {
if (checkNetIsAvailable()) { if (CommonFunctions.checkNetIsAvailable(context)) {
if (validation()) { if (validation()) {
attemptLogin(); showAlertForLogoutUser(true);
} }
} else { } else {
AlertandMessages.showAlert((Activity) context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE, false); AlertandMessages.showAlert((Activity) context, CommonString.MESSAGE_INTERNET_NOT_AVALABLE, false);
} }
}); });
forgot_password.setOnClickListener(this); forgot_password.setOnClickListener(this);
try { try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0); PackageInfo pInfo = context.getPackageManager().getPackageInfo(getPackageName(), 0);
@@ -291,7 +275,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
for (int i = 0; i < bsListData.size(); i++) { for (int i = 0; i < bsListData.size(); i++) {
store_visited_adapter.add(bsListData.get(i).getUserName()); store_visited_adapter.add(bsListData.get(i).getUserName());
} }
store_visited_adapter.setDropDownViewResource(R.layout.spinner_custom_item); store_visited_adapter.setDropDownViewResource(R.layout.spinner_custom_item);
sp_sppiner.setAdapter(store_visited_adapter); sp_sppiner.setAdapter(store_visited_adapter);
sp_sppiner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { sp_sppiner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@@ -307,7 +290,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
db.updateVisitDateLoginData(userId, visitdate); db.updateVisitDateLoginData(userId, visitdate);
str_updated_date = "1"; str_updated_date = "1";
} }
db.open(); db.open();
allLoginListData = db.getlistAllUserIdData(visitdate, userId, false); allLoginListData = db.getlistAllUserIdData(visitdate, userId, false);
if (!allLoginListData.isEmpty()) { if (!allLoginListData.isEmpty()) {
@@ -337,14 +319,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
private void attemptLogin() { private void attemptLogin() {
passwordData = password.getText().toString().trim(); passwordData = password.getText().toString().trim();
AttempLogin(); AttempLogin();
}
private boolean checkNetIsAvailable() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
} }
@@ -653,7 +627,6 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.READ_PHONE_STATE)); Integer.valueOf(PackageManager.PERMISSION_GRANTED).equals(perms.get(Manifest.permission.READ_PHONE_STATE));
if (allPermissionsGranted) { if (allPermissionsGranted) {
//test("Permissions", "All required permissions granted"); //test("Permissions", "All required permissions granted");
createLocationRequest();
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this); fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
getLastLocation(); getLastLocation();
getDeviceName(); getDeviceName();
@@ -686,13 +659,15 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
} }
} }
} }
@Override
protected void onDestroy () { @Override
super.onDestroy(); protected void onDestroy() {
if (loading != null && loading.isShowing()) { super.onDestroy();
loading.dismiss(); if (loading != null && loading.isShowing()) {
} loading.dismiss();
} }
}
private void getLastLocation() { private void getLastLocation() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
@@ -705,15 +680,13 @@ public class TabLoginActivity extends AppCompatActivity implements View.OnClick
if (location != null) { if (location != null) {
lat = location.getLatitude(); lat = location.getLatitude();
lon = location.getLongitude(); lon = location.getLongitude();
//test("Location", "Lat: " + lat + ", Lng: " + lon);
} }
}); });
} catch (Exception e) { } catch (Exception e) {
e.fillInStackTrace(); e.fillInStackTrace();
//test("Location", "Lat: " + lat + ", Lng: " + lon);
} }
} }
} }
@@ -46,7 +46,7 @@ public class DownloadActivity extends AppCompatActivity {
setSupportActionBar(toolbar); setSupportActionBar(toolbar);
context = this; context = this;
db = new Lorealba_Database(context); db = new Lorealba_Database(context);
preferences = PrefHelper.getPrefs(context); preferences = PrefHelper.getPrefs(context);
editor = preferences.edit(); editor = preferences.edit();
userId = preferences.getString(CommonString.KEY_USERNAME, ""); userId = preferences.getString(CommonString.KEY_USERNAME, "");
@@ -169,16 +169,10 @@ public class DownloadActivity extends AppCompatActivity {
keysList.add("Report_SalesDateWiseME"); keysList.add("Report_SalesDateWiseME");
keysList.add("Report_SalesL3MValueME"); keysList.add("Report_SalesL3MValueME");
keysList.add("Report_MTD_WorkingCounterME"); keysList.add("Report_MTD_WorkingCounterME");
//keysList.add("Report_ME_Sale");
///new reports added 25/5/024
keysList.add("AppDashboard_TVA"); keysList.add("AppDashboard_TVA");
keysList.add("AppDashboard_TVADrillDown"); keysList.add("AppDashboard_TVADrillDown");
keysList.add("AppDashboard_LeaderBoard"); keysList.add("AppDashboard_LeaderBoard");
keysList.add("AppDashboard_Incentive"); keysList.add("AppDashboard_Incentive");
/* All reports replaced by new reports
keysList.add("AppDashboard_L3MOffTake_Counter");
keysList.add("AppDashboard_L3MOffTake_Nuance");
keysList.add("AppDashboard_L3MOffTake_SubAxe");*/
keysList.add("ReportDaily_TVA"); keysList.add("ReportDaily_TVA");
keysList.add("Report_SalesGrowth_Counter"); keysList.add("Report_SalesGrowth_Counter");
keysList.add("Report_SalesGrowth_CounterDetail"); keysList.add("Report_SalesGrowth_CounterDetail");
@@ -198,6 +192,7 @@ public class DownloadActivity extends AppCompatActivity {
keysList.add("Master_HolidayList"); keysList.add("Master_HolidayList");
keysList.add("T_LeaveLedgerSummary"); keysList.add("T_LeaveLedgerSummary");
keysList.add("Mapping_AppRestrictedKPI"); keysList.add("Mapping_AppRestrictedKPI");
keysList.add("Master_CheckoutQuestion");
keysList.add("Product_Master"); keysList.add("Product_Master");
} }
@@ -3,7 +3,9 @@ package com.cpm.lorealbaautomation.download;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.JobIntentService; import androidx.core.app.JobIntentService;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
@@ -86,7 +88,7 @@ public class Downloader extends JobIntentService {
@Override @Override
public void onHandleWork(Intent intent) { public void onHandleWork(Intent intent) {
context = getApplicationContext(); context = getApplicationContext();
preferences = PrefHelper.getPrefs(context); preferences = PrefHelper.getPrefs(context);
editor = preferences.edit(); editor = preferences.edit();
counter_id = preferences.getString(CommonString.KEY_COUNTER_ID, ""); counter_id = preferences.getString(CommonString.KEY_COUNTER_ID, "");
visit_date = preferences.getString(CommonString.KEY_DATE, ""); visit_date = preferences.getString(CommonString.KEY_DATE, "");
@@ -104,7 +106,7 @@ public class Downloader extends JobIntentService {
///change jp ///change jp
groomedImagGetterSetter = (GroomingGetterSetter) intent.getSerializableExtra(CommonString.KEY_Groomed_Image); groomedImagGetterSetter = (GroomingGetterSetter) intent.getSerializableExtra(CommonString.KEY_Groomed_Image);
uploadimg_str = intent.getStringExtra(CommonString.KEY_UPLOADIMAGE); uploadimg_str = intent.getStringExtra(CommonString.KEY_UPLOADIMAGE);
ArrayList<JourneyPlan> jcp = db.getStoreData(visit_date, null,counter_id); ArrayList<JourneyPlan> jcp = db.getStoreData(visit_date, null, counter_id);
quizList = (ArrayList<MEMEAuditQuestion>) intent.getSerializableExtra(CommonString.KEY_ME_QUIZ); quizList = (ArrayList<MEMEAuditQuestion>) intent.getSerializableExtra(CommonString.KEY_ME_QUIZ);
masterRetailExcellenceArrayList = (ArrayList<MasterRetailExcellence>) intent.getSerializableExtra(CommonString.KEY_RETAIL_EXCELLENCE); masterRetailExcellenceArrayList = (ArrayList<MasterRetailExcellence>) intent.getSerializableExtra(CommonString.KEY_RETAIL_EXCELLENCE);
productMasterArrayList = (ArrayList<ProductMaster>) intent.getSerializableExtra(CommonString.ME_SALE); productMasterArrayList = (ArrayList<ProductMaster>) intent.getSerializableExtra(CommonString.ME_SALE);
@@ -119,16 +121,13 @@ public class Downloader extends JobIntentService {
////for upload quiz data me ////for upload quiz data me
quizList = db.getme_quiz_from_database(null, null, visit_date, counter_id, null); quizList = db.getme_quiz_from_database(null, null, visit_date, counter_id, null);
calculate_me_quiz_data(db.getBIDfromJCP(username, counter_id), quizList); calculate_me_quiz_data(db.getBIDfromJCP(username, counter_id), quizList);
} } else if (masterRetailExcellenceArrayList != null) {
else if(masterRetailExcellenceArrayList!=null){
masterRetailExcellenceArrayList = db.getRetailExcellencedata(null, null, visit_date, counter_id); masterRetailExcellenceArrayList = db.getRetailExcellencedata(null, null, visit_date, counter_id);
calculate_retail_excellence_data(db.getBIDfromJCP(username, counter_id), masterRetailExcellenceArrayList); calculate_retail_excellence_data(db.getBIDfromJCP(username, counter_id), masterRetailExcellenceArrayList);
} } else if (productMasterArrayList != null) {
else if(productMasterArrayList!=null){
productMasterArrayList = db.getMeSaledata(null, null, visit_date, counter_id); productMasterArrayList = db.getMeSaledata(null, null, visit_date, counter_id);
calculate_me_sale_data(db.getBIDfromJCP(username, counter_id), productMasterArrayList); calculate_me_sale_data(db.getBIDfromJCP(username, counter_id), productMasterArrayList);
} } else if (counterimg_object != null) {
else if (counterimg_object != null) {
UploadCounterProfile(); UploadCounterProfile();
} else if (baProfileImage != null) { } else if (baProfileImage != null) {
UploadBaProfile(); UploadBaProfile();
@@ -213,7 +212,7 @@ public class Downloader extends JobIntentService {
Call<JsonObject> call = api.getGeotag(jsonData); Call<JsonObject> call = api.getGeotag(jsonData);
call.enqueue(new Callback<JsonObject>() { call.enqueue(new Callback<JsonObject>() {
@Override @Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { public void onResponse(@NonNull Call<JsonObject> call, @NonNull Response<JsonObject> response) {
String responseBody = response.body().get("UploadJsonResult").toString(); String responseBody = response.body().get("UploadJsonResult").toString();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -236,8 +235,9 @@ public class Downloader extends JobIntentService {
} }
} }
} }
@Override @Override
public void onFailure(Call<JsonObject> call, Throwable t) { public void onFailure(@NonNull Call<JsonObject> call, @NonNull Throwable t) {
} }
}); });
@@ -253,26 +253,14 @@ public class Downloader extends JobIntentService {
JSONArray topUpArray = new JSONArray(); JSONArray topUpArray = new JSONArray();
JSONArray storeDetail = new JSONArray(); JSONArray storeDetail = new JSONArray();
if (baProfileImage != null) { if (baProfileImage != null) {
if (baProfile != null && baProfile.getBaProfileList().size() > 0) { if (baProfile != null && !baProfile.getBaProfileList().isEmpty()) {
for (int j = 0; j < baProfile.getBaProfileList().size(); j++) { for (int j = 0; j < baProfile.getBaProfileList().size(); j++) {
JSONObject obj = new JSONObject(); JSONObject obj = getJsonObject(j);
obj.put("Category_Id", baProfile.getBaProfileList().get(j).getCATEGORY_ID());
obj.put("Question_Id", baProfile.getBaProfileList().get(j).getQUESTION_ID());
obj.put("Question", baProfile.getBaProfileList().get(j).getQUESTION());
obj.put("Answer_type", baProfile.getBaProfileList().get(j).getANSWER_TYPE());
obj.put("Answer_Id", baProfile.getBaProfileList().get(j).getANSWER_ID());
obj.put("Answer", baProfile.getBaProfileList().get(j).getANSWER());
obj.put("OthersTextValue", baProfile.getBaProfileList().get(j).getSpin_others_for_edt());
obj.put("Visit_Date", visit_date);
obj.put("MID", mid);
obj.put("UserId", username);
obj.put("Counter_id", counter_id);
topUpArray.put(obj); topUpArray.put(obj);
} }
} }
if (baProfileImage.getProfilePic() != null && !baProfileImage.getProfilePic().equals("")) { if (baProfileImage != null && baProfileImage.getProfilePic() != null && !baProfileImage.getProfilePic().isEmpty()) {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("Address", baProfileImage.getAddress()); jsonObject.put("Address", baProfileImage.getAddress());
jsonObject.put("Dob", baProfileImage.getDob()); jsonObject.put("Dob", baProfileImage.getDob());
@@ -285,15 +273,13 @@ public class Downloader extends JobIntentService {
jsonObject.put("MID", mid); jsonObject.put("MID", mid);
jsonObject.put("UserId", username); jsonObject.put("UserId", username);
jsonObject.put("Counter_id", counter_id); jsonObject.put("Counter_id", counter_id);
if (baProfile != null && baProfile.getBaProfileList().size() > 0) { if (baProfile != null && !baProfile.getBaProfileList().isEmpty()) {
jsonObject.put("BA_PROFILE_DATA", topUpArray); jsonObject.put("BA_PROFILE_DATA", topUpArray);
} else { } else {
jsonObject.put("BA_PROFILE_DATA", ""); jsonObject.put("BA_PROFILE_DATA", "");
} }
storeDetail.put(jsonObject); storeDetail.put(jsonObject);
} }
JSONObject jsonFinalObject = new JSONObject(); JSONObject jsonFinalObject = new JSONObject();
jsonFinalObject.put("MID", mid); jsonFinalObject.put("MID", mid);
jsonFinalObject.put("Keys", "BaProfileData"); jsonFinalObject.put("Keys", "BaProfileData");
@@ -306,6 +292,23 @@ public class Downloader extends JobIntentService {
} }
} }
@NonNull
private JSONObject getJsonObject(int j) throws JSONException {
JSONObject obj = new JSONObject();
obj.put("Category_Id", baProfile.getBaProfileList().get(j).getCATEGORY_ID());
obj.put("Question_Id", baProfile.getBaProfileList().get(j).getQUESTION_ID());
obj.put("Question", baProfile.getBaProfileList().get(j).getQUESTION());
obj.put("Answer_type", baProfile.getBaProfileList().get(j).getANSWER_TYPE());
obj.put("Answer_Id", baProfile.getBaProfileList().get(j).getANSWER_ID());
obj.put("Answer", baProfile.getBaProfileList().get(j).getANSWER());
obj.put("OthersTextValue", baProfile.getBaProfileList().get(j).getSpin_others_for_edt());
obj.put("Visit_Date", visit_date);
obj.put("MID", mid);
obj.put("UserId", username);
obj.put("Counter_id", counter_id);
return obj;
}
private void UploadCounterProfile() { private void UploadCounterProfile() {
try { try {
JSONArray storeDetail = new JSONArray(); JSONArray storeDetail = new JSONArray();
@@ -377,7 +380,7 @@ public class Downloader extends JobIntentService {
Call<JsonObject> call = api.getGeotag(jsonData); Call<JsonObject> call = api.getGeotag(jsonData);
call.enqueue(new Callback<JsonObject>() { call.enqueue(new Callback<JsonObject>() {
@Override @Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { public void onResponse(@NonNull Call<JsonObject> call, @NonNull Response<JsonObject> response) {
String responseBody = response.body().get("UploadJsonResult").toString(); String responseBody = response.body().get("UploadJsonResult").toString();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -400,7 +403,7 @@ public class Downloader extends JobIntentService {
} }
@Override @Override
public void onFailure(Call<JsonObject> call, Throwable t) { public void onFailure(@NonNull Call<JsonObject> call, @NonNull Throwable t) {
} }
}); });
@@ -418,7 +421,6 @@ public class Downloader extends JobIntentService {
displayFormat = new SimpleDateFormat("HH:mm"); displayFormat = new SimpleDateFormat("HH:mm");
parseFormat = new SimpleDateFormat("hh:mm a"); parseFormat = new SimpleDateFormat("hh:mm a");
date = parseFormat.parse(str); date = parseFormat.parse(str);
//test(parseFormat.format(date) + " = " + displayFormat.format(date));
} catch (ParseException e) { } catch (ParseException e) {
e.fillInStackTrace(); e.fillInStackTrace();
} }
@@ -466,7 +468,7 @@ public class Downloader extends JobIntentService {
Call<JsonObject> call = api.getGeotag(jsonData); Call<JsonObject> call = api.getGeotag(jsonData);
call.enqueue(new Callback<JsonObject>() { call.enqueue(new Callback<JsonObject>() {
@Override @Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { public void onResponse(@NonNull Call<JsonObject> call, @NonNull Response<JsonObject> response) {
String responseBody = response.body().get("UploadJsonResult").toString(); String responseBody = response.body().get("UploadJsonResult").toString();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -489,7 +491,7 @@ public class Downloader extends JobIntentService {
} }
@Override @Override
public void onFailure(Call<JsonObject> call, Throwable t) { public void onFailure(@NonNull Call<JsonObject> call, @NonNull Throwable t) {
} }
}); });
@@ -533,7 +535,7 @@ public class Downloader extends JobIntentService {
Call<JsonObject> call = api.getGeotag(jsonData); Call<JsonObject> call = api.getGeotag(jsonData);
call.enqueue(new Callback<JsonObject>() { call.enqueue(new Callback<JsonObject>() {
@Override @Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { public void onResponse(@NonNull Call<JsonObject> call, @NonNull Response<JsonObject> response) {
String responseBody = response.body().get("UploadJsonResult").toString(); String responseBody = response.body().get("UploadJsonResult").toString();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -554,7 +556,7 @@ public class Downloader extends JobIntentService {
} }
@Override @Override
public void onFailure(Call<JsonObject> call, Throwable t) { public void onFailure(@NonNull Call<JsonObject> call, @NonNull Throwable t) {
} }
}); });
@@ -603,7 +605,7 @@ public class Downloader extends JobIntentService {
Call<JsonObject> call = api.getGeotag(jsonData); Call<JsonObject> call = api.getGeotag(jsonData);
call.enqueue(new Callback<JsonObject>() { call.enqueue(new Callback<JsonObject>() {
@Override @Override
public void onResponse(Call<JsonObject> call, Response<JsonObject> response) { public void onResponse(@NonNull Call<JsonObject> call, @NonNull Response<JsonObject> response) {
String responseBody = response.body().get("UploadJsonResult").toString(); String responseBody = response.body().get("UploadJsonResult").toString();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -628,7 +630,7 @@ public class Downloader extends JobIntentService {
} }
@Override @Override
public void onFailure(Call<JsonObject> call, Throwable t) { public void onFailure(@NonNull Call<JsonObject> call, @NonNull Throwable t) {
} }
}); });
@@ -701,6 +703,8 @@ public class Downloader extends JobIntentService {
foldername = "CompetitionOffersImages"; foldername = "CompetitionOffersImages";
} else if (finalList.get(i).contains("_GeoTag-")) { } else if (finalList.get(i).contains("_GeoTag-")) {
foldername = "GeoTagImages"; foldername = "GeoTagImages";
} else if (finalList.get(i).contains("-Checkout_Selfie_img_") || finalList.get(i).contains("_CheckoutQuestionImg-") || finalList.get(i).contains("_CheckoutAnsImg-")) {
foldername = "CheckoutImages";
} else { } else {
foldername = "BulkUpload"; foldername = "BulkUpload";
} }
@@ -711,7 +715,6 @@ public class Downloader extends JobIntentService {
break; break;
} }
File originalFile = new File(CommonString.getImagesFolder(context) + filename); File originalFile = new File(CommonString.getImagesFolder(context) + filename);
File finalFile = saveBitmapToFile(originalFile); File finalFile = saveBitmapToFile(originalFile);
if (finalFile == null) { if (finalFile == null) {
@@ -738,11 +741,11 @@ public class Downloader extends JobIntentService {
@Override @Override
public void onResponse(retrofit.Response<String> response) { public void onResponse(retrofit.Response<String> response) {
try { try {
Log.d("IMG_response", response.body() + " --- File_name ----" + finalFilename);
if (response.code() == 200 && response.message().equalsIgnoreCase("OK") && response.isSuccess() && response.body().contains("Success")) { if (response.code() == 200 && response.message().equalsIgnoreCase("OK") && response.isSuccess() && response.body().contains("Success")) {
if (finalFilename.contains("_counter_img_two_") || finalFilename.contains("_counter_img_one_") || finalFilename.contains("_cp_img_one_") || finalFilename.contains("_cp_img_two_") || finalFilename.contains("_groomed_img_mrng_") || finalFilename.contains("_groomed_img_noon_") || finalFilename.contains("_groomed_img_evning_")) { if (finalFilename.contains("_counter_img_two_") || finalFilename.contains("_counter_img_one_") || finalFilename.contains("_cp_img_one_") || finalFilename.contains("_cp_img_two_") || finalFilename.contains("_groomed_img_mrng_") || finalFilename.contains("_groomed_img_noon_") || finalFilename.contains("_groomed_img_evning_")) {
db.open(); db.open();
db.insert_temp_image(finalFilename, visit_date); db.insert_temp_image(finalFilename, visit_date);
} else { } else {
finalFile1.delete(); finalFile1.delete();
} }
@@ -914,6 +917,7 @@ public class Downloader extends JobIntentService {
e.fillInStackTrace(); e.fillInStackTrace();
} }
} }
public void upload_ME_Quiz_Data(String jsondata, final ArrayList<MEMEAuditQuestion> me_quizList) { public void upload_ME_Quiz_Data(String jsondata, final ArrayList<MEMEAuditQuestion> me_quizList) {
try { try {
OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).writeTimeout(CommonString.TIMEOUT, OkHttpClient okHttpClient = new OkHttpClient.Builder().readTimeout(CommonString.TIMEOUT, TimeUnit.SECONDS).writeTimeout(CommonString.TIMEOUT,
@@ -936,7 +940,7 @@ public class Downloader extends JobIntentService {
data = data.substring(1, data.length() - 1).replace("\\", ""); data = data.substring(1, data.length() - 1).replace("\\", "");
if (data.equalsIgnoreCase(CommonString.KEY_SUCCESS)) { if (data.equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
db.open(); db.open();
// db.update_groomed_img(counter_id, visit_date, username); // db.update_groomed_img(counter_id, visit_date, username);
db.update_Me_Quiz(counter_id, username); db.update_Me_Quiz(counter_id, username);
} }
} }
@@ -968,10 +972,9 @@ public class Downloader extends JobIntentService {
obj.put("VisiteDate", visit_date); obj.put("VisiteDate", visit_date);
obj.put("ItemCategoryId", masterRetailExcellenceArrayList.get(k).getItemCatId()); obj.put("ItemCategoryId", masterRetailExcellenceArrayList.get(k).getItemCatId());
obj.put("ItemId", masterRetailExcellenceArrayList.get(k).getItemId()); obj.put("ItemId", masterRetailExcellenceArrayList.get(k).getItemId());
if(masterRetailExcellenceArrayList.get(k).getAnswer().equalsIgnoreCase("Yes")){ if (masterRetailExcellenceArrayList.get(k).getAnswer().equalsIgnoreCase("Yes")) {
obj.put("Available", 1); obj.put("Available", 1);
} } else {
else{
obj.put("Available", 0); obj.put("Available", 0);
} }
consumerUserInfoArray.put(obj); consumerUserInfoArray.put(obj);
@@ -1035,7 +1038,7 @@ public class Downloader extends JobIntentService {
if (productMasterArrayList.size() > 0) { if (productMasterArrayList.size() > 0) {
JSONArray consumerUserInfoArray = new JSONArray(); JSONArray consumerUserInfoArray = new JSONArray();
for (int k = 0; k < productMasterArrayList.size(); k++) { for (int k = 0; k < productMasterArrayList.size(); k++) {
if(productMasterArrayList.get(k).getStock()>0){ if (productMasterArrayList.get(k).getStock() > 0) {
JSONObject obj = new JSONObject(); JSONObject obj = new JSONObject();
obj.put("MID", jcp_Object.getMID()); obj.put("MID", jcp_Object.getMID());
obj.put("BID", jcp_Object.getBID()); obj.put("BID", jcp_Object.getBID());
@@ -1051,7 +1054,7 @@ public class Downloader extends JobIntentService {
jsonObject.put("Keys", "ME_Sale_Data"); jsonObject.put("Keys", "ME_Sale_Data");
jsonObject.put("JsonData", consumerUserInfoArray.toString()); jsonObject.put("JsonData", consumerUserInfoArray.toString());
jsonObject.put("UserId", username.toLowerCase()); jsonObject.put("UserId", username.toLowerCase());
// //test("salejson",jsonObject.toString()); // //test("salejson",jsonObject.toString());
upload_ME_Sale_Data(jsonObject.toString(), productMasterArrayList); upload_ME_Sale_Data(jsonObject.toString(), productMasterArrayList);
} }
} catch (Exception e) { } catch (Exception e) {
@@ -1133,7 +1136,7 @@ public class Downloader extends JobIntentService {
jsonObject.put("Keys", "ME_Makeover_Capture"); jsonObject.put("Keys", "ME_Makeover_Capture");
jsonObject.put("JsonData", consumerUserInfoArray.toString()); jsonObject.put("JsonData", consumerUserInfoArray.toString());
jsonObject.put("UserId", memakeoverList.get(consumerIndex).getStrUserId()); jsonObject.put("UserId", memakeoverList.get(consumerIndex).getStrUserId());
upload_Me_Makeover_Data(jsonObject.toString(), memakeoverList.get(consumerIndex),consumerIndex); upload_Me_Makeover_Data(jsonObject.toString(), memakeoverList.get(consumerIndex), consumerIndex);
} }
} catch (Exception e) { } catch (Exception e) {
e.fillInStackTrace(); e.fillInStackTrace();
@@ -8,125 +8,128 @@ import java.io.Serializable;
public class JourneyPlan implements Serializable { public class JourneyPlan implements Serializable {
@SerializedName("StoreId") @SerializedName("StoreId")
@Expose
private Integer storeId; private Integer storeId;
@SerializedName("CounterId") @SerializedName("CounterId")
@Expose
private Integer counterId; private Integer counterId;
@SerializedName("EmpId") @SerializedName("EmpId")
@Expose
private Integer empId; private Integer empId;
@SerializedName("ChainId") @SerializedName("ChainId")
@Expose
private Integer chainId; private Integer chainId;
@SerializedName("ChainName") @SerializedName("ChainName")
@Expose
private String chainName; private String chainName;
@SerializedName("StoreName") @SerializedName("StoreName")
@Expose
private String storeName; private String storeName;
@SerializedName("Address") @SerializedName("Address")
@Expose
private String address; private String address;
@SerializedName("Location") @SerializedName("Location")
@Expose
private String location; private String location;
@SerializedName("Landmark") @SerializedName("Landmark")
@Expose
private String landmark; private String landmark;
@SerializedName("CityId") @SerializedName("CityId")
@Expose
private Integer cityId; private Integer cityId;
@SerializedName("CityName") @SerializedName("CityName")
@Expose
private String cityName; private String cityName;
@SerializedName("CounterName") @SerializedName("CounterName")
@Expose
private String counterName; private String counterName;
@SerializedName("IMEI") @SerializedName("IMEI")
@Expose
private String iMEI; private String iMEI;
@SerializedName("ChannelId") @SerializedName("ChannelId")
@Expose
private Integer channelId; private Integer channelId;
@SerializedName("ChannelName") @SerializedName("ChannelName")
@Expose
private String channelName; private String channelName;
@SerializedName("StoreTypeId") @SerializedName("StoreTypeId")
@Expose
private Integer storeTypeId; private Integer storeTypeId;
@SerializedName("StoreTypeName") @SerializedName("StoreTypeName")
@Expose
private String storeTypeName; private String storeTypeName;
@SerializedName("ClassId") @SerializedName("ClassId")
@Expose
private Integer classId; private Integer classId;
@SerializedName("ClassName") @SerializedName("ClassName")
@Expose
private String className; private String className;
@SerializedName("CounterGroupId") @SerializedName("CounterGroupId")
@Expose
private Integer counterGroupId; private Integer counterGroupId;
@SerializedName("CounterUploadStatus") @SerializedName("CounterUploadStatus")
@Expose
private String counterUploadStatus; private String counterUploadStatus;
@SerializedName("BAUploadStatus") @SerializedName("BAUploadStatus")
@Expose
private String bAUploadStatus; private String bAUploadStatus;
@SerializedName("MID") @SerializedName("MID")
@Expose
private Integer mID; private Integer mID;
@SerializedName("BID") @SerializedName("BID")
@Expose
private Integer bID; private Integer bID;
@SerializedName("RefImage") @SerializedName("RefImage")
@Expose
private String refImage; private String refImage;
@SerializedName("ProfileImage1") @SerializedName("ProfileImage1")
@Expose
private String profileImage1; private String profileImage1;
@SerializedName("ProfileImage2") @SerializedName("ProfileImage2")
@Expose
private String profileImage2; private String profileImage2;
@SerializedName("CounterLength") @SerializedName("CounterLength")
@Expose
private double counterlength; private double counterlength;
@SerializedName("CounterWidth") @SerializedName("CounterWidth")
@Expose
private double counterwidth; private double counterwidth;
@SerializedName("SetUpDate") @SerializedName("SetUpDate")
@Expose
private String setupDate; private String setupDate;
@SerializedName("VisitDate") @SerializedName("VisitDate")
@Expose
private String visitDate; private String visitDate;
@SerializedName("UserId") @SerializedName("UserId")
@Expose
private String userId; private String userId;
@SerializedName("Latitude") @SerializedName("Latitude")
@Expose
private Double latitude; private Double latitude;
@SerializedName("Longitude") @SerializedName("Longitude")
@Expose
private Double longitude; private Double longitude;
@SerializedName("GeoTag") @SerializedName("GeoTag")
@Expose
private String geoTag; private String geoTag;
@SerializedName("GeoFencingRadius") @SerializedName("GeoFencingRadius")
@Expose
private Integer geoFencingRadius; private Integer geoFencingRadius;
@SerializedName("GeoFencingAllow") @SerializedName("GeoFencingAllow")
@Expose
private Integer geoFencingAllow; private Integer geoFencingAllow;
@SerializedName("Checkout")
private String checkout;
public String getVisitDate() { public String getVisitDate() {
return visitDate; return visitDate;
} }
@@ -374,6 +377,7 @@ public class JourneyPlan implements Serializable {
public void setBID(Integer bID) { public void setBID(Integer bID) {
this.bID = bID; this.bID = bID;
} }
public Double getLatitude() { public Double getLatitude() {
return latitude; return latitude;
} }
@@ -466,7 +470,7 @@ public class JourneyPlan implements Serializable {
this.userId = userId; this.userId = userId;
} }
String counter_img_onefor_ba=""; String counter_img_onefor_ba = "";
public String getCounter_img_onefor_ba() { public String getCounter_img_onefor_ba() {
return counter_img_onefor_ba; return counter_img_onefor_ba;
@@ -484,7 +488,7 @@ public class JourneyPlan implements Serializable {
this.counter_img_two_for_ba = counter_img_two_for_ba; this.counter_img_two_for_ba = counter_img_two_for_ba;
} }
String counter_img_two_for_ba=""; String counter_img_two_for_ba = "";
public String getTransId() { public String getTransId() {
return TransId; return TransId;
@@ -494,7 +498,7 @@ public class JourneyPlan implements Serializable {
TransId = transId; TransId = transId;
} }
String TransId=""; String TransId = "";
public String getUser_type() { public String getUser_type() {
return user_type; return user_type;
@@ -504,7 +508,7 @@ public class JourneyPlan implements Serializable {
this.user_type = user_type; this.user_type = user_type;
} }
String user_type=""; String user_type = "";
public String getUpload_status_ba() { public String getUpload_status_ba() {
return upload_status_ba; return upload_status_ba;
@@ -514,8 +518,8 @@ public class JourneyPlan implements Serializable {
this.upload_status_ba = upload_status_ba; this.upload_status_ba = upload_status_ba;
} }
String upload_status_ba=""; String upload_status_ba = "";
String stock_type=""; String stock_type = "";
public String getStock_type() { public String getStock_type() {
return stock_type; return stock_type;
@@ -533,5 +537,13 @@ public class JourneyPlan implements Serializable {
this.entry_type = entry_type; this.entry_type = entry_type;
} }
String entry_type=""; public String getCheckout() {
return checkout;
}
public void setCheckout(String checkout) {
this.checkout = checkout;
}
String entry_type = "";
} }
@@ -3,6 +3,8 @@ package com.cpm.lorealbaautomation.gsonGetterSetter;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import com.cpm.lorealbaautomation.checkout.MasterCheckoutQuestion;
import com.google.gson.annotations.Expose; import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName; import com.google.gson.annotations.SerializedName;
import com.cpm.lorealbaautomation.reportGetterSetter.ReportAttendanceDetail; import com.cpm.lorealbaautomation.reportGetterSetter.ReportAttendanceDetail;
@@ -79,7 +81,7 @@ public class MasterBAProfileGetterSetter implements Serializable {
} }
@SerializedName("ME_MEAuditQuestion") @SerializedName("ME_MEAuditQuestion")
@Expose @Expose
private List<MEMEAuditQuestion> mEMEAuditQuestion = null; private List<MEMEAuditQuestion> mEMEAuditQuestion;
public List<MEMEAuditQuestion> getMEMEAuditQuestion() { public List<MEMEAuditQuestion> getMEMEAuditQuestion() {
return mEMEAuditQuestion; return mEMEAuditQuestion;
@@ -87,7 +89,7 @@ public class MasterBAProfileGetterSetter implements Serializable {
@SerializedName("ME_MEAuditQuestion_UploadStatus") @SerializedName("ME_MEAuditQuestion_UploadStatus")
@Expose @Expose
private List<MEMEAuditQuestionUploadstatus> mEMEAuditQuestionUploadStatus = null; private List<MEMEAuditQuestionUploadstatus> mEMEAuditQuestionUploadStatus;
public List<MEMEAuditQuestionUploadstatus> getMEMEAuditQuestionUploadStatus() { public List<MEMEAuditQuestionUploadstatus> getMEMEAuditQuestionUploadStatus() {
return mEMEAuditQuestionUploadStatus; return mEMEAuditQuestionUploadStatus;
@@ -98,4 +100,11 @@ public class MasterBAProfileGetterSetter implements Serializable {
public List<MappingAppRestrictedKPI> getMappingAppRestrictedKPI() { public List<MappingAppRestrictedKPI> getMappingAppRestrictedKPI() {
return mappingAppRestrictedKPI; return mappingAppRestrictedKPI;
} }
@SerializedName("Master_CheckoutQuestion")
private List<MasterCheckoutQuestion> masterCheckoutQuestion;
public List<MasterCheckoutQuestion> getMasterCheckoutQuestion() {
return masterCheckoutQuestion;
}
} }
@@ -92,7 +92,6 @@ public class LeaveManagemntActivity extends AppCompatActivity implements View.On
if (id == android.R.id.home) { if (id == android.R.id.home) {
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out); overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
LeaveManagemntActivity.this.finish(); LeaveManagemntActivity.this.finish();
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@@ -1,5 +1,6 @@
package com.cpm.lorealbaautomation.makeupexpert; package com.cpm.lorealbaautomation.makeupexpert;
import android.annotation.SuppressLint;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@@ -20,8 +21,6 @@ import android.widget.TextView;
import com.androidbuts.multispinnerfilter.KeyPairBoolData; import com.androidbuts.multispinnerfilter.KeyPairBoolData;
import com.androidbuts.multispinnerfilter.SpinnerListener; import com.androidbuts.multispinnerfilter.SpinnerListener;
import com.cpm.lorealbaautomation.R; import com.cpm.lorealbaautomation.R;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -30,7 +29,6 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
private String defaultText = ""; private String defaultText = "";
private String spinnerTitle = ""; private String spinnerTitle = "";
private SpinnerListener listener; private SpinnerListener listener;
private int selected = 0;
MultipleSelectionSpinAdapter adapter; MultipleSelectionSpinAdapter adapter;
List<KeyPairBoolData> productList = new ArrayList<>(); List<KeyPairBoolData> productList = new ArrayList<>();
public static AlertDialog ad; public static AlertDialog ad;
@@ -39,6 +37,7 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
super(context); super(context);
} }
@SuppressLint("CustomViewStyleable")
public BaProfileMultiSelection(Context arg0, AttributeSet arg1) { public BaProfileMultiSelection(Context arg0, AttributeSet arg1) {
super(arg0, arg1); super(arg0, arg1);
TypedArray a = arg0.obtainStyledAttributes(arg1, R.styleable.MultiSpinnerSearch); TypedArray a = arg0.obtainStyledAttributes(arg1, R.styleable.MultiSpinnerSearch);
@@ -82,6 +81,7 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
listener.onItemsSelected(productList); listener.onItemsSelected(productList);
} }
@SuppressLint("ClickableViewAccessibility")
@Override @Override
public boolean performClick() { public boolean performClick() {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
@@ -94,21 +94,14 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
listView.setFastScrollEnabled(false); listView.setFastScrollEnabled(false);
adapter = new MultipleSelectionSpinAdapter(getContext(), productList); adapter = new MultipleSelectionSpinAdapter(getContext(), productList);
listView.setAdapter(adapter); listView.setAdapter(adapter);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { builder.setPositiveButton(android.R.string.ok, (dialog, which) -> {
Log.i(TAG, " ITEMS : " + productList.size());
@Override dialog.cancel();
public void onClick(DialogInterface dialog, int which) {
Log.i(TAG, " ITEMS : " + productList.size());
dialog.cancel();
}
}); });
builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { builder.setNegativeButton(android.R.string.cancel, (dialogInterface, i) -> {
@Override Log.i(TAG, " ITEMS : " + productList.size());
public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss();
Log.i(TAG, " ITEMS : " + productList.size());
dialogInterface.dismiss();
}
}); });
builder.setOnCancelListener(this); builder.setOnCancelListener(this);
ad = builder.show(); ad = builder.show();
@@ -168,7 +161,7 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
return position; return position;
} }
private class ViewHolder { private static class ViewHolder {
TextView textView; TextView textView;
CheckBox checkBox; CheckBox checkBox;
} }
@@ -177,7 +170,7 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
public View getView(final int position, View convertView, ViewGroup parent) { public View getView(final int position, View convertView, ViewGroup parent) {
MultipleSelectionSpinAdapter.ViewHolder holder; MultipleSelectionSpinAdapter.ViewHolder holder;
if (convertView == null) { if (convertView == null) {
holder = new MultipleSelectionSpinAdapter.ViewHolder(); holder = new ViewHolder();
convertView = inflater.inflate(R.layout.item_listview_multiple_row, parent, false); convertView = inflater.inflate(R.layout.item_listview_multiple_row, parent, false);
holder.textView = (TextView) convertView.findViewById(R.id.alertTextView); holder.textView = (TextView) convertView.findViewById(R.id.alertTextView);
holder.checkBox = (CheckBox) convertView.findViewById(R.id.alertCheckbox); holder.checkBox = (CheckBox) convertView.findViewById(R.id.alertCheckbox);
@@ -185,34 +178,20 @@ public class BaProfileMultiSelection extends AppCompatSpinner implements DialogI
} else { } else {
holder = (MultipleSelectionSpinAdapter.ViewHolder) convertView.getTag(); holder = (MultipleSelectionSpinAdapter.ViewHolder) convertView.getTag();
} }
final KeyPairBoolData data = arrayList.get(position); final KeyPairBoolData data = arrayList.get(position);
holder.textView.setText(data.getName()); holder.textView.setText(data.getName());
holder.textView.setTypeface(null, Typeface.NORMAL); holder.textView.setTypeface(null, Typeface.NORMAL);
holder.checkBox.setChecked(data.isSelected()); holder.checkBox.setChecked(data.isSelected());
convertView.setOnClickListener(v -> {
convertView.setOnClickListener(new OnClickListener() { final ViewHolder temp = (ViewHolder) v.getTag();
public void onClick(View v) { temp.checkBox.setChecked(!temp.checkBox.isChecked());
if (data.isSelected()) { // deselect data.setSelected(!data.isSelected());
selected--; Log.i("", "On Click Selected Item : " + data.getName() + " : " + data.isSelected());
} else {// selected notifyDataSetChanged();
selected++;
}
final MultipleSelectionSpinAdapter.ViewHolder temp = (MultipleSelectionSpinAdapter.ViewHolder) v.getTag();
temp.checkBox.setChecked(!temp.checkBox.isChecked());
data.setSelected(!data.isSelected());
Log.i("", "On Click Selected Item : " + data.getName() + " : " + data.isSelected());
notifyDataSetChanged();
}
}); });
if (data.isSelected()) { if (data.isSelected()) {
holder.textView.setTypeface(null, Typeface.NORMAL); holder.textView.setTypeface(null, Typeface.NORMAL);
} }
holder.checkBox.setTag(holder); holder.checkBox.setTag(holder);
return convertView; return convertView;
} }
@@ -343,6 +343,7 @@ public class DownloadAllDatawithRetro extends ReferenceVariablesForDownloadActiv
case "Mapping_JourneyPlan": case "Mapping_JourneyPlan":
if (!data.contains("No Data")) { if (!data.contains("No Data")) {
Log.d("JSON_DATA",data);
jcpObject = new Gson().fromJson(data, JCPGetterSetter.class); jcpObject = new Gson().fromJson(data, JCPGetterSetter.class);
db.open(); db.open();
if (jcpObject != null && !db.insertJCPData(jcpObject)) { if (jcpObject != null && !db.insertJCPData(jcpObject)) {
@@ -1839,6 +1840,20 @@ public class DownloadAllDatawithRetro extends ReferenceVariablesForDownloadActiv
throw new java.lang.Exception(); throw new java.lang.Exception();
} }
break; break;
case "Master_CheckoutQuestion":
if (!data.contains("No Data")) {
MasterBAProfileGetterSetter masterCheckoutQuestion = new Gson().fromJson(data, MasterBAProfileGetterSetter.class);
db.open();
if (masterCheckoutQuestion != null && !db.insertMasterCheckoutQuestion(masterCheckoutQuestion)) {
AlertandMessages.showToastMsg(context, "Master_CheckoutQuestion data not saved");
pd.dismiss();
}
} else {
db.open();
db.delete_table_data("Master_CheckoutQuestion");
}
break;
} }
@@ -2050,6 +2065,7 @@ public class DownloadAllDatawithRetro extends ReferenceVariablesForDownloadActiv
} else { } else {
data_global[0] = data; data_global[0] = data;
if (finalKeyName.equalsIgnoreCase("Table_Structure")) { if (finalKeyName.equalsIgnoreCase("Table_Structure")) {
Log.d("JSON_DATA",data);
editor.putInt(CommonString.KEY_DOWNLOAD_INDEX, finalJsonIndex[0]); editor.putInt(CommonString.KEY_DOWNLOAD_INDEX, finalJsonIndex[0]);
editor.apply(); editor.apply();
tableStructureObj = new Gson().fromJson(data, TableStructureGetterSetter.class); tableStructureObj = new Gson().fromJson(data, TableStructureGetterSetter.class);
@@ -2075,6 +2091,7 @@ public class DownloadAllDatawithRetro extends ReferenceVariablesForDownloadActiv
break; break;
case "Mapping_JourneyPlan": case "Mapping_JourneyPlan":
Log.d("JSON_DATA",data);
if (!data.contains("No Data")) { if (!data.contains("No Data")) {
jcpObject = new Gson().fromJson(data, JCPGetterSetter.class); jcpObject = new Gson().fromJson(data, JCPGetterSetter.class);
db.open(); db.open();
@@ -10,15 +10,9 @@ import retrofit2.http.POST;
public interface PostApi { public interface PostApi {
// @POST("CounterDeviceLoginWithCode")---Old Method
//Ravi Changes
@POST("CounterInfoDetail")
Call<ResponseBody> getCounterInfodetail(@Body RequestBody request);
@POST("CounterDeviceLoginWithCodeAppId") @POST("CounterDeviceLoginWithCodeAppId")
Call<ResponseBody> getLogindetail(@Body RequestBody request); Call<ResponseBody> getLogindetail(@Body RequestBody request);
///@POST("BADeviceLogin")----Old Ba login Method
@POST("BADeviceLoginAppId") @POST("BADeviceLoginAppId")
Call<ResponseBody> getLoginUserdetail(@Body RequestBody request); Call<ResponseBody> getLoginUserdetail(@Body RequestBody request);
@@ -79,5 +73,8 @@ public interface PostApi {
@POST("LeaveRequest") @POST("LeaveRequest")
Call<String> LeaveRequest(@Body RequestBody request); Call<String> LeaveRequest(@Body RequestBody request);
@POST("BACheckout")
Call<ResponseBody> BACheckout(@Body RequestBody request);
} }
@@ -1,19 +0,0 @@
package com.cpm.lorealbaautomation.retrofit;
import com.squareup.okhttp.RequestBody;
import retrofit.Call;
import retrofit.http.Body;
import retrofit.http.POST;
/**
* Created by jeevanp on 05-10-2017.
*/
public interface PostApiForFile {
@POST("Uploadimages")
Call<String>getUploadImage(@Body RequestBody reqesBody);
}
@@ -2,6 +2,8 @@ package com.cpm.lorealbaautomation.retrofit;
import android.content.Context; import android.content.Context;
import androidx.annotation.NonNull;
import com.cpm.lorealbaautomation.constant.CommonString; import com.cpm.lorealbaautomation.constant.CommonString;
import com.cpm.lorealbaautomation.gettersetter.ReferenceVariablesForDownloadActivity; import com.cpm.lorealbaautomation.gettersetter.ReferenceVariablesForDownloadActivity;
@@ -51,11 +53,13 @@ public class UploadDataWithRetrofit extends ReferenceVariablesForDownloadActivit
if (type == CommonString.UPLOAD_DEVICE_TOKEN_DETAILS) { if (type == CommonString.UPLOAD_DEVICE_TOKEN_DETAILS) {
call = api.uploadTokenDetails(jsonData); call = api.uploadTokenDetails(jsonData);
} else {
call = api.BACheckout(jsonData);
} }
assert call != null;
call.enqueue(new Callback<ResponseBody>() { call.enqueue(new Callback<>() {
@Override @Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) {
ResponseBody responseBody = response.body(); ResponseBody responseBody = response.body();
String data = null; String data = null;
if (responseBody != null && response.isSuccessful()) { if (responseBody != null && response.isSuccessful()) {
@@ -64,14 +68,12 @@ public class UploadDataWithRetrofit extends ReferenceVariablesForDownloadActivit
data = data.substring(1, data.length() - 1).replace("\\", ""); data = data.substring(1, data.length() - 1).replace("\\", "");
if (data.equalsIgnoreCase("")) { if (data.equalsIgnoreCase("")) {
data_global[0] = ""; data_global[0] = "";
isvalid = true;
status = 1;
} else { } else {
data = data.substring(1, data.length() - 1).replace("\\", ""); data = data.substring(1, data.length() - 1).replace("\\", "");
data_global[0] = data; data_global[0] = data;
isvalid = true;
status = 1;
} }
isvalid = true;
status = 1;
} catch (Exception e) { } catch (Exception e) {
e.fillInStackTrace(); e.fillInStackTrace();
@@ -85,7 +87,7 @@ public class UploadDataWithRetrofit extends ReferenceVariablesForDownloadActivit
} }
@Override @Override
public void onFailure(Call<ResponseBody> call, Throwable t) { public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) {
isvalid = true; isvalid = true;
if (t instanceof SocketTimeoutException) { if (t instanceof SocketTimeoutException) {
status = 3; status = 3;
@@ -94,10 +96,21 @@ public class UploadDataWithRetrofit extends ReferenceVariablesForDownloadActivit
} else { } else {
status = 3; status = 3;
} }
} }
}); });
if (type != CommonString.UPLOAD_DEVICE_TOKEN_DETAILS) {
while (!isvalid) {
synchronized (this) {
this.wait(25);
}
}
if (isvalid) {
synchronized (this) {
this.notify();
}
}
}
if (status == 1) { if (status == 1) {
return data_global[0]; return data_global[0];
} else if (status == 2) { } else if (status == 2) {
@@ -1961,6 +1961,8 @@ public class ManualUploadActivity extends AppCompatActivity implements View.OnCl
foldername = "CompetitionOffersImages"; foldername = "CompetitionOffersImages";
} else if (finalList.get(i).contains("_GeoTag-")) { } else if (finalList.get(i).contains("_GeoTag-")) {
foldername = "GeoTagImages"; foldername = "GeoTagImages";
} else if (finalList.get(i).contains("-Checkout_Selfie_img_") || finalList.get(i).contains("_CheckoutQuestionImg-") || finalList.get(i).contains("_CheckoutAnsImg-")) {
foldername = "CheckoutImages";
} else { } else {
foldername = "BulkUpload"; foldername = "BulkUpload";
} }
@@ -1893,6 +1893,8 @@ public class UploadKeyData extends AppCompatActivity implements View.OnClickList
foldername = "CompetitionOffersImages"; foldername = "CompetitionOffersImages";
} else if (finalList.get(i).contains("_GeoTag-")) { } else if (finalList.get(i).contains("_GeoTag-")) {
foldername = "GeoTagImages"; foldername = "GeoTagImages";
} else if (finalList.get(i).contains("-Checkout_Selfie_img_") || finalList.get(i).contains("_CheckoutQuestionImg-") || finalList.get(i).contains("_CheckoutAnsImg-")) {
foldername = "CheckoutImages";
} else { } else {
foldername = "BulkUpload"; foldername = "BulkUpload";
} }
@@ -0,0 +1,28 @@
package com.cpm.lorealbaautomation.utils;
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.ExpandableListView;
public class NonScrollExpandableListView extends ExpandableListView {
public NonScrollExpandableListView(Context context) {
super(context);
}
public NonScrollExpandableListView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NonScrollExpandableListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}
}
@@ -8,7 +8,7 @@
android:id="@+id/card_view" android:id="@+id/card_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin3dp" android:layout_margin="@dimen/custom_margin3dp"
card_view:cardBackgroundColor="@color/white" card_view:cardBackgroundColor="@color/white"
card_view:cardCornerRadius="@dimen/custom_margin" card_view:cardCornerRadius="@dimen/custom_margin"
card_view:cardElevation="@dimen/margin1dp"> card_view:cardElevation="@dimen/margin1dp">
@@ -16,8 +16,8 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:background="@drawable/edit_text_border"
android:background="@drawable/edit_text_border"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -29,11 +29,11 @@
android:id="@+id/txt_question" android:id="@+id/txt_question"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/custom_layout_margin11"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="@dimen/custom_layout_margin11" android:padding="@dimen/custom_layout_margin11"
android:layout_gravity="center_vertical"
android:text="Question" android:text="Question"
android:layout_marginLeft="@dimen/custom_layout_margin11"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_16sp" android:textSize="@dimen/text_size_16sp"
android:textStyle="bold" /> android:textStyle="bold" />
@@ -51,57 +51,54 @@
android:id="@+id/sp_auditAnswer" android:id="@+id/sp_auditAnswer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/margin1dp"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center"
android:backgroundTint="@color/colorPrimaryDark"
android:layout_marginLeft="@dimen/custom_layout_margin_50" android:layout_marginLeft="@dimen/custom_layout_margin_50"
android:layout_marginRight="@dimen/custom_layout_margin_50"
android:layout_marginTop="@dimen/custom_margin3dp" android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/custom_layout_margin_50"
android:layout_marginBottom="@dimen/custom_margin3dp" android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone" android:backgroundTint="@color/colorPrimaryDark"
/> android:gravity="center"
android:padding="@dimen/margin1dp"
android:visibility="gone" />
<EditText <EditText
android:id="@+id/edt_answer" android:id="@+id/edt_answer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/margin60dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/margin60dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:background="@drawable/rouded_corner_edt"
android:focusable="true" android:focusable="true"
android:hint="type your answer here." android:gravity="center_vertical"
android:hint="Type your answer here."
android:padding="@dimen/custom_layout_margin11"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_16sp" android:textSize="@dimen/text_size_16sp"
android:layout_gravity="center" android:visibility="gone" />
android:gravity="center"
android:padding="@dimen/custom_layout_margin11"
android:background="@drawable/rouded_corner_edt"
android:layout_marginLeft="@dimen/margin60dp"
android:layout_marginRight="@dimen/margin60dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone"
/>
<EditText <EditText
android:id="@+id/edt_for_others" android:id="@+id/edt_for_others"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/margin60dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/margin60dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:background="@drawable/rouded_corner_edt"
android:focusable="true" android:focusable="true"
android:hint="type your answer here." android:gravity="center_vertical"
android:textColor="@color/black" android:hint="Type your answer here."
android:textSize="@dimen/text_size_16sp"
android:layout_gravity="center"
android:gravity="center"
android:padding="@dimen/custom_layout_margin11"
android:inputType="text" android:inputType="text"
android:maxLength="100" android:maxLength="100"
android:background="@drawable/rouded_corner_edt" android:padding="@dimen/custom_layout_margin11"
android:layout_marginLeft="@dimen/margin60dp" android:textColor="@color/black"
android:layout_marginRight="@dimen/margin60dp" android:textSize="@dimen/text_size_16sp"
android:layout_marginTop="@dimen/custom_margin3dp" android:visibility="gone" />
android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone"/>
<RelativeLayout <RelativeLayout
android:id="@+id/relay_multisppener" android:id="@+id/relay_multisppener"
@@ -109,28 +106,20 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin3dp" android:layout_margin="@dimen/custom_margin3dp"
android:visibility="gone"> android:visibility="gone">
<com.cpm.lorealbaautomation.makeupexpert.BaProfileMultiSelection <com.cpm.lorealbaautomation.makeupexpert.BaProfileMultiSelection
android:id="@+id/searchSpinner" android:id="@+id/searchSpinner"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/custom_layout_margin_50"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/custom_layout_margin_50"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:backgroundTint="@color/colorPrimaryDark"
android:gravity="center"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/text_size_16sp" android:textSize="@dimen/text_size_16sp"
card_view:hintText="- Select -" app:hintText="- Select -" />
android:gravity="center"
android:layout_marginLeft="@dimen/custom_layout_margin_50"
android:layout_marginRight="@dimen/custom_layout_margin_50"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:backgroundTint="@color/colorPrimaryDark"/>
<TextView
android:id="@+id/tv_mer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:text="Select "
android:visibility="gone"
android:textSize="14sp" />
</RelativeLayout> </RelativeLayout>
@@ -141,15 +130,14 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center"
android:layout_margin="@dimen/custom_margin" android:layout_margin="@dimen/custom_margin"
android:visibility="gone" android:gravity="center"
> android:visibility="gone">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentEnd="true"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey_background"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".checkout.BaCheckoutActivity"
tools:showIn="@layout/activity_bacheckout">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/appbar_padding_top"
app:cardElevation="@dimen/custom_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/selfie_checkout_msg"
android:textColor="@color/black"
android:padding="@dimen/appbar_padding_top"
android:textSize="@dimen/text_size_16sp"
android:textStyle="bold" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/img_selfie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_12dp"
android:background="@color/light_grey"
android:scaleType="centerCrop"
android:src="@mipmap/selfie_image"
android:visibility="gone"
app:shapeAppearanceOverlay="@style/RoundedCornerImageView" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/img_cam_selfie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@mipmap/selfie_image" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="@dimen/appbar_padding_top"
android:background="@color/transparent"
android:gravity="center"
android:orientation="vertical"
android:weightSum="10">
<TextView
android:id="@+id/tvPrompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mandatory_daily_questionnaire_at_the_time_of_check_out"
android:textColor="@color/grey_dark_background"
android:padding="@dimen/appbar_padding_top"
android:textSize="@dimen/text_size_16sp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycl_questionire"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/appbar_padding_top" />
</LinearLayout>
</LinearLayout>
@@ -367,11 +367,11 @@
android:id="@+id/edt_address" android:id="@+id/edt_address"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="80dp" android:layout_height="80dp"
android:layout_marginRight="3dp" android:layout_marginEnd="3dp"
android:layout_weight="6" android:layout_weight="6"
android:background="@drawable/rouded_corner_edittaxt" android:background="@drawable/rouded_corner_edittaxt"
android:layout_gravity="center_vertical" android:layout_gravity="start|top"
android:gravity="center_vertical" android:gravity="start|top"
android:padding="@dimen/custom_layout_margin11" android:padding="@dimen/custom_layout_margin11"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_size_medium" /> android:textSize="@dimen/text_size_medium" />
@@ -706,7 +706,7 @@
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<ExpandableListView <com.cpm.lorealbaautomation.utils.NonScrollExpandableListView
android:id="@+id/list" android:id="@+id/list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1400dp" android:layout_height="1400dp"
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@mipmap/popup_profile"
android:gravity="center">
</RelativeLayout>
@@ -0,0 +1,146 @@
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/card_view"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
android:layout_width="match_parent"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/padding_10dp"
app:cardElevation="@dimen/custom_margin">
<LinearLayout
android:layout_height="wrap_content"
android:layout_margin="@dimen/appbar_padding_top"
android:layout_width="match_parent"
android:orientation="vertical">
<TextView
android:gravity="center_vertical"
android:id="@+id/txt_question"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/appbar_padding_top"
android:text="@string/settings_video_quality_title"
android:textColor="@color/black"
android:textSize="@dimen/text_size_16sp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/rlQImg"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="horizontal"
android:visibility="gone"
android:weightSum="1">
<TextView
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight=".8"
android:layout_width="0dp"
android:padding="@dimen/appbar_padding_top"
android:text="@string/question_image"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_14sp"
android:textStyle="normal" />
<ImageView
android:contentDescription="@string/question_image"
android:id="@+id/questionImg"
android:layout_gravity="center|end"
android:layout_height="@dimen/design_navigation_icon_size"
android:layout_weight=".2"
android:layout_width="0dp"
android:src="@mipmap/camera_star"
card_view:ignore="PrivateResource" />
</LinearLayout>
<LinearLayout
android:id="@+id/editTextlayout"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/appbar_padding_top"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="vertical"
android:weightSum="10">
<LinearLayout
android:background="@drawable/rouded_corner_edt"
android:gravity="center_vertical"
android:id="@+id/rlSpin"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/custom_margin">
<Spinner
android:backgroundTint="@color/colorPrimaryDark"
android:gravity="center"
android:id="@+id/sp_auditAnswer"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin1dp"
android:layout_width="match_parent" />
</LinearLayout>
<EditText
android:autofillHints="false"
android:background="@drawable/rouded_corner_edt"
android:hint="@string/type_your_answer_here"
android:id="@+id/edt_answer"
android:inputType="none"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/padding_10dp"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/rlAnsImg"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight=".8"
android:layout_width="0dp"
android:padding="@dimen/appbar_padding_top"
android:text="@string/anser_image"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_14sp"
android:textStyle="normal" />
<ImageView
android:contentDescription="@string/anser_image"
android:id="@+id/ansImg"
android:layout_gravity="center|end"
android:layout_height="@dimen/design_navigation_icon_size"
android:layout_weight=".2"
android:layout_width="0dp"
android:src="@mipmap/camera_star"
card_view:ignore="PrivateResource" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".checkout.BaCheckoutActivity">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/Toolbar.TitleTextPhone"
app:titleTextColor="@color/white" />
</com.google.android.material.appbar.AppBarLayout>
<include
android:id="@+id/contentCheckout"
layout="@layout/content_bacheckout" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|start"
android:layout_margin="@dimen/appbar_padding_top"
android:contentDescription="@string/save"
android:src="@drawable/save_icon"
app:backgroundTint="@color/green" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -1,8 +1,8 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/tools"
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
@@ -17,8 +17,8 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:background="@drawable/edit_text_border"
android:background="@drawable/edit_text_border"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -32,9 +32,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingLeft="@dimen/custom_layout_margin11" android:paddingStart="@dimen/custom_layout_margin11"
android:paddingTop="@dimen/custom_margin" android:paddingTop="@dimen/custom_margin"
android:paddingRight="20dp" android:paddingEnd="20dp"
android:paddingBottom="@dimen/custom_margin" android:paddingBottom="@dimen/custom_margin"
android:text="Question" android:text="Question"
android:textColor="@color/black" android:textColor="@color/black"
@@ -54,84 +54,72 @@
android:id="@+id/sp_auditAnswer" android:id="@+id/sp_auditAnswer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/margin1dp"
android:layout_gravity="center" android:layout_gravity="center"
android:gravity="center"
android:backgroundTint="@color/colorPrimaryDark"
android:layout_marginLeft="@dimen/text22dp" android:layout_marginLeft="@dimen/text22dp"
android:layout_marginRight="@dimen/text22dp"
android:layout_marginTop="@dimen/custom_margin3dp" android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/text22dp"
android:layout_marginBottom="@dimen/custom_margin3dp" android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone" android:backgroundTint="@color/colorPrimaryDark"
/> android:gravity="center"
android:padding="@dimen/margin1dp"
android:visibility="gone" />
<EditText <EditText
android:id="@+id/edt_answer" android:id="@+id/edt_answer"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/custom_margin35dp"
android:layout_margin="@dimen/custom_margin"
android:layout_marginRight="@dimen/custom_margin35dp"
android:background="@drawable/rouded_corner_edt"
android:focusable="true" android:focusable="true"
android:hint="type your answer here." android:padding="@dimen/appbar_padding_top"
android:gravity="center_vertical"
android:hint="Type your answer here."
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_14sp" android:textSize="@dimen/text_14sp"
android:layout_gravity="center" android:visibility="gone" />
android:gravity="center"
android:padding="@dimen/custom_margin"
android:background="@drawable/rouded_corner_edt"
android:layout_marginLeft="@dimen/custom_margin35dp"
android:layout_marginRight="@dimen/custom_margin35dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone"/>
<EditText <EditText
android:id="@+id/edt_for_others" android:id="@+id/edt_for_others"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:focusable="true" android:layout_gravity="center_vertical"
android:hint="type your answer here."
android:textColor="@color/black"
android:textSize="@dimen/text_14sp"
android:layout_gravity="center"
android:gravity="center"
android:padding="@dimen/custom_margin"
android:inputType="text"
android:maxLength="100"
android:background="@drawable/rouded_corner_edt"
android:layout_marginLeft="@dimen/custom_margin35dp" android:layout_marginLeft="@dimen/custom_margin35dp"
android:layout_marginRight="@dimen/custom_margin35dp" android:layout_marginRight="@dimen/custom_margin35dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginBottom="@dimen/custom_margin3dp" android:layout_marginBottom="@dimen/custom_margin3dp"
android:visibility="gone"/> android:background="@drawable/rouded_corner_edt"
android:focusable="true"
android:gravity="center_vertical"
android:hint="Type your answer here."
android:inputType="text"
android:maxLength="100"
android:padding="@dimen/appbar_padding_top"
android:textColor="@color/black"
android:textSize="@dimen/text_14sp"
android:visibility="gone" />
<RelativeLayout <RelativeLayout
android:id="@+id/relay_multisppener" android:id="@+id/relay_multisppener"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="gone" android:layout_margin="@dimen/custom_margin3dp"
android:layout_margin="@dimen/custom_margin3dp"> android:visibility="gone">
<com.cpm.lorealbaautomation.makeupexpert.BaProfileMultiSelection <com.cpm.lorealbaautomation.makeupexpert.BaProfileMultiSelection
android:id="@+id/searchSpinner" android:id="@+id/searchSpinner"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_30dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginRight="@dimen/margin_30dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:backgroundTint="@color/colorPrimaryDark"
android:gravity="center_vertical"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/text_size_16sp" android:textSize="@dimen/text_size_16sp"
card_view:hintText="- Select -" app:hintText="- Select -" />
android:gravity="center_vertical"
android:layout_marginLeft="@dimen/margin_30dp"
android:layout_marginRight="@dimen/margin_30dp"
android:layout_marginTop="@dimen/custom_margin3dp"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:backgroundTint="@color/colorPrimaryDark"/>
<TextView
android:id="@+id/tv_mer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:visibility="gone"
android:text="Select "
android:textSize="@dimen/text_14sp" />
</RelativeLayout> </RelativeLayout>
@@ -142,14 +130,14 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_margin="@dimen/custom_margin"
android:gravity="center" android:gravity="center"
android:visibility="gone" android:visibility="gone">
android:layout_margin="@dimen/custom_margin">
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentRight="true" android:layout_alignParentEnd="true"
android:orientation="horizontal"> android:orientation="horizontal">
<ImageView <ImageView
@@ -158,7 +146,6 @@
android:layout_height="@dimen/custom_margin35dp" android:layout_height="@dimen/custom_margin35dp"
android:background="@mipmap/camera_star" /> android:background="@mipmap/camera_star" />
</LinearLayout> </LinearLayout>
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>
@@ -6,6 +6,4 @@
android:layout_gravity="center" android:layout_gravity="center"
android:background="@mipmap/popup_counter" android:background="@mipmap/popup_counter"
android:gravity="center"> android:gravity="center">
</RelativeLayout> </RelativeLayout>
@@ -0,0 +1,85 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey_background"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".checkout.BaCheckoutActivity"
tools:showIn="@layout/activity_bacheckout">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/appbar_padding_top"
app:cardElevation="@dimen/custom_margin">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/selfie_checkout_msg"
android:textColor="@color/black"
android:padding="@dimen/custom_margin"
android:textSize="@dimen/txt_size_14sp"
android:textStyle="bold" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/img_selfie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/_12dp"
android:background="@color/light_grey"
android:scaleType="centerCrop"
android:src="@mipmap/selfie_image"
android:visibility="gone"
app:shapeAppearanceOverlay="@style/RoundedCornerImageView" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/img_cam_selfie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@mipmap/selfie_image" />
</LinearLayout>
</androidx.cardview.widget.CardView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_margin="@dimen/custom_margin"
android:background="@color/transparent"
android:gravity="center"
android:orientation="vertical"
android:weightSum="10">
<TextView
android:id="@+id/tvPrompt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mandatory_daily_questionnaire_at_the_time_of_check_out"
android:textColor="@color/grey_dark_background"
android:padding="@dimen/custom_margin"
android:textSize="@dimen/txt_size_14sp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycl_questionire"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/custom_margin" />
</LinearLayout>
</LinearLayout>
+11 -12
View File
@@ -370,11 +370,11 @@
android:id="@+id/edt_address" android:id="@+id/edt_address"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="100dp" android:layout_height="100dp"
android:layout_gravity="center_vertical" android:layout_gravity="start|top"
android:layout_marginRight="3dp" android:layout_marginEnd="3dp"
android:layout_weight="6" android:layout_weight="6"
android:background="@drawable/rouded_corner_edittaxt" android:background="@drawable/rouded_corner_edittaxt"
android:gravity="center_vertical" android:gravity="start|top"
android:padding="@dimen/custom_margin" android:padding="@dimen/custom_margin"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_14sp" /> android:textSize="@dimen/text_14sp" />
@@ -629,7 +629,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginRight="3dp" android:layout_marginEnd="3dp"
android:layout_weight="6" android:layout_weight="6"
android:background="@color/gray" android:background="@color/gray"
android:enabled="false" android:enabled="false"
@@ -662,7 +662,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginRight="3dp" android:layout_marginEnd="3dp"
android:layout_weight="6" android:layout_weight="6"
android:background="@color/gray" android:background="@color/gray"
android:enabled="false" android:enabled="false"
@@ -688,7 +688,7 @@
android:layout_weight="4" android:layout_weight="4"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="@dimen/custom_margin" android:padding="@dimen/custom_margin"
android:text="Current BP Grade" android:text="@string/current_bp_grade"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/text_14sp" /> android:textSize="@dimen/text_14sp" />
@@ -697,7 +697,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginRight="3dp" android:layout_marginEnd="3dp"
android:layout_weight="6" android:layout_weight="6"
android:background="@color/gray" android:background="@color/gray"
android:enabled="false" android:enabled="false"
@@ -710,15 +710,14 @@
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
<ExpandableListView <com.cpm.lorealbaautomation.utils.NonScrollExpandableListView
android:id="@+id/list" android:id="@+id/list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1800dp" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/custom_margin" android:layout_margin="@dimen/custom_margin"
android:layout_marginBottom="@dimen/custom_margin3dp"
android:cacheColorHint="#00000000" android:cacheColorHint="#00000000"
android:divider="@null" android:divider="@null"
android:dividerHeight="0dp" android:dividerHeight="@dimen/margin1dp"
android:scrollingCache="false" /> android:scrollingCache="false" />
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>
@@ -3,23 +3,15 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal"> android:orientation="horizontal">
<!-- android:background="@drawable/rouded_corner"-->
<!--<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:padding="5dp"
android:src="@drawable/ic_launcher" />&lt;!&ndash;Make sure image is present in Drawable folder&ndash;&gt;
-->
<TextView <TextView
android:id="@+id/tv_ans" android:id="@+id/tv_ans"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:padding="@dimen/custom_margin"
android:text="Demo"
android:gravity="center" android:gravity="center"
android:padding="@dimen/custom_margin"
android:text="Demo"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="@dimen/txt_size_12sp"/> android:textSize="@dimen/sp13" />
</LinearLayout> </LinearLayout>
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl_dialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@mipmap/popup_profile"
android:gravity="center">
</RelativeLayout>
+146
View File
@@ -0,0 +1,146 @@
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:card_view="http://schemas.android.com/tools"
android:id="@+id/card_view"
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
android:layout_width="match_parent"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="@dimen/padding_10dp"
app:cardElevation="@dimen/custom_margin">
<LinearLayout
android:layout_height="wrap_content"
android:layout_margin="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="vertical">
<TextView
android:gravity="center_vertical"
android:id="@+id/txt_question"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/appbar_padding_top"
android:text="@string/settings_video_quality_title"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_14sp"
android:textStyle="bold" />
<LinearLayout
android:id="@+id/rlQImg"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="horizontal"
android:visibility="gone"
android:weightSum="1">
<TextView
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight=".8"
android:layout_width="0dp"
android:padding="@dimen/appbar_padding_top"
android:text="@string/question_image"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_12sp"
android:textStyle="normal" />
<ImageView
android:contentDescription="@string/question_image"
android:id="@+id/questionImg"
android:layout_gravity="center|end"
android:layout_height="@dimen/design_navigation_icon_size"
android:layout_weight=".2"
android:layout_width="0dp"
android:src="@mipmap/camera_star"
card_view:ignore="PrivateResource" />
</LinearLayout>
<LinearLayout
android:id="@+id/editTextlayout"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/appbar_padding_top"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="vertical"
android:weightSum="10">
<LinearLayout
android:background="@drawable/rouded_corner_edt"
android:gravity="center_vertical"
android:id="@+id/rlSpin"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/custom_margin">
<Spinner
android:backgroundTint="@color/colorPrimaryDark"
android:gravity="center"
android:id="@+id/sp_auditAnswer"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin1dp"
android:layout_width="match_parent" />
</LinearLayout>
<EditText
android:autofillHints="false"
android:background="@drawable/rouded_corner_edt"
android:hint="@string/type_your_answer_here"
android:id="@+id/edt_answer"
android:inputType="none"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:padding="@dimen/padding_10dp"
android:textColor="@color/black"
android:textSize="@dimen/text_14sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/rlAnsImg"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_20dp"
android:layout_marginTop="@dimen/appbar_padding_top"
android:layout_marginBottom="@dimen/custom_margin"
android:layout_width="match_parent"
android:orientation="horizontal"
android:weightSum="1">
<TextView
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
android:layout_weight=".8"
android:layout_width="0dp"
android:padding="@dimen/appbar_padding_top"
android:text="@string/anser_image"
android:textColor="@color/black"
android:textSize="@dimen/txt_size_12sp"
android:textStyle="normal" />
<ImageView
android:contentDescription="@string/anser_image"
android:id="@+id/ansImg"
android:layout_gravity="center|end"
android:layout_height="@dimen/design_navigation_icon_size"
android:layout_weight=".2"
android:layout_width="0dp"
android:src="@mipmap/camera_star"
card_view:ignore="PrivateResource" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
@@ -75,13 +75,15 @@
android:id="@+id/nav_leave_ledger" android:id="@+id/nav_leave_ledger"
android:icon="@mipmap/leave_ledger" android:icon="@mipmap/leave_ledger"
android:title="@string/leave_ledger_tba" /> android:title="@string/leave_ledger_tba" />
<item <item
android:id="@+id/nav_services" android:id="@+id/nav_services"
android:icon="@mipmap/serivces" android:icon="@mipmap/serivces"
android:title="@string/menu_service" /> android:title="@string/menu_service" />
<item
android:id="@+id/nav_counter_checkout"
android:icon="@mipmap/checkout_icon"
android:title="@string/menu_counter_checkout" />
<item <item
android:id="@+id/nav_logout" android:id="@+id/nav_logout"
android:icon="@mipmap/logout" android:icon="@mipmap/logout"
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

+1
View File
@@ -67,6 +67,7 @@
<dimen name="text100dp">100dp</dimen> <dimen name="text100dp">100dp</dimen>
<dimen name="text_size_35sp">35sp</dimen> <dimen name="text_size_35sp">35sp</dimen>
<dimen name="dp125">125dp</dimen> <dimen name="dp125">125dp</dimen>
<dimen name="sp13">13sp</dimen>
<integer name="weight">1</integer> <integer name="weight">1</integer>
+9
View File
@@ -43,6 +43,7 @@
<string name="menu_reset_password" translatable="false">Change Password</string> <string name="menu_reset_password" translatable="false">Change Password</string>
<string name="menu_manual_upload" translatable="false">Upload Sync</string> <string name="menu_manual_upload" translatable="false">Upload Sync</string>
<string name="menu_logout" translatable="false">Logout</string> <string name="menu_logout" translatable="false">Logout</string>
<string name="menu_counter_checkout" translatable="false">Checkout</string>
<string name="title_activity_auto_update" translatable="false">AutoUpdateActivity</string> <string name="title_activity_auto_update" translatable="false">AutoUpdateActivity</string>
<string name="new_update_available" translatable="false">New Update Available</string> <string name="new_update_available" translatable="false">New Update Available</string>
<string name="ok" translatable="false">OK</string> <string name="ok" translatable="false">OK</string>
@@ -375,5 +376,13 @@
<string name="distance_from_the_store" translatable="false">your current distance from Store/Counter is </string> <string name="distance_from_the_store" translatable="false">your current distance from Store/Counter is </string>
<string name="you_need_to_be_in_the_store" translatable="false">of the Store/Counter premises to Checkin/Checkout</string> <string name="you_need_to_be_in_the_store" translatable="false">of the Store/Counter premises to Checkin/Checkout</string>
<string name="first_geotag_the_store" translatable="false">You need to geotag Store/Counter.</string> <string name="first_geotag_the_store" translatable="false">You need to geotag Store/Counter.</string>
<string name="selfie_checkout_msg" translatable="false">Click Selfie in front of counter at Checkout</string>
<string name="question_image" translatable="false">Question Image</string>
<string name="type_your_answer_here" translatable="false">type your answer here.</string>
<string name="anser_image" translatable="false">Answer Image</string>
<string name="mandatory_daily_questionnaire_at_the_time_of_check_out" translatable="false">Mandatory daily questionnaire at the time of check-out</string>
<string name="current_bp_grade">Current BP Grade</string>
<string name="first_please_complete_your_profile">First, please complete your profile.</string>
////
</resources> </resources>
+30
View File
@@ -111,4 +111,34 @@
<item name="android:textColor">#000000</item> <!-- Optional --> <item name="android:textColor">#000000</item> <!-- Optional -->
</style> </style>
<style name="RoundedCornerImageView" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">16dp</item>
</style>
<style name="MyMaterialAlertDialog" parent="Theme.MaterialComponents.Light.Dialog.Alert">
<!-- Dialog background -->
<item name="android:background">@color/white</item>
<item name="colorSurface">@color/white</item>
<!-- Text and icon color -->
<item name="android:textColorPrimary">@color/black</item>
<item name="colorOnSurface">@color/black</item>
<!-- Button and branding colors -->
<item name="colorPrimary">@color/colorPrimary</item>
<!-- Title & message appearance -->
<item name="textAppearanceHeadline6">@style/DialogTitleText</item>
<item name="textAppearanceBody2">@style/DialogMessageText</item>
</style>
<style name="DialogTitleText" parent="TextAppearance.MaterialComponents.Headline6">
<item name="android:textColor">@color/black</item>
</style>
<style name="DialogMessageText" parent="TextAppearance.MaterialComponents.Body2">
<item name="android:textColor">@color/black</item>
</style>
</resources> </resources>
+1 -1
View File
@@ -20,5 +20,5 @@ android {
dependencies { dependencies {
implementation 'com.github.rey5137:material:1.2.2' implementation 'com.github.rey5137:material:1.2.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.0.0' implementation 'com.google.android.material:material:1.12.0'
} }
@@ -1 +0,0 @@
o/debug
@@ -1,2 +0,0 @@
#- File Locator -
listingFile=../../../outputs/apk/androidTest/debug/output-metadata.json
@@ -1,4 +1,4 @@
#Mon Jun 23 15:27:46 IST 2025 #Wed Jul 02 13:00:40 IST 2025
com.androidbuts.multispinnerfilter.library-main-6\:/layout/activity_main.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\activity_main.xml com.androidbuts.multispinnerfilter.library-main-6\:/layout/activity_main.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\activity_main.xml
com.androidbuts.multispinnerfilter.library-main-6\:/layout/alert_dialog_listview_search.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\alert_dialog_listview_search.xml com.androidbuts.multispinnerfilter.library-main-6\:/layout/alert_dialog_listview_search.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\alert_dialog_listview_search.xml
com.androidbuts.multispinnerfilter.library-main-6\:/layout/item_listview_single.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\item_listview_single.xml com.androidbuts.multispinnerfilter.library-main-6\:/layout/item_listview_single.xml=D\:\\jeevanp_cpm_projects\\LorealBaFixedVersionIssue\\RaviLatestCode19JUNE025\\LorealBA_AutomationLatest\\library\\build\\intermediates\\packaged_res\\debug\\layout\\item_listview_single.xml

Some files were not shown because too many files have changed in this diff Show More