diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 0000000..8b7f4af
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index e82c099..6229e93 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -42,26 +42,10 @@
-
+
-
-
-
-
- 1.8
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/GSKMTOrange/build.gradle b/GSKMTOrange/build.gradle
index b564ca2..3dd0cec 100644
--- a/GSKMTOrange/build.gradle
+++ b/GSKMTOrange/build.gradle
@@ -38,7 +38,7 @@ android {
//For SA
versionCode 22
- versionName "3.5"
+ versionName "3.4"
multiDexEnabled true
diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml
index 0d091f0..e8f5934 100644
--- a/GSKMTOrange/src/main/AndroidManifest.xml
+++ b/GSKMTOrange/src/main/AndroidManifest.xml
@@ -1,7 +1,6 @@
-
@@ -11,7 +10,8 @@
-
+
+
+
+
-
-
-
-
-
+ android:theme="@style/AppTheme.NoActionBar" />
-
-
+ android:windowSoftInputMode="adjustPan" />
+ android:theme="@style/AppTheme.NoActionBar"
+ android:windowSoftInputMode="adjustPan" />
+ android:exported="false"
+ android:grantUriPermissions="true">
+ android:resource="@xml/provider_paths" />
-
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java
index 262c0af..fff3330 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/Database/GSKOrangeDB.java
@@ -86,7 +86,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.TableBean;
*/
public class GSKOrangeDB extends SQLiteOpenHelper {
- public static final String DATABASE_NAME = "GSK_ORANGE_DB46";
+ public static final String DATABASE_NAME = "GSK_ORANGE_DB48";
public static final int DATABASE_VERSION = 15;
TableBean tableBean;
private SQLiteDatabase db;
@@ -205,6 +205,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
db.execSQL(CommonString.CREATE_TABLE_DELIVERY_CALLS);//--Added 09.10.2018
db.execSQL(CommonString.CREATE_TABLE_INSERT_PROMO_SKUWISE);//--Added 10.12.2018
db.execSQL(CommonString.CREATE_TABLE_INSERT_PROMO_SKUWISE_EXISTS);//--Added 11.12.2018
+ db.execSQL(CommonString.CREATE_ABLE_IS_ADHOC_SAVED);//--Added 20.02.2019
} catch (SQLException e) {
e.printStackTrace();
@@ -354,16 +355,16 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
}
- public ArrayList getT2PDefaultData(String store_id, String category_id) {
+ public ArrayList getT2PDefaultData(String store_id, String category_id, String tableName) {
ArrayList t2PList = new ArrayList<>();
Cursor dbcursor = null;
try {
- dbcursor = db.rawQuery("Select BM.BRAND As BRAND, BM.BRAND_ID As BRAND_ID, DM.DISPLAY As DISPLAY, " +
+ dbcursor = db.rawQuery("Select DISTINCT BM.BRAND As BRAND, BM.BRAND_ID As BRAND_ID, DM.DISPLAY As DISPLAY, " +
"DM.DISPLAY_ID As DISPLAY_ID, DM.IMAGE_URL As IMAGE_URL, DM.IMAGE_PATH As IMAGE_PATH, " +
- "T.CATEGORY_FIXTURE As CATEGORY_FIXTURE from BRAND_MASTER BM INNER JOIN MAPPING_T2P T " +
+ "T.CATEGORY_FIXTURE As CATEGORY_FIXTURE from BRAND_MASTER BM INNER JOIN "+ tableName +" T " +
"ON BM.BRAND_ID = T.BRAND_ID INNER JOIN DISPLAY_MASTER DM " +
"ON T.DISPLAY_ID= DM.DISPLAY_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BM.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " +
"WHERE T.STORE_ID = '" + store_id + "' AND SCM.CATEGORY_ID ='" + category_id + "'", null);
@@ -463,7 +464,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
//get Brand data for T2P
- public ArrayList getBrandT2PData(String store_type_id, String class_id, String key_account_id, String category_id, String store_id) {
+ public ArrayList getBrandT2PData(String store_type_id, String class_id, String key_account_id, String category_id, String store_id, String tableName) {
ArrayList brandList = new ArrayList<>();
Cursor dbcursor = null;
@@ -471,7 +472,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
try {
if(key_account_id!=null){
- dbcursor = db.rawQuery("SELECT * FROM(SELECT DISTINCT BR.BRAND_ID, SCM.SUB_CATEGORY||'-'||BR.BRAND AS BRAND FROM MAPPING_STOCK MS " +
+ dbcursor = db.rawQuery("SELECT * FROM(SELECT DISTINCT BR.BRAND_ID, SCM.SUB_CATEGORY||'-'||BR.BRAND AS BRAND FROM " + tableName + " MS " +
"INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID " +
"INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' " +
"AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND BR.COMPANY_ID ='1' AND SCM.CATEGORY_ID = '" + category_id + "' ORDER BY SCM.SUB_CATEGORY_SEQUENCE, BR.BRAND_SEQUENCE ) As Brand", null);
@@ -516,7 +517,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
//get Sku data for T2P
- public ArrayList getSkuT2PData(String store_type_id, String class_id, String key_account_id, String brand_id, String store_id) {
+ public ArrayList getSkuT2PData(String store_type_id, String class_id, String key_account_id, String brand_id, String store_id, String tableName) {
ArrayList skuList = new ArrayList<>();
Cursor dbcursor = null;
@@ -524,7 +525,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
try {
if(key_account_id!=null){
- dbcursor = db.rawQuery("SELECT DISTINCT SM.SKU, SM.SKU_ID, BR.BRAND_ID FROM MAPPING_STOCK MS INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " +
+ dbcursor = db.rawQuery("SELECT DISTINCT SM.SKU, SM.SKU_ID, BR.BRAND_ID FROM "+ tableName +" MS INNER JOIN SKU_MASTER SM ON MS.SKU_ID = SM.SKU_ID " +
"INNER JOIN BRAND_MASTER BR ON SM.BRAND_ID=BR.BRAND_ID INNER JOIN SUB_CATEGORY_MASTER SCM ON BR.SUB_CATEGORY_ID = SCM.SUB_CATEGORY_ID " +
"WHERE MS.KEYACCOUNT_ID ='" + key_account_id + "' AND STORETYPE_ID ='" + store_type_id + "' AND CLASS_ID = '" + class_id + "' AND SM.BRAND_ID='" + brand_id + "' " +
"AND MS.SHOW_ADDITIONAL_VISIBILITY='1' ORDER BY SM.PROMO_SKU, SM.SKU", null);
@@ -825,7 +826,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
}
- public void updateDataStatus(String id, String status) {
+ public void updateDataStatus(String id, String status, String table_name) {
ContentValues values = new ContentValues();
@@ -1005,8 +1006,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
}
- public void InsertMappingStock(MappingStockGetterSetter data) {
- db.delete("MAPPING_STOCK", null, null);
+ public void InsertMappingStock(MappingStockGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -1020,15 +1021,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("MBQ", data.getMBQ().get(i));
values.put("SHOW_ADDITIONAL_VISIBILITY", data.getSHOW_ADDITIONAL_VISIBILITY().get(i));
- db.insert("MAPPING_STOCK", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " in MAPPING_STOCK " + ex.toString());
+ Log.d("Exception ", " in " + tableName + ex.toString());
}
}
- public void InsertMAPPING_T2P(MAPPINGT2PGetterSetter data) {
- db.delete("MAPPING_T2P", null, null);
+ public void InsertMAPPING_T2P(MAPPINGT2PGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -1039,16 +1040,16 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("DISPLAY_ID", data.getDISPLAY_ID().get(i));
values.put("CATEGORY_FIXTURE", data.getCATEGORY_FIXTURE().get(i));
- db.insert("MAPPING_T2P", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " in MAPPING_T2P " + ex.toString());
+ Log.d("Exception ", " in "+ tableName + ex.toString());
}
}
//Category List
- public ArrayList getCategoryListData(String keyAccountId, String storeTypeId, String classId, String store_id) {
+ public ArrayList getCategoryListData(String keyAccountId, String storeTypeId, String classId, String store_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -1056,7 +1057,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
if(keyAccountId!=null){
dbcursor = db.rawQuery("Select DISTINCT CA.CATEGORY_ID,CA.CATEGORY " +
- "from MAPPING_STOCK M " +
+ "from " + tableName + " M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -1653,8 +1654,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
- public void InsertMAPPING_ADDITIONAL_PROMOTION(MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter data) {
- db.delete("MAPPING_ADDITIONAL_PROMOTION", null, null);
+ public void InsertMAPPING_ADDITIONAL_PROMOTION(MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -1666,15 +1667,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("PROMO_ID", data.getPROMO_ID().get(i));
values.put("PROMO", data.getPROMO().get(i));
- db.insert("MAPPING_ADDITIONAL_PROMOTION", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " in MAPPING_ADDITIONAL_PROMOTION " + ex.toString());
+ Log.d("Exception ", " in " + tableName + ex.toString());
}
}
- public void InsertMAPPING_PROMOTION(MappingPromotionGetterSetter data) {
- db.delete("MAPPING_PROMOTION", null, null);
+ public void InsertMAPPING_PROMOTION(MappingPromotionGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -1686,21 +1687,21 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("PROMO_ID", data.getPROMO_ID().get(i));
values.put("PROMO", data.getPROMO().get(i));
- db.insert("MAPPING_PROMOTION", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " in MAPPING_PROMOTION " + ex.toString());
+ Log.d("Exception ", " in "+ tableName + ex.toString());
}
}
//Promo Compliance
- public ArrayList getPromoComplianceSkuData(String store_id, String category_id) {
+ public ArrayList getPromoComplianceSkuData(String store_id, String category_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
try {
dbcursor = db.rawQuery("Select M.* " +
- "from MAPPING_PROMOTION M " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -1743,7 +1744,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return list;
}
- public ArrayList getPromoSpinnerData(String store_id, String category_id) {
+ public ArrayList getPromoSpinnerData(String store_id, String category_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -1754,8 +1755,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
list.add(promo);
- dbcursor = db.rawQuery("Select M.* " +
- "from MAPPING_ADDITIONAL_PROMOTION M " +
+ dbcursor = db.rawQuery("Select DISTINCT M.* " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -2361,8 +2362,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
//Store wise Performance
- public void InsertSTORE_PERFORMANCE(STORE_PERFORMANCE_MasterGetterSetter data) {
- db.delete("STORE_PERFORMANCE_NEW", null, null);
+ public void InsertSTORE_PERFORMANCE(STORE_PERFORMANCE_MasterGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -2379,15 +2380,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("ORDERID", data.getORDERID().get(i));
values.put("PLANOGRAM", data.getPLANOGRAM().get(i));
- db.insert("STORE_PERFORMANCE_NEW", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " STORE_PERFORMANCE_NEW " + ex.toString());
+ Log.d("Exception ", tableName + ex.toString());
}
}
//Category wise Performance
- public ArrayList getCategoryWisePerformance(String store_id, String category_id) {
+ public ArrayList getCategoryWisePerformance(String store_id, String category_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -2423,15 +2424,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return list;
}
- public ArrayList getStoreWisePerformance(String store_id) {
+ public ArrayList getStoreWisePerformance(String store_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
try {
dbcursor = db.rawQuery("Select PERIOD, ROUND(avg(MSL),1) as MSL,ROUND(avg(sos),1) as SOS ," +
" ROUND(avg(t2p),1) as T2P,ROUND(avg(pROMO),1) as PROMO , ROUND(avg(pLANOGRAM),1) as PLANOGRAM, ROUND(SUM(oss),1) AS OSS " +
- "from STORE_PERFORMANCE_NEW " +
- "where STORE_ID='" + store_id + "' " +
+ "from "+ tableName +
+ " where STORE_ID='" + store_id + "' " +
"GROUP BY PERIOD " +
"ORDER BY ORDERID ", null);
@@ -3273,8 +3274,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
//Gagan start new code 2
- public void InsertMAPPING_PLANOGRAM(MAPPING_PLANOGRAM_MasterGetterSetter data) {
- db.delete("MAPPING_PLANOGRAM", null, null);
+ public void InsertMAPPING_PLANOGRAM(MAPPING_PLANOGRAM_MasterGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -3287,14 +3288,14 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("PLANOGRAM_IMAGE", data.getPLANOGRAM_IMAGE().get(i));
values.put("IMAGE_PATH", data.getIMAGE_PATH().get(i));
- db.insert("MAPPING_PLANOGRAM", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " MAPPING_PLANOGRAM " + ex.toString());
+ Log.d("Exception ", tableName + " " + ex.toString());
}
}
- public ArrayList getMappingPlanogramData(String category_id, String store_type_id, String class_id, String store_id) {
+ public ArrayList getMappingPlanogramData(String category_id, String store_type_id, String class_id, String store_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
try {
@@ -3646,13 +3647,13 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return filled;
}
- public boolean isMappingPromotionData(String store_id, String category_id) {
+ public boolean isMappingPromotionData(String store_id, String category_id, String tableName) {
boolean filled = false;
Cursor dbcursor = null;
try {
dbcursor = db.rawQuery("Select M.* " +
- "from MAPPING_PROMOTION M " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -3720,14 +3721,14 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return filled;
}
- public boolean isMappingStockDataStockFacing(String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id) {
+ public boolean isMappingStockDataStockFacing(String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName) {
boolean filled = false;
Cursor dbcursor = null;
try {
if(keyAccount_id!=null){
- dbcursor = db.rawQuery("Select M.* from MAPPING_STOCK M " +
+ dbcursor = db.rawQuery("Select M.* from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -3775,12 +3776,12 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
- public boolean isMappingT2PData(String store_id, String category_id) {
+ public boolean isMappingT2PData(String store_id, String category_id, String tableName) {
boolean filled = false;
Cursor dbcursor = null;
try {
- dbcursor = db.rawQuery("SELECT * FROM MAPPING_T2P M INNER JOIN BRAND_MASTER BR ON M.BRAND_ID = BR.BRAND_ID " +
+ dbcursor = db.rawQuery("SELECT * FROM "+ tableName +" M INNER JOIN BRAND_MASTER BR ON M.BRAND_ID = BR.BRAND_ID " +
"INNER JOIN SUB_CATEGORY_MASTER SB ON BR.SUB_CATEGORY_ID = SB.SUB_CATEGORY_ID " +
"INNER JOIN CATEGORY_MASTER CA ON SB.CATEGORY_ID = CA.CATEGORY_ID " +
"WHERE M.STORE_ID = '" + store_id + "' AND CA.CATEGORY_ID= '" + category_id + "'", null);
@@ -3802,13 +3803,13 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return filled;
}
- public boolean isMappingAdditionalPromotionData(String store_id, String category_id) {
+ public boolean isMappingAdditionalPromotionData(String store_id, String category_id, String tableName) {
boolean filled = false;
Cursor dbcursor = null;
try {
dbcursor = db.rawQuery("Select M.* " +
- "from MAPPING_ADDITIONAL_PROMOTION M " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -3870,8 +3871,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
return false;
}
- public void InsertMAPPING_SOS_TARGET(MAPPING_SOS_TARGET_MasterGetterSetter data) {
- db.delete("MAPPING_SOS_TARGET", null, null);
+ public void InsertMAPPING_SOS_TARGET(MAPPING_SOS_TARGET_MasterGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -3881,15 +3882,15 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("BRAND_ID", data.getBRAND_ID().get(i));
values.put("SOS_TARGET", data.getSOS_TARGET().get(i));
- db.insert("MAPPING_SOS_TARGET", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
- Log.d("Exception ", " MAPPING_SOS_TARGET " + ex.toString());
+ Log.d("Exception ", tableName +" " + ex.toString());
}
}
- public ArrayList getBrandAvailbilitydata(String store_id, String category_id, String keyAccount_id, String class_id, String storeType_id) {
+ public ArrayList getBrandAvailbilitydata(String store_id, String category_id, String keyAccount_id, String class_id, String storeType_id, String tableName) {
Cursor cursordata = null;
ArrayList Data = new ArrayList();
@@ -3900,7 +3901,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
"INNER JOIN SUB_CATEGORY_MASTER SB ON BR.SUB_CATEGORY_ID = SB.SUB_CATEGORY_ID " +
"INNER JOIN CATEGORY_MASTER CA ON SB.CATEGORY_ID = CA.CATEGORY_ID " +
"INNER JOIN " +
- "(SELECT DISTINCT SKU_ID FROM MAPPING_STOCK WHERE KEYACCOUNT_ID = '" + keyAccount_id + "' AND STORETYPE_ID = '" + storeType_id + "' AND CLASS_ID = '" + class_id + "') A " +
+ "(SELECT DISTINCT SKU_ID FROM "+ tableName +" WHERE KEYACCOUNT_ID = '" + keyAccount_id + "' AND STORETYPE_ID = '" + storeType_id + "' AND CLASS_ID = '" + class_id + "') A " +
"ON SK.SKU_ID = A.SKU_ID " +
"WHERE CA.CATEGORY_ID = '" + category_id + "'", null);
}
@@ -4453,14 +4454,14 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
// get CATEGORY PICTURE data
- public ArrayList getCategoryPicturedata(String categoryId, String key_account_id, String store_type_id, String class_id, String store_id) {
+ public ArrayList getCategoryPicturedata(String categoryId, String key_account_id, String store_type_id, String class_id, String store_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
try {
if(key_account_id!=null){
- dbcursor = db.rawQuery("SELECT DISTINCT SB.SUB_CATEGORY_ID, MIA.IMAGE_ALLOW,SB.SUB_CATEGORY FROM MAPPING_STOCK M INNER JOIN SKU_MASTER SK ON M.SKU_ID = SK.SKU_ID" +
+ dbcursor = db.rawQuery("SELECT DISTINCT SB.SUB_CATEGORY_ID, MIA.IMAGE_ALLOW,SB.SUB_CATEGORY FROM "+ tableName +" M INNER JOIN SKU_MASTER SK ON M.SKU_ID = SK.SKU_ID" +
" INNER JOIN BRAND_MASTER BR ON SK.BRAND_ID = BR.BRAND_ID" +
" INNER JOIN SUB_CATEGORY_MASTER SB ON BR.SUB_CATEGORY_ID = SB.SUB_CATEGORY_ID" +
" INNER JOIN CATEGORY_MASTER CA ON SB.CATEGORY_ID = CA.CATEGORY_ID" +
@@ -5064,7 +5065,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
//14-03-2017
//MSL_Availability_StockFacing
public ArrayList getMSL_Availability_StockFacingHeaderData(
- String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id) {
+ String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName, String tableMappingSOS) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -5073,8 +5074,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
if(keyAccount_id!=null){
dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND,BR.COMPANY_ID ," +
- " (SELECT SUM(SOS_TARGET) FROM MAPPING_SOS_TARGET WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
- "from MAPPING_STOCK M " +
+ " (SELECT SUM(SOS_TARGET) FROM "+ tableMappingSOS +" WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -5089,7 +5090,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
else {
dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND,BR.COMPANY_ID ," +
- " (SELECT SUM(SOS_TARGET) FROM MAPPING_SOS_TARGET WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
+ " (SELECT SUM(SOS_TARGET) FROM "+ tableMappingSOS +" WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
"from MAPPING_STOCK_STOREWISE M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
@@ -5100,7 +5101,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
"inner join CATEGORY_MASTER CA " +
"on SB.CATEGORY_ID=CA.CATEGORY_ID " +
"where CA.CATEGORY_ID='" + category_id + "' AND M.STORE_ID = '" + store_id + "'" +
- " order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND", null);
+ " order by SB.SUB_CATEGORY, BR.COMPANY_ID,BR.BRAND_SEQUENCE", null);
+ //" order by SB.SUB_CATEGORY,BR.COMPANY_ID,BR.BRAND, BR.BRAND_SEQUENCE", null);
}
@@ -5148,7 +5150,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
public ArrayList getMSL_Availability_StockFacingSKUData(
- String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id) {
+ String category_id, String brand_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -5157,7 +5159,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
if(keyAccount_id!=null){
dbcursor = db.rawQuery("Select DISTINCT SK.SKU_ID,SK.SKU,SK.MRP,SK.SKU_SEQUENCE,M.MBQ,BR.COMPANY_ID,M.MUST_HAVE " +
- "from MAPPING_STOCK M " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -5749,7 +5751,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
//Stock N Facing
public ArrayList getStockFacingHeaderData(
- String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id) {
+ String category_id, String keyAccount_id, String storeType_id, String class_id, String store_id, String tableName, String tableMappingSOSTarget) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
@@ -5758,8 +5760,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
if(keyAccount_id!=null){
dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND,BR.COMPANY_ID ," +
- " (SELECT SUM(SOS_TARGET) FROM MAPPING_SOS_TARGET WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
- "from MAPPING_STOCK M " +
+ " (SELECT SUM(SOS_TARGET) FROM "+ tableMappingSOSTarget +" WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
+ "from "+ tableName +" M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
"inner join BRAND_MASTER BR " +
@@ -5774,7 +5776,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
else {
dbcursor = db.rawQuery("Select DISTINCT SB.SUB_CATEGORY_ID,SB.SUB_CATEGORY,BR.BRAND_ID,BR.BRAND,BR.COMPANY_ID ," +
- " (SELECT SUM(SOS_TARGET) FROM MAPPING_SOS_TARGET WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
+ " (SELECT SUM(SOS_TARGET) FROM "+ tableMappingSOSTarget +" WHERE STORE_ID = 1 AND BRAND_ID = BR.BRAND_ID)AS SOS_TARGET " +
"from MAPPING_STOCK_STOREWISE M " +
"inner join SKU_MASTER SK " +
"on M.SKU_ID=SK.SKU_ID " +
@@ -5939,6 +5941,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("QUESTION_ID", data.getQUESTION_ID());
values.put("QUESTION", data.getQUESTION());
values.put("ANSWER_ID", data.getANSWER_ID());
+ values.put("ANSWER", data.getANSWER().replaceAll("[&^<>{}'$]", ""));
values.put("ANSWER_TYPE", data.getANSWER_TYPE());
values.put("CATEGORY_ID", category_cd);
values.put("ANS_CAM_IMAGE", data.getCAM_IMAGE());
@@ -5968,6 +5971,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
sb.setQUESTION_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION_ID")));
sb.setQUESTION(dbcursor.getString(dbcursor.getColumnIndexOrThrow("QUESTION")));
sb.setANSWER_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_ID")));
+ sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER")));
sb.setANSWER_TYPE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER_TYPE")));
sb.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID")));
sb.setCAM_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE")));
@@ -6008,6 +6012,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
sb.setCATEGORY_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow("CATEGORY_ID")));
sb.setCAM_IMAGE(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE")));
sb.setCAM_IMAGE2(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANS_CAM_IMAGE2")));
+ sb.setANSWER(dbcursor.getString(dbcursor.getColumnIndexOrThrow("ANSWER")));
list.add(sb);
dbcursor.moveToNext();
@@ -6550,8 +6555,8 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
}
//NO_CAMERA_LAST_VISIT_DATA
- public void InsertNO_CAMERA_LAST_VISIT_DATA(NoCameraLastVisitGetterSetter data) {
- db.delete("NO_CAMERA_LAST_VISIT_DATA", null, null);
+ public void InsertNO_CAMERA_LAST_VISIT_DATA(NoCameraLastVisitGetterSetter data, String tableName) {
+ db.delete(tableName, null, null);
ContentValues values = new ContentValues();
try {
@@ -6568,7 +6573,7 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
values.put("FACING", data.getFACING().get(i));
values.put("IS_VERTICAL", data.getIS_VERTICAL().get(i));
- db.insert("NO_CAMERA_LAST_VISIT_DATA", null, values);
+ db.insert(tableName, null, values);
}
} catch (Exception ex) {
Log.d("Exception ", " in NO_CAMERA_LAST_VISIT_DATA " + ex.toString());
@@ -6578,14 +6583,14 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
//get no camera category drag drop
//get for specific sub category id
public ArrayList getNoCameraLastVisitCategoryData(
- String store_id, String category_id, String subcategory_id) {
+ String store_id, String category_id, String subcategory_id, String tableName) {
ArrayList list = new ArrayList<>();
Cursor dbcursor = null;
try {
- dbcursor = db.rawQuery("SELECT * FROM NO_CAMERA_LAST_VISIT_DATA WHERE " + CommonString.KEY_STORE_ID + " = '" + store_id
+ dbcursor = db.rawQuery("SELECT * FROM "+ tableName +" WHERE " + CommonString.KEY_STORE_ID + " = '" + store_id
+ "' AND " + CommonString.KEY_CATEGORY_ID + " ='" + category_id
+ "' AND " + CommonString.KEY_SUB_CATEGORY_ID + " ='" + subcategory_id + "'", null);
@@ -7276,4 +7281,56 @@ public class GSKOrangeDB extends SQLiteOpenHelper {
Log.d("Exception ", " MAPPING_PLANOGRAM_STORE_WISE " + ex.toString());
}
}
+
+ //Adhoc is filled
+ public boolean isFilledAdhoc(String store_id, String visitDate) {
+ //Log.d("MAPPING_STOCK_ADHOC ", "MAPPING_STOCK_ADHOC data--------------->Start<------------");
+ ArrayList list = new ArrayList<>();
+ Cursor dbcursor = null;
+
+ try {
+ dbcursor = db.rawQuery("SELECT * FROM " + CommonString.TABLE_IS_ADHOC_SAVED + " where " +
+ CommonString.KEY_STORE_ID + "='" + store_id + "' AND " +
+ CommonString.KEY_VISIT_DATE + "='" + visitDate + "'", null);
+
+ if (dbcursor != null) {
+ if (dbcursor.moveToFirst()) {
+ do {
+ JourneyPlanGetterSetter tp = new JourneyPlanGetterSetter();
+
+ tp.setSTORE_ID(dbcursor.getString(dbcursor.getColumnIndexOrThrow(CommonString.KEY_STORE_ID)));
+ list.add(tp);
+ } while (dbcursor.moveToNext());
+ }
+ dbcursor.close();
+
+ if (list.size() > 0) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ } catch (Exception e) {
+ Log.d("Exception ", "when fetching Records!!!!" + e.toString());
+ return false;
+ }
+
+ return false;
+ }
+
+ public void InsertAdhocFilled(String store_id, String visitDate) {
+ db.delete(CommonString.TABLE_IS_ADHOC_SAVED, null, null);
+
+ ContentValues values = new ContentValues();
+ try {
+
+ values.put(CommonString.KEY_STORE_ID, store_id);
+ values.put(CommonString.KEY_VISIT_DATE, visitDate);
+
+ db.insert(CommonString.TABLE_IS_ADHOC_SAVED, null, values);
+
+ } catch (Exception ex) {
+ Log.d("Exception ", " in "+ CommonString.TABLE_IS_ADHOC_SAVED + ex.toString());
+ }
+ }
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java
index 2ec7334..6ffdacb 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java
@@ -79,6 +79,7 @@ import cpm.com.gskmtorange.GetterSetter.GeotaggingBeans;
import cpm.com.gskmtorange.R;
import cpm.com.gskmtorange.constant.CommonFunctions;
import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.dailyentry.StoreimageActivity;
import cpm.com.gskmtorange.messgae.AlertMessage;
import cpm.com.gskmtorange.upload.Base64;
import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter;
@@ -102,7 +103,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
FloatingActionButton fab, fabcarmabtn;
SupportMapFragment mapFragment;
SharedPreferences preferences;
- String username, storeid, str, storename, visitData;
+ String username, storeid, str, visitData, store_flag_str;//storename;
GSKOrangeDB db;
LocationManager locationManager;
Geocoder geocoder;
@@ -144,9 +145,11 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
username = preferences.getString(CommonString.KEY_USERNAME, null);
- storeid = preferences.getString(CommonString.KEY_STORE_ID, null);
- storename = preferences.getString(CommonString.KEY_STORE_NAME, null);
+ //storeid = preferences.getString(CommonString.KEY_STORE_ID, null);
+ //storename = preferences.getString(CommonString.KEY_STORE_NAME, null);
visitData = preferences.getString(CommonString.KEY_VISIT_DATE, null);
+ store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG);
+ storeid = getIntent().getStringExtra(CommonString.KEY_STORE_ID);
final PackageManager packageManager = getPackageManager();
@@ -268,7 +271,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
}
}*/
- _pathforcheck = storeid +"GeoTag" + visitData.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg";
+ _pathforcheck = storeid + "GeoTag" + visitData.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg";
_path = CommonString.FILE_PATH + _pathforcheck;
@@ -290,7 +293,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
PLAY_SERVICES_RESOLUTION_REQUEST).show();
} else {
- Toast.makeText(getApplicationContext(),getResources().getString(R.string.notsuppoted)
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.notsuppoted)
, Toast.LENGTH_LONG)
.show();
finish();
@@ -338,6 +341,16 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
@Override
public void onConnected(Bundle bundle) {
+ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
@@ -568,9 +581,9 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
if (new File(str + _pathforcheck).exists()) {
- fabcarmabtn.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.mipmap.camera_icon_done));
+ fabcarmabtn.setImageDrawable(ContextCompat.getDrawable(getApplicationContext(), R.mipmap.camera_green));
- fabcarmabtn.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#4DB6AC")));
+ //fabcarmabtn.setBackgroundTintList(ColorStateList.valueOf(Color.parseColor("#4DB6AC")));
img_str = _pathforcheck;
_pathforcheck = "";
@@ -707,8 +720,12 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
for (int i = 0; i < geotaglist.size(); i++) {
db.updateGeoTagData(geotaglist.get(i).storeid, statusD);
- db.updateDataStatus(geotaglist.get(i).getStoreid(), statusD);
-
+ if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ db.updateDataStatus(geotaglistImage.get(i).getStoreid(), statusD, CommonString.KEY_ADHOC_JOURNEY_PLAN);
+ }
+ else {
+ db.updateDataStatus(geotaglistImage.get(i).getStoreid(), statusD, CommonString.KEY_JOURNEY_PLAN);
+ }
}
} else {
@@ -748,7 +765,9 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
ex.printStackTrace();
Intent intent = new Intent(
GeoTagActivity.this,
- GeoTagStoreList.class);
+ StoreimageActivity.class);
+ intent.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
+ intent.putExtra(CommonString.KEY_STORE_ID, storeid);
startActivity(intent);
@@ -762,7 +781,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
e.printStackTrace();
Intent intent = new Intent(
GeoTagActivity.this,
- GeoTagStoreList.class);
+ StoreimageActivity.class);
startActivity(intent);
@@ -929,7 +948,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
Crashlytics.logException(new Exception(e.getCause()));
Intent intent = new Intent(
GeoTagActivity.this,
- GeoTagStoreList.class);
+ StoreimageActivity.class);
startActivity(intent);
@@ -961,7 +980,13 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
db.updateGeoTagData(geotaglistImage.get(i).getStoreid(), Statustag);
- db.updateDataStatus(geotaglistImage.get(i).getStoreid(), Statustag);
+ if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ db.updateDataStatus(geotaglistImage.get(i).getStoreid(), Statustag, CommonString.KEY_ADHOC_JOURNEY_PLAN);
+ }
+ else {
+ db.updateDataStatus(geotaglistImage.get(i).getStoreid(), Statustag, CommonString.KEY_JOURNEY_PLAN);
+ }
+
db.deleteGeoTagData(geotaglistImage.get(i).getStoreid());
@@ -976,7 +1001,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
Intent intent = new Intent(
GeoTagActivity.this,
- GeoTagStoreList.class);
+ StoreimageActivity.class);
startActivity(intent);
@@ -995,7 +1020,7 @@ public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallb
Toast.makeText(getApplicationContext(),getResources().getString(R.string.failure),Toast.LENGTH_LONG).show();
Intent intent = new Intent(
GeoTagActivity.this,
- GeoTagStoreList.class);
+ StoreimageActivity.class);
startActivity(intent);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java
index c9f877b..fa156c8 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java
@@ -4,13 +4,17 @@ import android.Manifest;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
+import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.IntentSender;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
+import android.location.Location;
+import android.location.LocationManager;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
@@ -32,8 +36,22 @@ import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
+import android.widget.Toast;
import com.crashlytics.android.Crashlytics;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.GooglePlayServicesUtil;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.PendingResult;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.api.Status;
+import com.google.android.gms.location.LocationListener;
+import com.google.android.gms.location.LocationRequest;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.location.LocationSettingsRequest;
+import com.google.android.gms.location.LocationSettingsResult;
+import com.google.android.gms.location.LocationSettingsStatusCodes;
+import com.google.android.gms.maps.model.LatLng;
import com.google.firebase.analytics.FirebaseAnalytics;
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
@@ -62,6 +80,7 @@ import java.util.concurrent.TimeUnit;
import cpm.com.gskmtorange.autoupdate.AutoUpdateActivity;
import cpm.com.gskmtorange.constant.CommonFunctions;
import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.password.MPinActivity;
import cpm.com.gskmtorange.upload.UploadImageWithRetrofit;
import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter;
@@ -73,7 +92,7 @@ import static android.Manifest.permission.READ_CONTACTS;
/**
* A login screen that offers login via userid/password.
*/
-public class LoginActivity extends AppCompatActivity {
+public class LoginActivity extends AppCompatActivity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
private static final int MY_PERMISSIONS_REQUEST_CAMERA = 10;
private static final int MY_PERMISSIONS_REQUEST_LOCATION = 11;
@@ -105,8 +124,8 @@ public class LoginActivity extends AppCompatActivity {
"foo@example.com:hello", "bar@example.com:world"
};
- String lat = "0.0";
- String lon = "0.0";
+ double lat = 0.0;
+ double lon = 0.0;
// UI references.
private AutoCompleteTextView museridView;
@@ -124,6 +143,16 @@ public class LoginActivity extends AppCompatActivity {
Trace myTrace;
+ GoogleApiClient mGoogleApiClient;
+ private static int UPDATE_INTERVAL = 200; // 5 sec
+ private static int FATEST_INTERVAL = 100; // 1 sec
+ private static int DISPLACEMENT = 1; // 10 meters
+ private static final int REQUEST_LOCATION = 1;
+ private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000;
+ private Location mLastLocation;
+ private LocationRequest mLocationRequest;
+ private Context context;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -133,6 +162,8 @@ public class LoginActivity extends AppCompatActivity {
setContentView(R.layout.activity_login);
+ context = this;
+
// Obtain the FirebaseAnalytics instance.
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
@@ -187,8 +218,8 @@ public class LoginActivity extends AppCompatActivity {
museridSignInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
- checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
- //attemptLogin();
+ //checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
+ attemptLogin();
}
});
@@ -207,6 +238,8 @@ public class LoginActivity extends AppCompatActivity {
file_planogram.mkdir();
}*/
+ checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
+
}
/* private void populateAutoComplete() {
@@ -239,19 +272,6 @@ public class LoginActivity extends AppCompatActivity {
return false;
}
- /**
- * Callback received when a permissions request has been completed.
- */
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
- @NonNull int[] grantResults) {
- if (requestCode == REQUEST_READ_CONTACTS) {
- if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- //populateAutoComplete();
- }
- }
- }
-
/**
* Attempts to sign in or register the account specified by the login form.
@@ -679,10 +699,15 @@ public class LoginActivity extends AppCompatActivity {
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
- Intent intent = new Intent(getBaseContext(),
+ /*Intent intent = new Intent(getBaseContext(),
MainActivity.class);
startActivity(intent);
+ finish();*/
+
+ Intent in = new Intent(getApplicationContext(), MPinActivity.class);
+ in.putExtra(CommonString.IS_PASSWORD_CHECK, false);
+ startActivity(in);
finish();
//uploadPreviousImages();
@@ -701,8 +726,29 @@ public class LoginActivity extends AppCompatActivity {
finish();
}
- }
+ //For SA Only
+ /*if (preferences.getString(CommonString.KEY_LANGUAGE, "").equals("")) {
+ Intent intent = new Intent(getBaseContext(),
+ SelectLanguageActivity.class);
+
+ intent.putExtra(CommonString.KEY_LOGIN_DATA, lgs);
+ startActivity(intent);
+
+ finish();
+ } else {
+
+ CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+
+ Intent intent = new Intent(getBaseContext(),
+ MainActivity.class);
+ startActivity(intent);
+
+ finish();
+
+ //uploadPreviousImages();
+ }*/
+ }
dialog.dismiss();
}
@@ -764,12 +810,12 @@ public class LoginActivity extends AppCompatActivity {
return cdate;
}
- public void uploadPreviousImages(){
+ public void uploadPreviousImages() {
try {
File f = new File(CommonString.FILE_PATH);
- if(f!=null){
+ if (f != null) {
File file[] = f.listFiles();
- if(file!=null && file.length>0){
+ if (file != null && file.length > 0) {
String newPattern = "EEE MMM dd HH:mm:ss Z yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(newPattern, Locale.ENGLISH);
@@ -781,7 +827,7 @@ public class LoginActivity extends AppCompatActivity {
Date visitdate = sdf.parse(formattedDate);
- for (int i=0;i12){
+ if (difference > 12) {
file[i].delete();
}
@@ -799,24 +845,21 @@ public class LoginActivity extends AppCompatActivity {
date = spf.format(newDate);
System.out.println(date);*/
}
- if(file.length>0){
+ if (file.length > 0) {
UploadImageWithRetrofit.uploadedFiles = 0;
UploadImageWithRetrofit.totalFiles = file.length;
- UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit( "", userid,LoginActivity.this);
+ UploadImageWithRetrofit uploadImg = new UploadImageWithRetrofit("", userid, LoginActivity.this);
//uploadImg.UploadImageRecursive(LoginActivity.this);
- }
- else {
+ } else {
sendToMain();
}
- }
- else {
+ } else {
sendToMain();
}
- }
- else {
+ } else {
sendToMain();
}
} catch (ParseException e) {
@@ -827,11 +870,11 @@ public class LoginActivity extends AppCompatActivity {
}
- public void sendToMain(){
+ public void sendToMain() {
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
- InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
+ InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
@@ -900,7 +943,29 @@ public class LoginActivity extends AppCompatActivity {
file_planogram.mkdir();
}
- attemptLogin();
+ if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
+ ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+
+ if (checkPlayServices()) {
+ // Building the GoogleApi client
+ buildGoogleApiClient();
+
+ createLocationRequest();
+ }
+
+ // Create an instance of GoogleAPIClient.
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+ //attemptLogin();
}
}
@@ -933,5 +998,223 @@ public class LoginActivity extends AppCompatActivity {
});*/
builder.show();
}
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+
+ }
+ checkgpsEnableDevice();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+
+ checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
+
+ /*if (requestCode == PERMISSIONS_REQUEST_READ_PHONE_STATE
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ imeiNumbers = imei.getDeviceImei();
+ }
+
+ */
+
+ if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
+ ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+
+ if (checkPlayServices()) {
+ // Building the GoogleApi client
+ buildGoogleApiClient();
+
+ createLocationRequest();
+ }
+
+ // Create an instance of GoogleAPIClient.
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+
+ }
+
+ private boolean checkPlayServices() {
+ int resultCode = GooglePlayServicesUtil
+ .isGooglePlayServicesAvailable(this);
+ if (resultCode != ConnectionResult.SUCCESS) {
+ if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
+ GooglePlayServicesUtil.getErrorDialog(resultCode, this,
+ PLAY_SERVICES_RESOLUTION_REQUEST).show();
+ } else {
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.notsuppoted)
+ , Toast.LENGTH_LONG)
+ .show();
+ finish();
+ }
+ return false;
+ }
+ return true;
+ }
+
+ protected synchronized void buildGoogleApiClient() {
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(context)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+ }
+
+ protected void createLocationRequest() {
+ mLocationRequest = new LocationRequest();
+ mLocationRequest.setInterval(UPDATE_INTERVAL);
+ mLocationRequest.setFastestInterval(FATEST_INTERVAL);
+ mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
+ mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
+ }
+
+ @Override
+ public void onConnectionSuspended(int i) {
+ mGoogleApiClient.connect();
+ }
+
+ @Override
+ public void onLocationChanged(Location location) {
+ LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
+
+ // Toast.makeText(this, " WORKS_lat_lon " + latLng, Toast.LENGTH_LONG).show();
+ // updateLocation(latLng);
+ if (mGoogleApiClient != null) {
+ LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
+ }
+
+ }
+
+ protected void startLocationUpdates() {
+
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
+ || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+ if (mGoogleApiClient != null) {
+ LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
+ // Toast.makeText(getApplicationContext(), "startLocation - Lat" + lat + "Long" + lon, Toast.LENGTH_LONG).show();
+ }
+ }
+
+ }
+
+ public static int distFrom(double lat1, double lng1, double lat2, double lng2) {
+ double earthRadius = 6371000; //meters
+ double dLat = Math.toRadians(lat2 - lat1);
+ double dLng = Math.toRadians(lng2 - lng1);
+ double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
+ Math.sin(dLng / 2) * Math.sin(dLng / 2);
+ double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+ int dist = (int) (earthRadius * c);
+
+ return dist;
+ }
+
+ @Override
+ public void onConnected(Bundle bundle) {
+ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
+ mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
+ || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+ if (mLastLocation != null) {
+ lat = mLastLocation.getLatitude();
+ lon = mLastLocation.getLongitude();
+ // Toast.makeText(getApplicationContext(), "onconnected lat-" + lat + " Long-" + lon, Toast.LENGTH_SHORT).show();
+ }
+ startLocationUpdates();
+ }
+ }
+
+ @Override
+ public void onConnectionFailed(ConnectionResult connectionResult) {
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+ }
+ }
+
+ protected void onStart() {
+ super.onStart();
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+ }
+ }
+
+ private boolean checkgpsEnableDevice() {
+ boolean flag = true;
+ if (!hasGPSDevice(context)) {
+ Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show();
+ }
+ final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
+ if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) {
+ enableLoc();
+ flag = false;
+ } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) {
+ flag = true;
+ }
+ return flag;
+ }
+
+ private boolean hasGPSDevice(Context context) {
+ final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+ if (mgr == null)
+ return false;
+ final List providers = mgr.getAllProviders();
+ if (providers == null)
+ return false;
+ return providers.contains(LocationManager.GPS_PROVIDER);
+ }
+
+ private void enableLoc() {
+ LocationRequest locationRequest = LocationRequest.create();
+ locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
+ locationRequest.setInterval(30 * 1000);
+ locationRequest.setFastestInterval(5 * 1000);
+ LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest);
+ builder.setAlwaysShow(true);
+ if (mGoogleApiClient != null) {
+ PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
+ result.setResultCallback(new ResultCallback() {
+ @Override
+ public void onResult(LocationSettingsResult result) {
+ final Status status = result.getStatus();
+ switch (status.getStatusCode()) {
+ case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
+ try {
+ // Show the dialog by calling startResolutionForResult(),
+ // and check the result in onActivityResult().
+ status.startResolutionForResult((Activity) context, REQUEST_LOCATION);
+ } catch (IntentSender.SendIntentException e) {
+ // Ignore the error.
+ }
+ break;
+ }
+ }
+ });
+ }
+ }
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java
index f302746..98e89e9 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/MainActivity.java
@@ -10,12 +10,9 @@ import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
-import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
-import android.provider.Settings;
-import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
@@ -25,7 +22,6 @@ import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
-import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
@@ -34,15 +30,11 @@ import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.TextView;
-import android.widget.Toast;
import com.crashlytics.android.Crashlytics;
import java.io.File;
import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
import cpm.com.gskmtorange.Database.GSKOrangeDB;
import cpm.com.gskmtorange.GeoTag.GeoTagStoreList;
@@ -57,9 +49,9 @@ import cpm.com.gskmtorange.dailyentry.ServiceActivity;
import cpm.com.gskmtorange.dailyentry.SettingsActivity;
import cpm.com.gskmtorange.dailyentry.StoreListActivity;
import cpm.com.gskmtorange.download.DownloadActivity;
+import cpm.com.gskmtorange.password.ChangePasswordActivity;
import cpm.com.gskmtorange.upload.PreviousDataUploadActivity;
import cpm.com.gskmtorange.upload.UploadActivity;
-import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter;
import io.fabric.sdk.android.Fabric;
@@ -148,9 +140,19 @@ public class MainActivity extends AppCompatActivity
TextView tv_username = (TextView) headerView.findViewById(R.id.nav_user_name);
//tv_usertype = (TextView) headerView.findViewById(R.id.nav_user_type);
+ ImageView img_change_password = (ImageView) headerView.findViewById(R.id.img_change_password);
tv_username.setText(user_name);
//tv_usertype.setText(user_type);
+
+ img_change_password.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Intent in = new Intent(getApplicationContext(), ChangePasswordActivity.class);
+ startActivity(in);
+ }
+ });
+
navigationView.addHeaderView(headerView);
navigationView.setNavigationItemSelectedListener(this);
@@ -194,6 +196,10 @@ public class MainActivity extends AppCompatActivity
nav_Menu.findItem(R.id.nav_deviation).setVisible(true);
}
+ //temp remove it
+ Menu nav_Menu1 = navigationView.getMenu();
+ nav_Menu1.findItem(R.id.nav_deviation).setVisible(true);
+
if (configurationData.get(i).getCONFIGURE().get(0).equalsIgnoreCase("PDF ALLOW") &&
configurationData.get(i).getACTIVE().get(0).equalsIgnoreCase("1")) {
Menu nav_Menu = navigationView.getMenu();
@@ -254,9 +260,6 @@ public class MainActivity extends AppCompatActivity
if (id == R.id.nav_route_plan) {
-
-
-
Intent in_jcp = new Intent(this, StoreListActivity.class);
in_jcp.putExtra(CommonString.KEY_STORE_FLAG, CommonString.FROM_JCP);
startActivity(in_jcp);
@@ -269,46 +272,63 @@ public class MainActivity extends AppCompatActivity
} else if (id == R.id.nav_upload) {
- db.open();
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ builder.setTitle(getResources().getString(R.string.dialog_title));
+ builder.setMessage(getResources().getString(R.string.want_to_upload)).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
- if (checkNetIsAvailable()) {
+ db.open();
- //Alert need to change this check so than user can work on Adhoc even having no JCP
- //storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN);
+ if (checkNetIsAvailable()) {
- if (db.getSKUMasterData(null).size() == 0) {
+ //Alert need to change this check so than user can work on Adhoc even having no JCP
+ //storelist = db.getStoreData(date, CommonString.KEY_JOURNEY_PLAN);
- Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT)
- .setAction("Action", null).show();
+ if (db.getSKUMasterData(null).size() == 0) {
- // Toast.makeText(getBaseContext(), "Please Download Data First", Toast.LENGTH_LONG).show();
- } else {
+ Snackbar.make(webView, R.string.title_store_list_download_data, Snackbar.LENGTH_SHORT)
+ .setAction("Action", null).show();
- if (coverageList.size() == 0) {
- Snackbar.make(webView, R.string.no_data_for_upload, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+ // Toast.makeText(getBaseContext(), "Please Download Data First", Toast.LENGTH_LONG).show();
+ } else {
- } else {
- if (isStoreCheckedIn() && isValid()) {
+ if (coverageList.size() == 0) {
+ Snackbar.make(webView, R.string.no_data_for_upload, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
- Intent i = new Intent(getBaseContext(), UploadActivity.class);
- startActivity(i);
+ } else {
+ if (isStoreCheckedIn() && isValid()) {
- //finish();
- } else {
- Snackbar.make(webView, error_msg, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+ Intent i = new Intent(getBaseContext(), UploadActivity.class);
+ startActivity(i);
+
+ //finish();
+ } else {
+ Snackbar.make(webView, error_msg, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+ }
+
+ }
+
+ }
+
+ } else {
+
+ Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT)
+ .setAction("Action", null).show();
+
+ // Toast.makeText(getApplicationContext(), "No Network Available", Toast.LENGTH_SHORT).show();
+ }
}
+ })
+ .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
- }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
- }
-
- } else {
-
- Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT)
- .setAction("Action", null).show();
-
- // Toast.makeText(getApplicationContext(), "No Network Available", Toast.LENGTH_SHORT).show();
- }
} else if (id == R.id.nav_geotag) {
@@ -324,6 +344,28 @@ public class MainActivity extends AppCompatActivity
} else if (id == R.id.nav_exit) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ builder.setTitle(getResources().getString(R.string.dialog_title));
+ builder.setMessage(getResources().getString(R.string.want_to_exit)).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ /* Intent startDownload = new Intent(this, LoginActivity.class);
+ startActivity(startDownload);*/
+ ActivityCompat.finishAffinity(MainActivity.this);
+
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ })
+ .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+
/* try {
int i = 1/0;
}
@@ -338,12 +380,6 @@ public class MainActivity extends AppCompatActivity
// finish();
- Intent startDownload = new Intent(this, LoginActivity.class);
- startActivity(startDownload);
-
- ActivityCompat.finishAffinity(this);
-
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
} else if (id == R.id.nav_setting) {
@@ -475,7 +511,7 @@ public class MainActivity extends AppCompatActivity
storestatus = store_data.getUPLOAD_STATUS();
String coverage_status = store_data.getCHECKOUT_STATUS();
- if (!storestatus.equalsIgnoreCase(CommonString.KEY_U)) {
+ if (!storestatus.equalsIgnoreCase(CommonString.KEY_U) && !storestatus.equalsIgnoreCase(CommonString.KEY_UN)) {
if ((coverage_status.equalsIgnoreCase(CommonString.KEY_Y) || storestatus.equalsIgnoreCase(CommonString.KEY_P) ||
storestatus.equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE))) {
flag = true;
@@ -498,7 +534,7 @@ public class MainActivity extends AppCompatActivity
StoreBean storeData = db.getSpecificStoreData(coverage_list.get(i).getVisitDate(), coverage_list.get(i).getStoreId(), coverage_list.get(i).getFlag_from());
if (storeData.getSTORE_ID() != null) {
- if (!storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U) && (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) ||
+ if (!storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U) && !storeData.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN) && (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) ||
storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) || storeData.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_P))) {
isvalid = true;
break;
@@ -701,41 +737,61 @@ public class MainActivity extends AppCompatActivity
}
//for download
- public void downloadMethod(){
- if (checkNetIsAvailable()) {
+ public void downloadMethod() {
- boolean previousflag = false;
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ builder.setTitle(getResources().getString(R.string.dialog_title));
+ builder.setMessage(getResources().getString(R.string.want_to_download)).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
- if (db.isPreviousCoverageDataFilled(date)) {
- if (isPreviousValid(date)) {
- previousflag = true;
- } else {
- db.deletePreviousCoverageData(date);
- }
- }
+ if (checkNetIsAvailable()) {
- if (previousflag) {
- AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- builder.setTitle("Parinaam");
- builder.setMessage(getResources().getString(R.string.previous_data_upload)).setCancelable(false)
- .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
+ boolean previousflag = false;
- Intent in = new Intent(getApplicationContext(), PreviousDataUploadActivity.class);
- startActivity(in);
- //finish();
+ if (db.isPreviousCoverageDataFilled(date)) {
+ if (isPreviousValid(date)) {
+ previousflag = true;
+ } else {
+ db.deletePreviousCoverageData(date);
+ }
}
- });
- AlertDialog alert = builder.create();
- alert.show();
- } else {
- Intent in = new Intent(getApplicationContext(), DownloadActivity.class);
- startActivity(in);
- }
- } else {
- Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT)
- .setAction("Action", null).show();
- }
+ if (previousflag) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(getResources().getString(R.string.previous_data_upload)).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ Intent in = new Intent(getApplicationContext(), PreviousDataUploadActivity.class);
+ startActivity(in);
+ //finish();
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+
+ } else {
+ Intent in = new Intent(getApplicationContext(), DownloadActivity.class);
+ startActivity(in);
+ }
+ } else {
+ Snackbar.make(webView, getResources().getString(R.string.nonetwork), Snackbar.LENGTH_SHORT)
+ .setAction("Action", null).show();
+ }
+
+ }
+ })
+ .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+
+
}
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java
index 2123d1a..8ce7469 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SelectLanguageActivity.java
@@ -22,6 +22,7 @@ import java.util.Locale;
import cpm.com.gskmtorange.constant.CommonFunctions;
import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.password.MPinActivity;
import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter;
public class SelectLanguageActivity extends AppCompatActivity implements View.OnClickListener {
@@ -72,12 +73,18 @@ public class SelectLanguageActivity extends AppCompatActivity implements View.On
public void onClick(View view) {
if (selected_flag) {
- Intent intent = new Intent(getBaseContext(),
+ /* Intent intent = new Intent(getBaseContext(),
MainActivity.class);
intent.putExtra(CommonString.KEY_LOGIN_DATA, login_data);
startActivity(intent);
+ finish();*/
+
+ Intent in = new Intent(getApplicationContext(), MPinActivity.class);
+ in.putExtra(CommonString.IS_PASSWORD_CHECK, false);
+ startActivity(in);
finish();
+
} else {
Snackbar.make(view, getString(R.string.select_language), Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java
index a94a1b2..67087be 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/SplashScreenActivity.java
@@ -1,9 +1,11 @@
package cpm.com.gskmtorange;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
+import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Window;
@@ -17,11 +19,16 @@ import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
+import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.password.MPinActivity;
+
public class SplashScreenActivity extends AppCompatActivity {
private static int SPLASH_TIME_OUT = 3000;
LinearLayout linearLayout;
+ private SharedPreferences preferences = null;
+
public void onAttachedToWindow() {
super.onAttachedToWindow();
Window window = getWindow();
@@ -35,6 +42,8 @@ public class SplashScreenActivity extends AppCompatActivity {
linearLayout = findViewById(R.id.lin_lay);
+ preferences = PreferenceManager.getDefaultSharedPreferences(this);
+
StartAnimations();
sendToLogin();
@@ -116,12 +125,29 @@ public class SplashScreenActivity extends AppCompatActivity {
}*/
// close this activity
- Intent i = new Intent(SplashScreenActivity.this, LoginActivity.class);
+ //before MPin
+ /* Intent i = new Intent(SplashScreenActivity.this, LoginActivity.class);
startActivity(i);
overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
- finish();
+ finish();*/
+
+ //after Mpin
+ String mpin = preferences.getString(CommonString.MPIN, null);
+ if(mpin!=null){
+ Intent in = new Intent(getApplicationContext(), MPinActivity.class);
+ in.putExtra(CommonString.IS_PASSWORD_CHECK, true);
+ startActivity(in);
+
+ finish();
+ }
+ else {
+ Intent i = new Intent(getApplicationContext(), LoginActivity.class);
+ startActivity(i);
+ finish();
+ }
+
}
}, SPLASH_TIME_OUT);
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java
new file mode 100644
index 0000000..89ff2e7
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java
@@ -0,0 +1,240 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import cpm.com.gskmtorange.R;
+
+
+/**
+ * Created by Weiping on 2016/3/16.
+ */
+
+public class BigButtonView extends FrameLayout {
+
+ private FrameLayout frameLayout;
+ private View clickEffect;
+ private TextView text;
+ private TextView subText;
+ private String textString = "";
+ private String subTextString = "";
+ private ObjectAnimator clickEffectAnimator;
+ private int duration = 500;
+ private OnPressListener onPressListener;
+
+ public BigButtonView(Context context) {
+ this(context, null);
+ }
+
+ public BigButtonView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ LayoutInflater.from(context).inflate(R.layout.big_button_view, this, true);
+
+ Resources resources = getResources();
+
+ frameLayout = (FrameLayout)findViewById(R.id.frame_layout);
+
+ text = (TextView)findViewById(R.id.text);
+ text.setText(textString);
+ text.setTextColor(ContextCompat.getColor(context, R.color.default_big_button_text_color));
+ text.setTextSize(resources.getInteger(R.integer.default_big_button_text_size));
+
+ subText = (TextView)findViewById(R.id.sub_text);
+ subText.setText(subTextString);
+ subText.setTextColor(ContextCompat.getColor(context, R.color.default_big_button_sub_text_color));
+ subText.setTextSize(resources.getInteger(R.integer.default_big_button_sub_text_size));
+
+ clickEffect = findViewById(R.id.click_effect);
+ clickEffect.setAlpha(0);
+ clickEffectAnimator = ObjectAnimator.ofFloat(clickEffect, "alpha", 1f, 0f);
+ clickEffectAnimator.setDuration(duration);
+ }
+
+ /**
+ * Set the listener, for returning what happened to BlurLockView.
+ *
+ * @param onPressListener OnPressListener.
+ */
+ public void setOnPressListener(OnPressListener onPressListener) {
+ this.onPressListener = onPressListener;
+ }
+
+ /**
+ * Set the width of the button.
+ *
+ * @param width Width, in pixels.
+ */
+ public void setWidth(int width) {
+ ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams();
+ layoutParams.width = width;
+ frameLayout.setLayoutParams(layoutParams);
+ }
+
+ /**
+ * Set the height of the button.
+ *
+ * @param height Height, in pixels.
+ */
+ public void setHeight(int height) {
+ ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams();
+ layoutParams.height = height;
+ frameLayout.setLayoutParams(layoutParams);
+ }
+
+ /**
+ * Set the resource of background.
+ *
+ * @param resourceId ResourceId.
+ */
+ public void setBackground(int resourceId) {
+ frameLayout.setBackgroundResource(resourceId);
+ }
+
+ /**
+ * Set the resource of click effect.
+ *
+ * @param resourceId ResourceId.
+ */
+ public void setEffect(int resourceId) {
+ clickEffect.setBackgroundResource(resourceId);
+ }
+
+ /**
+ * Set the duration of the effect.
+ *
+ * @param duration Duration, in ms.
+ */
+ public void setEffectDuration(int duration) {
+ this.duration = duration;
+ }
+
+ /**
+ * Set the text size of the main text.
+ *
+ * @param size Text size, in sp.
+ */
+ public void setTextSize(int size) {
+ text.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
+ }
+
+ /**
+ * Set the text size of the sub text.
+ *
+ * @param size Text size, in sp.
+ */
+ public void setSubTextSize(int size) {
+ subText.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
+ }
+
+ /**
+ * Set the text color of main text.
+ *
+ * @param color Color.
+ */
+ public void setTextColor(int color) {
+ text.setTextColor(color);
+ }
+
+ /**
+ * Set the text color of sub text.
+ *
+ * @param color Color.
+ */
+ public void setSubTextColor(int color) {
+ subText.setTextColor(color);
+ }
+
+ /**
+ * Set font of button.
+ *
+ * @param typeFace New font.
+ */
+ public void setTypeFace(Typeface typeFace) {
+ text.setTypeface(typeFace);
+ subText.setTypeface(typeFace);
+ }
+
+ /**
+ * Set the string of the text.
+ *
+ * @param textString The new string.
+ */
+ public void setText(String textString) {
+ this.textString = textString;
+ if (text != null) text.setText(textString);
+ }
+
+ /**
+ * Set the string of the sub text.
+ *
+ * @param subTextString The new string.
+ */
+ public void setSubText(String subTextString) {
+ this.subTextString = subTextString;
+ if (subText != null) subText.setText(subTextString);
+ }
+
+ /**
+ * Set the visibility of sub textview.
+ *
+ * @param visibility The visibility.
+ */
+ public void setSubTextVisibility(int visibility) {
+ if (visibility == GONE) {
+ text.setGravity(Gravity.CENTER);
+ } else {
+ text.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
+ }
+ subText.setVisibility(visibility);
+ }
+
+ /**
+ * Perform the click effect.
+ *
+ * @param event MotionEvent.
+ * @return
+ */
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ switch(event.getAction()){
+ case MotionEvent.ACTION_DOWN:
+ if (onPressListener != null) onPressListener.onPress(textString);
+ clickEffectAnimator.cancel();
+ clickEffect.setAlpha(1);
+ break;
+ case MotionEvent.ACTION_UP:
+ clickEffectAnimator.start();
+ break;
+ default:break;
+ }
+
+ return super.dispatchTouchEvent(event);
+ }
+
+ /**
+ * Clear the animation.
+ */
+ public void clearAnimation() {
+ if (clickEffect.getAlpha() == 1) {
+ clickEffectAnimator.cancel();
+ clickEffectAnimator.start();
+ }
+ }
+
+ public interface OnPressListener {
+ void onPress(String string);
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java
new file mode 100644
index 0000000..36b3e29
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java
@@ -0,0 +1,870 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.app.Activity;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Point;
+import android.graphics.Typeface;
+import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
+import android.view.Display;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+
+import java.util.Stack;
+
+import cpm.com.gskmtorange.R;
+import cpm.com.gskmtorange.blurlockview.Directions.HideType;
+import cpm.com.gskmtorange.blurlockview.Directions.ShowType;
+import cpm.com.gskmtorange.blurlockview.Eases.EaseType;
+
+/**
+ * Created by Weiping on 2016/3/16.
+ */
+public class BlurLockView extends FrameLayout
+ implements
+ BigButtonView.OnPressListener,
+ SmallButtonView.OnPressListener {
+
+ private final char CHARS[][] = {
+ {'1', '2', '3', '4', '5', '6', '7', '8', '9', '0'},
+ {'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P'},
+ { 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L' },
+ { 'Z', 'X', 'C', 'V', 'B', 'N', 'M' }
+ };
+
+ private Password type = Password.NUMBER;
+
+ private int passwordLength = 4;
+ private String correctPassword = null;
+ private int incorrectInputTimes = 0;
+ private Typeface typeface;
+
+ private boolean animationIsPlaying = false;
+
+ public boolean isIs_Password_Check_Mode() {
+ return is_Password_Check_Mode;
+ }
+
+ public void setIs_Password_Check_Mode(boolean is_Password_Check_Mode) {
+ this.is_Password_Check_Mode = is_Password_Check_Mode;
+ }
+
+ private boolean is_Password_Check_Mode = false;
+
+ private Stack passwordStack = null;
+
+ private TextView title;
+ private Indicator indicator;
+
+ private BigButtonView[] bigButtonViews;
+ private SmallButtonView[][] smallButtonViews;
+ private BlurView mBlurView;
+ private TextView leftButton;
+ private TextView rightButton;
+
+ private OnLeftButtonClickListener onLeftButtonClickListener;
+ private OnPasswordInputListener onPasswordInputListener;
+
+ public BlurLockView(Context context) {
+ this(context, null);
+ }
+
+ public BlurLockView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ init();
+ }
+
+ /**
+ * Init.
+ */
+ private void init() {
+ // number password
+ LayoutInflater.from(getContext()).inflate(R.layout.number_lock_view, this, true);
+
+ bigButtonViews = new BigButtonView[10];
+ bigButtonViews[0] = (BigButtonView)findViewById(R.id.button_0);
+ bigButtonViews[1] = (BigButtonView)findViewById(R.id.button_1);
+ bigButtonViews[2] = (BigButtonView)findViewById(R.id.button_2);
+ bigButtonViews[3] = (BigButtonView)findViewById(R.id.button_3);
+ bigButtonViews[4] = (BigButtonView)findViewById(R.id.button_4);
+ bigButtonViews[5] = (BigButtonView)findViewById(R.id.button_5);
+ bigButtonViews[6] = (BigButtonView)findViewById(R.id.button_6);
+ bigButtonViews[7] = (BigButtonView)findViewById(R.id.button_7);
+ bigButtonViews[8] = (BigButtonView)findViewById(R.id.button_8);
+ bigButtonViews[9] = (BigButtonView)findViewById(R.id.button_9);
+
+ String[] texts = getResources().getStringArray(R.array.default_big_button_text);
+ String[] subTexts = getResources().getStringArray(R.array.default_big_button_sub_text);
+ for (int i = 0; i < 10; i++) {
+ bigButtonViews[i].setOnPressListener(this);
+ bigButtonViews[i].setText(texts[i]);
+ //bigButtonViews[i].setSubText(subTexts[i]);
+ }
+
+ bigButtonViews[0].setSubTextVisibility(View.GONE);
+ bigButtonViews[1].setSubTextVisibility(View.INVISIBLE);
+
+ // text password
+ smallButtonViews = new SmallButtonView[4][10];
+
+ // get screen width
+ Display display = ((Activity)getContext()).getWindowManager().getDefaultDisplay();
+ Point size = new Point();
+ display.getSize(size);
+ int width = size.x;
+
+ int buttonHorizontalMargin = 6;
+ int buttonVerticalMargin = 24;
+ int buttonWidth = (width - 11 * buttonHorizontalMargin) / 10;
+
+ // add buttons to lines
+ LinearLayout line1 = (LinearLayout)findViewById(R.id.line_1);
+ for (int i = 0; i < 10; i++) {
+ smallButtonViews[0][i] = new SmallButtonView(getContext());
+ smallButtonViews[0][i].setOnPressListener(this);
+ smallButtonViews[0][i].setText(CHARS[0][i] + "");
+ smallButtonViews[0][i].setWidth(buttonWidth);
+ smallButtonViews[0][i].setHeight(buttonWidth);
+
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ buttonWidth,
+ buttonWidth
+ );
+ if (i == 0)
+ params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ else if (i == 9)
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2);
+ else
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ line1.addView(smallButtonViews[0][i], params);
+ }
+
+ LinearLayout line2 = (LinearLayout)findViewById(R.id.line_2);
+ for (int i = 0; i < 10; i++) {
+ smallButtonViews[1][i] = new SmallButtonView(getContext());
+ smallButtonViews[1][i].setOnPressListener(this);
+ smallButtonViews[1][i].setText(CHARS[1][i] + "");
+ smallButtonViews[1][i].setWidth(buttonWidth);
+ smallButtonViews[1][i].setHeight(buttonWidth);
+
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ buttonWidth,
+ buttonWidth
+ );
+ if (i == 0)
+ params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ else if (i == 9)
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2);
+ else
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ line2.addView(smallButtonViews[1][i], params);
+ }
+
+ LinearLayout line3 = (LinearLayout)findViewById(R.id.line_3);
+ for (int i = 0; i < 9; i++) {
+ smallButtonViews[2][i] = new SmallButtonView(getContext());
+ smallButtonViews[2][i].setOnPressListener(this);
+ smallButtonViews[2][i].setText(CHARS[2][i] + "");
+ smallButtonViews[2][i].setWidth(buttonWidth);
+ smallButtonViews[2][i].setHeight(buttonWidth);
+
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ buttonWidth,
+ buttonWidth
+ );
+
+ if (i == 0)
+ params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ else if (i == 8)
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2);
+ else
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ line3.addView(smallButtonViews[2][i], params);
+ }
+
+ LinearLayout line4 = (LinearLayout)findViewById(R.id.line_4);
+ for (int i = 0; i < 7; i++) {
+ smallButtonViews[3][i] = new SmallButtonView(getContext());
+ smallButtonViews[3][i].setOnPressListener(this);
+ smallButtonViews[3][i].setText(CHARS[3][i] + "");
+ smallButtonViews[3][i].setWidth(buttonWidth);
+ smallButtonViews[3][i].setHeight(buttonWidth);
+
+ LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
+ buttonWidth,
+ buttonWidth
+ );
+
+ if (i == 0)
+ params.setMargins(buttonHorizontalMargin, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ else if (i == 6)
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin, buttonVerticalMargin / 2);
+ else
+ params.setMargins(buttonHorizontalMargin / 2, buttonVerticalMargin / 2, buttonHorizontalMargin / 2, buttonVerticalMargin / 2);
+ line4.addView(smallButtonViews[3][i], params);
+ }
+
+ passwordStack = new Stack<>();
+
+ mBlurView = (BlurView)findViewById(R.id.blurview);
+ mBlurView.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ }
+ });
+
+ Resources resources = getResources();
+
+ indicator = (Indicator)findViewById(R.id.indicator);
+ indicator.setPasswordLength(passwordLength);
+
+ title = (TextView)findViewById(R.id.title);
+ title.setTextColor(ContextCompat.getColor(getContext(), R.color.default_title_text_color));
+ title.setTextSize(resources.getInteger(R.integer.default_title_text_size));
+
+ leftButton = (TextView)findViewById(R.id.left_button);
+ leftButton.setTextColor(ContextCompat.getColor(getContext(), R.color.default_left_button_text_color));
+ leftButton.setTextSize(resources.getInteger(R.integer.default_left_button_text_size));
+ leftButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (onLeftButtonClickListener != null) onLeftButtonClickListener.onClick();
+ }
+ });
+
+ rightButton = (TextView)findViewById(R.id.right_button);
+ rightButton.setTextColor(ContextCompat.getColor(getContext(), R.color.default_right_button_text_color));
+ rightButton.setTextSize(resources.getInteger(R.integer.default_right_button_text_size));
+ rightButton.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (passwordStack.size() > 0) {
+ passwordStack.pop();
+ indicator.delete();
+ if (onPasswordInputListener != null){
+ StringBuilder nowPassword = new StringBuilder("");
+ for (String s : passwordStack) {
+ nowPassword.append(s);
+ }
+ onPasswordInputListener.clear(nowPassword.toString());
+ }
+
+
+ }
+ }
+ });
+ }
+
+ /**
+ * Show the text keyboard smoothly or not.
+ *
+ * @param smoothly Smoothly or not.
+ */
+ private void showText(boolean smoothly) {
+ if (animationIsPlaying) return;
+ animationIsPlaying = true;
+ if (smoothly) {
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_123), "alpha", 1f, 0f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_456), "alpha", 1f, 0f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_789), "alpha", 1f, 0f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.button_0), "alpha", 1f, 0f)
+ .setDuration(500).start();
+ ObjectAnimator showAnimator =
+ ObjectAnimator.ofFloat(findViewById(R.id.text_layout), "alpha", 0f, 1f);
+ showAnimator.setDuration(500).addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ super.onAnimationStart(animation);
+ findViewById(R.id.text_layout).setVisibility(VISIBLE);
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ findViewById(R.id.layout_123).setVisibility(INVISIBLE);
+ findViewById(R.id.layout_456).setVisibility(INVISIBLE);
+ findViewById(R.id.layout_789).setVisibility(INVISIBLE);
+ findViewById(R.id.button_0).setVisibility(INVISIBLE);
+ animationIsPlaying = false;
+ }
+ });
+ showAnimator.start();
+ } else {
+ findViewById(R.id.layout_123).setVisibility(INVISIBLE);
+ findViewById(R.id.layout_456).setVisibility(INVISIBLE);
+ findViewById(R.id.layout_789).setVisibility(INVISIBLE);
+ findViewById(R.id.button_0).setVisibility(INVISIBLE);
+ findViewById(R.id.text_layout).setVisibility(VISIBLE);
+ animationIsPlaying = false;
+ }
+ }
+
+ /**
+ * Show the number keyboard smoothly or not.
+ *
+ * @param smoothly Smoothly or not.
+ */
+ private void showNumber(boolean smoothly) {
+ if (animationIsPlaying) return;
+ animationIsPlaying = true;
+ if (smoothly) {
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_123), "alpha", 0f, 1f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_456), "alpha", 0f, 1f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.layout_789), "alpha", 0f, 1f)
+ .setDuration(500).start();
+ ObjectAnimator.ofFloat(findViewById(R.id.button_0), "alpha", 0f, 1f)
+ .setDuration(500).start();
+ ObjectAnimator showAnimator =
+ ObjectAnimator.ofFloat(findViewById(R.id.text_layout), "alpha", 1f, 0f);
+ showAnimator.setDuration(500).addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationStart(Animator animation) {
+ super.onAnimationStart(animation);
+ findViewById(R.id.layout_123).setVisibility(VISIBLE);
+ findViewById(R.id.layout_456).setVisibility(VISIBLE);
+ findViewById(R.id.layout_789).setVisibility(VISIBLE);
+ findViewById(R.id.button_0).setVisibility(VISIBLE);
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ findViewById(R.id.text_layout).setVisibility(INVISIBLE);
+ animationIsPlaying = false;
+ }
+ });
+ showAnimator.start();
+ } else {
+ findViewById(R.id.layout_123).setVisibility(VISIBLE);
+ findViewById(R.id.layout_456).setVisibility(VISIBLE);
+ findViewById(R.id.layout_789).setVisibility(VISIBLE);
+ findViewById(R.id.button_0).setVisibility(VISIBLE);
+ findViewById(R.id.text_layout).setVisibility(INVISIBLE);
+ animationIsPlaying = false;
+ }
+ }
+
+ /**
+ * Set the view that need to be blurred.
+ *
+ * @param blurredView The view.
+ */
+ public void setBlurredView(View blurredView) {
+ mBlurView.setBlurredView(blurredView);
+ }
+
+ /**
+ * Set the listener.
+ *
+ * @param onLeftButtonClickListener Listener.
+ */
+ public void setOnLeftButtonClickListener(OnLeftButtonClickListener onLeftButtonClickListener) {
+ this.onLeftButtonClickListener = onLeftButtonClickListener;
+ }
+
+ /**
+ * Set the listener.
+ *
+ * @param onPasswordInputListener Listener.
+ */
+ public void setOnPasswordInputListener(OnPasswordInputListener onPasswordInputListener) {
+ this.onPasswordInputListener = onPasswordInputListener;
+ }
+
+ /**
+ * From the button views.
+ *
+ * @param string The string from button views.
+ */
+ @Override
+ public void onPress(String string) {
+ if (correctPassword == null) {
+ throw new RuntimeException("The correct password has NOT been set!");
+ }
+ if (passwordStack.size() >= passwordLength) return;
+ passwordStack.push(string);
+ indicator.add();
+ StringBuilder nowPassword = new StringBuilder("");
+ for (String s : passwordStack) {
+ nowPassword.append(s);
+ }
+ String nowPasswordString = nowPassword.toString();
+ if (correctPassword.equals(nowPasswordString)) {
+ // correct password
+ if (onPasswordInputListener != null)
+ onPasswordInputListener.correct(nowPasswordString);
+ } else {
+ if (correctPassword.length() > nowPasswordString.length()) {
+ // input right now
+ if (onPasswordInputListener != null)
+ onPasswordInputListener.input(nowPasswordString);
+ } else {
+ // incorrect password
+ if (onPasswordInputListener != null)
+ onPasswordInputListener.incorrect(nowPasswordString);
+ if(is_Password_Check_Mode){
+ // perform the clear animation
+ incorrectInputTimes++;
+ indicator.clear();
+ passwordStack.clear();
+ }
+ }
+ }
+ }
+
+ /**
+ * Prevent click 2 or above buttons at the same time.
+ *
+ * @param event
+ * @return
+ */
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ if (event.getPointerCount() > 1) {
+ if (Password.NUMBER.equals(type)) {
+ for (int i = 0; i < bigButtonViews.length; i++) bigButtonViews[i].clearAnimation();
+ } else if (Password.TEXT.equals(type)) {
+ for (int i = 0; i < smallButtonViews.length; i++) {
+ for (int j = 0; j < smallButtonViews[i].length; j++) {
+ if (smallButtonViews[i][j] != null) smallButtonViews[i][j].clearAnimation();
+ }
+ }
+ }
+ return true;
+ }
+ return super.dispatchTouchEvent(event);
+ }
+
+ /**
+ * Set big buttons' background.
+ *
+ * @param id
+ */
+ public void setBigButtonViewsBackground(int id) {
+ for (int i = 0; i < 10; i++) bigButtonViews[i].setBackground(id);
+ }
+
+ /**
+ * Set big buttons' click effect.
+ *
+ * @param id
+ */
+ public void setBigButtonViewsClickEffect(int id) {
+ for (int i = 0; i < 10; i++) bigButtonViews[i].setEffect(id);
+ }
+
+ /**
+ * Set the click effect duration.
+ *
+ * @param duration
+ */
+ public void setBigButtonViewsClickEffectDuration(int duration) {
+ for (int i = 0; i < 10; i++) bigButtonViews[i].setEffectDuration(duration);
+ }
+
+ /**
+ * Set small buttons' background.
+ *
+ * @param id
+ */
+ public void setSmallButtonViewsBackground(int id) {
+ for (int i = 0; i < smallButtonViews.length; i++)
+ for (int j = 0; j < smallButtonViews[i].length; j++)
+ if (smallButtonViews[i][j] != null)
+ smallButtonViews[i][j].setBackground(id);
+ }
+
+ /**
+ * Set small buttons' click effect.
+ *
+ * @param id
+ */
+ public void setSmallButtonViewsClickEffect(int id) {
+ for (int i = 0; i < smallButtonViews.length; i++)
+ for (int j = 0; j < smallButtonViews[i].length; j++)
+ if (smallButtonViews[i][j] != null)
+ smallButtonViews[i][j].setEffect(id);
+ }
+
+ /**
+ * Set the click effect duration.
+ *
+ * @param duration
+ */
+ public void setSmallButtonViewsClickEffectDuration(int duration) {
+ for (int i = 0; i < smallButtonViews.length; i++)
+ for (int j = 0; j < smallButtonViews[i].length; j++)
+ if (smallButtonViews[i][j] != null)
+ smallButtonViews[i][j].setEffectDuration(duration);
+ }
+
+ /**
+ * Set all the fonts.
+ *
+ * @param typeface
+ */
+ public void setTypeface(Typeface typeface) {
+ this.typeface = typeface;
+ if (type.equals(Password.NUMBER)) {
+ for (int i = 0; i < 10; i++) bigButtonViews[i].setTypeFace(typeface);
+ } else if (type.equals(Password.TEXT)) {
+ for (int i = 0; i < smallButtonViews.length; i++)
+ for (int j = 0; j < smallButtonViews[i].length; j++)
+ if (smallButtonViews[i][j] != null)
+ smallButtonViews[i][j].setTypeFace(typeface);
+ }
+ title.setTypeface(typeface);
+ leftButton.setTypeface(typeface);
+ rightButton.setTypeface(typeface);
+ }
+
+ /**
+ * Set all the text color.
+ *
+ * @param color
+ */
+ public void setTextColor(int color) {
+ if (type.equals(Password.NUMBER)) {
+ for (int i = 0; i < 10; i++) {
+ bigButtonViews[i].setTextColor(color);
+ bigButtonViews[i].setSubTextColor(color);
+ }
+ } else if (type.equals(Password.TEXT)) {
+ for (int i = 0; i < smallButtonViews.length; i++)
+ for (int j = 0; j < smallButtonViews[i].length; j++)
+ if (smallButtonViews[i][j] != null)
+ smallButtonViews[i][j].setTextColor(color);
+ }
+ title.setTextColor(color);
+ leftButton.setTextColor(color);
+ rightButton.setTextColor(color);
+ }
+
+ /**
+ * Set the length of the password.
+ * Default length is 4.
+ *
+ * @param passwordLength
+ */
+ public void setPasswordLength(int passwordLength) {
+ this.passwordLength = passwordLength;
+ indicator.setPasswordLength(passwordLength);
+ passwordStack.clear();
+ correctPassword = null;
+ }
+
+ /**
+ * Get the password type.
+ *
+ * @return
+ */
+ public Password getType() {
+ return type;
+ }
+
+ /**
+ * Set the password type.
+ *
+ * @param type Number or text.
+ */
+ public void setType(Password type, boolean smoothly) {
+ if (animationIsPlaying) return;
+ this.type = type;
+ indicator.clear();
+ passwordStack.clear();
+ if (Password.NUMBER.equals(type)) {
+ showNumber(smoothly);
+ } else if (Password.TEXT.equals(type)) {
+ showText(smoothly);
+ }
+ }
+
+ /**
+ * Set the title text.
+ *
+ * @param string
+ */
+ public void setTitle(String string) {
+ title.setText(string);
+ }
+
+ /**
+ * Set the text of left button.
+ *
+ * @param string
+ */
+ public void setLeftButton(String string) {
+ leftButton.setText(string);
+ }
+
+ /**
+ * Set the text of right button.
+ *
+ * @param string
+ */
+ public void setRightButton(String string) {
+ rightButton.setText(string);
+ }
+
+ /**
+ * Set the target password.
+ *
+ * @param correctPassword The target password.
+ */
+ public void setCorrectPassword(String correctPassword) {
+ setPasswordLength(correctPassword.length());
+ this.correctPassword = correctPassword;
+ }
+
+ /**
+ * You can use this to reset the incorrect input times.
+ *
+ * @param incorrectInputTimes The incorrect input times.
+ */
+ public void setIncorrectInputTimes(int incorrectInputTimes) {
+ this.incorrectInputTimes = incorrectInputTimes;
+ }
+
+ /**
+ * Return the incorrect input times.
+ *
+ * @return Incorrect input times.
+ */
+ public int getIncorrectInputTimes() {
+ return incorrectInputTimes;
+ }
+
+ /**
+ * Invalidate the blur view.
+ */
+ public void update() {
+ mBlurView.invalidate();
+ }
+
+ /**
+ * Show this BlurLockView.
+ *
+ * @param duration Duration, in ms.
+ * @param showType Direction, in ShowType.
+ * @param easeType Ease type, in EaseType.
+ */
+ public void show(int duration, ShowType showType, EaseType easeType) {
+ if (animationIsPlaying) return;
+ animationIsPlaying = true;
+ indicator.clear();
+ passwordStack.clear();
+ ObjectAnimator animator = null;
+ setVisibility(VISIBLE);
+ if (showType.equals(ShowType.FROM_TOP_TO_BOTTOM)) {
+ animator = ObjectAnimator.ofFloat(this, "translationY",
+ getTranslationY() - getHeight(),
+ getTranslationY());
+ } else if (showType.equals(ShowType.FROM_RIGHT_TO_LEFT)) {
+ animator = ObjectAnimator.ofFloat(this, "translationX",
+ getTranslationX() + getWidth(),
+ getTranslationX());
+ } else if (showType.equals(ShowType.FROM_BOTTOM_TO_TOP)) {
+ animator = ObjectAnimator.ofFloat(this, "translationY",
+ getTranslationY() + getHeight(),
+ getTranslationY());
+ } else if (showType.equals(ShowType.FROM_LEFT_TO_RIGHT)) {
+ animator = ObjectAnimator.ofFloat(this, "translationX",
+ getTranslationX() - getWidth(),
+ getTranslationX());
+ } else if (showType.equals(ShowType.FADE_IN)) {
+ animator = ObjectAnimator.ofFloat(this, "alpha",
+ 0,
+ 1);
+ }
+ animator.setDuration(duration);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ update();
+ }
+ });
+ animator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ animationIsPlaying = false;
+ }
+ });
+ animator.setInterpolator(InterpolatorFactory.getInterpolator(easeType));
+ animator.start();
+ }
+
+ /**
+ * Hide this BlurLockView.
+ *
+ * @param duration Duration, in ms.
+ * @param hideType Direction, in HideType.
+ * @param easeType Ease type, in EaseType.
+ */
+ public void hide(int duration, HideType hideType, EaseType easeType) {
+ if (animationIsPlaying) return;
+ animationIsPlaying = true;
+ ObjectAnimator animator = null;
+ final float originalX = getTranslationX();
+ final float originalY = getTranslationY();
+ if (hideType.equals(HideType.FROM_TOP_TO_BOTTOM)) {
+ animator = ObjectAnimator.ofFloat(this, "translationY",
+ getTranslationY(),
+ getTranslationY() + getHeight());
+ } else if (hideType.equals(HideType.FROM_RIGHT_TO_LEFT)) {
+ animator = ObjectAnimator.ofFloat(this, "translationX",
+ getTranslationX(),
+ getTranslationX() - getWidth());
+ } else if (hideType.equals(HideType.FROM_BOTTOM_TO_TOP)) {
+ animator = ObjectAnimator.ofFloat(this, "translationY",
+ getTranslationY(),
+ getTranslationY() - getHeight());
+ } else if (hideType.equals(HideType.FROM_LEFT_TO_RIGHT)) {
+ animator = ObjectAnimator.ofFloat(this, "translationX",
+ getTranslationX(),
+ getTranslationX() + getWidth());
+ } else if (hideType.equals(HideType.FADE_OUT)) {
+ animator = ObjectAnimator.ofFloat(this, "alpha",
+ 1,
+ 0);
+ }
+ animator.setDuration(duration);
+ animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ update();
+ }
+ });
+ animator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ setVisibility(INVISIBLE);
+ setTranslationX(originalX);
+ setTranslationY(originalY);
+ setAlpha(1);
+ animationIsPlaying = false;
+ }
+ });
+ animator.setInterpolator(InterpolatorFactory.getInterpolator(easeType));
+ animator.start();
+ }
+
+ public interface OnPasswordInputListener {
+ void correct(String inputPassword);
+ void incorrect(String inputPassword);
+ void input(String inputPassword);
+ void clear(String remainingPassword);
+ }
+
+ public interface OnLeftButtonClickListener {
+ void onClick();
+ }
+
+ /**
+ * Get the title.
+ * @return
+ */
+ public TextView getTitle() {
+ return title;
+ }
+
+ /**
+ * Get the left button.
+ * @return
+ */
+ public TextView getLeftButton() {
+ return leftButton;
+ }
+
+ /**
+ * Get the right button.
+ * @return
+ */
+ public TextView getRightButton() {
+ return rightButton;
+ }
+
+ /**
+ * Get the numbers.
+ * @return
+ */
+ public BigButtonView[] getBigButtonViews() {
+ return bigButtonViews;
+ }
+
+ /**
+ * Get the texts.
+ * @return
+ */
+ public SmallButtonView[][] getSmallButtonViews() {
+ return smallButtonViews;
+ }
+
+ /**
+ * Set the blur radius.
+ */
+ public void setBlurRadius(int blurRadius) {
+ mBlurView.setBlurRadius(blurRadius);
+ update();
+ }
+
+ /**
+ * Get the blur radius.
+ * @return
+ */
+ public int getBlurRadius() {
+ return mBlurView.getBlurRadius();
+ }
+
+ /**
+ * Set the downsample factor.
+ * @param downsampleFactor
+ */
+ public void setDownsampleFactor(int downsampleFactor) {
+ mBlurView.setDownsampleFactor(downsampleFactor);
+ update();
+ }
+
+ /**
+ * Get the downsample factor.
+ * @return
+ */
+ public int getDownsampleFactor() {
+ return mBlurView.getDownsampleFactor();
+ }
+
+ /**
+ * Set the overlay color.
+ * @param color
+ */
+ public void setOverlayColor(int color) {
+ mBlurView.setOverlayColor(color);
+ update();
+ }
+
+ /**
+ * Get the overlay color.
+ * @return
+ */
+ public int getOverlayColor() {
+ return mBlurView.getmOverlayColor();
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java
new file mode 100644
index 0000000..6a111c9
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java
@@ -0,0 +1,194 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.drawable.ColorDrawable;
+import android.renderscript.Allocation;
+import android.renderscript.Element;
+import android.renderscript.RenderScript;
+import android.renderscript.ScriptIntrinsicBlur;
+import android.util.AttributeSet;
+import android.view.View;
+
+import cpm.com.gskmtorange.R;
+
+
+/**
+ * Created by Weiping on 2016/3/16.
+ */
+public class BlurView extends View {
+
+ private int mBlurRadius;
+ private int mDownsampleFactor;
+ private int mOverlayColor;
+
+ private View mBlurredView;
+ private int mBlurredViewWidth, mBlurredViewHeight;
+
+ private boolean mDownsampleFactorChanged;
+ private Bitmap mBitmapToBlur, mBlurredBitmap;
+ private Canvas mBlurringCanvas;
+ private RenderScript mRenderScript;
+ private ScriptIntrinsicBlur mBlurScript;
+ private Allocation mBlurInput, mBlurOutput;
+
+ public BlurView(Context context) {
+ this(context, null);
+ }
+
+ public BlurView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ final Resources res = getResources();
+ final int defaultBlurRadius = res.getInteger(R.integer.default_blur_radius);
+ final int defaultDownsampleFactor = res.getInteger(R.integer.default_downsample_factor);
+ final int defaultOverlayColor = res.getColor(R.color.default_overlay_color);
+
+ initializeRenderScript(context);
+
+ TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BlurView);
+ setBlurRadius(a.getInt(R.styleable.BlurView_blurRadius, defaultBlurRadius));
+ setDownsampleFactor(a.getInt(R.styleable.BlurView_downsampleFactor,
+ defaultDownsampleFactor));
+ setOverlayColor(a.getColor(R.styleable.BlurView_overlayColor, defaultOverlayColor));
+ a.recycle();
+ }
+
+ public void setBlurredView(View blurredView) {
+ mBlurredView = blurredView;
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ if (mBlurredView != null) {
+ if (prepare()) {
+ // If the background of the blurred view is a color drawable, we use it to clear
+ // the blurring canvas, which ensures that edges of the child views are blurred
+ // as well; otherwise we clear the blurring canvas with a transparent color.
+ if (mBlurredView.getBackground() != null && mBlurredView.getBackground() instanceof ColorDrawable) {
+ mBitmapToBlur.eraseColor(((ColorDrawable) mBlurredView.getBackground()).getColor());
+ } else {
+ mBitmapToBlur.eraseColor(Color.TRANSPARENT);
+ }
+
+ int[] mBlurredViewXY = new int[2];
+ mBlurredView.getLocationOnScreen(mBlurredViewXY);
+ int[] mBlurringViewXY = new int[2];
+ getLocationOnScreen(mBlurringViewXY);
+
+ mBlurredView.draw(mBlurringCanvas);
+ blur();
+
+ canvas.save();
+
+ // modify here to get the correct bitmap when the blurring view is in a parent
+ canvas.translate(mBlurredViewXY[0] - mBlurringViewXY[0], mBlurredViewXY[1] - mBlurringViewXY[1]);
+ canvas.scale(mDownsampleFactor, mDownsampleFactor);
+ canvas.drawBitmap(mBlurredBitmap, 0, 0, null);
+ canvas.restore();
+ }
+ canvas.drawColor(mOverlayColor);
+ }
+ }
+
+ public void setBlurRadius(int radius) {
+ mBlurRadius = radius;
+ mBlurScript.setRadius(mBlurRadius);
+ }
+
+ public int getBlurRadius() {
+ return mBlurRadius;
+ }
+
+ public void setDownsampleFactor(int factor) {
+ if (factor <= 0) {
+ throw new IllegalArgumentException("Downsample factor must be greater than 0.");
+ }
+
+ if (mDownsampleFactor != factor) {
+ mDownsampleFactor = factor;
+ mDownsampleFactorChanged = true;
+ }
+ }
+
+ public int getDownsampleFactor() {
+ return mDownsampleFactor;
+ }
+
+ public void setOverlayColor(int color) {
+ mOverlayColor = color;
+ }
+
+ public int getmOverlayColor() {
+ return mOverlayColor;
+ }
+
+ private void initializeRenderScript(Context context) {
+ mRenderScript = RenderScript.create(context);
+ mBlurScript = ScriptIntrinsicBlur.create(mRenderScript, Element.U8_4(mRenderScript));
+ }
+
+ protected boolean prepare() {
+ final int width = mBlurredView.getWidth();
+ final int height = mBlurredView.getHeight();
+
+ if (mBlurringCanvas == null || mDownsampleFactorChanged
+ || mBlurredViewWidth != width || mBlurredViewHeight != height) {
+ mDownsampleFactorChanged = false;
+
+ mBlurredViewWidth = width;
+ mBlurredViewHeight = height;
+
+ int scaledWidth = width / mDownsampleFactor;
+ int scaledHeight = height / mDownsampleFactor;
+
+ // The following manipulation is to avoid some RenderScript artifacts at the edge.
+ scaledWidth = scaledWidth - scaledWidth % 4 + 4;
+ scaledHeight = scaledHeight - scaledHeight % 4 + 4;
+
+ if (mBlurredBitmap == null
+ || mBlurredBitmap.getWidth() != scaledWidth
+ || mBlurredBitmap.getHeight() != scaledHeight) {
+ mBitmapToBlur = Bitmap.createBitmap(scaledWidth, scaledHeight,
+ Bitmap.Config.ARGB_8888);
+ if (mBitmapToBlur == null) {
+ return false;
+ }
+
+ mBlurredBitmap = Bitmap.createBitmap(scaledWidth, scaledHeight,
+ Bitmap.Config.ARGB_8888);
+ if (mBlurredBitmap == null) {
+ return false;
+ }
+ }
+
+ mBlurringCanvas = new Canvas(mBitmapToBlur);
+ mBlurringCanvas.scale(1f / mDownsampleFactor, 1f / mDownsampleFactor);
+ mBlurInput = Allocation.createFromBitmap(mRenderScript, mBitmapToBlur,
+ Allocation.MipmapControl.MIPMAP_NONE, Allocation.USAGE_SCRIPT);
+ mBlurOutput = Allocation.createTyped(mRenderScript, mBlurInput.getType());
+ }
+ return true;
+ }
+
+ protected void blur() {
+ mBlurInput.copyFrom(mBitmapToBlur);
+ mBlurScript.setInput(mBlurInput);
+ mBlurScript.forEach(mBlurOutput);
+ mBlurOutput.copyTo(mBlurredBitmap);
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ if (mRenderScript != null) {
+ mRenderScript.destroy();
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java
new file mode 100644
index 0000000..dfabcda
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java
@@ -0,0 +1,20 @@
+package cpm.com.gskmtorange.blurlockview.Directions;
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public enum HideType {
+
+ FROM_TOP_TO_BOTTOM(0),
+ FROM_RIGHT_TO_LEFT(1),
+ FROM_BOTTOM_TO_TOP(2),
+ FROM_LEFT_TO_RIGHT(3),
+ FADE_OUT(4);
+
+ int type;
+
+ HideType(int type) {
+ this.type = type;
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java
new file mode 100644
index 0000000..cef41fb
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java
@@ -0,0 +1,20 @@
+package cpm.com.gskmtorange.blurlockview.Directions;
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public enum ShowType {
+
+ FROM_TOP_TO_BOTTOM(0),
+ FROM_RIGHT_TO_LEFT(1),
+ FROM_BOTTOM_TO_TOP(2),
+ FROM_LEFT_TO_RIGHT(3),
+ FADE_IN(4);
+
+ int type;
+
+ ShowType(int type) {
+ this.type = type;
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java
new file mode 100644
index 0000000..c5392c3
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java
@@ -0,0 +1,87 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.FrameLayout;
+
+import cpm.com.gskmtorange.R;
+
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public class Dot extends FrameLayout {
+
+ private View selected;
+ private View unselected;
+
+ private ObjectAnimator selectedAnimator;
+ private ObjectAnimator unselectedAnimator;
+
+ private boolean isSelected = false;
+
+ public Dot(Context context) {
+ this(context, null);
+ }
+
+ public Dot(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ LayoutInflater.from(context).inflate(R.layout.dot_view, this, true);
+
+ selected = findViewById(R.id.selected);
+ unselected = findViewById(R.id.unselected);
+
+ clear();
+ }
+
+ /**
+ * Set this dot to selected or not.
+ *
+ * @param isSelected Selected or not.
+ */
+ public void setSelected(boolean isSelected) {
+ if (!(this.isSelected ^ isSelected)) return;
+ this.isSelected = isSelected;
+ if (isSelected) {
+ // change to selected
+ selected.setAlpha(0);
+ unselected.setAlpha(1);
+ if (selectedAnimator != null) selectedAnimator.cancel();
+ if (unselectedAnimator != null) unselectedAnimator.cancel();
+
+ selectedAnimator = ObjectAnimator.ofFloat(selected, "alpha", 0f, 1f);
+ selectedAnimator.setDuration(300);
+ selectedAnimator.start();
+
+ unselectedAnimator = ObjectAnimator.ofFloat(unselected, "alpha", 1f, 0f);
+ unselectedAnimator.setDuration(300);
+ unselectedAnimator.start();
+ } else {
+ // change to unselected
+ selected.setAlpha(1);
+ unselected.setAlpha(0);
+ if (selectedAnimator != null) selectedAnimator.cancel();
+ if (unselectedAnimator != null) unselectedAnimator.cancel();
+
+ selectedAnimator = ObjectAnimator.ofFloat(selected, "alpha", 1f, 0f);
+ selectedAnimator.setDuration(300);
+ selectedAnimator.start();
+
+ unselectedAnimator = ObjectAnimator.ofFloat(unselected, "alpha", 0f, 1f);
+ unselectedAnimator.setDuration(300);
+ unselectedAnimator.start();
+ }
+ }
+
+ /**
+ * Clear the dot.
+ */
+ public void clear() {
+ selected.setAlpha(0);
+ unselected.setAlpha(1);
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java
new file mode 100644
index 0000000..71ad2c7
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java
@@ -0,0 +1,82 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+import android.graphics.PointF;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+public abstract class CubicBezier {
+
+ private PointF start;
+ private PointF end;
+ private PointF a = new PointF();
+ private PointF b = new PointF();
+ private PointF c = new PointF();
+
+ /**
+ * init the 4 values of the cubic-bezier
+ * @param startX x of start
+ * @param startY y of start
+ * @param endX x of end
+ * @param endY y of end
+ */
+ public void init(float startX, float startY, float endX, float endY) {
+ setStart(new PointF(startX, startY));
+ setEnd(new PointF(endX, endY));
+ }
+
+ public void init(double startX, double startY, double endX, double endY) {
+ init((float) startX, (float) startY, (float) endX, (float) endY);
+ }
+
+ public float getOffset(float offset) {
+ return getBezierCoordinateY(getXForTime(offset));
+ }
+
+ private float getBezierCoordinateY(float time) {
+ c.y = 3 * start.y;
+ b.y = 3 * (end.y - start.y) - c.y;
+ a.y = 1 - c.y - b.y;
+ return time * (c.y + time * (b.y + time * a.y));
+ }
+
+ private float getXForTime(float time) {
+ float x = time;
+ float z;
+ for (int i = 1; i < 14; i++) {
+ z = getBezierCoordinateX(x) - time;
+ if (Math.abs(z) < 1e-3) {
+ break;
+ }
+ x -= z / getXDerivate(x);
+ }
+ return x;
+ }
+
+ private float getXDerivate(float t) {
+ return c.x + t * (2 * b.x + 3 * a.x * t);
+ }
+
+ private float getBezierCoordinateX(float time) {
+ c.x = 3 * start.x;
+ b.x = 3 * (end.x - start.x) - c.x;
+ a.x = 1 - c.x - b.x;
+ return time * (c.x + time * (b.x + time * a.x));
+ }
+
+ public PointF getStart() {
+ return start;
+ }
+
+ public void setStart(PointF start) {
+ this.start = start;
+ }
+
+ public PointF getEnd() {
+ return end;
+ }
+
+ public void setEnd(PointF end) {
+ this.end = end;
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java
new file mode 100644
index 0000000..ceca4ae
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInBack extends CubicBezier {
+
+ public EaseInBack() {
+ init(0.6, -0.28, 0.735, 0.045);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java
new file mode 100644
index 0000000..3600817
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java
@@ -0,0 +1,32 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInBounce extends CubicBezier {
+
+ public EaseInBounce() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ return c - easeOutBounce(d-t, 0, c, d) + b;
+ }
+
+ private float easeOutBounce(float t, float b, float c, float d) {
+ if ((t/=d) < (1/2.75f)) {
+ return c*(7.5625f*t*t) + b;
+ } else if (t < (2/2.75f)) {
+ return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b;
+ } else {
+ return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b;
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java
new file mode 100644
index 0000000..6ef60d6
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInCirc extends CubicBezier {
+
+ public EaseInCirc() {
+ init(0.6, 0.04, 0.98, 0.335);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java
new file mode 100644
index 0000000..a7c21b5
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInCubic extends CubicBezier {
+
+ public EaseInCubic() {
+ init(0.55, 0.055, 0.675, 0.19);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java
new file mode 100644
index 0000000..fa65cd4
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java
@@ -0,0 +1,24 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInElastic extends CubicBezier {
+
+ public EaseInElastic() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ if (t==0) return b; if ((t/=d)==1) return b+c;
+ float p=d*.3f;
+ float a=c;
+ float s=p/4;
+ return -(a*(float) Math.pow(2,10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )) + b;
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java
new file mode 100644
index 0000000..b5d26f0
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInExpo extends CubicBezier {
+
+ public EaseInExpo() {
+ init(0.95, 0.05, 0.795, 0.035);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java
new file mode 100644
index 0000000..60693bd
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutBack extends CubicBezier {
+
+ public EaseInOutBack() {
+ init(0.68, -0.55, 0.265, 1.55);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java
new file mode 100644
index 0000000..019c9d7
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java
@@ -0,0 +1,39 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutBounce extends CubicBezier {
+
+ public EaseInOutBounce() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ if (t < d / 2)
+ return easeInBounce(t * 2, 0, c, d) * .5f + b;
+ else
+ return easeOutBounce(t * 2 - d, 0, c, d) * .5f + c * .5f + b;
+ }
+
+ private float easeInBounce(float t, float b, float c, float d) {
+ return c - easeOutBounce(d - t, 0, c, d) + b;
+ }
+
+ private float easeOutBounce(float t, float b, float c, float d) {
+ if ((t/=d) < (1/2.75f)) {
+ return c*(7.5625f*t*t) + b;
+ } else if (t < (2/2.75f)) {
+ return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b;
+ } else {
+ return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b;
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java
new file mode 100644
index 0000000..bb53687
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutCirc extends CubicBezier {
+
+ public EaseInOutCirc() {
+ init(0.785, 0.135, 0.15, 0.86);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java
new file mode 100644
index 0000000..1c371f7
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutCubic extends CubicBezier {
+
+ public EaseInOutCubic() {
+ init(0.645, 0.045, 0.355, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java
new file mode 100644
index 0000000..c43481d
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java
@@ -0,0 +1,25 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutElastic extends CubicBezier {
+
+ public EaseInOutElastic() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ if (t==0) return b; if ((t/=d/2)==2) return b+c;
+ float p=d*(.3f*1.5f);
+ float a=c;
+ float s=p/4;
+ if (t < 1) return -.5f*(a*(float) Math.pow(2,10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )) + b;
+ return a*(float) Math.pow(2,-10*(t-=1)) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p )*.5f + c + b;
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java
new file mode 100644
index 0000000..d1c8342
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutExpo extends CubicBezier {
+
+ public EaseInOutExpo() {
+ init(1, 0, 0, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java
new file mode 100644
index 0000000..7287d5c
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutQuad extends CubicBezier {
+
+ public EaseInOutQuad() {
+ init(0.455, 0.03, 0.515, 0.955);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java
new file mode 100644
index 0000000..2102070
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutQuart extends CubicBezier {
+
+ public EaseInOutQuart() {
+ init(0.77, 0, 0.175, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java
new file mode 100644
index 0000000..4633bb4
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutQuint extends CubicBezier {
+
+ public EaseInOutQuint() {
+ init(0.86, 0, 0.07, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java
new file mode 100644
index 0000000..98b0a94
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInOutSine extends CubicBezier {
+
+ public EaseInOutSine() {
+ init(0.445, 0.05, 0.55, 0.95);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java
new file mode 100644
index 0000000..57eae82
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInQuad extends CubicBezier {
+
+ public EaseInQuad() {
+ init(0.55, 0.085, 0.68, 0.53);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java
new file mode 100644
index 0000000..ac42006
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java
@@ -0,0 +1,12 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInQuart extends CubicBezier {
+
+ public EaseInQuart() {
+ init(0.895, 0.03, 0.685, 0.22);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java
new file mode 100644
index 0000000..3235233
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInQuint extends CubicBezier {
+
+ public EaseInQuint() {
+ init(0.755, 0.05, 0.855, 0.06);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java
new file mode 100644
index 0000000..885b63e
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseInSine extends CubicBezier {
+
+ public EaseInSine() {
+ init(0.47, 0, 0.745, 0.715);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java
new file mode 100644
index 0000000..876c0ca
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutBack extends CubicBezier {
+
+ public EaseOutBack() {
+ init(0.175, 0.885, 0.32, 1.275);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java
new file mode 100644
index 0000000..727f943
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java
@@ -0,0 +1,27 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutBounce extends CubicBezier {
+
+ public EaseOutBounce() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ if ((t/=d) < (1/2.75f)) {
+ return c*(7.5625f*t*t) + b;
+ } else if (t < (2/2.75f)) {
+ return c*(7.5625f*(t-=(1.5f/2.75f))*t + .75f) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625f*(t-=(2.25f/2.75f))*t + .9375f) + b;
+ } else {
+ return c*(7.5625f*(t-=(2.625f/2.75f))*t + .984375f) + b;
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java
new file mode 100644
index 0000000..ae0cb57
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutCirc extends CubicBezier {
+
+ public EaseOutCirc() {
+ init(0.075, 0.82, 0.165, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java
new file mode 100644
index 0000000..c14b774
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutCubic extends CubicBezier {
+
+ public EaseOutCubic() {
+ init(0.215, 0.61, 0.355, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java
new file mode 100644
index 0000000..27002c2
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java
@@ -0,0 +1,25 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutElastic extends CubicBezier {
+
+ public EaseOutElastic() {
+
+ }
+
+ public float getOffset(float t) {
+ float b = 0;
+ float c = 1;
+ float d = 1;
+ if (t==0) return b; if ((t/=d)==1) return b+c;
+ float p=d*.3f;
+ float a=c;
+ float s=p/4;
+ return (a*(float) Math.pow(2,-10*t) * (float) Math.sin( (t*d-s)*(2*(float) Math.PI)/p ) + c + b);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java
new file mode 100644
index 0000000..f7c72d9
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutExpo extends CubicBezier {
+
+ public EaseOutExpo() {
+ init(0.19, 1, 0.22, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java
new file mode 100644
index 0000000..0eb3eee
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutQuad extends CubicBezier {
+
+ public EaseOutQuad() {
+ init(0.25, 0.46, 0.45, 0.94);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java
new file mode 100644
index 0000000..e45cdef
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutQuart extends CubicBezier {
+
+ public EaseOutQuart() {
+ init(0.165, 0.84, 0.44, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java
new file mode 100644
index 0000000..67d3db8
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java
@@ -0,0 +1,14 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutQuint extends CubicBezier {
+
+ public EaseOutQuint() {
+ init(0.23, 1, 0.32, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java
new file mode 100644
index 0000000..b51737b
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class EaseOutSine extends CubicBezier {
+
+ public EaseOutSine() {
+ init(0.39, 0.575, 0.565, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java
new file mode 100644
index 0000000..473dc68
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java
@@ -0,0 +1,70 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public enum EaseType {
+
+ EaseInSine(EaseInSine.class),
+ EaseOutSine(EaseOutSine.class),
+ EaseInOutSine(EaseInOutSine.class),
+
+ EaseInQuad(EaseInQuad.class),
+ EaseOutQuad(EaseOutQuad.class),
+ EaseInOutQuad(EaseInOutQuad.class),
+
+ EaseInCubic(EaseInCubic.class),
+ EaseOutCubic(EaseOutCubic.class),
+ EaseInOutCubic(EaseInOutCubic.class),
+
+ EaseInQuart(EaseInQuart.class),
+ EaseOutQuart(EaseOutQuart.class),
+ EaseInOutQuart(EaseInOutQuart.class),
+
+ EaseInQuint(EaseInQuint.class),
+ EaseOutQuint(EaseOutQuint.class),
+ EaseInOutQuint(EaseInOutQuint.class),
+
+ EaseInExpo(EaseInExpo.class),
+ EaseOutExpo(EaseOutExpo.class),
+ EaseInOutExpo(EaseInOutExpo.class),
+
+ EaseInCirc(EaseInCirc.class),
+ EaseOutCirc(EaseOutCirc.class),
+ EaseInOutCirc(EaseInOutCirc.class),
+
+ EaseInBack(EaseInBack.class),
+ EaseOutBack(EaseOutBack.class),
+ EaseInOutBack(EaseInOutBack.class),
+
+ EaseInElastic(EaseInElastic.class),
+ EaseOutElastic(EaseOutElastic.class),
+ EaseInOutElastic(EaseInOutElastic.class),
+
+ EaseInBounce(EaseInBounce.class),
+ EaseOutBounce(EaseOutBounce.class),
+ EaseInOutBounce(EaseInOutBounce.class),
+
+ Linear(Linear.class);
+
+ private Class easingType;
+
+ /**
+ * ease animation helps to make the movement more real
+ * @param easingType
+ */
+ EaseType(Class easingType) {
+ this.easingType = easingType;
+ }
+
+ public float getOffset(float offset) {
+ try {
+ return ((CubicBezier) easingType.getConstructor().newInstance()).getOffset(offset);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new Error("CubicBezier init error.");
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java
new file mode 100644
index 0000000..501e25b
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java
@@ -0,0 +1,13 @@
+package cpm.com.gskmtorange.blurlockview.Eases;
+
+/**
+ * Created by Weiping on 2016/3/3.
+ */
+
+public class Linear extends CubicBezier {
+
+ public Linear() {
+ init(0, 0, 1, 1);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java
new file mode 100644
index 0000000..2828735
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java
@@ -0,0 +1,69 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+
+import cpm.com.gskmtorange.R;
+
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public class Indicator extends LinearLayout {
+
+ private Dot[] dots;
+ private int number = 0;
+
+ public Indicator(Context context) {
+ super(context);
+ }
+
+ public Indicator(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public void setPasswordLength(int length) {
+ removeAllViews();
+ dots = new Dot[length];
+
+ for(int i = 0; i < length; i++) {
+ Dot view = new Dot(getContext());
+
+ view.setBackgroundResource(R.drawable.indicator_background);
+
+ LayoutParams params = new LayoutParams(
+ 30,
+ 30
+ );
+ params.setMargins(20, 10, 20, 10);
+ addView(view, params);
+ dots[i] = view;
+ }
+ }
+
+ /**
+ * Add a dot.
+ */
+ public void add() {
+ if (number == dots.length) return;
+ dots[number++].setSelected(true);
+ }
+
+ /**
+ * Delete a dot.
+ */
+ public void delete() {
+ if (number == 0) return;
+ dots[--number].setSelected(false);
+ }
+
+ /**
+ * Clear all dots.
+ */
+ public void clear() {
+ number = 0;
+ for (int i = 0; i < dots.length; i++) dots[i].setSelected(false);
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java
new file mode 100644
index 0000000..57d1e5d
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java
@@ -0,0 +1,31 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.view.animation.Interpolator;
+
+import cpm.com.gskmtorange.blurlockview.Eases.EaseType;
+
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public class InterpolatorFactory {
+
+ public static BLVInterpolator getInterpolator(EaseType easeType) {
+ return new BLVInterpolator(easeType);
+ }
+
+ public static class BLVInterpolator implements Interpolator {
+
+ private EaseType easeType;
+
+ public BLVInterpolator(EaseType easeType) {
+ this.easeType = easeType;
+ }
+
+ @Override
+ public float getInterpolation(float input) {
+ return easeType.getOffset(input);
+ }
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java
new file mode 100644
index 0000000..1c5af26
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java
@@ -0,0 +1,17 @@
+package cpm.com.gskmtorange.blurlockview;
+
+/**
+ * Created by Weiping on 2016/3/17.
+ */
+public enum Password {
+
+ NUMBER(0),
+ TEXT(1);
+
+ private int type;
+
+ private Password(int type) {
+ this.type = type;
+ }
+
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java
new file mode 100644
index 0000000..b72be2e
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java
@@ -0,0 +1,195 @@
+package cpm.com.gskmtorange.blurlockview;
+
+import android.animation.ObjectAnimator;
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.support.v4.content.ContextCompat;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.TextView;
+
+import cpm.com.gskmtorange.R;
+
+
+/**
+ * Created by Weiping on 2016/3/16.
+ */
+
+public class SmallButtonView extends FrameLayout {
+
+ private FrameLayout frameLayout;
+ private View clickEffect;
+ private TextView text;
+ private String textString = "";
+ private ObjectAnimator clickEffectAnimator;
+ private int duration = 500;
+ private OnPressListener onPressListener;
+
+ public SmallButtonView(Context context) {
+ this(context, null);
+ }
+
+ public SmallButtonView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ LayoutInflater.from(context).inflate(R.layout.small_button_view, this, true);
+
+ Resources resources = getResources();
+
+ frameLayout = (FrameLayout)findViewById(R.id.frame_layout);
+
+ text = (TextView)findViewById(R.id.text);
+ text.setText(textString);
+ text.setTextColor(ContextCompat.getColor(context, R.color.default_small_button_text_color));
+ text.setTextSize(resources.getInteger(R.integer.default_small_button_text_size));
+
+ clickEffect = findViewById(R.id.click_effect);
+ clickEffect.setAlpha(0);
+ clickEffectAnimator = ObjectAnimator.ofFloat(clickEffect, "alpha", 1f, 0f);
+ clickEffectAnimator.setDuration(duration);
+ }
+
+ /**
+ * Set the listener, for returning what happened to BlurLockView.
+ *
+ * @param onPressListener OnPressListener.
+ */
+ public void setOnPressListener(OnPressListener onPressListener) {
+ this.onPressListener = onPressListener;
+ }
+
+ /**
+ * Set the width of the button.
+ *
+ * @param width Width, in pixels.
+ */
+ public void setWidth(int width) {
+ ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams();
+ layoutParams.width = width;
+ frameLayout.setLayoutParams(layoutParams);
+ layoutParams = clickEffect.getLayoutParams();
+ layoutParams.width = width;
+ clickEffect.setLayoutParams(layoutParams);
+ }
+
+ /**
+ * Set the height of the button.
+ *
+ * @param height Height, in pixels.
+ */
+ public void setHeight(int height) {
+ ViewGroup.LayoutParams layoutParams = frameLayout.getLayoutParams();
+ layoutParams.height = height;
+ frameLayout.setLayoutParams(layoutParams);
+ layoutParams = clickEffect.getLayoutParams();
+ layoutParams.height = height;
+ clickEffect.setLayoutParams(layoutParams);
+ }
+
+ /**
+ * Set the resource of background.
+ *
+ * @param resourceId ResourceId.
+ */
+ public void setBackground(int resourceId) {
+ frameLayout.setBackgroundResource(resourceId);
+ }
+
+ /**
+ * Set the resource of click effect.
+ *
+ * @param resourceId ResourceId.
+ */
+ public void setEffect(int resourceId) {
+ clickEffect.setBackgroundResource(resourceId);
+ }
+
+ /**
+ * Set the duration of the effect.
+ *
+ * @param duration Duration, in ms.
+ */
+ public void setEffectDuration(int duration) {
+ this.duration = duration;
+ }
+
+ /**
+ * Set the text size of the main text.
+ *
+ * @param size Text size, in sp.
+ */
+ public void setTextSize(int size) {
+ text.setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
+ }
+
+ /**
+ * Set the text color of main text.
+ *
+ * @param color Color.
+ */
+ public void setTextColor(int color) {
+ text.setTextColor(color);
+ }
+
+ /**
+ * Set font of button.
+ *
+ * @param typeFace New font.
+ */
+ public void setTypeFace(Typeface typeFace) {
+ text.setTypeface(typeFace);
+ }
+
+ /**
+ * Set the string of the text.
+ *
+ * @param textString The new string.
+ */
+ public void setText(String textString) {
+ this.textString = textString;
+ if (text != null) text.setText(textString);
+ }
+
+ /**
+ * Perform the click effect.
+ *
+ * @param event MotionEvent.
+ * @return
+ */
+ @Override
+ public boolean dispatchTouchEvent(MotionEvent event) {
+ switch(event.getAction()){
+ case MotionEvent.ACTION_DOWN:
+ if (onPressListener != null) onPressListener.onPress(textString);
+ clickEffectAnimator.cancel();
+ clickEffect.setAlpha(1);
+ break;
+ case MotionEvent.ACTION_UP:
+ clickEffectAnimator.start();
+ break;
+ default:break;
+ }
+
+ return super.dispatchTouchEvent(event);
+ }
+
+ /**
+ * Clear the animation.
+ */
+ public void clearAnimation() {
+ if (clickEffect.getAlpha() == 1) {
+ clickEffectAnimator.cancel();
+ clickEffectAnimator.start();
+ }
+ }
+
+ public interface OnPressListener {
+ void onPress(String string);
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java
index 7c9674f..d07798f 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonFunctions.java
@@ -1,6 +1,8 @@
package cpm.com.gskmtorange.constant;
+import android.app.Activity;
import android.content.Context;
+import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
@@ -13,6 +15,10 @@ import android.widget.ImageView;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Locale;
+import android.app.AlertDialog;
+
+import cpm.com.gskmtorange.R;
+import cpm.com.gskmtorange.interfaces.DialogCallbackListener;
/**
* Created by yadavendras on 13-11-2017.
@@ -133,4 +139,48 @@ public class CommonFunctions {
return inSampleSize;
}
+
+ public static void showAlertDialog(final Context context, String msg){
+
+ final DialogCallbackListener[] mListener = new DialogCallbackListener[1];
+
+ try {
+ // Instantiate the NoticeDialogListener so we can send events to the host
+ mListener[0] = (DialogCallbackListener) context;
+ } catch (ClassCastException e) {
+ Activity activity = (Activity) context;
+ // The activity doesn't implement the interface, throw exception
+ throw new ClassCastException(activity.getClass() + " must implement DialogCallbackListener");
+ }
+
+ final boolean[] flag = new boolean[1];
+
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
+ alertDialogBuilder.setTitle(context.getResources().getString(R.string.dialog_title));
+
+ // set dialog message
+ alertDialogBuilder.setMessage(msg)
+ .setCancelable(false)
+ .setPositiveButton(context.getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ mListener[0].onSelect(true);
+ dialog.cancel();
+ }
+ })
+ .setNegativeButton(context.getResources().getString(R.string.no), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+ // if this button is clicked, just close
+ // the dialog box and do nothing
+ mListener[0].onSelect(false);
+ dialog.cancel();
+ }
+ });
+
+ // create alert dialog
+ AlertDialog alertDialog = alertDialogBuilder.create();
+
+ // show it
+ alertDialog.show();
+
+ }
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java
index 0c8e664..74d9b61 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java
@@ -104,6 +104,7 @@ public class CommonString {
public static final String KEY_P = "P";
public static final String KEY_D = "D";
public static final String KEY_U = "U";
+ public static final String KEY_UN = "UN";
public static final String KEY_C = "C";
public static final String KEY_Y = "Y";
public static final String KEY_L = "Leave";
@@ -183,6 +184,10 @@ public class CommonString {
public static final String SOAP_ACTION_UPLOAD_IMAGE = "http://tempuri.org/" + METHOD_UPLOAD_IMAGE;
+ public static final String METHOD_UPDATE_PASSWORD = "Update_Password";
+ public static final String SOAP_ACTION_UPDATE_PASSWORD = "http://tempuri.org/"
+ + METHOD_UPDATE_PASSWORD;
+
//Alert Messages
public static final String MESSAGE_FAILURE = "Server Error.Please Access After Some Time";
public static final String MESSAGE_FALSE = "Invalid User";
@@ -1001,6 +1006,9 @@ public class CommonString {
+ "ANSWER_ID"
+ " INTEGER,"
+ + "ANSWER"
+ + " VARCHAR,"
+
+ "CATEGORY_ID"
+ " INTEGER,"
@@ -1038,4 +1046,39 @@ public class CommonString {
+ " INTEGER"
+ ")";
+
+ public static String IS_PASSWORD_CHECK = "IS_PASSWORD_CHECK";
+ public static String MPIN = "MPIN";
+ public static String TABLE_MAPPING_STOCK_ADHOC = "MAPPING_STOCK_ADHOC";
+ public static String TABLE_MAPPING_STOCK = "MAPPING_STOCK";
+ public static String TABLE_MAPPING_STOCK_STOREWISE = "MAPPING_STOCK_STOREWISE";
+ public static String TABLE_MAPPING_T2P_ADHOC = "MAPPING_T2P_ADHOC";
+ public static String TABLE_MAPPING_PROMOTION_ADHOC = "MAPPING_PROMOTION_ADHOC";
+ public static String TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC = "MAPPING_ADDITIONAL_PROMOTION_ADHOC";
+ public static String TABLE_MAPPING_PLANOGRAM_ADHOC = "MAPPING_PLANOGRAM_ADHOC";
+ public static String TABLE_MAPPING_SOS_TARGET_ADHOC = "MAPPING_SOS_TARGET_ADHOC";
+ public static String TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC = "NO_CAMERA_LAST_VISIT_DATA_ADHOC";
+ public static String TABLE_STORE_PERFORMANCE_NEW_ADHOC = "STORE_PERFORMANCE_NEW_ADHOC";
+
+ public static final String TABLE_IS_ADHOC_SAVED = "IS_ADHOC_SAVED";
+ public static final String CREATE_ABLE_IS_ADHOC_SAVED = "CREATE TABLE IF NOT EXISTS "
+ + TABLE_IS_ADHOC_SAVED
+ + " ("
+ + "KEY_ID"
+ + " INTEGER PRIMARY KEY AUTOINCREMENT ,"
+
+ + KEY_STORE_ID
+ + " INTEGER,"
+
+ + KEY_VISIT_DATE
+ + " VARCHAR"
+
+ + ")";
+
+ public static String TABLE_MAPPING_PLANOGRAM = "MAPPING_PLANOGRAM";
+ public static String TABLE_MAPPING_PLANOGRAM_STORE_WISE = "MAPPING_PLANOGRAM_STORE_WISE";
+ public static String TABLE_MAPPING_T2P = "MAPPING_T2P";
+ public static String TABLE_MAPPING_PROMOTION = "MAPPING_PROMOTION";
+ public static String TABLE_MAPPING_ADDITIONAL_PROMOTION = "MAPPING_ADDITIONAL_PROMOTION";
+ public static String TABLE_MAPPING_SOS_TARGET = "MAPPING_SOS_TARGET";
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java
index 892207c..f3a6b36 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalPromoSKUwiseActivity.java
@@ -36,6 +36,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Spinner;
import android.widget.TextView;
+import android.widget.ToggleButton;
import java.io.File;
import java.util.ArrayList;
@@ -80,6 +81,8 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
PromoAdapter promoAdapter;
int price_flasher_available = -1;
+ ToggleButton btntoggle;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -100,7 +103,8 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
et_discount = (EditText) findViewById(R.id.et_discount);
et_price = (EditText) findViewById(R.id.et_price);
img_cam = (ImageView) findViewById(R.id.img_promotion_add);
- lin_parent = (LinearLayout) findViewById(R.id.lin_parent);
+ lin_parent = (LinearLayout) findViewById(R.id.lin_parent_promo);
+ btntoggle = (ToggleButton) findViewById(R.id.btntoggle);
//preference data
preferences = PreferenceManager.getDefaultSharedPreferences(this);
@@ -154,6 +158,8 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
}
}
+ btntoggle.setChecked(isExists);
+
if(added_promo_list.size()>0){
rec_added_promo.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
promoAdapter = new PromoAdapter(added_promo_list);
@@ -196,6 +202,7 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
fab_add.setOnClickListener(this);
fab_save.setOnClickListener(this);
img_cam.setOnClickListener(this);
+ btntoggle.setOnClickListener(this);
}
@Override
@@ -344,8 +351,11 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
}
else if(isdata_added){
+ db.InsertPromoSKUwiseData(added_promo_list, categoryId, store_id, isExists);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
+ /*AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
AdditionalPromoSKUwiseActivity.this);
// set title
alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title));
@@ -356,9 +366,7 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- db.InsertPromoSKUwiseData(added_promo_list, categoryId, store_id, isExists);
- finish();
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
}
})
.setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() {
@@ -373,7 +381,7 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
- alertDialog.show();
+ alertDialog.show();*/
}else {
finish();
@@ -458,6 +466,71 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
startCameraActivity(1);
break;
+
+ case R.id.btntoggle:
+ isExists = btntoggle.isChecked();
+
+ if(isExists){
+ lin_parent.setVisibility(View.VISIBLE);
+ fab_add.show();//.setVisibility(View.VISIBLE);
+ }
+ else {
+ android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AdditionalPromoSKUwiseActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ fab_add.hide();//.setVisibility(View.GONE);
+ added_promo_list.clear();
+
+ rec_added_promo.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
+ promoAdapter = new PromoAdapter(added_promo_list);
+ rec_added_promo.setAdapter(promoAdapter);
+
+ /* if(promoAdapter!=null){
+ promoAdapter.list.clear();
+ promoAdapter.notifyDataSetChanged();
+ }*/
+
+ lin_parent.setVisibility(View.GONE);
+
+ sub_category = "";
+ sub_category_id = "0";
+ brand= "";
+ brand_id = "0";
+ sku = "";
+ sku_id = "0";
+ discount = "";
+ price = "";
+ img_str = "";
+
+ et_discount.setText("");
+ et_price.setText("");
+ spinner_sub_category_list.setSelection(0);
+ clearBrandSpinner();
+ clearSkuSpinner();
+ if(is_camera_compulsory){
+ img_cam.setBackgroundResource(R.drawable.camera_orange_star_green);
+ }
+ else {
+ img_cam.setBackgroundResource(R.mipmap.camera_orange);
+ }
+ isdata_added = true;
+
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ //checkBox.setChecked(true);
+ btntoggle.setChecked(true);
+ }
+ });
+ android.app.AlertDialog alert = builder.create();
+ alert.show();
+ }
+ break;
}
}
@@ -799,7 +872,7 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
ischanged();
}
- @Override
+ /*@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_promo_skuwise, menu);
@@ -831,10 +904,10 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
promoAdapter = new PromoAdapter(added_promo_list);
rec_added_promo.setAdapter(promoAdapter);
- /* if(promoAdapter!=null){
+ *//* if(promoAdapter!=null){
promoAdapter.list.clear();
promoAdapter.notifyDataSetChanged();
- }*/
+ }*//*
lin_parent.setVisibility(View.GONE);
@@ -876,7 +949,7 @@ public class AdditionalPromoSKUwiseActivity extends AppCompatActivity implements
});
return true;
- }
+ }*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java
index f6d70ad..6f516b0 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AdditionalVisibility.java
@@ -60,6 +60,7 @@ import cpm.com.gskmtorange.GetterSetter.AddittionalGetterSetter;
import cpm.com.gskmtorange.R;
import cpm.com.gskmtorange.constant.CommonFunctions;
import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.interfaces.DialogCallbackListener;
import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter;
@@ -68,7 +69,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter;
* Created by ashishc on 05-01-2017.
*/
-public class AdditionalVisibility extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener {
+public class AdditionalVisibility extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemSelectedListener, DialogCallbackListener {
ArrayList list = new ArrayList();
ArrayList listdata = new ArrayList<>();
ArrayList listMain = new ArrayList();
@@ -83,7 +84,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
public static ArrayList data = new ArrayList();
ToggleButton btntoggle;
ImageView btnimage, btnedit, btnimage1, btnimage2;
- Button btnsku, btnaddlayout;
+ Button btnsku; //btnaddlayout;
GSKOrangeDB db;
ArrayList sku_list;
String brand_name = "", brand_id = "", SKU_name = "", SKU_ID = "", brand_list_name = "", brand_list_id = "", sku_list_name = "", sku_list_id = "", display_planogram_url="";
@@ -106,17 +107,18 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
EditText Edt_txt;
MyAdaptorStock adapterData;
ListView listviewlay;
- String errormsg, categoryName, categoryId,country_id;
+ String errormsg, categoryName, categoryId,country_id, store_flag_str;
MyAdaptorAdditionalStock adapteradditional;
AddittionalGetterSetter adGt, newadd;
LinearLayout brandlayout, diaplylayout, cameralayout;
- FloatingActionButton fab;
+ FloatingActionButton fab, fab_add;
//RelativeLayout skulayout;
- CardView cardvew, maincard;
+ //CardView cardvew, maincard;
String gallery_package = "";
Uri outputFileUri;
Toolbar toolbar;
+ boolean editFlag = false;
////String brand_id,SKU_ID;
protected void onCreate(Bundle savedInstanceState) {
@@ -138,6 +140,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
key_account_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
@@ -152,7 +155,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
db.open();
spinner_brand_list = (Spinner) findViewById(R.id.spinner_Brand1);
spinner_sku_list = (Spinner) findViewById(R.id.spinner_SkuMaster);
- cardvew = (CardView) findViewById(R.id.cardviewid);
+ //cardvew = (CardView) findViewById(R.id.cardviewid);
btntoggle = (ToggleButton) findViewById(R.id.btntoggle);
btnimage = (ImageView) findViewById(R.id.btn_image);
btnimage1 = (ImageView) findViewById(R.id.btn_image2);
@@ -160,13 +163,14 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
btnedit = (ImageView) findViewById(R.id.btn_edit);
btnsku = (Button) findViewById(R.id.btn_sku);
- btnaddlayout = (Button) findViewById(R.id.btadd);
+ //btnaddlayout = (Button) findViewById(R.id.btadd);
listviewlay = (ListView) findViewById(R.id.listviewlv);
brandlayout = (LinearLayout) findViewById(R.id.tv_brandlayout);
diaplylayout = (LinearLayout) findViewById(R.id.tv_displaylayout);
cameralayout = (LinearLayout) findViewById(R.id.tv_cameralayout);
fab = (FloatingActionButton) findViewById(R.id.fab);
- maincard = (CardView) findViewById(R.id.cardviewid);
+ fab_add = (FloatingActionButton) findViewById(R.id.fab_add);
+ //maincard = (CardView) findViewById(R.id.cardviewid);
img_planogram = (ImageView) findViewById(R.id.img_planogram);
img_planogram.setOnClickListener(new View.OnClickListener() {
@@ -266,9 +270,8 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
if (tooglevalue.equalsIgnoreCase("0")) {
listviewlay.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
- cardvew.setVisibility(View.INVISIBLE);
- btnaddlayout.setVisibility(View.INVISIBLE);
+ //btnaddlayout.setVisibility(View.INVISIBLE);
+ fab_add.hide();
btntoggle.setChecked(false);
brandlayout.setVisibility(View.GONE);
@@ -279,10 +282,9 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata);
listviewlay.setAdapter(adapteradditional);
listviewlay.invalidateViews();
- btnaddlayout.setVisibility(View.VISIBLE);
- cardvew.setVisibility(View.VISIBLE);
+ //btnaddlayout.setVisibility(View.VISIBLE);
+ fab_add.show();
listviewlay.setVisibility(View.VISIBLE);
- maincard.setVisibility(View.VISIBLE);
}
/* String KeyID = listdata.get(k).getKey_id();
@@ -342,7 +344,15 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
//listdata = db.getAdditionalStock(store_id, categoryId);
if (listdata.size() > 0) {
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
+
+ db.deleteStockEntryMainTable(store_id, categoryId);
+
+ db.InsertMainListAdditionalData(listdata, categoryId);
+
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
+ /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
AdditionalVisibility.this);
// set title
alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title));
@@ -355,7 +365,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
db.deleteStockEntryMainTable(store_id, categoryId);
- /*for (int J = 0; J < listdata.size(); J++) {
+ *//*for (int J = 0; J < listdata.size(); J++) {
newadd = new AddittionalGetterSetter();
newadd.setBrand(listdata.get(J).getBrand_id());
newadd.setBrand_id(listdata.get(J).getBrand_id());
@@ -375,7 +385,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
KeyID = "";
additionalVisibilitySkuList.clear();
- }*/
+ }*//*
db.InsertMainListAdditionalData(listdata, categoryId);
finish();
@@ -394,15 +404,35 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
- alertDialog.show();
+ alertDialog.show();*/
} else {
Snackbar.make(view, getResources().getString(R.string.title_activity_Want_add), Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
} else {
+ db.deleteStockEntryMainTable(store_id, categoryId);
+ listdata.clear();
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
+ newadd = new AddittionalGetterSetter();
+ newadd.setBrand("");
+ newadd.setBrand_id("");
+ newadd.setImage("");
+ newadd.setImage2("");
+ newadd.setImage3("");
+ newadd.setSku("");
+ newadd.setSku_id("");
+ newadd.setStore_id(store_id);
+ newadd.setBtn_toogle(togglevalue);
+ newadd.setCategoryId(categoryId);
+
+ listdata.add(newadd);
+
+ db.InsertMainListAdditionalData(listdata, categoryId);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
+ /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
AdditionalVisibility.this);
// set title
alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title));
@@ -449,7 +479,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
- alertDialog.show();
+ alertDialog.show();*/
}
@@ -457,7 +487,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
});
- btnaddlayout.setOnClickListener(new View.OnClickListener() {
+ fab_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -494,6 +524,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
//Adding data to existing parent list
listdata.add(adGt);
+ editFlag = true;
clearViews();
@@ -503,17 +534,15 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
for (int i = 0; i < listdata.size(); i++) {
if (listdata.get(i).getBtn_toogle().equalsIgnoreCase("0")) {
listviewlay.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
- cardvew.setVisibility(View.INVISIBLE);
- btnaddlayout.setVisibility(View.INVISIBLE);
+ //btnaddlayout.setVisibility(View.INVISIBLE);
+ fab_add.hide();
} else {
adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata);
listviewlay.setAdapter(adapteradditional);
listviewlay.invalidateViews();
- btnaddlayout.setVisibility(View.VISIBLE);
- cardvew.setVisibility(View.VISIBLE);
+ //btnaddlayout.setVisibility(View.VISIBLE);
+ fab_add.show();
listviewlay.setVisibility(View.VISIBLE);
- maincard.setVisibility(View.VISIBLE);
}
}
}
@@ -544,6 +573,7 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
btntoggle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+
if (btntoggle.isChecked()) {
//listdata = db.getAdditionalStock(store_id, categoryId);
@@ -659,10 +689,9 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
diaplylayout.setVisibility(View.VISIBLE);
cameralayout.setVisibility(View.VISIBLE);
btnsku.setVisibility(View.VISIBLE);
- btnaddlayout.setVisibility(View.VISIBLE);
- cardvew.setVisibility(View.VISIBLE);
+ //btnaddlayout.setVisibility(View.VISIBLE);
+ fab_add.show();
listviewlay.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
} else {
@@ -703,13 +732,15 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
togglevalue = "0";
btntoggle.setChecked(false);
defdata.clear();
- btnaddlayout.setVisibility(View.INVISIBLE);
+ //btnaddlayout.setVisibility(View.INVISIBLE);
+ fab_add.hide();
brandlayout.setVisibility(View.GONE);
diaplylayout.setVisibility(View.INVISIBLE);
cameralayout.setVisibility(View.INVISIBLE);
btnsku.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
+ listviewlay.setVisibility(View.INVISIBLE);
adapteradditional.notifyDataSetChanged();
+ editFlag = true;
}
})
@@ -745,12 +776,13 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
togglevalue = "0";
btntoggle.setChecked(false);
defdata.clear();
- btnaddlayout.setVisibility(View.INVISIBLE);
+ //btnaddlayout.setVisibility(View.INVISIBLE);
+ fab_add.hide();
brandlayout.setVisibility(View.GONE);
diaplylayout.setVisibility(View.INVISIBLE);
cameralayout.setVisibility(View.INVISIBLE);
btnsku.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
+ listviewlay.setVisibility(View.INVISIBLE);
clearViews();
}
}
@@ -813,6 +845,39 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
}
+ @Override
+ public void onBackPressed() {
+ //super.onBackPressed();
+ showDataLostAlert();
+ }
+
+ void showDataLostAlert(){
+ if(editFlag){
+ android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(AdditionalVisibility.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ });
+ android.app.AlertDialog alert = builder.create();
+ alert.show();
+ }
+ else {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ }
+
void clearViews(){
spinner_brand_list.setSelection(0);
spinner_sku_list.setSelection(0);
@@ -885,6 +950,16 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
});
}
+ @Override
+ public void onSelect(boolean flag) {
+
+ }
+
+ @Override
+ public void onSave(boolean flag) {
+
+ }
+
private class MyWebViewClient extends WebViewClient {
@Override
@@ -1236,11 +1311,19 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
public void showSkuDialog() {
final ArrayList brandList;
- if(country_id.equals("7")){
+ /* if(country_id.equals("7")){
brandList = db.getBrandT2PData(null, null, null, categoryId, store_id);
}
else {
brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id);
+ }*/
+
+ if (country_id.equals("7")) {
+ brandList = db.getBrandT2PData(null, null, null, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ } else {
+ brandList = db.getBrandT2PData(store_type_id, class_id, key_account_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK);
}
BrandMasterGetterSetter brand = new BrandMasterGetterSetter();
@@ -1376,12 +1459,16 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
brand_name = brandList.get(position).getBRAND().get(0);
if(country_id.equals("7")){
- sku_list = db.getSkuT2PData(null, null, null, brand_id, store_id);
+ sku_list = db.getSkuT2PData(null, null, null, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ }
+ else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ sku_list = db.getSkuT2PData(store_type_id, class_id, key_account_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
}
else {
- sku_list = db.getSkuT2PData(store_type_id, class_id, key_account_id, brand_id, store_id);
+ sku_list = db.getSkuT2PData(store_type_id, class_id, key_account_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
+
SkuGetterSetter select = new SkuGetterSetter();
select.setSKU(getResources().getString(R.string.select));
sku_list.add(0, select);
@@ -1455,10 +1542,10 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
if (id == android.R.id.home) {
// NavUtils.navigateUpFromSameTask(this);
- finish();
-
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ /*finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);*/
+ showDataLostAlert();
}
return super.onOptionsItemSelected(item);
@@ -1666,17 +1753,15 @@ public class AdditionalVisibility extends AppCompatActivity implements View.OnCl
for (int i = 0; i < listdata.size(); i++) {
if (listdata.get(i).getBtn_toogle().equalsIgnoreCase("0")) {
listviewlay.setVisibility(View.INVISIBLE);
- cardvew.setVisibility(View.INVISIBLE);
- btnaddlayout.setVisibility(View.INVISIBLE);
- maincard.setVisibility(View.INVISIBLE);
+ //btnaddlayout.setVisibility(View.INVISIBLE);
+ fab_add.hide();
} else {
adapteradditional = new MyAdaptorAdditionalStock(AdditionalVisibility.this, listdata);
listviewlay.setAdapter(adapteradditional);
listviewlay.invalidateViews();
- btnaddlayout.setVisibility(View.VISIBLE);
- cardvew.setVisibility(View.VISIBLE);
+ //btnaddlayout.setVisibility(View.VISIBLE);
+ fab_add.show();
listviewlay.setVisibility(View.VISIBLE);
- maincard.setVisibility(View.VISIBLE);
}
}
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java
index 06f5605..1a1909e 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/AuditActivity.java
@@ -59,7 +59,7 @@ public class AuditActivity extends AppCompatActivity {
boolean checkflag = true;
private SharedPreferences preferences;
String categoryName, categoryId, Error_Message = "", pathforcheck = "", _path = "", str, img_str = "", img_str2 = "";
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, store_flag_str;
GSKOrangeDB db;
ArrayList question_list = new ArrayList<>(), childListData;
HashMap> hashMapAnsListChildData;
@@ -94,6 +94,7 @@ public class AuditActivity extends AppCompatActivity {
keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, "");
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
toolbar.setTitle(getResources().getString(R.string.audit));
@@ -162,8 +163,14 @@ public class AuditActivity extends AppCompatActivity {
public void onClick(View view) {
if (question_list.size() > 0) {
- if (validateData(question_list)) {
+ recyclerView.clearFocus();
+
+ if (validateData(question_list)) {
+ db.saveAuditQuestionAnswerData(question_list, store_id, categoryId);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ /*
AlertDialog.Builder builder = new AlertDialog.Builder(AuditActivity.this);
builder.setMessage(R.string.title_activity_Want_save)
.setCancelable(false)
@@ -181,7 +188,7 @@ public class AuditActivity extends AppCompatActivity {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
} else {
questionAdapter.notifyDataSetChanged();
Snackbar.make(recyclerView, error_msg, Snackbar.LENGTH_SHORT).show();
@@ -198,7 +205,15 @@ public class AuditActivity extends AppCompatActivity {
boolean t2p_flag = false;
- if (db.isMappingT2PData(store_id, categoryId)) {
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
+
+ if (flag_t2p_mapping) {
if (db.isFilledT2P(store_id, categoryId)) {
ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId);
@@ -344,11 +359,18 @@ public class AuditActivity extends AppCompatActivity {
if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Dropdown")) {
holder.sp_auditAnswer.setVisibility(View.VISIBLE);
holder.edt_answer.setVisibility(View.GONE);
- } else {
+ } else if(holder.data.getANSWER_TYPE().equalsIgnoreCase("TEXTBOX")){
holder.edt_answer.setVisibility(View.VISIBLE);
holder.sp_auditAnswer.setVisibility(View.GONE);
}
+ if (holder.data.getCAMERA_ALLOW().equals("1")) {
+ holder.parent_cam_layout.setVisibility(View.VISIBLE);
+ }
+ else {
+ holder.parent_cam_layout.setVisibility(View.GONE);
+ }
+
holder.sp_auditAnswer.setAdapter(new AnswerSpinnerAdapter(AuditActivity.this, R.layout.custom_spinner_item, ans_list));
final ArrayList finalAns_list = ans_list;
@@ -420,7 +442,7 @@ public class AuditActivity extends AppCompatActivity {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
holder.data.setANSWER_ID("0");
- holder.data.setANSWER(((EditText) v).getText().toString());
+ holder.data.setANSWER(((EditText) v).getText().toString().replaceAll("[&^<>{}'$]", ""));
}
}
});
@@ -429,11 +451,13 @@ public class AuditActivity extends AppCompatActivity {
if (holder.data.getANSWER_TYPE().equalsIgnoreCase("Dropdown") && ans_list.get(i).getANSWER_ID().equals(holder.data.getANSWER_ID())) {
holder.sp_auditAnswer.setSelection(i);
break;
- } else {
- holder.edt_answer.setText(ans_list.get(i).getANSWER());
}
}
+ if(holder.data.getANSWER_TYPE().equalsIgnoreCase("TEXTBOX")){
+ holder.edt_answer.setText(holder.data.getANSWER());
+ }
+
if (!img_str.equals("")) {
if (child_position == position) {
holder.data.setCAM_IMAGE(img_str);
@@ -547,7 +571,10 @@ public class AuditActivity extends AppCompatActivity {
checkHeaderArray.clear();
for (int i = 0; i < data.size(); i++) {
- if (data.get(i).getANSWER_ID().equalsIgnoreCase("0")) {
+ if(data.get(i).getANSWER_TYPE().equalsIgnoreCase("TEXTBOX") && data.get(i).getANSWER().equalsIgnoreCase("")){
+ error_msg = getString(R.string.pls_answer_all_qns);
+ checkflag = false;
+ }else if (data.get(i).getANSWER_TYPE().equalsIgnoreCase("DROPDOWN") && data.get(i).getANSWER_ID().equalsIgnoreCase("0")) {
error_msg = getString(R.string.pls_answer_all_qns);
checkflag = false;
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java
index 2f54d1b..89e8bac 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CategoryPicture.java
@@ -48,7 +48,7 @@ public class CategoryPicture extends AppCompatActivity {
String _pathforcheck1, _pathforcheck2, _pathforcheck3, _pathforcheck4, Camerapath1, Camerapath2, _path, CaMpath, str, msg, categoryName, categoryId;
ImageView im1, im2, im3, im4;
ListView listview;
- String store_id, date, intime, img_str1="", img_str2="", img_str3="", img_str4="", togglevalue = "1", CATEGORY_ID, camera_allow, store_type_id, class_id, key_account_id, country_id;
+ String store_id, date, intime, img_str1 = "", img_str2 = "", img_str3 = "", img_str4 = "", togglevalue = "1", CATEGORY_ID, camera_allow, store_type_id, class_id, key_account_id, country_id, store_flag_str;
private SharedPreferences preferences;
Uri outputFileUri;
String gallery_package = "";
@@ -61,6 +61,8 @@ public class CategoryPicture extends AppCompatActivity {
ArrayList categoryImagesAllowed = new ArrayList<>();
+ boolean editFlag = false;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -76,6 +78,7 @@ public class CategoryPicture extends AppCompatActivity {
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
key_account_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
categoryName = getIntent().getStringExtra("categoryName");
@@ -100,7 +103,7 @@ public class CategoryPicture extends AppCompatActivity {
adddata = db.getCategoryPictureData(store_id, categoryId);
categoryImagesAllowed = db.getCategoryPictureAllowedData(categoryId);
- if(categoryImagesAllowed.size()>0){
+ if (categoryImagesAllowed.size() > 0) {
setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam1(), im1);
setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam2(), im2);
setCamAllowImage(categoryImagesAllowed.get(0).isImg_cam2(), im3);
@@ -109,41 +112,42 @@ public class CategoryPicture extends AppCompatActivity {
if (adddata.size() != 0) {
- String key_id = adddata.get(0).getKEY_ID();
+ String key_id = adddata.get(0).getKEY_ID();
- listdat = db.getCategoryPictureListData(store_id, categoryId, key_id);
+ listdat = db.getCategoryPictureListData(store_id, categoryId, key_id);
- String image1 = adddata.get(0).getCategoryImage1();
- String image2 = adddata.get(0).getCategoryImage2();
- String image3 = adddata.get(0).getCategoryImage3();
- String image4 = adddata.get(0).getCategoryImage4();
+ String image1 = adddata.get(0).getCategoryImage1();
+ String image2 = adddata.get(0).getCategoryImage2();
+ String image3 = adddata.get(0).getCategoryImage3();
+ String image4 = adddata.get(0).getCategoryImage4();
- if (image1 != null && !image1.equals("")) {
- im1.setBackgroundResource(R.mipmap.camera_green);
- img_str1 = image1;
- }
+ if (image1 != null && !image1.equals("")) {
+ im1.setBackgroundResource(R.mipmap.camera_green);
+ img_str1 = image1;
+ }
- if (image2 != null && !image2.equals("")) {
- im2.setBackgroundResource(R.mipmap.camera_green);
- img_str2 = image2;
- }
+ if (image2 != null && !image2.equals("")) {
+ im2.setBackgroundResource(R.mipmap.camera_green);
+ img_str2 = image2;
+ }
- if (image3 != null && !image3.equals("")) {
- im3.setBackgroundResource(R.mipmap.camera_green);
- img_str3 = image3;
- }
+ if (image3 != null && !image3.equals("")) {
+ im3.setBackgroundResource(R.mipmap.camera_green);
+ img_str3 = image3;
+ }
- if (image4 != null && !image4.equals("")) {
- im4.setBackgroundResource(R.mipmap.camera_green);
- img_str4 = image4;
- }
+ if (image4 != null && !image4.equals("")) {
+ im4.setBackgroundResource(R.mipmap.camera_green);
+ img_str4 = image4;
+ }
} else {
- if(country_id.equals("7")){
- listdat = db.getCategoryPicturedata(categoryId, null, null, null, store_id);
- }
- else {
- listdat = db.getCategoryPicturedata(categoryId, key_account_id, store_type_id, class_id, store_id);
+ if (country_id.equals("7")) {
+ listdat = db.getCategoryPicturedata(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ listdat = db.getCategoryPicturedata(categoryId, key_account_id, store_type_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ } else {
+ listdat = db.getCategoryPicturedata(categoryId, key_account_id, store_type_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
}
@@ -167,7 +171,13 @@ public class CategoryPicture extends AppCompatActivity {
if (validateData(CP, listdat)) {
- AlertDialog.Builder builder = new AlertDialog.Builder(CategoryPicture.this);
+ db.open();
+
+ db.InsertCategoryPictureData(CP, listdat, categoryId);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
+ /* AlertDialog.Builder builder = new AlertDialog.Builder(CategoryPicture.this);
builder.setMessage(getResources().getString(R.string.check_save_message))
.setCancelable(false)
.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
@@ -185,7 +195,7 @@ public class CategoryPicture extends AppCompatActivity {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
} else {
@@ -209,7 +219,6 @@ public class CategoryPicture extends AppCompatActivity {
intime = CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext());
startCameraActivity();
-
}
});
@@ -275,7 +284,7 @@ public class CategoryPicture extends AppCompatActivity {
if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_KSA)) {
cdate = arabicToenglish(cdate);
- }else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) {
+ } else if (preferences.getString(CommonString.KEY_LANGUAGE, "").equalsIgnoreCase(CommonString.KEY_LANGUAGE_ARABIC_UAE)) {
cdate = arabicToenglish(cdate);
}
@@ -289,7 +298,7 @@ public class CategoryPicture extends AppCompatActivity {
Log.i("MakeMachine", "startCameraActivity()");
File file = new File(_path);
- outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file);
+ outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file);
String defaultCameraPackage = "";
final PackageManager packageManager = getPackageManager();
@@ -352,6 +361,8 @@ public class CategoryPicture extends AppCompatActivity {
case -1:
+ editFlag = true;
+
if (_pathforcheck1 != null && !_pathforcheck1.equals("")) {
if (new File(str + _pathforcheck1).exists()) {
@@ -500,12 +511,17 @@ public class CategoryPicture extends AppCompatActivity {
@Override
public void onClick(View v) {
- Camerapath2 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID().toString() + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg";
- Adapterposition = position1;
- _path = CommonString.FILE_PATH + Camerapath2;
- intime = CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext());
- startCameraActivity();
- listview.invalidateViews();
+ if(listdat.get(position1).getImage_allow().equals("1") && listdat.get(position1).getSubCategoryCamera1().equalsIgnoreCase("")){
+ Snackbar.make(listview,R.string.first_click_compulsory_image,Snackbar.LENGTH_LONG).show();
+ }
+ else {
+ Camerapath2 = store_id + "CategoryPicture" + list.get(position1).getSUB_CATEGORY_ID().toString() + date.replace("/", "") + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext()).replace(":", "") + ".jpg";
+ Adapterposition = position1;
+ _path = CommonString.FILE_PATH + Camerapath2;
+ intime = CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext());
+ startCameraActivity();
+ listview.invalidateViews();
+ }
}
});
@@ -544,33 +560,33 @@ public class CategoryPicture extends AppCompatActivity {
boolean validateData(CategoryPictureGetterSetter data, ArrayList list) {
boolean flag = true;
- if(categoryImagesAllowed.size()>0){
+ if (categoryImagesAllowed.size() > 0) {
- if(categoryImagesAllowed.get(0).isImg_cam1()){
- if(data.getCategoryImage1().equals("")){
+ if (categoryImagesAllowed.get(0).isImg_cam1()) {
+ if (data.getCategoryImage1().equals("")) {
flag = false;
}
}
- if(flag){
- if(categoryImagesAllowed.get(0).isImg_cam2()){
- if(data.getCategoryImage2().equals("")){
+ if (flag) {
+ if (categoryImagesAllowed.get(0).isImg_cam2()) {
+ if (data.getCategoryImage2().equals("")) {
flag = false;
}
}
}
- if(flag){
- if(categoryImagesAllowed.get(0).isImg_cam3()){
- if(data.getCategoryImage3().equals("")){
+ if (flag) {
+ if (categoryImagesAllowed.get(0).isImg_cam3()) {
+ if (data.getCategoryImage3().equals("")) {
flag = false;
}
}
}
- if(flag){
- if(categoryImagesAllowed.get(0).isImg_cam4()){
- if(data.getCategoryImage4().equals("")){
+ if (flag) {
+ if (categoryImagesAllowed.get(0).isImg_cam4()) {
+ if (data.getCategoryImage4().equals("")) {
flag = false;
}
}
@@ -606,24 +622,7 @@ public class CategoryPicture extends AppCompatActivity {
if (id == android.R.id.home) {
- android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CategoryPicture.this);
- builder.setTitle("Parinaam");
- builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
- .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
-
- finish();
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
- }
- })
- .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
-
- }
- });
- android.app.AlertDialog alert = builder.create();
- alert.show();
+ showDataLossAlert();
}
//noinspection SimplifiableIfStatement
@@ -634,28 +633,37 @@ public class CategoryPicture extends AppCompatActivity {
return super.onOptionsItemSelected(item);
}
+ void showDataLossAlert() {
+ if (editFlag) {
+ android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CategoryPicture.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
+ .setPositiveButton(getString(R.string.yes), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ })
+ .setNegativeButton(getString(R.string.no), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ });
+ android.app.AlertDialog alert = builder.create();
+ alert.show();
+ } else {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ }
+
@Override
public void onBackPressed() {
//super.onBackPressed();
- android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(CategoryPicture.this);
- builder.setTitle("Parinaam");
- builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
- .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
-
- finish();
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
- }
- })
- .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
-
- }
- });
- android.app.AlertDialog alert = builder.create();
- alert.show();
+ showDataLossAlert();
}
@Override
@@ -665,12 +673,11 @@ public class CategoryPicture extends AppCompatActivity {
toolbar.setTitle(getResources().getString(R.string.title_activity_category_picture));
}
- public void setCamAllowImage(boolean isAllowed, ImageView img_cam){
+ public void setCamAllowImage(boolean isAllowed, ImageView img_cam) {
- if(isAllowed){
+ if (isAllowed) {
img_cam.setBackgroundResource(R.drawable.camera_orange_star_green);
- }
- else{
+ } else {
img_cam.setBackgroundResource(R.mipmap.camera_orange);
}
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java
index 58e5804..3b6e3af 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/CreateSelfActivity.java
@@ -44,7 +44,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.SkuGetterSetter;
public class CreateSelfActivity extends AppCompatActivity {
GSKOrangeDB db;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, store_flag_str;
String categoryName, categoryId;
private SharedPreferences preferences;
MSL_AvailabilityStockFacingGetterSetter brand_selected;
@@ -71,6 +71,7 @@ public class CreateSelfActivity extends AppCompatActivity {
store_id = preferences.getString(CommonString.KEY_STORE_ID, null);
visit_date = preferences.getString(CommonString.KEY_DATE, null);
username = preferences.getString(CommonString.KEY_USERNAME, null);
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
//Intent data
categoryName = getIntent().getStringExtra("categoryName");
@@ -107,6 +108,14 @@ public class CreateSelfActivity extends AppCompatActivity {
for(int i=0; i noCameraLastVisitData;
+
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ noCameraLastVisitData = db.getNoCameraLastVisitCategoryData(store_id, categoryId, sub_category_list.get(i).getSub_category_id(), CommonString.TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC);
+ }
+ else {
+ noCameraLastVisitData = db.getNoCameraLastVisitCategoryData(store_id, categoryId, sub_category_list.get(i).getSub_category_id(), "NO_CAMERA_LAST_VISIT_DATA");
+ }
if(db.getNoCameraCategoryDataInserted(store_id, categoryId, sub_category_list.get(i).getSub_category_id()).size()>0){
MSL_AvailabilityStockFacingGetterSetter subCategory = new MSL_AvailabilityStockFacingGetterSetter();
@@ -114,7 +123,7 @@ public class CreateSelfActivity extends AppCompatActivity {
subCategory.setSub_category_id(sub_category_list.get(i).getSub_category_id());
added_sub_category_list.add(subCategory);
}
- else if(db.getNoCameraLastVisitCategoryData(store_id, categoryId, sub_category_list.get(i).getSub_category_id()).size()>0){
+ else if(noCameraLastVisitData.size()>0){
MSL_AvailabilityStockFacingGetterSetter subCategory = new MSL_AvailabilityStockFacingGetterSetter();
subCategory.setSub_category(sub_category_list.get(i).getSub_category());
subCategory.setSub_category_id(sub_category_list.get(i).getSub_category_id());
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java
index 3fdb9b6..f282750 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallActivity.java
@@ -57,12 +57,13 @@ public class DeliveryCallActivity extends AppCompatActivity implements View.OnCl
RecyclerView recyclerView;
DeliveryAdapter deliveryAdapter;
FloatingActionButton fab_upload, fab;
+ Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delivery_call);
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
recyclerView = (RecyclerView) findViewById(R.id.rec_delivery_calls);
@@ -73,6 +74,8 @@ public class DeliveryCallActivity extends AppCompatActivity implements View.OnCl
visit_date = preferences.getString(CommonString.KEY_DATE, null);
userId = preferences.getString(CommonString.KEY_USERNAME, null);
+ CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+
database = new GSKOrangeDB(this);
database.open();
@@ -199,6 +202,7 @@ public class DeliveryCallActivity extends AppCompatActivity implements View.OnCl
super.onResume();
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+ toolbar.setTitle(getString(R.string.delivery_call));
deliveryCallsList = database.getDeliveryCallsData(visit_date);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java
index fb7a60e..2f6b985 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/DeliveryCallAddStoreActivity.java
@@ -84,12 +84,13 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V
GoogleApiClient mGoogleApiClient;
private static final String TAG = DeliveryCallAddStoreActivity.class.getSimpleName();
Context context;
+ Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delivery_call_add_store);
- Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
database = new GSKOrangeDB(this);
@@ -222,6 +223,9 @@ public class DeliveryCallAddStoreActivity extends AppCompatActivity implements V
protected void onResume() {
super.onResume();
+ preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+ toolbar.setTitle(getString(R.string.delivery_call));
checkgpsEnableDevice();
// Resuming the periodic location updates
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java
index 964c103..502d188 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/FutureJCPActivity.java
@@ -152,6 +152,12 @@ public class FutureJCPActivity extends AppCompatActivity implements View.OnClick
progressDialog = new ProgressDialog(FutureJCPActivity.this);
CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+
+ c = Calendar.getInstance();
+ year = c.get(Calendar.YEAR);
+ month = c.get(Calendar.MONTH);
+ day = c.get(Calendar.DAY_OF_MONTH);
+ showDatePickerDialog(year, month, day);
}
// AsyncTask asyncTask = new AsyncTask() {
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java
index a3f8cec..e6ede5b 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/NoCameraActivity.java
@@ -63,7 +63,7 @@ import cpm.com.gskmtorange.xmlGetterSetter.RowColumnGetterSetter;
public class NoCameraActivity extends AppCompatActivity implements Listener {
GSKOrangeDB db;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, str, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, str, country_id, store_flag_str;
String categoryName, categoryId;
int number_of_rows, FROM;
private SharedPreferences preferences;
@@ -116,6 +116,7 @@ public class NoCameraActivity extends AppCompatActivity implements Listener {
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
str = CommonString.FILE_PATH;
@@ -1026,10 +1027,14 @@ public class NoCameraActivity extends AppCompatActivity implements Listener {
ArrayList mappingPlanogramList;
+
if (country_id.equals("7")) {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id);
- } else {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null);
+ mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE);
+ } else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC);
+ }
+ else {
+ mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM);
}
//ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java
index 5786461..d34f830 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/POGQuestionsActivity.java
@@ -109,7 +109,11 @@ public class POGQuestionsActivity extends AppCompatActivity {
public void onClick(View view) {
if (validateData()) {
- AlertDialog.Builder builder = new AlertDialog.Builder(POGQuestionsActivity.this);
+ db.savePOGQuestionAnswerData(hashMapListChildData, headerDataList,store_id, categoryId);
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
+ /* AlertDialog.Builder builder = new AlertDialog.Builder(POGQuestionsActivity.this);
builder.setMessage(R.string.title_activity_Want_save)
.setCancelable(false)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
@@ -126,7 +130,8 @@ public class POGQuestionsActivity extends AppCompatActivity {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
+
} else {
adapter.notifyDataSetChanged();
expandableListView.invalidateViews();
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java
index 2f383c8..4eab8f4 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StockDataActivity.java
@@ -45,7 +45,7 @@ public class StockDataActivity extends AppCompatActivity {
GSKOrangeDB db;
String categoryName, categoryId, storeId, Error_Message = "";
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str;
boolean isDialogOpen = true;
private SharedPreferences preferences;
int scrollPosition = 0;
@@ -62,6 +62,7 @@ public class StockDataActivity extends AppCompatActivity {
boolean checkflag = true;
FloatingActionButton fab;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -80,6 +81,7 @@ public class StockDataActivity extends AppCompatActivity {
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
expandableListView = (ExpandableListView) findViewById(R.id.expandableListView);
@@ -155,11 +157,11 @@ public class StockDataActivity extends AppCompatActivity {
int lastItem = firstVisibleItem + visibleItemCount;
if (firstVisibleItem == 0) {
- fab.setVisibility(View.VISIBLE);
+ fab.show();//setVisibility(View.VISIBLE);
} else if (lastItem == totalItemCount) {
- fab.setVisibility(View.INVISIBLE);
+ fab.hide();//setVisibility(View.INVISIBLE);
} else {
- fab.setVisibility(View.VISIBLE);
+ fab.show();//setVisibility(View.VISIBLE);
}
}
@@ -234,12 +236,16 @@ public class StockDataActivity extends AppCompatActivity {
//Header
if(country_id.equals("7")){
- headerDataList = db.getStockFacingHeaderData(categoryId, null, null, null, store_id);
+ headerDataList = db.getStockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET);
+ }
+ else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id,CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC);
}
else {
- headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id);
+ headerDataList = db.getStockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id,CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET);
}
+
if (headerDataList.size() > 0) {
for (int i = 0; i < headerDataList.size(); i++) {
hashMapListHeaderData.add(headerDataList.get(i));
@@ -247,7 +253,7 @@ public class StockDataActivity extends AppCompatActivity {
//childDataList = new ArrayList<>();
childDataList = db.getMSL_Availability_StockFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id);
if (!(childDataList.size() > 0)) {
- childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, null);
+ childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, null, CommonString.TABLE_MAPPING_STOCK);
}
hashMapListChildData.put(hashMapListHeaderData.get(i), childDataList);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java
index 5c9b253..205aece 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreListActivity.java
@@ -12,10 +12,12 @@ import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
+import android.graphics.drawable.ColorDrawable;
import android.location.Location;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.preference.PreferenceManager;
@@ -39,11 +41,13 @@ import android.view.Window;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
+import android.widget.ProgressBar;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
+import com.crashlytics.android.Crashlytics;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesUtil;
import com.google.android.gms.common.api.GoogleApiClient;
@@ -58,12 +62,32 @@ import com.google.android.gms.location.LocationSettingsResult;
import com.google.android.gms.location.LocationSettingsStatusCodes;
import com.google.android.gms.maps.model.LatLng;
+import org.ksoap2.SoapEnvelope;
+import org.ksoap2.serialization.SoapObject;
+import org.ksoap2.serialization.SoapSerializationEnvelope;
+import org.ksoap2.transport.HttpTransportSE;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.StringReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import cpm.com.gskmtorange.Database.GSKOrangeDB;
+import cpm.com.gskmtorange.GeoTag.GeoTagActivity;
import cpm.com.gskmtorange.GetterSetter.CoverageBean;
import cpm.com.gskmtorange.GetterSetter.GeotaggingBeans;
import cpm.com.gskmtorange.GetterSetter.StoreBean;
@@ -75,8 +99,41 @@ import cpm.com.gskmtorange.gsk_dailyentry.StoreWisePerformanceActivity;
import cpm.com.gskmtorange.storeinmap.StoreListMapActivity;
import cpm.com.gskmtorange.storeinmap.StoreListRouteActivity;
import cpm.com.gskmtorange.storeinmap.StoreRouteActivity;
+import cpm.com.gskmtorange.xmlGetterSetter.ADDITIONAL_DISPLAY_MASTERGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.AdditionalQuestiongetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.BrandMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.CategoryMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationContrywiseGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.ConfigurationMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.DisplayChecklistMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.DisplayMasterGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.GeoFencingGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.JourneyPlanGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MAPPINGT2PGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_MasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_SOS_TARGET_MasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingCategoryImageAllowGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingDisplayChecklistGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramCountrywiseGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingPlanogramStorewiseGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingPromotionGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingStockGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingStockStorewiseGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.MappingSubCategoryImageAllowGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.NoCameraLastVisitGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.NonT2pReasonGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingReasonGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.NonWorkingSubReasonGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.POGQuestionGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.STORE_PERFORMANCE_MasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.ShelfMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.SkuGroupMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.SkuMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.SubCategoryMasterGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.SupervisorListGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.TableBean;
+import cpm.com.gskmtorange.xmlHandlers.XMLHandlers;
/**
* Created by ashishc on 29-12-2016.
@@ -93,7 +150,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
RecyclerView recyclerView;
private SharedPreferences.Editor editor = null;
LinearLayout linearlay;
- String store_id;
+ String store_id, userId, culture_id, visit_date;
private Dialog dialog;
boolean result_flag = false, leaveflag = false;
FloatingActionButton fab;
@@ -120,6 +177,42 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
ArrayList geoFencingGetterSetters;
+ DisplayMasterGetterSetter displayMasterGetterSetter;
+ MappingStockGetterSetter mappingStockGetterSetter;
+ MappingStockStorewiseGetterSetter mappingStockStorewiseGetterSetter;
+ MAPPINGT2PGetterSetter mappingt2PGetterSetter;
+ DisplayChecklistMasterGetterSetter checklistMasterGetterSetter;
+ MappingDisplayChecklistGetterSetter mappingChecklistGetterSetter;
+ NonWorkingReasonGetterSetter nonWorkingReasonGetterSetter;
+ MappingPromotionGetterSetter mappingPromotionGetterSetter;
+ MAPPING_ADDITIONAL_PROMOTION_MasterGetterSetter mapping_additional_promotion_masterGetterSetter;
+ STORE_PERFORMANCE_MasterGetterSetter store_performance_masterGetterSetter;
+ ADDITIONAL_DISPLAY_MASTERGetterSetter additional_display_getter_setter;
+ MAPPING_SOS_TARGET_MasterGetterSetter mapping_sos_target_masterGetterSetter;
+ MAPPING_PLANOGRAM_MasterGetterSetter mapping_planogram_masterGetterSetter;
+ ShelfMasterGetterSetter shelfMasterGetterSetter;
+ MappingSubCategoryImageAllowGetterSetter mappingSubCategoryImageAllowGetterSetter;
+ MappingCategoryImageAllowGetterSetter mappingCategoryImageAllowGetterSetter;
+ SkuGroupMasterGetterSetter skuGroupMasterGetterSetter;
+ AdditionalQuestiongetterSetter additionalQuestiongetterSetter;
+ POGQuestionGetterSetter pogQuestionGetterSetter;
+ NonT2pReasonGetterSetter nonT2pReasonGetterSetter;
+ ConfigurationContrywiseGetterSetter configurationContrywiseGetterSetter;
+ NoCameraLastVisitGetterSetter noCameraLastVisitGetterSetter;
+ NonWorkingSubReasonGetterSetter nonWorkingSubReasonGetterSetter;
+ SupervisorListGetterSetter supervisorListGetterSetter;
+ ConfigurationMasterGetterSetter configurationMasterGetterSetter;
+
+ MappingPlanogramStorewiseGetterSetter mappingPlanogramStorewiseGetterSetter;
+ private ProgressBar pb;
+
+ private TextView percentage, message;
+
+ Data data;
+ int eventType;
+ boolean ResultFlag = true;
+ String str;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -140,6 +233,9 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
visit_status = preferences.getString(CommonString.KEY_STOREVISITED_STATUS, "");
language = preferences.getString(CommonString.KEY_LANGUAGE, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ userId = preferences.getString(CommonString.KEY_USERNAME, null);
+ culture_id = preferences.getString(CommonString.KEY_CULTURE_ID, "");
+ visit_date = preferences.getString(CommonString.KEY_DATE, null);
db = new GSKOrangeDB(StoreListActivity.this);
db.open();
@@ -411,7 +507,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
recyclerView.setVisibility(View.INVISIBLE);
linearlay.setVisibility(View.VISIBLE);
if(store_flag_str.equals(CommonString.FROM_JCP)){
- //fab.show();//setVisibility(View.VISIBLE);
+ fab.show();//setVisibility(View.VISIBLE);
}
}
@@ -514,7 +610,13 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
viewHolder.chkbtn.setVisibility(View.INVISIBLE);
viewHolder.cancel_btn.setVisibility(View.GONE);
viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
- } else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) {
+ }else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN)) {
+ viewHolder.imageview.setVisibility(View.VISIBLE);
+ viewHolder.imageview.setBackgroundResource(R.mipmap.tick_close);
+ viewHolder.chkbtn.setVisibility(View.INVISIBLE);
+ viewHolder.cancel_btn.setVisibility(View.GONE);
+ viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
+ }else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) {
viewHolder.imageview.setVisibility(View.VISIBLE);
viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation);
viewHolder.chkbtn.setVisibility(View.INVISIBLE);
@@ -534,14 +636,14 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
} else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_L)) {
viewHolder.imageview.setVisibility(View.VISIBLE);
- viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation);
+ viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close);
viewHolder.chkbtn.setVisibility(View.INVISIBLE);
viewHolder.cancel_btn.setVisibility(View.GONE);
viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
} else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) {
viewHolder.imageview.setVisibility(View.VISIBLE);
- viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation);
+ viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close);
viewHolder.chkbtn.setVisibility(View.INVISIBLE);
viewHolder.cancel_btn.setVisibility(View.GONE);
viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
@@ -560,7 +662,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
}else if(coverageObj.getStatus()!=null && coverageObj.getStatus().equalsIgnoreCase(CommonString.STORE_STATUS_LEAVE)) {
viewHolder.imageview.setVisibility(View.VISIBLE);
- viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation);
+ viewHolder.imageview.setBackgroundResource(R.mipmap.exclamation_close);
viewHolder.chkbtn.setVisibility(View.INVISIBLE);
viewHolder.cancel_btn.setVisibility(View.GONE);
viewHolder.Cardbtn.setCardBackgroundColor(getResources().getColor(R.color.colorOrange));
@@ -638,6 +740,13 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
viewHolder.cancel_btn.setVisibility(View.GONE);
}
+ if(current.getGEO_TAG().equalsIgnoreCase("N")){
+ viewHolder.imgview_navigation.setVisibility(View.INVISIBLE);
+ }
+ else {
+ viewHolder.imgview_navigation.setVisibility(View.VISIBLE);
+ }
+
viewHolder.parent_layout.setOnClickListener(new View.OnClickListener() {
@Override
@@ -645,7 +754,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
store_id = current.getSTORE_ID();
- if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_U)) {
+ if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_U) || current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_UN)) {
Snackbar.make(v, R.string.title_store_list_activity_store_already_done, Snackbar.LENGTH_LONG).setAction("Action", null).show();
} else if (current.getUPLOAD_STATUS().equalsIgnoreCase(CommonString.KEY_D)) {
@@ -707,16 +816,130 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
showMyDialog(store_id, current.getSTORE_NAME(), "Yes", current.getVISIT_DATE(), current.getCHECKOUT_STATUS(), current.getGEO_TAG(), current);
}
else {
- if(coverageObj.getStatus().equals("N") ){
+ if(country_id.equalsIgnoreCase("5")){
+
+ if (!current.getGEO_TAG().equalsIgnoreCase("N")) {
+
+ boolean flag = true;
+ if (coverage.size() > 0) {
+ for (int i = 0; i < coverage.size(); i++) {
+ if (store_id.equals(coverage.get(i).getStoreId())) {
+ flag = false;
+ break;
+ }
+ }
+ }
+
+ boolean flag_entry = true;
+
+ int distance = 0;
+ //geo fencing enabled only if GEO_FENCING equals 1 for COUNTRY_ID
+ if(flag && geoFencingGetterSetters.size()>0 && geoFencingGetterSetters.get(0).getGEO_FENCING().get(0).equals("1")){
+ distanceGeoPhence = Integer.parseInt(geoFencingGetterSetters.get(0).getDISTANCE_MTR().get(0));
+
+ double store_lat = Double.parseDouble(current.getLATITUDE());
+ double store_lon = Double.parseDouble(current.getLONGITUDE());
+
+ if(store_lat!=0.0 && store_lon!=0.0){
+ distance = distFrom(store_lat, store_lon, lat, lon);
+
+ if (/*true*/distance > distanceGeoPhence) {
+ flag_entry = false;
+ }
+ else {
+ String msg = getString(R.string.distance_from_the_store) + " " + distance + " meters";
+
+ Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
+ }
+ }
+ }
+
+ if(flag_entry){
+
+ editor = preferences.edit();
+ editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str);
+ editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID());
+ editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME());
+ editor.putString(CommonString.KEY_VISIT_DATE, current.getVISIT_DATE());
+ editor.putString(CommonString.KEY_CAMERA_ALLOW, current.getCAMERA_ALLOW());
+ editor.putString(CommonString.KEY_CHECKOUT_STATUS, current.getCHECKOUT_STATUS());
+ editor.putString(CommonString.KEY_CLASS_ID, current.getCLASS_ID());
+ editor.putString(CommonString.KEY_EMP_ID, current.getEMP_ID());
+ editor.putString(CommonString.KEY_GEO_TAG, current.getGEO_TAG());
+ editor.putString(CommonString.KEY_KEYACCOUNT_ID, current.getKEYACCOUNT_ID());
+ editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID());
+ editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID());
+ editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS());
+ editor.commit();
+
+ if(!coverageObj.getStatus().equals("N")){
+ //if(db.isFilledAdhoc(store_id, visit_date)){
+ Intent in = new Intent(StoreListActivity.this, StoreWisePerformanceActivity.class);
+ startActivity(in);
+ overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
+ }
+ else {
+ new UploadTask(StoreListActivity.this, store_id).execute();
+ }
+
+ }else{
+
+ String msg = getString(R.string.you_need_to_be_in_the_store) + "\n " + getString(R.string.distance_from_the_store)+ " - " + distance + " "+getString(R.string.meters);
+ dialog.cancel();
+ AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this);
+ builder.setTitle(getResources().getString(R.string.dialog_title));
+ builder.setMessage(msg).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok),
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog1,
+ int id) {
+
+ dialog1.cancel();
+ }
+ });
+
+ AlertDialog alert = builder.create();
+
+ alert.show();
+ }
+
+ }else {
+ //dialog.cancel();
+ AlertDialog.Builder builder = new AlertDialog.Builder(StoreListActivity.this);
+ builder.setTitle(getResources().getString(R.string.dialog_title));
+ builder.setMessage(R.string.first_geotag_the_store).setCancelable(false)
+ .setPositiveButton(getResources().getString(R.string.ok),
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog1,
+ int id) {
+ Intent in = new Intent(StoreListActivity.this, GeoTagActivity.class);
+ in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
+ in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID());
+ startActivity(in);
+ overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
+ dialog1.cancel();
+ }
+ });
+
+ AlertDialog alert = builder.create();
+
+ alert.show();
+
+ }
- Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class);
- in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
- in.putExtra(CommonString.KEY_STORE_ID, store_id);
- startActivity(in);
- overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
}
else {
- Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+ if(coverageObj.getStatus().equals("N")){
+
+ Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class);
+ in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
+ in.putExtra(CommonString.KEY_STORE_ID, store_id);
+ startActivity(in);
+ overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
+ }
+ else {
+ Snackbar.make(v, R.string.title_store_list_checkout_Already_filled, Snackbar.LENGTH_SHORT).setAction("Action", null).show();
+ }
}
}
}
@@ -906,11 +1129,8 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
}
}
-
if(flag_entry){
-
-
editor = preferences.edit();
editor.putString(CommonString.KEY_STORE_ID, current.getSTORE_ID());
editor.putString(CommonString.KEY_STORE_NAME, current.getSTORE_NAME());
@@ -924,6 +1144,7 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
editor.putString(CommonString.KEY_STORETYPE_ID, current.getSTORETYPE_ID());
editor.putString(CommonString.KEY_POG_TYPE_ID, current.getPOG_TYPE_ID());
editor.putString(CommonString.KEY_UPLOAD_STATUS, current.getUPLOAD_STATUS());
+ editor.putString(CommonString.KEY_STORE_FLAG, store_flag_str);
editor.commit();
@@ -973,7 +1194,11 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog1,
int id) {
-
+ Intent in = new Intent(StoreListActivity.this, GeoTagActivity.class);
+ in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
+ in.putExtra(CommonString.KEY_STORE_ID, current.getSTORE_ID());
+ startActivity(in);
+ overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
dialog1.cancel();
}
});
@@ -1160,6 +1385,650 @@ public class StoreListActivity extends AppCompatActivity implements GoogleApiCli
return flag_checked_in;
}
+
+ class Data {
+ int value;
+ String name;
+ }
+
+ private class UploadTask extends AsyncTask {
+ private Context context;
+ String storeId;
+
+ UploadTask(Context context, String storeId) {
+ this.context = context;
+ this.storeId = storeId;
+ }
+
+ @Override
+ protected void onPreExecute() {
+ super.onPreExecute();
+
+ dialog = new Dialog(context);
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+ dialog.setContentView(R.layout.custom_dialog_progress);
+ pb = (ProgressBar) dialog.findViewById(R.id.progressBar1);
+ percentage = (TextView) dialog.findViewById(R.id.percentage);
+ message = (TextView) dialog.findViewById(R.id.message);
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ @Override
+ protected String doInBackground(Void... voids) {
+ try {
+
+ boolean no_jcp_flag = false;
+
+ String resultHttp = "";
+ data = new Data();
+
+ data.value = 10;
+ data.name = "JCP " + getResources().getString(R.string.download_data);
+ publishProgress(data);
+
+ XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ XmlPullParser xpp = factory.newPullParser();
+
+ // MAPPING_STOCK_ADHOC
+ SoapObject request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_STOCK_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ HttpTransportSE androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ Object result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mappingStockGetterSetter = XMLHandlers.mappingStockXMLHandler(xpp, eventType);
+
+ String stocktable = mappingStockGetterSetter.getTable_MAPPING_STOCK();
+ if (stocktable != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setMappingStock(stocktable);
+
+ }
+
+ if (mappingStockGetterSetter.getSKU_ID().size() > 0) {
+ data.value = 45;
+ data.name = "MAPPING_STOCK_ADHOC " + getResources().getString(R.string.download_data);
+ } else {
+ // return "MAPPING_STOCK";
+ }
+
+ }
+ publishProgress(data);
+
+ // MAPPING_T2P_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_T2P_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mappingt2PGetterSetter = XMLHandlers.mappingT2pXMLHandler(xpp, eventType);
+
+ String t2ptable = mappingt2PGetterSetter.getTable_MAPPING_T2P();
+ if (t2ptable != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setMappingT2p(t2ptable);
+
+ }
+
+ if (mappingt2PGetterSetter.getSTORE_ID().size() > 0) {
+ data.value = 50;
+ data.name = "MAPPING_T2P_ADHOC " + getResources().getString(R.string.download_data);
+
+ } else {
+ //return "MAPPING_T2P";
+ }
+
+ }
+ publishProgress(data);
+
+
+ // MAPPING_PROMOTION_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_PROMOTION_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mappingPromotionGetterSetter = XMLHandlers.mappingPromotionXMLHandler(xpp, eventType);
+
+ String mapping_promotion_table = mappingPromotionGetterSetter.getTable_MAPPING_PROMOTION();
+ if (mapping_promotion_table != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setMappingPromotion(mapping_promotion_table);
+ }
+
+ if (mappingPromotionGetterSetter.getSTORE_ID().size() > 0) {
+ data.value = 75;
+ data.name = "MAPPING_PROMOTION_ADHOC " + getResources().getString(R.string.download_data);
+ }
+
+
+ }
+ publishProgress(data);
+
+
+ //Gagan start code
+
+ // MAPPING_ADDITIONAL_PROMOTION_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_ADDITIONAL_PROMOTION_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mapping_additional_promotion_masterGetterSetter = XMLHandlers.mappingAdditionalPromotionXMLHandler(xpp, eventType);
+
+ //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) {
+ String mapping_additional_promotion_table = mapping_additional_promotion_masterGetterSetter.getTable_MAPPING_ADDITIONAL_PROMOTION();
+ if (mapping_additional_promotion_table != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ TableBean.setMappingAdditionalPromotion(mapping_additional_promotion_table);
+ }
+
+ if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) {
+ data.value = 80;
+ data.name = "MAPPING_ADDITIONAL_PROMOTION_ADHOC " + getResources().getString(R.string.download_data);
+ }
+ }
+ publishProgress(data);
+
+
+ //STORE_PERFORMANCE_NEW_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "STORE_PERFORMANCE_NEW_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ store_performance_masterGetterSetter = XMLHandlers.STORE_PERFORMANCEXMLHandler(xpp, eventType);
+
+ String table_store_performace = store_performance_masterGetterSetter.getTable_STORE_PERFORMANCE();
+ if (table_store_performace != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setStorePerformance(table_store_performace);
+ }
+
+ if (store_performance_masterGetterSetter.getSTORE_ID().size() > 0) {
+ data.value = 85;
+ data.name = "STORE_PERFORMANCE_NEW_ADHOC Data Download";
+ } else {
+ //return "STORE_PERFORMANCE";
+ }
+
+ }
+ publishProgress(data);
+
+
+ //MAPPING_PLANOGRAM_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_PLANOGRAM_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mapping_planogram_masterGetterSetter = XMLHandlers.MAPPING_PLANOGRAM_XMLHandler(xpp, eventType);
+
+ String table_mapping_planogram = mapping_planogram_masterGetterSetter.getTable_MAPPING_PLANOGRAM();
+ if (table_mapping_planogram != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setMappingPlanogram(table_mapping_planogram);
+
+ }
+ if (mapping_planogram_masterGetterSetter.getKEYACCOUNT_ID().size() > 0) {
+ data.value = 92;
+ data.name = "MAPPING_PLANOGRAM Data Download";
+ } else {
+ //return "MAPPING_PLANOGRAM";
+ }
+ }
+ publishProgress(data);
+
+
+ // MAPPING_SOS_TARGET_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "MAPPING_SOS_TARGET_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ mapping_sos_target_masterGetterSetter = XMLHandlers.MAPPING_SOS_TARGETXMLHandler(xpp, eventType);
+
+ //if (mapping_additional_promotion_masterGetterSetter.getSTORE_ID().size() > 0) {
+ String table_mapping_sos_target = mapping_sos_target_masterGetterSetter.getTable_MAPPING_SOS_TARGET();
+ if (table_mapping_sos_target != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setMappingSosTarget(table_mapping_sos_target);
+ }
+
+ if (mapping_sos_target_masterGetterSetter.getSTORE_ID().size() > 0) {
+ data.value = 95;
+ data.name = "MAPPING_SOS_TARGET_ADHOC " + getResources().getString(R.string.download_data);
+ }
+ }
+ publishProgress(data);
+
+
+ //NO_CAMERA_LAST_VISIT_DATA_ADHOC
+ request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_NAME_UNIVERSAL_DOWNLOAD);
+ request.addProperty("UserName", storeId);
+ request.addProperty("Type", "NO_CAMERA_LAST_VISIT_DATA_ADHOC");
+ request.addProperty("cultureid", culture_id);
+
+ envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ androidHttpTransport = new HttpTransportSE(CommonString.URL);
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UNIVERSAL, envelope);
+
+ result = envelope.getResponse();
+
+ if (result.toString() != null) {
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ noCameraLastVisitGetterSetter = XMLHandlers.noCameraLastVisitXMLHandler(xpp, eventType);
+
+ String table_no_camera = noCameraLastVisitGetterSetter.getTable_NO_CAMERA_LAST_VISIT_DATA();
+ if (table_no_camera != null) {
+ resultHttp = CommonString.KEY_SUCCESS;
+ //TableBean.setTable_NO_CAMERA_LAST_VISIT_DATA(table_no_camera);
+ }
+
+ if (noCameraLastVisitGetterSetter.getSKUGROUP_ID().size() > 0) {
+ data.value = 97;
+ data.name = "NO CAMERA LAST VISIT DATA" + getResources().getString(R.string.download_data);
+ }
+ }
+ publishProgress(data);
+
+
+ //Images DownLoads
+
+ //MAPPING_PLANOGRAM Image save into folder
+ if (mapping_planogram_masterGetterSetter != null) {
+
+ for (int i = 0; i < mapping_planogram_masterGetterSetter.getIMAGE_PATH().size(); i++) {
+ //publishing image download
+
+ if (data.value < 100) {
+ data.value = data.value + 1;
+ publishProgress(data);
+ }
+
+ String image_name = mapping_planogram_masterGetterSetter.getPLANOGRAM_IMAGE().get(i);
+ String path = mapping_planogram_masterGetterSetter.getIMAGE_PATH().get(i);
+
+ String PATH = CommonString.FILE_PATH_PLANOGRAM;
+ File file = new File(PATH);
+ if (!file.isDirectory()) {
+ file.mkdir();
+ }
+
+ if(!new File(PATH + image_name).exists()){
+ if (!image_name.equalsIgnoreCase("NA") && !image_name.equalsIgnoreCase("")) {
+ URL url = new URL(path + "/" + image_name);
+ HttpURLConnection c = (HttpURLConnection) url.openConnection();
+ c.setRequestMethod("GET");
+ c.getResponseCode();
+ c.connect();
+
+ if (c.getResponseCode() == 200) {
+ int length = c.getContentLength();
+
+ String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB";
+
+ //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/";
+
+ // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1;
+ if (!size.equalsIgnoreCase("0 KB")) {
+ File outputFile = new File(file, image_name);
+ FileOutputStream fos = new FileOutputStream(outputFile);
+ InputStream is1 = c.getInputStream();
+
+ int bytes = 0;
+ byte[] buffer = new byte[1024];
+ int len1 = 0;
+
+ while ((len1 = is1.read(buffer)) != -1) {
+ bytes = (bytes + len1);
+ // data.value = (int) ((double) (((double)
+ // bytes) / length) * 100);
+ fos.write(buffer, 0, len1);
+ }
+ fos.close();
+ is1.close();
+ }
+ }
+ }
+ }
+ }
+ }
+
+ //Gagan end code
+
+ //Display Master Image save into folder
+ if (displayMasterGetterSetter != null) {
+
+ for (int i = 0; i < displayMasterGetterSetter.getIMAGE_URL().size(); i++) {
+ //publishing image download
+
+ if (data.value < 100) {
+ data.value = data.value + 1;
+ publishProgress(data);
+ }
+
+ String image_name = displayMasterGetterSetter.getIMAGE_URL().get(i);
+ String img_url = displayMasterGetterSetter.getIMAGE_PATH().get(i);
+
+ String PATH = CommonString.FILE_PATH_PLANOGRAM;
+ File file = new File(PATH);
+ if (!file.isDirectory()) {
+ file.mkdir();
+ }
+
+ if (!new File(PATH + image_name).exists()) {
+ if (!img_url.equalsIgnoreCase("") && !image_name.equalsIgnoreCase("")) {
+ URL url = new URL(img_url + image_name);
+ HttpURLConnection c = (HttpURLConnection) url.openConnection();
+ c.setRequestMethod("GET");
+ c.getResponseCode();
+ c.connect();
+
+ if (c.getResponseCode() == 200) {
+ int length = c.getContentLength();
+
+ String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB";
+
+ //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/";
+
+
+ // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1;
+ if (!size.equalsIgnoreCase("0 KB")) {
+ File outputFile = new File(file, image_name);
+ FileOutputStream fos = new FileOutputStream(outputFile);
+ InputStream is1 = c.getInputStream();
+
+ int bytes = 0;
+ byte[] buffer = new byte[1024];
+ int len1 = 0;
+
+ while ((len1 = is1.read(buffer)) != -1) {
+ bytes = (bytes + len1);
+ // data.value = (int) ((double) (((double)
+ // bytes) / length) * 100);
+ fos.write(buffer, 0, len1);
+ }
+ fos.close();
+ is1.close();
+ }
+ }
+ }
+ }
+
+
+ }
+ }
+
+
+ //MAPPING_PLANOGRAM_STORE_WISE Image save into folder
+ if (mappingPlanogramStorewiseGetterSetter != null) {
+
+ for (int i = 0; i < mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().size(); i++) {
+ //publishing image download
+
+ if (data.value < 100) {
+ data.value = data.value + 1;
+ publishProgress(data);
+ }
+
+ String image_name = mappingPlanogramStorewiseGetterSetter.getPLANOGRAM_IMAGE().get(i);
+ String path = mappingPlanogramStorewiseGetterSetter.getIMAGE_PATH().get(i);
+
+ String PATH = CommonString.FILE_PATH_PLANOGRAM;
+ File file = new File(PATH);
+ if (!file.isDirectory()) {
+ file.mkdir();
+ }
+
+ if(!new File(PATH + image_name).exists()){
+ if (!image_name.equalsIgnoreCase("NA") && !image_name.equalsIgnoreCase("")) {
+ URL url = new URL(path + "/" + image_name);
+ HttpURLConnection c = (HttpURLConnection) url.openConnection();
+ c.setRequestMethod("GET");
+ c.getResponseCode();
+ c.connect();
+
+ if (c.getResponseCode() == 200) {
+ int length = c.getContentLength();
+
+ String size = new DecimalFormat("##.##").format((double) length / 1024) + " KB";
+
+ //String PATH = Environment.getExternalStorageDirectory() + "/Download/GT_GSK_Images/";
+
+ // Environment.getExternalStorageDirectory() + "/GT_GSK_Images/" + _pathforcheck1;
+ if (!size.equalsIgnoreCase("0 KB")) {
+ File outputFile = new File(file, image_name);
+ FileOutputStream fos = new FileOutputStream(outputFile);
+ InputStream is1 = c.getInputStream();
+
+ int bytes = 0;
+ byte[] buffer = new byte[1024];
+ int len1 = 0;
+
+ while ((len1 = is1.read(buffer)) != -1) {
+ bytes = (bytes + len1);
+ // data.value = (int) ((double) (((double)
+ // bytes) / length) * 100);
+ fos.write(buffer, 0, len1);
+ }
+ fos.close();
+ is1.close();
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ db.open();
+ db.createTable(mappingStockGetterSetter.getTable_MAPPING_STOCK());
+ db.createTable(mappingt2PGetterSetter.getTable_MAPPING_T2P());
+ db.createTable(mappingPromotionGetterSetter.getTable_MAPPING_PROMOTION());
+ db.createTable(mapping_additional_promotion_masterGetterSetter.getTable_MAPPING_ADDITIONAL_PROMOTION());
+ db.createTable(mapping_planogram_masterGetterSetter.getTable_MAPPING_PLANOGRAM());
+ db.createTable(mapping_sos_target_masterGetterSetter.getTable_MAPPING_SOS_TARGET());
+ db.createTable(noCameraLastVisitGetterSetter.getTable_NO_CAMERA_LAST_VISIT_DATA());
+ db.createTable(store_performance_masterGetterSetter.getTable_STORE_PERFORMANCE());
+
+ db.InsertAdhocFilled(storeId, visit_date);
+
+ db.InsertMAPPING_T2P(mappingt2PGetterSetter, CommonString.TABLE_MAPPING_T2P_ADHOC);
+ db.InsertMappingStock(mappingStockGetterSetter, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ db.InsertMAPPING_PROMOTION(mappingPromotionGetterSetter, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ db.InsertMAPPING_ADDITIONAL_PROMOTION(mapping_additional_promotion_masterGetterSetter, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC);
+ db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC);
+ db.InsertMAPPING_PLANOGRAM(mapping_planogram_masterGetterSetter, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC);
+ db.InsertMAPPING_SOS_TARGET(mapping_sos_target_masterGetterSetter, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC);
+ db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter, CommonString.TABLE_NO_CAMERA_LAST_VISIT_DATA_ADHOC);
+
+
+ } catch (MalformedURLException e) {
+
+ ResultFlag = false;
+ str = CommonString.MESSAGE_EXCEPTION;
+ return CommonString.MESSAGE_EXCEPTION;
+ } catch (SocketTimeoutException e) {
+ ResultFlag = false;
+ str = CommonString.MESSAGE_SOCKETEXCEPTION;
+ return CommonString.MESSAGE_SOCKETEXCEPTION;
+ } catch (InterruptedIOException e) {
+
+ ResultFlag = false;
+ str = CommonString.MESSAGE_EXCEPTION;
+ return CommonString.MESSAGE_EXCEPTION;
+
+ } catch (IOException e) {
+
+ ResultFlag = false;
+ str = CommonString.MESSAGE_SOCKETEXCEPTION;
+ return CommonString.MESSAGE_SOCKETEXCEPTION;
+ } catch (XmlPullParserException e) {
+ ResultFlag = false;
+ str = CommonString.MESSAGE_XmlPull;
+ return CommonString.MESSAGE_XmlPull;
+ } catch (Exception e) {
+ Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString());
+ Crashlytics.logException(e.getCause());
+ Crashlytics.logException(new Exception(e.getCause()));
+ ResultFlag = false;
+ str = CommonString.MESSAGE_EXCEPTION;
+
+ return CommonString.MESSAGE_EXCEPTION;
+ }
+
+ if (ResultFlag) {
+ return "";
+ } else {
+ return str;
+ }
+ }
+
+ @Override
+ protected void onProgressUpdate(Data... values) {
+ // TODO Auto-generated method stub
+
+ pb.setProgress(values[0].value);
+ percentage.setText(values[0].value + "%");
+ message.setText(values[0].name);
+ }
+
+ @Override
+ protected void onPostExecute(String s) {
+ super.onPostExecute(s);
+
+ if (s.equalsIgnoreCase("")) {
+ dialog.dismiss();
+
+ showAlert(getString(R.string.data_downloaded_successfully), true);
+ } else {
+ dialog.dismiss();
+ showAlert(getString(R.string.datanotfound) + " " + s, false);
+ }
+ }
+
+ }
+
+ public void showAlert(String str, final boolean flag) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(str).setCancelable(false)
+ .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ if(flag){
+ Intent in = new Intent(StoreListActivity.this, StoreimageActivity.class);
+ in.putExtra(CommonString.KEY_STORE_FLAG, store_flag_str);
+ in.putExtra(CommonString.KEY_STORE_ID, store_id);
+ startActivity(in);
+ overridePendingTransition(R.anim.activity_in, R.anim.activity_out);
+ }
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
+
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java
index 33f75d3..776a92f 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/StoreimageActivity.java
@@ -96,7 +96,7 @@ public class StoreimageActivity extends AppCompatActivity implements View.OnClic
private FailureGetterSetter failureGetterSetter = null;
String _pathforcheck, _path, str;
- String store_id, visit_date, username, intime, date, _UserId, store_flag_str;
+ String store_id, visit_date, username, intime, date, _UserId, store_flag_str, country_id;
private SharedPreferences preferences;
AlertDialog alert;
String img_str, strflag;
@@ -144,8 +144,10 @@ public class StoreimageActivity extends AppCompatActivity implements View.OnClic
username = preferences.getString(CommonString.KEY_USERNAME, null);
_UserId = preferences.getString(CommonString.KEY_USERNAME, "");
intime = preferences.getString(CommonString.KEY_STORE_IN_TIME, "");
+ country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
- store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG);
+ //store_flag_str = getIntent().getStringExtra(CommonString.KEY_STORE_FLAG);
store_id = getIntent().getStringExtra(CommonString.KEY_STORE_ID);
str = CommonString.FILE_PATH;
@@ -500,7 +502,7 @@ public class StoreimageActivity extends AppCompatActivity implements View.OnClic
String status;
- if (store_flag_str.equals(CommonString.FROM_JCP)) {
+ if (store_flag_str.equals(CommonString.FROM_JCP) || country_id.equalsIgnoreCase("5")) {
status = CommonString.KEY_INVALID;
} else {
status = CommonString.KEY_VALID;
@@ -915,7 +917,7 @@ public class StoreimageActivity extends AppCompatActivity implements View.OnClic
if (result.equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
dialog.dismiss();
- if (store_flag_str.equals(CommonString.FROM_JCP)) {
+ if (store_flag_str.equals(CommonString.FROM_JCP)|| country_id.equalsIgnoreCase("5")) {
Intent in = new Intent(StoreimageActivity.this, StoreWisePerformanceActivity.class);
startActivity(in);
finish();
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java
index 933919e..17c067a 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2PComplianceActivity.java
@@ -78,7 +78,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
RecyclerView rec_t2p;
MyAdaptorStock adapterData;
String categoryName, categoryId;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str;
String str = CommonString.FILE_PATH,
path = "", path1 = "", path2 = "",
_pathforcheck = "", _pathforcheck1 = "", _pathforcheck2 = "",
@@ -95,6 +95,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
ArrayList brand_new_list = new ArrayList();
ArrayList brandList;
ArrayList select = new ArrayList<>();
+ boolean editFlag = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -129,6 +130,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
rec_t2p = (RecyclerView) findViewById(R.id.rec_t2p);
@@ -139,7 +141,11 @@ public class T2PComplianceActivity extends AppCompatActivity {
if (isValid()) {
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
+ db.InsertT2PData(t2PGetterSetters, store_id, categoryId);
+ //Snackbar.make(view, "Data Saved", Snackbar.LENGTH_LONG).setAction("Action", null).show();
+ finish();
+
+ /* AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
T2PComplianceActivity.this);
// set title
alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title));
@@ -166,7 +172,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
- alertDialog.show();
+ alertDialog.show();*/
} else {
Snackbar.make(view, error_msg, Snackbar.LENGTH_LONG)
@@ -179,7 +185,13 @@ public class T2PComplianceActivity extends AppCompatActivity {
t2PGetterSetters = db.getT2pComplianceData(store_id, categoryId);
if (t2PGetterSetters.size() == 0) {
- t2PGetterSetters = db.getT2PDefaultData(store_id, categoryId);
+ if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ t2PGetterSetters = db.getT2PDefaultData(store_id, categoryId, CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ t2PGetterSetters = db.getT2PDefaultData(store_id, categoryId, "MAPPING_T2P");
+ }
+
} else {
for (int i = 0; i < t2PGetterSetters.size(); i++) {
@@ -291,6 +303,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
mItem.setNon_t2p_reason_id(non_t2p_reason_list.get(position).getTREASON_ID().get(0));
+ editFlag = true;
}
@Override
@@ -315,6 +328,8 @@ public class T2PComplianceActivity extends AppCompatActivity {
@Override
public void onItemSelected(AdapterView> adapterView, View view, int position, long l) {
+ editFlag = true;
+
if (userSelect[0]) {
userSelect[0] = false;
@@ -326,12 +341,11 @@ public class T2PComplianceActivity extends AppCompatActivity {
case 0:
if (mItem.getPresent() == 1) {
flag_clear = true;
- } else if(mItem.getPresent() == 0){
+ } else if (mItem.getPresent() == 0) {
mItem.setNon_t2p_reason_id("0");
mItem.setPresent(-1);
t2PAdapter.notifyDataSetChanged();
- }
- else {
+ } else {
mItem.setPresent(-1);
t2PAdapter.notifyDataSetChanged();
}
@@ -361,6 +375,8 @@ public class T2PComplianceActivity extends AppCompatActivity {
if (flag_clear) {
+ editFlag = true;
+
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(T2PComplianceActivity.this);
alertDialogBuilder.setTitle(getResources().getString(R.string.dialog_title));
@@ -683,10 +699,9 @@ public class T2PComplianceActivity extends AppCompatActivity {
holder.img_cam2.setEnabled(is_enabled);
holder.btn_gaps.setEnabled(is_enabled);
- if(mItem.getPresent()==0){
+ if (mItem.getPresent() == 0) {
holder.layout_t2p_non_reason.setVisibility(View.VISIBLE);
- }
- else {
+ } else {
holder.layout_t2p_non_reason.setVisibility(View.GONE);
}
@@ -729,8 +744,8 @@ public class T2PComplianceActivity extends AppCompatActivity {
break;
}
- for(int i=0;i brandList;
- if(country_id.equals("7")){
- brandList = db.getBrandT2PData(null, null, null, categoryId, store_id);
- }
- else {
- brandList = db.getBrandT2PData(storeType_id, class_id, keyAccount_id, categoryId, store_id);
+ if (country_id.equals("7")) {
+ brandList = db.getBrandT2PData(null, null, null, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ brandList = db.getBrandT2PData(storeType_id, class_id, keyAccount_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ } else {
+ brandList = db.getBrandT2PData(storeType_id, class_id, keyAccount_id, categoryId, store_id, CommonString.TABLE_MAPPING_STOCK);
}
+
+
BrandMasterGetterSetter brand = new BrandMasterGetterSetter();
brand.setBRAND("select");
brandList.add(0, brand);
@@ -860,6 +878,9 @@ public class T2PComplianceActivity extends AppCompatActivity {
Snackbar.make(v, getResources().getString(R.string.enter_the_values), Snackbar.LENGTH_SHORT).show();
} else {
+
+ editFlag = true;
+
SkuGetterSetter sku = new SkuGetterSetter();
sku.setBRAND_ID(brand_selected[0].getBRAND_ID().get(0));
sku.setBRAND(brand_selected[0].getBRAND().get(0));
@@ -927,11 +948,12 @@ public class T2PComplianceActivity extends AppCompatActivity {
String brand_id = brandList.get(position).getBRAND_ID().get(0);
ArrayList temp_list;
- if(country_id.equals("7")){
- temp_list = db.getSkuT2PData(null, null, null, brand_id, store_id);
- }
- else {
- temp_list = db.getSkuT2PData(storeType_id, class_id, keyAccount_id, brand_id, store_id);
+ if (country_id.equals("7")) {
+ temp_list = db.getSkuT2PData(null, null, null, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ temp_list = db.getSkuT2PData(storeType_id, class_id, keyAccount_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ }else {
+ temp_list = db.getSkuT2PData(storeType_id, class_id, keyAccount_id, brand_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
for (int k = 0; k < temp_list.size(); k++) {
@@ -1050,7 +1072,7 @@ public class T2PComplianceActivity extends AppCompatActivity {
Log.i("Stock & Facing ", "startCameraActivity()");
File file = new File(path);
- outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file);
+ outputFileUri = FileProvider.getUriForFile(getApplicationContext(), "cpm.com.gskmtorange.fileprovider", file);
String defaultCameraPackage = "";
final PackageManager packageManager = getPackageManager();
@@ -1196,12 +1218,12 @@ public class T2PComplianceActivity extends AppCompatActivity {
}
} else if (t2PGetterSetters.get(i).getPresent() == 0) {
- if(t2PGetterSetters.get(i).getNon_t2p_reason_id().equals("0")){
+ if (t2PGetterSetters.get(i).getNon_t2p_reason_id().equals("0")) {
flag = false;
error_msg = getResources().getString(R.string.error_message_non_t2p_reason);
break;
}
- }else if (t2PGetterSetters.get(i).getPresent() == -1) {
+ } else if (t2PGetterSetters.get(i).getPresent() == -1) {
flag = false;
error_msg = getResources().getString(R.string.msg_select_present);
break;
@@ -1216,24 +1238,31 @@ public class T2PComplianceActivity extends AppCompatActivity {
public void onBackPressed() {
//super.onBackPressed();
- android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(T2PComplianceActivity.this);
- builder.setTitle("Parinaam");
- builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
- .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
+ if(editFlag){
+ android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(T2PComplianceActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
+ .setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
- finish();
- overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
- }
- })
- .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ })
+ .setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+
+ }
+ });
+ android.app.AlertDialog alert = builder.create();
+ alert.show();
+ }
+ else {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
- }
- });
- android.app.AlertDialog alert = builder.create();
- alert.show();
}
@@ -1600,11 +1629,12 @@ public class T2PComplianceActivity extends AppCompatActivity {
public void showBrandAvabilitydialog(final ArrayList brandGetdata) {
final ArrayList brandList;
- if(country_id.equals("7")){
- brandList = db.getBrandAvailbilitydata(store_id, categoryId, null, null, null);
- }
- else {
- brandList = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id);
+ if (country_id.equals("7")) {
+ brandList = db.getBrandAvailbilitydata(store_id, categoryId, null, null, null, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ brandList = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
+ }else {
+ brandList = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id, CommonString.TABLE_MAPPING_STOCK);
}
BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter();
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java
index 63a8a98..d5ce49e 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/dailyentry/T2pBrand_Avaibility.java
@@ -87,7 +87,7 @@ public class T2pBrand_Avaibility extends AppCompatActivity {
categoryName = getIntent().getStringExtra("categoryName");
categoryId = getIntent().getStringExtra("categoryId");
/////
- brand_list = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id);
+ brand_list = db.getBrandAvailbilitydata(store_id, categoryId, keyAccount_id, class_id, storeType_id,CommonString.TABLE_MAPPING_STOCK);
BrandAvabilityGetterSetter brand = new BrandAvabilityGetterSetter();
String str = getResources().getString(R.string.select);
brand.setBRAND(str);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java
index 2906514..755da83 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/download/DownloadActivity.java
@@ -1729,22 +1729,22 @@ public class DownloadActivity extends AppCompatActivity {
db.InsertBrandMaster(brandMasterGetterSetter);
db.InsertSkuMaster(skumastergettersetter);
db.InsertDisplayMaster(displayMasterGetterSetter);
- db.InsertMAPPING_T2P(mappingt2PGetterSetter);
- db.InsertMappingStock(mappingStockGetterSetter);
+ db.InsertMAPPING_T2P(mappingt2PGetterSetter, "MAPPING_T2P");
+ db.InsertMappingStock(mappingStockGetterSetter, "MAPPING_STOCK");
db.InsertDisplayChecklistMaster(checklistMasterGetterSetter);
db.InsertMappingDisplayChecklist(mappingChecklistGetterSetter);
- db.InsertMAPPING_PROMOTION(mappingPromotionGetterSetter);
- db.InsertMAPPING_ADDITIONAL_PROMOTION(mapping_additional_promotion_masterGetterSetter);
+ db.InsertMAPPING_PROMOTION(mappingPromotionGetterSetter, "MAPPING_PROMOTION");
+ db.InsertMAPPING_ADDITIONAL_PROMOTION(mapping_additional_promotion_masterGetterSetter, "MAPPING_ADDITIONAL_PROMOTION");
db.insertNonWorkingData(nonWorkingReasonGetterSetter);
//NON_WORKING_SUB_REASON added - 26.09.2018
db.insertNonWorkingSubreasonData(nonWorkingSubReasonGetterSetter);
- db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter);
- db.InsertMAPPING_PLANOGRAM(mapping_planogram_masterGetterSetter);
+ db.InsertSTORE_PERFORMANCE(store_performance_masterGetterSetter, "STORE_PERFORMANCE_NEW");
+ db.InsertMAPPING_PLANOGRAM(mapping_planogram_masterGetterSetter, "MAPPING_PLANOGRAM");
db.InsertADDITIONAL_DISPLAY(additional_display_getter_setter);
- db.InsertMAPPING_SOS_TARGET(mapping_sos_target_masterGetterSetter);
+ db.InsertMAPPING_SOS_TARGET(mapping_sos_target_masterGetterSetter, "MAPPING_SOS_TARGET");
db.InsertSHELF_MASTER(shelfMasterGetterSetter);
db.InsertMappingSubCategoryImageAllow(mappingSubCategoryImageAllowGetterSetter);
@@ -1755,7 +1755,7 @@ public class DownloadActivity extends AppCompatActivity {
db.InsertPOGQUESTION(pogQuestionGetterSetter);
db.InsertNON_T2P_REASON(nonT2pReasonGetterSetter);
db.InsertCONFIGURATION_COUNTRY_WISE(configurationContrywiseGetterSetter);
- db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter);
+ db.InsertNO_CAMERA_LAST_VISIT_DATA(noCameraLastVisitGetterSetter,"NO_CAMERA_LAST_VISIT_DATA");
db.insertSUPERVISOR_LIST_DATA(supervisorListGetterSetter);
db.InsertGeoTag_DATA(geoFencingGetterSetter);
db.InsertCONFIGURATION_MASTER(configurationMasterGetterSetter);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java
index 9801766..655b4b5 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/fragment/ServiceActivityFragment.java
@@ -201,7 +201,7 @@ public class ServiceActivityFragment extends Fragment {
if (sd.canWrite()) {
String currentDBPath = "//data//cpm.com.gskmtorange//databases//" + GSKOrangeDB.DATABASE_NAME;
- String backupDBPath = "GSKMT_ORANGE_Database_backup_carmen.s_01182019_150602";
+ String backupDBPath = "GSKMT_ORANGE_Database_backup_testksa_02272019_155842";
File currentDB = new File(data, currentDBPath);
File backupDB = new File(sd, backupDBPath);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java
index 0c02167..9904ca9 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryListActivity.java
@@ -42,7 +42,7 @@ public class CategoryListActivity extends AppCompatActivity {
CategoryListAdapter adapter;
GSKOrangeDB db;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id,camera_allow, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id,camera_allow, country_id, store_flag_str;
private SharedPreferences preferences;
@Override
@@ -69,6 +69,7 @@ public class CategoryListActivity extends AppCompatActivity {
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null);
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
/*txt_categoryName = (TextView) findViewById(R.id.txt_categoryName);
@@ -98,10 +99,13 @@ public class CategoryListActivity extends AppCompatActivity {
categoryList = new ArrayList<>();
if(country_id.equals("7")){
- categoryList = db.getCategoryListData(null, null, null, store_id);
+ categoryList = db.getCategoryListData(null, null, null, store_id, "MAPPING_STOCK_STOREWISE");
+ }
+ else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
}
else {
- categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id);
+ categoryList = db.getCategoryListData(keyAccount_id, storeType_id, class_id, store_id, "MAPPING_STOCK");
}
if (categoryList.size() > 0) {
@@ -134,10 +138,13 @@ public class CategoryListActivity extends AppCompatActivity {
boolean flag_mapping_stock;
//New MSL_Availability_StockFacing
if(country_id.equals("7")){
- flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id);
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ }
+ else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
}
else {
- flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id);
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
if (flag_mapping_stock) {
if (!db.checkMsl_Availability_StockFacingData(store_id, category_id)) {
@@ -153,7 +160,14 @@ public class CategoryListActivity extends AppCompatActivity {
}
}
else {
- if (db.isMappingPromotionData(store_id, category_id)) {
+ boolean isMappingPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+ if (isMappingPromotion_Flag) {
if (!db.checkPromoComplianceData(store_id, category_id)) {
flag = false;
}
@@ -164,7 +178,14 @@ public class CategoryListActivity extends AppCompatActivity {
//T2P
if (flag) {
- if (db.isMappingT2PData(store_id, category_id)) {
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P);
+ }
+ if (flag_t2p_mapping) {
if (!db.isFilledT2P(store_id, category_id)) {
flag = false;
}
@@ -257,8 +278,14 @@ public class CategoryListActivity extends AppCompatActivity {
if (!item.getKEYACCOUNT_ID().equals("0") && !item.getKEYACCOUNT_ID().equals(keyAccount_id)) {
iterator.remove();
} else if (!item.getCHECK_TYPE().equals("NA") && item.getCHECK_TYPE().equals("T2P")) {
-
- if (!db.isMappingT2PData(store_id, category_id)) {
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P);
+ }
+ if (!flag_t2p_mapping) {
iterator.remove();
}
}
@@ -270,8 +297,15 @@ public class CategoryListActivity extends AppCompatActivity {
ArrayList getAuditQnsRemoved(String categoryId) {
boolean t2p_flag = false;
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
- if (db.isMappingT2PData(store_id, categoryId)) {
+ if (flag_t2p_mapping) {
if (db.isFilledT2P(store_id, categoryId)) {
ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId);
@@ -448,10 +482,13 @@ public class CategoryListActivity extends AppCompatActivity {
boolean flag_mapping_stock;
//New MSL_Availability_StockFacing
if(country_id.equals("7")){
- flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id);
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ }
+ else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
}
else {
- flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id);
+ flag_mapping_stock = db.isMappingStockDataStockFacing(category_id, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
if (flag_mapping_stock) {
if (!db.checkMsl_Availability_StockFacingData(store_id, category_id)) {
@@ -467,7 +504,14 @@ public class CategoryListActivity extends AppCompatActivity {
}
}
else {
- if (db.isMappingPromotionData(store_id, category_id)) {
+ boolean isMappingPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, category_id, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+ if (isMappingPromotion_Flag) {
if (!db.checkPromoComplianceData(store_id, category_id)) {
flag_filled = false;
break;
@@ -475,8 +519,14 @@ public class CategoryListActivity extends AppCompatActivity {
}
}
-
- if (db.isMappingT2PData(store_id, category_id)) {
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, category_id,CommonString.TABLE_MAPPING_T2P);
+ }
+ if (flag_t2p_mapping) {
if (!db.isFilledT2P(store_id, category_id)) {
flag_filled = false;
break;
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java
index 4a080b0..28c7779 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/CategoryWisePerformanceActivity.java
@@ -41,7 +41,7 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity {
CategoryWisePerformaceAdapter adapter;
GSKOrangeDB db;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, store_flag_str;
private SharedPreferences preferences;
@Override
@@ -68,6 +68,7 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity {
keyAccount_id = preferences.getString(CommonString.KEY_KEYACCOUNT_ID, "");
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
//Intent data
categoryName = getIntent().getStringExtra("categoryName");
@@ -102,7 +103,13 @@ public class CategoryWisePerformanceActivity extends AppCompatActivity {
super.onResume();
try {
CommonFunctions.updateLangResources(getApplicationContext(),preferences.getString(CommonString.KEY_LANGUAGE, ""));
- categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId);
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC);
+ }
+ else {
+ categoryWisePerformanceList = db.getCategoryWisePerformance(store_id, categoryId, "STORE_PERFORMANCE_NEW");
+ }
+
adapter = new CategoryWisePerformaceAdapter(CategoryWisePerformanceActivity.this, categoryWisePerformanceList);
recyclerView.setAdapter(adapter);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java
index b509484..0f16962 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/DailyDataMenuActivity.java
@@ -52,7 +52,7 @@ public class DailyDataMenuActivity extends AppCompatActivity {
GSKOrangeDB db;
String categoryName = "", categoryId;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, pog_type_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, pog_type_id, store_flag_str;
private SharedPreferences preferences;
ArrayList category_camera_list;
@@ -87,6 +87,7 @@ public class DailyDataMenuActivity extends AppCompatActivity {
camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
pog_type_id = preferences.getString(CommonString.KEY_POG_TYPE_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
//Intent data
categoryName = getIntent().getStringExtra("categoryName");
categoryId = getIntent().getStringExtra("categoryId");
@@ -181,7 +182,15 @@ public class DailyDataMenuActivity extends AppCompatActivity {
//T2p
data = new DailyDataMenuGetterSetter();
data.setCategory_name(getResources().getString(R.string.daily_data_menu_t2p));
- if (db.isMappingT2PData(store_id, categoryId)) {
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
+
+ if (flag_t2p_mapping) {
if (db.isFilledT2P(store_id, categoryId)) {
data.setCategory_img(R.mipmap.t2p_compliance_done);
} else {
@@ -215,7 +224,23 @@ public class DailyDataMenuActivity extends AppCompatActivity {
}
}
else {
- if (db.isMappingPromotionData(store_id, categoryId) || db.isMappingAdditionalPromotionData(store_id, categoryId)) {
+ boolean isMappingPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+
+ boolean isMappingAdditionalPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION);
+ }
+
+ if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) {
if (db.checkPromoComplianceData(store_id, categoryId) ||
db.checkAdditionalPromoComplianceData(store_id, categoryId)) {
data.setCategory_img(R.mipmap.promo_compliance_done);
@@ -341,8 +366,15 @@ public class DailyDataMenuActivity extends AppCompatActivity {
ArrayList getAuditQnsRemoved() {
boolean t2p_flag = false;
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
- if (db.isMappingT2PData(store_id, categoryId)) {
+ if (flag_t2p_mapping) {
if (db.isFilledT2P(store_id, categoryId)) {
ArrayList t2PList = db.getT2pComplianceData(store_id, categoryId);
@@ -432,7 +464,23 @@ public class DailyDataMenuActivity extends AppCompatActivity {
holder.categoryName.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
else {
- if (db.isMappingPromotionData(store_id, categoryId) || db.isMappingAdditionalPromotionData(store_id, categoryId)) {
+ boolean isMappingPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+
+ boolean isMappingAdditionalPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION);
+ }
+
+ if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) {
holder.categoryName.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
} else {
holder.categoryName.setTextColor(getResources().getColor(R.color.grey_background));
@@ -440,7 +488,16 @@ public class DailyDataMenuActivity extends AppCompatActivity {
}
} else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_t2p)))) {
- if (db.isMappingT2PData(store_id, categoryId)) {
+ boolean t2p_flag = false;
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
+
+ if (flag_t2p_mapping) {
holder.categoryName.setTextColor(getResources().getColor(R.color.colorPrimaryDark));
} else {
holder.categoryName.setTextColor(getResources().getColor(R.color.grey_background));
@@ -507,7 +564,23 @@ public class DailyDataMenuActivity extends AppCompatActivity {
startActivity(intent);
}
else {
- if (db.isMappingPromotionData(store_id, categoryId) || db.isMappingAdditionalPromotionData(store_id, categoryId)) {
+ boolean isMappingPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingPromotion_Flag = db.isMappingPromotionData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+
+ boolean isMappingAdditionalPromotion_Flag;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC);
+ }
+ else {
+ isMappingAdditionalPromotion_Flag = db.isMappingAdditionalPromotionData(store_id, categoryId,CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION);
+ }
+
+ if (isMappingPromotion_Flag || isMappingAdditionalPromotion_Flag) {
Intent intent = new Intent(DailyDataMenuActivity.this, PromoComplianceActivity.class);
intent.putExtra("categoryName", dailyData.getCategory_name());
intent.putExtra("categoryId", categoryId);
@@ -517,7 +590,15 @@ public class DailyDataMenuActivity extends AppCompatActivity {
} else if (dailyData.getCategory_name().equalsIgnoreCase((getResources().getString(R.string.daily_data_menu_t2p)))) {
- if (db.isMappingT2PData(store_id, categoryId)) {
+ boolean t2p_flag = false;
+ boolean flag_t2p_mapping;
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P_ADHOC);
+ }
+ else {
+ flag_t2p_mapping = db.isMappingT2PData(store_id, categoryId,CommonString.TABLE_MAPPING_T2P);
+ }
+ if (flag_t2p_mapping) {
Intent intent = new Intent(DailyDataMenuActivity.this, T2PComplianceActivity.class);
intent.putExtra("categoryName", dailyData.getCategory_name());
intent.putExtra("categoryId", categoryId);
@@ -614,10 +695,13 @@ public class DailyDataMenuActivity extends AppCompatActivity {
boolean isMappingStockData(){
boolean flag;
if(country_id.equals("7")){
- flag = db.isMappingStockDataStockFacing(categoryId, null, null, null, store_id);
+ flag = db.isMappingStockDataStockFacing(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ }
+ else if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
}
else {
- flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id);
+ flag = db.isMappingStockDataStockFacing(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
return flag;
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java
index 3bef74f..74dc689 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/MSL_Availability_StockFacingActivity.java
@@ -57,11 +57,12 @@ import cpm.com.gskmtorange.Database.GSKOrangeDB;
import cpm.com.gskmtorange.R;
import cpm.com.gskmtorange.constant.CommonFunctions;
import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.interfaces.DialogCallbackListener;
import cpm.com.gskmtorange.xmlGetterSetter.MAPPING_PLANOGRAM_DataGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.MSL_AvailabilityStockFacingGetterSetter;
import cpm.com.gskmtorange.xmlGetterSetter.StockFacing_PlanogramTrackerDataGetterSetter;
-public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
+public class MSL_Availability_StockFacingActivity extends AppCompatActivity implements DialogCallbackListener {
ExpandableListView expandableListView;
TextView txt_mslAvailabilityName;
@@ -80,7 +81,7 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
GSKOrangeDB db;
String categoryName, categoryId, storeId, Error_Message = "";
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, country_id, store_flag_str;
boolean isDialogOpen = true;
private SharedPreferences preferences;
int scrollPosition = 0;
@@ -90,6 +91,7 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
ArrayList planogramShelfHeaderDataList = new ArrayList<>();
ArrayList planogramSkuChildDataList;
HashMap> planogramHashMapListChildData = new HashMap<>();
+ boolean editFlag = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -129,6 +131,7 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
//Intent data
categoryName = getIntent().getStringExtra("categoryName");
@@ -158,7 +161,20 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
adapter.notifyDataSetChanged();
if (validateData(hashMapListHeaderData, hashMapListChildData)) {
- AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
+
+ db.open();
+
+ if (db.checkMsl_Availability_StockFacingData(store_id, categoryId)) {
+ db.updateMSL_Availability_StockFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData);
+ Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show();
+ } else {
+ db.InsertMSL_Availability_StockFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData);
+ Snackbar.make(view, getResources().getString(R.string.save_message), Snackbar.LENGTH_LONG).setAction("Action", null).show();
+ }
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
+ /*AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
builder.setMessage(getResources().getString(R.string.check_save_message))
.setCancelable(false)
.setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
@@ -182,23 +198,23 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
+ for (int i = 0; i < adapter.getGroupCount(); i++)
+ expandableListView.expandGroup(i);
+
+ /*AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
builder.setMessage(Error_Message)
.setCancelable(false)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
- //expandableListView.smoothScrollToPosition(scrollPosition);
+ //expandableListView.smoothScrollToPosition(scrollPosition);
- /* if (!expandableListView.isGroupExpanded(scrollPosition)) {
- expandableListView.expandGroup(scrollPosition);
- }*/
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
}
}
@@ -292,10 +308,19 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
int id = item.getItemId();
if (id == android.R.id.home) {
- AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
+
+ if (editFlag) {
+ CommonFunctions.showAlertDialog(MSL_Availability_StockFacingActivity.this, getResources().getString(R.string.data_will_be_lost));
+ } else {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+
+
+ /* AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
builder.setTitle(getResources().getString(R.string.dialog_title));
builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
- .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//adapter.notifyDataSetChanged();
@@ -310,14 +335,14 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
}
})
- .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
//finish();
} else if (id == R.id.action_planogram) {//Planogram Dialog
expandableListView.clearFocus();
@@ -334,13 +359,14 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
//Header
if (country_id.equals("7")) {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id);
+ mappingPlanogramList = db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM_ADHOC);
} else {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null);
+ mappingPlanogramList = db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM);
}
-
//ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram);
WebView webView = (WebView) dialog.findViewById(R.id.webview);
webView.setWebViewClient(new MyWebViewClient());
@@ -389,6 +415,27 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
return super.onOptionsItemSelected(item);
}
+ @Override
+ public void onSelect(boolean flag) {
+ if (flag) {
+ //adapter.notifyDataSetChanged();
+ if (!validateData(hashMapListHeaderData, hashMapListChildData)) {
+
+ if (!camera_allow.equals("1")) {
+ db.deletePlanogramListStoreAndCategorywise(store_id, categoryId,
+ planogramShelfHeaderDataList, planogramHashMapListChildData);
+ }
+ }
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ }
+
+ @Override
+ public void onSave(boolean flag) {
+
+ }
+
private class MyWebViewClient extends WebViewClient {
@Override
@@ -571,9 +618,11 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
//Header
if (country_id.equals("7")) {
- headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, null, null, null, store_id);
+ headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE, CommonString.TABLE_MAPPING_SOS_TARGET);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC, CommonString.TABLE_MAPPING_SOS_TARGET_ADHOC);
} else {
- headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id);
+ headerDataList = db.getMSL_Availability_StockFacingHeaderData(categoryId, keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK, CommonString.TABLE_MAPPING_SOS_TARGET);
}
@@ -585,9 +634,11 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
childDataList = db.getMSL_Availability_StockFacingSKU_AfterSaveData(categoryId, headerDataList.get(i).getBrand_id(), store_id);
if (!(childDataList.size() > 0)) {
if (country_id.equals("7")) {
- childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id);
+ childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), null, null, null, store_id, CommonString.TABLE_MAPPING_STOCK_STOREWISE);
+ } else if (store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK_ADHOC);
} else {
- childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id);
+ childDataList = db.getMSL_Availability_StockFacingSKUData(categoryId, headerDataList.get(i).getBrand_id(), keyAccount_id, storeType_id, class_id, store_id, CommonString.TABLE_MAPPING_STOCK);
}
}
@@ -597,6 +648,11 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
adapter = new ExpandableListAdapter(this, hashMapListHeaderData, hashMapListChildData);
expandableListView.setAdapter(adapter);
+
+ //expand all
+ for (int i = 0; i < adapter.getGroupCount(); i++)
+ expandableListView.expandGroup(i);
+
} catch (Exception e) {
e.printStackTrace();
}
@@ -604,12 +660,26 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
boolean validateData(List listDataHeader,
HashMap> listDataChild) {
- boolean flag = true;
+ boolean flag = true, child_flag = true, all_flag = true;
+
checkHeaderArray.clear();
+ int childCount = 0;
+
+ //temp list data for empty only
+ List listDataHeaderTemp = new ArrayList<>();
+
+ HashMap> listDataChildTemp = new HashMap<>();
+
for (int i = 0; i < listDataHeader.size(); i++) {
+ flag = true;
+
+ List listTemp = new ArrayList<>();
for (int j = 0; j < listDataChild.get(listDataHeader.get(i)).size(); j++) {
+
+ child_flag = true;
+
MSL_AvailabilityStockFacingGetterSetter data = listDataChild.get(listDataHeader.get(i)).get(j);
String stock = data.getStock();
@@ -631,11 +701,13 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
checkHeaderArray.add(i);
}
//expandableListView.smoothScrollToPosition(i);
- scrollPosition = i;
+ scrollPosition = i + j + childCount;
+ all_flag = false;
flag = false;
+ child_flag = false;
Error_Message = getResources().getString(R.string.faceup_value);
- break;
+ //break;
} else {
if (data.getToggleValue().equals("0")) {
@@ -644,11 +716,13 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
checkHeaderArray.add(i);
}
//expandableListView.smoothScrollToPosition(i);
- scrollPosition = i;
+ scrollPosition = i + j + childCount;
+ all_flag = false;
flag = false;
+ child_flag = false;
Error_Message = getResources().getString(R.string.stock_value);
- break;
+ //break;
}
} else {
//for Egypt
@@ -658,11 +732,13 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
checkHeaderArray.add(i);
}
//expandableListView.smoothScrollToPosition(i);
- scrollPosition = i;
+ scrollPosition = i + j + childCount;
+ all_flag = false;
flag = false;
+ child_flag = false;
Error_Message = getResources().getString(R.string.stock_value);
- break;
+ // break;
}
}
}
@@ -674,24 +750,41 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
checkHeaderArray.add(i);
}
//expandableListView.smoothScrollToPosition(i);
- scrollPosition = i;
+ scrollPosition = i + j + childCount;
+ all_flag = false;
flag = false;
+ child_flag = false;
Error_Message = getResources().getString(R.string.faceup_value);
- break;
+ // break;
}
}
+ if (!child_flag)
+ listTemp.add(data);
+
}
if (flag == false) {
- checkflag = false;
- break;
+ //checkflag = false;
+ listDataHeaderTemp.add(listDataHeader.get(i));
+ listDataChildTemp.put(listDataHeader.get(i), listTemp);
+
+ //break;
} else {
- checkflag = true;
+ childCount = childCount + listDataChild.get(listDataHeader.get(i)).size();
+ //checkflag = true;
}
}
- return checkflag;
+ if (!all_flag) {
+ adapter = new ExpandableListAdapter(this, listDataHeaderTemp, listDataChildTemp);
+ expandableListView.setAdapter(adapter);
+ checkflag = false;
+ } else {
+ checkflag = true;
+ }
+
+ return all_flag;
}
@@ -699,10 +792,10 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
public void onBackPressed() {
//super.onBackPressed();
- AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
+ /*AlertDialog.Builder builder = new AlertDialog.Builder(MSL_Availability_StockFacingActivity.this);
builder.setTitle(getResources().getString(R.string.dialog_title));
builder.setMessage(getResources().getString(R.string.data_will_be_lost)).setCancelable(false)
- .setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
+ .setPositiveButton(getResources().getString(R.string.yes), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//adapter.notifyDataSetChanged();
@@ -717,14 +810,36 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
}
})
- .setNegativeButton(getResources().getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ .setNegativeButton(getResources().getString(R.string.no), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog alert = builder.create();
- alert.show();
+ alert.show();*/
+ if (editFlag) {
+ CommonFunctions.showAlertDialog(MSL_Availability_StockFacingActivity.this, getResources().getString(R.string.data_will_be_lost));
+ } else {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+
+
+ /* if(flag){
+ //adapter.notifyDataSetChanged();
+ if (!validateData(hashMapListHeaderData, hashMapListChildData)) {
+
+ if (!camera_allow.equals("1")) {
+ db.deletePlanogramListStoreAndCategorywise(store_id, categoryId,
+ planogramShelfHeaderDataList, planogramHashMapListChildData);
+ }
+ }
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }*/
+
+
}
public class ExpandableListAdapter extends BaseExpandableListAdapter {
@@ -916,35 +1031,38 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
holder.toggle_available.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- if(buttonView.isPressed()){
- if (isChecked) {
- childData.setToggleValue("1");
- //for Egypt
- if (country_id.equals("6")) {
- finalHolder.stock.setVisibility(View.VISIBLE);
- } else {
- finalHolder.stock.setVisibility(View.GONE);
- }
+ if (buttonView.isPressed()) {
+
+ editFlag = true;
+
+ if (isChecked) {
+ childData.setToggleValue("1");
+ //for Egypt
+ if (country_id.equals("6")) {
+ finalHolder.stock.setVisibility(View.VISIBLE);
+ } else {
+ finalHolder.stock.setVisibility(View.GONE);
+ }
/*childData.setStock("");
childData.setFacing("");*/
- } else {
+ } else {
/* childData.setStock("");
childData.setFacing("");*/
- childData.setToggleValue("0");
- finalHolder.stock.setVisibility(View.VISIBLE);
+ childData.setToggleValue("0");
+ finalHolder.stock.setVisibility(View.VISIBLE);
- //If MBQ Value is 0
- if (Integer.parseInt(childData.getMbq()) == 0) {
- childData.setStock("0");
- childData.setFacing("0");
- } else {
- //for Egypt
- if (country_id.equals("6")) {
- childData.setStock("");
- childData.setFacing("");
- }
- }
+ //If MBQ Value is 0
+ if (Integer.parseInt(childData.getMbq()) == 0) {
+ childData.setStock("0");
+ childData.setFacing("0");
+ } else {
+ //for Egypt
+ if (country_id.equals("6")) {
+ childData.setStock("");
+ childData.setFacing("");
+ }
+ }
/* else {
if (finalHolder.facing.getText().toString() != null && !finalHolder.facing.getText().toString().equals("")) {
@@ -955,11 +1073,11 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
}
}
}*/
- }
+ }
- expandableListView.clearFocus();
- expandableListView.invalidateViews();
- }
+ expandableListView.clearFocus();
+ expandableListView.invalidateViews();
+ }
}
});
@@ -988,7 +1106,7 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
/*if (!childData.getFacing().equals("") && Integer.parseInt(stock) >= 0 && Integer.parseInt(childData.getFacing()) < Integer.parseInt(stock)) {
}*/
-
+ editFlag = true;
if (!edStock.equals("")) {
String stock = edStock;
@@ -1094,6 +1212,8 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
final EditText caption = (EditText) v;
String edFaceup = caption.getText().toString().replaceFirst("^0+(?!$)", "");
+ editFlag = true;
+
if (edFaceup != null && !edFaceup.equals("") && !edFaceup.equals(".")) {
//int num = Integer.parseInt(edFaceup);
double faceup = Double.parseDouble(edFaceup);
@@ -1334,7 +1454,7 @@ public class MSL_Availability_StockFacingActivity extends AppCompatActivity {
}
//for Egypt
- if(country_id.equals("6")){
+ if (country_id.equals("6")) {
if (holder.stock.getText().toString().equals("")) {
holder.stock.setBackgroundColor(getResources().getColor(R.color.white));
holder.stock.setHintTextColor(getResources().getColor(android.R.color.holo_red_dark));
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java
index 8437f45..79d4890 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/PromoComplianceActivity.java
@@ -60,7 +60,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
Spinner sp_promo;
Spinner toggle_add_InStock, toggle_add_promoAnnouncer;
ToggleButton toggle_add_runningPos;
- Button btn_add;
+ //Button btn_add;
ImageView img_addPromotion;
ArrayList promoSkuListData;
@@ -69,7 +69,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
GSKOrangeDB db;
String categoryName, categoryId;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, camera_allow, store_flag_str;
private SharedPreferences preferences;
String str = CommonString.FILE_PATH,
@@ -79,6 +79,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
String gallery_package = "";
String error_msg;
Promo_Compliance_DataGetterSetter cd;
+ FloatingActionButton fab, fab_add;
@Override
@@ -102,8 +103,10 @@ public class PromoComplianceActivity extends AppCompatActivity {
toggle_add_InStock = (Spinner) findViewById(R.id.toggle_add_InStock);
toggle_add_promoAnnouncer = (Spinner) findViewById(R.id.toggle_add_promoAnnouncer);
toggle_add_runningPos = (ToggleButton) findViewById(R.id.toggle_add_runningPos);
- btn_add = (Button) findViewById(R.id.btn_add);
+ //btn_add = (Button) findViewById(R.id.btn_add);
img_addPromotion = (ImageView) findViewById(R.id.img_addPromotion);
+ fab = (FloatingActionButton) findViewById(R.id.fab);
+ fab_add = (FloatingActionButton) findViewById(R.id.fab_add);
db = new GSKOrangeDB(this);
db.open();
@@ -120,6 +123,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
camera_allow = preferences.getString(CommonString.KEY_CAMERA_ALLOW, "");
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
//Intent data
categoryName = getIntent().getStringExtra("categoryName");
@@ -283,7 +287,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
}
}
- btn_add.setOnClickListener(new View.OnClickListener() {
+ fab_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
if (!cd.getSp_promo().equals("0")) {
@@ -330,7 +334,7 @@ public class PromoComplianceActivity extends AppCompatActivity {
}
});
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
@@ -431,11 +435,24 @@ public class PromoComplianceActivity extends AppCompatActivity {
//Promo SKU List
promoSkuListData = db.getPromoComplianceSkuAfterData(store_id, categoryId);
if (!(promoSkuListData.size() > 0)) {
- promoSkuListData = db.getPromoComplianceSkuData(store_id, categoryId);
+
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ promoSkuListData = db.getPromoComplianceSkuData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION_ADHOC);
+ }
+ else {
+ promoSkuListData = db.getPromoComplianceSkuData(store_id, categoryId, CommonString.TABLE_MAPPING_PROMOTION);
+ }
+
}
//Promo Spinner List
- promoSpinnerListData = db.getPromoSpinnerData(store_id, categoryId);
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)){
+ promoSpinnerListData = db.getPromoSpinnerData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION_ADHOC);
+ }
+ else {
+ promoSpinnerListData = db.getPromoSpinnerData(store_id, categoryId, CommonString.TABLE_MAPPING_ADDITIONAL_PROMOTION);
+ }
+
ArrayAdapter sp_promo_adapter = new ArrayAdapter<>(PromoComplianceActivity.this, android.R.layout.simple_list_item_1);
for (int i = 0; i < promoSpinnerListData.size(); i++) {
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java
index 8672cdb..516c57a 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/Stock_FacingActivity.java
@@ -180,6 +180,21 @@ public class Stock_FacingActivity extends AppCompatActivity {
}*/
if (validateData(hashMapListHeaderData, hashMapListChildData)) {
+
+ db.open();
+ //Stock Facing insert or update
+ if (db.checkStockAndFacingData(store_id, categoryId)) {
+ db.updateStockAndFacing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData);
+ Snackbar.make(view, getResources().getString(R.string.update_message), Snackbar.LENGTH_LONG).setAction("Action", null).show();
+ } else {
+ db.InsertStock_Facing(store_id, categoryId, hashMapListHeaderData, hashMapListChildData);
+ Snackbar.make(view, getResources().getString(R.string.save_message), Snackbar.LENGTH_LONG).setAction("Action", null).show();
+ //Toast.makeText(getApplicationContext(), "Data has been saved", Toast.LENGTH_LONG).show();
+ }
+
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+
AlertDialog.Builder builder = new AlertDialog.Builder(Stock_FacingActivity.this);
builder.setMessage(getResources().getString(R.string.check_save_message))
.setCancelable(false)
@@ -1176,9 +1191,9 @@ public class Stock_FacingActivity extends AppCompatActivity {
ArrayList mappingPlanogramList;
if (country_id.equals("7")) {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id);
+ mappingPlanogramList= db.getMappingPlanogramData(categoryId, null, null, store_id, CommonString.TABLE_MAPPING_PLANOGRAM_STORE_WISE);
} else {
- mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null);
+ mappingPlanogramList= db.getMappingPlanogramData(categoryId, storeType_id, class_id, null, CommonString.TABLE_MAPPING_PLANOGRAM);
}
//ImageView img_planogram = (ImageView) dialog.findViewById(R.id.img_planogram);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java
index d946a24..3c3288d 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/gsk_dailyentry/StoreWisePerformanceActivity.java
@@ -43,7 +43,7 @@ public class StoreWisePerformanceActivity extends AppCompatActivity {
StoreWisePerformaceAdapter adapter;
GSKOrangeDB db;
- String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id;
+ String store_id, visit_date, username, intime, date, keyAccount_id, class_id, storeType_id, country_id, store_flag_str;
private SharedPreferences preferences;
@@ -71,6 +71,7 @@ public class StoreWisePerformanceActivity extends AppCompatActivity {
class_id = preferences.getString(CommonString.KEY_CLASS_ID, "");
storeType_id = preferences.getString(CommonString.KEY_STORETYPE_ID, "");
country_id = preferences.getString(CommonString.KEY_COUNTRY_ID, null);
+ store_flag_str = preferences.getString(CommonString.KEY_STORE_FLAG, null);
toolbar.setTitle(getResources().getString(R.string.title_activity_store_wise_performance));
setSupportActionBar(toolbar);
@@ -131,7 +132,13 @@ public class StoreWisePerformanceActivity extends AppCompatActivity {
try {
CommonFunctions.updateLangResources(getApplicationContext(),preferences.getString(CommonString.KEY_LANGUAGE, ""));
- storeWisePerformanceList = db.getStoreWisePerformance(store_id);
+ if(store_flag_str.equalsIgnoreCase(CommonString.FROM_DEVIATION)) {
+ storeWisePerformanceList = db.getStoreWisePerformance(store_id, CommonString.TABLE_STORE_PERFORMANCE_NEW_ADHOC);
+ }
+ else {
+ storeWisePerformanceList = db.getStoreWisePerformance(store_id, "STORE_PERFORMANCE_NEW");
+
+ }
adapter = new StoreWisePerformaceAdapter(StoreWisePerformanceActivity.this, storeWisePerformanceList);
recyclerView.setAdapter(adapter);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java
new file mode 100644
index 0000000..4a036f3
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java
@@ -0,0 +1,7 @@
+package cpm.com.gskmtorange.interfaces;
+
+public interface DialogCallbackListener {
+
+ public void onSelect(boolean flag);
+ public void onSave(boolean flag);
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java
new file mode 100644
index 0000000..e26ffb0
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java
@@ -0,0 +1,427 @@
+package cpm.com.gskmtorange.password;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.graphics.drawable.ColorDrawable;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.preference.PreferenceManager;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.view.View;
+import android.view.Window;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import com.crashlytics.android.Crashlytics;
+
+import org.ksoap2.SoapEnvelope;
+import org.ksoap2.serialization.SoapObject;
+import org.ksoap2.serialization.SoapSerializationEnvelope;
+import org.ksoap2.transport.HttpTransportSE;
+
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.util.regex.Pattern;
+
+import cpm.com.gskmtorange.LoginActivity;
+import cpm.com.gskmtorange.R;
+import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.messgae.AlertMessage;
+
+public class ChangePasswordActivity extends AppCompatActivity implements View.OnClickListener {
+
+ EditText et_old_password, et_new_password, et_confirm_password;
+ Button btn_submit;
+ ImageView img_info;
+
+ private SharedPreferences preferences = null;
+ private SharedPreferences.Editor editor = null;
+
+ String user_id;
+ String new_pw, old_password;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_change_password);
+ Toolbar toolbar = findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);
+
+ et_old_password = (EditText) findViewById(R.id.et_old_password);
+ et_new_password = (EditText) findViewById(R.id.et_new_password);
+ et_confirm_password = (EditText) findViewById(R.id.et_confirm_password);
+ btn_submit = (Button) findViewById(R.id.btn_submit);
+ img_info = (ImageView) findViewById(R.id.img_info);
+
+ preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ editor = preferences.edit();
+
+ user_id = preferences.getString(CommonString.KEY_USERNAME, "");
+ old_password = preferences.getString(CommonString.KEY_PASSWORD, "");
+
+ //new password
+ et_new_password.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ String result = s.toString().replaceAll(" ", "");
+ if (!s.toString().equals(result)) {
+ et_new_password.setText(result);
+ et_new_password.setSelection(result.length());
+ et_new_password.setError(getString(R.string.space_not_allowed_in_password));
+ et_new_password.requestFocus();
+ // alert the user
+ }
+ }
+ });
+
+ //confirm password
+ et_confirm_password.addTextChangedListener(new TextWatcher() {
+ @Override
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable s) {
+ String result = s.toString().replaceAll(" ", "");
+ if (!s.toString().equals(result)) {
+ et_confirm_password.setText(result);
+ et_confirm_password.setSelection(result.length());
+ et_confirm_password.setError(getString(R.string.space_not_allowed_in_password));
+ et_confirm_password.requestFocus();
+ // alert the user
+ }
+ }
+ });
+
+ img_info.setOnClickListener(this);
+ btn_submit.setOnClickListener(this);
+
+ FloatingActionButton fab = findViewById(R.id.fab);
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+ .setAction("Action", null).show();
+ }
+ });
+ }
+
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+
+ switch (id){
+ case R.id.img_info:
+
+ Dialog dialog = new Dialog(ChangePasswordActivity.this);
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+ dialog.setContentView(R.layout.password_rule_dialog);
+ dialog.show();
+
+ break;
+
+ case R.id.btn_submit:
+
+ if(isValid()){
+
+ }
+
+ break;
+ }
+ }
+
+ boolean isValid(){
+ boolean flag = true;
+
+ boolean cancel = false;
+ View focusView = null;
+
+
+ //New Password
+ new_pw = et_new_password.getText().toString();
+
+ if(new_pw.equals("")){
+ et_new_password.setError(getString(R.string.error_field_required));
+ focusView = et_new_password;
+ cancel = true;
+ }
+ else {
+ //final String PASSWORD_PATTERN = "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
+ /* if(!PASSWORD_PATTERN.matches(new_pw)){
+ et_new_password.setError(getString(R.string.invalid_password));
+ focusView = et_new_password;
+ cancel = true;
+ }*/
+
+ Pattern textPattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%])(?=.*\\d).+$");
+
+ if(new_pw.equals(old_password)){
+ et_new_password.setError(getString(R.string.new_password_not_equal_to_old_password));
+ focusView = et_new_password;
+ cancel = true;
+ }
+ else if(new_pw.length()>=6 && new_pw.length()<=8 && textPattern.matcher(new_pw).matches()){
+ //New Password
+ String confirm_pw = et_confirm_password.getText().toString();
+ if(confirm_pw.equals("")){
+ et_confirm_password.setError(getString(R.string.error_field_required));
+ focusView = et_confirm_password;
+ cancel = true;
+ }
+ else if(!confirm_pw.equals(new_pw)){
+ et_confirm_password.setError(getString(R.string.password_and_confirm_password_not_match));
+ focusView = et_confirm_password;
+ cancel = true;
+ }
+ else {
+ new AuthenticateTask().execute();
+ }
+
+ }
+ else {
+ et_new_password.setError(getString(R.string.invalid_password));
+ focusView = et_new_password;
+ cancel = true;
+ }
+
+ }
+
+ //Old Password
+ String old_pw = et_old_password.getText().toString().trim();
+
+ if(old_pw.equals("")){
+ et_old_password.setError(getString(R.string.error_field_required));
+ focusView = et_old_password;
+ cancel = true;
+ }
+ else {
+
+
+
+ if (!old_password.equals("") && !old_pw.equals(old_password)) {
+ et_old_password.setError(getString(R.string.error_incorrect_password));
+ focusView = et_old_password;
+ cancel = true;
+ }
+ }
+
+ if (cancel) {
+ // There was an error; don't attempt login and focus the first
+ // form field with an error.
+ focusView.requestFocus();
+
+ } else{
+
+ }
+
+
+ return !cancel;
+ }
+
+ private class AuthenticateTask extends AsyncTask {
+ private ProgressDialog dialog = null;
+
+ @Override
+ protected void onPreExecute() {
+
+ super.onPreExecute();
+
+ dialog = new ProgressDialog(ChangePasswordActivity.this);
+ dialog.setTitle("Login");
+ dialog.setMessage("Authenticating....");
+ dialog.setCancelable(false);
+ dialog.show();
+ }
+
+ @Override
+ protected String doInBackground(Void... params) {
+
+ try {
+
+ String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]"
+ + user_id + "[/USER_ID]" + "[OLD_PASSWORD]" + old_password
+ + "[/OLD_PASSWORD]" + "[NEW_PASSWORD]" + new_pw
+ + "[/NEW_PASSWORD]" + "[/USER_DATA][/DATA]";
+
+ SoapObject request = new SoapObject(CommonString.NAMESPACE,
+ CommonString.METHOD_UPDATE_PASSWORD);
+ request.addProperty("onXML", userauth_xml);
+
+ SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
+ SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ HttpTransportSE androidHttpTransport = new HttpTransportSE(
+ CommonString.URL);
+
+ androidHttpTransport.call(CommonString.SOAP_ACTION_UPDATE_PASSWORD,
+ envelope);
+
+ Object result = (Object) envelope.getResponse();
+
+ if (result.toString()
+ .equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
+
+ return CommonString.KEY_SUCCESS;
+
+ } else if (result.toString()
+ .equalsIgnoreCase(CommonString.KEY_FAILURE)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_FAILURE, false);
+ }
+ });
+
+ } else if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_FALSE)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_FALSE, false);
+ }
+ });
+
+ } else if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_CHANGED)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ //showAlert(CommonString.MESSAGE_CHANGED);
+ }
+ });
+
+ } else {
+
+ }
+
+ return "";
+
+ } catch (MalformedURLException e) {
+
+ /* final AlertMessage message = new AlertMessage(
+ LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION,
+ "acra_login", e);
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ //showAlert(CommonString.MESSAGE_EXCEPTION);
+ }
+ });*/
+
+ } catch (IOException e) {
+ final AlertMessage message = new AlertMessage(
+ ChangePasswordActivity.this,
+ AlertMessage.MESSAGE_SOCKETEXCEPTION, "socket_login", e);
+ } catch (Exception e) {
+ /* final AlertMessage message = new AlertMessage(
+ LoginActivity.this, AlertMessage.MESSAGE_EXCEPTION,
+ "acra_login", e);*/
+ Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString());
+ Crashlytics.logException(e.getCause());
+ Crashlytics.logException(new Exception("My custom login Exception"));
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+ //showAlert(CommonString.MESSAGE_EXCEPTION);
+ }
+ });
+ }
+ return "";
+
+ }
+
+ @Override
+ protected void onPostExecute(String result) {
+
+ super.onPostExecute(result);
+
+ //Stop performance trace
+ //myTrace.stop();
+
+ if (result.equals(CommonString.KEY_SUCCESS)) {
+
+ // PUT IN PREFERENCES
+
+ editor.putString(CommonString.KEY_PASSWORD, new_pw);
+
+ editor.commit();
+
+ dialog.dismiss();
+ showAlert(getString(R.string.password_updated_successfully), true);
+ }
+ else {
+ dialog.dismiss();
+ showAlert(getString(R.string.error), true);
+ }
+
+ }
+
+ }
+
+ public void showAlert(String str, final boolean flag_finish) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(ChangePasswordActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(str).setCancelable(false)
+ .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ if(flag_finish){
+ Intent i = new Intent(ChangePasswordActivity.this, LoginActivity.class);
+ // set the new task and clear flags
+ i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ startActivity(i);
+ }
+
+ /* Intent i = new Intent(activity, StorelistActivity.class);
+ activity.startActivity(i);
+ activity.finish();*/
+
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java
new file mode 100644
index 0000000..b4b6826
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java
@@ -0,0 +1,1206 @@
+package cpm.com.gskmtorange.password;
+
+import android.Manifest;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.graphics.Typeface;
+import android.graphics.drawable.ColorDrawable;
+import android.location.Location;
+import android.location.LocationManager;
+import android.os.AsyncTask;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Environment;
+import android.preference.PreferenceManager;
+import android.support.annotation.NonNull;
+import android.support.design.widget.FloatingActionButton;
+import android.support.design.widget.Snackbar;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.content.ContextCompat;
+import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.Toolbar;
+import android.view.Gravity;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.Toast;
+
+import com.crashlytics.android.Crashlytics;
+import com.google.android.gms.common.ConnectionResult;
+import com.google.android.gms.common.GooglePlayServicesUtil;
+import com.google.android.gms.common.api.GoogleApiClient;
+import com.google.android.gms.common.api.PendingResult;
+import com.google.android.gms.common.api.ResultCallback;
+import com.google.android.gms.common.api.Status;
+import com.google.android.gms.location.LocationListener;
+import com.google.android.gms.location.LocationRequest;
+import com.google.android.gms.location.LocationServices;
+import com.google.android.gms.location.LocationSettingsRequest;
+import com.google.android.gms.location.LocationSettingsResult;
+import com.google.android.gms.location.LocationSettingsStatusCodes;
+import com.google.android.gms.maps.model.LatLng;
+import com.google.firebase.analytics.FirebaseAnalytics;
+import com.google.firebase.perf.FirebasePerformance;
+import com.google.firebase.perf.metrics.Trace;
+import com.google.gson.Gson;
+
+import org.ksoap2.SoapEnvelope;
+import org.ksoap2.serialization.SoapObject;
+import org.ksoap2.serialization.SoapSerializationEnvelope;
+import org.ksoap2.transport.HttpTransportSE;
+import org.xmlpull.v1.XmlPullParser;
+import org.xmlpull.v1.XmlPullParserException;
+import org.xmlpull.v1.XmlPullParserFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.MalformedURLException;
+import java.util.List;
+
+import cpm.com.gskmtorange.LoginActivity;
+import cpm.com.gskmtorange.MainActivity;
+import cpm.com.gskmtorange.R;
+import cpm.com.gskmtorange.SelectLanguageActivity;
+import cpm.com.gskmtorange.autoupdate.AutoUpdateActivity;
+import cpm.com.gskmtorange.blurlockview.BlurLockView;
+import cpm.com.gskmtorange.blurlockview.Directions.HideType;
+import cpm.com.gskmtorange.blurlockview.Directions.ShowType;
+import cpm.com.gskmtorange.blurlockview.Eases.EaseType;
+import cpm.com.gskmtorange.blurlockview.Password;
+import cpm.com.gskmtorange.constant.CommonFunctions;
+import cpm.com.gskmtorange.constant.CommonString;
+import cpm.com.gskmtorange.xmlGetterSetter.FailureGetterSetter;
+import cpm.com.gskmtorange.xmlGetterSetter.LoginGetterSetter;
+import cpm.com.gskmtorange.xmlHandlers.XMLHandlers;
+
+public class MPinActivity extends AppCompatActivity implements
+ View.OnClickListener,
+ BlurLockView.OnPasswordInputListener,
+ BlurLockView.OnLeftButtonClickListener,GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
+
+ BlurLockView blurLockView;
+ ImageView imageView1;
+ String pin = "";
+ boolean IS_PASSWORD_CHECK;
+
+ private SharedPreferences preferences = null;
+ private SharedPreferences.Editor editor = null;
+
+ private Dialog dialog;
+
+ String userId, password, app_ver;
+ int eventType;
+ LoginGetterSetter lgs = null;
+ FirebaseAnalytics mFirebaseAnalytics;
+ static int counter = 1;
+ Trace myTrace;
+ private int versionCode;
+
+ private static final int MY_PERMISSIONS_REQUEST_CAMERA = 10;
+ private static final int MY_PERMISSIONS_REQUEST_LOCATION = 11;
+ private static final int MY_PERMISSIONS_REQUEST_STORAGE_READ = 12;
+ private static final int MY_PERMISSIONS_REQUEST_STORAGE_WRITE = 14;
+
+ GoogleApiClient mGoogleApiClient;
+ private static int UPDATE_INTERVAL = 200; // 5 sec
+ private static int FATEST_INTERVAL = 100; // 1 sec
+ private static int DISPLACEMENT = 1; // 10 meters
+ private static final int REQUEST_LOCATION = 1;
+ private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000;
+ private Location mLastLocation;
+ private LocationRequest mLocationRequest;
+ private Context context;
+
+ double lat = 0.0;
+ double lon = 0.0;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ requestWindowFeature(Window.FEATURE_NO_TITLE);
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ setContentView(R.layout.activity_mpin);
+
+ context = this;
+ /*Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
+ setSupportActionBar(toolbar);*/
+
+ // Obtain the FirebaseAnalytics instance.
+ mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
+ myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
+ myTrace.start();
+
+ IS_PASSWORD_CHECK = getIntent().getBooleanExtra(CommonString.IS_PASSWORD_CHECK, false);
+
+ imageView1 = (ImageView) findViewById(R.id.image_1);
+
+ blurLockView = (BlurLockView) findViewById(R.id.blurlockview);
+
+ preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ editor = preferences.edit();
+
+ try {
+ app_ver = String.valueOf(getPackageManager().getPackageInfo(getPackageName(), 0).versionName);
+
+ // login_version.setText("Parinaam Version " + app_ver);
+ } catch (PackageManager.NameNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // Set the view that need to be blurred
+ blurLockView.setBlurredView(imageView1);
+
+ // Set the password
+ if (IS_PASSWORD_CHECK) {
+ //preferences = PreferenceManager.getDefaultSharedPreferences(this);
+ String mpin = preferences.getString(CommonString.MPIN, null);
+ blurLockView.setCorrectPassword(mpin);
+ blurLockView.setLeftButton("Forgot MPin");
+ blurLockView.setTitle("Please Enter Four Digit MPin");
+ } else {
+ blurLockView.setCorrectPassword("abcd");
+ blurLockView.setLeftButton("Set MPin");
+ blurLockView.setTitle("Please Set Four Digit MPin");
+ }
+
+ blurLockView.setIs_Password_Check_Mode(IS_PASSWORD_CHECK);
+
+
+
+ blurLockView.setRightButton("Clear");
+ blurLockView.setTypeface(getTypeface());
+ blurLockView.setOnLeftButtonClickListener(this);
+ blurLockView.setOnPasswordInputListener(this);
+
+ //blurLockView.setType(getPasswordType(), false);
+ //blurLockView.setPasswordLength(4);
+
+ /* blurLockView.show(
+ getIntent().getIntExtra("SHOW_DURATION", 1000),
+ getShowType(getIntent().getIntExtra("SHOW_DIRECTION", 0)),
+ getEaseType(getIntent().getIntExtra("SHOW_EASE_TYPE", 30)));*/
+ blurLockView.setType(Password.NUMBER, true);
+
+ FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
+ .setAction("Action", null).show();
+ }
+ });
+
+ checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+
+ }
+ checkgpsEnableDevice();
+ }
+
+ private Password getPasswordType() {
+ if ("PASSWORD_NUMBER".equals(getIntent().getStringExtra("PASSWORD_TYPE")))
+ return Password.NUMBER;
+ else if ("PASSWORD_NUMBER".equals(getIntent().getStringExtra("PASSWORD_TYPE")))
+ return Password.TEXT;
+ return Password.NUMBER;
+ }
+
+ private Typeface getTypeface() {
+ if ("SAN".equals(getIntent().getStringExtra("TYPEFACE")))
+ return Typeface.createFromAsset(getAssets(), "fonts/San Francisco Regular.ttf");
+ else if ("DEFAULT".equals(getIntent().getStringExtra("TYPEFACE")))
+ return Typeface.DEFAULT;
+ return Typeface.DEFAULT;
+ }
+
+ @Override
+ public void correct(String inputPassword) {
+
+ if (IS_PASSWORD_CHECK) {
+ userId = preferences.getString(CommonString.KEY_USERNAME, "");
+ password = preferences.getString(CommonString.KEY_PASSWORD, "");
+
+ new AuthenticateTask().execute();
+ } else {
+ Toast.makeText(this,
+ "Correct",
+ Toast.LENGTH_SHORT).show();
+ }
+
+
+ /* blurLockView.hide(
+ getIntent().getIntExtra("HIDE_DURATION", 1000),
+ getHideType(getIntent().getIntExtra("HIDE_DIRECTION", 0)),
+ getEaseType(getIntent().getIntExtra("HIDE_EASE_TYPE", 30)));*/
+ }
+
+ @Override
+ public void incorrect(String inputPassword) {
+
+ if (IS_PASSWORD_CHECK) {
+
+ int incorrect_times = blurLockView.getIncorrectInputTimes();
+ if (++incorrect_times >= 3) {
+ /*Toast.makeText(this,
+ R.string.error_incorrect_password,
+ Toast.LENGTH_SHORT).show();*/
+
+ Snackbar snackbar = Snackbar.make(blurLockView, "Incorrect MPin limit reached", Snackbar.LENGTH_INDEFINITE);
+ View view = snackbar.getView();
+ /*TextView tv = (TextView)view.findViewById(android.support.design.R.id.snackbar_text);
+ tv.setTextColor(Color.RED);*/
+ snackbar.setAction("Reset", new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ editor.putString(CommonString.MPIN, null);
+
+ editor.commit();
+
+ finish();
+ Intent in = new Intent(getApplicationContext(), MPinActivity.class);
+ startActivity(in);
+
+ }
+ });
+ snackbar.setActionTextColor(Color.GREEN);
+ snackbar.show();
+ } else {
+
+ int count = 3 - incorrect_times;
+ String attemt_str;
+ if (count == 1) {
+ attemt_str = ". Attempt left - " + count;
+ } else {
+ attemt_str = ". Attempts left - " + count;
+ }
+
+ String msg = getString(R.string.error_incorrect_pin) + attemt_str;
+ //blurLockView.setIncorrectInputTimes(incorrect_times);
+ Toast.makeText(this,
+ msg,
+ Toast.LENGTH_SHORT).show();
+ }
+
+ } else {
+ pin = inputPassword;
+ }
+
+ }
+
+ @Override
+ public void input(String inputPassword) {
+ pin = inputPassword;
+ }
+
+ @Override
+ public void clear(String remainingPassword) {
+ pin = remainingPassword;
+ }
+
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case R.id.image_1:
+ /* blurLockView.show(
+ getIntent().getIntExtra("SHOW_DURATION", 1000),
+ getShowType(getIntent().getIntExtra("SHOW_DIRECTION", 0)),
+ getEaseType(getIntent().getIntExtra("SHOW_EASE_TYPE", 30)));
+ blurLockView.setType(Password.TEXT, true);*/
+ break;
+ }
+ }
+
+ @Override
+ public void onClick() {
+
+ if (IS_PASSWORD_CHECK) {
+
+ Snackbar snackbar = Snackbar.make(blurLockView, "Need to reset MPin", Snackbar.LENGTH_INDEFINITE);
+ View view = snackbar.getView();
+ /*TextView tv = (TextView)view.findViewById(android.support.design.R.id.snackbar_text);
+ tv.setTextColor(Color.RED);*/
+ snackbar.setAction("Reset", new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+
+ editor.putString(CommonString.MPIN, null);
+
+ editor.commit();
+
+ finish();
+ Intent in = new Intent(getApplicationContext(), LoginActivity.class);
+ startActivity(in);
+
+ }
+ });
+ snackbar.setActionTextColor(Color.GREEN);
+ snackbar.show();
+ } else {
+ if (pin.length() == 4) {
+
+ editor.putString(CommonString.MPIN, pin);
+
+ editor.commit();
+
+ Intent in = new Intent(getApplicationContext(), MainActivity.class);
+ //Intent in = new Intent(getApplicationContext(), OneQADActivity.class);
+
+ startActivity(in);
+
+ finish();
+ } else {
+ Toast.makeText(getApplicationContext(), "Please fill four digit MPin", Toast.LENGTH_SHORT).show();
+ }
+ }
+
+ }
+
+
+ private int downsamepleFactor;
+
+ private ShowType getShowType(int p) {
+ ShowType showType = ShowType.FROM_TOP_TO_BOTTOM;
+ switch (p) {
+ case 0:
+ showType = ShowType.FROM_TOP_TO_BOTTOM;
+ break;
+ case 1:
+ showType = ShowType.FROM_RIGHT_TO_LEFT;
+ break;
+ case 2:
+ showType = ShowType.FROM_BOTTOM_TO_TOP;
+ break;
+ case 3:
+ showType = ShowType.FROM_LEFT_TO_RIGHT;
+ break;
+ case 4:
+ showType = ShowType.FADE_IN;
+ break;
+ }
+ return showType;
+ }
+
+ private HideType getHideType(int p) {
+ HideType hideType = HideType.FROM_TOP_TO_BOTTOM;
+ switch (p) {
+ case 0:
+ hideType = HideType.FROM_TOP_TO_BOTTOM;
+ break;
+ case 1:
+ hideType = HideType.FROM_RIGHT_TO_LEFT;
+ break;
+ case 2:
+ hideType = HideType.FROM_BOTTOM_TO_TOP;
+ break;
+ case 3:
+ hideType = HideType.FROM_LEFT_TO_RIGHT;
+ break;
+ case 4:
+ hideType = HideType.FADE_OUT;
+ break;
+ }
+ return hideType;
+ }
+
+ private EaseType getEaseType(int p) {
+ EaseType easeType = EaseType.Linear;
+ switch (p) {
+ case 0:
+ easeType = EaseType.EaseInSine;
+ break;
+ case 1:
+ easeType = EaseType.EaseOutSine;
+ break;
+ case 2:
+ easeType = EaseType.EaseInOutSine;
+ break;
+ case 3:
+ easeType = EaseType.EaseInQuad;
+ break;
+ case 4:
+ easeType = EaseType.EaseOutQuad;
+ break;
+ case 5:
+ easeType = EaseType.EaseInOutQuad;
+ break;
+ case 6:
+ easeType = EaseType.EaseInCubic;
+ break;
+ case 7:
+ easeType = EaseType.EaseOutCubic;
+ break;
+ case 8:
+ easeType = EaseType.EaseInOutCubic;
+ break;
+ case 9:
+ easeType = EaseType.EaseInQuart;
+ break;
+ case 10:
+ easeType = EaseType.EaseOutQuart;
+ break;
+ case 11:
+ easeType = EaseType.EaseInOutQuart;
+ break;
+ case 12:
+ easeType = EaseType.EaseInQuint;
+ break;
+ case 13:
+ easeType = EaseType.EaseOutQuint;
+ break;
+ case 14:
+ easeType = EaseType.EaseInOutQuint;
+ break;
+ case 15:
+ easeType = EaseType.EaseInExpo;
+ break;
+ case 16:
+ easeType = EaseType.EaseOutExpo;
+ break;
+ case 17:
+ easeType = EaseType.EaseInOutExpo;
+ break;
+ case 18:
+ easeType = EaseType.EaseInCirc;
+ break;
+ case 19:
+ easeType = EaseType.EaseOutCirc;
+ break;
+ case 20:
+ easeType = EaseType.EaseInOutCirc;
+ break;
+ case 21:
+ easeType = EaseType.EaseInBack;
+ break;
+ case 22:
+ easeType = EaseType.EaseOutBack;
+ break;
+ case 23:
+ easeType = EaseType.EaseInOutBack;
+ break;
+ case 24:
+ easeType = EaseType.EaseInElastic;
+ break;
+ case 25:
+ easeType = EaseType.EaseOutElastic;
+ break;
+ case 26:
+ easeType = EaseType.EaseInOutElastic;
+ break;
+ case 27:
+ easeType = EaseType.EaseInBounce;
+ break;
+ case 28:
+ easeType = EaseType.EaseOutBounce;
+ break;
+ case 29:
+ easeType = EaseType.EaseInOutBounce;
+ break;
+ case 30:
+ easeType = EaseType.Linear;
+ break;
+ }
+ return easeType;
+ }
+
+ /*public void showComment(){
+
+ dialog = new Dialog(MPinActivity.this);
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+ dialog.setContentView(R.layout.comment_layout);
+ TextView tv = (TextView) dialog.findViewById(R.id.tv_comment);
+
+ tv.setText("");
+
+ Window window = dialog.getWindow();
+ WindowManager.LayoutParams wlp = window.getAttributes();
+
+ wlp.gravity = Gravity.TOP;
+ //wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
+ window.setAttributes(wlp);
+
+ dialog.show();
+
+ }*/
+
+ /**
+ * Represents an asynchronous login/registration task used to authenticate
+ * the user.
+ */
+
+ /**
+ * Represents an asynchronous login/registration task used to authenticate
+ * the user.
+ */
+
+ private class AuthenticateTask extends AsyncTask {
+ private Dialog dialog;
+
+ @Override
+ protected void onPreExecute() {
+
+ super.onPreExecute();
+
+ dialog = new Dialog(MPinActivity.this);
+ dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
+ dialog.setContentView(R.layout.progress_layout);
+
+ Window window = dialog.getWindow();
+ WindowManager.LayoutParams wlp = window.getAttributes();
+
+ wlp.gravity = Gravity.CENTER;
+ //wlp.flags &= ~WindowManager.LayoutParams.FLAG_DIM_BEHIND;
+ window.setAttributes(wlp);
+
+ dialog.setCancelable(false);
+
+ if (!dialog.isShowing()) {
+ dialog.show();
+ }
+ }
+
+ @Override
+ protected String doInBackground(Void... params) {
+
+ try {
+
+ versionCode = getPackageManager().getPackageInfo(
+ getPackageName(), 0).versionCode;
+
+ String userauth_xml = "[DATA]" + "[USER_DATA][USER_ID]"
+ + userId + "[/USER_ID]" + "[PASSWORD]" + password
+ + "[/PASSWORD]" + "[IN_TIME]" + CommonFunctions.getCurrentTimeWithLanguage(getApplicationContext())
+ + "[/IN_TIME]" + "[LATITUDE]" + lat
+ + "[/LATITUDE]" + "[LONGITUDE]" + lon
+ + "[/LONGITUDE]" + "[APP_VERSION]" + app_ver
+ + "[/APP_VERSION]" + "[ATT_MODE]OnLine[/ATT_MODE]"
+ + "[NETWORK_STATUS]" + "LoginStatus"
+ + "[/NETWORK_STATUS]" + "[/USER_DATA][/DATA]";
+
+ SoapObject request = new SoapObject(CommonString.NAMESPACE,
+ CommonString.METHOD_LOGIN);
+ request.addProperty("onXML", userauth_xml);
+
+ SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
+ SoapEnvelope.VER11);
+ envelope.dotNet = true;
+ envelope.setOutputSoapObject(request);
+
+ HttpTransportSE androidHttpTransport = new HttpTransportSE(
+ CommonString.URL);
+
+ androidHttpTransport.call(CommonString.SOAP_ACTION_LOGIN,
+ envelope);
+
+ Object result = (Object) envelope.getResponse();
+
+ if (result.toString()
+ .equalsIgnoreCase(CommonString.KEY_FAILURE)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_FAILURE);
+ }
+ });
+
+ } else if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_FALSE)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_FALSE);
+ }
+ });
+
+ } else if (result.toString().equalsIgnoreCase(
+ CommonString.KEY_CHANGED)) {
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_CHANGED);
+ }
+ });
+
+ } else {
+
+ XmlPullParserFactory factory = XmlPullParserFactory
+ .newInstance();
+ factory.setNamespaceAware(true);
+ XmlPullParser xpp = factory.newPullParser();
+
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ final FailureGetterSetter failureGetterSetter = XMLHandlers
+ .failureXMLHandler(xpp, eventType);
+
+ if (failureGetterSetter.getStatus().equalsIgnoreCase(
+ CommonString.KEY_FAILURE)) {
+ /* final AlertMessage message = new AlertMessage(
+ MPinActivity.this, CommonString.METHOD_LOGIN
+ + failureGetterSetter.getErrorMsg(),
+ "login", null);*/
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ showAlert(CommonString.METHOD_LOGIN
+ + failureGetterSetter.getErrorMsg());
+ }
+ });
+ } else {
+
+ try {
+ // For String source
+
+ xpp.setInput(new StringReader(result.toString()));
+ xpp.next();
+ eventType = xpp.getEventType();
+ lgs = XMLHandlers.loginXMLHandler(xpp, eventType);
+
+ } catch (XmlPullParserException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // PUT IN PREFERENCES
+ editor.putString(CommonString.KEY_USERNAME, userId);
+ editor.putString(CommonString.KEY_PASSWORD, password);
+ editor.putString(CommonString.KEY_VERSION, lgs.getAPP_VERSION());
+
+ editor.putString(CommonString.KEY_PATH, lgs.getAPP_PATH());
+
+ editor.putString(CommonString.KEY_DATE, lgs.getCURRENTDATE());
+ //editor.putString(CommonString.KEY_DATE, "01/25/2019");
+ editor.putString(CommonString.KEY_COUNTRY_ID, lgs.getCOUNTRY_ID());
+
+ editor.commit();
+
+ setDataFromSharedPreferences(lgs);
+
+ Bundle bundle = new Bundle();
+ bundle.putString(FirebaseAnalytics.Param.ITEM_ID, userId);
+ bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, CommonString.KEY_LOGIN_DATA);
+ bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Data");
+ bundle.putString(CommonString.KEY_LANGUAGE, preferences.getString(CommonString.KEY_LANGUAGE, ""));
+ mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
+
+ Crashlytics.setUserIdentifier(userId);
+
+ return CommonString.KEY_SUCCESS;
+
+ }
+ }
+
+ return "";
+
+ } catch (MalformedURLException e) {
+
+ /* final AlertMessage message = new AlertMessage(
+ MPinActivity.this, AlertMessage.MESSAGE_EXCEPTION,
+ "acra_login", e);*/
+
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+
+ showAlert(CommonString.MESSAGE_EXCEPTION);
+ }
+ });
+
+ } catch (IOException e) {
+ /* final AlertMessage message = new AlertMessage(
+ MPinActivity.this,
+ AlertMessage.MESSAGE_SOCKETEXCEPTION, "socket_login", e);*/
+
+ counter++;
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ if (counter < 3) {
+ new AuthenticateTask().execute();
+ } else {
+ showAlert(getString(R.string.nonetwork));
+ counter = 1;
+ }
+ }
+ });
+ } catch (Exception e) {
+ /* final AlertMessage message = new AlertMessage(
+ MPinActivity.this, AlertMessage.MESSAGE_EXCEPTION,
+ "acra_login", e);*/
+ Crashlytics.log(7, CommonString.MESSAGE_EXCEPTION, e.toString());
+ Crashlytics.logException(e.getCause());
+ Crashlytics.logException(new Exception("My custom login Exception"));
+ runOnUiThread(new Runnable() {
+
+ @Override
+ public void run() {
+ showAlert(CommonString.MESSAGE_EXCEPTION);
+ }
+ });
+ }
+ return "";
+
+ }
+
+ @Override
+ protected void onPostExecute(String result) {
+
+ super.onPostExecute(result);
+
+ //Stop performance trace
+ myTrace.stop();
+
+ if (result.equals(CommonString.KEY_SUCCESS)) {
+
+// database.open();
+ if (preferences.getString(CommonString.KEY_VERSION, "").equals(
+ Integer.toString(versionCode))) {
+
+ Intent in = new Intent(getApplicationContext(), MainActivity.class);
+ in.putExtra(CommonString.IS_PASSWORD_CHECK, false);
+ startActivity(in);
+ finish();
+
+
+ } else {
+
+ Intent intent = new Intent(getBaseContext(),
+ AutoUpdateActivity.class);
+
+ intent.putExtra(CommonString.KEY_PATH,
+ preferences.getString(CommonString.KEY_PATH, ""));
+ startActivity(intent);
+ finish();
+ }
+
+ //For SA Only
+ /*if (preferences.getString(CommonString.KEY_LANGUAGE, "").equals("")) {
+
+ Intent intent = new Intent(getBaseContext(),
+ SelectLanguageActivity.class);
+
+ intent.putExtra(CommonString.KEY_LOGIN_DATA, lgs);
+ startActivity(intent);
+
+ finish();
+ } else {
+
+ CommonFunctions.updateLangResources(getApplicationContext(), preferences.getString(CommonString.KEY_LANGUAGE, ""));
+
+ Intent intent = new Intent(getBaseContext(),
+ MainActivity.class);
+ startActivity(intent);
+
+ finish();
+
+ //uploadPreviousImages();
+ }*/
+ }
+ dialog.dismiss();
+ }
+
+ }
+
+ public void showAlert(String str) {
+
+ AlertDialog.Builder builder = new AlertDialog.Builder(MPinActivity.this);
+ builder.setTitle("Parinaam");
+ builder.setMessage(str).setCancelable(false)
+ .setPositiveButton("OK", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int id) {
+
+ /* Intent i = new Intent(activity, StorelistActivity.class);
+ activity.startActivity(i);
+ activity.finish();*/
+ finish();
+
+ }
+ });
+ AlertDialog alert = builder.create();
+ alert.show();
+ }
+
+ /*public String getCurrentTimeNotUsed() {
+
+ Calendar m_cal = Calendar.getInstance();
+
+ SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
+ String intime = formatter.format(m_cal.getTime());
+
+ return intime;
+ }*/
+
+ private static String arabicToenglish(String number) {
+ char[] chars = new char[number.length()];
+ for (int i = 0; i < number.length(); i++) {
+ char ch = number.charAt(i);
+ if (ch >= 0x0660 && ch <= 0x0669)
+ ch -= 0x0660 - '0';
+ else if (ch >= 0x06f0 && ch <= 0x06F9)
+ ch -= 0x06f0 - '0';
+ chars[i] = ch;
+ }
+ return new String(chars);
+ }
+
+ private void setDataFromSharedPreferences(LoginGetterSetter lgs) {
+ Gson gson = new Gson();
+ String jsonCurProduct = gson.toJson(lgs);
+
+ //SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(CommonString.KEY_LOOGIN_PREF, Context.MODE_PRIVATE);
+ SharedPreferences.Editor editor = preferences.edit();
+
+ editor.putString(CommonString.KEY_LOOGIN_PREF, jsonCurProduct);
+ editor.commit();
+ }
+
+ //permission and location related
+ void checkAppPermission(String permission, int requestCode) {
+
+ boolean permission_flag = false;
+ // Here, thisActivity is the current activity
+ if (ContextCompat.checkSelfPermission(MPinActivity.this,
+ permission)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ // Permission is not granted
+ // Should we show an explanation?
+ if (ActivityCompat.shouldShowRequestPermissionRationale(MPinActivity.this,
+ permission)) {
+ // Show an explanation to the user *asynchronously* -- don't block
+ // this thread waiting for the user's response! After the user
+ // sees the explanation, try again to request the permission.
+ showOnPermissiondenied(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA, 1);
+ } else {
+ // No explanation needed; request the permission
+ ActivityCompat.requestPermissions(MPinActivity.this,
+ new String[]{permission},
+ requestCode);
+
+ // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
+ // app-defined int constant. The callback method gets the
+ // result of the request.
+ }
+ } else {
+ // Permission has already been granted
+ if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) {
+ checkAppPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_WRITE);
+ } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_WRITE) {
+ checkAppPermission(Manifest.permission.READ_EXTERNAL_STORAGE, MY_PERMISSIONS_REQUEST_STORAGE_READ);
+ } else if (requestCode == MY_PERMISSIONS_REQUEST_STORAGE_READ) {
+ checkAppPermission(Manifest.permission.ACCESS_FINE_LOCATION, MY_PERMISSIONS_REQUEST_LOCATION);
+ } else {
+
+ // Create a Folder for Images
+
+ File file = new File(Environment.getExternalStorageDirectory(), ".GSK_MT_ORANGE_IMAGES");
+ if (!file.isDirectory()) {
+ file.mkdir();
+ }
+ File file_planogram = new File(Environment.getExternalStorageDirectory(), "GSK_MT_ORANGE_Planogram_Images");
+ if (!file_planogram.isDirectory()) {
+ file_planogram.mkdir();
+ }
+
+ if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
+ ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+
+ if (checkPlayServices()) {
+ // Building the GoogleApi client
+ buildGoogleApiClient();
+
+ createLocationRequest();
+ }
+
+ // Create an instance of GoogleAPIClient.
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+
+ //attemptLogin();
+ }
+
+ }
+ }
+
+ void showOnPermissiondenied(final String permissionsRequired, final int request_code, final int check) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(MPinActivity.this);
+ builder.setTitle("Need Multiple Permissions");
+ builder.setMessage("This app needs Camera, Storage and Location permissions.");
+ builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ if (check == 0) {
+ checkAppPermission(permissionsRequired, request_code);
+ } else {
+ ActivityCompat.requestPermissions(MPinActivity.this,
+ new String[]{permissionsRequired},
+ request_code);
+ }
+
+ }
+ });
+ /* builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ dialog.cancel();
+ finish();
+ }
+ });*/
+ builder.show();
+ }
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+
+ checkAppPermission(Manifest.permission.CAMERA, MY_PERMISSIONS_REQUEST_CAMERA);
+
+ /*if (requestCode == PERMISSIONS_REQUEST_READ_PHONE_STATE
+ && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
+ imeiNumbers = imei.getDeviceImei();
+ }
+
+ */
+
+ if (Build.VERSION.SDK_INT >= 23 && ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
+ ContextCompat.checkSelfPermission(getApplicationContext(),
+ android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+
+ if (checkPlayServices()) {
+ // Building the GoogleApi client
+ buildGoogleApiClient();
+
+ createLocationRequest();
+ }
+
+ // Create an instance of GoogleAPIClient.
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(this)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+
+ }
+
+ private boolean checkPlayServices() {
+ int resultCode = GooglePlayServicesUtil
+ .isGooglePlayServicesAvailable(this);
+ if (resultCode != ConnectionResult.SUCCESS) {
+ if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
+ GooglePlayServicesUtil.getErrorDialog(resultCode, this,
+ PLAY_SERVICES_RESOLUTION_REQUEST).show();
+ } else {
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.notsuppoted)
+ , Toast.LENGTH_LONG)
+ .show();
+ finish();
+ }
+ return false;
+ }
+ return true;
+ }
+
+ protected synchronized void buildGoogleApiClient() {
+ if (mGoogleApiClient == null) {
+ mGoogleApiClient = new GoogleApiClient.Builder(context)
+ .addConnectionCallbacks(this)
+ .addOnConnectionFailedListener(this)
+ .addApi(LocationServices.API)
+ .build();
+ }
+ }
+
+ protected void createLocationRequest() {
+ mLocationRequest = new LocationRequest();
+ mLocationRequest.setInterval(UPDATE_INTERVAL);
+ mLocationRequest.setFastestInterval(FATEST_INTERVAL);
+ mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
+ mLocationRequest.setSmallestDisplacement(DISPLACEMENT);
+ }
+
+ @Override
+ public void onConnectionSuspended(int i) {
+ mGoogleApiClient.connect();
+ }
+
+ @Override
+ public void onLocationChanged(Location location) {
+ LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
+
+ // Toast.makeText(this, " WORKS_lat_lon " + latLng, Toast.LENGTH_LONG).show();
+ // updateLocation(latLng);
+ if (mGoogleApiClient != null) {
+ LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
+ }
+
+ }
+
+ protected void startLocationUpdates() {
+
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
+ || ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+ if (mGoogleApiClient != null) {
+ LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this);
+ // Toast.makeText(getApplicationContext(), "startLocation - Lat" + lat + "Long" + lon, Toast.LENGTH_LONG).show();
+ }
+ }
+
+ }
+
+ public static int distFrom(double lat1, double lng1, double lat2, double lng2) {
+ double earthRadius = 6371000; //meters
+ double dLat = Math.toRadians(lat2 - lat1);
+ double dLng = Math.toRadians(lng2 - lng1);
+ double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
+ Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
+ Math.sin(dLng / 2) * Math.sin(dLng / 2);
+ double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
+ int dist = (int) (earthRadius * c);
+
+ return dist;
+ }
+
+ @Override
+ public void onConnected(Bundle bundle) {
+ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
+ mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
+ || ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
+ if (mLastLocation != null) {
+ lat = mLastLocation.getLatitude();
+ lon = mLastLocation.getLongitude();
+ // Toast.makeText(getApplicationContext(), "onconnected lat-" + lat + " Long-" + lon, Toast.LENGTH_SHORT).show();
+ }
+ startLocationUpdates();
+ }
+ }
+
+ @Override
+ public void onConnectionFailed(ConnectionResult connectionResult) {
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+ }
+ }
+
+ protected void onStart() {
+ super.onStart();
+ if (mGoogleApiClient != null) {
+ mGoogleApiClient.connect();
+ }
+ }
+
+ private boolean checkgpsEnableDevice() {
+ boolean flag = true;
+ if (!hasGPSDevice(context)) {
+ Toast.makeText(context, "Gps not Supported", Toast.LENGTH_SHORT).show();
+ }
+ final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
+ if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) {
+ enableLoc();
+ flag = false;
+ } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER) && hasGPSDevice(context)) {
+ flag = true;
+ }
+ return flag;
+ }
+
+ private boolean hasGPSDevice(Context context) {
+ final LocationManager mgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+ if (mgr == null)
+ return false;
+ final List providers = mgr.getAllProviders();
+ if (providers == null)
+ return false;
+ return providers.contains(LocationManager.GPS_PROVIDER);
+ }
+
+ private void enableLoc() {
+ LocationRequest locationRequest = LocationRequest.create();
+ locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
+ locationRequest.setInterval(30 * 1000);
+ locationRequest.setFastestInterval(5 * 1000);
+ LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder().addLocationRequest(locationRequest);
+ builder.setAlwaysShow(true);
+ if (mGoogleApiClient != null) {
+ PendingResult result = LocationServices.SettingsApi.checkLocationSettings(mGoogleApiClient, builder.build());
+ result.setResultCallback(new ResultCallback() {
+ @Override
+ public void onResult(LocationSettingsResult result) {
+ final Status status = result.getStatus();
+ switch (status.getStatusCode()) {
+ case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
+ try {
+ // Show the dialog by calling startResolutionForResult(),
+ // and check the result in onActivityResult().
+ status.startResolutionForResult((Activity) context, REQUEST_LOCATION);
+ } catch (IntentSender.SendIntentException e) {
+ // Ignore the error.
+ }
+ break;
+ }
+ }
+ });
+ }
+ }
+}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java
new file mode 100644
index 0000000..ee7dc38
--- /dev/null
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java
@@ -0,0 +1,274 @@
+package cpm.com.gskmtorange.progressbar;
+
+import android.animation.Animator;
+import android.animation.Animator.AnimatorListener;
+import android.animation.ObjectAnimator;
+import android.animation.ValueAnimator;
+import android.animation.ValueAnimator.AnimatorUpdateListener;
+import android.content.Context;
+import android.content.res.Resources;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Paint.Style;
+import android.graphics.RectF;
+import android.graphics.Typeface;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.view.animation.LinearInterpolator;
+import android.widget.ProgressBar;
+
+import cpm.com.gskmtorange.R;
+
+
+public class CircularProgressBar extends ProgressBar {
+ private static final String TAG = "CircularProgressBar";
+
+ private static final int STROKE_WIDTH = 20;
+
+ private String mTitle = "";
+ private String mSubTitle = "";
+
+ private int mStrokeWidth = STROKE_WIDTH;
+
+ private final RectF mCircleBounds = new RectF();
+
+ private final Paint mProgressColorPaint = new Paint();
+ private final Paint mBackgroundColorPaint = new Paint();
+ private final Paint mTitlePaint = new Paint();
+ private final Paint mSubtitlePaint = new Paint();
+
+ private boolean mHasShadow = true;
+ private int mShadowColor = Color.BLACK;
+
+ public interface ProgressAnimationListener{
+ public void onAnimationStart();
+ public void onAnimationFinish();
+ public void onAnimationProgress(int progress);
+ }
+
+ public CircularProgressBar(Context context) {
+ super(context);
+ init(null, 0);
+ }
+
+ public CircularProgressBar(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ init(attrs, 0);
+ }
+
+ public CircularProgressBar(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+ init(attrs, defStyle);
+ }
+
+ public void init(AttributeSet attrs, int style){
+ //so that shadow shows up properly for lines and arcs
+ setLayerType(View.LAYER_TYPE_SOFTWARE, null);
+
+ TypedArray a = getContext().obtainStyledAttributes(attrs,
+ R.styleable.CircularProgressBar, style, 0);
+
+ String color;
+ Resources res = getResources();
+
+ this.mHasShadow = a.getBoolean(R.styleable.CircularProgressBar_cpb_hasShadow, true);
+
+ color = a.getString(R.styleable.CircularProgressBar_cpb_progressColor);
+ if(color==null)
+ mProgressColorPaint.setColor(res.getColor(R.color.circular_progress_default_progress));
+ else
+ mProgressColorPaint.setColor(Color.parseColor(color));
+
+ color = a.getString(R.styleable.CircularProgressBar_cpb_backgroundColor);
+ if(color==null)
+ mBackgroundColorPaint.setColor(res.getColor(R.color.circular_progress_default_background));
+ else
+ mBackgroundColorPaint.setColor(Color.parseColor(color));
+
+ color = a.getString(R.styleable.CircularProgressBar_cpb_titleColor);
+ if(color==null)
+ mTitlePaint.setColor(res.getColor(R.color.circular_progress_default_title));
+ else
+ mTitlePaint.setColor(Color.parseColor(color));
+
+ color = a.getString(R.styleable.CircularProgressBar_cpb_subtitleColor);
+ if(color==null)
+ mSubtitlePaint.setColor(res.getColor(R.color.circular_progress_default_subtitle));
+ else
+ mSubtitlePaint.setColor(Color.parseColor(color));
+
+
+ String t = a.getString(R.styleable.CircularProgressBar_cpb_title);
+ if(t!=null)
+ mTitle = t;
+
+ t = a.getString(R.styleable.CircularProgressBar_cpb_subtitle);
+ if(t!=null)
+ mSubTitle = t;
+
+ mStrokeWidth = a.getInt(R.styleable.CircularProgressBar_cpb_strokeWidth, STROKE_WIDTH);
+
+ a.recycle();
+
+
+ mProgressColorPaint.setAntiAlias(true);
+ mProgressColorPaint.setStyle(Paint.Style.STROKE);
+ mProgressColorPaint.setStrokeWidth(mStrokeWidth);
+
+ mBackgroundColorPaint.setAntiAlias(true);
+ mBackgroundColorPaint.setStyle(Paint.Style.STROKE);
+ mBackgroundColorPaint.setStrokeWidth(mStrokeWidth);
+
+ mTitlePaint.setTextSize(60);
+ mTitlePaint.setStyle(Style.FILL);
+ mTitlePaint.setAntiAlias(true);
+ mTitlePaint.setTypeface(Typeface.create("Roboto-Thin", Typeface.NORMAL));
+ mTitlePaint.setShadowLayer(0.1f, 0, 1, Color.GRAY);
+
+ mSubtitlePaint.setTextSize(20);
+ mSubtitlePaint.setStyle(Style.FILL);
+ mSubtitlePaint.setAntiAlias(true);
+ mSubtitlePaint.setTypeface(Typeface.create("Roboto-Thin", Typeface.BOLD));
+ // mSubtitlePaint.setShadowLayer(0.1f, 0, 1, Color.GRAY);
+ }
+
+ @Override
+ protected synchronized void onDraw(Canvas canvas) {
+ canvas.drawArc(mCircleBounds, 0, 360 , false, mBackgroundColorPaint);
+
+ int prog = getProgress();
+ float scale = getMax() > 0 ? (float)prog/getMax() *360: 0;
+
+ if(mHasShadow)
+ mProgressColorPaint.setShadowLayer( 3, 0, 1, mShadowColor);
+ canvas.drawArc(mCircleBounds, 270, scale , false, mProgressColorPaint);
+
+
+ if(!TextUtils.isEmpty(mTitle)){
+ int xPos = (int)(getMeasuredWidth()/2 - mTitlePaint.measureText(mTitle) / 2);
+ int yPos = (int) (getMeasuredHeight()/2);
+
+ float titleHeight = Math.abs(mTitlePaint.descent() + mTitlePaint.ascent());
+ if(TextUtils.isEmpty(mSubTitle)){
+ yPos += titleHeight/2;
+ }
+ canvas.drawText(mTitle, xPos, yPos, mTitlePaint);
+
+ yPos += titleHeight;
+ xPos = (int)(getMeasuredWidth()/2 - mSubtitlePaint.measureText(mSubTitle) / 2);
+
+ canvas.drawText(mSubTitle, xPos, yPos, mSubtitlePaint);
+ }
+
+ super.onDraw(canvas);
+ }
+
+ @Override
+ protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
+ final int height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
+ final int width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
+ final int min = Math.min(width, height);
+ setMeasuredDimension(min+2*STROKE_WIDTH, min+2*STROKE_WIDTH);
+
+ mCircleBounds.set(STROKE_WIDTH, STROKE_WIDTH, min+STROKE_WIDTH, min+STROKE_WIDTH);
+ }
+
+ @Override
+ public synchronized void setProgress(int progress) {
+ super.setProgress(progress);
+
+ // the setProgress super will not change the details of the progress bar
+ // anymore so we need to force an update to redraw the progress bar
+ invalidate();
+ }
+
+ public void animateProgressTo(final int start, final int end, final ProgressAnimationListener listener){
+ if(start!=0)
+ setProgress(start);
+
+ //check
+ final ObjectAnimator progressBarAnimator = ObjectAnimator.ofFloat(this, TRANSLATION_X, start, end);
+ progressBarAnimator.setDuration(1500);
+ // progressBarAnimator.setInterpolator(new AnticipateOvershootInterpolator(2f, 1.5f));
+ progressBarAnimator.setInterpolator(new LinearInterpolator());
+
+ progressBarAnimator.addListener(new AnimatorListener() {
+ @Override
+ public void onAnimationCancel(final Animator animation) {
+ }
+
+ @Override
+ public void onAnimationEnd(final Animator animation) {
+ CircularProgressBar.this.setProgress(end);
+ if(listener!=null)
+ listener.onAnimationFinish();
+ }
+
+ @Override
+ public void onAnimationRepeat(final Animator animation) {
+ }
+
+ @Override
+ public void onAnimationStart(final Animator animation) {
+ if(listener!=null)
+ listener.onAnimationStart();
+ }
+ });
+
+ progressBarAnimator.addUpdateListener(new AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(final ValueAnimator animation) {
+ int progress = ((Float) animation.getAnimatedValue()).intValue();
+ if(progress!=CircularProgressBar.this.getProgress()){
+ Log.d(TAG, progress + "");
+ CircularProgressBar.this.setProgress(progress);
+ if(listener!=null)
+ listener.onAnimationProgress(progress);
+ }
+ }
+ });
+ progressBarAnimator.start();
+ }
+
+ public synchronized void setTitle(String title){
+ this.mTitle = title;
+ invalidate();
+ }
+
+ public synchronized void setSubTitle(String subtitle){
+ this.mSubTitle = subtitle;
+ invalidate();
+ }
+
+ public synchronized void setSubTitleColor(int color){
+ mSubtitlePaint.setColor(color);
+ invalidate();
+ }
+
+ public synchronized void setTitleColor(int color){
+ mTitlePaint.setColor(color);
+ invalidate();
+ }
+
+ public synchronized void setHasShadow(boolean flag){
+ this.mHasShadow = flag;
+ invalidate();
+ }
+
+ public synchronized void setShadow(int color){
+ this.mShadowColor = color;
+ invalidate();
+ }
+
+ public String getTitle(){
+ return mTitle;
+ }
+
+ public boolean getHasShadow(){
+ return mHasShadow;
+ }
+}
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreRouteActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreRouteActivity.java
index 2eeabfe..2c37b9a 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreRouteActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/storeinmap/StoreRouteActivity.java
@@ -9,6 +9,8 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
+import android.support.design.widget.FloatingActionButton;
+import android.support.v4.app.ActivityCompat;
import android.support.v4.app.FragmentActivity;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
@@ -33,6 +35,7 @@ import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.LatLng;
+import com.google.android.gms.maps.model.LatLngBounds;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.gms.maps.model.PolylineOptions;
@@ -52,7 +55,7 @@ import cpm.com.gskmtorange.GetterSetter.StoreBean;
import cpm.com.gskmtorange.R;
import cpm.com.gskmtorange.constant.CommonString;
-public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCallback,GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
+public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCallback, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {
private GoogleMap mMap;
StoreBean store;
@@ -66,16 +69,27 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
private Location mLastLocation;
double latitude = 0.0;
double longitude = 0.0;
- Boolean markerflag=true;
+ Boolean markerflag = true;
+ FloatingActionButton fab_cancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_store_route);
+ fab_cancel = (FloatingActionButton) findViewById(R.id.fab_cancel);
+ fab_cancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finish();
+ overridePendingTransition(R.anim.activity_back_in, R.anim.activity_back_out);
+ }
+ });
store = (StoreBean) getIntent().getSerializableExtra(CommonString.KEY_STORE_LIST);
- store.setLATITUDE("28.5420901");
- store.setLONGITUDE("77.2430997");
+ /*store.setLATITUDE("28.5420901");
+ store.setLONGITUDE("77.2430997");*/
+ /*store.setLATITUDE("28.544055");
+ store.setLONGITUDE("77.264060");*/
// Obtain the SupportMapFragment and get notified when the map is ready to be used.
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
@@ -99,7 +113,7 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
PLAY_SERVICES_RESOLUTION_REQUEST).show();
} else {
- Toast.makeText(getApplicationContext(),getResources().getString(R.string.notsuppoted)
+ Toast.makeText(getApplicationContext(), getResources().getString(R.string.notsuppoted)
, Toast.LENGTH_LONG)
.show();
finish();
@@ -151,7 +165,7 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
mMap = googleMap;
}
- public void showMarker(double lat, double lon){
+ public void showMarker(double lat, double lon) {
// Add a marker and move the camera
LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.marker_view, null, false);
@@ -188,7 +202,7 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
String output = "json";
// Building the url to the web service
- String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters;
+ String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters+"&key=AIzaSyCPo-giwVv5h8AzsbE1IDRsFsPHjVlCm5A";
return url;
@@ -237,6 +251,16 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
@Override
public void onConnected(@Nullable Bundle bundle) {
+ if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
+ // TODO: Consider calling
+ // ActivityCompat#requestPermissions
+ // here to request the missing permissions, and then overriding
+ // public void onRequestPermissionsResult(int requestCode, String[] permissions,
+ // int[] grantResults)
+ // to handle the case where the user grants the permission. See the documentation
+ // for ActivityCompat#requestPermissions for more details.
+ return;
+ }
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
@@ -254,13 +278,19 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
store1.setLATITUDE(latitude+"");
store1.setLONGITUDE(longitude+"");
store1.setSTORE_NAME("Current Location");
- showMarker(store1);
+ showMarker(store1, R.layout.current_marker_view);
- showMarker(store);
+ showMarker(store, R.layout.marker_view);
+
+ LatLngBounds.Builder builder = new LatLngBounds.Builder();
+ builder.include(new LatLng(Double.parseDouble(store.getLATITUDE()), Double.parseDouble(store.getLONGITUDE())));
+ builder.include(new LatLng(latitude, longitude));
+ //mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 48));
+ mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 48));
//destination = new LatLng(mapLat[1], mapLon[1]);
- mMap.moveCamera(CameraUpdateFactory.newLatLng(origin));
- mMap.animateCamera(CameraUpdateFactory.zoomTo(15));
+ /*mMap.moveCamera(CameraUpdateFactory.newLatLng(origin));
+ mMap.animateCamera(CameraUpdateFactory.zoomTo(17));*/
//new GetDirection().execute();
// Getting URL to the Google Directions API
@@ -294,9 +324,9 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
}
- public void showMarker(StoreBean store){
+ public void showMarker(StoreBean store, int layout_resource){
// Add a marker of latest location and move the camera
- LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(R.layout.marker_view, null, false);
+ LinearLayout tv = (LinearLayout) this.getLayoutInflater().inflate(layout_resource, null, false);
TextView desc = (TextView) tv.findViewById(R.id.tv_desc);
desc.setText(store.getSTORE_NAME());
@@ -311,6 +341,7 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
LatLng loc = new LatLng(Double.parseDouble(store.getLATITUDE()), Double.parseDouble(store.getLONGITUDE()));
mMap.addMarker(new MarkerOptions().position(loc).anchor(0.5f, 0.5f).icon(BitmapDescriptorFactory.fromBitmap(bm)));
+
}
protected void onStart() {
@@ -429,8 +460,8 @@ public class StoreRouteActivity extends FragmentActivity implements OnMapReadyCa
// Adding all the points in the route to LineOptions
lineOptions.addAll(points);
- lineOptions.width(10);
- lineOptions.color(Color.parseColor("#64dd17"));
+ lineOptions.width(15);
+ lineOptions.color(Color.parseColor("#5ac614"));
Log.d("onPostExecute","onPostExecute lineoptions decoded");
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java
index e7a39b3..29f13ae 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/PreviousDataUploadActivity.java
@@ -294,7 +294,8 @@ public class PreviousDataUploadActivity extends AppCompatActivity {
if (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) ||
storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) ||
- !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U)) {
+ !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U)||
+ !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_UN)) {
String camera_allow = storeData.getCAMERA_ALLOW();
@@ -1136,6 +1137,8 @@ public class PreviousDataUploadActivity extends AppCompatActivity {
+ "[QUESTION_ID]" + audit_data.get(n).getQUESTION_ID() + "[/QUESTION_ID]"
+ "[ANSWER_ID]" + audit_data.get(n).getANSWER_ID() + "[/ANSWER_ID]"
+ "[ANSWER_IMAGE]" + audit_data.get(n).getCAM_IMAGE() + "[/ANSWER_IMAGE]"
+ + "[ANSWER_IMAGE2]" + audit_data.get(n).getCAM_IMAGE2() + "[/ANSWER_IMAGE2]"
+ + "[ANSWER]" + audit_data.get(n).getANSWER() + "[/ANSWER]"
+ "[/AUDIT_DATA]";
Audit_data = Audit_data + onXml_audit_data;
@@ -1145,7 +1148,7 @@ public class PreviousDataUploadActivity extends AppCompatActivity {
request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA);
request.addProperty("XMLDATA", sos_xml);
- request.addProperty("KEYS", "AUDIT_DATA");
+ request.addProperty("KEYS", "AUDIT_DATA_LATEST");
request.addProperty("USERNAME", userId);
request.addProperty("MID", mid);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java
index 84883fe..1369d18 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadActivity.java
@@ -321,7 +321,8 @@ public class UploadActivity extends AppCompatActivity {
if (!storeData.getUPLOAD_STATUS().equals(CommonString.KEY_D) && (storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_Y) ||
storeData.getCHECKOUT_STATUS().equals(CommonString.KEY_L) ||
- !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U))) {
+ !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_U)||
+ !storeData.getUPLOAD_STATUS().equals(CommonString.KEY_UN))) {
String camera_allow = storeData.getCAMERA_ALLOW();
String adhoc;
@@ -1180,6 +1181,7 @@ public class UploadActivity extends AppCompatActivity {
+ "[ANSWER_ID]" + audit_data.get(n).getANSWER_ID() + "[/ANSWER_ID]"
+ "[ANSWER_IMAGE]" + audit_data.get(n).getCAM_IMAGE() + "[/ANSWER_IMAGE]"
+ "[ANSWER_IMAGE2]" + audit_data.get(n).getCAM_IMAGE2() + "[/ANSWER_IMAGE2]"
+ + "[ANSWER]" + audit_data.get(n).getANSWER() + "[/ANSWER]"
+ "[/AUDIT_DATA]";
Audit_data = Audit_data + onXml_audit_data;
@@ -1189,7 +1191,7 @@ public class UploadActivity extends AppCompatActivity {
request = new SoapObject(CommonString.NAMESPACE, CommonString.METHOD_UPLOAD_STOCK_XML_DATA);
request.addProperty("XMLDATA", sos_xml);
- request.addProperty("KEYS", "AUDIT_DATA_NEW");
+ request.addProperty("KEYS", "AUDIT_DATA_LATEST");
request.addProperty("USERNAME", userId);
request.addProperty("MID", mid);
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java
index f2763f5..847d2cc 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/upload/UploadImageWithRetrofit.java
@@ -38,6 +38,7 @@ import java.util.ArrayList;
import java.util.concurrent.TimeUnit;
import cpm.com.gskmtorange.Database.GSKOrangeDB;
+import cpm.com.gskmtorange.GetterSetter.CoverageBean;
import cpm.com.gskmtorange.GetterSetter.StoreBean;
import cpm.com.gskmtorange.MainActivity;
import cpm.com.gskmtorange.R;
@@ -534,9 +535,20 @@ public class UploadImageWithRetrofit {
if (result.toString().equalsIgnoreCase(CommonString.KEY_SUCCESS)) {
db.open();
- db.updateCoverageStatus(storeList.get(i).getSTORE_ID(), CommonString.KEY_U);
+
+ final CoverageBean coverageObj = db.getCoverageSpecificData(storeList.get(i).getVISIT_DATE(), storeList.get(i).getSTORE_ID());
+
+ String uploadStatus;
+ if(coverageObj.getReasonid().equalsIgnoreCase("0")){
+ uploadStatus = CommonString.KEY_U;
+ }
+ else {
+ uploadStatus = CommonString.KEY_UN;
+ }
+
+ db.updateCoverageStatus(storeList.get(i).getSTORE_ID(), uploadStatus);
db.updateStoreStatusOnLeave(storeList.get(i).getSTORE_ID(), storeList.get(i).getVISIT_DATE(),
- CommonString.KEY_U, CommonString.FROM_JCP);
+ uploadStatus, CommonString.FROM_JCP);
db.deleteTableWithStoreID(storeList.get(i).getSTORE_ID());
}
diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java
index a2c0cc6..cfa08a2 100644
--- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java
+++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/xmlGetterSetter/AuditDataGetterSetter.java
@@ -6,7 +6,7 @@ package cpm.com.gskmtorange.xmlGetterSetter;
public class AuditDataGetterSetter {
- String QUESTION_ID, CULTURE_ID, CATEGORY_ID, QUESTION, ANSWER_TYPE, ANSWER_ID, ANSWER, CAM_IMAGE="", CAMERA_ALLOW="0", KEYACCOUNT_ID="0", NO_OF_CAMERA ="1", CAM_IMAGE2="", CHECK_TYPE;
+ String QUESTION_ID, CULTURE_ID, CATEGORY_ID, QUESTION, ANSWER_TYPE, ANSWER_ID = "0", ANSWER="", CAM_IMAGE="", CAMERA_ALLOW="0", KEYACCOUNT_ID="0", NO_OF_CAMERA ="1", CAM_IMAGE2="", CHECK_TYPE;
public String getQUESTION_ID() {
diff --git a/GSKMTOrange/src/main/res/drawable/add.png b/GSKMTOrange/src/main/res/drawable/add.png
index fe41302..9636577 100644
Binary files a/GSKMTOrange/src/main/res/drawable/add.png and b/GSKMTOrange/src/main/res/drawable/add.png differ
diff --git a/GSKMTOrange/src/main/res/drawable/big_button_background.xml b/GSKMTOrange/src/main/res/drawable/big_button_background.xml
new file mode 100644
index 0000000..2ca2531
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/big_button_background.xml
@@ -0,0 +1,20 @@
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/big_button_effect.xml b/GSKMTOrange/src/main/res/drawable/big_button_effect.xml
new file mode 100644
index 0000000..cbaad8d
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/big_button_effect.xml
@@ -0,0 +1,8 @@
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/cancel.png b/GSKMTOrange/src/main/res/drawable/cancel.png
deleted file mode 100644
index caf17f5..0000000
Binary files a/GSKMTOrange/src/main/res/drawable/cancel.png and /dev/null differ
diff --git a/GSKMTOrange/src/main/res/drawable/circle.xml b/GSKMTOrange/src/main/res/drawable/circle.xml
new file mode 100644
index 0000000..5d95e4d
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/circle.xml
@@ -0,0 +1,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png b/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png
new file mode 100644
index 0000000..b4640f1
Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/current_location_marker_small.png differ
diff --git a/GSKMTOrange/src/main/res/drawable/indicator_background.xml b/GSKMTOrange/src/main/res/drawable/indicator_background.xml
new file mode 100644
index 0000000..5e86ce0
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/indicator_background.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/indicator_effect.xml b/GSKMTOrange/src/main/res/drawable/indicator_effect.xml
new file mode 100644
index 0000000..d5ccf14
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/indicator_effect.xml
@@ -0,0 +1,8 @@
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/save_icon.png b/GSKMTOrange/src/main/res/drawable/save_icon.png
index b8b3dbb..6ce2526 100644
Binary files a/GSKMTOrange/src/main/res/drawable/save_icon.png and b/GSKMTOrange/src/main/res/drawable/save_icon.png differ
diff --git a/GSKMTOrange/src/main/res/drawable/small_button_background.xml b/GSKMTOrange/src/main/res/drawable/small_button_background.xml
new file mode 100644
index 0000000..a467b7c
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/small_button_background.xml
@@ -0,0 +1,20 @@
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/small_button_effect.xml b/GSKMTOrange/src/main/res/drawable/small_button_effect.xml
new file mode 100644
index 0000000..cbaad8d
--- /dev/null
+++ b/GSKMTOrange/src/main/res/drawable/small_button_effect.xml
@@ -0,0 +1,8 @@
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png b/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png
new file mode 100644
index 0000000..7ca0bc5
Binary files /dev/null and b/GSKMTOrange/src/main/res/drawable/store_location_mark_small.png differ
diff --git a/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml b/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml
index ebedf3e..f2bfc6b 100644
--- a/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml
+++ b/GSKMTOrange/src/main/res/layout/activity_additional_promo_skuwise.xml
@@ -31,12 +31,6 @@
android:layout_margin="@dimen/fab_margin"
app:srcCompat="@drawable/save_icon" />
-
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/activity_change_password.xml b/GSKMTOrange/src/main/res/layout/activity_change_password.xml
new file mode 100644
index 0000000..20fa228
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/activity_change_password.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml b/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml
index cc9de9a..97f52ea 100644
--- a/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml
+++ b/GSKMTOrange/src/main/res/layout/activity_geo_tag.xml
@@ -38,7 +38,7 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|left"
android:layout_margin="@dimen/fab_margin"
- android:src="@mipmap/camera_orange"
+ android:src="@mipmap/camera_white"
app:backgroundTint="@color/colorAccent" />
diff --git a/GSKMTOrange/src/main/res/layout/activity_mpin.xml b/GSKMTOrange/src/main/res/layout/activity_mpin.xml
new file mode 100644
index 0000000..2b6d952
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/activity_mpin.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml b/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml
index a181118..42a86f0 100644
--- a/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml
+++ b/GSKMTOrange/src/main/res/layout/activity_msl__availability_stock_facing.xml
@@ -26,6 +26,7 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
- app:srcCompat="@drawable/save_icon" />
+ android:scaleType="center"
+ app:srcCompat="@mipmap/save_icon" />
diff --git a/GSKMTOrange/src/main/res/layout/activity_store_route.xml b/GSKMTOrange/src/main/res/layout/activity_store_route.xml
index 6f1b3b6..af2d54e 100644
--- a/GSKMTOrange/src/main/res/layout/activity_store_route.xml
+++ b/GSKMTOrange/src/main/res/layout/activity_store_route.xml
@@ -1,9 +1,39 @@
-
\ No newline at end of file
+ android:fitsSystemWindows="true"
+ tools:context="cpm.com.gskmtorange.storeinmap.StoreRouteActivity">
+
+
+
+
+
+
+
+
+
+
diff --git a/GSKMTOrange/src/main/res/layout/additionallistlayout.xml b/GSKMTOrange/src/main/res/layout/additionallistlayout.xml
index e023948..9c32e0f 100644
--- a/GSKMTOrange/src/main/res/layout/additionallistlayout.xml
+++ b/GSKMTOrange/src/main/res/layout/additionallistlayout.xml
@@ -2,14 +2,26 @@
+
+
+ android:paddingRight="5dp"
+ >
+ android:orientation="horizontal"
+ android:layout_marginBottom="5dp">
+
+
diff --git a/GSKMTOrange/src/main/res/layout/audit_question_list_item.xml b/GSKMTOrange/src/main/res/layout/audit_question_list_item.xml
index cacd7f6..d529f3f 100644
--- a/GSKMTOrange/src/main/res/layout/audit_question_list_item.xml
+++ b/GSKMTOrange/src/main/res/layout/audit_question_list_item.xml
@@ -58,6 +58,8 @@
android:layout_height="match_parent"
android:focusable="true"
android:visibility="gone"
+ android:inputType="number"
+ android:maxLength="5"
/>
diff --git a/GSKMTOrange/src/main/res/layout/big_button_view.xml b/GSKMTOrange/src/main/res/layout/big_button_view.xml
new file mode 100644
index 0000000..7ebfb9f
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/big_button_view.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/category_menu_row.xml b/GSKMTOrange/src/main/res/layout/category_menu_row.xml
index 4abf0d1..554cf80 100644
--- a/GSKMTOrange/src/main/res/layout/category_menu_row.xml
+++ b/GSKMTOrange/src/main/res/layout/category_menu_row.xml
@@ -8,7 +8,6 @@
@@ -21,33 +20,24 @@
android:weightSum="2">
-
-
-
-
+
+ >
+ android:orientation="vertical"
+ android:background="@color/grey_background">
-
+
+
+ android:textOn="@string/yes"
+ android:textOff="@string/no"
+ android:background="@drawable/toggle_selector_background"
+ android:layout_weight=".5" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:orientation="vertical">
-
+
+ android:layout_marginTop="2dp"
+ android:orientation="horizontal"
+ android:weightSum="2">
-
+
+
+
+
+
+
+ android:layout_marginTop="2dp"
+ android:orientation="horizontal"
+ android:weightSum="2">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/GSKMTOrange/src/main/res/layout/content_change_password.xml b/GSKMTOrange/src/main/res/layout/content_change_password.xml
new file mode 100644
index 0000000..3610748
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/content_change_password.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/content_mpin.xml b/GSKMTOrange/src/main/res/layout/content_mpin.xml
new file mode 100644
index 0000000..bdf80be
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/content_mpin.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/content_promo_compliance.xml b/GSKMTOrange/src/main/res/layout/content_promo_compliance.xml
index 630274b..902d7c2 100644
--- a/GSKMTOrange/src/main/res/layout/content_promo_compliance.xml
+++ b/GSKMTOrange/src/main/res/layout/content_promo_compliance.xml
@@ -242,21 +242,21 @@
android:paddingRight="15dp"
android:weightSum="1">
-
+ >
-
+
+ android:textColor="@color/white"
+ android:visibility="gone"/>
+
+
diff --git a/GSKMTOrange/src/main/res/layout/content_store_route.xml b/GSKMTOrange/src/main/res/layout/content_store_route.xml
new file mode 100644
index 0000000..6f1b3b6
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/content_store_route.xml
@@ -0,0 +1,9 @@
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/contentadditionalvisibility.xml b/GSKMTOrange/src/main/res/layout/contentadditionalvisibility.xml
index bf45388..9f60796 100644
--- a/GSKMTOrange/src/main/res/layout/contentadditionalvisibility.xml
+++ b/GSKMTOrange/src/main/res/layout/contentadditionalvisibility.xml
@@ -4,6 +4,7 @@
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:background="@color/grey_background"
android:orientation="vertical"
android:weightSum="100">
@@ -25,25 +26,22 @@
+ android:background="@color/white"
+ android:orientation="vertical">
@@ -61,10 +59,10 @@
android:id="@+id/btntoggle"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:textOn="@string/yes"
- android:textOff="@string/no"
+ android:layout_weight=".5"
android:background="@drawable/toggle_selector_background"
- android:layout_weight=".5" />
+ android:textOff="@string/no"
+ android:textOn="@string/yes" />
@@ -75,8 +73,8 @@
android:background="@color/grey_background"
android:orientation="horizontal"
android:padding="5dp"
- android:weightSum="3"
- android:visibility="gone">
+ android:visibility="gone"
+ android:weightSum="3">
@@ -118,33 +116,31 @@
android:id="@+id/spinner_SkuMaster"
android:layout_width="0dp"
android:layout_height="50dp"
- android:layout_weight="1.5"
- />
+ android:layout_weight="1.5" />
+ android:layout_weight=".5"
+ >
+ android:background="@mipmap/refrence_orange" />
-
@@ -152,8 +148,7 @@
+ android:layout_weight="1.5">
+ >
+
+ >
+
+ >
+
+ android:layout_weight=".5">
+ android:visibility="invisible" />
@@ -240,53 +237,70 @@
+
+ android:text="@string/add_sku" />
+
+ android:text="@string/add"
+ android:visibility="gone" />
+
+
+
+
+
+
+
-
-
+ card_view:cardBackgroundColor="@color/white"
+ card_view:cardCornerRadius="10dp">-->
-
+
diff --git a/GSKMTOrange/src/main/res/layout/current_marker_view.xml b/GSKMTOrange/src/main/res/layout/current_marker_view.xml
new file mode 100644
index 0000000..e752532
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/current_marker_view.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/daily_main_menu_row.xml b/GSKMTOrange/src/main/res/layout/daily_main_menu_row.xml
index 6db17cf..4ebb1a4 100644
--- a/GSKMTOrange/src/main/res/layout/daily_main_menu_row.xml
+++ b/GSKMTOrange/src/main/res/layout/daily_main_menu_row.xml
@@ -4,12 +4,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
- android:weightSum="1">
+ >
@@ -19,36 +18,27 @@
android:layout_height="match_parent"
android:layout_marginTop="5dp"
android:orientation="vertical"
- android:weightSum="2">
+ >
-
-
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ android:layout_gravity="center"
+ android:src="@mipmap/picturecatogory" />
+ >
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/item_added_promo.xml b/GSKMTOrange/src/main/res/layout/item_added_promo.xml
index 3082393..143d9f0 100644
--- a/GSKMTOrange/src/main/res/layout/item_added_promo.xml
+++ b/GSKMTOrange/src/main/res/layout/item_added_promo.xml
@@ -3,7 +3,7 @@
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@color/white"
+ android:background="@color/grey_background"
android:orientation="vertical">
+ card_view:cardCornerRadius="10dp"
+ android:elevation="5dp">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/marker_view.xml b/GSKMTOrange/src/main/res/layout/marker_view.xml
index 7a26f72..e182517 100644
--- a/GSKMTOrange/src/main/res/layout/marker_view.xml
+++ b/GSKMTOrange/src/main/res/layout/marker_view.xml
@@ -2,30 +2,31 @@
+ android:background="#00ffffff">
+ android:layout_marginLeft="20dp"
+ app:cardBackgroundColor="@color/colorPrimary">
+ android:textColor="@color/white"/>
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/mpin_input.xml b/GSKMTOrange/src/main/res/layout/mpin_input.xml
new file mode 100644
index 0000000..2c846de
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/mpin_input.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/nav_header_main.xml b/GSKMTOrange/src/main/res/layout/nav_header_main.xml
index d07841e..b36e280 100644
--- a/GSKMTOrange/src/main/res/layout/nav_header_main.xml
+++ b/GSKMTOrange/src/main/res/layout/nav_header_main.xml
@@ -6,17 +6,21 @@
android:background="@drawable/side_nav_bar"
android:gravity="bottom"
android:orientation="vertical"
- android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="5dp"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
-
+
+ android:visibility="gone" />
diff --git a/GSKMTOrange/src/main/res/layout/number_lock_view.xml b/GSKMTOrange/src/main/res/layout/number_lock_view.xml
new file mode 100644
index 0000000..c4b38e3
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/number_lock_view.xml
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/password_rule_dialog.xml b/GSKMTOrange/src/main/res/layout/password_rule_dialog.xml
new file mode 100644
index 0000000..cbf9a31
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/password_rule_dialog.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/progress_layout.xml b/GSKMTOrange/src/main/res/layout/progress_layout.xml
new file mode 100644
index 0000000..c635890
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/progress_layout.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/small_button_view.xml b/GSKMTOrange/src/main/res/layout/small_button_view.xml
new file mode 100644
index 0000000..49c7704
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/small_button_view.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/store_marker_view.xml b/GSKMTOrange/src/main/res/layout/store_marker_view.xml
new file mode 100644
index 0000000..cd6daf3
--- /dev/null
+++ b/GSKMTOrange/src/main/res/layout/store_marker_view.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/layout/storelist_child.xml b/GSKMTOrange/src/main/res/layout/storelist_child.xml
index b0dc27e..a0ea509 100644
--- a/GSKMTOrange/src/main/res/layout/storelist_child.xml
+++ b/GSKMTOrange/src/main/res/layout/storelist_child.xml
@@ -82,7 +82,8 @@
android:layout_height="30dp"
android:layout_centerInParent="true"
android:background="@mipmap/baseline_directions_black_48"
- android:visibility="invisible"/>
+ android:visibility="visible"
+ />
diff --git a/GSKMTOrange/src/main/res/layout/t2p_item_layout.xml b/GSKMTOrange/src/main/res/layout/t2p_item_layout.xml
index 3825a53..6fc6070 100644
--- a/GSKMTOrange/src/main/res/layout/t2p_item_layout.xml
+++ b/GSKMTOrange/src/main/res/layout/t2p_item_layout.xml
@@ -63,39 +63,6 @@
android:text="@string/display" />
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:title="@string/menu_geotag"
+ android:visible="false"
+ />
+ app:showAsAction="ifRoom|withText"
+ android:visible="false"/>
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/menu/planogram.xml b/GSKMTOrange/src/main/res/menu/planogram.xml
index 7fb463b..7beae96 100644
--- a/GSKMTOrange/src/main/res/menu/planogram.xml
+++ b/GSKMTOrange/src/main/res/menu/planogram.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/additional_visibility_done.png b/GSKMTOrange/src/main/res/mipmap-hdpi/additional_visibility_done.png
index c578330..3443e3a 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/additional_visibility_done.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/additional_visibility_done.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics.png b/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics.png
index 64e2cd6..4d7542b 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics_tick.png
index b5ffc20..a9b7603 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/analgesics_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/cancel.png b/GSKMTOrange/src/main/res/mipmap-hdpi/cancel.png
index d537bc9..fca7cde 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/cancel.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/cancel.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold.png b/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold.png
index aefeeb3..bf32546 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold_tick.png
index 572dc0a..cf44c3d 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/cough_n_cold_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid.png b/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid.png
index 795634e..3978861 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid_tick.png
index f058e55..6bf8e08 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/first_aid_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion.png b/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion.png
index 73d40b5..531e01b 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion_tick.png
index 02ab43d..1c3f2ca 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/gastro_n_indigestion_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink.png b/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink.png
index 4f9a7f7..ac2c573 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink_tick.png
index b340cae..ad58383 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/health_food_drink_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/msl_availability_done.png b/GSKMTOrange/src/main/res/mipmap-hdpi/msl_availability_done.png
index c7fe3de..4a91c74 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/msl_availability_done.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/msl_availability_done.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/nutritionals_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/nutritionals_tick.png
index 57e71b7..7689a2c 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/nutritionals_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/nutritionals_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/oralcare_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/oralcare_tick.png
index 4f3e781..a7a2ae2 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/oralcare_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/oralcare_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/promo_compliance_done.png b/GSKMTOrange/src/main/res/mipmap-hdpi/promo_compliance_done.png
index 7cc5ea5..056ed29 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/promo_compliance_done.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/promo_compliance_done.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/refrence.png b/GSKMTOrange/src/main/res/mipmap-hdpi/refrence.png
new file mode 100644
index 0000000..b543d28
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-hdpi/refrence.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/save_icon.png b/GSKMTOrange/src/main/res/mipmap-hdpi/save_icon.png
new file mode 100644
index 0000000..6ce2526
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-hdpi/save_icon.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/t2p_compliance_done.png b/GSKMTOrange/src/main/res/mipmap-hdpi/t2p_compliance_done.png
index c85db65..8a4a84b 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/t2p_compliance_done.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/t2p_compliance_done.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/tick_close.png b/GSKMTOrange/src/main/res/mipmap-hdpi/tick_close.png
new file mode 100644
index 0000000..ebc4da3
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-hdpi/tick_close.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-hdpi/wellness_tick.png b/GSKMTOrange/src/main/res/mipmap-hdpi/wellness_tick.png
index 909b07a..3bab34c 100644
Binary files a/GSKMTOrange/src/main/res/mipmap-hdpi/wellness_tick.png and b/GSKMTOrange/src/main/res/mipmap-hdpi/wellness_tick.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xhdpi/baseline_lock_white_36.png b/GSKMTOrange/src/main/res/mipmap-xhdpi/baseline_lock_white_36.png
new file mode 100644
index 0000000..dde4aac
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-xhdpi/baseline_lock_white_36.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_black_36.png b/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_black_36.png
new file mode 100644
index 0000000..975b1ba
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_black_36.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_white_36.png b/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_white_36.png
new file mode 100644
index 0000000..a726e63
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_white_36.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xhdpi/twotone_location_on_black_18.png b/GSKMTOrange/src/main/res/mipmap-xhdpi/twotone_location_on_black_18.png
new file mode 100644
index 0000000..b548db3
Binary files /dev/null and b/GSKMTOrange/src/main/res/mipmap-xhdpi/twotone_location_on_black_18.png differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xxhdpi/tick.png b/GSKMTOrange/src/main/res/mipmap-xxhdpi/tick.png
deleted file mode 100644
index b6e1809..0000000
Binary files a/GSKMTOrange/src/main/res/mipmap-xxhdpi/tick.png and /dev/null differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory.png b/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory.png
deleted file mode 100644
index 9978058..0000000
Binary files a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory.png and /dev/null differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_done.png b/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_done.png
deleted file mode 100644
index e2c26b9..0000000
Binary files a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_done.png and /dev/null differ
diff --git a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_grey.png b/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_grey.png
deleted file mode 100644
index 63d1719..0000000
Binary files a/GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_grey.png and /dev/null differ
diff --git a/GSKMTOrange/src/main/res/values/attrs.xml b/GSKMTOrange/src/main/res/values/attrs.xml
new file mode 100644
index 0000000..f94b48e
--- /dev/null
+++ b/GSKMTOrange/src/main/res/values/attrs.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/values/colors.xml b/GSKMTOrange/src/main/res/values/colors.xml
index d704b9a..9a966ae 100644
--- a/GSKMTOrange/src/main/res/values/colors.xml
+++ b/GSKMTOrange/src/main/res/values/colors.xml
@@ -19,4 +19,9 @@
#00FFFFFF
#b7ffa1
+
+ #bada55
+ #787878
+ #bada55
+ #D1D1D1
diff --git a/GSKMTOrange/src/main/res/values/defaults.xml b/GSKMTOrange/src/main/res/values/defaults.xml
new file mode 100644
index 0000000..a5f5598
--- /dev/null
+++ b/GSKMTOrange/src/main/res/values/defaults.xml
@@ -0,0 +1,58 @@
+
+
+
+ 80dp
+ 80dp
+ #ffffff
+ 35
+ #ffffff
+ 12
+
+ 40dp
+ 40dp
+ #ffffff
+ 12
+
+ 20
+ #ffffff
+ 20
+ #ffffff
+ 20
+ #ffffff
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+ - 5
+ - 6
+ - 7
+ - 8
+ - 9
+
+
+
+ - 0
+ - 1
+ - ABC
+ - DEF
+ - GHI
+ - JKL
+ - MNO
+ - PQRS
+ - TUV
+ - WXYZ
+
+
+ 11
+ 6
+ #99999999
+
+ #66ffffff
+ #99ffffff
+
+
\ No newline at end of file
diff --git a/GSKMTOrange/src/main/res/values/dimens.xml b/GSKMTOrange/src/main/res/values/dimens.xml
index 468fdf7..83064d9 100644
--- a/GSKMTOrange/src/main/res/values/dimens.xml
+++ b/GSKMTOrange/src/main/res/values/dimens.xml
@@ -1,7 +1,7 @@
-
+
16dp
- 160dp
+ 170dp
5dp
16dp
@@ -16,4 +16,11 @@
12sp
+ 10dp
+
+ 15dp
+
+
+ 36dp
+
diff --git a/GSKMTOrange/src/main/res/values/strings.xml b/GSKMTOrange/src/main/res/values/strings.xml
index 91a2435..3bff51a 100644
--- a/GSKMTOrange/src/main/res/values/strings.xml
+++ b/GSKMTOrange/src/main/res/values/strings.xml
@@ -288,7 +288,7 @@
Shelf
Position
is already exists
- Please select atleast one sku
+ Please select at least one sku
Add sku, shelf can not be empty
Shelf/ Position already exists
@@ -396,5 +396,29 @@
Please select price flasher
Exists
Price flasher available?
+ Change Password
+
+ Do you want to download data
+ Do you want to upload data
+ Do you want to exit
+
+
+ Submit
+ Old Password
+ New Password
+ Confirm Password
+ Password Rules
+ 1. Must be between 6 to 8 characters long. \n\n 2. Must contain following combinations \n\n a. Uppercase characters(A-Z) \n b. Lowercase characters(a-z) \n c. Numbers(0-9) \n d. Special characters(@#$%)
+ Invalid Password
+ Password and confirm password does not match
+ Space is not allowed in password
+ New password should not be equal to old password
+ Password updated successfully
+ MPin
+ This pin is incorrect
+ Add SKU
+ Is there any Promo running
+ First click compulsory image
+
diff --git a/build.gradle b/build.gradle
index ad43582..5bdf6a7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -9,7 +9,7 @@ buildscript {
}
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.0'
+ classpath 'com.android.tools.build:gradle:3.3.1'
// Add dependency
classpath 'io.fabric.tools:gradle:1.26.1'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/library/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties b/library/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
index 6659e36..e25a9dd 100644
--- a/library/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
+++ b/library/build/intermediates/incremental/packageReleaseResources/compile-file-map.properties
@@ -1,4 +1,4 @@
-#Fri Jan 25 09:35:01 IST 2019
+#Fri Mar 01 20:15:20 IST 2019
D\:\\GITHub\\GSKORANGEV2\\library\\src\\main\\res\\layout\\item_listview_single.xml=D\:\\GITHub\\GSKORANGEV2\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_single.xml
D\:\\GITHub\\GSKORANGEV2\\library\\src\\main\\res\\layout\\item_listview_multiple.xml=D\:\\GITHub\\GSKORANGEV2\\library\\build\\intermediates\\packaged_res\\release\\layout\\item_listview_multiple.xml
D\:\\GITHub\\GSKORANGEV2\\library\\src\\main\\res\\layout\\activity_main.xml=D\:\\GITHub\\GSKORANGEV2\\library\\build\\intermediates\\packaged_res\\release\\layout\\activity_main.xml