From 97d30b2f5b64da4ce3388e475b70380c2747a3b7 Mon Sep 17 00:00:00 2001 From: yadavendras Date: Fri, 1 Mar 2019 20:32:01 +0530 Subject: [PATCH] YSY commit --- .idea/kotlinc.xml | 6 + .idea/misc.xml | 18 +- GSKMTOrange/build.gradle | 2 +- GSKMTOrange/src/main/AndroidManifest.xml | 38 +- .../com/gskmtorange/Database/GSKOrangeDB.java | 211 +-- .../gskmtorange/GeoTag/GeoTagActivity.java | 55 +- .../cpm/com/gskmtorange/LoginActivity.java | 357 ++++- .../cpm/com/gskmtorange/MainActivity.java | 212 +-- .../gskmtorange/SelectLanguageActivity.java | 9 +- .../com/gskmtorange/SplashScreenActivity.java | 30 +- .../blurlockview/BigButtonView.java | 240 ++++ .../blurlockview/BlurLockView.java | 870 ++++++++++++ .../gskmtorange/blurlockview/BlurView.java | 194 +++ .../blurlockview/Directions/HideType.java | 20 + .../blurlockview/Directions/ShowType.java | 20 + .../cpm/com/gskmtorange/blurlockview/Dot.java | 87 ++ .../blurlockview/Eases/CubicBezier.java | 82 ++ .../blurlockview/Eases/EaseInBack.java | 14 + .../blurlockview/Eases/EaseInBounce.java | 32 + .../blurlockview/Eases/EaseInCirc.java | 14 + .../blurlockview/Eases/EaseInCubic.java | 14 + .../blurlockview/Eases/EaseInElastic.java | 24 + .../blurlockview/Eases/EaseInExpo.java | 14 + .../blurlockview/Eases/EaseInOutBack.java | 14 + .../blurlockview/Eases/EaseInOutBounce.java | 39 + .../blurlockview/Eases/EaseInOutCirc.java | 14 + .../blurlockview/Eases/EaseInOutCubic.java | 14 + .../blurlockview/Eases/EaseInOutElastic.java | 25 + .../blurlockview/Eases/EaseInOutExpo.java | 14 + .../blurlockview/Eases/EaseInOutQuad.java | 14 + .../blurlockview/Eases/EaseInOutQuart.java | 14 + .../blurlockview/Eases/EaseInOutQuint.java | 14 + .../blurlockview/Eases/EaseInOutSine.java | 13 + .../blurlockview/Eases/EaseInQuad.java | 13 + .../blurlockview/Eases/EaseInQuart.java | 12 + .../blurlockview/Eases/EaseInQuint.java | 14 + .../blurlockview/Eases/EaseInSine.java | 14 + .../blurlockview/Eases/EaseOutBack.java | 14 + .../blurlockview/Eases/EaseOutBounce.java | 27 + .../blurlockview/Eases/EaseOutCirc.java | 14 + .../blurlockview/Eases/EaseOutCubic.java | 13 + .../blurlockview/Eases/EaseOutElastic.java | 25 + .../blurlockview/Eases/EaseOutExpo.java | 13 + .../blurlockview/Eases/EaseOutQuad.java | 13 + .../blurlockview/Eases/EaseOutQuart.java | 14 + .../blurlockview/Eases/EaseOutQuint.java | 14 + .../blurlockview/Eases/EaseOutSine.java | 13 + .../blurlockview/Eases/EaseType.java | 70 + .../blurlockview/Eases/Linear.java | 13 + .../gskmtorange/blurlockview/Indicator.java | 69 + .../blurlockview/InterpolatorFactory.java | 31 + .../gskmtorange/blurlockview/Password.java | 17 + .../blurlockview/SmallButtonView.java | 195 +++ .../gskmtorange/constant/CommonFunctions.java | 50 + .../gskmtorange/constant/CommonString.java | 43 + .../AdditionalPromoSKUwiseActivity.java | 93 +- .../dailyentry/AdditionalVisibility.java | 177 ++- .../gskmtorange/dailyentry/AuditActivity.java | 45 +- .../dailyentry/CategoryPicture.java | 191 +-- .../dailyentry/CreateSelfActivity.java | 13 +- .../dailyentry/DeliveryCallActivity.java | 6 +- .../DeliveryCallAddStoreActivity.java | 6 +- .../dailyentry/FutureJCPActivity.java | 6 + .../dailyentry/NoCameraActivity.java | 13 +- .../dailyentry/POGQuestionsActivity.java | 9 +- .../dailyentry/StockDataActivity.java | 20 +- .../dailyentry/StoreListActivity.java | 905 ++++++++++++- .../dailyentry/StoreimageActivity.java | 10 +- .../dailyentry/T2PComplianceActivity.java | 124 +- .../dailyentry/T2pBrand_Avaibility.java | 2 +- .../download/DownloadActivity.java | 16 +- .../fragment/ServiceActivityFragment.java | 2 +- .../gsk_dailyentry/CategoryListActivity.java | 80 +- .../CategoryWisePerformanceActivity.java | 11 +- .../gsk_dailyentry/DailyDataMenuActivity.java | 104 +- .../MSL_Availability_StockFacingActivity.java | 254 +++- .../PromoComplianceActivity.java | 31 +- .../gsk_dailyentry/Stock_FacingActivity.java | 19 +- .../StoreWisePerformanceActivity.java | 11 +- .../interfaces/DialogCallbackListener.java | 7 + .../password/ChangePasswordActivity.java | 427 ++++++ .../gskmtorange/password/MPinActivity.java | 1206 +++++++++++++++++ .../progressbar/CircularProgressBar.java | 274 ++++ .../storeinmap/StoreRouteActivity.java | 61 +- .../upload/PreviousDataUploadActivity.java | 7 +- .../gskmtorange/upload/UploadActivity.java | 6 +- .../upload/UploadImageWithRetrofit.java | 16 +- .../AuditDataGetterSetter.java | 2 +- GSKMTOrange/src/main/res/drawable/add.png | Bin 12341 -> 3745 bytes .../res/drawable/big_button_background.xml | 20 + .../main/res/drawable/big_button_effect.xml | 8 + GSKMTOrange/src/main/res/drawable/cancel.png | Bin 3876 -> 0 bytes GSKMTOrange/src/main/res/drawable/circle.xml | 10 + .../current_location_marker_small.png | Bin 0 -> 4025 bytes .../res/drawable/indicator_background.xml | 9 + .../main/res/drawable/indicator_effect.xml | 8 + .../src/main/res/drawable/save_icon.png | Bin 10339 -> 1556 bytes .../res/drawable/small_button_background.xml | 20 + .../main/res/drawable/small_button_effect.xml | 8 + .../drawable/store_location_mark_small.png | Bin 0 -> 7127 bytes .../activity_additional_promo_skuwise.xml | 8 +- .../res/layout/activity_change_password.xml | 34 + .../src/main/res/layout/activity_geo_tag.xml | 2 +- .../src/main/res/layout/activity_mpin.xml | 34 + ...ctivity_msl__availability_stock_facing.xml | 3 +- .../main/res/layout/activity_store_route.xml | 40 +- .../main/res/layout/additionallistlayout.xml | 19 +- .../res/layout/audit_question_list_item.xml | 2 + .../src/main/res/layout/big_button_view.xml | 45 + .../src/main/res/layout/category_menu_row.xml | 26 +- .../content_additional_promo_skuwise.xml | 360 ++--- .../res/layout/content_change_password.xml | 149 ++ .../src/main/res/layout/content_mpin.xml | 40 + .../res/layout/content_promo_compliance.xml | 20 +- .../main/res/layout/content_store_route.xml | 9 + .../layout/contentadditionalvisibility.xml | 100 +- .../main/res/layout/current_marker_view.xml | 29 + .../main/res/layout/daily_main_menu_row.xml | 26 +- GSKMTOrange/src/main/res/layout/dot_view.xml | 21 + .../src/main/res/layout/item_added_promo.xml | 5 +- .../src/main/res/layout/marker_layout_2.xml | 31 + .../src/main/res/layout/marker_view.xml | 17 +- .../src/main/res/layout/mpin_input.xml | 80 ++ .../src/main/res/layout/nav_header_main.xml | 20 +- .../src/main/res/layout/number_lock_view.xml | 221 +++ .../main/res/layout/password_rule_dialog.xml | 46 + .../src/main/res/layout/progress_layout.xml | 33 + .../src/main/res/layout/small_button_view.xml | 27 + .../src/main/res/layout/store_marker_view.xml | 12 + .../src/main/res/layout/storelist_child.xml | 3 +- .../src/main/res/layout/t2p_item_layout.xml | 67 +- .../main/res/menu/activity_main_drawer.xml | 4 +- .../src/main/res/menu/menu_promo_skuwise.xml | 3 +- GSKMTOrange/src/main/res/menu/planogram.xml | 2 +- .../additional_visibility_done.png | Bin 9512 -> 7885 bytes .../src/main/res/mipmap-hdpi/analgesics.png | Bin 84107 -> 26442 bytes .../main/res/mipmap-hdpi/analgesics_tick.png | Bin 87124 -> 26625 bytes .../src/main/res/mipmap-hdpi/cancel.png | Bin 995 -> 1359 bytes .../src/main/res/mipmap-hdpi/cough_n_cold.png | Bin 57280 -> 18713 bytes .../res/mipmap-hdpi/cough_n_cold_tick.png | Bin 60389 -> 20123 bytes .../src/main/res/mipmap-hdpi/first_aid.png | Bin 15749 -> 4743 bytes .../main/res/mipmap-hdpi/first_aid_tick.png | Bin 20860 -> 6584 bytes .../res/mipmap-hdpi/gastro_n_indigestion.png | Bin 77840 -> 20693 bytes .../mipmap-hdpi/gastro_n_indigestion_tick.png | Bin 81383 -> 20825 bytes .../res/mipmap-hdpi/health_food_drink.png | Bin 26273 -> 7781 bytes .../mipmap-hdpi/health_food_drink_tick.png | Bin 30900 -> 11035 bytes .../res/mipmap-hdpi/msl_availability_done.png | Bin 9643 -> 8207 bytes .../res/mipmap-hdpi/nutritionals_tick.png | Bin 10644 -> 8838 bytes .../main/res/mipmap-hdpi/oralcare_tick.png | Bin 13329 -> 13452 bytes .../res/mipmap-hdpi/promo_compliance_done.png | Bin 9647 -> 8258 bytes .../src/main/res/mipmap-hdpi/refrence.png | Bin 0 -> 4257 bytes .../src/main/res/mipmap-hdpi/save_icon.png | Bin 0 -> 1556 bytes .../res/mipmap-hdpi/t2p_compliance_done.png | Bin 9231 -> 7809 bytes .../src/main/res/mipmap-hdpi/tick_close.png | Bin 0 -> 1855 bytes .../main/res/mipmap-hdpi/wellness_tick.png | Bin 12922 -> 10604 bytes .../mipmap-xhdpi/baseline_lock_white_36.png | Bin 0 -> 482 bytes .../mipmap-xhdpi/outline_info_black_36.png | Bin 0 -> 856 bytes .../mipmap-xhdpi/outline_info_white_36.png | Bin 0 -> 830 bytes .../twotone_location_on_black_18.png | Bin 0 -> 499 bytes .../src/main/res/mipmap-xxhdpi/tick.png | Bin 4111 -> 0 bytes .../res/mipmap-xxxhdpi/picturecatogory.png | Bin 7475 -> 0 bytes .../mipmap-xxxhdpi/picturecatogory_done.png | Bin 9676 -> 0 bytes .../mipmap-xxxhdpi/picturecatogory_grey.png | Bin 7478 -> 0 bytes GSKMTOrange/src/main/res/values/attrs.xml | 32 + GSKMTOrange/src/main/res/values/colors.xml | 5 + GSKMTOrange/src/main/res/values/defaults.xml | 58 + GSKMTOrange/src/main/res/values/dimens.xml | 11 +- GSKMTOrange/src/main/res/values/strings.xml | 26 +- build.gradle | 2 +- .../compile-file-map.properties | 2 +- 170 files changed, 8407 insertions(+), 943 deletions(-) create mode 100644 .idea/kotlinc.xml create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BigButtonView.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurLockView.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/BlurView.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/HideType.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Directions/ShowType.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Dot.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/CubicBezier.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBack.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInBounce.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCirc.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInCubic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInElastic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInExpo.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBack.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutBounce.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCirc.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutCubic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutElastic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutExpo.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuad.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuart.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutQuint.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInOutSine.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuad.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuart.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInQuint.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseInSine.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBack.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutBounce.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCirc.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutCubic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutElastic.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutExpo.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuad.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuart.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutQuint.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseOutSine.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/EaseType.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Eases/Linear.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Indicator.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/InterpolatorFactory.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/Password.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/blurlockview/SmallButtonView.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/interfaces/DialogCallbackListener.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/ChangePasswordActivity.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/password/MPinActivity.java create mode 100644 GSKMTOrange/src/main/java/cpm/com/gskmtorange/progressbar/CircularProgressBar.java create mode 100644 GSKMTOrange/src/main/res/drawable/big_button_background.xml create mode 100644 GSKMTOrange/src/main/res/drawable/big_button_effect.xml delete mode 100644 GSKMTOrange/src/main/res/drawable/cancel.png create mode 100644 GSKMTOrange/src/main/res/drawable/circle.xml create mode 100644 GSKMTOrange/src/main/res/drawable/current_location_marker_small.png create mode 100644 GSKMTOrange/src/main/res/drawable/indicator_background.xml create mode 100644 GSKMTOrange/src/main/res/drawable/indicator_effect.xml create mode 100644 GSKMTOrange/src/main/res/drawable/small_button_background.xml create mode 100644 GSKMTOrange/src/main/res/drawable/small_button_effect.xml create mode 100644 GSKMTOrange/src/main/res/drawable/store_location_mark_small.png create mode 100644 GSKMTOrange/src/main/res/layout/activity_change_password.xml create mode 100644 GSKMTOrange/src/main/res/layout/activity_mpin.xml create mode 100644 GSKMTOrange/src/main/res/layout/big_button_view.xml create mode 100644 GSKMTOrange/src/main/res/layout/content_change_password.xml create mode 100644 GSKMTOrange/src/main/res/layout/content_mpin.xml create mode 100644 GSKMTOrange/src/main/res/layout/content_store_route.xml create mode 100644 GSKMTOrange/src/main/res/layout/current_marker_view.xml create mode 100644 GSKMTOrange/src/main/res/layout/dot_view.xml create mode 100644 GSKMTOrange/src/main/res/layout/marker_layout_2.xml create mode 100644 GSKMTOrange/src/main/res/layout/mpin_input.xml create mode 100644 GSKMTOrange/src/main/res/layout/number_lock_view.xml create mode 100644 GSKMTOrange/src/main/res/layout/password_rule_dialog.xml create mode 100644 GSKMTOrange/src/main/res/layout/progress_layout.xml create mode 100644 GSKMTOrange/src/main/res/layout/small_button_view.xml create mode 100644 GSKMTOrange/src/main/res/layout/store_marker_view.xml create mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/refrence.png create mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/save_icon.png create mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/tick_close.png create mode 100644 GSKMTOrange/src/main/res/mipmap-xhdpi/baseline_lock_white_36.png create mode 100644 GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_black_36.png create mode 100644 GSKMTOrange/src/main/res/mipmap-xhdpi/outline_info_white_36.png create mode 100644 GSKMTOrange/src/main/res/mipmap-xhdpi/twotone_location_on_black_18.png delete mode 100644 GSKMTOrange/src/main/res/mipmap-xxhdpi/tick.png delete mode 100644 GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory.png delete mode 100644 GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_done.png delete mode 100644 GSKMTOrange/src/main/res/mipmap-xxxhdpi/picturecatogory_grey.png create mode 100644 GSKMTOrange/src/main/res/values/attrs.xml create mode 100644 GSKMTOrange/src/main/res/values/defaults.xml 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 fe413021c39f8802701e21569c92ac06aac1c9fb..9636577b4a2ec07187192c941ef1f0affe1cc15c 100644 GIT binary patch literal 3745 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 literal 12341 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 qrsRd + + + + + + + + + + + + + + + + + + + \ 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 caf17f50030c0a950ac7b40c1f29722fb504daab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3876 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 B?H&LC 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 0000000000000000000000000000000000000000..b4640f1854630d592459d2dfb5a8d2666fca6780 GIT binary patch literal 4025 zcmV;q4@U5bP)Hrmkw2Yc4~}b@W>@{?}U^=(__rAeTX# z2wa{X4P<@{lkeFM9Or!jzy&!Cx}|dyA%QKy%I9F2dckLsaU0NEE*uSEpGA&?CLwJy z)obkv%|%%GID9Q3loN16j)Nl^q3kPd41c2?TcZyHIktqdi~Keb6@-jB8lqazuHd`c z7_A@$Krik_&dA;0@-eJc#zY+r<3DK&;~i2-2;~~ae|l8LL=%77;Wq_yOsj(bJtV{~ znPl7saz^f`!EX}MD&y81MR5{_4K(;gGLFc($66TvdMk*MGN^`N?oml6;}DU_Y+?MH ztx6E(1wfE`TEaA!;NQk%2}=)ZD5^7sB2SjHsEl@6C9|PFiit$lU_n#?tma(Y*Fe2F#sEO8^eFlB;%j2 zA|#-%Jn+_TlT7`>5wL-_JizB7^!!1}g zu?aLv=ct6`4>x0A-9!_sJ=NgBq3T{kSEG{e6vvT2ESZEfvbujXsq}(dV0CstUI`&% zyv45tY&S7{9`)rWPt+)hWb7lMa<`L#LRGqdH8Pr?dz{y6Hc2~sN?S^X(7 zT$>f_bO|Ix7k3x~>o#;JVIMQLANERP52s8tXUSDOYbWc%VBDmHEGMvvR zWDy~w>eTx0+!m?U_tdHM#Wh4b)_d~@7g(#*7Nak>8xCk(B$da5>eRZ^qFSEX@Nomf zd+q21Z9_6X62q}pt^1Q?j!x=S+O2hT_;DY#D&A{PdDN)*wPN|9M#&_kmeoF8i$N6y z-Q@!eZ}Iq|gW;3VwrGB!Q8EeH1Cw1Xr|+)S0C6$k^yl{~J$JjbTFE^IHox!yukP)z zc#%v(=+Bkay3QIPFBS(m{h8V@?Nrgp02^q_6P!?+r0y8v{pK1@UsR(p3ZB40&iF|+ z$1mIwq*nHo3tm$L*P;zi@j-23?(q-QJTmVfXSjY41L^@(bB1pZs0Lm1^7pjbR7Cet-ud{s7dXHtg6< zRO5&g%K=y#9?%%C`cFcPSNF5}XNXkG{$P%Q@%y7{5aSo%3?J{8`tL;ctF%k2HAaWz zlK~p`skP}u>ZLLyM6pj}xUioO7o-f-P$|WStnXF!s`N|t@kYC3lL6d8ga7!BV!dtZFB3Yy{yBA54a$ ziZ?V>DV1t6n95FGZ?4jYU)YJmgAV~YRRT9M*a}XTl^T6|l{TW=cai~IH2O5ZpUCf5 zatRr?gE#J~(nBzO0LTS7k-=QbgH-Geo#AAa0fI7sKn}=dFy>$wiF!jl_OY}n!O`hy zA<;{ZPo28(Mt;PD!ghm6*wN2GpXht~l!Z4!qSN0-PRI>862E>edE}BYqoUHLjgC%V z9%x?L8Z>*^C4eK?yj+k+rwPdq|5T_jMD}|^&?ovv4#)*LAvffRTu04Jn?{V!2l!Pk zM$XEZ5nx_g9bnElH+J^2uE3b(!kv)MP7_|37)x7hf8xc7G1T|HI3ZW$958!n^~hQ2 zGbEmd`6EcwvLB9_y}W*GOs3!xpoOMSm}alko9vYkEU!Xua->a|YDb^0@*88$s6$Ou zo21I4OCyGxGqXmUGrt@ilj#@}n@>6$aDENz+~|N1x~$IrPdCw4kQp(HSdHqwgnT@}f~>cEMZ1Bf|u+3?sEmqx^{5S$_=t9zI^vmKH*gG^l#a_10$fvV6M=Wa8Y z9NRE}o&?ye1lxCS{(!^Gv|!{k%$(JR9DCD&T1iaSQmWmzdPaIEF|XK2Vy)dIZl!Qv z#9D8V80#5g&Un(5mQ|)Vy;5N`UEOMo6g&a6RSq^?>gmW4xyG*it`|++RQptGh>!FP zSg*%gw*oo4Q{r(ezXIZUWb$&Cf0u_(n3wCqv$hyaS1M>g-3PS+w)*tc`XitXIU{%H z+UyX6^4oit0W8?XW2^-vZq-c^ze>0-Vpm-uv#l?axZm~pSfWs7lx@~W6m2m^-gG+| z#>g(TfwuaraT0K*+*e^#){zKYc9^B+igIYlZtFer*?tU9;9x z2a%f%5jEvT(@j^Cfps?-B5FPMW(d@Rnw)8lTl*m_3J-(`Rk*Yo}0-ck?cznw)CRcF@@L z^AcA}60)xW1m{?1Cv({{i2X8cnB*SP}0_nUlSQ zaulOcgg!S2ud5%(gwWwDOv`UFnrxdQ#&>Uy7%w33Gk#a1;Kj90Pb4G}V$?5_dz3W@ z9G)Oa8w9tJxBv1Yi5uT056tf;-ANlONOGRw5-fQ)NJ8!g z*l$bte`f~niFxa(7FTsAE89D<`6TD0qsSl)sv4 za9JEDFuS-$iEK4sz_4tWFqE4v?yq;357GE1*SN~oV-VAUH8jy zurrx*M(%ylim|~M^=nDWn@5rhx=Bi*&l%{_VM(7q0I%MNstN$-2T5v?;0C&grRY2a?YD&V@e!MZ94%b` zz6(Cyr*->OfQzN@H0a%o6rYBKJ7036uf#k9^_>J9kc+!IFa{Wl_?#&NH{s2%83DuA z6C}0dpJZ-{AQIn#sP{-pX*o$QUP3G-aU`iA0w1vZp3lV6i4cH~dbbC45(_4N?^>fZ zfFzWd0CB*33H60O(YILssl{K>SYS*Bv`nsmeMwOYB;^}2w^R^~)KUisybks*0$>a; zeh07zl9UAjUPzNQxAcMwwl3TXdeJlVTC{<-&?dEAdhM1kk8u8m#vtlVA6nWc=FK80 zC4U8ic8`dZ2JBRGLcvdbam79iy6p^Tg)Puxdi*{as4=Cu6_)Wch)+M1jgw?@Nji}I z(r=T2+AKv&sa8o8oY+!|CP8AFV7%`3pI!l4Qb7}H8}P~7-7}!%qQ{{{y$fCZ5=_<- zoL_)5az_m*CG(_xCimY>Q^0muLCvQc{H~*C7e5lp}IQ&V!~zOF=S8DO?G`seypK1;fUN5U{@iu83M3+?tH9P+Qa{*iJ2} zrM}Q-d^R_f0O!lJ5hN~`g}_ZDmSQtKl1MII1OZ$IE4K|Wq-=)3?!KM4LlE2}w*a5< zJNh@ML+j!-a4p(ETew0(+fn{7IS>4*Z8*J^iuW3DY>(LxN}>v7^q3uipYc2V8`hz> fj;)e<3BZ2^00000NkvXXu0mjfYPyJs literal 0 HcmV?d00001 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 b8b3dbba53d17b66d2cf262c4b3ada2301bbab93..6ce2526e81c98e52fff8fe5bbb225af9ba799193 100644 GIT binary patch literal 1556 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 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 0000000000000000000000000000000000000000..7ca0bc5112d4167d7a38f6a45d99c4e3b70acb3f GIT binary patch literal 7127 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 z - + \ 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">