From 0dfa2a50cacbd269e3de311b4a5ddf161d49037a Mon Sep 17 00:00:00 2001 From: Ramandeep Date: Fri, 25 Feb 2022 16:33:45 +0530 Subject: [PATCH] Reader App --- .gitignore | 15 + .idea/.gitignore | 3 + .idea/.name | 1 + .idea/compiler.xml | 6 + .idea/encodings.xml | 6 + .idea/gradle.xml | 20 + .idea/jarRepositories.xml | 35 + .idea/misc.xml | 9 + .idea/runConfigurations.xml | 10 + .idea/vcs.xml | 6 + app/.gitignore | 2 + app/build.gradle | 128 ++ app/google-services.json | 48 + app/libs/achartengine-1.2.0.jar | Bin 0 -> 126046 bytes app/proguard-rules.pro | 81 + .../Reader/android/iisc/ApplicationTest.java | 13 + app/src/main/AndroidManifest.xml | 149 ++ app/src/main/assets/fa-solid-900.ttf | Bin 0 -> 203980 bytes app/src/main/ic_launcher-playstore.png | Bin 0 -> 64341 bytes .../no/Reader/android/iisc/DebugLogger.java | 50 + .../Reader/android/iisc/FeaturesActivity.java | 169 ++ .../no/Reader/android/iisc/FontAwesome.java | 35 + .../Reader/android/iisc/NotificationData.java | 69 + .../iisc/PermissionRationaleFragment.java | 58 + .../no/Reader/android/iisc/Reader/About.java | 24 + .../android/iisc/Reader/CreatePassword.java | 110 ++ .../Reader/android/iisc/Reader/Datashow.java | 103 + .../android/iisc/Reader/FontAwesome.java | 35 + .../android/iisc/Reader/ForgetPassword.java | 260 +++ .../iisc/Reader/ForgetPasswordReset.java | 69 + .../Reader/Interface/ItemClickListner.java | 9 + .../android/iisc/Reader/LoginScreen.java | 250 +++ .../android/iisc/Reader/MainActivity.java | 255 +++ .../iisc/Reader/Model/RegisterHelper.java | 41 + .../android/iisc/Reader/Model/Tests.java | 77 + .../Reader/android/iisc/Reader/Nav_Two.java | 140 ++ .../android/iisc/Reader/NavigationTop.java | 122 ++ .../android/iisc/Reader/NegativeResults.java | 200 ++ .../android/iisc/Reader/PositiveResult.java | 203 ++ .../no/Reader/android/iisc/Reader/Readme.txt | 54 + .../Reader/android/iisc/Reader/Register.java | 200 ++ .../iisc/Reader/SPCAManagerCallbacks.java | 17 + .../android/iisc/Reader/SPCAService.java | 204 ++ .../android/iisc/Reader/SpaceDecoration.java | 20 + .../android/iisc/Reader/TemplateActivity.java | 527 ++++++ .../iisc/Reader/TemplateActivity1.java | 528 ++++++ .../iisc/Reader/TemplateActivity2.java | 529 ++++++ .../iisc/Reader/TemplateActivity3.java | 391 ++++ .../android/iisc/Reader/TemplateManager.java | 959 ++++++++++ .../android/iisc/Reader/TestDetails.java | 150 ++ .../android/iisc/Reader/TestViewHolder.java | 48 + .../no/Reader/android/iisc/Reader/Try1.java | 293 +++ .../iisc/Reader/VerifyOTP/VerifyOtp.java | 155 ++ .../VerifyOTP/VerifyOtpForgetPassword.java | 154 ++ .../Reader/android/iisc/Reader/ViewGraph.java | 429 +++++ .../android/iisc/Reader/ViewSamples.java | 548 ++++++ .../callback/SPCACharacteristicCallback.java | 21 + .../Reader/callback/SPCADataCallback.java | 47 + .../no/Reader/android/iisc/Reader/check1.java | 1654 +++++++++++++++++ .../Reader/settings/SettingsActivity.java | 34 + .../Reader/settings/SettingsFragment.java | 18 + .../android/iisc/SplashscreenActivity.java | 144 ++ .../android/iisc/adapter/AppAdapter.java | 100 + .../iisc/app/ExpandableListActivity.java | 300 +++ .../android/iisc/battery/BatteryManager.java | 124 ++ .../iisc/battery/BatteryManagerCallbacks.java | 7 + .../android/iisc/parser/SPCAParser.java | 48 + .../iisc/profile/BleProfileActivity.java | 398 ++++ .../BleProfileExpandableListActivity.java | 401 ++++ .../iisc/profile/BleProfileService.java | 582 ++++++ .../BleProfileServiceReadyActivity.java | 626 +++++++ .../iisc/profile/LoggableBleManager.java | 48 + .../BleMulticonnectProfileService.java | 615 ++++++ ...lticonnectProfileServiceReadyActivity.java | 502 +++++ .../profile/multiconnect/IDeviceLogger.java | 45 + .../iisc/scanner/DeviceListAdapter.java | 193 ++ .../iisc/scanner/ExtendedBluetoothDevice.java | 32 + .../android/iisc/scanner/ScannerFragment.java | 268 +++ .../iisc/widget/ForegroundRelativeLayout.java | 149 ++ app/src/main/res/anim/bottom_animation.xml | 12 + app/src/main/res/anim/button_animation.xml | 16 + app/src/main/res/anim/top_animation.xml | 10 + app/src/main/res/color/button_color.xml | 5 + app/src/main/res/color/menu_text.xml | 26 + app/src/main/res/drawable-hdpi/battery.png | Bin 0 -> 392 bytes app/src/main/res/drawable-hdpi/download.png | Bin 0 -> 15904 bytes .../res/drawable-hdpi/drawer_shadow.9.png | Bin 0 -> 161 bytes app/src/main/res/drawable-hdpi/dst_logo.png | Bin 0 -> 34700 bytes app/src/main/res/drawable-hdpi/finalback.png | Bin 0 -> 332910 bytes .../res/drawable-hdpi/ic_action_bluetooth.png | Bin 0 -> 307 bytes .../drawable-hdpi/ic_action_disconnect.png | Bin 0 -> 332 bytes .../res/drawable-hdpi/ic_cgms_feature.png | Bin 0 -> 2926 bytes .../main/res/drawable-hdpi/ic_rssi_0_bar.png | Bin 0 -> 1038 bytes .../main/res/drawable-hdpi/ic_rssi_1_bar.png | Bin 0 -> 1125 bytes .../main/res/drawable-hdpi/ic_rssi_2_bars.png | Bin 0 -> 1318 bytes .../main/res/drawable-hdpi/ic_rssi_3_bars.png | Bin 0 -> 1356 bytes .../drawable-hdpi/ic_stat_notify_template.png | Bin 0 -> 546 bytes .../res/drawable-hdpi/ic_template_feature.png | Bin 0 -> 2597 bytes app/src/main/res/drawable-hdpi/iisc_logo.png | Bin 0 -> 228963 bytes app/src/main/res/drawable-hdpi/negative.png | Bin 0 -> 9391 bytes app/src/main/res/drawable-hdpi/positive.png | Bin 0 -> 12016 bytes app/src/main/res/drawable-hdpi/sample.png | Bin 0 -> 9134 bytes app/src/main/res/drawable-mdpi/download.png | Bin 0 -> 8277 bytes app/src/main/res/drawable-mdpi/dst_logo.png | Bin 0 -> 17136 bytes app/src/main/res/drawable-mdpi/finalback.png | Bin 0 -> 154478 bytes app/src/main/res/drawable-mdpi/iisc_logo.png | Bin 0 -> 122806 bytes app/src/main/res/drawable-mdpi/negative.png | Bin 0 -> 5289 bytes app/src/main/res/drawable-mdpi/positive.png | Bin 0 -> 6355 bytes app/src/main/res/drawable-mdpi/sample.png | Bin 0 -> 5231 bytes app/src/main/res/drawable-v21/button.xml | 34 + .../main/res/drawable-v21/ic_feature_bg.xml | 36 + .../ic_icon_button_background.xml | 18 + .../drawable-xhdpi/app_total_commander.png | Bin 0 -> 1596 bytes .../btn_default_focused_holo_light.9.png | Bin 0 -> 476 bytes app/src/main/res/drawable-xhdpi/download.png | Bin 0 -> 24885 bytes .../res/drawable-xhdpi/drawer_shadow.9.png | Bin 0 -> 174 bytes app/src/main/res/drawable-xhdpi/dst_logo.png | Bin 0 -> 35354 bytes app/src/main/res/drawable-xhdpi/finalback.png | Bin 0 -> 558021 bytes .../drawable-xhdpi/ic_action_bluetooth.png | Bin 0 -> 344 bytes .../drawable-xhdpi/ic_action_disconnect.png | Bin 0 -> 392 bytes .../res/drawable-xhdpi/ic_cgms_feature.png | Bin 0 -> 4650 bytes .../ic_stat_notify_template.png | Bin 0 -> 658 bytes .../drawable-xhdpi/ic_template_feature.png | Bin 0 -> 3771 bytes .../res/drawable-xhdpi/ic_uart_settings.png | Bin 0 -> 1661 bytes app/src/main/res/drawable-xhdpi/iisc_logo.png | Bin 0 -> 148037 bytes app/src/main/res/drawable-xhdpi/negative.png | Bin 0 -> 11459 bytes app/src/main/res/drawable-xhdpi/positive.png | Bin 0 -> 16107 bytes app/src/main/res/drawable-xhdpi/sample.png | Bin 0 -> 10351 bytes .../drawable-xxhdpi/action_bar_shadow.9.png | Bin 0 -> 140 bytes app/src/main/res/drawable-xxhdpi/download.png | Bin 0 -> 49622 bytes app/src/main/res/drawable-xxhdpi/dst_logo.png | Bin 0 -> 114701 bytes .../main/res/drawable-xxhdpi/finalback.png | Bin 0 -> 1171280 bytes app/src/main/res/drawable-xxhdpi/gradient.xml | 44 + .../drawable-xxhdpi/ic_action_add_normal.png | Bin 0 -> 1289 bytes .../drawable-xxhdpi/ic_action_add_pressed.png | Bin 0 -> 1520 bytes .../drawable-xxhdpi/ic_action_bluetooth.png | Bin 0 -> 502 bytes .../ic_action_clear_normal.png | Bin 0 -> 655 bytes .../ic_action_clear_pressed.png | Bin 0 -> 528 bytes .../drawable-xxhdpi/ic_action_disconnect.png | Bin 0 -> 512 bytes .../ic_action_download_normal.png | Bin 0 -> 329 bytes .../ic_action_download_pressed.png | Bin 0 -> 320 bytes .../main/res/drawable-xxhdpi/iisc_logo.png | Bin 0 -> 631036 bytes app/src/main/res/drawable-xxhdpi/negative.png | Bin 0 -> 27744 bytes app/src/main/res/drawable-xxhdpi/positive.png | Bin 0 -> 36307 bytes app/src/main/res/drawable-xxhdpi/sample.png | Bin 0 -> 26249 bytes .../main/res/drawable-xxxhdpi/download.png | Bin 0 -> 77115 bytes .../main/res/drawable-xxxhdpi/dst_logo.png | Bin 0 -> 185075 bytes .../main/res/drawable-xxxhdpi/finalback.png | Bin 0 -> 1970674 bytes .../drawable-xxxhdpi/ic_action_bluetooth.png | Bin 0 -> 595 bytes .../drawable-xxxhdpi/ic_action_disconnect.png | Bin 0 -> 642 bytes .../res/drawable-xxxhdpi/ic_battery_alert.png | Bin 0 -> 249 bytes .../res/drawable-xxxhdpi/ic_battery_full.png | Bin 0 -> 228 bytes .../main/res/drawable-xxxhdpi/iisc_logo.png | Bin 0 -> 941758 bytes .../main/res/drawable-xxxhdpi/negative.png | Bin 0 -> 43336 bytes .../main/res/drawable-xxxhdpi/positive.png | Bin 0 -> 56713 bytes app/src/main/res/drawable-xxxhdpi/sample.png | Bin 0 -> 40836 bytes app/src/main/res/drawable/app_sm_logo.png | Bin 0 -> 32660 bytes app/src/main/res/drawable/bg_circle.xml | 12 + app/src/main/res/drawable/bg_list_row.xml | 5 + app/src/main/res/drawable/button.xml | 28 + app/src/main/res/drawable/button_n.xml | 34 + app/src/main/res/drawable/button_p.xml | 34 + app/src/main/res/drawable/buttonshape.xml | 20 + app/src/main/res/drawable/green_circle.xml | 12 + app/src/main/res/drawable/ic_action_add.xml | 28 + app/src/main/res/drawable/ic_action_clear.xml | 28 + .../main/res/drawable/ic_action_download.xml | 28 + .../drawable/ic_baseline_graphic_eq_24.xml | 5 + .../main/res/drawable/ic_baseline_home_24.xml | 5 + .../main/res/drawable/ic_baseline_info_24.xml | 5 + .../res/drawable/ic_baseline_post_add_24.xml | 9 + .../res/drawable/ic_baseline_save_alt_24.xml | 5 + app/src/main/res/drawable/ic_battery.xml | 27 + app/src/main/res/drawable/ic_feature_bg.xml | 28 + app/src/main/res/drawable/ic_feature_bg_n.xml | 27 + app/src/main/res/drawable/ic_feature_bg_p.xml | 27 + .../main/res/drawable/ic_feature_small_bg.xml | 28 + .../res/drawable/ic_feature_small_bg_n.xml | 29 + .../res/drawable/ic_feature_small_bg_p.xml | 29 + app/src/main/res/drawable/ic_rssi_bar.xml | 28 + app/src/main/res/drawable/text_back.xml | 7 + app/src/main/res/font/fontstyle.ttf | Bin 0 -> 45352 bytes .../res/layout-land/activity_feature_gls.xml | 220 +++ .../layout-v23/fragment_device_selection.xml | 61 + app/src/main/res/layout/activity_about.xml | 294 +++ app/src/main/res/layout/activity_check1.xml | 9 + .../res/layout/activity_create__password.xml | 186 ++ app/src/main/res/layout/activity_datashow.xml | 558 ++++++ .../main/res/layout/activity_feature_gls.xml | 218 +++ .../res/layout/activity_feature_gls_item.xml | 58 + .../layout/activity_feature_gls_subitem.xml | 48 + .../res/layout/activity_feature_template.xml | 599 ++++++ .../res/layout/activity_feature_template1.xml | 601 ++++++ .../res/layout/activity_feature_template2.xml | 624 +++++++ .../res/layout/activity_feature_template3.xml | 63 + .../res/layout/activity_feature_template4.xml | 6 + app/src/main/res/layout/activity_features.xml | 88 + .../res/layout/activity_forget__password.xml | 205 ++ .../res/layout/activity_login__screen.xml | 200 ++ app/src/main/res/layout/activity_main.xml | 59 + .../res/layout/activity_navigation__top.xml | 51 + app/src/main/res/layout/activity_register.xml | 205 ++ app/src/main/res/layout/activity_settings.xml | 40 + .../main/res/layout/activity_splashscreen.xml | 282 +++ app/src/main/res/layout/activity_try1.xml | 29 + .../res/layout/activity_verify__o_t_p.xml | 205 ++ .../main/res/layout/activity_view_graph.xml | 66 + .../main/res/layout/activity_view_samples.xml | 329 ++++ app/src/main/res/layout/content_main.xml | 24 + app/src/main/res/layout/demo.xml | 139 ++ app/src/main/res/layout/device_list_empty.xml | 27 + app/src/main/res/layout/device_list_row.xml | 55 + app/src/main/res/layout/device_list_title.xml | 26 + app/src/main/res/layout/drawer.xml | 43 + .../res/layout/expandable_list_content.xml | 24 + app/src/main/res/layout/feature_icon.xml | 47 + .../res/layout/fragment_device_selection.xml | 50 + app/src/main/res/layout/head.xml | 97 + app/src/main/res/layout/item.xml | 126 ++ app/src/main/res/layout/nav_two.xml | 51 + app/src/main/res/layout/testdetails.xml | 159 ++ app/src/main/res/layout/toolbar.xml | 35 + app/src/main/res/menu/bottom_navigation.xml | 24 + app/src/main/res/menu/bottom_navigation1.xml | 15 + app/src/main/res/menu/download.xml | 19 + app/src/main/res/menu/menu.xml | 38 + app/src/main/res/menu/menu1.xml | 71 + app/src/main/res/menu/menu2.xml | 71 + app/src/main/res/menu/menu3.xml | 24 + app/src/main/res/menu/menu5.xml | 34 + app/src/main/res/menu/searchmenu.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2568 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 5394 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4596 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1608 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2949 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2677 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3932 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 8526 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6921 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6949 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 16588 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 11983 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10762 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 26469 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 18512 bytes app/src/main/res/values-hdpi/dimens.xml | 32 + app/src/main/res/values-land/dimens.xml | 29 + app/src/main/res/values-land/strings_gls.xml | 26 + app/src/main/res/values-ldpi/dimens.xml | 32 + app/src/main/res/values-sw600dp/dimens.xml | 42 + .../main/res/values-sw600dp/strings_gls.xml | 26 + .../main/res/values-sw720dp-land/dimens.xml | 36 + app/src/main/res/values-v19/styles.xml | 9 + app/src/main/res/values-v21/dimens.xml | 28 + app/src/main/res/values-v21/styles.xml | 62 + .../res/values-v21/styles_icon_button.xml | 47 + app/src/main/res/values-v23/styles.xml | 11 + app/src/main/res/values-xhdpi/dimens.xml | 32 + app/src/main/res/values-xxhdpi/dimens.xml | 32 + app/src/main/res/values-xxxhdpi/dimens.xml | 32 + app/src/main/res/values/attrs.xml | 28 + app/src/main/res/values/color.xml | 81 + app/src/main/res/values/dimens.xml | 58 + .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 84 + app/src/main/res/values/strings_gls.xml | 184 ++ app/src/main/res/values/strings_template.xml | 72 + app/src/main/res/values/styles.xml | 150 ++ .../main/res/values/styles_icon_button.xml | 47 + app/src/main/res/xml-v25/shortcuts.xml | 26 + app/src/main/res/xml/file_path.xml | 3 + app/src/main/res/xml/settings_template.xml | 34 + build.gradle | 44 + gradle.properties | 17 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++ gradlew.bat | 84 + resources/scenario_1.png | Bin 0 -> 45609 bytes resources/scenario_2.png | Bin 0 -> 49402 bytes resources/structure.png | Bin 0 -> 3399 bytes settings.gradle | 2 + 285 files changed, 23159 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/google-services.json create mode 100644 app/libs/achartengine-1.2.0.jar create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/no/Reader/android/iisc/ApplicationTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/assets/fa-solid-900.ttf create mode 100644 app/src/main/ic_launcher-playstore.png create mode 100644 app/src/main/java/no/Reader/android/iisc/DebugLogger.java create mode 100644 app/src/main/java/no/Reader/android/iisc/FeaturesActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/FontAwesome.java create mode 100644 app/src/main/java/no/Reader/android/iisc/NotificationData.java create mode 100644 app/src/main/java/no/Reader/android/iisc/PermissionRationaleFragment.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/About.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/CreatePassword.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Datashow.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/FontAwesome.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/ForgetPassword.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/ForgetPasswordReset.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Interface/ItemClickListner.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/LoginScreen.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/MainActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Model/RegisterHelper.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Model/Tests.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Nav_Two.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/NavigationTop.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/NegativeResults.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/PositiveResult.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Readme.txt create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Register.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/SPCAManagerCallbacks.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/SPCAService.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/SpaceDecoration.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity1.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity2.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity3.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TemplateManager.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TestDetails.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/TestViewHolder.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/Try1.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtp.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtpForgetPassword.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/ViewGraph.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/ViewSamples.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCACharacteristicCallback.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCADataCallback.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/check1.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsFragment.java create mode 100644 app/src/main/java/no/Reader/android/iisc/SplashscreenActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/adapter/AppAdapter.java create mode 100644 app/src/main/java/no/Reader/android/iisc/app/ExpandableListActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/battery/BatteryManager.java create mode 100644 app/src/main/java/no/Reader/android/iisc/battery/BatteryManagerCallbacks.java create mode 100644 app/src/main/java/no/Reader/android/iisc/parser/SPCAParser.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/BleProfileActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/BleProfileExpandableListActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/BleProfileService.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/BleProfileServiceReadyActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/LoggableBleManager.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileService.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileServiceReadyActivity.java create mode 100644 app/src/main/java/no/Reader/android/iisc/profile/multiconnect/IDeviceLogger.java create mode 100644 app/src/main/java/no/Reader/android/iisc/scanner/DeviceListAdapter.java create mode 100644 app/src/main/java/no/Reader/android/iisc/scanner/ExtendedBluetoothDevice.java create mode 100644 app/src/main/java/no/Reader/android/iisc/scanner/ScannerFragment.java create mode 100644 app/src/main/java/no/Reader/android/iisc/widget/ForegroundRelativeLayout.java create mode 100644 app/src/main/res/anim/bottom_animation.xml create mode 100644 app/src/main/res/anim/button_animation.xml create mode 100644 app/src/main/res/anim/top_animation.xml create mode 100644 app/src/main/res/color/button_color.xml create mode 100644 app/src/main/res/color/menu_text.xml create mode 100644 app/src/main/res/drawable-hdpi/battery.png create mode 100644 app/src/main/res/drawable-hdpi/download.png create mode 100644 app/src/main/res/drawable-hdpi/drawer_shadow.9.png create mode 100644 app/src/main/res/drawable-hdpi/dst_logo.png create mode 100644 app/src/main/res/drawable-hdpi/finalback.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_bluetooth.png create mode 100644 app/src/main/res/drawable-hdpi/ic_action_disconnect.png create mode 100644 app/src/main/res/drawable-hdpi/ic_cgms_feature.png create mode 100644 app/src/main/res/drawable-hdpi/ic_rssi_0_bar.png create mode 100644 app/src/main/res/drawable-hdpi/ic_rssi_1_bar.png create mode 100644 app/src/main/res/drawable-hdpi/ic_rssi_2_bars.png create mode 100644 app/src/main/res/drawable-hdpi/ic_rssi_3_bars.png create mode 100644 app/src/main/res/drawable-hdpi/ic_stat_notify_template.png create mode 100644 app/src/main/res/drawable-hdpi/ic_template_feature.png create mode 100644 app/src/main/res/drawable-hdpi/iisc_logo.png create mode 100644 app/src/main/res/drawable-hdpi/negative.png create mode 100644 app/src/main/res/drawable-hdpi/positive.png create mode 100644 app/src/main/res/drawable-hdpi/sample.png create mode 100644 app/src/main/res/drawable-mdpi/download.png create mode 100644 app/src/main/res/drawable-mdpi/dst_logo.png create mode 100644 app/src/main/res/drawable-mdpi/finalback.png create mode 100644 app/src/main/res/drawable-mdpi/iisc_logo.png create mode 100644 app/src/main/res/drawable-mdpi/negative.png create mode 100644 app/src/main/res/drawable-mdpi/positive.png create mode 100644 app/src/main/res/drawable-mdpi/sample.png create mode 100644 app/src/main/res/drawable-v21/button.xml create mode 100644 app/src/main/res/drawable-v21/ic_feature_bg.xml create mode 100644 app/src/main/res/drawable-v21/ic_icon_button_background.xml create mode 100644 app/src/main/res/drawable-xhdpi/app_total_commander.png create mode 100644 app/src/main/res/drawable-xhdpi/btn_default_focused_holo_light.9.png create mode 100644 app/src/main/res/drawable-xhdpi/download.png create mode 100644 app/src/main/res/drawable-xhdpi/drawer_shadow.9.png create mode 100644 app/src/main/res/drawable-xhdpi/dst_logo.png create mode 100644 app/src/main/res/drawable-xhdpi/finalback.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_bluetooth.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_action_disconnect.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_cgms_feature.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_stat_notify_template.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_template_feature.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_uart_settings.png create mode 100644 app/src/main/res/drawable-xhdpi/iisc_logo.png create mode 100644 app/src/main/res/drawable-xhdpi/negative.png create mode 100644 app/src/main/res/drawable-xhdpi/positive.png create mode 100644 app/src/main/res/drawable-xhdpi/sample.png create mode 100644 app/src/main/res/drawable-xxhdpi/action_bar_shadow.9.png create mode 100644 app/src/main/res/drawable-xxhdpi/download.png create mode 100644 app/src/main/res/drawable-xxhdpi/dst_logo.png create mode 100644 app/src/main/res/drawable-xxhdpi/finalback.png create mode 100644 app/src/main/res/drawable-xxhdpi/gradient.xml create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_add_normal.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_add_pressed.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_bluetooth.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_clear_normal.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_clear_pressed.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_disconnect.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_download_normal.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_download_pressed.png create mode 100644 app/src/main/res/drawable-xxhdpi/iisc_logo.png create mode 100644 app/src/main/res/drawable-xxhdpi/negative.png create mode 100644 app/src/main/res/drawable-xxhdpi/positive.png create mode 100644 app/src/main/res/drawable-xxhdpi/sample.png create mode 100644 app/src/main/res/drawable-xxxhdpi/download.png create mode 100644 app/src/main/res/drawable-xxxhdpi/dst_logo.png create mode 100644 app/src/main/res/drawable-xxxhdpi/finalback.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_action_bluetooth.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_action_disconnect.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_battery_alert.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_battery_full.png create mode 100644 app/src/main/res/drawable-xxxhdpi/iisc_logo.png create mode 100644 app/src/main/res/drawable-xxxhdpi/negative.png create mode 100644 app/src/main/res/drawable-xxxhdpi/positive.png create mode 100644 app/src/main/res/drawable-xxxhdpi/sample.png create mode 100644 app/src/main/res/drawable/app_sm_logo.png create mode 100644 app/src/main/res/drawable/bg_circle.xml create mode 100644 app/src/main/res/drawable/bg_list_row.xml create mode 100644 app/src/main/res/drawable/button.xml create mode 100644 app/src/main/res/drawable/button_n.xml create mode 100644 app/src/main/res/drawable/button_p.xml create mode 100644 app/src/main/res/drawable/buttonshape.xml create mode 100644 app/src/main/res/drawable/green_circle.xml create mode 100644 app/src/main/res/drawable/ic_action_add.xml create mode 100644 app/src/main/res/drawable/ic_action_clear.xml create mode 100644 app/src/main/res/drawable/ic_action_download.xml create mode 100644 app/src/main/res/drawable/ic_baseline_graphic_eq_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_home_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_info_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_post_add_24.xml create mode 100644 app/src/main/res/drawable/ic_baseline_save_alt_24.xml create mode 100644 app/src/main/res/drawable/ic_battery.xml create mode 100644 app/src/main/res/drawable/ic_feature_bg.xml create mode 100644 app/src/main/res/drawable/ic_feature_bg_n.xml create mode 100644 app/src/main/res/drawable/ic_feature_bg_p.xml create mode 100644 app/src/main/res/drawable/ic_feature_small_bg.xml create mode 100644 app/src/main/res/drawable/ic_feature_small_bg_n.xml create mode 100644 app/src/main/res/drawable/ic_feature_small_bg_p.xml create mode 100644 app/src/main/res/drawable/ic_rssi_bar.xml create mode 100644 app/src/main/res/drawable/text_back.xml create mode 100644 app/src/main/res/font/fontstyle.ttf create mode 100644 app/src/main/res/layout-land/activity_feature_gls.xml create mode 100644 app/src/main/res/layout-v23/fragment_device_selection.xml create mode 100644 app/src/main/res/layout/activity_about.xml create mode 100644 app/src/main/res/layout/activity_check1.xml create mode 100644 app/src/main/res/layout/activity_create__password.xml create mode 100644 app/src/main/res/layout/activity_datashow.xml create mode 100644 app/src/main/res/layout/activity_feature_gls.xml create mode 100644 app/src/main/res/layout/activity_feature_gls_item.xml create mode 100644 app/src/main/res/layout/activity_feature_gls_subitem.xml create mode 100644 app/src/main/res/layout/activity_feature_template.xml create mode 100644 app/src/main/res/layout/activity_feature_template1.xml create mode 100644 app/src/main/res/layout/activity_feature_template2.xml create mode 100644 app/src/main/res/layout/activity_feature_template3.xml create mode 100644 app/src/main/res/layout/activity_feature_template4.xml create mode 100644 app/src/main/res/layout/activity_features.xml create mode 100644 app/src/main/res/layout/activity_forget__password.xml create mode 100644 app/src/main/res/layout/activity_login__screen.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_navigation__top.xml create mode 100644 app/src/main/res/layout/activity_register.xml create mode 100644 app/src/main/res/layout/activity_settings.xml create mode 100644 app/src/main/res/layout/activity_splashscreen.xml create mode 100644 app/src/main/res/layout/activity_try1.xml create mode 100644 app/src/main/res/layout/activity_verify__o_t_p.xml create mode 100644 app/src/main/res/layout/activity_view_graph.xml create mode 100644 app/src/main/res/layout/activity_view_samples.xml create mode 100644 app/src/main/res/layout/content_main.xml create mode 100644 app/src/main/res/layout/demo.xml create mode 100644 app/src/main/res/layout/device_list_empty.xml create mode 100644 app/src/main/res/layout/device_list_row.xml create mode 100644 app/src/main/res/layout/device_list_title.xml create mode 100644 app/src/main/res/layout/drawer.xml create mode 100644 app/src/main/res/layout/expandable_list_content.xml create mode 100644 app/src/main/res/layout/feature_icon.xml create mode 100644 app/src/main/res/layout/fragment_device_selection.xml create mode 100644 app/src/main/res/layout/head.xml create mode 100644 app/src/main/res/layout/item.xml create mode 100644 app/src/main/res/layout/nav_two.xml create mode 100644 app/src/main/res/layout/testdetails.xml create mode 100644 app/src/main/res/layout/toolbar.xml create mode 100644 app/src/main/res/menu/bottom_navigation.xml create mode 100644 app/src/main/res/menu/bottom_navigation1.xml create mode 100644 app/src/main/res/menu/download.xml create mode 100644 app/src/main/res/menu/menu.xml create mode 100644 app/src/main/res/menu/menu1.xml create mode 100644 app/src/main/res/menu/menu2.xml create mode 100644 app/src/main/res/menu/menu3.xml create mode 100644 app/src/main/res/menu/menu5.xml create mode 100644 app/src/main/res/menu/searchmenu.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 app/src/main/res/values-hdpi/dimens.xml create mode 100644 app/src/main/res/values-land/dimens.xml create mode 100644 app/src/main/res/values-land/strings_gls.xml create mode 100644 app/src/main/res/values-ldpi/dimens.xml create mode 100644 app/src/main/res/values-sw600dp/dimens.xml create mode 100644 app/src/main/res/values-sw600dp/strings_gls.xml create mode 100644 app/src/main/res/values-sw720dp-land/dimens.xml create mode 100644 app/src/main/res/values-v19/styles.xml create mode 100644 app/src/main/res/values-v21/dimens.xml create mode 100644 app/src/main/res/values-v21/styles.xml create mode 100644 app/src/main/res/values-v21/styles_icon_button.xml create mode 100644 app/src/main/res/values-v23/styles.xml create mode 100644 app/src/main/res/values-xhdpi/dimens.xml create mode 100644 app/src/main/res/values-xxhdpi/dimens.xml create mode 100644 app/src/main/res/values-xxxhdpi/dimens.xml create mode 100644 app/src/main/res/values/attrs.xml create mode 100644 app/src/main/res/values/color.xml create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/ic_launcher_background.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/strings_gls.xml create mode 100644 app/src/main/res/values/strings_template.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/main/res/values/styles_icon_button.xml create mode 100644 app/src/main/res/xml-v25/shortcuts.xml create mode 100644 app/src/main/res/xml/file_path.xml create mode 100644 app/src/main/res/xml/settings_template.xml create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 resources/scenario_1.png create mode 100644 resources/scenario_2.png create mode 100644 resources/structure.png create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..b3405b3 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +My Application \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..fb7f4a8 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..5cd135a --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..958a5be --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..6199cc2 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..e8fa30f --- /dev/null +++ b/app/.gitignore @@ -0,0 +1,2 @@ +/build +*.iml diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..f39a873 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,128 @@ +apply plugin: 'com.android.application' +apply plugin: 'com.google.gms.google-services' +apply plugin: 'com.google.firebase.crashlytics' + + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.3" + + defaultConfig { + applicationId "no.Reader.android.iisc" + + minSdkVersion 18 + targetSdkVersion 29 + versionCode 78 + versionName "2.9.0" + resConfigs "en" + multiDexEnabled true + + + vectorDrawables.useSupportLibrary = true + } + buildTypes { + debug { + minifyEnabled false + shrinkResources false + + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + release { + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + compileOptions { + targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility JavaVersion.VERSION_1_8 + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + // nRF Toolbox is using Play Service 10.2.0 in order to make the app working in China: + // https://developer.android.com/training/wearables/apps/creating-app-china.html + //noinspection GradleDependency + implementation 'com.google.android.gms:play-services-wearable:10.2.0' + + implementation 'androidx.appcompat:appcompat:1.3.0-alpha01' + implementation 'androidx.preference:preference:1.1.1' + implementation 'de.hdodenhof:circleimageview:3.1.0' + + implementation 'no.nordicsemi.android:log:2.2.0' + implementation 'no.nordicsemi.android.support.v18:scanner:1.4.3' + implementation 'org.apache.poi:poi:4.0.0' + implementation 'org.apache.poi:poi-ooxml:4.0.0' + implementation 'com.android.support:multidex:1.0.1' + + // The DFU Library is imported automatically from jcenter: + implementation 'no.nordicsemi.android:dfu:1.10.3' + implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4' + + implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' + + + implementation 'com.hbb20:ccp:2.4.0' + implementation 'androidx.preference:preference:1.1.0-alpha04' + implementation 'com.google.android.material:material:1.1.0-alpha05' + implementation 'com.google.android.material:material:1.1.0' + + implementation 'com.google.firebase:firebase-database:16.0.4' + + implementation 'androidx.appcompat:appcompat:1.1.0-alpha04' + + implementation 'com.google.firebase:firebase-auth:16.0.5' + + + implementation 'androidx.preference:preference:1.1.0-alpha04' + + implementation 'no.nordicsemi.android:log:2.2.0' + implementation 'com.chaos.view:pinview:1.4.3' + implementation "androidx.browser:browser:1.3.0" + + + implementation 'com.github.bumptech.glide:glide:4.11.0' + implementation 'com.firebaseui:firebase-ui-database:7.1.1' + implementation 'com.github.PhilJay:MPAndroidChart:v2.2.4' + + implementation 'com.google.firebase:firebase-crashlytics:17.1.1' + + implementation 'com.hbb20:ccp:2.4.0' + + implementation 'com.google.firebase:firebase-auth:20.0.1' + + implementation 'com.google.android.material:material:1.0.0' + + + + + + + + implementation 'com.google.firebase:firebase-storage:16.0.4' + + // if you desire to build the DFU Library, clone the + // https://github.com/NordicSemiconductor/Android-DFU-Library project into DFULibrary folder, + // add it as a module into the project structure and uncomment the following line + // (and also the according lines in the settings.gradle): + // implementation project(':dfu') + + // Gson is needed for DFU to work. The DFU library dependency to Gson is internal and would + // not be attached to APK. + // See: https://github.com/NordicSemiconductor/Android-nRF-Toolbox/issues/86 + + // Import the BLE Common Library. + // The BLE Common Library depends on BLE Library. It is enough to include the first one. + implementation 'no.nordicsemi.android:ble-common:2.1.1' + // The BLE Common Library may be included from jcenter. If you want to modify the code, + // clone both projects from GitHub and replace the line above with the following + // (and also the according lines in the settings.gradle): + // implementation project(':ble-common') + + implementation('org.simpleframework:simple-xml:2.7.1') { + exclude group: 'stax', module: 'stax-api' + exclude group: 'xpp3', module: 'xpp3' + } +} \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..264ee77 --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,48 @@ +{ + "project_info": { + "project_number": "168819095878", + "firebase_url": "https://reader-app-43cb6-default-rtdb.firebaseio.com", + "project_id": "reader-app-43cb6", + "storage_bucket": "reader-app-43cb6.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:168819095878:android:9d4989cee1616d1a444d47", + "android_client_info": { + "package_name": "no.Reader.android.iisc" + } + }, + "oauth_client": [ + { + "client_id": "168819095878-f1d70oknl1g9l4sbrrlb6eniqchmtgb7.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "no.Reader.android.iisc", + "certificate_hash": "cd10342afabfcce43c9dc370cf20c4c2d6e1b1dd" + } + }, + { + "client_id": "168819095878-7a1tejv9lv3o144c9v5fj6bls8vi2soc.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCdG2nyJYp-71n67JtjsfKJCS00XUzKFQk" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [ + { + "client_id": "168819095878-7a1tejv9lv3o144c9v5fj6bls8vi2soc.apps.googleusercontent.com", + "client_type": 3 + } + ] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/libs/achartengine-1.2.0.jar b/app/libs/achartengine-1.2.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..21fe13d0da30876a51caf249404870886475360c GIT binary patch literal 126046 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 literal 0 HcmV?d00001 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..6f9aa2c --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,81 @@ +-optimizationpasses 5 +-dontusemixedcaseclassnames +-dontskipnonpubliclibraryclasses +-dontskipnonpubliclibraryclassmembers +-dontpreverify +-dontshrink +-verbose + +-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* + +-keepattributes *Annotation* +-keepattributes Signature + +-keepclasseswithmembernames class * { + native ; +} + +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keep public class * extends android.app.Activity +-keep public class * extends android.app.Application +-keep public class * extends android.app.Service +-keep public class * extends android.content.BroadcastReceiver +-keep public class * extends android.content.ContentProvider +-keep public class * extends android.app.backup.BackupAgentHelper +-keep public class * extends android.preference.Preference +-keep public class com.android.vending.licensing.ILicensingService + +# The AndroidX library contains references to newer platform versions. +# Don't warn about those in case this app is linking against an older platform version. +-dontwarn androidx.** + +-keep class com.google.android.gms.** +-dontwarn com.google.android.gms.** + +# Java +-keep class java.** { *; } +-dontnote java.** +-dontwarn java.** + +-keep class javax.** { *; } +-dontnote javax.** +-dontwarn javax.** + +-keep class sun.misc.Unsafe { *; } +-dontnote sun.misc.Unsafe + +-keep class javax.xml.stream.XMLOutputFactory { *; } + +# (the rt.jar has them) +-dontwarn com.bea.xml.stream.XMLWriterBase +-dontwarn javax.xml.stream.events.** +-dontwarn javax.xml.stream.** + +# Simple XML +-keep public class org.simpleframework.** { *; } +-keep class org.simpleframework.xml.** { *; } +-keep class org.simpleframework.xml.core.** { *; } +-keep class org.simpleframework.xml.util.** { *; } + +-keepattributes ElementList, Root, InnerClasses, LineNumberTable + +-keepclasseswithmembers class * { + @org.simpleframework.xml.* ; +} + +# Chart Engine +-keep class org.achartengine.** { *; } +-dontnote org.achartengine.** + +# HTTP (might require legacyLibraries) ? +-dontnote org.apache.http.params.** +-dontnote org.apache.http.conn.scheme.** +-dontnote org.apache.http.conn.** +-dontnote android.net.http.** + +# DFU Library +-keep class no.nordicsemi.android.dfu.** { *; } + diff --git a/app/src/androidTest/java/no/Reader/android/iisc/ApplicationTest.java b/app/src/androidTest/java/no/Reader/android/iisc/ApplicationTest.java new file mode 100644 index 0000000..dc90620 --- /dev/null +++ b/app/src/androidTest/java/no/Reader/android/iisc/ApplicationTest.java @@ -0,0 +1,13 @@ +package no.Reader.android.iisc; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..a5e3502 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/assets/fa-solid-900.ttf b/app/src/main/assets/fa-solid-900.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c59512f3ca5c18cae924d6897512ff5734c32b8 GIT binary patch literal 203980 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

|)x3^jKapWz0B6g%no11O?0LpPnj{2^-|v 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�y28=T)$P<#~T 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≻$pE^>=T!W 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
TU!9|1ecf2_OO&4m%_I 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�X-kIT4?Y>@PQa0s1$IKBsh1S)CQ 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 literal 0 HcmV?d00001 diff --git a/app/src/main/java/no/Reader/android/iisc/DebugLogger.java b/app/src/main/java/no/Reader/android/iisc/DebugLogger.java new file mode 100644 index 0000000..3438d5a --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/DebugLogger.java @@ -0,0 +1,50 @@ +package no.Reader.android.iisc; + +import android.util.Log; + + +public class DebugLogger { + public static void v(final String tag, final String text) { + if (BuildConfig.DEBUG) + Log.v(tag, text); + } + + public static void d(final String tag, final String text) { + if (BuildConfig.DEBUG) { + Log.d(tag, text); + } + } + + public static void i(final String tag, final String text) { + if (BuildConfig.DEBUG) + Log.i(tag, text); + } + + public static void w(final String tag, final String text) { + if (BuildConfig.DEBUG) { + Log.w(tag, text); + } + } + + public static void e(final String tag, final String text) { + if (BuildConfig.DEBUG) + Log.e(tag, text); + } + + public static void e(final String tag, final String text, final Throwable e) { + if (BuildConfig.DEBUG) + Log.e(tag, text, e); + } + + public static void wtf(final String tag, final String text) { + if (BuildConfig.DEBUG) { + Log.wtf(tag, text); + } + } + + public static void wtf(final String tag, final String text, final Throwable e) { + if (BuildConfig.DEBUG) { + Log.wtf(tag, text, e); + } + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/FeaturesActivity.java b/app/src/main/java/no/Reader/android/iisc/FeaturesActivity.java new file mode 100644 index 0000000..7b3754e --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/FeaturesActivity.java @@ -0,0 +1,169 @@ +package no.Reader.android.iisc; + +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.res.Configuration; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.core.view.GravityCompat; +import androidx.drawerlayout.widget.DrawerLayout; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import android.view.View; +import android.widget.GridView; +import android.widget.Toast; + +import no.Reader.android.iisc.adapter.AppAdapter; + +public class FeaturesActivity extends AppCompatActivity { + private static final String NRF_CONNECT_CATEGORY = "no.Reader.android.iisc.LAUNCHER"; + private static final String UTILS_CATEGORY = "no.Reader.android.iisc.UTILS"; + private static final String NRF_CONNECT_PACKAGE = "no.nordicsemi.android.mcp"; + private static final String NRF_CONNECT_CLASS = NRF_CONNECT_PACKAGE + ".DeviceListActivity"; + private static final String NRF_CONNECT_MARKET_URI = "market://details?id=no.nordicsemi.android.mcp"; + + // Extras that can be passed from NFC (see SplashscreenActivity) + public static final String EXTRA_APP = "application/vnd.no.nordicsemi.type.app"; + public static final String EXTRA_ADDRESS = "application/vnd.no.nordicsemi.type.address"; + + private DrawerLayout mDrawerLayout; + private ActionBarDrawerToggle mDrawerToggle; + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_features); + + final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); + + // ensure that Bluetooth exists + if (!ensureBLEExists()) + finish(); + + final DrawerLayout drawer = mDrawerLayout = findViewById(R.id.drawer_layout); + drawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + + // Set the drawer toggle as the DrawerListener + mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.drawer_open, R.string.drawer_close) { + @Override + public void onDrawerSlide(final View drawerView, final float slideOffset) { + // Disable the Hamburger icon animation + super.onDrawerSlide(drawerView, 0); + } + }; + drawer.addDrawerListener(mDrawerToggle); + + // setup plug-ins in the drawer + //setupPluginsInDrawer(drawer.findViewById(R.id.plugin_container)); + + // configure the app grid + final GridView grid = findViewById(R.id.grid); + grid.setAdapter(new AppAdapter(this)); + grid.setEmptyView(findViewById(android.R.id.empty)); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + final Intent intent = getIntent(); + if (intent.hasExtra(EXTRA_APP) && intent.hasExtra(EXTRA_ADDRESS)) { + final String app = intent.getStringExtra(EXTRA_APP); + switch (app) { + /*case "HRM": + final Intent newIntent = new Intent(this, HRSActivity.class); + newIntent.putExtra(EXTRA_ADDRESS, intent.getByteArrayExtra(EXTRA_ADDRESS)); + newIntent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + startActivity(newIntent); + break;*/ + default: + // other are not supported yet + break; + } + } + } + + + + @Override + protected void onPostCreate(final Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + // Sync the toggle state after onRestoreInstanceState has occurred. + mDrawerToggle.syncState(); + } + + @Override + public void onConfigurationChanged(@NonNull final Configuration newConfig) { + super.onConfigurationChanged(newConfig); + mDrawerToggle.onConfigurationChanged(newConfig); + } + + + + /* + private void setupPluginsInDrawer(final ViewGroup container) { + final LayoutInflater inflater = LayoutInflater.from(this); + final PackageManager pm = getPackageManager(); + + // look for nRF Connect + final Intent nrfConnectIntent = new Intent(Intent.ACTION_MAIN); + nrfConnectIntent.addCategory(NRF_CONNECT_CATEGORY); + nrfConnectIntent.setClassName(NRF_CONNECT_PACKAGE, NRF_CONNECT_CLASS); + final ResolveInfo nrfConnectInfo = pm.resolveActivity(nrfConnectIntent, 0); + + // configure link to nRF Connect + final TextView nrfConnectItem = container.findViewById(R.id.link_mcp); + if (nrfConnectInfo == null) { + nrfConnectItem.setTextColor(Color.GRAY); + final ColorMatrix grayscale = new ColorMatrix(); + grayscale.setSaturation(0.0f); + nrfConnectItem.getCompoundDrawables()[0].mutate().setColorFilter(new ColorMatrixColorFilter(grayscale)); + } + nrfConnectItem.setOnClickListener(v -> { + Intent action = nrfConnectIntent; + if (nrfConnectInfo == null) + action = new Intent(Intent.ACTION_VIEW, Uri.parse(NRF_CONNECT_MARKET_URI)); + action.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + action.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + try { + startActivity(action); + } catch (final ActivityNotFoundException e) { + Toast.makeText(FeaturesActivity.this, R.string.no_application_play, Toast.LENGTH_SHORT).show(); + } + mDrawerLayout.closeDrawers(); + }); + + // look for other plug-ins + final Intent utilsIntent = new Intent(Intent.ACTION_MAIN); + utilsIntent.addCategory(UTILS_CATEGORY); + + final List appList = pm.queryIntentActivities(utilsIntent, 0); + for (final ResolveInfo info : appList) { + final View item = inflater.inflate(R.layout.drawer_plugin, container, false); + final ImageView icon = item.findViewById(android.R.id.icon); + final TextView label = item.findViewById(android.R.id.text1); + + label.setText(info.loadLabel(pm)); + icon.setImageDrawable(info.loadIcon(pm)); + item.setOnClickListener(v -> { + final Intent intent = new Intent(); + intent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name)); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + startActivity(intent); + mDrawerLayout.closeDrawers(); + }); + container.addView(item); + } + } + */ + + private boolean ensureBLEExists() { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.no_ble, Toast.LENGTH_LONG).show(); + return false; + } + return true; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/FontAwesome.java b/app/src/main/java/no/Reader/android/iisc/FontAwesome.java new file mode 100644 index 0000000..b6d9cb7 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/FontAwesome.java @@ -0,0 +1,35 @@ +package no.Reader.android.iisc; + + +import android.content.Context; +import android.graphics.Typeface; +import android.util.AttributeSet; + +import androidx.appcompat.widget.AppCompatTextView; + +public class FontAwesome extends AppCompatTextView { + + + public FontAwesome(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + public FontAwesome(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public FontAwesome(Context context) { + super(context); + init(); + } + + private void init() { + + Typeface tf = Typeface.createFromAsset(getContext().getAssets(), + "fa-solid-900.ttf"); + setTypeface(tf); + } + +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/NotificationData.java b/app/src/main/java/no/Reader/android/iisc/NotificationData.java new file mode 100644 index 0000000..ab0c4e1 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/NotificationData.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2017, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package no.Reader.android.iisc; + +import android.app.Application; +import android.app.Notification; +import android.app.NotificationChannel; +import android.app.NotificationManager; +import android.content.Context; +import android.os.Build; + +import no.nordicsemi.android.dfu.DfuServiceInitiator; + +public class NotificationData extends Application { + public static final String CONNECTED_DEVICE_CHANNEL = "connected_device_channel"; + public static final String FILE_SAVED_CHANNEL = "file_saved_channel"; + public static final String PROXIMITY_WARNINGS_CHANNEL = "proximity_warnings_channel"; + + @Override + + + public void onCreate() { + super.onCreate(); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + DfuServiceInitiator.createDfuNotificationChannel(this); + + final NotificationChannel channel = new NotificationChannel(CONNECTED_DEVICE_CHANNEL, getString(R.string.channel_connected_devices_title), NotificationManager.IMPORTANCE_LOW); + channel.setDescription(getString(R.string.channel_connected_devices_description)); + channel.setShowBadge(false); + channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); + + final NotificationChannel fileChannel = new NotificationChannel(FILE_SAVED_CHANNEL, getString(R.string.channel_files_title), NotificationManager.IMPORTANCE_LOW); + fileChannel.setDescription(getString(R.string.channel_files_description)); + fileChannel.setShowBadge(false); + fileChannel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); + + final NotificationChannel proximityChannel = new NotificationChannel(PROXIMITY_WARNINGS_CHANNEL, getString(R.string.channel_proximity_warnings_title), NotificationManager.IMPORTANCE_LOW); + proximityChannel.setDescription(getString(R.string.channel_proximity_warnings_description)); + proximityChannel.setShowBadge(false); + proximityChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); + + final NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.createNotificationChannel(channel); + notificationManager.createNotificationChannel(fileChannel); + notificationManager.createNotificationChannel(proximityChannel); + } + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/PermissionRationaleFragment.java b/app/src/main/java/no/Reader/android/iisc/PermissionRationaleFragment.java new file mode 100644 index 0000000..c74aabb --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/PermissionRationaleFragment.java @@ -0,0 +1,58 @@ +package no.Reader.android.iisc; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.appcompat.app.AlertDialog; + + +public class PermissionRationaleFragment extends DialogFragment { + private static final String ARG_PERMISSION = "ARG_PERMISSION"; + private static final String ARG_TEXT = "ARG_TEXT"; + + private PermissionDialogListener mListener; + + public interface PermissionDialogListener { + void onRequestPermission(final String permission); + } + + @Override + public void onAttach(final Context context) { + super.onAttach(context); + + if (context instanceof PermissionDialogListener) { + mListener = (PermissionDialogListener) context; + } else { + throw new IllegalArgumentException("The parent activity must impelemnt PermissionDialogListener"); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mListener = null; + } + + public static PermissionRationaleFragment getInstance(final int aboutResId, final String permission) { + final PermissionRationaleFragment fragment = new PermissionRationaleFragment(); + + final Bundle args = new Bundle(); + args.putInt(ARG_TEXT, aboutResId); + args.putString(ARG_PERMISSION, permission); + fragment.setArguments(args); + + return fragment; + } + + @Override + @NonNull + public Dialog onCreateDialog(final Bundle savedInstanceState) { + final Bundle args = getArguments(); + final StringBuilder text = new StringBuilder(getString(args.getInt(ARG_TEXT))); + return new AlertDialog.Builder(getActivity()).setTitle(R.string.permission_title).setMessage(text) + .setNegativeButton(R.string.cancel, null) + .setPositiveButton(R.string.ok, (dialog, which) -> mListener.onRequestPermission(args.getString(ARG_PERMISSION))).create(); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/About.java b/app/src/main/java/no/Reader/android/iisc/Reader/About.java new file mode 100644 index 0000000..dbf02f8 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/About.java @@ -0,0 +1,24 @@ +package no.Reader.android.iisc.Reader; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; + +import no.Reader.android.iisc.R; + + +public class About extends NavigationTop { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_about, null, false); + draw.addView(contentView, 0); + /* LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_about, null, false); + */ + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/CreatePassword.java b/app/src/main/java/no/Reader/android/iisc/Reader/CreatePassword.java new file mode 100644 index 0000000..fb8d2b8 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/CreatePassword.java @@ -0,0 +1,110 @@ +package no.Reader.android.iisc.Reader; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.Model.RegisterHelper; + + +public class CreatePassword extends AppCompatActivity { + private Button next; + + String name,phonenumber,num1,num2; + private EditText passworddata; + private EditText ConfirmPassword; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_create__password); + passworddata=findViewById(R.id.password); + ConfirmPassword=findViewById(R.id.confirmpassword); + next=findViewById(R.id.next); + + next.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + num1 = ConfirmPassword.getText().toString(); + num2 = passworddata.getText().toString(); + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(CreatePassword.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + //Builder Retry Button + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } else { + + + if (num1.equals(num2)) { + Intent intent = new Intent(CreatePassword.this, LoginScreen.class); + name = getIntent().getStringExtra("username"); + + String phonenumberk = getIntent().getStringExtra("mobile"); + phonenumber = phonenumberk; + + FirebaseDatabase rootNode = FirebaseDatabase.getInstance(); + DatabaseReference reference = rootNode.getReference("USERS"); + RegisterHelper addNewUser = new RegisterHelper(name, phonenumber, num1); + + reference.child(phonenumber).setValue(addNewUser); + intent.putExtra("mobile", phonenumber); + intent.putExtra("username", name); + + Toast.makeText(CreatePassword.this, "You are Registered Successfully ", Toast.LENGTH_SHORT).show(); + startActivity(intent); + + + } else { + ConfirmPassword.setError("Password does not match"); + } + } + } + + }); + + + } + public boolean isOnline() { + ConnectivityManager connMgr = (ConnectivityManager) + getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); + return (networkInfo != null && networkInfo.isConnected()); + + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Datashow.java b/app/src/main/java/no/Reader/android/iisc/Reader/Datashow.java new file mode 100644 index 0000000..4b94c7a --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Datashow.java @@ -0,0 +1,103 @@ +package no.Reader.android.iisc.Reader; + +import android.os.Bundle; + + +import android.content.SharedPreferences; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; + +import no.Reader.android.iisc.Reader.Model.Tests; +import no.Reader.android.iisc.R; + + +public class Datashow extends NavigationTop { + private ImageView Imageview1; + TextView patient_id,patient_dob,patientnikshayid,agepatient,patientgender,patientsample,validatyd,spintubeid,nirtlab,dated,timed,resultd; + + String date,time,number; + + private String TestID = ""; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_datashow, null, false); + draw.addView(contentView, 0); + + patient_id=findViewById(R.id.patient_idr); + patient_dob=findViewById(R.id.patien_dobr); + patientnikshayid=findViewById(R.id.patient_nikshayidr); + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences6.getString("Phone", null); + + agepatient=findViewById(R.id.patient_ager); + date = String.valueOf(android.text.format.DateFormat.format("dd-MM-yyyy", new java.util.Date())); + DateFormat df = new SimpleDateFormat("h:mm a"); + time = df.format(Calendar.getInstance().getTime()); + + patientgender=findViewById(R.id.patient_genderr); + patientsample=findViewById(R.id.patient_typesampler); + validatyd=findViewById(R.id.patient_tubevisibler); + spintubeid=findViewById(R.id.patient_spintuber); + nirtlab=findViewById(R.id.patient_nirtr); + timed=findViewById(R.id.timer); + resultd=findViewById(R.id.patient_resultr); + dated=findViewById(R.id.dater); + + + + + TestID = getIntent().getStringExtra("pid"); + + Log.e("main", "error id "+TestID); + + + getTestDetails(TestID); + } + private void getTestDetails(String TestID) + { + DatabaseReference productsRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + + productsRef.child(TestID).addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) + { + if (dataSnapshot.exists()) + { + + + Tests products = dataSnapshot.getValue(Tests.class); + patient_id.setText(products.getTest_Id()); + patient_dob.setText(products.getSample_Date()); + + + } + } + + @Override + public void onCancelled(DatabaseError databaseError) { + + } + }); + } + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/FontAwesome.java b/app/src/main/java/no/Reader/android/iisc/Reader/FontAwesome.java new file mode 100644 index 0000000..c5209ce --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/FontAwesome.java @@ -0,0 +1,35 @@ +package no.Reader.android.iisc.Reader; + + +import android.content.Context; +import android.graphics.Typeface; +import android.util.AttributeSet; + +import androidx.appcompat.widget.AppCompatTextView; + +public class FontAwesome extends AppCompatTextView { + + + public FontAwesome(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + public FontAwesome(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public FontAwesome(Context context) { + super(context); + init(); + } + + private void init() { + + Typeface tf = Typeface.createFromAsset(getContext().getAssets(), + "fa-solid-900.ttf"); + setTypeface(tf); + } + +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPassword.java b/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPassword.java new file mode 100644 index 0000000..8a906bb --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPassword.java @@ -0,0 +1,260 @@ +package no.Reader.android.iisc.Reader; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import com.chaos.view.PinView; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.android.gms.tasks.TaskExecutors; +import com.google.firebase.FirebaseException; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.PhoneAuthCredential; +import com.google.firebase.auth.PhoneAuthProvider; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; +import com.google.firebase.database.ValueEventListener; +import com.hbb20.CountryCodePicker; + +import java.util.concurrent.TimeUnit; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.VerifyOTP.VerifyOtpForgetPassword; + + +public class ForgetPassword extends AppCompatActivity { + + private String verificationid; + private FirebaseAuth mAuth; + private int code = 91; + private Button nextactivity; + private ProgressBar progressBar; + CountryCodePicker ccp; + PinView pinFromUser; + String mobile; + + private EditText editTextnumber; + String codeBySystem; + boolean exists; + String address,name, state , city ,pincode,phonenumber,password2,num1,phonenum; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_forget__password); + editTextnumber=findViewById(R.id.editTextMobile); + ccp=findViewById(R.id.ccp); + ccp.registerCarrierNumberEditText(editTextnumber); + // nextactivity = findViewById(R.id.buttonSignIn); + + mAuth = FirebaseAuth.getInstance(); + + + findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(ForgetPassword.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + //Builder Retry Button + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + /* //Restart The Activity + Intent intent = getIntent(); + finish(); + startActivity(intent);*/ + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } else { + + mobile = editTextnumber.getText().toString().trim(); + mobile = mobile.replaceAll("[^0-9]", ""); + + + phonenum = ccp.getFullNumberWithPlus(); + if(mobile.equals("")) + { + editTextnumber.setError("Enter the contact number"); + } + + + Query chekuser = FirebaseDatabase.getInstance().getReference("USERS").orderByChild("number").equalTo(mobile); + chekuser.addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + if (dataSnapshot.exists()) { + Intent intent = new Intent(ForgetPassword.this, VerifyOtpForgetPassword.class); + Toast.makeText(ForgetPassword.this, "We Have Sent the OTP to your mentioned Number", Toast.LENGTH_SHORT).show(); + intent.putExtra("mobilecode", phonenum); + intent.putExtra("mobile", mobile); + + startActivity(intent); + + + } else { + // Toast.makeText(ForgetPassword.this,phonenum,Toast.LENGTH_SHORT).show(); + editTextnumber.setError("No Such User Exists"); + + // Toast.makeText(ForgetPassword.this,"NO such user exists",Toast.LENGTH_SHORT).show(); + } + + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + Log.e("Raman", "Received an exception check chexk " + databaseError.getMessage()); + + // Toast.makeText(ForgetPassword.this,databaseError.getMessage(),Toast.LENGTH_SHORT).show(); + + } + }); + + + } + } + + }); + + } + private void verifyCode(String code){ + PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationid, code); + signInWithCredential(credential); + } + + private void signInWithCredential(PhoneAuthCredential credential) { + mAuth.signInWithCredential(credential) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + + Intent intent = new Intent(ForgetPassword.this, ForgetPasswordReset.class); + intent.putExtra("mobile", mobile); + + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + + + startActivity(intent); + + } else { + Toast.makeText(ForgetPassword.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); + } + } + + }); + } + + private void sendVerificationCode(String number){ + + PhoneAuthProvider.getInstance().verifyPhoneNumber( + number, + 60, + TimeUnit.SECONDS, + (Activity) TaskExecutors.MAIN_THREAD, + mCallBack + ); + } + + private PhoneAuthProvider.OnVerificationStateChangedCallbacks + mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { + + @Override + public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { + super.onCodeSent(s, forceResendingToken); + verificationid = s; + } + + @Override + public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { + String code = phoneAuthCredential.getSmsCode(); + if (code != null){ + progressBar.setVisibility(View.VISIBLE); + pinFromUser.setText(code); + verifyCode(code); + } + } + + @Override + public void onVerificationFailed(FirebaseException e) { + Toast.makeText(ForgetPassword.this, e.getMessage(), Toast.LENGTH_LONG).show(); + + } + }; + + + + + private void checkuserexist(String number) + { + Query chekuser= FirebaseDatabase.getInstance().getReference("USERS").orderByChild("number").equalTo(number); + chekuser.addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + if(dataSnapshot.exists()) + { + exists= true; + } + else + { + exists=false; + } + + + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + Toast.makeText(ForgetPassword.this,databaseError.getMessage(), Toast.LENGTH_SHORT).show(); + + } + }); + + + + + + + } + public boolean isOnline() { + ConnectivityManager connMgr = (ConnectivityManager) + getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); + return (networkInfo != null && networkInfo.isConnected()); + + } + +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPasswordReset.java b/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPasswordReset.java new file mode 100644 index 0000000..40ba754 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/ForgetPasswordReset.java @@ -0,0 +1,69 @@ +package no.Reader.android.iisc.Reader; + + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.app.AppCompatActivity; + +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import no.Reader.android.iisc.R; + +public class ForgetPasswordReset extends AppCompatActivity { + private Button next; + + String phonenumber,num1,num2; + private EditText passworddata; + private EditText ConfirmPassword; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_create__password); + passworddata=findViewById(R.id.password); + ConfirmPassword=findViewById(R.id.confirmpassword); + next=findViewById(R.id.next); + + + + next.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + num1 = ConfirmPassword.getText().toString(); + num2=passworddata.getText().toString(); + if(num1.equals(num2)) { + + Intent intent = new Intent(ForgetPasswordReset.this, LoginScreen.class); + + String phonenumberk = getIntent().getStringExtra("mobile"); + phonenumber = phonenumberk; + + FirebaseDatabase rootNode = FirebaseDatabase.getInstance(); + DatabaseReference reference = rootNode.getReference("USERS"); + + + reference.child(phonenumber).child("password").setValue(num1); + Toast.makeText(ForgetPasswordReset.this, "Password Reset Successfully ", Toast.LENGTH_SHORT).show(); + startActivity(intent); + + } + else + { + ConfirmPassword.setError("Password does not match"); + } + } + }); + + + } +} + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Interface/ItemClickListner.java b/app/src/main/java/no/Reader/android/iisc/Reader/Interface/ItemClickListner.java new file mode 100644 index 0000000..528aa48 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Interface/ItemClickListner.java @@ -0,0 +1,9 @@ +package no.Reader.android.iisc.Reader.Interface; + + +import android.view.View; + +public interface ItemClickListner +{ + void onClick(View view, int position, boolean isLongClick); +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/LoginScreen.java b/app/src/main/java/no/Reader/android/iisc/Reader/LoginScreen.java new file mode 100644 index 0000000..2f907d6 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/LoginScreen.java @@ -0,0 +1,250 @@ +package no.Reader.android.iisc.Reader; + +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.text.method.HideReturnsTransformationMethod; +import android.text.method.PasswordTransformationMethod; +import android.util.Patterns; +import android.view.View; +import android.view.animation.Animation; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.ImageButton; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.AppCompatCheckBox; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; +import com.google.firebase.database.ValueEventListener; + +import no.Reader.android.iisc.R; + + +public class LoginScreen extends AppCompatActivity { + + private TextView createaccount, forgetpassword; + private Button login; + private DatabaseReference databaseReference; + private EditText phonenumber, password; + String passworddata, phonenum, phonenumbers, name; + private ProgressDialog loadingBar; + public static final String Name = "nameKey"; + public static final String Phone = "phoneKey"; + private ImageButton close; + Animation btnAnim ; + + private AppCompatCheckBox checkbox; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login__screen); + createaccount = findViewById(R.id.createaccount); + phonenumber = findViewById(R.id.contactnumber); + checkbox = (AppCompatCheckBox) findViewById(R.id.showpassword); + + password = findViewById(R.id.password); + checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { + if (isChecked) { + // show password + password.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); + } else { + // hide password + password.setTransformationMethod(PasswordTransformationMethod.getInstance()); + } + } + }); + + // Paper.init(this); + loadingBar = new ProgressDialog(this); + // Paper.init(this); + + login = findViewById(R.id.login); + forgetpassword = findViewById(R.id.forgetpassword); + forgetpassword.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(LoginScreen.this, ForgetPassword.class); + startActivity(intent); + + } + }); + login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(LoginScreen.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + //Builder Retry Button + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } else { + String mobile = phonenumber.getText().toString().trim(); + phonenum = mobile; + final String passwordj = password.getText().toString().trim(); + + + if (mobile.equals("") || passwordj.equals("")) { + Toast.makeText(LoginScreen.this, "Please enter all the required fields", Toast.LENGTH_SHORT).show(); + + } else if (!Patterns.PHONE.matcher(mobile).matches()) { + + phonenumber.setError("Enter a valid number"); + + } else { + loadingBar.setTitle("Login Account"); + loadingBar.setMessage("Please wait, while we are checking the credentials."); + loadingBar.setCanceledOnTouchOutside(false); + loadingBar.show(); + + Query chekuser = FirebaseDatabase.getInstance().getReference("USERS").orderByChild("number").equalTo(phonenum); + chekuser.addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + if (dataSnapshot.exists()) { + String systempassword = dataSnapshot.child(phonenum).child("password").getValue(String.class); + + if (systempassword.equals(passwordj)) { + + Toast.makeText(LoginScreen.this, "logged in Successfully...", Toast.LENGTH_SHORT).show(); + loadingBar.dismiss(); + String name = dataSnapshot.child(phonenum).child("name").getValue(String.class); + + + SharedPreferences preferences = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + editor.putString("Phone", phonenum); + editor.putString("Name", name); + + + editor.commit(); + + + Intent intent = new Intent(LoginScreen.this, MainActivity.class); + + + intent.putExtra("mobile", phonenum); + + startActivity(intent); + + } else { + loadingBar.dismiss(); + + Toast.makeText(LoginScreen.this, "Wrong Password", Toast.LENGTH_SHORT).show(); + } + } else { + loadingBar.dismiss(); + + Toast.makeText(LoginScreen.this, "No such user exists", Toast.LENGTH_SHORT).show(); + } + + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + Toast.makeText(LoginScreen.this, databaseError.getMessage(), Toast.LENGTH_SHORT).show(); + + } + }); + + + } + } + } + }); + createaccount.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(LoginScreen.this, Register.class); + startActivity(intent); + } + }); + } + + private void finishQuiz() { + if (!isOnline()) { + + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(LoginScreen.this); + Checkbuilder.setTitle("Error!"); + Checkbuilder.setMessage("Enable your internet connection and Retry "); + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + } + ); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } + } + @Override + public void onBackPressed() { + + finishAffinity(); + finish(); + } + + public boolean isOnline() { + ConnectivityManager connMgr = (ConnectivityManager) + getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); + return (networkInfo != null && networkInfo.isConnected()); + + } + + + + + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/MainActivity.java b/app/src/main/java/no/Reader/android/iisc/Reader/MainActivity.java new file mode 100644 index 0000000..30643fd --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/MainActivity.java @@ -0,0 +1,255 @@ +package no.Reader.android.iisc.Reader; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.SearchView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.ui.database.FirebaseRecyclerOptions; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.Model.Tests; + + +public class MainActivity extends NavigationTop { + private DatabaseReference TestRef; + private RecyclerView recyclerView; + + private TextView info; + FloatingActionButton fasbs; + + String number; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_main, null, false); + draw.addView(contentView, 0); + + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences6.getString("Phone", null); + fasbs=findViewById(R.id.fab); + info=findViewById(R.id.info); + info.setVisibility(View.VISIBLE); + + Log.e("main", "error "+number); + TestRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + recyclerView = findViewById(R.id.recycler_view); + fasbs.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(MainActivity.this, TestDetails.class); + startActivity(intent); + + } + }); + + LinearLayoutManager layoutManager1=new LinearLayoutManager(this); + + recyclerView.setLayoutManager(new GridLayoutManager(this, 1)); + + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + int height = displayMetrics.heightPixels / 8; + int spaceInPixel = 4; + recyclerView.addItemDecoration(new SpaceDecoration(spaceInPixel)); + + } + @Override + protected void onStart() + { + super.onStart(); + + + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(TestRef, Tests.class) + .build(); + + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull TestViewHolder holder, int position, @NonNull final Tests model) + { + if(model.getInternal().contains("Yes") || model.getInternal().contains("No")) + { + info.setVisibility(View.INVISIBLE); + + } + if(model.getInternal().contains("Yes") ) + { + holder.iconfinder.setBackgroundResource(R.drawable.green_circle); + holder.iconfinder.setText("I"); + + + + + } + + + holder.txtpatientid.setText("User Name :"+model.getUser_Name()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); +holder.txttimestamp.setText(model.getSample_Date()); + + //holder.txtProductDescription.setText(model.getSample()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(MainActivity.this, ViewSamples.class); + Log.e("main", "error id"+model.getTest_Id()); + Log.e("main", "TestID"+model.getTest_Id()); + + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + + } + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + private void firebasesearch(String data) + { + { + Query firebaseSearchQuery = TestRef.orderByChild("Test_Id").startAt(data).endAt(data + "\uf8ff"); + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(firebaseSearchQuery, Tests.class) + .build(); + + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull final TestViewHolder holder, int position, @NonNull final Tests model) + { + if(model.getInternal().contains("Yes") || model.getInternal().contains("No")) + { + info.setVisibility(View.INVISIBLE); + + } + if(model.getInternal().contains("Yes") ) + { + holder.iconfinder.setBackgroundResource(R.drawable.green_circle); + holder.iconfinder.setText("I"); + + + + + } + + holder.txtpatientid.setText("User Name :"+model.getUser_Name()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); + holder.txttimestamp.setText(model.getSample_Date()); + + //holder.txtProductDescription.setText(model.getSample()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(MainActivity.this, ViewSamples.class); + Log.e("main", "error id"+model.getTest_Id()); + Log.e("main", "TestID"+model.getTest_Id()); + + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + + } + + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater=getMenuInflater(); + inflater.inflate(R.menu.searchmenu,menu); + MenuItem item = menu.findItem(R.id.search); + SearchView searchView = (SearchView) item.getActionView(); + //searchView.setIconified(false); + //searchView.setIconifiedByDefault(false); + searchView.setQueryHint("Search Test ID"); + + + searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + query=query.toLowerCase(); + + firebasesearch(query); + // processsearch(query); + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + newText=newText.toLowerCase(); + + firebasesearch(newText); + + // processsearch(query); + + return false; + } + }); + return super.onCreateOptionsMenu(menu); + } + @Override + public void onBackPressed() { + + finishAffinity(); + finish(); + } +} + + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Model/RegisterHelper.java b/app/src/main/java/no/Reader/android/iisc/Reader/Model/RegisterHelper.java new file mode 100644 index 0000000..3260ae4 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Model/RegisterHelper.java @@ -0,0 +1,41 @@ +package no.Reader.android.iisc.Reader.Model; + +import java.io.Serializable; + +public class RegisterHelper implements Serializable { + + public String name, number, password; + + public RegisterHelper(String name, String number, String password) { + this.name = name; + this.number = number; + this.password = password; + } + public RegisterHelper() { + + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNumber() { + return number; + } + + public void setNumber(String number) { + this.number = number; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Model/Tests.java b/app/src/main/java/no/Reader/android/iisc/Reader/Model/Tests.java new file mode 100644 index 0000000..6cfc089 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Model/Tests.java @@ -0,0 +1,77 @@ +package no.Reader.android.iisc.Reader.Model; + +public class Tests { + + private String Test_Id, Time, User_Name, Sample_volume, Sample_Date, Percentage, Internal; + + public Tests() { + + + } + + public Tests(String test_Id, String time, String user_Name, String sample_volume, String sample_Date, String percentage, String internal) { + Test_Id = test_Id; + Time = time; + User_Name = user_Name; + Sample_volume = sample_volume; + Sample_Date = sample_Date; + Percentage = percentage; + Internal = internal; + } + + public String getTest_Id() { + return Test_Id; + } + + public void setTest_Id(String test_Id) { + Test_Id = test_Id; + } + + public String getTime() { + return Time; + } + + public void setTime(String time) { + Time = time; + } + + public String getUser_Name() { + return User_Name; + } + + public void setUser_Name(String user_Name) { + User_Name = user_Name; + } + + public String getSample_volume() { + return Sample_volume; + } + + public void setSample_volume(String sample_volume) { + Sample_volume = sample_volume; + } + + public String getSample_Date() { + return Sample_Date; + } + + public void setSample_Date(String sample_Date) { + Sample_Date = sample_Date; + } + + public String getPercentage() { + return Percentage; + } + + public void setPercentage(String percentage) { + Percentage = percentage; + } + + public String getInternal() { + return Internal; + } + + public void setInternal(String internal) { + Internal = internal; + } +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Nav_Two.java b/app/src/main/java/no/Reader/android/iisc/Reader/Nav_Two.java new file mode 100644 index 0000000..dc040c0 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Nav_Two.java @@ -0,0 +1,140 @@ +package no.Reader.android.iisc.Reader; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; +import android.os.Environment; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.content.FileProvider; +import androidx.drawerlayout.widget.DrawerLayout; + +import com.google.android.material.navigation.NavigationView; + +import java.io.File; + +import no.Reader.android.iisc.R; + +public class Nav_Two extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + + protected DrawerLayout draw; + private LinearLayout line; + private Toolbar tool; + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { + switch (menuItem.getItemId()) + { + + case R.id.nav_contact_us: + Intent intent1=new Intent(this,About.class); + startActivity(intent1); + break; + case R.id.nav_result: + Intent intent2=new Intent(this, MainActivity.class); + startActivity(intent2); + break; + case R.id.nav_add_Test: + Intent intent3=new Intent(this, TestDetails.class); + startActivity(intent3); + break; + case R.id.nav_sample: + Intent intent6=new Intent(this, TemplateActivity2.class); + startActivity(intent6); + break; + case R.id.nav_negative: + Intent intent4=new Intent(this, NegativeResults.class); + startActivity(intent4); + break; + case R.id.nav_positive: + Intent intent5=new Intent(this, PositiveResult.class); + startActivity(intent5); + break; + case R.id.nav_logout: + Intent intent8=new Intent(this, LoginScreen.class); + SharedPreferences preferences = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + editor.putString("Phone", null); + editor.putString("Name",null); + + + editor.commit(); + + startActivity(intent8); + break; + + } + return true; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + + setContentView(R.layout.nav_two); + + + draw = findViewById(R.id.Drawer); + line = findViewById(R.id.line); + tool = findViewById(R.id.tollbar); + NavigationView navigationView = findViewById(R.id.navigation); + navigationView.setNavigationItemSelectedListener(this); + + setSupportActionBar(tool); + + Window window = getWindow(); + window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); + + + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, draw, tool, R.string.open_navigation_drawer, R.string.close_navigation_drawer) { + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + super.onDrawerSlide(drawerView, slideOffset); + float sidebar = drawerView.getWidth() * slideOffset; + line.setTranslationX(sidebar); + } + }; + + draw.addDrawerListener(toggle); + toggle.syncState(); + View headerView = navigationView.getHeaderView(0); + TextView textView=headerView.findViewById(R.id.text); + TextView textView1=headerView.findViewById(R.id.not_sign_in); + + SharedPreferences preferences=getSharedPreferences("PhoneBook_number",MODE_PRIVATE); + + String string1 = preferences.getString("Phone", null); + String string2 = preferences.getString("Name", null); + textView.setText(string2); + textView1.setText(string1); + + } + public void shared( String testid) { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + Intent intent = new Intent(Intent.ACTION_VIEW); + File file = new File(pat); + Uri path = FileProvider.getUriForFile(getApplicationContext(), "no.Reader.android.iisc.fileprovider", file); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + } + +} + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/NavigationTop.java b/app/src/main/java/no/Reader/android/iisc/Reader/NavigationTop.java new file mode 100644 index 0000000..217d333 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/NavigationTop.java @@ -0,0 +1,122 @@ +package no.Reader.android.iisc.Reader; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.ActionBarDrawerToggle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.drawerlayout.widget.DrawerLayout; + +import com.google.android.material.navigation.NavigationView; + +import no.Reader.android.iisc.R; + + +public class NavigationTop extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener { + + protected DrawerLayout draw; + private LinearLayout line; + private Toolbar tool; + + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { + switch (menuItem.getItemId()) + { + + case R.id.nav_contact_us: + Intent intent1=new Intent(this,About.class); + startActivity(intent1); + break; + case R.id.nav_result: + Intent intent2=new Intent(this, MainActivity.class); + startActivity(intent2); + break; + case R.id.nav_add_Test: + Intent intent3=new Intent(this, TestDetails.class); + startActivity(intent3); + break; + case R.id.nav_sample: + Intent intent6=new Intent(this, TemplateActivity2.class); + startActivity(intent6); + break; + case R.id.nav_negative: + Intent intent4=new Intent(this, NegativeResults.class); + startActivity(intent4); + break; + case R.id.nav_positive: + Intent intent5=new Intent(this, PositiveResult.class); + startActivity(intent5); + break; + case R.id.nav_logout: + Intent intent8=new Intent(this, LoginScreen.class); + SharedPreferences preferences = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + editor.putString("Phone", null); + editor.putString("Name",null); + + + editor.commit(); + + startActivity(intent8); + break; + + } + return true; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); + + setContentView(R.layout.activity_navigation__top); + + + draw = findViewById(R.id.Drawer); + line = findViewById(R.id.line); + tool = findViewById(R.id.tollbar); + NavigationView navigationView = findViewById(R.id.navigation); + navigationView.setNavigationItemSelectedListener(this); + + setSupportActionBar(tool); + + Window window = getWindow(); + window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS); + + + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, draw, tool, R.string.open_navigation_drawer, R.string.close_navigation_drawer) { + @Override + public void onDrawerSlide(View drawerView, float slideOffset) { + super.onDrawerSlide(drawerView, slideOffset); + float sidebar = drawerView.getWidth() * slideOffset; + line.setTranslationX(sidebar); + } + }; + + draw.addDrawerListener(toggle); + toggle.syncState(); + View headerView = navigationView.getHeaderView(0); + TextView textView=headerView.findViewById(R.id.text); + TextView textView1=headerView.findViewById(R.id.not_sign_in); + + SharedPreferences preferences=getSharedPreferences("PhoneBook_number",MODE_PRIVATE); + + String string1 = preferences.getString("Phone", null); + String string2 = preferences.getString("Name", null); + textView.setText(string2); + textView1.setText(string1); + + } +} + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/NegativeResults.java b/app/src/main/java/no/Reader/android/iisc/Reader/NegativeResults.java new file mode 100644 index 0000000..4268e72 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/NegativeResults.java @@ -0,0 +1,200 @@ +package no.Reader.android.iisc.Reader; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.ui.database.FirebaseRecyclerOptions; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.Model.Tests; + + +public class NegativeResults extends NavigationTop { + private DatabaseReference TestRef; + private RecyclerView recyclerView; + + private TextView info; + + FloatingActionButton fasbs; + + String number; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_main, null, false); + draw.addView(contentView, 0); + + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences6.getString("Phone", null); + fasbs=findViewById(R.id.fab); + info=findViewById(R.id.info); + info.setText("No Results "); + info.setVisibility(View.VISIBLE); + + + Log.e("main", "error "+number); + TestRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + recyclerView = findViewById(R.id.recycler_view); + DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); + + + + fasbs.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(NegativeResults.this, TemplateActivity.class); + startActivity(intent); + + } + }); + + LinearLayoutManager layoutManager1=new LinearLayoutManager(this); + + recyclerView.setLayoutManager(new GridLayoutManager(this, 1)); + + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + int height = displayMetrics.heightPixels / 8; + int spaceInPixel = 4; + recyclerView.addItemDecoration(new SpaceDecoration(spaceInPixel)); + + } + @Override + protected void onStart() + { + super.onStart(); + + + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(TestRef.orderByChild("Internal").equalTo("No"), Tests.class) + .build(); + + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull TestViewHolder holder, int position, @NonNull final Tests model) + { + // holder.txtProductName.setText(model.getPatientid()); + if(model.getInternal().contains("Yes") || model.getInternal().contains("No")) + { + info.setVisibility(View.INVISIBLE); + + } + + + holder.txtpatientid.setText("User Name :"+model.getSample_volume()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); + holder.txttimestamp.setText(model.getSample_Date()); + + + + + + //holder.txtProductDescription.setText(model.getSample()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(NegativeResults.this, ViewSamples.class); + + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + + } + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + private void firebasesearch(String data) + { + { + Query firebaseSearchQuery = TestRef.orderByChild("Test_Id").startAt(data).endAt(data + "\uf8ff") ; + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(firebaseSearchQuery, Tests.class) + .build(); + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull final TestViewHolder holder, int position, @NonNull final Tests model) + { + + holder.txtpatientid.setText("User Name :"+model.getSample_volume()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); + holder.txttimestamp.setText(model.getSample_Date()); + + + + + + + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent=new Intent(NegativeResults.this, ViewSamples.class); + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + Log.e("main", "TestID"+model.getTest_Id()); + + + } + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + } + + +} + + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/PositiveResult.java b/app/src/main/java/no/Reader/android/iisc/Reader/PositiveResult.java new file mode 100644 index 0000000..e3ba5d0 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/PositiveResult.java @@ -0,0 +1,203 @@ +package no.Reader.android.iisc.Reader; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.firebase.ui.database.FirebaseRecyclerAdapter; +import com.firebase.ui.database.FirebaseRecyclerOptions; +import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.Model.Tests; + + +public class PositiveResult extends NavigationTop { + private DatabaseReference TestRef; + private RecyclerView recyclerView ; + FloatingActionButton fasbs; + private TextView info; + + + String number; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_main, null, false); + draw.addView(contentView, 0); + info=findViewById(R.id.info); + + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + info.setText("No Results "); + info.setVisibility(View.VISIBLE); + number = preferences6.getString("Phone", null); + fasbs=findViewById(R.id.fab); + + + Log.e("main", "error "+number); + TestRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + recyclerView = findViewById(R.id.recycler_view); + + fasbs.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(PositiveResult.this, TestDetails.class); + startActivity(intent); + + } + }); + + LinearLayoutManager layoutManager1=new LinearLayoutManager(this); + /* layoutManager1.setOrientation(LinearLayoutManager.HORIZONTAL); + cA + layoutManager = new LinearLayoutManager(this); + recyclerView.setLayoutManager(layoutManager); + */ // recyclerView.setHasFixedSize(true); + recyclerView.setLayoutManager(new GridLayoutManager(this, 1)); + + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + int height = displayMetrics.heightPixels / 8; + int spaceInPixel = 4; + recyclerView.addItemDecoration(new SpaceDecoration(spaceInPixel)); + + } + @Override + protected void onStart() + { + super.onStart(); + + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(TestRef.orderByChild("Internal").equalTo("Yes"), Tests.class) + .build(); + + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull TestViewHolder holder, int position, @NonNull final Tests model) + { + if(model.getInternal().contains("Yes") || model.getInternal().contains("No")) + { + info.setVisibility(View.INVISIBLE); + + } + // holder.txtProductName.setText(model.getPatientid()); + + holder.iconfinder.setBackgroundResource(R.drawable.green_circle); + holder.iconfinder.setText("I"); + holder.txtpatientid.setText("User Name :"+model.getSample_volume()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); + holder.txttimestamp.setText(model.getSample_Date()); + + + + + + + + //holder.txtProductDescription.setText(model.getSample()); + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent=new Intent(PositiveResult.this, ViewSamples.class); + Log.e("main", "TestID"+model.getTest_Id()); + + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + + } + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + private void firebasesearch(String data) + { + { + Query firebaseSearchQuery = TestRef.orderByChild("Patient_Id").startAt(data).endAt(data + "\uf8ff") ; + FirebaseRecyclerOptions options = + new FirebaseRecyclerOptions.Builder() + .setQuery(firebaseSearchQuery, Tests.class) + .build(); + + FirebaseRecyclerAdapter adapter = + new FirebaseRecyclerAdapter(options) { + @Override + protected void onBindViewHolder(@NonNull final TestViewHolder holder, int position, @NonNull final Tests model) + { + + holder.txtpatientid.setText("User Name :"+model.getSample_volume()); + holder.txtsampletype.setText("Test Id :" +model.getTest_Id()); + holder.nikshay.setText("Volume :"+model.getSample_volume()); + holder.txttimestamp.setText(model.getSample_Date()); + + holder.iconfinder.setBackgroundResource(R.drawable.green_circle); + holder.iconfinder.setText("I"); + + + + + + + + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + Intent intent=new Intent(PositiveResult.this, ViewSamples.class); + intent.putExtra("pid",model.getTest_Id()); + startActivity(intent); + + } + }); + } + + @NonNull + @Override + public TestViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) + { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); + TestViewHolder holder = new TestViewHolder(view); + return holder; + } + }; + recyclerView.setAdapter(adapter); + adapter.startListening(); + } + } + + +} + + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Readme.txt b/app/src/main/java/no/Reader/android/iisc/Reader/Readme.txt new file mode 100644 index 0000000..ec04717 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Readme.txt @@ -0,0 +1,54 @@ +nRF Toolbox demonstrates how to implement the Bluetooth Smart features in an Android application. + It consists of number of profiles, like Heart Rate, Blood Pressure etc. that may be use as is to communicate with real devices. + They use the Bluetooth SIG adopted profiles, that may be found here: https://developer.bluetooth.org/gatt/profiles/Pages/ProfilesHome.aspx + + The Template Profile has been created to give a quick start with implementing proprietary services. Just start modifying 4 classes inside + the template package to implement features you need. + + Below you will find a short step-by-step tutorial: + + 1. The template consists of the following files: + - TemplateActivity - the main class that is responsible for managing the view of your profile + - TemplateService - the service that is started whenever you connect to a device. I handles the Bluetooth Smart communication using the... + - TemplateManager - the manager that handles all the BLE logic required to communicate with the device. The TemplateManager derives from + the BleManager which handles most of the event itself and propagates the data-relevant to deriving class. You don't + have to, or even shouldn't modify the BleManager (unless you want to change the default behaviour). + - TemplateManagerCallbacks - the interface with a list of callbacks that the TemplateManager can call. Each method is usually related to one + BLE event, e.g. receiving a new value of the characteristic.\ + - TemplateParser - an optional class in the .parser package that is responsible for converting the characteristic value to String. + This is used only for debugging. The String returned by the parse(..) method is then logged into the nRF Logger application + (if such installed). + - /settings/SettingsActivity and /settings/SettingsFragment - classes used to present user preferences. A stub implementation in the template. + - /res/layout/activity_feature_template.xml - the layout file for the TemplateActivity + - /res/values/strings_template.xml - a set of strings used in the layout file + - /res/xml/settings/template.xml - the user settings configuration + - /res/drawable/(x)hdpi/ic_template_feature.png - the template profile icon (HDPI, XHDPI). Please, keep the files size. + - /res/drawable/(x)hdpi/ic_stat_notify_template - the icon that is used in the notification + +2. The communication between the components goes as follows: + - User clicks the CONNECT button and selects a target device on TemplateActivity. + - The base class of the TemplateActivity starts the service given by getServiceClass() method. + - The service starts and initializes the TemplateManager. TemplateActivity binds to the service and is being given the TemplateBinder object (the service API) as a result. + - The manager connects to the device using Bluetooth Smart and discovers its services. + - The manager initializes the device. Initialization is done using the list of actions given by the initGatt(..) method in the TemplateManager. + Initialization usually contains enabling notifications, writing some initial values etc. + - When initialization is complete the manager calls the onDeviceReady() callback. + - The service sends the BROADCAST_DEVICE_READY broadcast to the activity. Communication from the Service to the Activity is always done using the LocalBroadcastManager broadcasts. + - The base class of the TemplateActivity listens to the broadcasts and calls appropriate methods. + + - When a custom event occurs, for example a notification is received, the manager parses the incoming data and calls the proper callback. + - The callback implementation in the TemplateService sends a broadcast message with values given in parameters. + - The TemplateActivity, which had registered a broadcast receiver before, listens to the broadcasts, reads the values and present them to users. + + - Communication Activity->Service is done using the API in the TemplateBinder. You may find the example of how to use it in the ProximityActivity. + +3. Please read the files listed above and the TODO messages for more information what to modify in the files. + +4. Remember to add your activities and the service in the AndroidManifest.xml file. The nRF Toolbox lists all activities with the following intent filter: + + + + + +5. Feel free to rename the nRF Toolbox application (/res/values/strings.xml ->app_name), change the toolbar colors (/res/values/color.xml -> actionBarColor, actionBarColorDark). + In order to remove unused profiles from the main FeaturesActivity just comment out their intent-filter tags in the AndroidManifest.xml file. diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Register.java b/app/src/main/java/no/Reader/android/iisc/Reader/Register.java new file mode 100644 index 0000000..58681bc --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Register.java @@ -0,0 +1,200 @@ +package no.Reader.android.iisc.Reader; + +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.os.Bundle; +import android.util.Log; +import android.util.Patterns; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.Query; +import com.google.firebase.database.ValueEventListener; +import com.hbb20.CountryCodePicker; +import no.Reader.android.iisc.R; + +import no.Reader.android.iisc.Reader.VerifyOTP.VerifyOtp; + + +public class Register extends AppCompatActivity { +String numberwithcode; + private Button next; + private EditText editTextMobile; + private ProgressDialog loadingBar; + + private TextView login; + CountryCodePicker ccp; + String mobile,name; + + private EditText editTextname; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register); + next=findViewById(R.id.buttonContinue); + editTextMobile = findViewById(R.id.editTextMobile); + + ccp=findViewById(R.id.ccp); + + ccp.registerCarrierNumberEditText(editTextMobile); + loadingBar = new ProgressDialog(this); + login=findViewById(R.id.login_account); + login.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(Register.this, LoginScreen.class); + startActivity(intent); + + } + }); + + editTextname=findViewById(R.id.editTextName); + + next.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mobile = editTextMobile.getText().toString().trim(); + mobile = mobile.replaceAll("[^0-9]", ""); + + name = editTextname.getText().toString().trim(); + + + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(Register.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } + + else { + if (mobile.equals("") || name.equals("")) { + Toast.makeText(Register.this, "please enter all the required fields", Toast.LENGTH_SHORT).show(); + + } else if (!Patterns.PHONE.matcher(mobile).matches()) { + editTextMobile.setError("Enter a valid Phone "); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + } + else if (mobile.length() <9 ) { + Toast.makeText(Register.this, "Enter a valid Phone", Toast.LENGTH_SHORT).show(); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + } + else if (mobile.length() >=11 ) { + Toast.makeText(Register.this, "Enter a valid Phone", Toast.LENGTH_SHORT).show(); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + }else { + + Query chekuser = FirebaseDatabase.getInstance().getReference("USERS").orderByChild("number").equalTo(mobile); + chekuser.addListenerForSingleValueEvent(new ValueEventListener() { + @Override + public void onDataChange(@NonNull DataSnapshot dataSnapshot) { + if (dataSnapshot.exists()) { + Toast.makeText(Register.this, "User Already Exist", Toast.LENGTH_SHORT).show(); + + // editTextMobile.setError("User Already Exist"); + + + } else { + Intent intent = new Intent(Register.this, VerifyOtp.class); + Log.e("main", "error " + mobile); + + numberwithcode = ccp.getFullNumberWithPlus(); + Log.e("main", "error " + numberwithcode); + + if (mobile.equals("") || name.equals("")) { + Toast.makeText(Register.this, "please enter all the required fields", Toast.LENGTH_SHORT).show(); + + } else if (!Patterns.PHONE.matcher(mobile).matches()) { + editTextMobile.setError("Enter a valid Phone "); + // Toast.makeText(Consumer_register.this, "Please Enter a valid email", Toast.LENGTH_SHORT).show(); + + } else { + loadingBar.setTitle("Create Account"); + loadingBar.setMessage("Please wait "); + loadingBar.setCanceledOnTouchOutside(false); + loadingBar.show(); + + + intent.putExtra("numberwithcode", numberwithcode); + + intent.putExtra("mobile", mobile); + intent.putExtra("username", name); + + startActivity(intent); + } + + + } + + } + + @Override + public void onCancelled(@NonNull DatabaseError databaseError) { + Log.e("Raman", "Received an exception check chexk " + databaseError.getMessage()); + + // Toast.makeText(ForgetPassword.this,databaseError.getMessage(),Toast.LENGTH_SHORT).show(); + + } + }); + } + } + + } + }); + + + + + } + @Override + public void onBackPressed() { + + Intent intent = new Intent(Register.this, LoginScreen.class); + startActivity(intent); + + } + public boolean isOnline() { + ConnectivityManager connMgr = (ConnectivityManager) + getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); + return (networkInfo != null && networkInfo.isConnected()); + + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/SPCAManagerCallbacks.java b/app/src/main/java/no/Reader/android/iisc/Reader/SPCAManagerCallbacks.java new file mode 100644 index 0000000..04276ef --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/SPCAManagerCallbacks.java @@ -0,0 +1,17 @@ +package no.Reader.android.iisc.Reader; + +import no.Reader.android.iisc.Reader.callback.SPCACharacteristicCallback; +import no.Reader.android.iisc.battery.BatteryManagerCallbacks; + +/** + * Interface {@link SPCAManagerCallbacks} must be implemented by {@link SPCAService} + * in order to receive callbacks from {@link TemplateManager} + */ +interface SPCAManagerCallbacks extends BatteryManagerCallbacks, SPCACharacteristicCallback { + + // Callbacks are called when a data has been received/written to a remote device. + // This is the way how the manager notifies the activity about this event. + + // TODO add more callbacks. + // If you need, create more ...Callback interfaces and extend this interface with them. +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/SPCAService.java b/app/src/main/java/no/Reader/android/iisc/Reader/SPCAService.java new file mode 100644 index 0000000..4e077c0 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/SPCAService.java @@ -0,0 +1,204 @@ +package no.Reader.android.iisc.Reader; + +import android.app.Notification; +import android.app.NotificationManager; +import android.app.PendingIntent; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import androidx.annotation.NonNull; +import androidx.core.app.NotificationCompat; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import no.nordicsemi.android.log.Logger; +import no.Reader.android.iisc.FeaturesActivity; +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.NotificationData; +import no.Reader.android.iisc.profile.BleProfileService; +import no.Reader.android.iisc.profile.LoggableBleManager; + +public class SPCAService extends BleProfileService implements SPCAManagerCallbacks { + public static final String BROADCAST_TEMPLATE_MEASUREMENT = "no.Reader.android.iisc.template.BROADCAST_MEASUREMENT"; + public static final String EXTRA_DATA = "no.Reader.android.iisc.template.EXTRA_DATA"; + + public static final String BROADCAST_BATTERY_LEVEL = "no.Reader.android.iisc.BROADCAST_BATTERY_LEVEL"; + public static final String EXTRA_BATTERY_LEVEL = "no.Reader.android.iisc.EXTRA_BATTERY_LEVEL"; + + private final static String ACTION_DISCONNECT = "no.Reader.android.iisc.template.ACTION_DISCONNECT"; + + private final static int NOTIFICATION_ID = 864; + private final static int OPEN_ACTIVITY_REQ = 0; + private final static int DISCONNECT_REQ = 1; + + private TemplateManager mManager; + + private final LocalBinder mBinder = new TemplateBinder(); + + /** + * This local binder is an interface for the bound activity to operate with the sensor. + */ + class TemplateBinder extends LocalBinder { + // TODO Define service API that may be used by a bound Activity + + /** + * Sends some important data to the device. + * + * @param parameter some parameter. + */ + + public void heatingSwitch(int state){ + mManager.heatingSwitch(state); + } + public void sendDTemp(int d_temp) { + mManager.sendDTemp(d_temp); + } + public void sendATemp(int a_temp) { + mManager.sendATemp(a_temp); + } + public void sendETemp(int e_temp) { + mManager.sendETemp(e_temp); + } + + public void sendLTemp(int l_temp) { + mManager.sendLTemp(l_temp); + } + public void sendOTemp(int o_temp) { + mManager.sendOTemp(o_temp); + } + + + + + public void sendDTime(int d_time) { + mManager.sendDTime(d_time); + } + public void sendATime(int a_time) { + mManager.sendATime(a_time); + } + public void sendETime(int e_time) { + mManager.sendETime(e_time); + } + + public void sendLTime(int l_time) { + mManager.sendLTime(l_time); + } + public void sendOTime(int o_time) { mManager.sendOTime(o_time); } + + + public void sendNPcrN(int n_pcr_c) { + mManager.sendNPcrC(n_pcr_c); + } + + } + + @Override + protected LocalBinder getBinder() { + return mBinder; + } + + @Override + protected LoggableBleManager initializeManager() { + return mManager = new TemplateManager(this); + } + + @Override + public void onCreate() { + super.onCreate(); + + final IntentFilter filter = new IntentFilter(); + filter.addAction(ACTION_DISCONNECT); + registerReceiver(mDisconnectActionBroadcastReceiver, filter); + } + + @Override + public void onDestroy() { + // when user has disconnected from the sensor, we have to cancel the notification that we've created some milliseconds before using unbindService + cancelNotification(); + unregisterReceiver(mDisconnectActionBroadcastReceiver); + + super.onDestroy(); + } + + @Override + protected void onRebind() { + // when the activity rebinds to the service, remove the notification + cancelNotification(); + } + + @Override + protected void onUnbind() { + // when the activity closes we need to show the notification that user is connected to the sensor + createNotification(R.string.template_notification_connected_message, 0); + } + + @Override + public void onSampleValueReceived(@NonNull final BluetoothDevice device, final int value) { + final Intent broadcast = new Intent(BROADCAST_TEMPLATE_MEASUREMENT); + broadcast.putExtra(EXTRA_DEVICE, getBluetoothDevice()); + broadcast.putExtra(EXTRA_DATA, value); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + + if (!mBound) { + // Here we may update the notification to display the current value. + // TODO modify the notification here + } + } + + @Override + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int batteryLevel) { + + } + + /** + * Creates the notification. + * + * @param messageResId message resource id. The message must have one String parameter,
+ * f.e. <string name="name">%s is connected</string> + * @param defaults signals that will be used to notify the user + */ + private void createNotification(final int messageResId, final int defaults) { + final Intent parentIntent = new Intent(this, FeaturesActivity.class); + parentIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + final Intent targetIntent = new Intent(this, TemplateActivity.class); + + final Intent disconnect = new Intent(ACTION_DISCONNECT); + final PendingIntent disconnectAction = PendingIntent.getBroadcast(this, DISCONNECT_REQ, disconnect, PendingIntent.FLAG_UPDATE_CURRENT); + + // both activities above have launchMode="singleTask" in the AndroidManifest.xml file, so if the task is already running, it will be resumed + final PendingIntent pendingIntent = PendingIntent.getActivities(this, OPEN_ACTIVITY_REQ, new Intent[]{parentIntent, targetIntent}, PendingIntent.FLAG_UPDATE_CURRENT); + final NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NotificationData.CONNECTED_DEVICE_CHANNEL); + builder.setContentIntent(pendingIntent); + builder.setContentTitle(getString(R.string.app_name)).setContentText(getString(messageResId, getDeviceName())); + builder.setSmallIcon(R.drawable.ic_stat_notify_template); + builder.setShowWhen(defaults != 0).setDefaults(defaults).setAutoCancel(true).setOngoing(true); + builder.addAction(new NotificationCompat.Action(R.drawable.ic_action_bluetooth, getString(R.string.template_notification_action_disconnect), disconnectAction)); + + final Notification notification = builder.build(); + final NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); + nm.notify(NOTIFICATION_ID, notification); + } + + /** + * Cancels the existing notification. If there is no active notification this method does nothing + */ + private void cancelNotification() { + final NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); + nm.cancel(NOTIFICATION_ID); + } + + /** + * This broadcast receiver listens for {@link #ACTION_DISCONNECT} that may be fired by pressing Disconnect action button on the notification. + */ + private final BroadcastReceiver mDisconnectActionBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + Logger.i(getLogSession(), "[Notification] Disconnect action pressed"); + if (isConnected()) + getBinder().disconnect(); + else + stopSelf(); + } + }; +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/SpaceDecoration.java b/app/src/main/java/no/Reader/android/iisc/Reader/SpaceDecoration.java new file mode 100644 index 0000000..b789d67 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/SpaceDecoration.java @@ -0,0 +1,20 @@ +package no.Reader.android.iisc.Reader; + +import android.graphics.Rect; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +public class SpaceDecoration extends RecyclerView.ItemDecoration { + private int space; + + public SpaceDecoration(int space) { + this.space = space; + } + + @Override + public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) { + outRect.left=outRect.bottom=outRect.right=outRect.top=space; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity.java b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity.java new file mode 100644 index 0000000..dc83456 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity.java @@ -0,0 +1,527 @@ +package no.Reader.android.iisc.Reader; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.Switch; +import android.widget.TextView; +import android.widget.Toast; + + +import com.google.android.material.bottomnavigation.BottomNavigationView; + +import java.util.UUID; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.profile.BleProfileService; +import no.Reader.android.iisc.profile.BleProfileServiceReadyActivity; + + +/** + * Modify the Template Activity to match your needs. + */ +public class TemplateActivity extends BleProfileServiceReadyActivity { + @SuppressWarnings("unused") + private final String TAG = "TemplateActivity"; + + // TODO change view references to match your need + private TextView mValueView; + private TextView mHeatingStatusView; + + private Switch mHeatingState ; + + int p ,q,r; + int count =0; + int love=0; + int love1=0; + int love2=0; + int love3=0; + private TextView mClockView; + int act1_1=0; + int act1_2=0; + int act1_3=0; + private Button d,connect; + + /*private EditText mDTimeValueView; + private Integer mDSetTime ; + private EditText mLTimeValueView; + private Integer mLSetTime ; + private EditText mOTimeValueView; + private Integer mOSetTime ; + + private TextView mClockView; + + private EditText mATimeValueView; + private Integer mASetTime ; + private EditText mETimeValueView; + private Integer mESetTime ; + + private EditText mDTempValueView; + private Integer mDSetTemp ; + private EditText mATempValueView; + private Integer mASetTemp ; + private EditText mETempValueView; + private Integer mESetTemp ; + + private EditText mLTempValueView; + private Integer mLSetTemp ; + private EditText mOTempValueView; + private Integer mOSetTemp ; + + private EditText mNPcrCView; + private Integer mNPcrC ; + +*/ + @Override + protected void onCreateView(final Bundle savedInstanceState) { + // TODO modify the layout file(s). By default the activity shows only one field - the Heart Rate value as a sample + setContentView(R.layout.activity_feature_template); + BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + bottomNav.setOnNavigationItemSelectedListener(navListener); + + setGUI(); + connect=findViewById(R.id.action_connect); + d.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + SharedPreferences preferences = getSharedPreferences("PhoneBook_adc1", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + + mHeatingState.setChecked(false); + editor.putString("act1_1", String.valueOf(act1_1)); + editor.putString("act1_2", String.valueOf(act1_2)); + editor.putString("act1_3", String.valueOf(act1_3)); + + + Log.d("Addact11", String.valueOf(act1_1)); + Log.d("Addact12", String.valueOf(act1_2)); + Log.d("Addact13", String.valueOf(act1_3)); + + + + editor.commit(); + + + Intent intent = new Intent(TemplateActivity.this, TemplateActivity1.class); + + + startActivity(intent); + + } + }); + } + + + private void setGUI() { + // mClockView=findViewById(R.id.RemTime_Value); + + // TODO assign your views to fields + mValueView = findViewById(R.id.Temp_Value); + d=findViewById(R.id.next); + /*mDTempValueView = findViewById(R.id.D_Temp_Set); + mDTimeValueView = findViewById(R.id.D_Time_Set); + mATempValueView = findViewById(R.id.A_Temp_Set); + mATimeValueView = findViewById(R.id.A_Time_Set); + mETempValueView = findViewById(R.id.E_Temp_Set); + mETimeValueView = findViewById(R.id.E_Time_Set); + mLTempValueView=findViewById(R.id.L_Temp_Set); + mOTempValueView=findViewById(R.id.O_Temp_Set); + mLTimeValueView = findViewById(R.id.L_Time_Set); + + mOTimeValueView = findViewById(R.id.O_Time_Set); + +*/ + + + + + + + + + + + + + + +/* + mNPcrCView = findViewById(R.id.N_Pcr_C); +*/ + + + mHeatingState = findViewById(R.id.heating_state); + mHeatingStatusView= findViewById(R.id.heating_status_text); + + mHeatingState.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(connect.getText().equals("CONNECT")) + { + Toast.makeText(TemplateActivity.this, "Please connect to device", Toast.LENGTH_SHORT).show(); + + } + else { + if (isChecked) { + + + getService().heatingSwitch(1); + + + + /* mDSetTemp = Integer.parseInt(mDTempValueView.getText().toString()); + getService().sendDTemp(mDSetTemp); + mDSetTime = Integer.parseInt(mDTimeValueView.getText().toString()); + getService().sendDTime(mDSetTime); + + mLSetTemp = Integer.parseInt(mLTempValueView.getText().toString()); + getService().sendLTemp(mLSetTemp); + mLSetTime = Integer.parseInt(mLTimeValueView.getText().toString()); + getService().sendLTime(mLSetTime); + + mOSetTemp = Integer.parseInt(mOTempValueView.getText().toString()); + getService().sendOTemp(mOSetTemp); + mOSetTime = Integer.parseInt(mOTimeValueView.getText().toString()); + getService().sendOTime(mOSetTime); + + + + + + + + + + + // Log.d("Add", String.valueOf(m)); + + mASetTemp = Integer.parseInt(mATempValueView.getText().toString()); + getService().sendATemp(mASetTemp); + mASetTime = Integer.parseInt(mATimeValueView.getText().toString()); + getService().sendATime(mASetTime); + + mESetTemp = Integer.parseInt(mETempValueView.getText().toString()); + getService().sendETemp(mESetTemp); + mESetTime = Integer.parseInt(mETimeValueView.getText().toString()); + getService().sendETime(mESetTime); + + mNPcrC = Integer.parseInt(mNPcrCView.getText().toString()); + getService().sendNPcrN(mNPcrC); +*/ + } else { + getService().heatingSwitch(0); + } + mHeatingStatusView.setText(isChecked ? R.string.Heating_block_on : R.string.Heating_block_off); + } + }); + + + /*findViewById(R.id.time_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + + mSetTime = Integer.parseInt(mTimeValueView.getText().toString()); + getService().sendTimeDuration(mSetTime); + } + }); + + findViewById(R.id.temp_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + mSetTemp = Integer.parseInt(mTempValueView.getText().toString()); + getService().sendTemp(mSetTemp); + } + });*/ + } + + @Override + protected void onInitialize(final Bundle savedInstanceState) { + LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver); + } + + @Override + protected void setDefaultUI() { + // TODO clear your UI + mValueView.setText(R.string.not_available_value); + } + + @Override + protected int getLoggerProfileTitle() { + return R.string.template_feature_title; + } + + /*@Override + protected void getAboutTextId() { + Intent intent =new Intent (TemplateActivity.this,About.class); + startActivity(intent); + } +*/ + /*@Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.menu, menu); + return true; + } + + @Override + protected boolean onOptionsItemSelected(final int itemId) { + switch (itemId) { + case R.id.action_about: + Intent intent =new Intent (TemplateActivity.this,About.class); + startActivity(intent); + break; + *//*case R.id.action_settings: + final Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + break;*//* + } + return true; + } +*/ + @Override + protected int getDefaultDeviceName() { + return R.string.template_default_name; + } + + @Override + protected UUID getFilterUUID() { + // TODO this method may return the UUID of the service that is required to be in the advertisement packet of a device in order to be listed on the Scanner dialog. + // If null is returned no filtering is done. + return TemplateManager.SERVICE_UUID; + } + + @Override + protected Class getServiceClass() { + return SPCAService.class; + } + + @Override + protected void onServiceBound(final SPCAService.TemplateBinder binder) { + // not used + } + + @Override + protected void onServiceUnbound() { + // not used + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceDisconnected(final BluetoothDevice device) { + super.onDeviceDisconnected(device); + } + + // Handling updates from the device + @SuppressWarnings("unused") + private void setValueOnView(@NonNull final BluetoothDevice device, final int value) { + // TODO assign the value to a view + mValueView.setText(String.valueOf(value)); + + if(mHeatingState.isChecked()) + { + d.postDelayed(new Runnable() { + public void run() { + d.setEnabled(true); + Log.d(TAG, "resend1"); + } + }, 7000); + d.postDelayed(new Runnable() { + public void run() { + act1_1=value; + mValueView.setText(String.valueOf(act1_1)); + Log.d(TAG, "resend1"); + } + }, 5000); + d.postDelayed(new Runnable() { + public void run() { + act1_2=value; + mValueView.setText(String.valueOf(act1_2)); + Log.d(TAG, "resend1"); + } + }, 6000); + d.postDelayed(new Runnable() { + public void run() { + act1_3=value; + mValueView.setText(String.valueOf(act1_3)); + Log.d(TAG, "resend1"); + } + }, 7000); + + + + } + /*else if (!mHeatingState.isChecked() && count ==1) { + + love=1; + count=2; + Log.d("check1", String.valueOf(love)); + + mValueView.setText("_"); + Log.d("love", String.valueOf(love)); + Log.d("love", String.valueOf(p)); + + + } + else if ( mHeatingState.isChecked() && love ==1 ) + { + q=value; + final int d=value; + Log.d("Addq", String.valueOf(q)); + + mValueView.setText(String.valueOf(d)); + love1=1; + } + else if(!mHeatingState.isChecked() && love1 ==1) + { + love3=1; + mValueView.setText("_"); + Log.d("check1", String.valueOf(love)); + + + + } + else if(mHeatingState.isChecked() && love3 ==1) + { + r=value; + mValueView.setText(String.valueOf(value)); + Log.d("Addr", String.valueOf(r)); + + + + } +*/ + else + { + mValueView.setText("_"); + + } + } + + @SuppressWarnings("unused") + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int value) { + + } + + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final String action = intent.getAction(); + final BluetoothDevice device = intent.getParcelableExtra(SPCAService.EXTRA_DEVICE); + + if (SPCAService.BROADCAST_TEMPLATE_MEASUREMENT.equals(action)) { + final int value = intent.getIntExtra(SPCAService.EXTRA_DATA, 0); + // Update GUI + setValueOnView(device, value); + } else if (SPCAService.BROADCAST_BATTERY_LEVEL.equals(action)) { + final int batteryLevel = intent.getIntExtra(SPCAService.EXTRA_BATTERY_LEVEL, 0); + // Update GUI + onBatteryLevelChanged(device, batteryLevel); + } + } + }; + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(SPCAService.BROADCAST_TEMPLATE_MEASUREMENT); + intentFilter.addAction(SPCAService.BROADCAST_BATTERY_LEVEL); + return intentFilter; + } + private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_home: + Intent intent = new Intent(TemplateActivity.this, MainActivity.class); + + + startActivity(intent); + + + break; + case R.id.nav_addtest: + Intent intent2 = new Intent(TemplateActivity.this, TestDetails.class); + + + startActivity(intent2); + break; + case R.id.nav_add_sample: + Intent intent3 = new Intent(TemplateActivity.this, TemplateActivity2.class); + + + startActivity(intent3); + break; + } + + return true; + } + }; + @Override + public void onBackPressed() { + //super.onBackPressed(); + IsFinish("Want to exit Test ?"); + } + + public void IsFinish(String alertmessage) { + + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + Intent intent = new Intent(TemplateActivity.this, TestDetails.class); + + + startActivity(intent); // This above line close correctly + //finish(); + break; + + case DialogInterface.BUTTON_NEGATIVE: + break; + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage(alertmessage) + .setPositiveButton("Yes", dialogClickListener) + .setNegativeButton("No", dialogClickListener).show(); + AlertDialog alertDialog = builder.create(); + alertDialog.show(); + alertDialog.getButton(Dialog.BUTTON_NEGATIVE).setTextColor(Color.BLACK); + alertDialog.getButton(Dialog.BUTTON_POSITIVE).setTextColor(Color.BLACK); + + alertDialog.getButton(Dialog.BUTTON_NEGATIVE). + setBackgroundColor(Color.TRANSPARENT); + alertDialog.getButton(Dialog.BUTTON_POSITIVE). + setBackgroundColor(Color.TRANSPARENT); + + } + +} + diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity1.java b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity1.java new file mode 100644 index 0000000..1f52585 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity1.java @@ -0,0 +1,528 @@ +package no.Reader.android.iisc.Reader; + +import android.Manifest; +import android.app.AlertDialog; +import android.app.Dialog; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.graphics.Color; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.Switch; +import android.widget.TextView; +import android.widget.Toast; + + +import com.google.android.material.bottomnavigation.BottomNavigationView; + +import java.util.UUID; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.profile.BleProfileService; +import no.Reader.android.iisc.profile.BleProfileServiceReadyActivity; + + +/** + * Modify the Template Activity to match your needs. + */ +public class TemplateActivity1 extends BleProfileServiceReadyActivity { + @SuppressWarnings("unused") + private final String TAG = "TemplateActivity"; + + // TODO change view references to match your need + private TextView mValueView; + private TextView mHeatingStatusView; + + private Switch mHeatingState ; + int p ,q,r; + int count =0; + int love=0; + int love1=0; + int act2_1=0; + int act2_2=0; + int act2_3=0; + int love2=0; + int love3=0; + private TextView mClockView; + int act2=0; + private Button d,connect; + + + /*private EditText mDTimeValueView; + private Integer mDSetTime ; + private EditText mLTimeValueView; + private Integer mLSetTime ; + private EditText mOTimeValueView; + private Integer mOSetTime ; + + private TextView mClockView; + + private EditText mATimeValueView; + private Integer mASetTime ; + private EditText mETimeValueView; + private Integer mESetTime ; + + private EditText mDTempValueView; + private Integer mDSetTemp ; + private EditText mATempValueView; + private Integer mASetTemp ; + private EditText mETempValueView; + private Integer mESetTemp ; + + private EditText mLTempValueView; + private Integer mLSetTemp ; + private EditText mOTempValueView; + private Integer mOSetTemp ; + + private EditText mNPcrCView; + private Integer mNPcrC ; + +*/ + @Override + protected void onCreateView(final Bundle savedInstanceState) { + // TODO modify the layout file(s). By default the activity shows only one field - the Heart Rate value as a sample + setContentView(R.layout.activity_feature_template1); + BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + bottomNav.setOnNavigationItemSelectedListener(navListener); + setGUI(); + + connect=findViewById(R.id.action_connect); + + d.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(ContextCompat.checkSelfPermission(TemplateActivity1.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TemplateActivity1.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},23); + } + SharedPreferences preferences = getSharedPreferences("PhoneBook_adc2", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + + editor.putString("act2_1", String.valueOf(act2_1)); + editor.putString("act2_2", String.valueOf(act2_2)); + editor.putString("act2_3", String.valueOf(act2_3)); + + + Log.d("Addact21", String.valueOf(act2_1)); + Log.d("Addact22", String.valueOf(act2_2)); + Log.d("Addact23", String.valueOf(act2_3)); + + editor.commit(); + mHeatingState.setChecked(false); + + + Intent intent = new Intent(TemplateActivity1.this, TemplateActivity2.class); + + + startActivity(intent); + + } + }); + + } + + private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_home: + Intent intent = new Intent(TemplateActivity1.this, MainActivity.class); + + + startActivity(intent); + + + break; + case R.id.nav_addtest: + Intent intent2 = new Intent(TemplateActivity1.this, TestDetails.class); + + + startActivity(intent2); + break; + case R.id.nav_add_sample: + Intent intent3 = new Intent(TemplateActivity1.this, TemplateActivity2.class); + + + startActivity(intent3); + break; + } + + return true; + } + }; + + private void setGUI() { + // mClockView=findViewById(R.id.RemTime_Value); + + // TODO assign your views to fields + mValueView = findViewById(R.id.Temp_Value); + d=findViewById(R.id.next); + /*mDTempValueView = findViewById(R.id.D_Temp_Set); + mDTimeValueView = findViewById(R.id.D_Time_Set); + mATempValueView = findViewById(R.id.A_Temp_Set); + mATimeValueView = findViewById(R.id.A_Time_Set); + mETempValueView = findViewById(R.id.E_Temp_Set); + mETimeValueView = findViewById(R.id.E_Time_Set); + mLTempValueView=findViewById(R.id.L_Temp_Set); + mOTempValueView=findViewById(R.id.O_Temp_Set); + mLTimeValueView = findViewById(R.id.L_Time_Set); + + mOTimeValueView = findViewById(R.id.O_Time_Set); + +*/ + + + + + + + + + + + + + + +/* + mNPcrCView = findViewById(R.id.N_Pcr_C); +*/ + + + mHeatingState = findViewById(R.id.heating_state); + mHeatingStatusView= findViewById(R.id.heating_status_text); + + mHeatingState.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(connect.getText().equals("CONNECT")) + { + Toast.makeText(TemplateActivity1.this, "Please connect to device", Toast.LENGTH_SHORT).show(); + + } + else { + if (isChecked) { + getService().heatingSwitch(1); + + + + /* mDSetTemp = Integer.parseInt(mDTempValueView.getText().toString()); + getService().sendDTemp(mDSetTemp); + mDSetTime = Integer.parseInt(mDTimeValueView.getText().toString()); + getService().sendDTime(mDSetTime); + + mLSetTemp = Integer.parseInt(mLTempValueView.getText().toString()); + getService().sendLTemp(mLSetTemp); + mLSetTime = Integer.parseInt(mLTimeValueView.getText().toString()); + getService().sendLTime(mLSetTime); + + mOSetTemp = Integer.parseInt(mOTempValueView.getText().toString()); + getService().sendOTemp(mOSetTemp); + mOSetTime = Integer.parseInt(mOTimeValueView.getText().toString()); + getService().sendOTime(mOSetTime); + + + + + + + + + + + // Log.d("Add", String.valueOf(m)); + + mASetTemp = Integer.parseInt(mATempValueView.getText().toString()); + getService().sendATemp(mASetTemp); + mASetTime = Integer.parseInt(mATimeValueView.getText().toString()); + getService().sendATime(mASetTime); + + mESetTemp = Integer.parseInt(mETempValueView.getText().toString()); + getService().sendETemp(mESetTemp); + mESetTime = Integer.parseInt(mETimeValueView.getText().toString()); + getService().sendETime(mESetTime); + + mNPcrC = Integer.parseInt(mNPcrCView.getText().toString()); + getService().sendNPcrN(mNPcrC); +*/ + + } else { + getService().heatingSwitch(0); + } + mHeatingStatusView.setText(isChecked ? R.string.Heating_block_on : R.string.Heating_block_off); + } + }); + + + /*findViewById(R.id.time_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + + mSetTime = Integer.parseInt(mTimeValueView.getText().toString()); + getService().sendTimeDuration(mSetTime); + } + }); + + findViewById(R.id.temp_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + mSetTemp = Integer.parseInt(mTempValueView.getText().toString()); + getService().sendTemp(mSetTemp); + } + });*/ + } + + @Override + protected void onInitialize(final Bundle savedInstanceState) { + LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver); + } + + @Override + protected void setDefaultUI() { + // TODO clear your UI + mValueView.setText(R.string.not_available_value); + } + + @Override + protected int getLoggerProfileTitle() { + return R.string.template_feature_title; + } + + /*@Override + protected void getAboutTextId() { + Intent =new Intent (TemplateActivity1.this,About.class); + startActivity(intent); + }*/ + /* @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.settings_and_about, menu); + return true; + } + + @Override + protected boolean onOptionsItemSelected(final int itemId) { + switch (itemId) { + *//*case R.id.action_settings: + final Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + break;*//* + } + return true; + }*/ + + @Override + protected int getDefaultDeviceName() { + return R.string.template_default_name; + } + + @Override + protected UUID getFilterUUID() { + // TODO this method may return the UUID of the service that is required to be in the advertisement packet of a device in order to be listed on the Scanner dialog. + // If null is returned no filtering is done. + return TemplateManager.SERVICE_UUID; + } + + @Override + protected Class getServiceClass() { + return SPCAService.class; + } + + @Override + protected void onServiceBound(final SPCAService.TemplateBinder binder) { + // not used + } + + @Override + protected void onServiceUnbound() { + // not used + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceDisconnected(final BluetoothDevice device) { + super.onDeviceDisconnected(device); + } + + // Handling updates from the device + @SuppressWarnings("unused") + private void setValueOnView(@NonNull final BluetoothDevice device, final int value) { + // TODO assign the value to a view + if(mHeatingState.isChecked()) + { + mValueView.setText(String.valueOf(value)); + + d.postDelayed(new Runnable() { + public void run() { + d.setEnabled(true); + Log.d(TAG, "resend1"); + } + }, 7000); + d.postDelayed(new Runnable() { + public void run() { + act2_1=value; + mValueView.setText(String.valueOf(act2_1)); + Log.d(TAG, "resend1"); + } + }, 5000); + d.postDelayed(new Runnable() { + public void run() { + act2_2=value; + mValueView.setText(String.valueOf(act2_2)); + Log.d(TAG, "resend1"); + } + }, 6000); + d.postDelayed(new Runnable() { + public void run() { + act2_3=value; + mValueView.setText(String.valueOf(act2_3)); + Log.d(TAG, "resend1"); + } + }, 7000); + + + } + /*else if (!mHeatingState.isChecked() && count ==1) { + + love=1; + count=2; + Log.d("check1", String.valueOf(love)); + + mValueView.setText("_"); + Log.d("love", String.valueOf(love)); + Log.d("love", String.valueOf(p)); + + + } + else if ( mHeatingState.isChecked() && love ==1 ) + { + q=value; + final int d=value; + Log.d("Addq", String.valueOf(q)); + + mValueView.setText(String.valueOf(d)); + love1=1; + } + else if(!mHeatingState.isChecked() && love1 ==1) + { + love3=1; + mValueView.setText("_"); + Log.d("check1", String.valueOf(love)); + + + + } + else if(mHeatingState.isChecked() && love3 ==1) + { + r=value; + mValueView.setText(String.valueOf(value)); + Log.d("Addr", String.valueOf(r)); + + + + } +*/ + else + { + mValueView.setText("_"); + + } + } + + @SuppressWarnings("unused") + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int value) { + + } + + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final String action = intent.getAction(); + final BluetoothDevice device = intent.getParcelableExtra(SPCAService.EXTRA_DEVICE); + + if (SPCAService.BROADCAST_TEMPLATE_MEASUREMENT.equals(action)) { + final int value = intent.getIntExtra(SPCAService.EXTRA_DATA, 0); + // Update GUI + setValueOnView(device, value); + } else if (SPCAService.BROADCAST_BATTERY_LEVEL.equals(action)) { + final int batteryLevel = intent.getIntExtra(SPCAService.EXTRA_BATTERY_LEVEL, 0); + // Update GUI + onBatteryLevelChanged(device, batteryLevel); + } + } + }; + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(SPCAService.BROADCAST_TEMPLATE_MEASUREMENT); + intentFilter.addAction(SPCAService.BROADCAST_BATTERY_LEVEL); + return intentFilter; + } + @Override + public void onBackPressed() { + //super.onBackPressed(); + IsFinish("Want to exit Test ?"); + } + + public void IsFinish(String alertmessage) { + + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + Intent intent = new Intent(TemplateActivity1.this, TestDetails.class); + + + startActivity(intent); // This above line close correctly + //finish(); + break; + + case DialogInterface.BUTTON_NEGATIVE: + break; + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage(alertmessage) + .setPositiveButton("Yes", dialogClickListener) + .setNegativeButton("No", dialogClickListener).show(); + AlertDialog alertDialog = builder.create(); + alertDialog.show(); + alertDialog.getButton(Dialog.BUTTON_NEGATIVE).setTextColor(Color.BLACK); + alertDialog.getButton(Dialog.BUTTON_POSITIVE).setTextColor(Color.BLACK); + + alertDialog.getButton(Dialog.BUTTON_NEGATIVE). + setBackgroundColor(Color.TRANSPARENT); + alertDialog.getButton(Dialog.BUTTON_POSITIVE). + setBackgroundColor(Color.TRANSPARENT); + } + + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity2.java b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity2.java new file mode 100644 index 0000000..102d5bd --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity2.java @@ -0,0 +1,529 @@ +package no.Reader.android.iisc.Reader; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.graphics.Color; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.Switch; +import android.widget.TextView; +import android.widget.Toast; + + +import com.google.android.material.bottomnavigation.BottomNavigationView; + +import java.util.UUID; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.profile.BleProfileService; +import no.Reader.android.iisc.profile.BleProfileServiceReadyActivity; + + +/** + * Modify the Template Activity to match your needs. + */ +public class TemplateActivity2 extends BleProfileServiceReadyActivity { + @SuppressWarnings("unused") + private final String TAG = "TemplateActivity"; + + // TODO change view references to match your need + private TextView mValueView; + private TextView mHeatingStatusView; + + private Switch mHeatingState ; + int p ,q,r; + private EditText sampledata; + int act3_1=0; + int act3_2=0; + int act3_3=0; + int count =0; + int love=0; + int love1=0; + int love2=0; + int love3=0; + private TextView mClockView; + int act3=0; + private Button d,connect; + + + /*private EditText mDTimeValueView; + private Integer mDSetTime ; + private EditText mLTimeValueView; + private Integer mLSetTime ; + private EditText mOTimeValueView; + private Integer mOSetTime ; + + private TextView mClockView; + + private EditText mATimeValueView; + private Integer mASetTime ; + private EditText mETimeValueView; + private Integer mESetTime ; + + private EditText mDTempValueView; + private Integer mDSetTemp ; + private EditText mATempValueView; + private Integer mASetTemp ; + private EditText mETempValueView; + private Integer mESetTemp ; + + private EditText mLTempValueView; + private Integer mLSetTemp ; + private EditText mOTempValueView; + private Integer mOSetTemp ; + + private EditText mNPcrCView; + private Integer mNPcrC ; + +*/ + @Override + protected void onCreateView(final Bundle savedInstanceState) { + // TODO modify the layout file(s). By default the activity shows only one field - the Heart Rate value as a sample + setContentView(R.layout.activity_feature_template2); + sampledata=findViewById(R.id.samplename); + BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + bottomNav.setOnNavigationItemSelectedListener(navListener); + + + setGUI(); + connect=findViewById(R.id.action_connect); + + d.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + SharedPreferences preferences = getSharedPreferences("PhoneBook_adc3", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + + + /* editor.putString("act3", String.valueOf(act3)); + Log.d("Addact1", String.valueOf(act3)); + + editor.commit(); + */ + editor.putString("act3_1", String.valueOf(act3_1)); + editor.putString("act3_2", String.valueOf(act3_2)); + editor.putString("act3_3", String.valueOf(act3_3)); + editor.putString("samplename", String.valueOf(sampledata.getText())); + + + + Log.d("Addact21", String.valueOf(act3_1)); + Log.d("Addact22", String.valueOf(act3_2)); + Log.d("Addact23", String.valueOf(act3_3)); + + editor.commit(); + mHeatingState.setChecked(false); + + + Intent intent = new Intent(TemplateActivity2.this, check1.class); + + + startActivity(intent); + + } + }); + } + + + private void setGUI() { + // mClockView=findViewById(R.id.RemTime_Value); + + // TODO assign your views to fields + mValueView = findViewById(R.id.Temp_Value); + d=findViewById(R.id.next); + /*mDTempValueView = findViewById(R.id.D_Temp_Set); + mDTimeValueView = findViewById(R.id.D_Time_Set); + mATempValueView = findViewById(R.id.A_Temp_Set); + mATimeValueView = findViewById(R.id.A_Time_Set); + mETempValueView = findViewById(R.id.E_Temp_Set); + mETimeValueView = findViewById(R.id.E_Time_Set); + mLTempValueView=findViewById(R.id.L_Temp_Set); + mOTempValueView=findViewById(R.id.O_Temp_Set); + mLTimeValueView = findViewById(R.id.L_Time_Set); + + mOTimeValueView = findViewById(R.id.O_Time_Set); + +*/ + + + + + + + + + + + + + + +/* + mNPcrCView = findViewById(R.id.N_Pcr_C); +*/ + + + mHeatingState = findViewById(R.id.heating_state); + mHeatingStatusView= findViewById(R.id.heating_status_text); + + mHeatingState.setOnCheckedChangeListener((buttonView, isChecked) -> { + if(connect.getText().equals("CONNECT")) + { + Toast.makeText(TemplateActivity2.this, "Please connect to device", Toast.LENGTH_SHORT).show(); + + } + else { + if (isChecked) { + getService().heatingSwitch(1); + + + + /* mDSetTemp = Integer.parseInt(mDTempValueView.getText().toString()); + getService().sendDTemp(mDSetTemp); + mDSetTime = Integer.parseInt(mDTimeValueView.getText().toString()); + getService().sendDTime(mDSetTime); + + mLSetTemp = Integer.parseInt(mLTempValueView.getText().toString()); + getService().sendLTemp(mLSetTemp); + mLSetTime = Integer.parseInt(mLTimeValueView.getText().toString()); + getService().sendLTime(mLSetTime); + + mOSetTemp = Integer.parseInt(mOTempValueView.getText().toString()); + getService().sendOTemp(mOSetTemp); + mOSetTime = Integer.parseInt(mOTimeValueView.getText().toString()); + getService().sendOTime(mOSetTime); + + + + + + + + + + + // Log.d("Add", String.valueOf(m)); + + mASetTemp = Integer.parseInt(mATempValueView.getText().toString()); + getService().sendATemp(mASetTemp); + mASetTime = Integer.parseInt(mATimeValueView.getText().toString()); + getService().sendATime(mASetTime); + + mESetTemp = Integer.parseInt(mETempValueView.getText().toString()); + getService().sendETemp(mESetTemp); + mESetTime = Integer.parseInt(mETimeValueView.getText().toString()); + getService().sendETime(mESetTime); + + mNPcrC = Integer.parseInt(mNPcrCView.getText().toString()); + getService().sendNPcrN(mNPcrC); +*/ + + } + else { + getService().heatingSwitch(0); + } + mHeatingStatusView.setText(isChecked ? R.string.Heating_block_on : R.string.Heating_block_off); + }}); + + + /*findViewById(R.id.time_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + + mSetTime = Integer.parseInt(mTimeValueView.getText().toString()); + getService().sendTimeDuration(mSetTime); + } + }); + + findViewById(R.id.temp_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + mSetTemp = Integer.parseInt(mTempValueView.getText().toString()); + getService().sendTemp(mSetTemp); + } + });*/ + } + + @Override + protected void onInitialize(final Bundle savedInstanceState) { + LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver); + } + + @Override + protected void setDefaultUI() { + // TODO clear your UI + mValueView.setText(R.string.not_available_value); + } + + @Override + protected int getLoggerProfileTitle() { + return R.string.template_feature_title; + } + + /*@Override + protected void getAboutTextId() { + Intent intent =new Intent (TemplateActivity2.this,About.class); + startActivity(intent); + } + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.settings_and_about, menu); + return true; + } + + @Override + protected boolean onOptionsItemSelected(final int itemId) { + switch (itemId) { + *//*case R.id.action_settings: + final Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + break;*//* + } + return true; + } +*/ + @Override + protected int getDefaultDeviceName() { + return R.string.template_default_name; + } + + @Override + protected UUID getFilterUUID() { + // TODO this method may return the UUID of the service that is required to be in the advertisement packet of a device in order to be listed on the Scanner dialog. + // If null is returned no filtering is done. + return TemplateManager.SERVICE_UUID; + } + + @Override + protected Class getServiceClass() { + return SPCAService.class; + } + + @Override + protected void onServiceBound(final SPCAService.TemplateBinder binder) { + // not used + } + + @Override + protected void onServiceUnbound() { + // not used + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceDisconnected(final BluetoothDevice device) { + super.onDeviceDisconnected(device); + } + + // Handling updates from the device + @SuppressWarnings("unused") + private void setValueOnView(@NonNull final BluetoothDevice device, final int value) { + mValueView.setText(String.valueOf(value)); + + // TODO assign the value to a view + if(mHeatingState.isChecked()) + { + d.postDelayed(new Runnable() { + public void run() { + d.setEnabled(true); + Log.d(TAG, "resend1"); + } + }, 7000); + d.postDelayed(new Runnable() { + public void run() { + act3_1=value; + mValueView.setText(String.valueOf(act3_1)); + Log.d(TAG, "resend1"); + } + }, 5000); + d.postDelayed(new Runnable() { + public void run() { + act3_2=value; + mValueView.setText(String.valueOf(act3_2)); + Log.d(TAG, "resend1"); + } + }, 6000); + d.postDelayed(new Runnable() { + public void run() { + act3_3=value; + mValueView.setText(String.valueOf(act3_3)); + Log.d(TAG, "resend1"); + } + }, 7000); + + + } + /*else if (!mHeatingState.isChecked() && count ==1) { + + love=1; + count=2; + Log.d("check1", String.valueOf(love)); + + mValueView.setText("_"); + Log.d("love", String.valueOf(love)); + Log.d("love", String.valueOf(p)); + + + } + else if ( mHeatingState.isChecked() && love ==1 ) + { + q=value; + final int d=value; + Log.d("Addq", String.valueOf(q)); + + mValueView.setText(String.valueOf(d)); + love1=1; + } + else if(!mHeatingState.isChecked() && love1 ==1) + { + love3=1; + mValueView.setText("_"); + Log.d("check1", String.valueOf(love)); + + + + } + else if(mHeatingState.isChecked() && love3 ==1) + { + r=value; + mValueView.setText(String.valueOf(value)); + Log.d("Addr", String.valueOf(r)); + + + + } +*/ + else + { + mValueView.setText("_"); + + } + } + + @SuppressWarnings("unused") + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int value) { + + } + + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final String action = intent.getAction(); + final BluetoothDevice device = intent.getParcelableExtra(SPCAService.EXTRA_DEVICE); + + if (SPCAService.BROADCAST_TEMPLATE_MEASUREMENT.equals(action)) { + final int value = intent.getIntExtra(SPCAService.EXTRA_DATA, 0); + // Update GUI + setValueOnView(device, value); + } else if (SPCAService.BROADCAST_BATTERY_LEVEL.equals(action)) { + final int batteryLevel = intent.getIntExtra(SPCAService.EXTRA_BATTERY_LEVEL, 0); + // Update GUI + onBatteryLevelChanged(device, batteryLevel); + } + } + }; + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(SPCAService.BROADCAST_TEMPLATE_MEASUREMENT); + intentFilter.addAction(SPCAService.BROADCAST_BATTERY_LEVEL); + return intentFilter; + } + private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_home: + Intent intent = new Intent(TemplateActivity2.this, MainActivity.class); + + + startActivity(intent); + + + break; + case R.id.nav_addtest: + Intent intent2 = new Intent(TemplateActivity2.this, TestDetails.class); + + + startActivity(intent2); + break; + case R.id.nav_add_sample: + Intent intent3 = new Intent(TemplateActivity2.this, TemplateActivity2.class); + + + startActivity(intent3); + break; + } + + return true; + } + }; + @Override + public void onBackPressed() { + //super.onBackPressed(); + IsFinish("Want to exit Test ?"); + } + + public void IsFinish(String alertmessage) { + + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + Intent intent = new Intent(TemplateActivity2.this, TestDetails.class); + + + startActivity(intent); + break; + + case DialogInterface.BUTTON_NEGATIVE: + break; + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage(alertmessage) + .setPositiveButton("Yes", dialogClickListener) + .setNegativeButton("No", dialogClickListener).show(); + AlertDialog alertDialog = builder.create(); + alertDialog.show(); + alertDialog.getButton(Dialog.BUTTON_NEGATIVE).setTextColor(Color.BLACK); + alertDialog.getButton(Dialog.BUTTON_POSITIVE).setTextColor(Color.BLACK); + + alertDialog.getButton(Dialog.BUTTON_NEGATIVE). + setBackgroundColor(Color.TRANSPARENT); + alertDialog.getButton(Dialog.BUTTON_POSITIVE). + setBackgroundColor(Color.TRANSPARENT); + + } + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity3.java b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity3.java new file mode 100644 index 0000000..8295a01 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateActivity3.java @@ -0,0 +1,391 @@ +package no.Reader.android.iisc.Reader; + +import android.bluetooth.BluetoothDevice; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.SharedPreferences; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; + +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.Switch; +import android.widget.TextView; + + +import java.util.UUID; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.profile.BleProfileService; +import no.Reader.android.iisc.profile.BleProfileServiceReadyActivity; + + +/** + * Modify the Template Activity to match your needs. + */ +public class TemplateActivity3 extends BleProfileServiceReadyActivity { + @SuppressWarnings("unused") + private final String TAG = "TemplateActivity"; + + // TODO change view references to match your need + private TextView mValueView; + private TextView mHeatingStatusView; + + private Switch mHeatingState ; + int p ,q,r; + int count =0; + int love=0; + int love1=0; + int love2=0; + int love3=0; + private TextView mClockView; + int act1=0; + private Button d,next; + String value1,value2,value3; + + /*private EditText mDTimeValueView; + private Integer mDSetTime ; + private EditText mLTimeValueView; + private Integer mLSetTime ; + private EditText mOTimeValueView; + private Integer mOSetTime ; + + private TextView mClockView; + + private EditText mATimeValueView; + private Integer mASetTime ; + private EditText mETimeValueView; + private Integer mESetTime ; + + private EditText mDTempValueView; + private Integer mDSetTemp ; + private EditText mATempValueView; + private Integer mASetTemp ; + private EditText mETempValueView; + private Integer mESetTemp ; + + private EditText mLTempValueView; + private Integer mLSetTemp ; + private EditText mOTempValueView; + private Integer mOSetTemp ; + + private EditText mNPcrCView; + private Integer mNPcrC ; + +*/ + @Override + protected void onCreateView(final Bundle savedInstanceState) { + // TODO modify the layout file(s). By default the activity shows only one field - the Heart Rate value as a sample + setContentView(R.layout.activity_feature_template3); + setGUI(); + SharedPreferences preferences6 = getSharedPreferences("PhoneBook", MODE_PRIVATE); + + value1 = preferences6.getString("act1", null); + SharedPreferences preferences7 = getSharedPreferences("PhoneBook1", MODE_PRIVATE); + value2 = preferences7.getString("act2", null); + + SharedPreferences preferences8 = getSharedPreferences("PhoneBook2", MODE_PRIVATE); + + value3 = preferences8.getString("act3", null); + next.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + Intent intent =new Intent (TemplateActivity3.this,TemplateActivity.class); + startActivity(intent); + } + }); + + + Log.d("value1", String.valueOf(value1)); + Log.d("value2", String.valueOf(value2)); + + Log.d("value3", String.valueOf(value3)); + + } + + + private void setGUI() { + // mClockView=findViewById(R.id.RemTime_Value); + + // TODO assign your views to fields +// mValueView = findViewById(R.id.Temp_Value); +// d=findViewById(R.id.next); + /*mDTempValueView = findViewById(R.id.D_Temp_Set); + mDTimeValueView = findViewById(R.id.D_Time_Set); + mATempValueView = findViewById(R.id.A_Temp_Set); + mATimeValueView = findViewById(R.id.A_Time_Set); + mETempValueView = findViewById(R.id.E_Temp_Set); + mETimeValueView = findViewById(R.id.E_Time_Set); + mLTempValueView=findViewById(R.id.L_Temp_Set); + mOTempValueView=findViewById(R.id.O_Temp_Set); + mLTimeValueView = findViewById(R.id.L_Time_Set); + + mOTimeValueView = findViewById(R.id.O_Time_Set); + +*/ + + + + + + + + + + + + + + +/* + mNPcrCView = findViewById(R.id.N_Pcr_C); +*/ + + + mHeatingState = findViewById(R.id.heating_state); + mHeatingStatusView= findViewById(R.id.heating_status_text); + next=findViewById(R.id.next); + + mHeatingState.setOnCheckedChangeListener((buttonView, isChecked) -> { + if (isChecked) { + getService().heatingSwitch(1); + + + + /* mDSetTemp = Integer.parseInt(mDTempValueView.getText().toString()); + getService().sendDTemp(mDSetTemp); + mDSetTime = Integer.parseInt(mDTimeValueView.getText().toString()); + getService().sendDTime(mDSetTime); + + mLSetTemp = Integer.parseInt(mLTempValueView.getText().toString()); + getService().sendLTemp(mLSetTemp); + mLSetTime = Integer.parseInt(mLTimeValueView.getText().toString()); + getService().sendLTime(mLSetTime); + + mOSetTemp = Integer.parseInt(mOTempValueView.getText().toString()); + getService().sendOTemp(mOSetTemp); + mOSetTime = Integer.parseInt(mOTimeValueView.getText().toString()); + getService().sendOTime(mOSetTime); + + + + + + + + + + + // Log.d("Add", String.valueOf(m)); + + mASetTemp = Integer.parseInt(mATempValueView.getText().toString()); + getService().sendATemp(mASetTemp); + mASetTime = Integer.parseInt(mATimeValueView.getText().toString()); + getService().sendATime(mASetTime); + + mESetTemp = Integer.parseInt(mETempValueView.getText().toString()); + getService().sendETemp(mESetTemp); + mESetTime = Integer.parseInt(mETimeValueView.getText().toString()); + getService().sendETime(mESetTime); + + mNPcrC = Integer.parseInt(mNPcrCView.getText().toString()); + getService().sendNPcrN(mNPcrC); +*/ + + } + else { + getService().heatingSwitch(0); + } + mHeatingStatusView.setText(isChecked ? R.string.Heating_block_on : R.string.Heating_block_off); + }); + + + /*findViewById(R.id.time_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + + mSetTime = Integer.parseInt(mTimeValueView.getText().toString()); + getService().sendTimeDuration(mSetTime); + } + }); + + findViewById(R.id.temp_set_button).setOnClickListener(v -> { + if (isDeviceConnected()) { + mSetTemp = Integer.parseInt(mTempValueView.getText().toString()); + getService().sendTemp(mSetTemp); + } + });*/ + } + + @Override + protected void onInitialize(final Bundle savedInstanceState) { + LocalBroadcastManager.getInstance(this).registerReceiver(mBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver); + } + + @Override + protected void setDefaultUI() { + // TODO clear your UI + mValueView.setText(R.string.not_available_value); + } + + @Override + protected int getLoggerProfileTitle() { + return R.string.template_feature_title; + } + + /*@Override + protected void getAboutTextId() { + Intent intent =new Intent (TemplateActivity3.this,About.class); + startActivity(intent); + } + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + getMenuInflater().inflate(R.menu.settings_and_about, menu); + return true; + } + + @Override + protected boolean onOptionsItemSelected(final int itemId) { + switch (itemId) { + *//*case R.id.action_settings: + final Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + break;*//* + } + return true; + } +*/ + @Override + protected int getDefaultDeviceName() { + return R.string.template_default_name; + } + + @Override + protected UUID getFilterUUID() { + // TODO this method may return the UUID of the service that is required to be in the advertisement packet of a device in order to be listed on the Scanner dialog. + // If null is returned no filtering is done. + return TemplateManager.SERVICE_UUID; + } + + @Override + protected Class getServiceClass() { + return SPCAService.class; + } + + @Override + protected void onServiceBound(final SPCAService.TemplateBinder binder) { + // not used + } + + @Override + protected void onServiceUnbound() { + // not used + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceDisconnected(final BluetoothDevice device) { + super.onDeviceDisconnected(device); + } + + // Handling updates from the device + @SuppressWarnings("unused") + private void setValueOnView(@NonNull final BluetoothDevice device, final int value) { + // TODO assign the value to a view + if(mHeatingState.isChecked()) + { + act1=value; + mValueView.setText(String.valueOf(act1)); + + } + /*else if (!mHeatingState.isChecked() && count ==1) { + + love=1; + count=2; + Log.d("check1", String.valueOf(love)); + + mValueView.setText("_"); + Log.d("love", String.valueOf(love)); + Log.d("love", String.valueOf(p)); + + + } + else if ( mHeatingState.isChecked() && love ==1 ) + { + q=value; + final int d=value; + Log.d("Addq", String.valueOf(q)); + + mValueView.setText(String.valueOf(d)); + love1=1; + } + else if(!mHeatingState.isChecked() && love1 ==1) + { + love3=1; + mValueView.setText("_"); + Log.d("check1", String.valueOf(love)); + + + + } + else if(mHeatingState.isChecked() && love3 ==1) + { + r=value; + mValueView.setText(String.valueOf(value)); + Log.d("Addr", String.valueOf(r)); + + + + } +*/ + else + { + mValueView.setText("_"); + + } + } + + @SuppressWarnings("unused") + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int value) { + + } + + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final String action = intent.getAction(); + final BluetoothDevice device = intent.getParcelableExtra(SPCAService.EXTRA_DEVICE); + + if (SPCAService.BROADCAST_TEMPLATE_MEASUREMENT.equals(action)) { + final int value = intent.getIntExtra(SPCAService.EXTRA_DATA, 0); + // Update GUI + setValueOnView(device, value); + } else if (SPCAService.BROADCAST_BATTERY_LEVEL.equals(action)) { + final int batteryLevel = intent.getIntExtra(SPCAService.EXTRA_BATTERY_LEVEL, 0); + // Update GUI + onBatteryLevelChanged(device, batteryLevel); + } + } + }; + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(SPCAService.BROADCAST_TEMPLATE_MEASUREMENT); + intentFilter.addAction(SPCAService.BROADCAST_BATTERY_LEVEL); + return intentFilter; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TemplateManager.java b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateManager.java new file mode 100644 index 0000000..bf5244c --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TemplateManager.java @@ -0,0 +1,959 @@ +package no.Reader.android.iisc.Reader; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattService; +import android.content.Context; +import androidx.annotation.NonNull; + +import android.util.Log; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.data.Data; +import no.nordicsemi.android.log.LogContract; +import no.Reader.android.iisc.battery.BatteryManager; +import no.Reader.android.iisc.parser.SPCAParser; +import no.Reader.android.iisc.Reader.callback.SPCADataCallback; + + +/** + * Modify to template manager to match your requirements. + * The TemplateManager extends {@link BatteryManager}, but it may easily extend {@link BleManager} + * instead if you don't need Battery Service support. If not, also modify the + * {@link SPCAManagerCallbacks} to extend {@link no.nordicsemi.android.ble.BleManagerCallbacks} + * and replace BatteryManagerGattCallback to BleManagerGattCallback in this class. + */ +public class TemplateManager extends BatteryManager { + // TODO Replace the services and characteristics below to match your device. + /** + * The service UUID. + */ + /*static final UUID SERVICE_UUID = UUID.fromString("00001500-1212-efde-1523-785feabcd123"); // Heart Rate service + *//** + * A UUID of a characteristic with notify property. + *//* + //private static final UUID MEASUREMENT_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + //private static final UUID TEMPERATURE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + *//** + * A UUID of a characteristic with read property. + *//* + //private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID TEMP_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Body Sensor Location + + *//** + * A UUID of a characteristic with write property. + *//* + private static final UUID D_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001503-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001504-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001505-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001514-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Device Name + + + *//** + * A UUID of a characteristic with write property. + *//* + private static final UUID D_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001509-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001510-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001511-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001515-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001508-1212-efde-1523-785feabcd123"); // Device Name + + + private static final UUID N_PCR_C_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001512-1212-efde-1523-785feabcd123"); // Device Name + + *//** + * A UUID of a characteristic with write property. + *//* + private static final UUID AMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001513-1212-efde-1523-785feabcd123"); // Device Name + + *//** + * Some other service UUID. + *//* + private static final UUID OTHER_SERVICE_UUID = UUID.fromString("00001800-0000-1000-8000-00805f9b34fb"); // Generic Access service + *//** + * A UUID of a characteristic with write property. + *//* + private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001801-0000-1000-8000-00805f9b34fb"); // Device Name +*/ + + static final UUID SERVICE_UUID = UUID.fromString("00001600-1212-efde-1523-785feabcd123"); // Heart Rate service + + /** + * A UUID of a characteristic with notify property. + */ + //private static final UUID MEASUREMENT_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + //private static final UUID TEMPERATURE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + /** + * A UUID of a characteristic with read property. + */ + //private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID TEMP_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001601-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID CLOCK_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Body Sensor Location + + /** + * A UUID of a characteristic with write property. + */ + private static final UUID D_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID S_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + + + /** + * A UUID of a characteristic with write property. + */ + private static final UUID D_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + + private static final UUID S_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name00001604-1212-efde-1523-785feabcd123 + + private static final UUID N_PCR_C_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + + /** + * A UUID of a characteristic with write property. + */ + private static final UUID AMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001604-1212-efde-1523-785feabcd123"); // Device Name + + /** + * Some other service UUID. + */ + private static final UUID OTHER_SERVICE_UUID = UUID.fromString("00001800-0000-1000-8000-00805f9b34fb"); // Generic Access service + /** + * A UUID of a characteristic with write property. + */ + private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001801-0000-1000-8000-00805f9b34fb"); // Device Name + + // TODO Add more services and characteristics references. + + private BluetoothGattCharacteristic mReadBlockTempCharacteristic, mSetDTempCharacteristic, mSetDTimeCharacteristic, mSetATempCharacteristic, mSetATimeCharacteristic, mSetETempCharacteristic, mSetETimeCharacteristic, mSetNPcrCCharacteristic, mAmpStartStopCharacteristic, mDeviceNameCharacteristic, mRequiredCharacteristic, mOptionalCharacteristic + ,mSetLTempCharacteristic,mSetOTempCharacteristic,mSetLTimeCharacteristic,mSetOTimeCharacteristic; + + public TemplateManager(final Context context) { + super(context); + } + + @NonNull + @Override + protected BatteryManagerGattCallback getGattCallback() { + return mGattCallback; + } + + /** + * BluetoothGatt callbacks for connection/disconnection, service discovery, + * receiving indication, etc. + */ + private final BatteryManagerGattCallback mGattCallback = new BatteryManagerGattCallback() { + + @Override + protected void initialize() { + // Initialize the Battery Manager. It will enable Battery Level notifications. + // Remove it if you don't need this feature. + super.initialize(); + + // TODO Initialize your manager here. + // Initialization is done once, after the device is connected. Usually it should + // enable notifications or indications on some characteristics, write some data or + // read some features / version. + // After the initialization is complete, the onDeviceReady(...) method will be called. + + // Increase the MTU + requestMtu(43)//requestMtu(43) + .with((device, mtu) -> log(LogContract.Log.Level.APPLICATION, "MTU changed to " + mtu)) + .done(device -> { + // You may do some logic in here that should be done when the request finished successfully. + // In case of MTU this method is called also when the MTU hasn't changed, or has changed + // to a different (lower) value. Use .with(...) to get the MTU value. + }) + .fail((device, status) -> log(Log.WARN, "MTU change not supported")) + .enqueue(); + + // Set notification callback + setNotificationCallback(mReadBlockTempCharacteristic) + // This callback will be called each time the notification is received + .with(new SPCADataCallback() { + @Override + public void onDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) { + if(data!=null) { + log(LogContract.Log.Level.APPLICATION, SPCAParser.parse(data)); + + super.onDataReceived(device, data); + } + } + + @Override + public void onSampleValueReceived(@NonNull final BluetoothDevice device, final int value) { + // Let's lass received data to the service + mCallbacks.onSampleValueReceived(device, value); + } + + @Override + public void onInvalidDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) { + log(Log.WARN, "Invalid data received: " + data); + } + }); + + // Enable notifications + enableNotifications(mReadBlockTempCharacteristic) + // Method called after the data were sent (data will contain 0x0100 in this case) + .with((device, data) -> log(Log.DEBUG, "Data sent: " + data)) + // Method called when the request finished successfully. This will be called after .with(..) callback + .done(device -> log(LogContract.Log.Level.APPLICATION, "Notifications enabled successfully")) + // Methods called in case of an error, for example when the characteristic does not have Notify property + .fail((device, status) -> log(Log.WARN, "Failed to enable notifications")) + .enqueue(); + } + + @Override + protected boolean isRequiredServiceSupported(@NonNull final BluetoothGatt gatt) { + // TODO Initialize required characteristics. + // It should return true if all has been discovered (that is that device is supported). + final BluetoothGattService service = gatt.getService(SERVICE_UUID); + if (service != null) { + mReadBlockTempCharacteristic = service.getCharacteristic(TEMP_READABLE_CHARACTERISTIC_UUID); + + mSetDTempCharacteristic = service.getCharacteristic(D_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetDTimeCharacteristic = service.getCharacteristic(D_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetATempCharacteristic = service.getCharacteristic(A_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetATimeCharacteristic = service.getCharacteristic(A_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetETempCharacteristic = service.getCharacteristic(E_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetETimeCharacteristic = service.getCharacteristic(E_TIME_WRITABLE_CHARACTERISTIC_UUID); + + mSetLTempCharacteristic = service.getCharacteristic(L_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetLTimeCharacteristic = service.getCharacteristic(L_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetOTempCharacteristic = service.getCharacteristic(O_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetOTimeCharacteristic = service.getCharacteristic(O_TIME_WRITABLE_CHARACTERISTIC_UUID); + + + mSetNPcrCCharacteristic = service.getCharacteristic(N_PCR_C_WRITABLE_CHARACTERISTIC_UUID); + + mAmpStartStopCharacteristic = service.getCharacteristic(AMP_WRITABLE_CHARACTERISTIC_UUID); + } + final BluetoothGattService otherService = gatt.getService(OTHER_SERVICE_UUID); + if (otherService != null) { + mDeviceNameCharacteristic = otherService.getCharacteristic(READABLE_CHARACTERISTIC_UUID); + } + + return mReadBlockTempCharacteristic != null && mSetDTempCharacteristic != null && mSetDTimeCharacteristic!= null && mSetATempCharacteristic != null && mSetATimeCharacteristic!= null && mSetETempCharacteristic != null && mSetLTempCharacteristic != null && mSetETimeCharacteristic!= null && mSetOTempCharacteristic != null && mSetLTimeCharacteristic!= null && mSetOTimeCharacteristic!= null && mSetNPcrCCharacteristic!= null && mAmpStartStopCharacteristic != null ; + } + + @Override + protected boolean isOptionalServiceSupported(@NonNull final BluetoothGatt gatt) { + // Initialize Battery characteristic + super.isOptionalServiceSupported(gatt); + + // TODO If there are some optional characteristics, initialize them there. + final BluetoothGattService service = gatt.getService(SERVICE_UUID); + if (service != null) { + mOptionalCharacteristic = service.getCharacteristic(READABLE_CHARACTERISTIC_UUID); + } + return mOptionalCharacteristic != null; + } + + @Override + protected void onDeviceDisconnected() { + // Release Battery Service + super.onDeviceDisconnected(); + + // TODO Release references to your characteristics. + mRequiredCharacteristic = null; + mDeviceNameCharacteristic = null; + mOptionalCharacteristic = null; + } + + @Override + protected void onDeviceReady() { + super.onDeviceReady(); + + // Initialization is now ready. + // The service or activity has been notified with no.nordicsemi.android.ble.BatteryManagerCallbacks#onDeviceReady(). + // TODO Do some extra logic here, of remove onDeviceReady(). + + // Device is ready, let's read something here. Usually there is nothing else to be done + // here, as all had been done during initialization. + readCharacteristic(mReadBlockTempCharacteristic) + .with((device, data) -> { + // Characteristic value has been read + // Let's do some magic with it. + if (data.size() > 0) { + final Integer value = data.getIntValue(Data.FORMAT_UINT8, 0); + log(LogContract.Log.Level.APPLICATION, "Value '" + value + "' has been read!"); + } else { + log(Log.WARN, "Value is empty!"); + } + }) + .enqueue(); + } + }; + + // TODO Define manager's API + + /** + * This method will write important data to the device. + * + * @param parameter parameter to be written. + */ + + + //Heating Switch + void heatingSwitch(int state) { + log(Log.WARN, "Write time duration \"" + state + "\""); + //final byte time_in_byte = time_duration.getBytes()[0]; + final byte state_in_byte = (byte) state; + writeCharacteristic(mAmpStartStopCharacteristic, Data.opCode(state_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Heating State")) + .split() + .enqueue(); + + } + + //Set Time + void sendDTime(int d_time) { + log(Log.WARN, "Write D Time Duration \"" + d_time + "\""); + final byte d_time_in_byte = (byte) d_time; + writeCharacteristic(mSetDTimeCharacteristic, Data.opCode(d_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + void sendATime(int a_time) { + log(Log.WARN, "Write A Time Duration \"" + a_time + "\""); + final byte a_time_in_byte = (byte) a_time; + writeCharacteristic(mSetATimeCharacteristic, Data.opCode(a_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + void sendLTime(int l_time) { + log(Log.WARN, "Write A Time Duration \"" + l_time + "\""); + final byte l_time_in_byte = (byte) l_time; + writeCharacteristic(mSetLTimeCharacteristic, Data.opCode(l_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + void sendOTime(int o_time) { + log(Log.WARN, "Write A Time Duration \"" + o_time + "\""); + final byte a_time_in_byte = (byte) o_time; + writeCharacteristic(mSetOTimeCharacteristic, Data.opCode(a_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + + void sendETime(int e_time) { + log(Log.WARN, "Write E Time Duration \"" + e_time + "\""); + final byte e_time_in_byte = (byte) e_time; + writeCharacteristic(mSetETimeCharacteristic, Data.opCode(e_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + + //Set Temp + void sendDTemp(int d_temp) { + log(Log.WARN, "Write D temp \"" + d_temp + "\""); + final byte d_temp_in_byte = (byte) d_temp; + writeCharacteristic(mSetDTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + void sendLTemp(int l_temp) { + log(Log.WARN, "Write D temp \"" + l_temp + "\""); + final byte d_temp_in_byte = (byte) l_temp; + writeCharacteristic(mSetLTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + void sendOTemp(int o_temp) { + log(Log.WARN, "Write D temp \"" + o_temp + "\""); + final byte d_temp_in_byte = (byte) o_temp; + writeCharacteristic(mSetOTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + + + + + + + + + void sendATemp(int a_temp) { + log(Log.WARN, "Write A temp \"" + a_temp + "\""); + final byte a_temp_in_byte = (byte) a_temp; + writeCharacteristic(mSetATempCharacteristic, Data.opCode(a_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + void sendETemp(int e_temp) { + log(Log.WARN, "Write E temp \"" + e_temp + "\""); + final byte e_temp_in_byte = (byte) e_temp; + writeCharacteristic(mSetETempCharacteristic, Data.opCode(e_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + void sendNPcrC(int n_pcr_c) { + log(Log.WARN, "Write E temp \"" + n_pcr_c + "\""); + final byte n_pcr_c_in_byte = (byte) n_pcr_c; + writeCharacteristic(mSetNPcrCCharacteristic, Data.opCode(n_pcr_c_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + + +} + + + + + + + + + +/* + * Copyright (c) 2015, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *//* + +package no.Reader.android.iisc.template; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattService; +import android.content.Context; +import androidx.annotation.NonNull; + +import android.util.Log; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.data.Data; +import no.nordicsemi.android.log.LogContract; +import no.Reader.android.iisc.battery.BatteryManager; +import no.Reader.android.iisc.parser.SPCAParser; +import no.Reader.android.iisc.template.callback.SPCADataCallback; + + +*/ +/** + * Modify to template manager to match your requirements. + * The TemplateManager extends {@link BatteryManager}, but it may easily extend {@link BleManager} + * instead if you don't need Battery Service support. If not, also modify the + * {@link TemplateManagerCallbacks} to extend {@link no.nordicsemi.android.ble.BleManagerCallbacks} + * and replace BatteryManagerGattCallback to BleManagerGattCallback in this class. + *//* + +public class TemplateManager extends BatteryManager { + // TODO Replace the services and characteristics below to match your device. + */ +/** + * The service UUID. + *//* + + */ +/*static final UUID SERVICE_UUID = UUID.fromString("00001500-1212-efde-1523-785feabcd123"); // Heart Rate service + *//* +*/ +/** + * A UUID of a characteristic with notify property. + *//* +*/ +/* + //private static final UUID MEASUREMENT_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + //private static final UUID TEMPERATURE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + *//* +*/ +/** + * A UUID of a characteristic with read property. + *//* +*/ +/* + //private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID TEMP_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Body Sensor Location + + *//* +*/ +/** + * A UUID of a characteristic with write property. + *//* +*/ +/* + private static final UUID D_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001503-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001504-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001505-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001514-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Device Name + + + *//* +*/ +/** + * A UUID of a characteristic with write property. + *//* +*/ +/* + private static final UUID D_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001509-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001510-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001511-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001515-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001508-1212-efde-1523-785feabcd123"); // Device Name + + + private static final UUID N_PCR_C_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001512-1212-efde-1523-785feabcd123"); // Device Name + + *//* +*/ +/** + * A UUID of a characteristic with write property. + *//* +*/ +/* + private static final UUID AMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001513-1212-efde-1523-785feabcd123"); // Device Name + + *//* +*/ +/** + * Some other service UUID. + *//* +*/ +/* + private static final UUID OTHER_SERVICE_UUID = UUID.fromString("00001800-0000-1000-8000-00805f9b34fb"); // Generic Access service + *//* +*/ +/** + * A UUID of a characteristic with write property. + *//* +*/ +/* + private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001801-0000-1000-8000-00805f9b34fb"); // Device Name +*//* + + + static final UUID SERVICE_UUID = UUID.fromString("00001500-1212-efde-1523-785feabcd123"); // Heart Rate service + + */ +/** + * A UUID of a characteristic with notify property. + *//* + + //private static final UUID MEASUREMENT_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + //private static final UUID TEMPERATURE_CHARACTERISTIC_UUID = UUID.fromString("00001501-1212-efde-1523-785feabcd123"); // Heart Rate Measurement + */ +/** + * A UUID of a characteristic with read property. + *//* + + //private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID TEMP_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001514-1212-efde-1523-785feabcd123"); // Body Sensor Location + private static final UUID CLOCK_READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001514-1212-efde-1523-785feabcd123"); // Body Sensor Location + + */ +/** + * A UUID of a characteristic with write property. + *//* + + private static final UUID D_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001504-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001506-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001508-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001515-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001502-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID S_TEMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001510-1212-efde-1523-785feabcd123"); // Device Name + + + */ +/** + * A UUID of a characteristic with write property. + *//* + + private static final UUID D_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001505-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID A_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001507-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID E_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001509-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID L_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001516-1212-efde-1523-785feabcd123"); // Device Name + private static final UUID O_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001503-1212-efde-1523-785feabcd123"); // Device Name + + private static final UUID S_TIME_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001511-1212-efde-1523-785feabcd123"); // Device Name + + private static final UUID N_PCR_C_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001512-1212-efde-1523-785feabcd123"); // Device Name + + */ +/** + * A UUID of a characteristic with write property. + *//* + + private static final UUID AMP_WRITABLE_CHARACTERISTIC_UUID = UUID.fromString("00001513-1212-efde-1523-785feabcd123"); // Device Name + + */ +/** + * Some other service UUID. + *//* + + private static final UUID OTHER_SERVICE_UUID = UUID.fromString("00001800-0000-1000-8000-00805f9b34fb"); // Generic Access service + */ +/** + * A UUID of a characteristic with write property. + *//* + + private static final UUID READABLE_CHARACTERISTIC_UUID = UUID.fromString("00001801-0000-1000-8000-00805f9b34fb"); // Device Name + + // TODO Add more services and characteristics references. + + private BluetoothGattCharacteristic mReadBlockTempCharacteristic, mSetDTempCharacteristic, mSetDTimeCharacteristic, mSetATempCharacteristic, mSetATimeCharacteristic, mSetETempCharacteristic, mSetETimeCharacteristic, mSetNPcrCCharacteristic, mAmpStartStopCharacteristic, mDeviceNameCharacteristic, mRequiredCharacteristic, mOptionalCharacteristic + ,mSetLTempCharacteristic,mSetOTempCharacteristic,mSetLTimeCharacteristic,mSetOTimeCharacteristic; + + public TemplateManager(final Context context) { + super(context); + } + + @NonNull + @Override + protected BatteryManagerGattCallback getGattCallback() { + return mGattCallback; + } + + */ +/** + * BluetoothGatt callbacks for connection/disconnection, service discovery, + * receiving indication, etc. + *//* + + private final BatteryManagerGattCallback mGattCallback = new BatteryManagerGattCallback() { + + @Override + protected void initialize() { + // Initialize the Battery Manager. It will enable Battery Level notifications. + // Remove it if you don't need this feature. + super.initialize(); + + // TODO Initialize your manager here. + // Initialization is done once, after the device is connected. Usually it should + // enable notifications or indications on some characteristics, write some data or + // read some features / version. + // After the initialization is complete, the onDeviceReady(...) method will be called. + + // Increase the MTU + requestMtu(43)//requestMtu(43) + .with((device, mtu) -> log(LogContract.Log.Level.APPLICATION, "MTU changed to " + mtu)) + .done(device -> { + // You may do some logic in here that should be done when the request finished successfully. + // In case of MTU this method is called also when the MTU hasn't changed, or has changed + // to a different (lower) value. Use .with(...) to get the MTU value. + }) + .fail((device, status) -> log(Log.WARN, "MTU change not supported")) + .enqueue(); + + // Set notification callback + setNotificationCallback(mReadBlockTempCharacteristic) + // This callback will be called each time the notification is received + .with(new SPCADataCallback() { + @Override + public void onDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) { + log(LogContract.Log.Level.APPLICATION, SPCAParser.parse(data)); + super.onDataReceived(device, data); + } + + @Override + public void onSampleValueReceived(@NonNull final BluetoothDevice device, final int value) { + // Let's lass received data to the service + mCallbacks.onSampleValueReceived(device, value); + } + + @Override + public void onInvalidDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) { + log(Log.WARN, "Invalid data received: " + data); + } + }); + + // Enable notifications + enableNotifications(mReadBlockTempCharacteristic) + // Method called after the data were sent (data will contain 0x0100 in this case) + .with((device, data) -> log(Log.DEBUG, "Data sent: " + data)) + // Method called when the request finished successfully. This will be called after .with(..) callback + .done(device -> log(LogContract.Log.Level.APPLICATION, "Notifications enabled successfully")) + // Methods called in case of an error, for example when the characteristic does not have Notify property + .fail((device, status) -> log(Log.WARN, "Failed to enable notifications")) + .enqueue(); + } + + @Override + protected boolean isRequiredServiceSupported(@NonNull final BluetoothGatt gatt) { + // TODO Initialize required characteristics. + // It should return true if all has been discovered (that is that device is supported). + final BluetoothGattService service = gatt.getService(SERVICE_UUID); + if (service != null) { + mReadBlockTempCharacteristic = service.getCharacteristic(TEMP_READABLE_CHARACTERISTIC_UUID); + + mSetDTempCharacteristic = service.getCharacteristic(D_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetDTimeCharacteristic = service.getCharacteristic(D_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetATempCharacteristic = service.getCharacteristic(A_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetATimeCharacteristic = service.getCharacteristic(A_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetETempCharacteristic = service.getCharacteristic(E_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetETimeCharacteristic = service.getCharacteristic(E_TIME_WRITABLE_CHARACTERISTIC_UUID); + + mSetLTempCharacteristic = service.getCharacteristic(L_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetLTimeCharacteristic = service.getCharacteristic(L_TIME_WRITABLE_CHARACTERISTIC_UUID); + mSetOTempCharacteristic = service.getCharacteristic(O_TEMP_WRITABLE_CHARACTERISTIC_UUID); + mSetOTimeCharacteristic = service.getCharacteristic(O_TIME_WRITABLE_CHARACTERISTIC_UUID); + + + mSetNPcrCCharacteristic = service.getCharacteristic(N_PCR_C_WRITABLE_CHARACTERISTIC_UUID); + + mAmpStartStopCharacteristic = service.getCharacteristic(AMP_WRITABLE_CHARACTERISTIC_UUID); + } + final BluetoothGattService otherService = gatt.getService(OTHER_SERVICE_UUID); + if (otherService != null) { + mDeviceNameCharacteristic = otherService.getCharacteristic(READABLE_CHARACTERISTIC_UUID); + } + + return mReadBlockTempCharacteristic != null && mSetDTempCharacteristic != null && mSetDTimeCharacteristic!= null && mSetATempCharacteristic != null && mSetATimeCharacteristic!= null && mSetETempCharacteristic != null && mSetLTempCharacteristic != null && mSetETimeCharacteristic!= null && mSetOTempCharacteristic != null && mSetLTimeCharacteristic!= null && mSetOTimeCharacteristic!= null && mSetNPcrCCharacteristic!= null && mAmpStartStopCharacteristic != null ; + } + + @Override + protected boolean isOptionalServiceSupported(@NonNull final BluetoothGatt gatt) { + // Initialize Battery characteristic + super.isOptionalServiceSupported(gatt); + + // TODO If there are some optional characteristics, initialize them there. + final BluetoothGattService service = gatt.getService(SERVICE_UUID); + if (service != null) { + mOptionalCharacteristic = service.getCharacteristic(READABLE_CHARACTERISTIC_UUID); + } + return mOptionalCharacteristic != null; + } + + @Override + protected void onDeviceDisconnected() { + // Release Battery Service + super.onDeviceDisconnected(); + + // TODO Release references to your characteristics. + mRequiredCharacteristic = null; + mDeviceNameCharacteristic = null; + mOptionalCharacteristic = null; + } + + @Override + protected void onDeviceReady() { + super.onDeviceReady(); + + // Initialization is now ready. + // The service or activity has been notified with no.nordicsemi.android.ble.BatteryManagerCallbacks#onDeviceReady(). + // TODO Do some extra logic here, of remove onDeviceReady(). + + // Device is ready, let's read something here. Usually there is nothing else to be done + // here, as all had been done during initialization. + readCharacteristic(mReadBlockTempCharacteristic) + .with((device, data) -> { + // Characteristic value has been read + // Let's do some magic with it. + if (data.size() > 0) { + final Integer value = data.getIntValue(Data.FORMAT_UINT8, 0); + log(LogContract.Log.Level.APPLICATION, "Value '" + value + "' has been read!"); + } else { + log(Log.WARN, "Value is empty!"); + } + }) + .enqueue(); + } + }; + + // TODO Define manager's API + + */ +/** + * This method will write important data to the device. + * + * @param parameter parameter to be written. + *//* + + + + //Heating Switch + void heatingSwitch(int state) { + log(Log.WARN, "Write time duration \"" + state + "\""); + //final byte time_in_byte = time_duration.getBytes()[0]; + final byte state_in_byte = (byte) state; + writeCharacteristic(mAmpStartStopCharacteristic, Data.opCode(state_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Heating State")) + .split() + .enqueue(); + + } + + //Set Time + void sendDTime(int d_time) { + log(Log.WARN, "Write D Time Duration \"" + d_time + "\""); + final byte d_time_in_byte = (byte) d_time; + writeCharacteristic(mSetDTimeCharacteristic, Data.opCode(d_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + void sendATime(int a_time) { + log(Log.WARN, "Write A Time Duration \"" + a_time + "\""); + final byte a_time_in_byte = (byte) a_time; + writeCharacteristic(mSetATimeCharacteristic, Data.opCode(a_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + void sendLTime(int l_time) { + log(Log.WARN, "Write A Time Duration \"" + l_time + "\""); + final byte a_time_in_byte = (byte) l_time; + writeCharacteristic(mSetLTimeCharacteristic, Data.opCode(a_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + void sendOTime(int o_time) { + log(Log.WARN, "Write A Time Duration \"" + o_time + "\""); + final byte a_time_in_byte = (byte) o_time; + writeCharacteristic(mSetOTimeCharacteristic, Data.opCode(a_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + + void sendETime(int e_time) { + log(Log.WARN, "Write E Time Duration \"" + e_time + "\""); + final byte e_time_in_byte = (byte) e_time; + writeCharacteristic(mSetETimeCharacteristic, Data.opCode(e_time_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Time")) + .split() + .enqueue(); + } + + + //Set Temp + void sendDTemp(int d_temp) { + log(Log.WARN, "Write D temp \"" + d_temp + "\""); + final byte d_temp_in_byte = (byte) d_temp; + writeCharacteristic(mSetDTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + void sendLTemp(int l_temp) { + log(Log.WARN, "Write D temp \"" + l_temp + "\""); + final byte d_temp_in_byte = (byte) l_temp; + writeCharacteristic(mSetLTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + void sendOTemp(int o_temp) { + log(Log.WARN, "Write D temp \"" + o_temp + "\""); + final byte d_temp_in_byte = (byte) o_temp; + writeCharacteristic(mSetOTempCharacteristic, Data.opCode(d_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + + + + + + + + + void sendATemp(int a_temp) { + log(Log.WARN, "Write A temp \"" + a_temp + "\""); + final byte a_temp_in_byte = (byte) a_temp; + writeCharacteristic(mSetATempCharacteristic, Data.opCode(a_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + void sendETemp(int e_temp) { + log(Log.WARN, "Write E temp \"" + e_temp + "\""); + final byte e_temp_in_byte = (byte) e_temp; + writeCharacteristic(mSetETempCharacteristic, Data.opCode(e_temp_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + void sendNPcrC(int n_pcr_c) { + log(Log.WARN, "Write E temp \"" + n_pcr_c + "\""); + final byte n_pcr_c_in_byte = (byte) n_pcr_c; + writeCharacteristic(mSetNPcrCCharacteristic, Data.opCode(n_pcr_c_in_byte)) + .with((device, data) -> log(LogContract.Log.Level.APPLICATION, + "\"" + data.size() + "\" Set Temp")) + .split() + .enqueue(); + } + + + +} +*/ diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TestDetails.java b/app/src/main/java/no/Reader/android/iisc/Reader/TestDetails.java new file mode 100644 index 0000000..2d3ab81 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TestDetails.java @@ -0,0 +1,150 @@ +package no.Reader.android.iisc.Reader; + +import android.Manifest; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.os.Environment; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.CompoundButton; +import android.widget.EditText; +import android.widget.Toast; + +import androidx.appcompat.widget.AppCompatCheckBox; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import java.io.File; + +import no.Reader.android.iisc.R; + + +public class TestDetails extends NavigationTop { + private EditText user_name,test_id, per,volume; + private Button Createtest; + int i=0; + File filePath=null; + + private AppCompatCheckBox checkbox; + String flag="false",username,testid,percentage,vol; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.testdetails, null, false); + draw.addView(contentView, 0); + + /* LayoutInflater inflater = (LayoutInflater) this + .getSystemService(LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_about, null, false); + */ + // setContentView(R.layout.testdetails); + if(ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(TestDetails.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},23); + } + user_name=findViewById(R.id.username); + test_id=findViewById(R.id.test_id); + per=findViewById(R.id.percent); + volume=findViewById(R.id.volume); + Createtest=findViewById(R.id.createtest); + checkbox = (AppCompatCheckBox) findViewById(R.id.positivesample); + checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { + if (isChecked) { + i=1; + flag="true"; + // show password + } + } + }); + + + Createtest.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (ContextCompat.checkSelfPermission(TestDetails.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(TestDetails.this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 23); + } + username = user_name.getText().toString(); + percentage = per.getText().toString(); + + testid = test_id.getText().toString(); + File filePath1 = new File(Environment.getExternalStorageDirectory() + "/" + testid + ".xls"); + + vol = volume.getText().toString(); + + if (username.equals("") || percentage.equals("") || testid.equals("") || vol.equals("")) { + Toast.makeText(TestDetails.this, "Please fill all fields", Toast.LENGTH_SHORT).show(); + + } else if (Integer.parseInt(String.valueOf(percentage)) > 100 || Integer.parseInt(String.valueOf(percentage)) < 1) { + + + Toast.makeText(TestDetails.this, "Enter a valid Percentage Data", Toast.LENGTH_SHORT).show(); + + + } else if (Integer.parseInt(String.valueOf(percentage)) > 100 || Integer.parseInt(String.valueOf(percentage)) < 1) { + + + Toast.makeText(TestDetails.this, "Enter a valid Percentage Data", Toast.LENGTH_SHORT).show(); + + + } else if (filePath1.exists()) { + Toast.makeText(TestDetails.this, "File With this testid already exists please fill other test id", Toast.LENGTH_SHORT).show(); + + } else { + + + if (i == 1) { + Intent intent = new Intent(TestDetails.this, TemplateActivity.class); + SharedPreferences preferences = getSharedPreferences("TestEntry", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + editor.putString("testid", testid); + editor.putString("username", username); + editor.putString("percentage", percentage); + editor.putString("internal", flag); + + editor.putString("volume", vol); + + + editor.commit(); + + + startActivity(intent); + + + } else { + Intent intent = new Intent(TestDetails.this, TemplateActivity1.class); + SharedPreferences preferences = getSharedPreferences("TestEntry", MODE_PRIVATE); + SharedPreferences.Editor editor = preferences.edit(); + + // editor.putString(Name, phonenum); + editor.putString("testid", testid); + editor.putString("username", username); + editor.putString("percentage", percentage); + editor.putString("internal", flag); + editor.putString("volume", vol); + + + editor.commit(); + + + startActivity(intent); + } + } + } + }); + + } + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/TestViewHolder.java b/app/src/main/java/no/Reader/android/iisc/Reader/TestViewHolder.java new file mode 100644 index 0000000..a32ae6d --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/TestViewHolder.java @@ -0,0 +1,48 @@ +package no.Reader.android.iisc.Reader; + +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.recyclerview.widget.RecyclerView; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.Interface.ItemClickListner; + + +public class TestViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener +{ + public TextView txtpatientid, txttimestamp,nikshay,iconfinder,txtsampletype; + public ImageView imageView; + public ItemClickListner listner; + + + public TestViewHolder(View itemView) + { + super(itemView); + + + + + imageView = (ImageView) itemView.findViewById(R.id.icon_profile); + iconfinder=(TextView) itemView.findViewById(R.id.icon_text); + + txtpatientid = (TextView) itemView.findViewById(R.id.patient_Id); + txtsampletype = (TextView) itemView.findViewById(R.id.sample_type); + txttimestamp=itemView.findViewById(R.id.timestamp); + nikshay=itemView.findViewById(R.id.nikshayid); + + //txtProductDescription= (TextView) itemView.findViewById(R.id.switch_toggle); + } + + public void setItemClickListner(ItemClickListner listner) + { + this.listner = listner; + } + + @Override + public void onClick(View view) + { + listner.onClick(view, getAdapterPosition(), false); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/Try1.java b/app/src/main/java/no/Reader/android/iisc/Reader/Try1.java new file mode 100644 index 0000000..0439f0b --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/Try1.java @@ -0,0 +1,293 @@ +package no.Reader.android.iisc.Reader; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Context; +import android.os.Bundle; + + +import android.Manifest; +import android.content.pm.PackageManager; +import android.os.Environment; +import android.util.Log; +import android.widget.TextView; +import android.widget.Toast; + +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; + +import com.github.mikephil.charting.charts.BarChart; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.utils.ColorTemplate; + +import org.apache.poi.EncryptedDocumentException; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; + +import no.Reader.android.iisc.R; + + + + public class Try1 extends AppCompatActivity { + String TAG ="main"; + private TextView textView; + BarChart barChart; + ArrayList adcVal; + ArrayList samplelabel; + ArrayList entries = new ArrayList<>(); + ArrayList labels = new ArrayList(); + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_try1); + textView = findViewById(R.id.textview); + barChart = (BarChart) findViewById(R.id.barchart); + + if(ContextCompat.checkSelfPermission(Try1.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(Try1.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},23); + } + readExcelFileFromAssets(); + } + public void readExcelFileFromAssets() { + if(ContextCompat.checkSelfPermission(Try1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(Try1.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + + try { + + + InputStream myInput; + Context context = null; + File filePath1 = new File(Environment.getExternalStorageDirectory() + "/" +"do.xls"); + File file = new File(getApplicationContext().getExternalFilesDir(null), "do.xls"); + /* fis = new FileInputStream(file); + String path = Environment.getExternalStorageDirectory().getAbsolutePath(); + + File sdcard = Environment.getExternalStorageDirectory(); + File file = new File("/sdcard/Demo.xls"); + if(file.exists()){ + +*/ + if(filePath1.exists()){ + + Toast.makeText(Try1.this, "id exist", Toast.LENGTH_SHORT).show(); + + + + } + else + { + Toast.makeText(Try1.this, "nooo", Toast.LENGTH_SHORT).show(); + + } + + myInput = new FileInputStream(filePath1); + + + // initialize asset manager + /* AssetManager assetManager = getAssets(); + // open excel sheet + myInput = assetManager.open("file_example_XLS_50.xls"); + */ // Create a POI File System object + POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput); + // Create a workbook using the File System + HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); + // Get the first sheet from workbook + HSSFSheet mySheet = myWorkBook.getSheetAt(0); + int rowCount = mySheet.getLastRowNum(); + + // We now need something to iterate through the cells. + Iterator rowIter = mySheet.rowIterator(); + int[][] arr = new int[0][]; + + for(int i=11;i<=rowCount;i++) + { + + Row row = mySheet.getRow(i); + + //Create a loop to print cell values in a row + + int j =1; + + //Print Excel data in console + labels.add(String.valueOf(row.getCell(j).getStringCellValue())); + + samplelabel.add(String.valueOf(row.getCell(j).getStringCellValue())); +int k=3; + entries.add(new BarEntry(Float.parseFloat(String.valueOf(i)), i-11)); + + + + System.out.println(); + } + + + + + + BarDataSet bardataset = new BarDataSet(entries, "Result"); + + + + BarData data = new BarData(labels, bardataset); + barChart.setData(data); // set the data and list of labels into chart + barChart.setDescription("Bar Graph for Result"); // set the description + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + barChart.animateY(1000); + + + + + + + + + + + + + + + + + + /* int rowno =0; + textView.append("\n"); + while (rowIter.hasNext()) { + Log.e(TAG, " row no "+ rowno ); + HSSFRow myRow = (HSSFRow) rowIter.next(); + if(rowno !=0) { + Iterator cellIter = myRow.cellIterator(); + Log.e(TAG, " Cell "+ myRow.cellIterator() ); + + int colno =0; + String sno=""; + String date=""; + String det=""; + int value = 0; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno==0){ + value= Integer.parseInt(String.valueOf(myCell)); + Log.e(TAG, " Cell value 1 "+ value ); + + } + if (colno==1){ + sno = myCell.toString(); + Log.e(TAG, " Cell value 2 "+ sno ); + + }else if (colno==2){ + date = myCell.toString(); + Log.e(TAG, " Cell value 3 "+ date ); + + } + colno++; + Log.e(TAG, " Index :" + myCell.getColumnIndex() + " -- " + myCell.toString()); + }*/ + + + + + + + + + + + + + + + + + + + + + + + + + + } catch (Exception e) { + Log.e(TAG, "error "+ e.toString()); + } + change(); + } + private void change() + { + try { + InputStream myInput; + File filePath1 = new File(Environment.getExternalStorageDirectory() + "/" +"file_example_XLS_50.xls"); + + myInput = new FileInputStream(filePath1); + + Workbook workbook = WorkbookFactory.create(myInput); + + Sheet sheet = workbook.getSheetAt(0); + + Object[][] bookData = { + + {51,"love1", "Chad Fowler", "Chad Fowler","Chad Fowler",45,"fff",5555}, + {51,"love2", "Chad Fowler", "Chad Fowler","Chad Fowler",45,"fff",5555}, + {51,"Thggggg", "Chad Fowler", "Chad Fowler","Chad Fowler",45,"fff",5555}, + {51,"The Passionate Program", "Chad Fowler", "Chad Fowler","Chad Fowler",45,"fff",5555}, + + }; + + int rowCount = sheet.getLastRowNum(); + + for (Object[] aBook : bookData) { + Row row = sheet.createRow(++rowCount); + + int columnCount = 0; + + Cell cell = row.createCell(columnCount); + cell.setCellValue(rowCount); + + for (Object field : aBook) { + cell = row.createCell(++columnCount); + if (field instanceof String) { + cell.setCellValue((String) field); + } else if (field instanceof Integer) { + cell.setCellValue((Integer) field); + } + } + + } + + myInput.close(); + + FileOutputStream outputStream = new FileOutputStream(filePath1); + workbook.write(outputStream); + workbook.close(); + outputStream.close(); + + } catch (IOException | EncryptedDocumentException ex) { + ex.printStackTrace(); + } + } + + } \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtp.java b/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtp.java new file mode 100644 index 0000000..e864125 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtp.java @@ -0,0 +1,155 @@ +package no.Reader.android.iisc.Reader.VerifyOTP; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import com.chaos.view.PinView; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.FirebaseException; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.PhoneAuthCredential; +import com.google.firebase.auth.PhoneAuthOptions; +import com.google.firebase.auth.PhoneAuthProvider; + +import java.util.concurrent.TimeUnit; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.CreatePassword; + + +public class VerifyOtp extends AppCompatActivity { + + private String verificationid; + private FirebaseAuth mAuth; + private Button nextactivity; + private ProgressBar progressBar; + PinView pinFromUser; + private EditText editText; + String codeBySystem; + String address,name, state , city ,pincode,phonenumber,password2,num1,phonenumberke; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_verify__o_t_p); + pinFromUser = findViewById(R.id.firstPinView); + nextactivity = findViewById(R.id.buttonSignIn); + + mAuth = FirebaseAuth.getInstance(); + + + String phonenumberk = getIntent().getStringExtra("numberwithcode"); + phonenumberke = getIntent().getStringExtra("mobile"); + + phonenumber = phonenumberk; + + name = getIntent().getStringExtra("username"); + + + + sendVerificationCode(phonenumber); + findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + String code = pinFromUser.getText().toString().trim(); + + if ((code.isEmpty() || code.length() < 6)) { + + editText.setError("Enter code..."); + editText.requestFocus(); + return; + } + verifyCode(code); + + } + }); + + } + private void verifyCode(String code){ + PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationid, code); + signInWithCredential(credential); + } + + private void signInWithCredential(PhoneAuthCredential credential) { + mAuth.signInWithCredential(credential) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + + Intent intent = new Intent(VerifyOtp.this, CreatePassword.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + intent.putExtra("mobile", phonenumberke); + intent.putExtra("username", name); + + + startActivity(intent); + + } else { + // Toast.makeText(VerifyOTP.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); + } + } + + }); + } + + private void sendVerificationCode(String number){ + + PhoneAuthOptions options = + PhoneAuthOptions.newBuilder(mAuth) + .setPhoneNumber(number) // Phone number to verify + .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit + .setActivity(this) // Activity (for callback binding) + .setCallbacks(mCallBack) // OnVerificationStateChangedCallbacks + .build(); + PhoneAuthProvider.verifyPhoneNumber(options); + + } + + private PhoneAuthProvider.OnVerificationStateChangedCallbacks + mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { + + @Override + public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { + super.onCodeSent(s, forceResendingToken); + verificationid = s; + } + + @Override + public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { + String code = phoneAuthCredential.getSmsCode(); + if (code != null){ + // progressBar.setVisibility(View.VISIBLE); + pinFromUser.setText(code); + verifyCode(code); + } + } + + @Override + public void onVerificationFailed(FirebaseException e) { + Toast.makeText(VerifyOtp.this, e.getMessage(),Toast.LENGTH_LONG).show(); + + } + }; + + + + + + + + +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtpForgetPassword.java b/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtpForgetPassword.java new file mode 100644 index 0000000..0f1693e --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/VerifyOTP/VerifyOtpForgetPassword.java @@ -0,0 +1,154 @@ +package no.Reader.android.iisc.Reader.VerifyOTP; + +import android.content.Intent; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ProgressBar; +import android.widget.Toast; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import com.chaos.view.PinView; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.firebase.FirebaseException; +import com.google.firebase.auth.AuthResult; +import com.google.firebase.auth.FirebaseAuth; +import com.google.firebase.auth.PhoneAuthCredential; +import com.google.firebase.auth.PhoneAuthOptions; +import com.google.firebase.auth.PhoneAuthProvider; + +import java.util.concurrent.TimeUnit; + +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.Reader.ForgetPassword; +import no.Reader.android.iisc.Reader.ForgetPasswordReset; + + +public class VerifyOtpForgetPassword extends AppCompatActivity { + + private String verificationid; + private FirebaseAuth mAuth; + private Button nextactivity; + private ProgressBar progressBar; + PinView pinFromUser; + private EditText editText; + String codeBySystem; + String address,name, state , city ,pincode,phonenumber,password2,num1,mobile; + + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_verify__o_t_p); + pinFromUser = findViewById(R.id.firstPinView); + nextactivity = findViewById(R.id.buttonSignIn); + + mAuth = FirebaseAuth.getInstance(); + + + String phonenumberk = getIntent().getStringExtra("mobilecode"); + phonenumber = phonenumberk; + mobile= getIntent().getStringExtra("mobile"); + + + + + sendVerificationCode(phonenumber); + findViewById(R.id.buttonSignIn).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + String code = pinFromUser.getText().toString().trim(); + + if ((code.isEmpty() || code.length() < 6)) { + + editText.setError("Enter code..."); + editText.requestFocus(); + return; + } + verifyCode(code); + + } + }); + + } + private void verifyCode(String code){ + PhoneAuthCredential credential = PhoneAuthProvider.getCredential(verificationid, code); + signInWithCredential(credential); + } + + private void signInWithCredential(PhoneAuthCredential credential) { + mAuth.signInWithCredential(credential) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + + Intent intent = new Intent(VerifyOtpForgetPassword.this, ForgetPasswordReset.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + intent.putExtra("mobile", mobile); + + + startActivity(intent); + + } else { + Toast.makeText(VerifyOtpForgetPassword.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); + } + } + + }); + } + + private void sendVerificationCode(String number){ + PhoneAuthOptions options = + PhoneAuthOptions.newBuilder(mAuth) + .setPhoneNumber(number) // Phone number to verify + .setTimeout(60L, TimeUnit.SECONDS) // Timeout and unit + .setActivity(this) // Activity (for callback binding) + .setCallbacks(mCallBack) // OnVerificationStateChangedCallbacks + .build(); + PhoneAuthProvider.verifyPhoneNumber(options); + + + } + + private PhoneAuthProvider.OnVerificationStateChangedCallbacks + mCallBack = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() { + + @Override + public void onCodeSent(String s, PhoneAuthProvider.ForceResendingToken forceResendingToken) { + super.onCodeSent(s, forceResendingToken); + verificationid = s; + } + + @Override + public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) { + String code = phoneAuthCredential.getSmsCode(); + if (code != null){ + // progressBar.setVisibility(View.VISIBLE); + pinFromUser.setText(code); + verifyCode(code); + } + } + + @Override + public void onVerificationFailed(FirebaseException e) { + Toast.makeText(VerifyOtpForgetPassword.this, e.getMessage(),Toast.LENGTH_LONG).show(); + + } + }; + @Override + public void onBackPressed() { + + Intent intent = new Intent(VerifyOtpForgetPassword.this, ForgetPassword.class); + startActivity(intent); + + } + + +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/ViewGraph.java b/app/src/main/java/no/Reader/android/iisc/Reader/ViewGraph.java new file mode 100644 index 0000000..0453e77 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/ViewGraph.java @@ -0,0 +1,429 @@ +package no.Reader.android.iisc.Reader; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import android.Manifest; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.StrictMode; +import android.util.Log; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.widget.ImageButton; +import android.widget.TextView; + +import com.github.mikephil.charting.charts.BarChart; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.utils.ColorTemplate; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; + +import no.Reader.android.iisc.R; + + +public class ViewGraph extends AppCompatActivity { + private TextView result, textadc; + String value1_1, value1_2, value1_3, value2_1, value2_2, value2_3, value3_1, value3_2, value3_3, testid, username, percentage, internal, samplename, volume; + BarChart barChart; + BarData barData; + String string1,string2,string3,string4,string5,string6,string7,string8,string9,number,logi,lati; + + private ProgressDialog loadingBar; + private String TestRandomKey, downloadImageUrl1,saveCurrentDate, saveCurrentTime; +Uri path; + + File filePath3 = null; + private DatabaseReference TestRef; + + File filePath1 = null; + File filePath = null; + String directory_path; + int love = 0; + BarDataSet barDataSet; + ArrayList barEntries; + int positive, negative, sample, positive_value, negative_value, sample_value, sampleraw, sampleraw1, sampleraw2; + int delta = 0; + String resultdata; + int count = 0; + + ImageButton dowbloadd; + ImageButton save; + + + String date, time; + private String TestID = ""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_view_graph); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + /* BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + bottomNav.setOnNavigationItemSelectedListener(navListener); + */ StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(builder.build()); + builder.detectFileUriExposure(); + barChart = (BarChart) findViewById(R.id.barchart); + loadingBar = new ProgressDialog(this); + textadc = findViewById(R.id.textadc); + testid = getIntent().getStringExtra("pid"); + + Log.e("main", "error id "+TestID); + SharedPreferences preferences689 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences689.getString("Phone", null); + Log.e("main", "error "+number); + TestRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + + + /* LayoutInflater inflater = (LayoutInflater) this + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_feature_template3, null, false); + draw.addView(contentView, 0); + */ + + + + + if (ContextCompat.checkSelfPermission(ViewGraph.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(ViewGraph.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } else { + + + + readExcelFileFromAssets(); + + + + } + + + + + + + } + + + + + + /* private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_result: + Intent intent=new Intent(ViewGraph.this, ViewSamples.class); + + intent.putExtra("pid",testid); + startActivity(intent); + + + break; + case R.id.nav_home: + Intent intent2 = new Intent(ViewGraph.this, MainActivity.class); + + startActivity(intent2); + break; + case R.id.nav_excel: + shared(); + } + + return true; + } + }; +*/ + public void readExcelFileFromAssets() { + if (ContextCompat.checkSelfPermission(ViewGraph.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(ViewGraph.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } + + try { + + + InputStream myInput; + Context context = null; + + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + + + String targetPdf = directory_path + "Report_" + testid + ".xls"; + filePath1 = new File(targetPdf); + + + if (filePath1.exists()) { + + + } else { + // Toast.makeText(ViewGraph.this, "nooo", Toast.LENGTH_SHORT).show(); + + } + + myInput = new FileInputStream(filePath1); + + + POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput); + // Create a workbook using the File System + HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); + + + ArrayList entries = new ArrayList<>(); + + + BarDataSet bardataset = new BarDataSet(entries, "Result"); + + ArrayList labels = new ArrayList(); + + + // Get the first sheet from workbook + HSSFSheet mySheet = myWorkBook.getSheetAt(0); + + // We now need something to iterate through the cells. + Iterator rowIter = mySheet.rowIterator(); + int rowCount = mySheet.getLastRowNum(); + + + int rowno = 0; + while (rowIter.hasNext()) { + HSSFRow myRow = (HSSFRow) rowIter.next(); + + // 5 + if (rowno != 0 && rowno > 5) { + + + if (rowno == rowCount - 1) { + + + Iterator cellIter = myRow.cellIterator(); + int colno = 0; + String sno = "", date = "", det = "", vald = "", adcvals = "", result = ""; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno == 0) { + sno = myCell.toString(); + } else if (colno == 1) { + date = myCell.toString(); + } else if (colno == 2) { + adcvals = myCell.toString(); + } else if (colno == 3) { + det = myCell.toString(); + } else if (colno == 4) { + vald = myCell.toString(); + } else if (colno == 5) { + result = myCell.toString(); + } + colno++; + } + + if (!result.contains("Positive")) { + + // Toast.makeText(ViewGraph.this, "positive " + result + " File ", Toast.LENGTH_LONG).show(); + + + } else { + // Toast.makeText(ViewGraph.this, "positive " + result + " File ", Toast.LENGTH_LONG).show(); + + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + + } + if (!det.equals("-")) { + + entries.add(new BarEntry(Float.parseFloat((det)), rowno - 6)); + labels.add(date + "(" + result + ")"); + + + } else { + entries.add(new BarEntry(Float.parseFloat(String.valueOf((0))), rowno - 6)); + labels.add(date + "(" + result + ")"); + + + } + + + textadc.append("Test ID : " +testid+ "\n"); + + + } else { + Iterator cellIter = myRow.cellIterator(); + int colno = 0; + String sno = "", date = "", det = "", result1 = ""; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno == 0) { + sno = myCell.toString(); + } else if (colno == 1) { + date = myCell.toString(); + } else if (colno == 3) { + det = myCell.toString(); + + } else if (colno == 5) { + result1 = myCell.toString(); + } + + colno++; + } + if (!det.equals("-")) { + + entries.add(new BarEntry(Float.parseFloat((det)), rowno - 6)); + labels.add(date + "(" + result1 + ")"); + + } else { + entries.add(new BarEntry(Float.parseFloat(String.valueOf((0))), rowno - 6)); + + labels.add(date + "(" + result1 + ")"); + + } + + } + + } + rowno++; + + } + BarData data = new BarData(labels, bardataset); + barChart.setData(data); // set the data and list of labels into chart + barChart.setDescription("Bar Graph for Result"); // set the description + barChart.animateY(1000); + + } catch (Exception e) { + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu1, menu); + return true; + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.nav_samples: + Intent intent=new Intent(ViewGraph.this, ViewSamples.class); + + intent.putExtra("pid",testid); + startActivity(intent); + + + return true; + case R.id.nav_home: + Intent intent2 = new Intent(ViewGraph.this, MainActivity.class); + + startActivity(intent2); + return true; + case R.id.nav_excel: + shared(); + return true; + case R.id.nav_share: + srk(); + return true; + + + + default: + return super.onOptionsItemSelected(item); + } + } + + public void srk() + { + if(ContextCompat.checkSelfPermission(ViewGraph.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(ViewGraph.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + File file = new File(pat); + + + + + + + + Intent intent=new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT,"Report"); + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { + Uri path= FileProvider.getUriForFile(ViewGraph.this,"no.Reader.android.iisc.fileprovider",file); + intent.putExtra(Intent.EXTRA_STREAM,path); + } + else{ + + intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + + + } + + } + + + + + + + + + + + + + + public void shared() { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + Intent intent = new Intent(Intent.ACTION_VIEW); + File file = new File(pat); + Uri path = FileProvider.getUriForFile(getApplicationContext(), "no.Reader.android.iisc.fileprovider", file); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + } + + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/ViewSamples.java b/app/src/main/java/no/Reader/android/iisc/Reader/ViewSamples.java new file mode 100644 index 0000000..6c0574b --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/ViewSamples.java @@ -0,0 +1,548 @@ +package no.Reader.android.iisc.Reader; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import android.Manifest; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.StrictMode; +import android.util.Log; +import android.view.Gravity; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.widget.ImageButton; +import android.widget.TableLayout; +import android.widget.TableRow; +import android.widget.TextView; + +import com.github.mikephil.charting.charts.BarChart; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.google.firebase.database.DatabaseReference; + +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Iterator; + +import no.Reader.android.iisc.R; + + +public class ViewSamples extends AppCompatActivity { + private TextView result, textadc; + String value1_1, value1_2, value1_3, value2_1, value2_2, value2_3, value3_1, value3_2, value3_3, testid, username, percentage, internal, samplename, volume; + BarChart barChart; + Uri path; + BarData barData; + String string1,string2,string3,string4,string5,string6,string7,string8,string9,number,logi,lati; + + private ProgressDialog loadingBar; + private String TestRandomKey, downloadImageUrl1,saveCurrentDate, saveCurrentTime; + + + File filePath3 = null; + private DatabaseReference TestRef; + + File filePath1 = null; + File filePath = null; + String directory_path; + int love = 0; + BarDataSet barDataSet; + ArrayList barEntries; + int positive, negative, sample, positive_value, negative_value, sample_value, sampleraw, sampleraw1, sampleraw2; + int delta = 0; + String resultdata; + int count = 0; + + ImageButton dowbloadd; + ImageButton share; + + + String date, time; + private String TestID = ""; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_view_samples); + Toolbar toolbar = findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + // BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + // bottomNav.setOnNavigationItemSelectedListener(navListener); + StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(builder.build()); + builder.detectFileUriExposure(); + loadingBar = new ProgressDialog(this); + testid = getIntent().getStringExtra("pid"); + Log.e("TestIdll",testid); + textadc = findViewById(R.id.textadc); + /* share=findViewById(R.id.share); + share.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if(ContextCompat.checkSelfPermission(ViewSamples.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(ViewSamples.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + File file = new File(pat); + + + + + + + + Intent intent=new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT,"Report"); + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { + Uri path= FileProvider.getUriForFile(ViewSamples.this,"no.Reader.android.iisc.fileprovider",file); + intent.putExtra(Intent.EXTRA_STREAM,path); + } + else{ + + intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + + + } + + } + }); + */ textadc.append("Test ID : " +testid+ "\n"); + + + + /* LayoutInflater inflater = (LayoutInflater) this + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_feature_template3, null, false); + draw.addView(contentView, 0); + */ + + + + + if(ContextCompat.checkSelfPermission(ViewSamples.this, Manifest.permission.READ_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(ViewSamples.this,new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},23); + } + // init("1","1","1","1","1","1"); + readExcelFileFromAssets(); + } + public void readExcelFileFromAssets() { + if(ContextCompat.checkSelfPermission(ViewSamples.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(ViewSamples.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + + try { + + + InputStream myInput; + Context context = null; + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + + String targetPdf = directory_path + "Report_" +testid+".xls"; + filePath1 = new File(targetPdf); + File file = new File(getApplicationContext().getExternalFilesDir(null), "78.xls"); + /* fis = new FileInputStream(file); + String path = Environment.getExternalStorageDirectory().getAbsolutePath(); + + File sdcard = Environment.getExternalStorageDirectory(); + File file = new File("/sdcard/Demo.xls"); + if(file.exists()){ + +*/ + if(filePath1.exists()){ + + // Toast.makeText(ViewSamples.this, "id exist", Toast.LENGTH_SHORT).show(); + + + + } + else + { + // Toast.makeText(ViewSamples.this, "nooo", Toast.LENGTH_SHORT).show(); + + } + + myInput = new FileInputStream(filePath1); + + + // initialize asset manager + /* AssetManager assetManager = getAssets(); + // open excel sheet + myInput = assetManager.open("file_example_XLS_50.xls"); + */ // Create a POI File System object + POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput); + // Create a workbook using the File System + HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); + // Get the first sheet from workbook + HSSFSheet mySheet = myWorkBook.getSheetAt(0); + // We now need something to iterate through the cells. + Iterator rowIter = mySheet.rowIterator(); + int rowno =0; + // textView.append("\n"); + while (rowIter.hasNext()) { + HSSFRow myRow = (HSSFRow) rowIter.next(); + if(rowno !=0) { + Iterator cellIter = myRow.cellIterator(); + int colno =0; + String sno="", sampletype="", adcval="",delta="",result="",avgadc=""; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno==0){ + sno = myCell.toString(); + }else if (colno==1){ + sampletype = myCell.toString(); + }else if (colno==2){ + adcval= myCell.toString(); + } + else if (colno==3){ + avgadc= myCell.toString(); + } + else if (colno==4){ + delta= myCell.toString(); + } + else if (colno==5){ + result= myCell.toString(); + } + colno++; + } + // init1(sno); + Log.e("s",sno); + init(sno,sampletype,adcval,avgadc,delta,result); + // textView.append( sno + " "+ sampletype+" "+ adcval+" "+avgadc+" "+delta+" "+result+ " "+"\n"); + } + rowno++; + } + } catch (Exception e) { + } + } + public void init(String sno ,String sampletype,String adcval,String avgadc ,String delta,String result) { + + TableLayout stk = (TableLayout) findViewById(R.id.table_main); + + /* TableRow tbrow0 = new TableRow(this); + TextView tv0 = new TextView(this); + tv0.setText(" Sl.No "); + tv0.setTextColor(Color.WHITE); + tbrow0.addView(tv0); + TextView tv1 = new TextView(this); + tv1.setText(" Product "); + tv1.setTextColor(Color.WHITE); + tbrow0.addView(tv1); + TextView tv2 = new TextView(this); + tv2.setText(" Unit Price "); + tv2.setTextColor(Color.WHITE); + tbrow0.addView(tv2); + TextView tv3 = new TextView(this); + tv3.setText(" Stock Remaining "); + tv3.setTextColor(Color.WHITE); + tbrow0.addView(tv3); + stk.addView(tbrow0);*/ + TableRow tbrow = new TableRow(this); + TextView t1v = new TextView(this); + t1v.setText("" + sno +" "); + t1v.setGravity(Gravity.CENTER); + tbrow.addView(t1v); + TextView t2v = new TextView(this); + t2v.setText(sampletype+" "); + t2v.setGravity(Gravity.CENTER); + tbrow.addView(t2v); + TextView t3v = new TextView(this); + t3v.setText(adcval+" "); + t3v.setGravity(Gravity.CENTER); + tbrow.addView(t3v); + TextView t4v = new TextView(this); + t4v.setText(avgadc+" "); + t4v.setGravity(Gravity.CENTER); + tbrow.addView(t4v); + + TextView t5v = new TextView(this); + t5v.setText(delta+" "); + t5v.setGravity(Gravity.CENTER); + tbrow.addView(t5v); + + + TextView t6v = new TextView(this); + t6v.setText(" "+result); + t6v.setGravity(Gravity.CENTER); + + tbrow.addView(t6v); + + + + stk.addView(tbrow); + + + + + + + + /* TableRow tbrow0 = new TableRow(this); + TextView tv0 = new TextView(this); + tv0.setText(" Sl.No "); + tv0.setTextColor(Color.WHITE); + tbrow0.addView(tv0); + TextView tv1 = new TextView(this); + tv1.setText(" Product "); + tv1.setTextColor(Color.WHITE); + tbrow0.addView(tv1); + TextView tv2 = new TextView(this); + tv2.setText(" Unit Price "); + tv2.setTextColor(Color.WHITE); + tbrow0.addView(tv2); + TextView tv3 = new TextView(this); + tv3.setText(" Stock Remaining "); + tv3.setTextColor(Color.WHITE); + tbrow0.addView(tv3); + stk.addView(tbrow0);*/ + + } + + + public void init1(String sno ) { + + TableLayout stk = (TableLayout) findViewById(R.id.table_main); + + TableRow tbrow0 = new TableRow(this); + TextView tv0 = new TextView(this); + tv0.setText(" Sl.No "); + tbrow0.addView(tv0); + TextView tv1 = new TextView(this); + tv1.setText(" Product "); + tbrow0.addView(tv1); + TextView tv2 = new TextView(this); + tv2.setText(" Unit Price "); + tbrow0.addView(tv2); + TextView tv3 = new TextView(this); + tv3.setText(" Stock Remaining "); + tbrow0.addView(tv3); + stk.addView(tbrow0); + TableRow tbrow = new TableRow(this); + TextView t1v = new TextView(this); + t1v.setText("" + sno); + t1v.setGravity(Gravity.CENTER); + tbrow.addView(t1v); + + + + stk.addView(tbrow); + + + + + + + + /* TableRow tbrow0 = new TableRow(this); + TextView tv0 = new TextView(this); + tv0.setText(" Sl.No "); + tv0.setTextColor(Color.WHITE); + tbrow0.addView(tv0); + TextView tv1 = new TextView(this); + tv1.setText(" Product "); + tv1.setTextColor(Color.WHITE); + tbrow0.addView(tv1); + TextView tv2 = new TextView(this); + tv2.setText(" Unit Price "); + tv2.setTextColor(Color.WHITE); + tbrow0.addView(tv2); + TextView tv3 = new TextView(this); + tv3.setText(" Stock Remaining "); + tv3.setTextColor(Color.WHITE); + tbrow0.addView(tv3); + stk.addView(tbrow0);*/ + + } + + + + + + + + + + + +/* + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu2, menu); + return true; + } +*/ + +/* + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.nav_graph: + startActivity(new Intent(this, ViewGraph.class)); + return true; + */ +/* return true; + case R.id.help: + startActivity(new Intent(this, Help.class)); + return true;*//* + + default: + return super.onOptionsItemSelected(item); + } + } +*/ + + + + /* private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_graph: + Intent intent=new Intent(ViewSamples.this, ViewGraph.class); + + intent.putExtra("pid",testid); + startActivity(intent); + + + break; + case R.id.nav_home: + Intent intent2 = new Intent(ViewSamples.this, MainActivity.class); + + startActivity(intent2); + break; + case R.id.nav_excel: + shared(); + } + + return true; + } + }; +*/ + public void shared() { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + Intent intent = new Intent(Intent.ACTION_VIEW); + File file = new File(pat); + Uri path = FileProvider.getUriForFile(getApplicationContext(), "no.Reader.android.iisc.fileprovider", file); + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu2, menu); + return true; + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.nav_graph: + Intent intent=new Intent(ViewSamples.this, ViewGraph.class); + + intent.putExtra("pid",testid); + startActivity(intent); + + + return true; + case R.id.nav_home: + Intent intent2 = new Intent(ViewSamples.this, MainActivity.class); + + startActivity(intent2); + return true; + case R.id.nav_excel: + shared(); + return true; + case R.id.nav_share: + srk(); + return true; + + + + default: + return super.onOptionsItemSelected(item); + } + } + +public void srk() +{ + if(ContextCompat.checkSelfPermission(ViewSamples.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(ViewSamples.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat= directory_path + "Report_" + testid + ".xls"; + + File file = new File(pat); + + + + + + + + Intent intent=new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT,"Report"); + if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N) { + Uri path= FileProvider.getUriForFile(ViewSamples.this,"no.Reader.android.iisc.fileprovider",file); + intent.putExtra(Intent.EXTRA_STREAM,path); + } + else{ + + intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + + + } + +} + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCACharacteristicCallback.java b/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCACharacteristicCallback.java new file mode 100644 index 0000000..0dac56f --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCACharacteristicCallback.java @@ -0,0 +1,21 @@ +package no.Reader.android.iisc.Reader.callback; + +import android.bluetooth.BluetoothDevice; +import androidx.annotation.NonNull; + +/** + * This class defines your characteristic API. + * In this example (that is the HRM characteristic, which the template is based on), is notifying + * with a value (Heart Rate). The single method just returns the value and ignores other + * optional data from Heart Rate Measurement characteristic for simplicity. + */ +public interface SPCACharacteristicCallback { + + /** + * Called when a value is received. + * + * @param device a device from which the value was obtained. + * @param value the new value. + */ + void onSampleValueReceived(@NonNull final BluetoothDevice device, int value); +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCADataCallback.java b/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCADataCallback.java new file mode 100644 index 0000000..e86e0cb --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/callback/SPCADataCallback.java @@ -0,0 +1,47 @@ +package no.Reader.android.iisc.Reader.callback; + +import android.bluetooth.BluetoothDevice; +import androidx.annotation.NonNull; + +import no.nordicsemi.android.ble.callback.profile.ProfileDataCallback; +import no.nordicsemi.android.ble.data.Data; + +/** + * This is a sample data callback, that's based on Heart Rate Measurement characteristic. + * It parses the HR value and ignores other optional data for simplicity. + * Check {@link no.nordicsemi.android.ble.common.callback.hr.HeartRateMeasurementDataCallback} + * for full implementation. + * + * TODO Modify the content to parse your data. + */ +@SuppressWarnings("ConstantConditions") +public abstract class SPCADataCallback implements ProfileDataCallback, SPCACharacteristicCallback { + + @Override + public void onDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) { + if (data.size() < 2) { + onInvalidDataReceived(device, data); + return; + } + + // Read flags + int offset = 0; + final int flags = data.getIntValue(Data.FORMAT_UINT8, offset); + final int hearRateType = (flags & 0x01) == 0 ? Data.FORMAT_UINT8 : Data.FORMAT_UINT16; + offset += 1; + + // Validate packet length. The type's lower nibble is its length. + if (data.size() < 1 + (hearRateType & 0x0F)) { + onInvalidDataReceived(device, data); + return; + } + + final int value = data.getIntValue(hearRateType, offset); + // offset += hearRateType & 0xF; + + // ... + + // Report the parsed value(s) + onSampleValueReceived(device, value); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/check1.java b/app/src/main/java/no/Reader/android/iisc/Reader/check1.java new file mode 100644 index 0000000..f8e6dad --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/check1.java @@ -0,0 +1,1654 @@ +package no.Reader.android.iisc.Reader; + +import androidx.annotation.NonNull; +import androidx.annotation.RequiresApi; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.core.content.ContextCompat; +import androidx.core.content.FileProvider; + +import android.Manifest; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.pdf.PdfDocument; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.os.Environment; +import android.os.Handler; +import android.os.StrictMode; +import android.util.Log; +import android.view.MenuItem; +import android.view.View; +import android.widget.TextView; +import android.widget.Toast; + +import com.github.mikephil.charting.charts.BarChart; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.utils.ColorTemplate; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.android.material.bottomnavigation.BottomNavigationView; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; + +import org.apache.poi.EncryptedDocumentException; +import org.apache.poi.hssf.usermodel.HSSFCell; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.poifs.filesystem.POIFSFileSystem; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.usermodel.WorkbookFactory; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; + +import no.Reader.android.iisc.R; + + +public class check1 extends AppCompatActivity { + private TextView result, textadc; + String value1_1, value1_2, value1_3, value2_1, value2_2, value2_3, value3_1, value3_2, value3_3, testid, username, percentage, internal, samplename, volume; + BarChart barChart; + Uri path; + + BarData barData; + String string1,string2,string3,string4,string5,string6,string7,string8,string9,number,logi,lati; + + private ProgressDialog loadingBar; + private String TestRandomKey, downloadImageUrl1,saveCurrentDate, saveCurrentTime; + + + File filePath3 = null; + private DatabaseReference TestRef; + + File filePath1 = null; + File filePath = null; + String directory_path; + int love = 0; + BarDataSet barDataSet; + ArrayList barEntries; + int positive, negative, sample, positive_value, negative_value, sample_value, sampleraw, sampleraw1, sampleraw2; + int delta = 0; + String resultdata; + int count = 0; +int internal_data=0; + + + String date, time; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_feature_template3); + BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation); + bottomNav.setOnNavigationItemSelectedListener(navListener); + StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); + StrictMode.setVmPolicy(builder.build()); + builder.detectFileUriExposure(); + barChart = (BarChart) findViewById(R.id.barchart); + loadingBar = new ProgressDialog(this); + textadc = findViewById(R.id.textadc); + SharedPreferences preferences689 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences689.getString("Phone", null); + Log.e("main", "error "+number); + TestRef = FirebaseDatabase.getInstance().getReference().child("Test_Data").child(number); + + + /* LayoutInflater inflater = (LayoutInflater) this + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + View contentView = inflater.inflate(R.layout.activity_feature_template3, null, false); + draw.addView(contentView, 0); + */ + SharedPreferences preferences45 = getSharedPreferences("TestEntry", MODE_PRIVATE); + + testid = preferences45.getString("testid", null); + username = preferences45.getString("username", null); + percentage = preferences45.getString("percentage", null); + internal = preferences45.getString("internal", null); + + volume = preferences45.getString("volume", null); + + if (internal.equals("true")) { +internal_data=1; + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_adc1", MODE_PRIVATE); + + value1_1 = preferences6.getString("act1_1", null); + value1_2 = preferences6.getString("act1_2", null); + value1_3 = preferences6.getString("act1_3", null); + + + Log.d("positive 1", String.valueOf(value1_1)); + Log.d("positive 2", String.valueOf(value1_3)); + Log.d("positive 3", String.valueOf(value1_2)); + + + } + SharedPreferences preferences7 = getSharedPreferences("PhoneBook_adc2", MODE_PRIVATE); + value2_1 = preferences7.getString("act2_1", null); + value2_2 = preferences7.getString("act2_2", null); + value2_3 = preferences7.getString("act2_3", null); + Log.d("negative 1", String.valueOf(value2_1)); + Log.d("negative 2", String.valueOf(value2_2)); + + Log.d("negative 3", String.valueOf(value2_3)); + + + SharedPreferences preferences8 = getSharedPreferences("PhoneBook_adc3", MODE_PRIVATE); + + value3_1 = preferences8.getString("act3_1", null); + value3_2 = preferences8.getString("act3_2", null); + value3_3 = preferences8.getString("act3_3", null); + samplename = preferences8.getString("samplename", null); + + Log.d("sample 1", String.valueOf(value3_1)); + Log.d("sample 2", String.valueOf(value3_2)); + + Log.d("sample 3", String.valueOf(value3_3)); + sample = Integer.parseInt(String.valueOf((Integer.parseInt(value3_2) + Integer.parseInt(value3_3)))) / 2; + Log.d("sample actual value ", String.valueOf(sample)); + + + negative = (Integer.parseInt(value2_2) + Integer.parseInt(value2_3)) / 2; + + + sampleraw = sample; + sampleraw1 = sample; + sampleraw2 = sample; + Log.d("avg negative", String.valueOf(negative)); + Log.d(" avg sample ", String.valueOf(sample)); + + + + + + result = findViewById(R.id.result); + + date = String.valueOf(android.text.format.DateFormat.format("dd-MM-yyyy", new java.util.Date())); + DateFormat df = new SimpleDateFormat("h:mm a"); + time = df.format(Calendar.getInstance().getTime()); + + + + /* Log.d("value1_1", String.valueOf(value3_1)); + positive = (Integer.parseInt(value1_2) + Integer.parseInt(value1_3)) / 2; + + sample = (Integer.parseInt(value3_2) + Integer.parseInt(value3_3)) / 2; +*/ + if (internal.equals("true")) { + positive = (Integer.parseInt(value1_2) + Integer.parseInt(value1_3)) / 2; + negative = (Integer.parseInt(value2_2) + Integer.parseInt(value2_3)) / 2; + + delta = positive - negative; + // delta=positive-sample; + Log.d(" delta ", String.valueOf(delta)); + + int p = Integer.parseInt(percentage); + int b = p / 100; + if (sample > (((Integer.parseInt(percentage) * delta)) / 100) + negative) { + resultdata = "Positive"; + result.setText("Result : Positive"); + Log.d("result", "error " + String.valueOf(((Integer.parseInt(percentage) * sample)) / 100)); + down(); + + } else { + result.setText("Result : Negative"); + resultdata = "Negative"; + Log.d("result", "error " + String.valueOf(((Integer.parseInt(percentage) * sample)) / 100)); + down(); + + + } + + File filePath2 = new File(Environment.getExternalStorageDirectory() + "/" + testid + ".xls"); +/*if(!filePath2.exists()) { + + + + + + + ArrayList entries = new ArrayList<>(); + entries.add(new BarEntry(Float.parseFloat(String.valueOf(positive)), 0)); + entries.add(new BarEntry(Float.parseFloat(String.valueOf(negative)), 1)); + entries.add(new BarEntry(Float.parseFloat(String.valueOf(sampleraw1)), 2)); + + + BarDataSet bardataset = new BarDataSet(entries, "Result"); + + ArrayList labels = new ArrayList(); + labels.add("Positive AVG"); + + + labels.add("Negative AVG"); + labels.add("Sample AVG"); + + + BarData data = new BarData(labels, bardataset); + barChart.setData(data); // set the data and list of labels into chart + barChart.setDescription("Bar Graph for Result"); // set the description + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + barChart.animateY(1000); +} +else { + try { + Thread.sleep(7000); + readExcelFileFromAssets(); + + } catch (InterruptedException e) { + e.printStackTrace(); + } + +}*/ + } else { + if (sample > (((Integer.parseInt(percentage) * negative)) / 100)) { + resultdata = "Positive"; + + result.setText("Result : Positive"); + Log.d("result", "error " + String.valueOf((Integer.parseInt(percentage) / 100) * negative)); + down(); + + } else { + resultdata = "Negative"; + + result.setText("Result : Negative"); + Log.d("result", "error " + String.valueOf((Integer.parseInt(percentage) / 100) * negative)); + down(); + + } + + + File filePath3 = new File(Environment.getExternalStorageDirectory() + "/" + testid + ".xls"); + +/* +if(!filePath3.exists()) { + ArrayList entries = new ArrayList<>(); + entries.add(new BarEntry(Float.parseFloat(String.valueOf(negative)), 0)); + entries.add(new BarEntry(Float.parseFloat(String.valueOf(sampleraw2)), 1)); += + + BarDataSet bardataset = new BarDataSet(entries, "Result"); + + ArrayList labels = new ArrayList(); + + + labels.add("Negative AVG"); + labels.add("Sample AVG"); + + + BarData data = new BarData(labels, bardataset); + barChart.setData(data); // set the data and list of labels into chart + barChart.setDescription("Bar Graph for Result"); // set the description + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + barChart.animateY(1000); +} +*/ +/* +else { + + + + + + + + + + */ +/* try { + Thread.sleep(7000); + readExcelFileFromAssets(); + + } catch (InterruptedException e) { + e.printStackTrace(); + }*//* + +} +*/ + + } + + + + + + + + + + + + + + + + // down(); + + + + + + + + + + +/* + save.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ValidateProductData(); + + } + }); +*/ +/* + dowbloadd.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View view) { + + dowbloadd.isEnabled(); + if (ContextCompat.checkSelfPermission(check1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(check1.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } else { + + try { + buttonCreateExcel(); + ValidateProductData(); + + } catch (IOException e) { + e.printStackTrace(); + } + loadingBar.setTitle("Saving Sample Data "); + loadingBar.setMessage("Please wait, while we are saving the data in " + testid + "File"); + loadingBar.setCanceledOnTouchOutside(false); + loadingBar.show(); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + readExcelFileFromAssets(); + loadingBar.dismiss(); + + Toast.makeText(check1.this, "Data Saved Successfully in " + testid + " File ", Toast.LENGTH_LONG).show(); + + + } + }, 5000); + + + } + + } + + + }); +*/ + + + } + + private void ValidateProductData() + { + + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(check1.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + //Builder Retry Button + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } + else { + StoreProductInformation(); + } + + } + + /* barChart=findViewById(R.id.chart); + barEntries=new ArrayList<>(); + barEntries.add(new BarEntry(1,Integer.parseInt(value1))); + barEntries.add(new BarEntry(2,Integer.parseInt(value1))); + + barEntries.add(new BarEntry(3,Integer.parseInt(value1))); + + + barDataSet=new BarDataSet(barEntries,"Test Results"); + barData=new BarData(barDataSet,barEntries); + barChart.setData(barData); + + +*/ + + + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + private void createPdf() { + PdfDocument document = new PdfDocument(); + + PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(1000, 2000, 1).create(); + + PdfDocument.Page page = document.startPage(pageInfo); + Canvas canvas = page.getCanvas(); + Paint paint = new Paint(); + paint.setTextSize(80); + canvas.drawText("Sample Read Out ", 40, 80, paint); + paint.setTextSize(30); + canvas.drawText("Department of Science and Technology", 30, 120, paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(date, canvas.getWidth() - 40, 40, paint); + canvas.drawText(time, canvas.getWidth() - 40, 80, paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.rgb(150, 150, 150)); + canvas.drawRect(30, 250, canvas.getWidth() - 30, 300, paint); + paint.setColor(Color.WHITE); + canvas.drawText("Result", 50, 285, paint); + // canvas.drawText("name 2",450,435,paint); + paint.setTextAlign(Paint.Align.RIGHT); + canvas.drawText(resultdata, canvas.getWidth() - 40, 285, paint); + paint.setTextAlign(Paint.Align.LEFT); + + + paint.setColor(Color.rgb(150, 150, 150)); + // canvas.drawRect(30,150,canvas.getWidth()-30,160,paint); + + + canvas.drawRect(30, 400, canvas.getWidth() - 30, 450, paint); + paint.setColor(Color.WHITE); + canvas.drawText("Sample Value", 50, 435, paint); + + canvas.drawText(String.valueOf(sample), canvas.getWidth() - 100, 435, paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + canvas.drawText(".", canvas.getWidth() - 40, 480, paint); + + paint.setTextAlign(Paint.Align.RIGHT); + + paint.setColor(Color.rgb(150, 150, 150)); + // canvas.drawRect(30,150,canvas.getWidth()-30,160,paint); + + // canvas.drawRect(30,550,canvas.getWidth()-30,560,paint); + canvas.drawRect(30, 570, canvas.getWidth() - 30, 620, paint); + + + paint.setColor(Color.WHITE); + canvas.drawText("Negative Control Value", 350, 605, paint); + canvas.drawText(String.valueOf(negative), canvas.getWidth() - 40, 605, paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + paint.setTextAlign(Paint.Align.RIGHT); + paint.setColor(Color.rgb(150, 150, 150)); + + canvas.drawRect(30, 740, canvas.getWidth() - 30, 790, paint); + + paint.setColor(Color.WHITE); + canvas.drawText("Internal Control Value", 350, 775, paint); + + canvas.drawText(String.valueOf(positive), canvas.getWidth() - 40, 775, paint); + paint.setTextAlign(Paint.Align.LEFT); + paint.setColor(Color.BLACK); + + paint.setTextAlign(Paint.Align.RIGHT); + paint.setColor(Color.rgb(150, 150, 150)); + + // finish the page + document.finishPage(page); + + directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + File file = new File(directory_path); + if (!file.exists()) { + file.mkdirs(); + } + String targetPdf = directory_path + "Report" + ".pdf"; + + filePath = new File(targetPdf); + + try { + document.writeTo(new FileOutputStream(filePath)); + } catch (IOException e) { + Log.e("main", "error " + e.toString()); + } + + document.close(); + + } + +/* + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater=getMenuInflater(); + inflater.inflate(R.menu.download,menu); + MenuItem item1=menu.findItem(R.id.download1); + item1.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @RequiresApi(api = Build.VERSION_CODES.KITKAT) + @Override + public boolean onMenuItemClick(MenuItem item) { + if(ContextCompat.checkSelfPermission(check1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) + { + + ActivityCompat.requestPermissions(check1.this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},23); + } + else + { + //startCropImageActivity(); + try { + buttonCreateExcel(); + } catch (IOException e) { + e.printStackTrace(); + } + // createPdf(); + // Toast.makeText(check1.this, "File Downloaded", Toast.LENGTH_LONG).show(); + + + + } + + return true; + } + }); + + + return super.onCreateOptionsMenu(menu); + } +*/ + + + public void buttonCreateExcel() throws IOException { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + File file = new File(directory_path); + if (!file.exists()) { + file.mkdirs(); + } + + + String targetPdf = directory_path + "Report_" + testid + ".xls"; + filePath1 = new File(targetPdf); + + + if (filePath1.exists()) { + + + try { + InputStream myInput; + + myInput = new FileInputStream(filePath1); + + Workbook workbook = WorkbookFactory.create(myInput); + + Sheet sheet = workbook.getSheetAt(0); + + + int rowCount = sheet.getLastRowNum(); + Row row = sheet.createRow(++rowCount); + Cell cell0 = row.createCell(0); + cell0.setCellValue(rowCount - 6); + Cell cell1 = row.createCell(1); + cell1.setCellValue(samplename); + Cell cell2 = row.createCell(2); + + cell2.setCellValue("(" + value3_1 + "," + value3_2 + "," + value3_3 + ")"); + + + Cell cell3 = row.createCell(3); + + cell3.setCellValue(sampleraw); + + + if (internal.equals("true")) { + Cell cell4 = row.createCell(4); + cell4.setCellValue(delta); + } else { + Cell cell4 = row.createCell(4); + cell4.setCellValue("-"); + + } + Cell cell5 = row.createCell(5); + cell5.setCellValue(resultdata); + + + myInput.close(); + + FileOutputStream outputStream = new FileOutputStream(filePath1); + workbook.write(outputStream); + workbook.close(); + outputStream.close(); + + } catch (IOException | EncryptedDocumentException ex) { + ex.printStackTrace(); + } + } + + + + + + + + + + + + + + + + /* String excelFilePath = "JavaBooks.xls"; + + try { + FileInputStream inputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory() +"/"+testid+".xls")); + Workbook workbook = WorkbookFactory.create(inputStream); + + Sheet sheet = workbook.getSheetAt(0); + + Object[][] bookData = { + {"The Passionate Programmer", "Chad Fowler", 16}, + {"Software Craftmanship", "Pete McBreen", 26}, + {"The Art of Agile Development", "James Shore", 32}, + {"Continuous Delivery", "Jez Humble", 41}, + }; + + int rowCount = sheet.getLastRowNum(); + Log.d("last row", String.valueOf(row.getLastCellNum())); + + + for (Object[] aBook : bookData) { + Row row = sheet.createRow(++rowCount); + + int columnCount = 0; + + Cell cell = row.createCell(columnCount); + cell.setCellValue(rowCount); + + for (Object field : aBook) { + cell = row.createCell(++columnCount); + if (field instanceof String) { + cell.setCellValue((String) field); + } else if (field instanceof Integer) { + cell.setCellValue((Integer) field); + } + } + + } + + inputStream.close(); + + FileOutputStream outputStream = new FileOutputStream(Environment.getExternalStorageDirectory() +"/"+testid+".xls"); + workbook.write(outputStream); + workbook.close(); + outputStream.close(); + + } catch (IOException | EncryptedDocumentException ex) { + ex.printStackTrace(); + }*/ + + + + + + + + + + + + + + + + + /* FileInputStream fis=new FileInputStream(new File(Environment.getExternalStorageDirectory() +"/"+testid+".xls")); +//creating workbook instance that refers to .xls file + HSSFWorkbook wb=new HSSFWorkbook(fis); +//creating a Sheet object to retrieve the object + HSSFSheet sheet=wb.getSheet("Result Sheet"); + HSSFRow row=sheet.getRow(0); //Get the first row (the row in excel starts from 0 by default, so this is why an excel must have a field column header), that is, a field column header, which is convenient for assignment + Log.d("last row", String.valueOf(row.getLastCellNum())); + + System.out.println(sheet.getLastRowNum()+" "+row.getLastCellNum()); //Get the row number of the last row and the last cell of a record, respectively + + FileOutputStream out=new FileOutputStream(filePath1); //Write data to head.xls + row=sheet.createRow((short)(sheet.getLastRowNum()+1)); //Append data after the existing row number + row.createCell(0).setCellValue("hello"); //Set the data of the first (starting from 0) cell + row.createCell(1).setCellValue(1); //Set the data of the second (starting from 0) cell + + + out.flush(); + wb.write(out); + out.close(); + System.out.println(row.getPhysicalNumberOfCells()+" "+row.getLastCellNum()); + +*/ + + + + + + + /* FileInputStream fs = new FileInputStream(System.getProperty(Environment.getExternalStorageDirectory()+"\\head.xls")); //Get head.xls + POIFSFileSystem ps = new POIFSFileSystem(fs); //Use the method provided by POI to get excel information + HSSFWorkbook wb = new HSSFWorkbook(ps); + HSSFSheet sheet = wb.getSheetAt(0); //Get worksheet, because an excel may have multiple worksheets + HSSFRow row = sheet.getRow(0); //Get the first row (the row in excel starts from 0 by default, so this is why an excel must have a field column header), that is, a field column header, which is convenient for assignment + System.out.println(sheet.getLastRowNum() + " " + row.getLastCellNum()); //Get the row number of the last row and the last cell of a record, respectively + + FileOutputStream out = new FileOutputStream(System.getProperty(Environment.getExternalStorageDirectory() + "\\head.xls")); //Write data to head.xls + row = sheet.createRow((short) (sheet.getLastRowNum() + 1)); //Append data after the existing row number + row.createCell(0).setCellValue("hello"); //Set the data of the first (starting from 0) cell + row.createCell(1).setCellValue(1); + + //Set the data of the second (starting from 0) cell + + + + + + + out.flush(); + wb.write(out); + out.close(); + System.out.println(row.getPhysicalNumberOfCells() + " " + row.getLastCellNum()); + +*/ + + + else { + + + + + + + + /* File filePath1 = new File(Environment.getExternalStorageDirectory() + "/" + testid + ".xls"); + if (filePath1.exists()) { + HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + + HSSFSheet hssfSheet = hssfWorkbook.createSheet("Custom Sheet"); + + HSSFRow hssfRow = hssfSheet.createRow(3); + HSSFCell hssfCell = hssfRow.createCell(0); + hssfCell.setCellValue("Test Name"); + HSSFCell hssfCell2 = hssfRow.createCell(1); + hssfCell2.setCellValue("sample Id"); + HSSFCell hssfCell3 = hssfRow.createCell(2); + hssfCell3.setCellValue("Sample Result"); + + HSSFCell hssfCell4 = hssfRow.createCell(3); + hssfCell4.setCellValue("Sample Adc Value"); + + + HSSFCell hssfCell5 = hssfRow.createCell(4); + hssfCell5.setCellValue("Internal Adc Value"); + + HSSFCell hssfCell6 = hssfRow.createCell(5); + hssfCell6.setCellValue("Negative Avg Adc Value "); + + + int d = findRow(hssfSheet, samplename); + if (d != 2) { + HSSFRow newRow = hssfSheet.createRow(hssfSheet.getLastRowNum() + 1); + + HSSFCell newRowCell0 = newRow.createCell(0); + newRowCell0.setCellValue(testid); + HSSFCell newRowCell1 = newRow.createCell(1); + newRowCell1.setCellValue(samplename); + HSSFCell newRowCell2 = newRow.createCell(2); + newRowCell2.setCellValue(resultdata); + + HSSFCell newRowCell3 = newRow.createCell(3); + newRowCell3.setCellValue(samplename); + + + HSSFCell newRowCell4 = newRow.createCell(4); + newRowCell4.setCellValue("Internal Adc Value"); + + HSSFCell newRowCell5 = newRow.createCell(5); + newRowCell5.setCellValue("Negative Avg Adc Value "); + + + + + + + + + *//* HSSFRow hssfRow1 = hssfSheet.createRow(1); + HSSFCell hssfCell1 = hssfRow1.createCell(0); + hssfCell1.setCellValue(sample); + + + hssfCell.setCellValue(negative);*//* + + try { + if (!filePath1.exists()) { + filePath1.createNewFile(); + } + + FileOutputStream fileOutputStream = new FileOutputStream(filePath1); + hssfWorkbook.write(fileOutputStream); + + if (fileOutputStream != null) { + fileOutputStream.flush(); + fileOutputStream.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } else { + Toast.makeText(check1.this, "id exist", Toast.LENGTH_SHORT).show(); + } + + + + } else { +*/ + HSSFWorkbook hssfWorkbook = new HSSFWorkbook(); + + HSSFSheet hssfSheet = hssfWorkbook.createSheet("Result Sheet"); + HSSFRow hssfRow1 = hssfSheet.createRow(0); + + + /* set the weight of the font */ + /* Also make the font color to RED */ + /* attach the font to the style created earlier */ + + + HSSFCell Cell1 = hssfRow1.createCell(0); + + Cell1.setCellValue("User:" + username); + HSSFRow hssfRow2 = hssfSheet.createRow(1); + HSSFCell Cellr1 = hssfRow2.createCell(0); + Cellr1.setCellValue("Date : " + date); + + HSSFRow hssfRow4 = hssfSheet.createRow(2); + + HSSFCell Cellr4 = hssfRow4.createCell(0); + + Cellr4.setCellValue("Time : " + time); + + + HSSFRow hssfRow3 = hssfSheet.createRow(3); + HSSFCell Cellr3 = hssfRow3.createCell(0); + Cellr3.setCellValue("Volume : " + volume); + + HSSFRow hssfRow5 = hssfSheet.createRow(4); + HSSFCell Cellr5 = hssfRow5.createCell(0); + Cellr5.setCellValue("Percentage : " + percentage); + + + HSSFRow hssfRow = hssfSheet.createRow(6); + + HSSFCell hssfCell = hssfRow.createCell(0); + hssfCell.setCellValue("SI No"); + HSSFCell hssfCell2 = hssfRow.createCell(1); + hssfCell2.setCellValue("sample Type"); + HSSFCell hssfCell3 = hssfRow.createCell(2); + hssfCell3.setCellValue("ADC Values"); + + HSSFCell hssfCell4 = hssfRow.createCell(3); + hssfCell4.setCellValue("AVG ADC "); + + + HSSFCell hssfCell5 = hssfRow.createCell(4); + hssfCell5.setCellValue("ΔADC"); + + HSSFCell hssfCell6 = hssfRow.createCell(5); + hssfCell6.setCellValue("Result "); + /* HSSFCell hssfCell7 = hssfRow.createCell(6); + hssfCell7.setCellValue("User Name"); + + HSSFCell hssfCell8 = hssfRow.createCell(7); + hssfCell8.setCellValue("Percentage"); +*/ + + + HSSFRow newRow = hssfSheet.createRow(hssfSheet.getLastRowNum() + 1); + + HSSFCell newRowCell0 = newRow.createCell(0); + newRowCell0.setCellValue(hssfSheet.getLastRowNum() - 6); + HSSFCell newRowCell1 = newRow.createCell(1); + newRowCell1.setCellValue("NC"); + + + HSSFCell newRowCell2 = newRow.createCell(2); + newRowCell2.setCellValue("(" + value2_1 + "," + value2_2 + "," + value2_3 + ")"); + + HSSFCell newRowCell3 = newRow.createCell(3); + newRowCell3.setCellValue(negative); + HSSFCell newRowCell4 = newRow.createCell(4); + + if (internal.equals("true")) { + newRowCell4.setCellValue(delta); + + } else { + + newRowCell4.setCellValue("-"); + + } + + HSSFCell newRowCell5 = newRow.createCell(5); + + newRowCell5.setCellValue("-"); + + + HSSFRow newRow1 = hssfSheet.createRow(hssfSheet.getLastRowNum() + 1); + + HSSFCell newRow1Cell0 = newRow1.createCell(0); + newRow1Cell0.setCellValue(hssfSheet.getLastRowNum() - 6); + HSSFCell newRow1Cell1 = newRow1.createCell(1); + newRow1Cell1.setCellValue("PC"); + + + HSSFCell newRow1Cell2 = newRow1.createCell(2); + if (internal.equals("true")) { + newRow1Cell2.setCellValue("(" + value1_1 + "," + value1_2 + "," + value1_3 + ")"); + + } else { + + newRow1Cell2.setCellValue("-"); + + } + HSSFCell newRow1Cell3 = newRow1.createCell(3); + + if (internal.equals("true")) { + newRow1Cell3.setCellValue(positive); + + } else { + + newRow1Cell3.setCellValue("-"); + + } + + HSSFCell newRow1Cell4 = newRow1.createCell(4); + + if (internal.equals("true")) { + newRow1Cell4.setCellValue(delta); + + } else { + + newRow1Cell4.setCellValue("-"); + + } + + HSSFCell newRow1Cell5 = newRow1.createCell(5); + + newRow1Cell5.setCellValue("-"); + + + HSSFRow row = hssfSheet.createRow(hssfSheet.getLastRowNum() + 1); + + + HSSFCell cell0 = row.createCell(0); + cell0.setCellValue(3); + HSSFCell cell1 = row.createCell(1); + cell1.setCellValue(samplename); + HSSFCell cell2 = row.createCell(2); + + cell2.setCellValue("(" + value3_1 + "," + value3_2 + "," + value3_3 + ")"); + + + HSSFCell cell3 = row.createCell(3); + + cell3.setCellValue(sampleraw); + + + if (internal.equals("true")) { + HSSFCell cell4 = row.createCell(4); + cell4.setCellValue(delta); + } else { + HSSFCell cell4 = row.createCell(4); + cell4.setCellValue("-"); + + } + HSSFCell cell5 = row.createCell(5); + cell5.setCellValue(resultdata); + + + + + + + + + + + + + + + + + + + + + + + /* HSSFCell hssfCell = hssfRow.createCell(0); + hssfCell.setCellValue("Test Name"); + HSSFCell hssfCell2 = hssfRow.createCell(1); + hssfCell2.setCellValue("sample Id"); + HSSFCell hssfCell3 = hssfRow.createCell(2); + hssfCell3.setCellValue("Sample Result"); + + HSSFCell hssfCell4 = hssfRow.createCell(3); + hssfCell4.setCellValue("Sample Avg Adc Value"); + + + HSSFCell hssfCell5 = hssfRow.createCell(4); + hssfCell5.setCellValue("Internal Avg Adc Value"); + + HSSFCell hssfCell6 = hssfRow.createCell(5); + hssfCell6.setCellValue("Negative Avg Adc Value "); + HSSFCell hssfCell7 = hssfRow.createCell(6); + hssfCell7.setCellValue("User Name"); + + HSSFCell hssfCell8 = hssfRow.createCell(7); + hssfCell8.setCellValue("Percentage"); + + + int d = findRow(hssfSheet, samplename); + if (d != 2) { + HSSFRow newRow = hssfSheet.createRow(hssfSheet.getLastRowNum() + 1); + + HSSFCell newRowCell0 = newRow.createCell(0); + newRowCell0.setCellValue(testid); + HSSFCell newRowCell1 = newRow.createCell(1); + newRowCell1.setCellValue(samplename); + if (internal.equals("true")) { + HSSFCell newRowCell2 = newRow.createCell(2); + newRowCell2.setCellValue(resultdata); + + } else { + HSSFCell newRowCell2 = newRow.createCell(2); + newRowCell2.setCellValue("-"); + + } + + HSSFCell newRowCell3 = newRow.createCell(3); + newRowCell3.setCellValue(sample); + + + if (internal.equals("true")) { + HSSFCell newRowCell4 = newRow.createCell(4); + newRowCell4.setCellValue(negative); + } else { + HSSFCell newRowCell4 = newRow.createCell(4); + newRowCell4.setCellValue("-"); + + } + HSSFCell newRowCell5 = newRow.createCell(5); + newRowCell5.setCellValue(positive); + + HSSFCell newRowCell6 = newRow.createCell(6); + newRowCell6.setCellValue(username); + + HSSFCell newRowCell7 = newRow.createCell(7); + newRowCell7.setCellValue(percentage); + +*/ + + + + + + + /* HSSFRow hssfRow1 = hssfSheet.createRow(1); + HSSFCell hssfCell1 = hssfRow1.createCell(0); + hssfCell1.setCellValue(sample); + + + hssfCell.setCellValue(negative);*/ + + try { + if (!filePath1.exists()) { + filePath1.createNewFile(); + } + + FileOutputStream fileOutputStream = new FileOutputStream(filePath1); + hssfWorkbook.write(fileOutputStream); + + if (fileOutputStream != null) { + fileOutputStream.flush(); + fileOutputStream.close(); + } + + } catch (Exception e) { + e.printStackTrace(); + } + + + } + } + + public void export(View view) { + //generate data + StringBuilder data = new StringBuilder(); + data.append("Time,Distance"); + for (int i = 0; i < 5; i++) { + data.append("\n" + String.valueOf(i) + "," + String.valueOf(i * i)); + } + + try { + //saving the file into device + FileOutputStream out = openFileOutput("data.csv", Context.MODE_PRIVATE); + out.write((data.toString()).getBytes()); + out.close(); + + //exporting + Context context = getApplicationContext(); + File filelocation = new File(getFilesDir(), "data.csv"); + Uri path = FileProvider.getUriForFile(context, "com.example.exportcsv.fileprovider", filelocation); + Intent fileIntent = new Intent(Intent.ACTION_SEND); + fileIntent.setType("text/csv"); + fileIntent.putExtra(Intent.EXTRA_SUBJECT, "Data"); + fileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + fileIntent.putExtra(Intent.EXTRA_STREAM, path); + startActivity(Intent.createChooser(fileIntent, "Send mail")); + } catch (Exception e) { + e.printStackTrace(); + } + + + } + + private static int findRow(HSSFSheet sheet, String cellContent) { + for (Row row : sheet) { + for (Cell cell : row) { + /* if (cell.getCellType() == Cell.CELL_TYPE_STRING) { + if (cell.getRichStringCellValue().getString().trim().equals(cellContent)) { + return 2; + } + }*/ + } + } + return 0; + } + + private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + + switch (item.getItemId()) { + case R.id.nav_share: + + dshare(); + + + + + + + + + + + + + + + + + + + +/* + Intent intent = new Intent(check1.this, TestDetails.class); + + + startActivity(intent);*/ + + + break; + case R.id.nav_add_sample: + Intent intent4 = new Intent(check1.this, TemplateActivity2.class); + + + startActivity(intent4); + break; + case R.id.nav_home: + Intent intent3 = new Intent(check1.this, MainActivity.class); + + + startActivity(intent3); + break; + } + + return true; + } + }; + + public void readExcelFileFromAssets() { + if (ContextCompat.checkSelfPermission(check1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(check1.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } + + try { + + + InputStream myInput; + Context context = null; + + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + + + String targetPdf = directory_path + "Report_" + testid + ".xls"; + filePath1 = new File(targetPdf); + + + + + + + + + + + + + + + /* File filePath1 = new File(Environment.getExternalStorageDirectory() + "/" +"uio.xls"); + File file = new File(getApplicationContext().getExternalFilesDir(null), "file_example_XLS_50.xls"); + */ /* fis = new FileInputStream(file); + String path = Environment.getExternalStorageDirectory().getAbsolutePath(); + + File sdcard = Environment.getExternalStorageDirectory(); + File file = new File("/sdcard/Demo.xls"); + if(file.exists()){ + +*/ + if (filePath1.exists()) { + + + } else { + // Toast.makeText(check1.this, "nooo", Toast.LENGTH_SHORT).show(); + + } + + myInput = new FileInputStream(filePath1); + + + // initialize asset manager + /* AssetManager assetManager = getAssets(); + // open excel sheet + myInput = assetManager.open("file_example_XLS_50.xls"); + */ // Create a POI File System object + POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput); + // Create a workbook using the File System + HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); + + + ArrayList entries = new ArrayList<>(); + + + BarDataSet bardataset = new BarDataSet(entries, "Result"); + + ArrayList labels = new ArrayList(); + + + // Get the first sheet from workbook + HSSFSheet mySheet = myWorkBook.getSheetAt(0); + + // We now need something to iterate through the cells. + Iterator rowIter = mySheet.rowIterator(); + int rowCount = mySheet.getLastRowNum(); + + + int rowno = 0; + while (rowIter.hasNext()) { + HSSFRow myRow = (HSSFRow) rowIter.next(); + + // 5 + if (rowno != 0 && rowno > 5) { + + + if (rowno == rowCount - 1) { + + + Iterator cellIter = myRow.cellIterator(); + int colno = 0; + String sno = "", date = "", det = "", vald = "", adcvals = "", result = ""; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno == 0) { + sno = myCell.toString(); + } else if (colno == 1) { + date = myCell.toString(); + } else if (colno == 2) { + adcvals = myCell.toString(); + } else if (colno == 3) { + det = myCell.toString(); + } else if (colno == 4) { + vald = myCell.toString(); + } else if (colno == 5) { + result = myCell.toString(); + } + colno++; + } + + if (!result.contains("Positive")) { + bardataset.setColors(Collections.singletonList(ColorTemplate.getHoloBlue())); + + // Toast.makeText(check1.this, "positive " + result + " File ", Toast.LENGTH_LONG).show(); + + + } else { + // Toast.makeText(check1.this, "positive " + result + " File ", Toast.LENGTH_LONG).show(); + + bardataset.setColors(ColorTemplate.COLORFUL_COLORS); + + } + if (!det.equals("-")) { + + entries.add(new BarEntry(Float.parseFloat((det)), rowno - 6)); + labels.add(date + "(" + result + ")"); + + + } else { + entries.add(new BarEntry(Float.parseFloat(String.valueOf((0))), rowno - 6)); + labels.add(date + "(" + result + ")"); + + + } + + + textadc.append("ADC Val : " + adcvals + " AVG : " + det + " ΔADC : " + vald + "\n"); + + + } else { + Iterator cellIter = myRow.cellIterator(); + int colno = 0; + String sno = "", date = "", det = "", result1 = ""; + while (cellIter.hasNext()) { + HSSFCell myCell = (HSSFCell) cellIter.next(); + if (colno == 0) { + sno = myCell.toString(); + } else if (colno == 1) { + date = myCell.toString(); + } else if (colno == 3) { + det = myCell.toString(); + + } else if (colno == 5) { + result1 = myCell.toString(); + } + + colno++; + } + if (!det.equals("-")) { + + entries.add(new BarEntry(Float.parseFloat((det)), rowno - 6)); + labels.add(date + "(" + result1 + ")"); + + } else { + entries.add(new BarEntry(Float.parseFloat(String.valueOf((0))), rowno - 6)); + + labels.add(date + "(" + result1 + ")"); + + } + + } + + } + rowno++; + + } + BarData data = new BarData(labels, bardataset); + barChart.setData(data); // set the data and list of labels into chart + barChart.setDescription("Bar Graph for Result"); // set the description + // bardataset.setColorsbardataset.setColors(ColorTemplate.COLORFUL_COLORS); + barChart.animateY(1000); + + } catch (Exception e) { + } + } + + public void shared() { + String pat=Environment.getExternalStorageDirectory()+"/"+"Test Report"+"/"; + Uri uri=Uri.parse(pat); + Intent intent =new Intent(Intent. + + ACTION_PICK ) ; + intent.setDataAndType(uri,"*/*"); + startActivity(intent); + + } + public boolean isOnline() { + ConnectivityManager connMgr = (ConnectivityManager) + getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); + return (networkInfo != null && networkInfo.isConnected()); + + } + private void StoreProductInformation() + { + loadingBar.setTitle("Add Test"); + loadingBar.setMessage("Please wait while we are adding the Test Details ."); + loadingBar.setCanceledOnTouchOutside(false); + loadingBar.show(); + + Calendar calendar = Calendar.getInstance(); + + SimpleDateFormat currentDate = new SimpleDateFormat("MMM dd, yyyy"); + saveCurrentDate = currentDate.format(calendar.getTime()); + + SimpleDateFormat currentTime = new SimpleDateFormat("HH:mm:ss a"); + saveCurrentTime = currentTime.format(calendar.getTime()); + + TestRandomKey = saveCurrentDate + saveCurrentTime+number; + + + + + + // Toast.makeText(Farmer_add_new_Products.this, "Product Image uploaded Successfully...", Toast.LENGTH_SHORT).show(); + + if (!isOnline()) { + //Create an alertdialog + AlertDialog.Builder Checkbuilder = new AlertDialog.Builder(check1.this); + Checkbuilder.setTitle("No Internet Connection !"); + Checkbuilder.setMessage("Check Your Internet Connection."); + //Builder Retry Button + + Checkbuilder.setPositiveButton("Retry", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) { + + dialog.cancel(); + } + }); + + Checkbuilder.setNegativeButton("Exit", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + finish(); + } + }); + + AlertDialog alert = Checkbuilder.create(); + alert.show(); + + } else { + + SaveProductInfoToDatabase(); + } + + + + } + private void SaveProductInfoToDatabase() + { + HashMap productMap = new HashMap<>(); + + + + productMap.put("Test_Id",testid); + productMap.put("Time", saveCurrentTime); + + productMap.put("User_Name", username); + + productMap.put("Sample_volume", volume); + productMap.put("Sample_Date",saveCurrentDate ); + + productMap.put("Percentage",percentage ); +if(internal_data==1) +{ + productMap.put("Internal","Yes" ); + +} +else +{ + productMap.put("Internal","No"); + +} + + + + TestRef.child(testid).updateChildren(productMap) + .addOnCompleteListener(new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) + { + if (task.isSuccessful()) { + + /* Intent intent = new Intent(check1.this, MainActivity.class); + loadingBar.dismiss(); + *//* Intent intent = new Intent(check1.this, MainActivity.class); + loadingBar.dismiss(); + */ Toast.makeText(check1.this, "Test Details is added successfully ", Toast.LENGTH_SHORT).show(); + + // editor.putString(Name, phonenum); + + + + + + + } + else + { + loadingBar.dismiss(); + String message = task.getException().toString(); + Toast.makeText(check1.this, "Error: " + message, Toast.LENGTH_SHORT).show(); + } + } + }); + } + + + public void down() + { + if (ContextCompat.checkSelfPermission(check1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(check1.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } else { + + try { + ValidateProductData(); + + buttonCreateExcel(); + + } catch (IOException e) { + e.printStackTrace(); + } + loadingBar.setTitle("Saving Sample Data "); + loadingBar.setMessage("Please wait, while we are saving the data in " + testid + "File"); + loadingBar.setCanceledOnTouchOutside(false); + loadingBar.show(); + + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + readExcelFileFromAssets(); + loadingBar.dismiss(); + + Toast.makeText(check1.this, "Data Saved Successfully in " + testid + " File ", Toast.LENGTH_LONG).show(); + + + } + }, 5000); + + + } + + } + + public void dshare() { + if (ContextCompat.checkSelfPermission(check1.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { + + ActivityCompat.requestPermissions(check1.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 23); + } else { + String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Test Report/"; + String pat = directory_path + "Report_" + testid + ".xls"; + + File file = new File(pat); + + + Intent intent = new Intent(Intent.ACTION_SEND); + intent.putExtra(Intent.EXTRA_TEXT, "Report"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Uri path = FileProvider.getUriForFile(check1.this, "no.Reader.android.iisc.fileprovider", file); + intent.putExtra(Intent.EXTRA_STREAM, path); + } else { + + intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); + } + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + intent.setDataAndType(path, "application/vnd.ms-excel"); + startActivity(intent); + + + } + } + + +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsActivity.java b/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsActivity.java new file mode 100644 index 0000000..f93a41e --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsActivity.java @@ -0,0 +1,34 @@ +package no.Reader.android.iisc.Reader.settings; + +import android.os.Bundle; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import android.view.MenuItem; + +import no.Reader.android.iisc.R; + +public class SettingsActivity extends AppCompatActivity { + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_settings); + + final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + // Display the fragment as the main content. + getSupportFragmentManager().beginTransaction().replace(R.id.content, new SettingsFragment()).commit(); + } + + @Override + public boolean onOptionsItemSelected(final MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + onBackPressed(); + return true; + } + return super.onOptionsItemSelected(item); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsFragment.java b/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsFragment.java new file mode 100644 index 0000000..9f88b85 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/Reader/settings/SettingsFragment.java @@ -0,0 +1,18 @@ +package no.Reader.android.iisc.Reader.settings; + +import android.os.Bundle; + +import androidx.preference.PreferenceFragmentCompat; +import no.Reader.android.iisc.R; + +public class SettingsFragment extends PreferenceFragmentCompat { + public static final String SETTINGS_DATA = "settings_template_data"; // TODO values matching those in settings_template.xml file in /res/xml + public static final int SETTINGS_VARIANT_A = 0; + public static final int SETTINGS_VARIANT_B = 1; + public static final int SETTINGS_VARIANT_DEFAULT = SETTINGS_VARIANT_A; + + @Override + public void onCreatePreferences(final Bundle savedInstanceState, final String rootKey) { + addPreferencesFromResource(R.xml.settings_template); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/SplashscreenActivity.java b/app/src/main/java/no/Reader/android/iisc/SplashscreenActivity.java new file mode 100644 index 0000000..9f71525 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/SplashscreenActivity.java @@ -0,0 +1,144 @@ +package no.Reader.android.iisc; + +import android.app.Activity; +import android.content.Intent; +import android.content.SharedPreferences; +import android.nfc.NdefMessage; +import android.nfc.NdefRecord; +import android.nfc.NfcAdapter; +import android.os.Bundle; +import android.os.Parcelable; +import android.view.View; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; +import android.widget.Button; + +import no.Reader.android.iisc.Reader.LoginScreen; +import no.Reader.android.iisc.Reader.MainActivity; + +public class SplashscreenActivity extends Activity { + /** Splash screen duration time inew n milliseconds */ + private static final int DELAY = 1000; + Animation btnAnim ; + Button btnGetStarted; + private static int SPLASH_TIME_OUT=3000; + String number; + + + @Override + protected void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_splashscreen); + SharedPreferences preferences6 = getSharedPreferences("PhoneBook_number", MODE_PRIVATE); + + number = preferences6.getString("Phone", null); + + btnGetStarted=findViewById(R.id.started); + btnGetStarted.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + + if (number == null ) { + + + Intent home = new Intent(SplashscreenActivity.this, LoginScreen.class); + startActivity(home); + finish(); + } + else { + final Intent newIntent = new Intent(SplashscreenActivity.this, MainActivity.class); + newIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + btnGetStarted.setAnimation(btnAnim); + + + // Handle NFC message, if app was opened using NFC AAR record + final Intent intent = getIntent(); + if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { + final Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); + if (rawMsgs != null) { + for (Parcelable rawMsg : rawMsgs) { + final NdefMessage msg = (NdefMessage) rawMsg; + final NdefRecord[] records = msg.getRecords(); + + for (NdefRecord record : records) { + if (record.getTnf() == NdefRecord.TNF_MIME_MEDIA) { + switch (record.toMimeType()) { + case FeaturesActivity.EXTRA_APP: + newIntent.putExtra(FeaturesActivity.EXTRA_APP, new String(record.getPayload())); + break; + case FeaturesActivity.EXTRA_ADDRESS: + newIntent.putExtra(FeaturesActivity.EXTRA_ADDRESS, invertEndianness(record.getPayload())); + break; + } + } + } + } + } + } + startActivity(newIntent); + finish(); + + } + } + }); + btnAnim = AnimationUtils.loadAnimation(getApplicationContext(),R.anim.button_animation); + btnGetStarted.setAnimation(btnAnim); + + + // Jump to SensorsActivity after DELAY milliseconds +/* + new Handler().postDelayed(() -> { + final Intent newIntent = new Intent(SplashscreenActivity.this, TemplateActivity.class); + newIntent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + + + // Handle NFC message, if app was opened using NFC AAR record + final Intent intent = getIntent(); + if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { + final Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); + if (rawMsgs != null) { + for (Parcelable rawMsg : rawMsgs) { + final NdefMessage msg = (NdefMessage) rawMsg; + final NdefRecord[] records = msg.getRecords(); + + for (NdefRecord record : records) { + if (record.getTnf() == NdefRecord.TNF_MIME_MEDIA) { + switch (record.toMimeType()) { + case FeaturesActivity.EXTRA_APP: + newIntent.putExtra(FeaturesActivity.EXTRA_APP, new String(record.getPayload())); + break; + case FeaturesActivity.EXTRA_ADDRESS: + newIntent.putExtra(FeaturesActivity.EXTRA_ADDRESS, invertEndianness(record.getPayload())); + break; + } + } + } + } + } + } + startActivity(newIntent); + finish(); + }, DELAY); +*/ + } + + @Override + public void onBackPressed() { + // do nothing. Protect from exiting the application when splash screen is shown + } + + /** + * Inverts endianness of the byte array. + * @param bytes input byte array + * @return byte array in opposite order + */ + private byte[] invertEndianness(final byte[] bytes) { + if (bytes == null) + return null; + final int length = bytes.length; + final byte[] result = new byte[length]; + for (int i = 0; i < length; i++) + result[i] = bytes[length - i - 1]; + return result; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/adapter/AppAdapter.java b/app/src/main/java/no/Reader/android/iisc/adapter/AppAdapter.java new file mode 100644 index 0000000..592ab02 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/adapter/AppAdapter.java @@ -0,0 +1,100 @@ +package no.Reader.android.iisc.adapter; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.Collections; +import java.util.List; +import java.util.Locale; + +import no.Reader.android.iisc.R; + + +public class AppAdapter extends BaseAdapter { + private static final String CATEGORY = "no.Reader.android.iisc.LAUNCHER"; + private static final String NRF_CONNECT_PACKAGE = "no.nordicsemi.android.mcp"; + + private final Context mContext; + private final PackageManager mPackageManager; + private final LayoutInflater mInflater; + private final List mApplications; + + public AppAdapter(final Context context) { + mContext = context; + mInflater = LayoutInflater.from(context); + + // get nRF installed app plugins from package manager + final PackageManager pm = mPackageManager = context.getPackageManager(); + final Intent intent = new Intent(Intent.ACTION_MAIN); + intent.addCategory(CATEGORY); + + final List appList = mApplications = pm.queryIntentActivities(intent, 0); + // TODO remove the following loop after some time, when there will be no more MCP 1.1 at the market. + for (final ResolveInfo info : appList) { + if (NRF_CONNECT_PACKAGE.equals(info.activityInfo.packageName)) { + appList.remove(info); + break; + } + } + Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm)); + } + + @Override + public int getCount() { + return mApplications.size(); + } + + @Override + public Object getItem(int position) { + return mApplications.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View view = convertView; + if (view == null) { + view = mInflater.inflate(R.layout.feature_icon, parent, false); + + final ViewHolder holder = new ViewHolder(); + holder.view = view; + holder.icon = view.findViewById(R.id.icon); + holder.label = view.findViewById(R.id.label); + view.setTag(holder); + } + + final ResolveInfo info = mApplications.get(position); + final PackageManager pm = mPackageManager; + + final ViewHolder holder = (ViewHolder) view.getTag(); + holder.icon.setImageDrawable(info.loadIcon(pm)); + holder.label.setText(info.loadLabel(pm).toString().toUpperCase(Locale.US)); + holder.view.setOnClickListener(v -> { + final Intent intent = new Intent(); + intent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name)); + intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + mContext.startActivity(intent); + }); + + return view; + } + + private class ViewHolder { + private View view; + private ImageView icon; + private TextView label; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/app/ExpandableListActivity.java b/app/src/main/java/no/Reader/android/iisc/app/ExpandableListActivity.java new file mode 100644 index 0000000..408e2d5 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/app/ExpandableListActivity.java @@ -0,0 +1,300 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package no.Reader.android.iisc.app; + +import android.app.Activity; +import android.database.Cursor; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; +import android.view.View; +import android.view.View.OnCreateContextMenuListener; +import android.widget.ExpandableListAdapter; +import android.widget.ExpandableListView; +import android.widget.SimpleCursorTreeAdapter; +import android.widget.SimpleExpandableListAdapter; + +import java.util.List; +import java.util.Map; + +import no.Reader.android.iisc.R; + + +/** + * An activity that displays an expandable list of items by binding to a data source implementing the ExpandableListAdapter, and exposes event handlers when the + * user selects an item. + *

+ * ExpandableListActivity hosts a {@link android.widget.ExpandableListView ExpandableListView} object that can be bound to different data sources that provide a + * two-levels of data (the top-level is group, and below each group are children). Binding, screen layout, and row layout are discussed in the following + * sections. + *

+ * Screen Layout + *

+ *

+ * ExpandableListActivity has a default layout that consists of a single, full-screen, centered expandable list. However, if you desire, you can customize the + * screen layout by setting your own view layout with setContentView() in onCreate(). To do this, your own view MUST contain an ExpandableListView object with + * the id "@android:id/list" (or {@link android.R.id#list} if it's in code) + *

+ * Optionally, your custom view can contain another view object of any type to display when the list view is empty. This "empty list" notifier must have an id + * "android:empty". Note that when an empty view is present, the expandable list view will be hidden when there is no data to display. + *

+ * The following code demonstrates an (ugly) custom screen layout. It has a list with a green background, and an alternate red "no data" message. + *

+ * + *
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ *         android:orientation="vertical"
+ *         android:layout_width="match_parent" 
+ *         android:layout_height="match_parent"
+ *         android:paddingLeft="8dp"
+ *         android:paddingRight="8dp">
+ * 
+ *     <ExpandableListView android:id="@id/android:list"
+ *               android:layout_width="match_parent" 
+ *               android:layout_height="match_parent"
+ *               android:background="#00FF00"
+ *               android:layout_weight="1"
+ *               android:drawSelectorOnTop="false"/>
+ * 
+ *     <TextView android:id="@id/android:empty"
+ *               android:layout_width="match_parent" 
+ *               android:layout_height="match_parent"
+ *               android:background="#FF0000"
+ *               android:text="No data"/>
+ * </LinearLayout>
+ * 
+ * + *

+ * Row Layout + *

+ * The {@link ExpandableListAdapter} set in the {@link ExpandableListActivity} via {@link #setListAdapter(ExpandableListAdapter)} provides the {@link View}s for + * each row. This adapter has separate methods for providing the group {@link View}s and child {@link View}s. There are a couple provided + * {@link ExpandableListAdapter}s that simplify use of adapters: {@link SimpleCursorTreeAdapter} and {@link SimpleExpandableListAdapter}. + *

+ * With these, you can specify the layout of individual rows for groups and children in the list. These constructor takes a few parameters that specify layout + * resources for groups and children. It also has additional parameters that let you specify which data field to associate with which object in the row layout + * resource. The {@link SimpleCursorTreeAdapter} fetches data from {@link Cursor}s and the {@link SimpleExpandableListAdapter} fetches data from {@link List}s + * of {@link Map}s. + *

+ *

+ * Android provides some standard row layout resources. These are in the {@link android.R.layout} class, and have names such as simple_list_item_1, + * simple_list_item_2, and two_line_list_item. The following layout XML is the source for the resource two_line_list_item, which displays two data fields,one + * above the other, for each list row. + *

+ * + *
+ * <?xml version="1.0" encoding="utf-8"?>
+ * <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ *     android:layout_width="match_parent"
+ *     android:layout_height="wrap_content"
+ *     android:orientation="vertical">
+ * 
+ *     <TextView android:id="@+id/text1"
+ *         android:textSize="16sp"
+ *         android:textStyle="bold"
+ *         android:layout_width="match_parent"
+ *         android:layout_height="wrap_content"/>
+ * 
+ *     <TextView android:id="@+id/text2"
+ *         android:textSize="16sp"
+ *         android:layout_width="match_parent"
+ *         android:layout_height="wrap_content"/>
+ * </LinearLayout>
+ * 
+ * + *

+ * You must identify the data bound to each TextView object in this layout. The syntax for this is discussed in the next section. + *

+ *

+ * Binding to Data + *

+ *

+ * You bind the ExpandableListActivity's ExpandableListView object to data using a class that implements the {@link android.widget.ExpandableListAdapter + * ExpandableListAdapter} interface. Android provides two standard list adapters: {@link android.widget.SimpleExpandableListAdapter SimpleExpandableListAdapter} + * for static data (Maps), and {@link android.widget.SimpleCursorTreeAdapter SimpleCursorTreeAdapter} for Cursor query results. + *

+ * + * @see #setListAdapter + * @see android.widget.ExpandableListView + */ +public class ExpandableListActivity extends AppCompatActivity implements + OnCreateContextMenuListener, + ExpandableListView.OnChildClickListener, ExpandableListView.OnGroupCollapseListener, + ExpandableListView.OnGroupExpandListener { + ExpandableListAdapter mAdapter; + ExpandableListView mList; + boolean mFinishedStart = false; + + /** + * Override this to populate the context menu when an item is long pressed. menuInfo will contain an + * {@link android.widget.ExpandableListView.ExpandableListContextMenuInfo} whose packedPosition is a packed position that should be used with + * {@link ExpandableListView#getPackedPositionType(long)} and the other similar methods. + *

+ * {@inheritDoc} + */ + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { + } + + /** + * Override this for receiving callbacks when a child has been clicked. + *

+ * {@inheritDoc} + */ + @Override + public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, + int childPosition, long id) { + return false; + } + + /** + * Override this for receiving callbacks when a group has been collapsed. + */ + @Override + public void onGroupCollapse(int groupPosition) { + } + + /** + * Override this for receiving callbacks when a group has been expanded. + */ + @Override + public void onGroupExpand(int groupPosition) { + } + + /** + * Ensures the expandable list view has been created before Activity restores all of the view states. + * + * @see Activity#onRestoreInstanceState(Bundle) + */ + @Override + protected void onRestoreInstanceState(@NonNull Bundle state) { + ensureList(); + super.onRestoreInstanceState(state); + } + + /** + * Updates the screen state (current list and other views) when the content changes. + * + * @see androidx.appcompat.app.AppCompatActivity#onContentChanged() + */ + @Override + public void onContentChanged() { + super.onContentChanged(); + View emptyView = findViewById(R.id.empty); + mList = findViewById(R.id.list); + if (mList == null) { + throw new RuntimeException( + "Your content must have a ExpandableListView whose id attribute is " + + "'R.id.list'"); + } + if (emptyView != null) { + mList.setEmptyView(emptyView); + } + mList.setOnChildClickListener(this); + mList.setOnGroupExpandListener(this); + mList.setOnGroupCollapseListener(this); + + if (mFinishedStart) { + setListAdapter(mAdapter); + } + mFinishedStart = true; + } + + /** + * Provide the adapter for the expandable list. + */ + public void setListAdapter(ExpandableListAdapter adapter) { + synchronized (this) { + ensureList(); + mAdapter = adapter; + mList.setAdapter(adapter); + } + } + + /** + * Get the activity's expandable list view widget. This can be used to get the selection, set the selection, and many other useful functions. + * + * @see ExpandableListView + */ + public ExpandableListView getExpandableListView() { + ensureList(); + return mList; + } + + /** + * Get the ExpandableListAdapter associated with this activity's ExpandableListView. + */ + public ExpandableListAdapter getExpandableListAdapter() { + return mAdapter; + } + + private void ensureList() { + if (mList != null) { + return; + } + setContentView(R.layout.expandable_list_content); + } + + /** + * Gets the ID of the currently selected group or child. + * + * @return The ID of the currently selected group or child. + */ + public long getSelectedId() { + return mList.getSelectedId(); + } + + /** + * Gets the position (in packed position representation) of the currently selected group or child. Use {@link ExpandableListView#getPackedPositionType}, + * {@link ExpandableListView#getPackedPositionGroup}, and {@link ExpandableListView#getPackedPositionChild} to unpack the returned packed position. + * + * @return A packed position representation containing the currently selected group or child's position and type. + */ + public long getSelectedPosition() { + return mList.getSelectedPosition(); + } + + /** + * Sets the selection to the specified child. If the child is in a collapsed group, the group will only be expanded and child subsequently selected if + * shouldExpandGroup is set to true, otherwise the method will return false. + * + * @param groupPosition + * The position of the group that contains the child. + * @param childPosition + * The position of the child within the group. + * @param shouldExpandGroup + * Whether the child's group should be expanded if it is collapsed. + * @return Whether the selection was successfully set on the child. + */ + public boolean setSelectedChild(int groupPosition, int childPosition, boolean shouldExpandGroup) { + return mList.setSelectedChild(groupPosition, childPosition, shouldExpandGroup); + } + + /** + * Sets the selection to the specified group. + * + * @param groupPosition + * The position of the group that should be selected. + */ + public void setSelectedGroup(int groupPosition) { + mList.setSelectedGroup(groupPosition); + } + +} diff --git a/app/src/main/java/no/Reader/android/iisc/battery/BatteryManager.java b/app/src/main/java/no/Reader/android/iisc/battery/BatteryManager.java new file mode 100644 index 0000000..29113c3 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/battery/BatteryManager.java @@ -0,0 +1,124 @@ +package no.Reader.android.iisc.battery; + +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.bluetooth.BluetoothGattCharacteristic; +import android.bluetooth.BluetoothGattService; +import android.content.Context; +import androidx.annotation.NonNull; +import android.util.Log; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.callback.DataReceivedCallback; +import no.nordicsemi.android.ble.common.callback.battery.BatteryLevelDataCallback; +import no.nordicsemi.android.ble.data.Data; +import no.nordicsemi.android.log.LogContract; +import no.Reader.android.iisc.profile.LoggableBleManager; + +/** + * The Ble Manager with Battery Service support. + * + * @param The profile callbacks type. + * @see BleManager + */ +@SuppressWarnings("WeakerAccess") +public abstract class BatteryManager extends LoggableBleManager { + /** Battery Service UUID. */ + private final static UUID BATTERY_SERVICE_UUID = UUID.fromString("0000180F-0000-1000-8000-00805f9b34fb"); + /** Battery Level characteristic UUID. */ + private final static UUID BATTERY_LEVEL_CHARACTERISTIC_UUID = UUID.fromString("00002A19-0000-1000-8000-00805f9b34fb"); + + private BluetoothGattCharacteristic mBatteryLevelCharacteristic; + /** Last received Battery Level value. */ + private Integer mBatteryLevel; + + /** + * The manager constructor. + * + * @param context context. + */ + public BatteryManager(final Context context) { + super(context); + } + + private DataReceivedCallback mBatteryLevelDataCallback = new BatteryLevelDataCallback() { + @Override + public void onBatteryLevelChanged(@NonNull final BluetoothDevice device, final int batteryLevel) { + log(LogContract.Log.Level.APPLICATION,"Battery Level received: " + batteryLevel + "%"); + mBatteryLevel = batteryLevel; + mCallbacks.onBatteryLevelChanged(device, batteryLevel); + } + + @Override + public void onInvalidDataReceived(@NonNull final BluetoothDevice device, final @NonNull Data data) { + log(Log.WARN, "Invalid Battery Level data received: " + data); + } + }; + + public void readBatteryLevelCharacteristic() { + if (isConnected()) { + readCharacteristic(mBatteryLevelCharacteristic) + .with(mBatteryLevelDataCallback) + .fail((device, status) -> log(Log.WARN,"Battery Level characteristic not found")) + .enqueue(); + } + } + + public void enableBatteryLevelCharacteristicNotifications() { + if (isConnected()) { + // If the Battery Level characteristic is null, the request will be ignored + setNotificationCallback(mBatteryLevelCharacteristic) + .with(mBatteryLevelDataCallback); + enableNotifications(mBatteryLevelCharacteristic) + .done(device -> log(Log.INFO, "Battery Level notifications enabled")) + .fail((device, status) -> log(Log.WARN, "Battery Level characteristic not found")) + .enqueue(); + } + } + + /** + * Disables Battery Level notifications on the Server. + */ + public void disableBatteryLevelCharacteristicNotifications() { + if (isConnected()) { + disableNotifications(mBatteryLevelCharacteristic) + .done(device -> log(Log.INFO, "Battery Level notifications disabled")) + .enqueue(); + } + } + + /** + * Returns the last received Battery Level value. + * The value is set to null when the device disconnects. + * @return Battery Level value, in percent. + */ + public Integer getBatteryLevel() { + return mBatteryLevel; + } + + protected abstract class BatteryManagerGattCallback extends BleManagerGattCallback { + + @Override + protected void initialize() { + readBatteryLevelCharacteristic(); + enableBatteryLevelCharacteristicNotifications(); + } + + @Override + protected boolean isOptionalServiceSupported(@NonNull final BluetoothGatt gatt) { + final BluetoothGattService service = gatt.getService(BATTERY_SERVICE_UUID); + if (service != null) { + mBatteryLevelCharacteristic = service.getCharacteristic(BATTERY_LEVEL_CHARACTERISTIC_UUID); + } + return mBatteryLevelCharacteristic != null; + } + + @Override + protected void onDeviceDisconnected() { + mBatteryLevelCharacteristic = null; + mBatteryLevel = null; + } + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/battery/BatteryManagerCallbacks.java b/app/src/main/java/no/Reader/android/iisc/battery/BatteryManagerCallbacks.java new file mode 100644 index 0000000..b020fee --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/battery/BatteryManagerCallbacks.java @@ -0,0 +1,7 @@ +package no.Reader.android.iisc.battery; + +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.ble.common.profile.battery.BatteryLevelCallback; + +public interface BatteryManagerCallbacks extends BleManagerCallbacks, BatteryLevelCallback { +} diff --git a/app/src/main/java/no/Reader/android/iisc/parser/SPCAParser.java b/app/src/main/java/no/Reader/android/iisc/parser/SPCAParser.java new file mode 100644 index 0000000..06f5ae0 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/parser/SPCAParser.java @@ -0,0 +1,48 @@ +package no.Reader.android.iisc.parser; + +import no.nordicsemi.android.ble.data.Data; + +// TODO this method may be used for developing purposes to log the data from your device using the nRF Logger application. + +@SuppressWarnings("ConstantConditions") +public class SPCAParser { + // TODO add some flags, if needed + private static final byte HEART_RATE_VALUE_FORMAT = 0x01; // 1 bit + + /** + * This method converts the value of the characteristic to the String. The String is then logged in the nRF logger log session + * @param data the characteristic data to be parsed + * @return human readable value of the characteristic + */ + @SuppressWarnings("UnusedAssignment") + public static String parse(final Data data) { + int offset = 0; + int flags = 0; + int value=0; + if(data.getIntValue(Data.FORMAT_UINT8, offset++)!=null) { + flags = data.getIntValue(Data.FORMAT_UINT8, offset++); + + } + + /* + * In the template we are using the HRM values as an example. + * false Heart Rate Value Format is set to UINT8. Units: beats per minute (bpm) + * true Heart Rate Value Format is set to UINT16. Units: beats per minute (bpm) + */ + final boolean value16bit = (flags & HEART_RATE_VALUE_FORMAT) > 0; + + // heart rate value is 8 or 16 bit long +if((data.getIntValue(value16bit ? Data.FORMAT_UINT16 : Data.FORMAT_UINT8, offset++)!=null)) + { + value = data.getIntValue(value16bit ? Data.FORMAT_UINT16 : Data.FORMAT_UINT8, offset++); // bits per minute + + } + + if (value16bit) + offset++; + + // TODO parse more data + + return "Template Measurement: " + value + " bpm"; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/BleProfileActivity.java b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileActivity.java new file mode 100644 index 0000000..57f0134 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileActivity.java @@ -0,0 +1,398 @@ +package no.Reader.android.iisc.profile; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; + +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.LocalLogSession; +import no.nordicsemi.android.log.Logger; +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.scanner.ScannerFragment; +import no.Reader.android.iisc.DebugLogger; + +@SuppressWarnings("unused") +public abstract class BleProfileActivity extends AppCompatActivity implements BleManagerCallbacks, ScannerFragment.OnDeviceSelectedListener { + private static final String TAG = "BaseProfileActivity"; + + private static final String SIS_CONNECTION_STATUS = "connection_status"; + private static final String SIS_DEVICE_NAME = "device_name"; + protected static final int REQUEST_ENABLE_BT = 2; + + private LoggableBleManager mBleManager; + + private TextView mDeviceNameView; + private Button mConnectButton; + private ILogSession mLogSession; + + private boolean mDeviceConnected = false; + private String mDeviceName; + + @Override + protected final void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ensureBLESupported(); + if (!isBLEEnabled()) { + showBLEDialog(); + } + + /* + * We use the managers using a singleton pattern. It's not recommended for the Android, because the singleton instance remains after Activity has been + * destroyed but it's simple and is used only for this demo purpose. In final application Managers should be created as a non-static objects in + * Services. The Service should implement ManagerCallbacks interface. The application Activity may communicate with such Service using binding, + * broadcast listeners, local broadcast listeners (see support.v4 library), or messages. See the Proximity profile for Service approach. + */ + mBleManager = initializeManager(); + + // In onInitialize method a final class may register local broadcast receivers that will listen for events from the service + onInitialize(savedInstanceState); + // The onCreateView class should... create the view + onCreateView(savedInstanceState); + + final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); + + // Common nRF Toolbox view references are obtained here + setUpView(); + // View is ready to be used + onViewCreated(savedInstanceState); + } + + /** + * You may do some initialization here. This method is called from {@link #onCreate(Bundle)} before the view was created. + */ + protected void onInitialize(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called from {@link #onCreate(Bundle)}. This method should build the activity UI, i.e. using {@link #setContentView(int)}. + * Use to obtain references to views. Connect/Disconnect button and the device name view are manager automatically. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected abstract void onCreateView(final Bundle savedInstanceState); + + /** + * Called after the view has been created. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected void onViewCreated(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called after the view and the toolbar has been created. + */ + protected final void setUpView() { + // set GUI + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + mConnectButton = findViewById(R.id.action_connect); + mDeviceNameView = findViewById(R.id.device_name); + } + + @Override + public void onBackPressed() { + mBleManager.disconnect().enqueue(); + super.onBackPressed(); + } + + @Override + protected void onSaveInstanceState(final Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(SIS_CONNECTION_STATUS, mDeviceConnected); + outState.putString(SIS_DEVICE_NAME, mDeviceName); + } + + @Override + protected void onRestoreInstanceState(final @NonNull Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mDeviceConnected = savedInstanceState.getBoolean(SIS_CONNECTION_STATUS); + mDeviceName = savedInstanceState.getString(SIS_DEVICE_NAME); + + if (mDeviceConnected) { + mConnectButton.setText(R.string.action_disconnect); + } else { + mConnectButton.setText(R.string.action_connect); + } + } + + + + /** + * Use this method to handle menu actions other than home and about. + * + * @param itemId the menu item id + * @return true if action has been handled + */ + protected boolean onOptionsItemSelected(final int itemId) { + // Overwrite when using menu other than R.menu.help + return false; + } + + + + /** + * Called when user press CONNECT or DISCONNECT button. See layout files -> onClick attribute. + */ + public void onConnectClicked(final View view) { + if (isBLEEnabled()) { + if (!mDeviceConnected) { + setDefaultUI(); + showDeviceScanningDialog(getFilterUUID()); + } else { + mBleManager.disconnect().enqueue(); + } + } else { + showBLEDialog(); + } + } + + /** + * Returns the title resource id that will be used to create logger session. If 0 is returned (default) logger will not be used. + * + * @return the title resource id + */ + protected int getLoggerProfileTitle() { + return 0; + } + + /** + * This method may return the local log content provider authority if local log sessions are supported. + * + * @return local log session content provider URI + */ + protected Uri getLocalAuthorityLogger() { + return null; + } + + /** + * This method returns whether autoConnect option should be used. + * + * @return true to use autoConnect feature, false (default) otherwise. + */ + protected boolean shouldAutoConnect() { + return false; + } + + @Override + public void onDeviceSelected(final BluetoothDevice device, final String name) { + final int titleId = getLoggerProfileTitle(); + if (titleId > 0) { + mLogSession = Logger.newSession(getApplicationContext(), getString(titleId), device.getAddress(), name); + // If nRF Logger is not installed we may want to use local logger + if (mLogSession == null && getLocalAuthorityLogger() != null) { + mLogSession = LocalLogSession.newSession(getApplicationContext(), getLocalAuthorityLogger(), device.getAddress(), name); + } + } + mDeviceName = name; + mBleManager.setLogger(mLogSession); + mBleManager.connect(device) + .useAutoConnect(shouldAutoConnect()) + .retry(3, 100) + .enqueue(); + } + + @Override + public void onDialogCanceled() { + // do nothing + } + + @Override + public void onDeviceConnecting(@NonNull final BluetoothDevice device) { + runOnUiThread(() -> { + mDeviceNameView.setText(mDeviceName != null ? mDeviceName : getString(R.string.not_available)); + mConnectButton.setText(R.string.action_connecting); + }); + } + + @Override + public void onDeviceConnected(@NonNull final BluetoothDevice device) { + mDeviceConnected = true; + runOnUiThread(() -> mConnectButton.setText(R.string.action_disconnect)); + } + + @Override + public void onDeviceDisconnecting(@NonNull final BluetoothDevice device) { + runOnUiThread(() -> mConnectButton.setText(R.string.action_disconnecting)); + } + + @Override + public void onDeviceDisconnected(@NonNull final BluetoothDevice device) { + mDeviceConnected = false; + mBleManager.close(); + runOnUiThread(() -> { + mConnectButton.setText(R.string.action_connect); + mDeviceNameView.setText(getDefaultDeviceName()); + }); + } + + @Override + public void onLinkLossOccurred(@NonNull final BluetoothDevice device) { + mDeviceConnected = false; + } + + @Override + public void onServicesDiscovered(@NonNull final BluetoothDevice device, boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceReady(@NonNull final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingRequired(@NonNull final BluetoothDevice device) { + showToast(R.string.bonding); + } + + @Override + public void onBonded(@NonNull final BluetoothDevice device) { + showToast(R.string.bonded); + } + + @Override + public void onBondingFailed(@NonNull final BluetoothDevice device) { + showToast(R.string.bonding_failed); + } + + @Override + public void onError(@NonNull final BluetoothDevice device, @NonNull final String message, final int errorCode) { + DebugLogger.e(TAG, "Error occurred: " + message + ", error code: " + errorCode); + showToast(message + " (" + errorCode + ")"); + } + + @Override + public void onDeviceNotSupported(@NonNull final BluetoothDevice device) { + showToast(R.string.not_supported); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message a message to be shown + */ + protected void showToast(final String message) { + runOnUiThread(() -> Toast.makeText(BleProfileActivity.this, message, Toast.LENGTH_SHORT).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + runOnUiThread(() -> Toast.makeText(BleProfileActivity.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns true if the device is connected. Services may not have been discovered yet. + */ + protected boolean isDeviceConnected() { + return mDeviceConnected; + } + + /** + * Returns the name of the device that the phone is currently connected to or was connected last time + */ + protected String getDeviceName() { + return mDeviceName; + } + + /** + * Initializes the Bluetooth Low Energy manager. A manager is used to communicate with profile's services. + * + * @return the manager that was created + */ + protected abstract LoggableBleManager initializeManager(); + + /** + * Restores the default UI before reconnecting + */ + protected abstract void setDefaultUI(); + + /** + * Returns the default device name resource id. The real device name is obtained when connecting to the device. This one is used when device has + * disconnected. + * + * @return the default device name resource id + */ + protected abstract int getDefaultDeviceName(); + + /** + * Returns the string resource id that will be shown in About box + * + * @return the about resource id + */ + protected abstract int getAboutTextId(); + + /** + * The UUID filter is used to filter out available devices that does not have such UUID in their advertisement packet. See also: + * {@link #isChangingConfigurations()}. + * + * @return the required UUID or null + */ + protected abstract UUID getFilterUUID(); + + /** + * Shows the scanner fragment. + * + * @param filter the UUID filter used to filter out available devices. The fragment will always show all bonded devices as there is no information about their + * services + * @see #getFilterUUID() + */ + private void showDeviceScanningDialog(final UUID filter) { + runOnUiThread(() -> { + final ScannerFragment dialog = ScannerFragment.getInstance(filter); + dialog.show(getSupportFragmentManager(), "scan_fragment"); + }); + } + + /** + * Returns the log session. Log session is created when the device was selected using the {@link ScannerFragment} and released when user press DISCONNECT. + * + * @return the logger session or null + */ + protected ILogSession getLogSession() { + return mLogSession; + } + + private void ensureBLESupported() { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.no_ble, Toast.LENGTH_LONG).show(); + finish(); + } + } + + protected boolean isBLEEnabled() { + final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + final BluetoothAdapter adapter = bluetoothManager.getAdapter(); + return adapter != null && adapter.isEnabled(); + } + + protected void showBLEDialog() { + final Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableIntent, REQUEST_ENABLE_BT); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/BleProfileExpandableListActivity.java b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileExpandableListActivity.java new file mode 100644 index 0000000..05672df --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileExpandableListActivity.java @@ -0,0 +1,401 @@ +package no.Reader.android.iisc.profile; + +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import androidx.annotation.NonNull; +import androidx.appcompat.widget.Toolbar; + +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.LocalLogSession; +import no.nordicsemi.android.log.Logger; +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.app.ExpandableListActivity; +import no.Reader.android.iisc.scanner.ScannerFragment; +import no.Reader.android.iisc.DebugLogger; + +@SuppressWarnings("unused") +public abstract class BleProfileExpandableListActivity extends ExpandableListActivity implements BleManagerCallbacks, ScannerFragment.OnDeviceSelectedListener { + private static final String TAG = "BaseProfileActivity"; + + private static final String SIS_CONNECTION_STATUS = "connection_status"; + private static final String SIS_DEVICE_NAME = "device_name"; + protected static final int REQUEST_ENABLE_BT = 2; + + private LoggableBleManager mBleManager; + + private TextView mDeviceNameView; + private Button mConnectButton; + private ILogSession mLogSession; + + private boolean mDeviceConnected = false; + private String mDeviceName; + + @Override + protected final void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ensureBLESupported(); + if (!isBLEEnabled()) { + showBLEDialog(); + } + + /* + * We use the managers using a singleton pattern. It's not recommended for the Android, because the singleton instance remains after Activity has been + * destroyed but it's simple and is used only for this demo purpose. In final application Managers should be created as a non-static objects in + * Services. The Service should implement ManagerCallbacks interface. The application Activity may communicate with such Service using binding, + * broadcast listeners, local broadcast listeners (see support.v4 library), or messages. See the Proximity profile for Service approach. + */ + mBleManager = initializeManager(); + + // In onInitialize method a final class may register local broadcast receivers that will listen for events from the service + onInitialize(savedInstanceState); + // The onCreateView class should... create the view + onCreateView(savedInstanceState); + + final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); + + // Common nRF Toolbox view references are obtained here + setUpView(); + // View is ready to be used + onViewCreated(savedInstanceState); + } + + /** + * You may do some initialization here. This method is called from {@link #onCreate(Bundle)} before the view was created. + */ + @SuppressWarnings("unused") + protected void onInitialize(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called from {@link #onCreate(Bundle)}. This method should build the activity UI, i.e. using {@link #setContentView(int)}. + * Use to obtain references to views. Connect/Disconnect button and the device name view are manager automatically. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected abstract void onCreateView(final Bundle savedInstanceState); + + /** + * Called after the view has been created. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + @SuppressWarnings("unused") + protected void onViewCreated(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called after the view and the toolbar has been created. + */ + protected final void setUpView() { + // set GUI + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + mConnectButton = findViewById(R.id.action_connect); + mDeviceNameView = findViewById(R.id.device_name); + } + + @Override + public void onBackPressed() { + mBleManager.disconnect().enqueue(); + super.onBackPressed(); + } + + @Override + protected void onSaveInstanceState(final Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(SIS_CONNECTION_STATUS, mDeviceConnected); + outState.putString(SIS_DEVICE_NAME, mDeviceName); + } + + @Override + protected void onRestoreInstanceState(final @NonNull Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mDeviceConnected = savedInstanceState.getBoolean(SIS_CONNECTION_STATUS); + mDeviceName = savedInstanceState.getString(SIS_DEVICE_NAME); + + if (mDeviceConnected) { + mConnectButton.setText(R.string.action_disconnect); + } else { + mConnectButton.setText(R.string.action_connect); + } + } + + + + /** + * Use this method to handle menu actions other than home and about. + * + * @param itemId the menu item id + * @return true if action has been handled + */ + @SuppressWarnings("unused") + protected boolean onOptionsItemSelected(final int itemId) { + // Overwrite when using menu other than R.menu.help + return false; + } + + + + /** + * Called when user press CONNECT or DISCONNECT button. See layout files -> onClick attribute. + */ + public void onConnectClicked(final View view) { + if (isBLEEnabled()) { + if (!mDeviceConnected) { + setDefaultUI(); + showDeviceScanningDialog(getFilterUUID()); + } else { + mBleManager.disconnect().enqueue(); + } + } else { + showBLEDialog(); + } + } + + /** + * Returns the title resource id that will be used to create logger session. If 0 is returned (default) logger will not be used. + * + * @return the title resource id + */ + protected int getLoggerProfileTitle() { + return 0; + } + + /** + * This method may return the local log content provider authority if local log sessions are supported. + * + * @return local log session content provider URI + */ + protected Uri getLocalAuthorityLogger() { + return null; + } + + /** + * This method returns whether autoConnect option should be used. + * + * @return true to use autoConnect feature, false (default) otherwise. + */ + protected boolean shouldAutoConnect() { + return false; + } + + @Override + public void onDeviceSelected(final BluetoothDevice device, final String name) { + final int titleId = getLoggerProfileTitle(); + if (titleId > 0) { + mLogSession = Logger.newSession(getApplicationContext(), getString(titleId), device.getAddress(), name); + // If nRF Logger is not installed we may want to use local logger + if (mLogSession == null && getLocalAuthorityLogger() != null) { + mLogSession = LocalLogSession.newSession(getApplicationContext(), getLocalAuthorityLogger(), device.getAddress(), name); + } + } + mDeviceName = name; + mBleManager.setLogger(mLogSession); + mBleManager.connect(device) + .useAutoConnect(shouldAutoConnect()) + .retry(3, 100) + .enqueue(); + } + + @Override + public void onDialogCanceled() { + // do nothing + } + + @Override + public void onDeviceConnecting(@NonNull final BluetoothDevice device) { + runOnUiThread(() -> { + mDeviceNameView.setText(mDeviceName != null ? mDeviceName : getString(R.string.not_available)); + mConnectButton.setText(R.string.action_connecting); + }); + } + + @Override + public void onDeviceConnected(@NonNull final BluetoothDevice device) { + mDeviceConnected = true; + runOnUiThread(() -> mConnectButton.setText(R.string.action_disconnect)); + } + + @Override + public void onDeviceDisconnecting(@NonNull final BluetoothDevice device) { + runOnUiThread(() -> mConnectButton.setText(R.string.action_disconnecting)); + } + + @Override + public void onDeviceDisconnected(@NonNull final BluetoothDevice device) { + mDeviceConnected = false; + mBleManager.close(); + runOnUiThread(() -> { + mConnectButton.setText(R.string.action_connect); + mDeviceNameView.setText(getDefaultDeviceName()); + }); + } + + @Override + public void onLinkLossOccurred(@NonNull final BluetoothDevice device) { + mDeviceConnected = false; + } + + @Override + public void onServicesDiscovered(@NonNull final BluetoothDevice device, boolean optionalServicesFound) { + // this may notify user or show some views + } + + @Override + public void onDeviceReady(@NonNull final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingRequired(@NonNull final BluetoothDevice device) { + showToast(R.string.bonding); + } + + @Override + public void onBonded(@NonNull final BluetoothDevice device) { + showToast(R.string.bonded); + } + + @Override + public void onBondingFailed(@NonNull final BluetoothDevice device) { + showToast(R.string.bonding_failed); + } + + @Override + public void onError(@NonNull final BluetoothDevice device, @NonNull final String message, final int errorCode) { + DebugLogger.e(TAG, "Error occurred: " + message + ", error code: " + errorCode); + showToast(message + " (" + errorCode + ")"); + } + + @Override + public void onDeviceNotSupported(@NonNull final BluetoothDevice device) { + showToast(R.string.not_supported); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message a message to be shown + */ + protected void showToast(final String message) { + runOnUiThread(() -> Toast.makeText(BleProfileExpandableListActivity.this, message, Toast.LENGTH_SHORT).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + runOnUiThread(() -> Toast.makeText(BleProfileExpandableListActivity.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns true if the device is connected. Services may not have been discovered yet. + */ + protected boolean isDeviceConnected() { + return mDeviceConnected; + } + + /** + * Returns the name of the device that the phone is currently connected to or was connected last time + */ + protected String getDeviceName() { + return mDeviceName; + } + + /** + * Initializes the Bluetooth Low Energy manager. A manager is used to communicate with profile's services. + * + * @return the manager that was created + */ + protected abstract LoggableBleManager initializeManager(); + + /** + * Restores the default UI before reconnecting + */ + protected abstract void setDefaultUI(); + + /** + * Returns the default device name resource id. The real device name is obtained when connecting to the device. This one is used when device has + * disconnected. + * + * @return the default device name resource id + */ + protected abstract int getDefaultDeviceName(); + + /** + * Returns the string resource id that will be shown in About box + * + * @return the about resource id + */ + protected abstract int getAboutTextId(); + + /** + * The UUID filter is used to filter out available devices that does not have such UUID in their advertisement packet. See also: + * {@link #isChangingConfigurations()}. + * + * @return the required UUID or null + */ + protected abstract UUID getFilterUUID(); + + /** + * Shows the scanner fragment. + * + * @param filter the UUID filter used to filter out available devices. The fragment will always show all bonded devices as there is no information about their + * services + * @see #getFilterUUID() + */ + private void showDeviceScanningDialog(final UUID filter) { + runOnUiThread(() -> { + final ScannerFragment dialog = ScannerFragment.getInstance(filter); + dialog.show(getSupportFragmentManager(), "scan_fragment"); + }); + } + + /** + * Returns the log session. Log session is created when the device was selected using the {@link ScannerFragment} and released when user press DISCONNECT. + * + * @return the logger session or null + */ + protected ILogSession getLogSession() { + return mLogSession; + } + + private void ensureBLESupported() { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.no_ble, Toast.LENGTH_LONG).show(); + finish(); + } + } + + protected boolean isBLEEnabled() { + final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + final BluetoothAdapter adapter = bluetoothManager.getAdapter(); + return adapter != null && adapter.isEnabled(); + } + + protected void showBLEDialog() { + final Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableIntent, REQUEST_ENABLE_BT); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/BleProfileService.java b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileService.java new file mode 100644 index 0000000..ff22e4b --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileService.java @@ -0,0 +1,582 @@ +package no.Reader.android.iisc.profile; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.net.Uri; +import android.os.Binder; +import android.os.Handler; +import android.os.IBinder; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import android.util.Log; +import android.widget.Toast; + +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.ble.utils.ILogger; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.Logger; + +@SuppressWarnings("unused") +public abstract class BleProfileService extends Service implements BleManagerCallbacks { + @SuppressWarnings("unused") + private static final String TAG = "BleProfileService"; + + public static final String BROADCAST_CONNECTION_STATE = "no.Reader.android.iisc.BROADCAST_CONNECTION_STATE"; + public static final String BROADCAST_SERVICES_DISCOVERED = "no.Reader.android.iisc.BROADCAST_SERVICES_DISCOVERED"; + public static final String BROADCAST_DEVICE_READY = "no.Reader.android.iisc.DEVICE_READY"; + public static final String BROADCAST_BOND_STATE = "no.Reader.android.iisc.BROADCAST_BOND_STATE"; + @Deprecated + public static final String BROADCAST_BATTERY_LEVEL = "no.Reader.android.iisc.BROADCAST_BATTERY_LEVEL"; + public static final String BROADCAST_ERROR = "no.Reader.android.iisc.BROADCAST_ERROR"; + + /** The parameter passed when creating the service. Must contain the address of the sensor that we want to connect to */ + public static final String EXTRA_DEVICE_ADDRESS = "no.Reader.android.iisc.EXTRA_DEVICE_ADDRESS"; + /** The key for the device name that is returned in {@link #BROADCAST_CONNECTION_STATE} with state {@link #STATE_CONNECTED}. */ + public static final String EXTRA_DEVICE_NAME = "no.Reader.android.iisc.EXTRA_DEVICE_NAME"; + public static final String EXTRA_DEVICE = "no.Reader.android.iisc.EXTRA_DEVICE"; + public static final String EXTRA_LOG_URI = "no.Reader.android.iisc.EXTRA_LOG_URI"; + public static final String EXTRA_CONNECTION_STATE = "no.Reader.android.iisc.EXTRA_CONNECTION_STATE"; + public static final String EXTRA_BOND_STATE = "no.Reader.android.iisc.EXTRA_BOND_STATE"; + public static final String EXTRA_SERVICE_PRIMARY = "no.Reader.android.iisc.EXTRA_SERVICE_PRIMARY"; + public static final String EXTRA_SERVICE_SECONDARY = "no.Reader.android.iisc.EXTRA_SERVICE_SECONDARY"; + @Deprecated + public static final String EXTRA_BATTERY_LEVEL = "no.Reader.android.iisc.EXTRA_BATTERY_LEVEL"; + public static final String EXTRA_ERROR_MESSAGE = "no.Reader.android.iisc.EXTRA_ERROR_MESSAGE"; + public static final String EXTRA_ERROR_CODE = "no.Reader.android.iisc.EXTRA_ERROR_CODE"; + + public static final int STATE_LINK_LOSS = -1; + public static final int STATE_DISCONNECTED = 0; + public static final int STATE_CONNECTED = 1; + public static final int STATE_CONNECTING = 2; + public static final int STATE_DISCONNECTING = 3; + + private LoggableBleManager mBleManager; + private Handler mHandler; + + protected boolean mBound; + private boolean mActivityIsChangingConfiguration; + private BluetoothDevice mBluetoothDevice; + private String mDeviceName; + private ILogSession mLogSession; + + private final BroadcastReceiver mBluetoothStateBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF); + final ILogger logger = getBinder(); + + final String stateString = "[Broadcast] Action received: " + BluetoothAdapter.ACTION_STATE_CHANGED + ", state changed to " + state2String(state); + logger.log(Log.DEBUG, stateString); + + switch (state) { + case BluetoothAdapter.STATE_ON: + onBluetoothEnabled(); + break; + case BluetoothAdapter.STATE_TURNING_OFF: + case BluetoothAdapter.STATE_OFF: + onBluetoothDisabled(); + break; + } + } + + private String state2String(final int state) { + switch (state) { + case BluetoothAdapter.STATE_TURNING_ON: + return "TURNING ON"; + case BluetoothAdapter.STATE_ON: + return "ON"; + case BluetoothAdapter.STATE_TURNING_OFF: + return "TURNING OFF"; + case BluetoothAdapter.STATE_OFF: + return "OFF"; + default: + return "UNKNOWN (" + state + ")"; + } + } + }; + + public class LocalBinder extends Binder implements ILogger { + /** + * Disconnects from the sensor. + */ + public final void disconnect() { + final int state = mBleManager.getConnectionState(); + if (state == BluetoothGatt.STATE_DISCONNECTED || state == BluetoothGatt.STATE_DISCONNECTING) { + mBleManager.close(); + onDeviceDisconnected(mBluetoothDevice); + return; + } + + mBleManager.disconnect().enqueue(); + } + + /** + * Sets whether the bound activity if changing configuration or not. + * If false, we will turn off battery level notifications in onUnbind(..) method below. + * @param changing true if the bound activity is finishing + */ + public void setActivityIsChangingConfiguration(final boolean changing) { + mActivityIsChangingConfiguration = changing; + } + + /** + * Returns the device address + * + * @return device address + */ + public String getDeviceAddress() { + return mBluetoothDevice.getAddress(); + } + + /** + * Returns the device name + * + * @return the device name + */ + public String getDeviceName() { + return mDeviceName; + } + + /** + * Returns the Bluetooth device + * + * @return the Bluetooth device + */ + public BluetoothDevice getBluetoothDevice() { + return mBluetoothDevice; + } + + /** + * Returns true if the device is connected to the sensor. + * + * @return true if device is connected to the sensor, false otherwise + */ + public boolean isConnected() { + return mBleManager.isConnected(); + } + + + /** + * Returns the connection state of given device. + * @return the connection state, as in {@link BleManager#getConnectionState()}. + */ + public int getConnectionState() { + return mBleManager.getConnectionState(); + } + + /** + * Returns the log session that can be used to append log entries. + * The log session is created when the service is being created. + * The method returns null if the nRF Logger app was not installed. + * + * @return the log session + */ + public ILogSession getLogSession() { + return mLogSession; + } + + @Override + public void log(final int level, @NonNull final String message) { + Logger.log(mLogSession, level, message); + } + + @Override + public void log(final int level, final @StringRes int messageRes, final Object... params) { + Logger.log(mLogSession, level, messageRes, params); + } + } + + /** + * Returns a handler that is created in onCreate(). + * The handler may be used to postpone execution of some operations or to run them in UI thread. + */ + protected Handler getHandler() { + return mHandler; + } + + /** + * Returns the binder implementation. This must return class implementing the additional manager interface that may be used in the bound activity. + * + * @return the service binder + */ + protected LocalBinder getBinder() { + // default implementation returns the basic binder. You can overwrite the LocalBinder with your own, wider implementation + return new LocalBinder(); + } + + @Override + public IBinder onBind(final Intent intent) { + mBound = true; + return getBinder(); + } + + @Override + public final void onRebind(final Intent intent) { + mBound = true; + + if (!mActivityIsChangingConfiguration) + onRebind(); + } + + /** + * Called when the activity has rebound to the service after being recreated. + * This method is not called when the activity was killed to be recreated when the phone orientation changed + * if prior to being killed called {@link BleProfileService.LocalBinder#setActivityIsChangingConfiguration(boolean)} with parameter true. + */ + protected void onRebind() { + // empty default implementation + } + + @Override + public final boolean onUnbind(final Intent intent) { + mBound = false; + + if (!mActivityIsChangingConfiguration) + onUnbind(); + + // We want the onRebind method be called if anything else binds to it again + return true; + } + + /** + * Called when the activity has unbound from the service before being finished. + * This method is not called when the activity is killed to be recreated when the phone orientation changed. + */ + protected void onUnbind() { + // empty default implementation + } + + @SuppressWarnings("unchecked") + @Override + public void onCreate() { + super.onCreate(); + + mHandler = new Handler(); + + // Initialize the manager + mBleManager = initializeManager(); + mBleManager.setGattCallbacks(this); + + // Register broadcast receivers + registerReceiver(mBluetoothStateBroadcastReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)); + + // Service has now been created + onServiceCreated(); + + // Call onBluetoothEnabled if Bluetooth enabled + final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + if (bluetoothAdapter.isEnabled()) { + onBluetoothEnabled(); + } + } + + /** + * Called when the service has been created, before the {@link #onBluetoothEnabled()} is called. + */ + protected void onServiceCreated() { + // empty default implementation + } + + /** + * Initializes the Ble Manager responsible for connecting to a single device. + * @return a new BleManager object + */ + @SuppressWarnings("rawtypes") + protected abstract LoggableBleManager initializeManager(); + + /** + * This method returns whether autoConnect option should be used. + * + * @return true to use autoConnect feature, false (default) otherwise. + */ + protected boolean shouldAutoConnect() { + return false; + } + + @Override + public int onStartCommand(final Intent intent, final int flags, final int startId) { + if (intent == null || !intent.hasExtra(EXTRA_DEVICE_ADDRESS)) + throw new UnsupportedOperationException("No device address at EXTRA_DEVICE_ADDRESS key"); + + final Uri logUri = intent.getParcelableExtra(EXTRA_LOG_URI); + mLogSession = Logger.openSession(getApplicationContext(), logUri); + mDeviceName = intent.getStringExtra(EXTRA_DEVICE_NAME); + + Logger.i(mLogSession, "Service started"); + + final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + final String deviceAddress = intent.getStringExtra(EXTRA_DEVICE_ADDRESS); + mBluetoothDevice = adapter.getRemoteDevice(deviceAddress); + + mBleManager.setLogger(mLogSession); + onServiceStarted(); + mBleManager.connect(mBluetoothDevice) + .useAutoConnect(shouldAutoConnect()) + .retry(3, 100) + .enqueue(); + return START_REDELIVER_INTENT; + } + + /** + * Called when the service has been started. The device name and address are set. + * The BLE Manager will try to connect to the device after this method finishes. + */ + protected void onServiceStarted() { + // empty default implementation + } + + @Override + public void onTaskRemoved(final Intent rootIntent) { + super.onTaskRemoved(rootIntent); + // This method is called when user removed the app from Recents. + // By default, the service will be killed and recreated immediately after that. + // However, all managed devices will be lost and devices will be disconnected. + stopSelf(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + // Unregister broadcast receivers + unregisterReceiver(mBluetoothStateBroadcastReceiver); + + // shutdown the manager + mBleManager.close(); + Logger.i(mLogSession, "Service destroyed"); + mBleManager = null; + mBluetoothDevice = null; + mDeviceName = null; + mLogSession = null; + mHandler = null; + } + + /** + * Method called when Bluetooth Adapter has been disabled. + */ + protected void onBluetoothDisabled() { + // empty default implementation + } + + /** + * This method is called when Bluetooth Adapter has been enabled and + * after the service was created if Bluetooth Adapter was enabled at that moment. + * This method could initialize all Bluetooth related features, for example open the GATT server. + */ + protected void onBluetoothEnabled() { + // empty default implementation + } + + @Override + public void onDeviceConnecting(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_CONNECTING); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceConnected(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_CONNECTED); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_DEVICE_NAME, mDeviceName); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceDisconnecting(@NonNull final BluetoothDevice device) { + // Notify user about changing the state to DISCONNECTING + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_DISCONNECTING); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + /** + * This method should return false if the service needs to do some asynchronous work after if has disconnected from the device. + * In that case the {@link #stopService()} method must be called when done. + * @return true (default) to automatically stop the service when device is disconnected. False otherwise. + */ + protected boolean stopWhenDisconnected() { + return true; + } + + @Override + public void onDeviceDisconnected(@NonNull final BluetoothDevice device) { + // Note 1: Do not use the device argument here unless you change calling onDeviceDisconnected from the binder above + + // Note 2: if BleManager#shouldAutoConnect() for this device returned true, this callback will be + // invoked ONLY when user requested disconnection (using Disconnect button). If the device + // disconnects due to a link loss, the onLinkLossOccurred(BluetoothDevice) method will be called instead. + + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_DISCONNECTED); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + + if (stopWhenDisconnected()) + stopService(); + } + + protected void stopService() { + // user requested disconnection. We must stop the service + Logger.v(mLogSession, "Stopping service..."); + stopSelf(); + } + + @Override + public void onLinkLossOccurred(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_LINK_LOSS); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onServicesDiscovered(@NonNull final BluetoothDevice device, final boolean optionalServicesFound) { + final Intent broadcast = new Intent(BROADCAST_SERVICES_DISCOVERED); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_SERVICE_PRIMARY, true); + broadcast.putExtra(EXTRA_SERVICE_SECONDARY, optionalServicesFound); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceReady(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_DEVICE_READY); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceNotSupported(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_SERVICES_DISCOVERED); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_SERVICE_PRIMARY, false); + broadcast.putExtra(EXTRA_SERVICE_SECONDARY, false); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + + // no need for disconnecting, it will be disconnected by the manager automatically + } + + @Override + public void onBatteryValueReceived(@NonNull final BluetoothDevice device, final int value) { + final Intent broadcast = new Intent(BROADCAST_BATTERY_LEVEL); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_BATTERY_LEVEL, value); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBondingRequired(@NonNull final BluetoothDevice device) { + showToast(no.Reader.android.iisc.R.string.bonding); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_BONDING); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBonded(@NonNull final BluetoothDevice device) { + showToast(no.Reader.android.iisc.R.string.bonding); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_BONDED); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBondingFailed(@NonNull final BluetoothDevice device) { + showToast(no.Reader.android.iisc.R.string.bonding_failed); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onError(@NonNull final BluetoothDevice device, @NonNull final String message, final int errorCode) { + final Intent broadcast = new Intent(BROADCAST_ERROR); + broadcast.putExtra(EXTRA_DEVICE, mBluetoothDevice); + broadcast.putExtra(EXTRA_ERROR_MESSAGE, message); + broadcast.putExtra(EXTRA_ERROR_CODE, errorCode); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId + * an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + mHandler.post(() -> Toast.makeText(BleProfileService.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message + * a message to be shown + */ + protected void showToast(final String message) { + mHandler.post(() -> Toast.makeText(BleProfileService.this, message, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns the log session that can be used to append log entries. The method returns null if the nRF Logger app was not installed. It is safe to use logger when + * {@link #onServiceStarted()} has been called. + * + * @return the log session + */ + protected ILogSession getLogSession() { + return mLogSession; + } + + /** + * Returns the device address + * + * @return device address + */ + protected String getDeviceAddress() { + return mBluetoothDevice.getAddress(); + } + + /** + * Returns the Bluetooth device object + * + * @return bluetooth device + */ + protected BluetoothDevice getBluetoothDevice() { + return mBluetoothDevice; + } + + /** + * Returns the device name + * + * @return the device name + */ + protected String getDeviceName() { + return mDeviceName; + } + + /** + * Returns true if the device is connected to the sensor. + * + * @return true if device is connected to the sensor, false otherwise + */ + protected boolean isConnected() { + return mBleManager != null && mBleManager.isConnected(); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/BleProfileServiceReadyActivity.java b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileServiceReadyActivity.java new file mode 100644 index 0000000..72cab33 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/BleProfileServiceReadyActivity.java @@ -0,0 +1,626 @@ +package no.Reader.android.iisc.profile; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.ServiceConnection; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.IBinder; +import androidx.annotation.NonNull; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.appcompat.app.AppCompatActivity; + +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.LocalLogSession; +import no.nordicsemi.android.log.Logger; +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.scanner.ScannerFragment; +import no.Reader.android.iisc.DebugLogger; + +/** + *

+ * The {@link BleProfileServiceReadyActivity} activity is designed to be the base class for profile activities that uses services in order to connect to the + * device. When user press CONNECT button a service is created and the activity binds to it. The service tries to connect to the service and notifies the + * activity using Local Broadcasts ({@link LocalBroadcastManager}). See {@link BleProfileService} for messages. If the device is not in range it will listen for + * it and connect when it become visible. The service exists until user will press DISCONNECT button. + *

+ *

+ * When user closes the activity (f.e. by pressing Back button) while being connected, the Service remains working. It's still connected to the device or still + * listens for it. When entering back to the activity, activity will to bind to the service and refresh UI. + *

+ */ +@SuppressWarnings("unused") +public abstract class BleProfileServiceReadyActivity extends AppCompatActivity implements + ScannerFragment.OnDeviceSelectedListener, BleManagerCallbacks { + private static final String TAG = "BleProfileServiceReadyActivity"; + + private static final String SIS_DEVICE_NAME = "device_name"; + private static final String SIS_DEVICE = "device"; + private static final String LOG_URI = "log_uri"; + protected static final int REQUEST_ENABLE_BT = 2; + + private E mService; + + private TextView mDeviceNameView; + private Button mConnectButton; + + private ILogSession mLogSession; + private BluetoothDevice mBluetoothDevice; + private String mDeviceName; + + private final BroadcastReceiver mCommonBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + // Check if the broadcast applies the connected device + if (!isBroadcastForThisDevice(intent)) + return; + + final BluetoothDevice bluetoothDevice = intent.getParcelableExtra(BleProfileService.EXTRA_DEVICE); + final String action = intent.getAction(); + switch (action) { + case BleProfileService.BROADCAST_CONNECTION_STATE: { + final int state = intent.getIntExtra(BleProfileService.EXTRA_CONNECTION_STATE, BleProfileService.STATE_DISCONNECTED); + + switch (state) { + case BleProfileService.STATE_CONNECTED: { + mDeviceName = intent.getStringExtra(BleProfileService.EXTRA_DEVICE_NAME); + onDeviceConnected(bluetoothDevice); + break; + } + case BleProfileService.STATE_DISCONNECTED: { + onDeviceDisconnected(bluetoothDevice); + mDeviceName = null; + break; + } + case BleProfileService.STATE_LINK_LOSS: { + onLinkLossOccurred(bluetoothDevice); + break; + } + case BleProfileService.STATE_CONNECTING: { + onDeviceConnecting(bluetoothDevice); + break; + } + case BleProfileService.STATE_DISCONNECTING: { + onDeviceDisconnecting(bluetoothDevice); + break; + } + default: + // there should be no other actions + break; + } + break; + } + case BleProfileService.BROADCAST_SERVICES_DISCOVERED: { + final boolean primaryService = intent.getBooleanExtra(BleProfileService.EXTRA_SERVICE_PRIMARY, false); + final boolean secondaryService = intent.getBooleanExtra(BleProfileService.EXTRA_SERVICE_SECONDARY, false); + + if (primaryService) { + onServicesDiscovered(bluetoothDevice, secondaryService); + } else { + onDeviceNotSupported(bluetoothDevice); + } + break; + } + case BleProfileService.BROADCAST_DEVICE_READY: { + onDeviceReady(bluetoothDevice); + break; + } + case BleProfileService.BROADCAST_BOND_STATE: { + final int state = intent.getIntExtra(BleProfileService.EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE); + switch (state) { + case BluetoothDevice.BOND_BONDING: + onBondingRequired(bluetoothDevice); + break; + case BluetoothDevice.BOND_BONDED: + onBonded(bluetoothDevice); + break; + } + break; + } + case BleProfileService.BROADCAST_ERROR: { + final String message = intent.getStringExtra(BleProfileService.EXTRA_ERROR_MESSAGE); + final int errorCode = intent.getIntExtra(BleProfileService.EXTRA_ERROR_CODE, 0); + onError(bluetoothDevice, message, errorCode); + break; + } + } + } + }; + + private ServiceConnection mServiceConnection = new ServiceConnection() { + @SuppressWarnings("unchecked") + @Override + public void onServiceConnected(final ComponentName name, final IBinder service) { + final E bleService = mService = (E) service; + mBluetoothDevice = bleService.getBluetoothDevice(); + mLogSession = mService.getLogSession(); + Logger.d(mLogSession, "Activity bound to the service"); + onServiceBound(bleService); + + // Update UI + mDeviceName = bleService.getDeviceName(); + mDeviceNameView.setText(mDeviceName); + mConnectButton.setText(R.string.action_disconnect); + + // And notify user if device is connected + if (bleService.isConnected()) { + onDeviceConnected(mBluetoothDevice); + } else { + // If the device is not connected it means that either it is still connecting, + // or the link was lost and service is trying to connect to it (autoConnect=true). + onDeviceConnecting(mBluetoothDevice); + } + } + + @Override + public void onServiceDisconnected(final ComponentName name) { + // Note: this method is called only when the service is killed by the system, + // not when it stops itself or is stopped by the activity. + // It will be called only when there is critically low memory, in practice never + // when the activity is in foreground. + Logger.d(mLogSession, "Activity disconnected from the service"); + mDeviceNameView.setText(getDefaultDeviceName()); + mConnectButton.setText(R.string.action_connect); + + mService = null; + mDeviceName = null; + mBluetoothDevice = null; + mLogSession = null; + onServiceUnbound(); + } + }; + + @Override + protected final void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + ensureBLESupported(); + if (!isBLEEnabled()) { + showBLEDialog(); + } + + // Restore the old log session + if (savedInstanceState != null) { + final Uri logUri = savedInstanceState.getParcelable(LOG_URI); + mLogSession = Logger.openSession(getApplicationContext(), logUri); + } + + // In onInitialize method a final class may register local broadcast receivers that will listen for events from the service + onInitialize(savedInstanceState); + // The onCreateView class should... create the view + onCreateView(savedInstanceState); + + /*final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); +*/ + // Common nRF Toolbox view references are obtained here + setUpView(); + // View is ready to be used + onViewCreated(savedInstanceState); + + LocalBroadcastManager.getInstance(this).registerReceiver(mCommonBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onStart() { + super.onStart(); + + /* + * If the service has not been started before, the following lines will not start it. + * However, if it's running, the Activity will bind to it and notified via mServiceConnection. + */ + final Intent service = new Intent(this, getServiceClass()); + // We pass 0 as a flag so the service will not be created if not exists. + bindService(service, mServiceConnection, 0); + + /* + * When user exited the UARTActivity while being connected, the log session is kept in + * the service. We may not get it before binding to it so in this case this event will + * not be logged (mLogSession is null until onServiceConnected(..) is called). + * It will, however, be logged after the orientation changes. + */ + } + + @Override + protected void onStop() { + super.onStop(); + + try { + // We don't want to perform some operations (e.g. disable Battery Level notifications) + // in the service if we are just rotating the screen. However, when the activity will + // disappear, we may want to disable some device features to reduce the battery + // consumption. + if (mService != null) + mService.setActivityIsChangingConfiguration(isChangingConfigurations()); + + unbindService(mServiceConnection); + mService = null; + + Logger.d(mLogSession, "Activity unbound from the service"); + onServiceUnbound(); + mDeviceName = null; + mBluetoothDevice = null; + mLogSession = null; + } catch (final IllegalArgumentException e) { + // do nothing, we were not connected to the sensor + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + + LocalBroadcastManager.getInstance(this).unregisterReceiver(mCommonBroadcastReceiver); + } + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BleProfileService.BROADCAST_CONNECTION_STATE); + intentFilter.addAction(BleProfileService.BROADCAST_SERVICES_DISCOVERED); + intentFilter.addAction(BleProfileService.BROADCAST_DEVICE_READY); + intentFilter.addAction(BleProfileService.BROADCAST_BOND_STATE); + intentFilter.addAction(BleProfileService.BROADCAST_ERROR); + return intentFilter; + } + + /** + * Called when activity binds to the service. The parameter is the object returned in {@link Service#onBind(Intent)} method in your service. The method is + * called when device gets connected or is created while sensor was connected before. You may use the binder as a sensor interface. + */ + protected abstract void onServiceBound(E binder); + + /** + * Called when activity unbinds from the service. You may no longer use this binder because the sensor was disconnected. This method is also called when you + * leave the activity being connected to the sensor in the background. + */ + protected abstract void onServiceUnbound(); + + /** + * Returns the service class for sensor communication. The service class must derive from {@link BleProfileService} in order to operate with this class. + * + * @return the service class + */ + protected abstract Class getServiceClass(); + + /** + * Returns the service interface that may be used to communicate with the sensor. This will return null if the device is disconnected from the + * sensor. + * + * @return the service binder or null + */ + protected E getService() { + return mService; + } + + /** + * You may do some initialization here. This method is called from {@link #onCreate(Bundle)} before the view was created. + */ + protected void onInitialize(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called from {@link #onCreate(Bundle)}. This method should build the activity UI, i.e. using {@link #setContentView(int)}. + * Use to obtain references to views. Connect/Disconnect button, the device name view are manager automatically. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected abstract void onCreateView(final Bundle savedInstanceState); + + /** + * Called after the view has been created. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected void onViewCreated(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called after the view and the toolbar has been created. + */ + protected final void setUpView() { + // set GUI + // getSupportActionBar().setDisplayHomeAsUpEnabled(true); + mConnectButton = findViewById(R.id.action_connect); + mDeviceNameView = findViewById(R.id.device_name); + } + + @Override + protected void onSaveInstanceState(final Bundle outState) { + super.onSaveInstanceState(outState); + outState.putString(SIS_DEVICE_NAME, mDeviceName); + outState.putParcelable(SIS_DEVICE, mBluetoothDevice); + if (mLogSession != null) + outState.putParcelable(LOG_URI, mLogSession.getSessionUri()); + } + + @Override + protected void onRestoreInstanceState(final @NonNull Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + mDeviceName = savedInstanceState.getString(SIS_DEVICE_NAME); + mBluetoothDevice = savedInstanceState.getParcelable(SIS_DEVICE); + } + + + + /** + * Use this method to handle menu actions other than home and about. + * + * @param itemId the menu item id + * @return true if action has been handled + */ + protected boolean onOptionsItemSelected(final int itemId) { + // Overwrite when using menu other than R.menu.help + return false; + } + + + /** + * Called when user press CONNECT or DISCONNECT button. See layout files -> onClick attribute. + */ + public void onConnectClicked(final View view) { + if (isBLEEnabled()) { + if (mService == null) { + setDefaultUI(); + showDeviceScanningDialog(getFilterUUID()); + } else { + mService.disconnect(); + } + } else { + showBLEDialog(); + } + } + + /** + * Returns the title resource id that will be used to create logger session. If 0 is returned (default) logger will not be used. + * + * @return the title resource id + */ + protected int getLoggerProfileTitle() { + return 0; + } + + /** + * This method may return the local log content provider authority if local log sessions are supported. + * + * @return local log session content provider URI + */ + protected Uri getLocalAuthorityLogger() { + return null; + } + + @Override + public void onDeviceSelected(final BluetoothDevice device, final String name) { + final int titleId = getLoggerProfileTitle(); + if (titleId > 0) { + mLogSession = Logger.newSession(getApplicationContext(), getString(titleId), device.getAddress(), name); + // If nRF Logger is not installed we may want to use local logger + if (mLogSession == null && getLocalAuthorityLogger() != null) { + mLogSession = LocalLogSession.newSession(getApplicationContext(), getLocalAuthorityLogger(), device.getAddress(), name); + } + } + mBluetoothDevice = device; + mDeviceName = name; + + // The device may not be in the range but the service will try to connect to it if it reach it + Logger.d(mLogSession, "Creating service..."); + final Intent service = new Intent(this, getServiceClass()); + service.putExtra(BleProfileService.EXTRA_DEVICE_ADDRESS, device.getAddress()); + service.putExtra(BleProfileService.EXTRA_DEVICE_NAME, name); + if (mLogSession != null) + service.putExtra(BleProfileService.EXTRA_LOG_URI, mLogSession.getSessionUri()); + startService(service); + Logger.d(mLogSession, "Binding to the service..."); + bindService(service, mServiceConnection, 0); + } + + @Override + public void onDialogCanceled() { + // do nothing + } + + @Override + public void onDeviceConnecting(final BluetoothDevice device) { + mDeviceNameView.setText(mDeviceName != null ? mDeviceName : getString(R.string.not_available)); + mConnectButton.setText(R.string.action_connecting); + } + + @Override + public void onDeviceConnected(final BluetoothDevice device) { + mDeviceNameView.setText(mDeviceName); + mConnectButton.setText(R.string.action_disconnect); + } + + @Override + public void onDeviceDisconnecting(final BluetoothDevice device) { + mConnectButton.setText(R.string.action_disconnecting); + } + + @Override + public void onDeviceDisconnected(final BluetoothDevice device) { + mConnectButton.setText(R.string.action_connect); + mDeviceNameView.setText(getDefaultDeviceName()); + + try { + Logger.d(mLogSession, "Unbinding from the service..."); + unbindService(mServiceConnection); + mService = null; + + Logger.d(mLogSession, "Activity unbound from the service"); + onServiceUnbound(); + mDeviceName = null; + mBluetoothDevice = null; + mLogSession = null; + } catch (final IllegalArgumentException e) { + // do nothing. This should never happen but does... + } + } + + @Override + public void onLinkLossOccurred(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // empty default implementation + } + + @Override + public void onDeviceReady(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingRequired(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBonded(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingFailed(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onError(final BluetoothDevice device, final String message, final int errorCode) { + DebugLogger.e(TAG, "Error occurred: " + message + ", error code: " + errorCode); + showToast(message + " (" + errorCode + ")"); + } + + @Override + public void onDeviceNotSupported(final BluetoothDevice device) { + showToast(R.string.not_supported); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message a message to be shown + */ + protected void showToast(final String message) { + runOnUiThread(() -> Toast.makeText(BleProfileServiceReadyActivity.this, message, Toast.LENGTH_LONG).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + runOnUiThread(() -> Toast.makeText(BleProfileServiceReadyActivity.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns true if the device is connected. Services may not have been discovered yet. + */ + protected boolean isDeviceConnected() { + return mService != null && mService.isConnected(); + } + + /** + * Returns the name of the device that the phone is currently connected to or was connected last time + */ + protected String getDeviceName() { + return mDeviceName; + } + + /** + * Restores the default UI before reconnecting + */ + protected abstract void setDefaultUI(); + + /** + * Returns the default device name resource id. The real device name is obtained when connecting to the device. This one is used when device has + * disconnected. + * + * @return the default device name resource id + */ + protected abstract int getDefaultDeviceName(); + + /** + * Returns the string resource id that will be shown in About box + * + * @return the about resource id + */ + + /** + * The UUID filter is used to filter out available devices that does not have such UUID in their advertisement packet. See also: + * {@link #isChangingConfigurations()}. + * + * @return the required UUID or null + */ + protected abstract UUID getFilterUUID(); + + /** + * Checks the {@link BleProfileService#EXTRA_DEVICE} in the given intent and compares it with the connected BluetoothDevice object. + * @param intent intent received via a broadcast from the service + * @return true if the data in the intent apply to the connected device, false otherwise + */ + protected boolean isBroadcastForThisDevice(final Intent intent) { + final BluetoothDevice bluetoothDevice = intent.getParcelableExtra(BleProfileService.EXTRA_DEVICE); + return mBluetoothDevice != null && mBluetoothDevice.equals(bluetoothDevice); + } + + /** + * Shows the scanner fragment. + * + * @param filter the UUID filter used to filter out available devices. The fragment will always show all bonded devices as there is no information about their + * services + * @see #getFilterUUID() + */ + private void showDeviceScanningDialog(final UUID filter) { + final ScannerFragment dialog = ScannerFragment.getInstance(filter); + dialog.show(getSupportFragmentManager(), "scan_fragment"); + } + + /** + * Returns the log session. Log session is created when the device was selected using the {@link ScannerFragment} and released when user press DISCONNECT. + * + * @return the logger session or null + */ + protected ILogSession getLogSession() { + return mLogSession; + } + + private void ensureBLESupported() { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.no_ble, Toast.LENGTH_LONG).show(); + finish(); + } + } + + protected boolean isBLEEnabled() { + final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + final BluetoothAdapter adapter = bluetoothManager.getAdapter(); + return adapter != null && adapter.isEnabled(); + } + + protected void showBLEDialog() { + final Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableIntent, REQUEST_ENABLE_BT); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/LoggableBleManager.java b/app/src/main/java/no/Reader/android/iisc/profile/LoggableBleManager.java new file mode 100644 index 0000000..4562a6c --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/LoggableBleManager.java @@ -0,0 +1,48 @@ +package no.Reader.android.iisc.profile; + +import android.content.Context; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import android.util.Log; + +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.LogContract; +import no.nordicsemi.android.log.Logger; + +/** + * The manager that logs to nRF Logger. If nRF Logger is not installed, logs are ignored. + * + * @param the callbacks class. + */ +public abstract class LoggableBleManager extends BleManager { + private ILogSession mLogSession; + + /** + * The manager constructor. + *

+ * After constructing the manager, the callbacks object must be set with + * {@link #setGattCallbacks(BleManagerCallbacks)}. + * + * @param context the context. + */ + public LoggableBleManager(@NonNull final Context context) { + super(context); + } + + /** + * Sets the log session to log into. + * + * @param session nRF Logger log session to log inti, or null, if nRF Logger is not installed. + */ + public void setLogger(@Nullable final ILogSession session) { + mLogSession = session; + } + + @Override + public void log(final int priority, @NonNull final String message) { + Logger.log(mLogSession, LogContract.Log.Level.fromPriority(priority), message); + Log.println(priority, "BleManager", message); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileService.java b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileService.java new file mode 100644 index 0000000..9626c15 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileService.java @@ -0,0 +1,615 @@ +package no.Reader.android.iisc.profile.multiconnect; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothGatt; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Binder; +import android.os.Handler; +import android.os.IBinder; +import androidx.annotation.NonNull; +import androidx.annotation.StringRes; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import android.util.Log; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; + +import no.Reader.android.iisc.profile.LoggableBleManager; +import no.nordicsemi.android.ble.BleManager; +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.ble.utils.ILogger; +import no.nordicsemi.android.log.ILogSession; + +public abstract class BleMulticonnectProfileService extends Service implements BleManagerCallbacks { + @SuppressWarnings("unused") + private static final String TAG = "BleMultiProfileService"; + + public static final String BROADCAST_CONNECTION_STATE = "no.Reader.android.iisc.BROADCAST_CONNECTION_STATE"; + public static final String BROADCAST_SERVICES_DISCOVERED = "no.Reader.android.iisc.BROADCAST_SERVICES_DISCOVERED"; + public static final String BROADCAST_DEVICE_READY = "no.Reader.android.iisc.DEVICE_READY"; + public static final String BROADCAST_BOND_STATE = "no.Reader.android.iisc.BROADCAST_BOND_STATE"; + @Deprecated + public static final String BROADCAST_BATTERY_LEVEL = "no.Reader.android.iisc.BROADCAST_BATTERY_LEVEL"; + public static final String BROADCAST_ERROR = "no.Reader.android.iisc.BROADCAST_ERROR"; + + public static final String EXTRA_DEVICE = "no.Reader.android.iisc.EXTRA_DEVICE"; + public static final String EXTRA_CONNECTION_STATE = "no.Reader.android.iisc.EXTRA_CONNECTION_STATE"; + public static final String EXTRA_BOND_STATE = "no.Reader.android.iisc.EXTRA_BOND_STATE"; + public static final String EXTRA_SERVICE_PRIMARY = "no.Reader.android.iisc.EXTRA_SERVICE_PRIMARY"; + public static final String EXTRA_SERVICE_SECONDARY = "no.Reader.android.iisc.EXTRA_SERVICE_SECONDARY"; + @Deprecated + public static final String EXTRA_BATTERY_LEVEL = "no.Reader.android.iisc.EXTRA_BATTERY_LEVEL"; + public static final String EXTRA_ERROR_MESSAGE = "no.Reader.android.iisc.EXTRA_ERROR_MESSAGE"; + public static final String EXTRA_ERROR_CODE = "no.Reader.android.iisc.EXTRA_ERROR_CODE"; + + public static final int STATE_LINK_LOSS = -1; + public static final int STATE_DISCONNECTED = 0; + public static final int STATE_CONNECTED = 1; + public static final int STATE_CONNECTING = 2; + public static final int STATE_DISCONNECTING = 3; + + private HashMap> bleManagers; + private List managedDevices; + private Handler handler; + + protected boolean bound; + private boolean activityIsChangingConfiguration; + + private final BroadcastReceiver bluetoothStateBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.STATE_OFF); + final int previousState = intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_STATE, BluetoothAdapter.STATE_OFF); + + switch (state) { + case BluetoothAdapter.STATE_ON: + // On older phones (tested on Nexus 4 with Android 5.0.1) the Bluetooth requires some time + // after it has been enabled before some operations can start. Starting the GATT server here + // without a delay is very likely to cause a DeadObjectException from BluetoothManager#openGattServer(...). + handler.postDelayed(() -> onBluetoothEnabled(), 600); + break; + case BluetoothAdapter.STATE_TURNING_OFF: + case BluetoothAdapter.STATE_OFF: + if (previousState != BluetoothAdapter.STATE_TURNING_OFF && previousState != BluetoothAdapter.STATE_OFF) + onBluetoothDisabled(); + break; + } + } + }; + + public class LocalBinder extends Binder implements ILogger, IDeviceLogger { + /** + * Returns an unmodifiable list of devices managed by the service. + * The returned devices do not need to be connected at tha moment. Each of them was however created + * using {@link #connect(BluetoothDevice)} method so they might have been connected before and disconnected. + * @return unmodifiable list of devices managed by the service + */ + public final List getManagedDevices() { + return Collections.unmodifiableList(managedDevices); + } + + /** + * Connects to the given device. If the device is already connected this method does nothing. + * @param device target Bluetooth device + */ + public void connect(final BluetoothDevice device) { + connect(device, null); + } + + /** + * Adds the given device to managed and stars connecting to it. If the device is already connected this method does nothing. + * @param device target Bluetooth device + * @param session log session that has to be used by the device + */ + @SuppressWarnings("unchecked") + public void connect(final BluetoothDevice device, final ILogSession session) { + // If a device is in managed devices it means that it's already connected, or was connected + // using autoConnect and the link was lost but Android is already trying to connect to it. + if (managedDevices.contains(device)) + return; + managedDevices.add(device); + + LoggableBleManager manager = bleManagers.get(device); + if (manager == null) { + bleManagers.put(device, manager = initializeManager()); + manager.setGattCallbacks(BleMulticonnectProfileService.this); + } + manager.setLogger(session); + manager.connect(device) + .retry(2, 100) + .useAutoConnect(shouldAutoConnect()) + .timeout(10000) + .fail((d, status) -> { + managedDevices.remove(device); + bleManagers.remove(device); + }) + .enqueue(); + } + + /** + * Disconnects the given device and removes the associated BleManager object. + * If the list of BleManagers is empty while the last activity unbinds from the service, + * the service will stop itself. + * @param device target device to disconnect and forget + */ + public void disconnect(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + if (manager != null && manager.isConnected()) { + manager.disconnect().enqueue(); + } + managedDevices.remove(device); + } + + /** + * Returns true if the device is connected to the sensor. + * @param device the target device + * @return true if device is connected to the sensor, false otherwise + */ + public final boolean isConnected(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + return manager != null && manager.isConnected(); + } + + /** + * Returns true if the device has finished initializing. + * @param device the target device + * @return true if device is connected to the sensor and has finished + * initializing. False otherwise. + */ + public final boolean isReady(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + return manager != null && manager.isReady(); + } + + /** + * Returns the connection state of given device. + * @param device the target device + * @return the connection state, as in {@link BleManager#getConnectionState()}. + */ + @SuppressWarnings("unused") + public final int getConnectionState(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + return manager != null ? manager.getConnectionState() : BluetoothGatt.STATE_DISCONNECTED; + } + + /** + * Returns the last received battery level value. + * @param device the device of which battery level should be returned + * @return battery value or -1 if no value was received or Battery Level characteristic was not found + * @deprecated Keep battery value in your manager instead. + */ + @SuppressWarnings("deprecation") + @Deprecated + public int getBatteryValue(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + if (manager != null) + return manager.getBatteryValue(); + return 0; + } + + /** + * Sets whether the bound activity if changing configuration or not. + * If false, we will turn off battery level notifications in onUnbind(..) method below. + * @param changing true if the bound activity is finishing + */ + @SuppressWarnings("WeakerAccess") + public final void setActivityIsChangingConfiguration(final boolean changing) { + activityIsChangingConfiguration = changing; + } + + @Override + public void log(@NonNull final BluetoothDevice device, final int level, final String message) { + final BleManager manager = bleManagers.get(device); + if (manager != null) + manager.log(level, message); + } + + @Override + public void log(@NonNull final BluetoothDevice device, final int level, @StringRes final int messageRes, final Object... params) { + final BleManager manager = bleManagers.get(device); + if (manager != null) + manager.log(level, messageRes, params); + } + + @Override + public void log(final int level, @NonNull final String message) { + for (final BleManager manager : bleManagers.values()) + manager.log(level, message); + } + + @Override + public void log(final int level, @StringRes final int messageRes, final Object... params) { + for (final BleManager manager : bleManagers.values()) + manager.log(level, messageRes, params); + } + } + + /** + * Returns a handler that is created in onCreate(). + * The handler may be used to postpone execution of some operations or to run them in UI thread. + */ + protected Handler getHandler() { + return handler; + } + + /** + * This method returns whether autoConnect option should be used. + * + * @return true to use autoConnect feature, false (default) otherwise. + */ + protected boolean shouldAutoConnect() { + return false; + } + + /** + * Returns the binder implementation. This must return class implementing the additional manager interface that may be used in the bound activity. + * + * @return the service binder + */ + protected LocalBinder getBinder() { + // default implementation returns the basic binder. You can overwrite the LocalBinder with your own, wider implementation + return new LocalBinder(); + } + + @Override + public IBinder onBind(final Intent intent) { + bound = true; + return getBinder(); + } + + @Override + public final void onRebind(final Intent intent) { + bound = true; + + if (!activityIsChangingConfiguration) { + onRebind(); + } + } + + /** + * Called when the activity has rebound to the service after being recreated. + * This method is not called when the activity was killed to be recreated when the phone orientation changed + * if prior to being killed called {@link LocalBinder#setActivityIsChangingConfiguration(boolean)} with parameter true. + */ + protected void onRebind() { + // empty default implementation + } + + @Override + public final boolean onUnbind(final Intent intent) { + bound = false; + + if (!activityIsChangingConfiguration) { + if (!managedDevices.isEmpty()) { + onUnbind(); + } else { + // The last activity has disconnected from the service and there are no devices to manage. The service may be stopped. + stopSelf(); + } + } + + // We want the onRebind method be called if anything else binds to it again + return true; + } + + /** + * Called when the activity has unbound from the service before being finished. + * This method is not called when the activity is killed to be recreated when the phone orientation changed. + */ + protected void onUnbind() { + // empty default implementation + } + + @Override + public void onCreate() { + super.onCreate(); + + handler = new Handler(); + + // Initialize the map of BLE managers + bleManagers = new HashMap<>(); + managedDevices = new ArrayList<>(); + + // Register broadcast receivers + registerReceiver(bluetoothStateBroadcastReceiver, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED)); + + // Service has now been created + onServiceCreated(); + + // Call onBluetoothEnabled if Bluetooth enabled + final BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); + if (bluetoothAdapter.isEnabled()) { + onBluetoothEnabled(); + } + } + + /** + * Called when the service has been created, before the {@link #onBluetoothEnabled()} is called. + */ + protected void onServiceCreated() { + // empty default implementation + } + + /** + * Initializes the Ble Manager responsible for connecting to a single device. + * @return a new BleManager object + */ + @SuppressWarnings("rawtypes") + protected abstract LoggableBleManager initializeManager(); + + @Override + public int onStartCommand(final Intent intent, final int flags, final int startId) { + onServiceStarted(); + // The service does not save addresses of managed devices. + // A bound activity will be required to add connections again. + return START_NOT_STICKY; + } + + /** + * Called when the service has been started. + */ + protected void onServiceStarted() { + // empty default implementation + } + + @Override + public void onTaskRemoved(final Intent rootIntent) { + super.onTaskRemoved(rootIntent); + // This method is called when user removed the app from Recents. + // By default, the service will be killed and recreated immediately after that. + // However, all managed devices will be lost and devices will be disconnected. + stopSelf(); + } + + @Override + public void onDestroy() { + super.onDestroy(); + onServiceStopped(); + handler = null; + } + + /** + * Called when the service has been stopped. + */ + protected void onServiceStopped() { + // Unregister broadcast receivers + unregisterReceiver(bluetoothStateBroadcastReceiver); + + // The managers map may not be empty if the service was killed by the system + for (final BleManager manager : bleManagers.values()) { + // Service is being destroyed, no need to disconnect manually. + manager.close(); + manager.log(Log.INFO, "Service destroyed"); + } + bleManagers.clear(); + managedDevices.clear(); + bleManagers = null; + managedDevices = null; + } + + /** + * Method called when Bluetooth Adapter has been disabled. + */ + protected void onBluetoothDisabled() { + // do nothing, BleManagers have their own Bluetooth State broadcast received and will close themselves + } + + /** + * This method is called when Bluetooth Adapter has been enabled. It is also called + * after the service was created if Bluetooth Adapter was enabled at that moment. + * This method could initialize all Bluetooth related features, for example open the GATT server. + * Make sure you call super.onBluetoothEnabled() at this methods reconnects to + * devices that were connected before the Bluetooth was turned off. + */ + protected void onBluetoothEnabled() { + for (final BluetoothDevice device : managedDevices) { + final BleManager manager = bleManagers.get(device); + if (manager != null && !manager.isConnected()) + manager.connect(device).enqueue(); + } + } + + @Override + public void onDeviceConnecting(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_CONNECTING); + LocalBroadcastManager.getInstance(BleMulticonnectProfileService.this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceConnected(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_CONNECTED); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceDisconnecting(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_DISCONNECTING); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceDisconnected(@NonNull final BluetoothDevice device) { + // Note: if BleManager#shouldAutoConnect() for this device returned true, this callback will be + // invoked ONLY when user requested disconnection (using Disconnect button). If the device + // disconnects due to a link loss, the onLinkLossOccurred(BluetoothDevice) method will be called instead. + + // We no longer want to keep the device in the service + managedDevices.remove(device); + // The BleManager is not removed from the HashMap in order to keep the device's log session. + // bleManagers.remove(device); + + // Do not use the device argument here unless you change calling onDeviceDisconnected from the binder above + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_DISCONNECTED); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + + // When user disconnected the last device while the activity was not bound the service can be stopped + if (!bound && managedDevices.isEmpty()) { + stopSelf(); + } + } + + @Override + public void onLinkLossOccurred(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_CONNECTION_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_CONNECTION_STATE, STATE_LINK_LOSS); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onServicesDiscovered(@NonNull final BluetoothDevice device, final boolean optionalServicesFound) { + final Intent broadcast = new Intent(BROADCAST_SERVICES_DISCOVERED); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_SERVICE_PRIMARY, true); + broadcast.putExtra(EXTRA_SERVICE_SECONDARY, optionalServicesFound); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceReady(@NonNull final BluetoothDevice device) { + final Intent broadcast = new Intent(BROADCAST_DEVICE_READY); + broadcast.putExtra(EXTRA_DEVICE, device); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onDeviceNotSupported(@NonNull final BluetoothDevice device) { + // We don't like this device, remove it from both collections + managedDevices.remove(device); + bleManagers.remove(device); + + final Intent broadcast = new Intent(BROADCAST_SERVICES_DISCOVERED); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_SERVICE_PRIMARY, false); + broadcast.putExtra(EXTRA_SERVICE_SECONDARY, false); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + + // no need for disconnecting, it will be disconnected by the manager automatically + } + + @SuppressWarnings("deprecation") + @Override + public void onBatteryValueReceived(@NonNull final BluetoothDevice device, final int value) { + final Intent broadcast = new Intent(BROADCAST_BATTERY_LEVEL); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_BATTERY_LEVEL, value); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBondingRequired(@NonNull final BluetoothDevice device) { + showToast("bonding "); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_BONDING); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBonded(@NonNull final BluetoothDevice device) { + showToast(" bonded "); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_BONDED); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onBondingFailed(@NonNull final BluetoothDevice device) { + showToast(" bonding_failed "); + + final Intent broadcast = new Intent(BROADCAST_BOND_STATE); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + @Override + public void onError(@NonNull final BluetoothDevice device, @NonNull final String message, final int errorCode) { + final Intent broadcast = new Intent(BROADCAST_ERROR); + broadcast.putExtra(EXTRA_DEVICE, device); + broadcast.putExtra(EXTRA_ERROR_MESSAGE, message); + broadcast.putExtra(EXTRA_ERROR_CODE, errorCode); + LocalBroadcastManager.getInstance(this).sendBroadcast(broadcast); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId + * an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + handler.post(() -> Toast.makeText(BleMulticonnectProfileService.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message + * a message to be shown + */ + protected void showToast(final String message) { + handler.post(() -> Toast.makeText(BleMulticonnectProfileService.this, message, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns the {@link BleManager} object associated with given device, or null if such has not been created. + * To create a BleManager call the {@link LocalBinder#connect(BluetoothDevice)} method must be called. + * @param device the target device + * @return the BleManager or null + */ + protected BleManager getBleManager(final BluetoothDevice device) { + return bleManagers.get(device); + } + + /** + * Returns unmodifiable list of all managed devices. They don't have to be connected at the moment. + * @return list of managed devices + */ + protected List getManagedDevices() { + return Collections.unmodifiableList(managedDevices); + } + + /** + * Returns a list of those managed devices that are connected at the moment. + * @return list of connected devices + */ + protected List getConnectedDevices() { + final List list = new ArrayList<>(); + for (BluetoothDevice device : managedDevices) { + final BleManager manager = bleManagers.get(device); + if (manager != null && manager.isConnected()) + list.add(device); + } + return Collections.unmodifiableList(list); + } + + /** + * Returns true if the device is connected to the sensor. + * @param device the target device + * @return true if device is connected to the sensor, false otherwise + */ + protected boolean isConnected(final BluetoothDevice device) { + final BleManager manager = bleManagers.get(device); + return manager != null && manager.isConnected(); + } +} \ No newline at end of file diff --git a/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileServiceReadyActivity.java b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileServiceReadyActivity.java new file mode 100644 index 0000000..da6903d --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/BleMulticonnectProfileServiceReadyActivity.java @@ -0,0 +1,502 @@ +package no.Reader.android.iisc.profile.multiconnect; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.ServiceConnection; +import android.content.pm.PackageManager; +import android.net.Uri; +import android.os.Bundle; +import android.os.IBinder; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.widget.Toolbar; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.UUID; + +import no.nordicsemi.android.ble.BleManagerCallbacks; +import no.nordicsemi.android.log.ILogSession; +import no.nordicsemi.android.log.LocalLogSession; +import no.nordicsemi.android.log.Logger; +import no.Reader.android.iisc.R; +import no.Reader.android.iisc.scanner.ScannerFragment; +import no.Reader.android.iisc.DebugLogger; + +/** + *

+ * The {@link BleMulticonnectProfileServiceReadyActivity} activity is designed to be the base class for profile activities that uses services in order to connect + * more than one device at the same time. A service extending {@link BleMulticonnectProfileService} is created when the activity is created, and the activity binds to it. + * The service returns a binder that may be used to connect, disconnect or manage devices, and notifies the + * activity using Local Broadcasts ({@link LocalBroadcastManager}). See {@link BleMulticonnectProfileService} for messages. If the device is not in range it will listen for + * it and connect when it become visible. The service exists until all managed devices have been disconnected and unmanaged and the last activity unbinds from it. + *

+ *

+ * When user closes the activity (e.g. by pressing Back button) while being connected, the Service remains working. It's remains connected to the devices or still + * listens for updates from them. When entering back to the activity, activity will to bind to the service and refresh UI. + *

+ */ +public abstract class BleMulticonnectProfileServiceReadyActivity extends AppCompatActivity implements + ScannerFragment.OnDeviceSelectedListener, BleManagerCallbacks { + private static final String TAG = "BleMulticonnectProfileServiceReadyActivity"; + + protected static final int REQUEST_ENABLE_BT = 2; + + private E mService; + private List mManagedDevices; + + private final BroadcastReceiver mCommonBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(final Context context, final Intent intent) { + final BluetoothDevice bluetoothDevice = intent.getParcelableExtra(BleMulticonnectProfileService.EXTRA_DEVICE); + final String action = intent.getAction(); + switch (action) { + case BleMulticonnectProfileService.BROADCAST_CONNECTION_STATE: { + final int state = intent.getIntExtra(BleMulticonnectProfileService.EXTRA_CONNECTION_STATE, BleMulticonnectProfileService.STATE_DISCONNECTED); + + switch (state) { + case BleMulticonnectProfileService.STATE_CONNECTED: { + onDeviceConnected(bluetoothDevice); + break; + } + case BleMulticonnectProfileService.STATE_DISCONNECTED: { + onDeviceDisconnected(bluetoothDevice); + break; + } + case BleMulticonnectProfileService.STATE_LINK_LOSS: { + onLinkLossOccurred(bluetoothDevice); + break; + } + case BleMulticonnectProfileService.STATE_CONNECTING: { + onDeviceConnecting(bluetoothDevice); + break; + } + case BleMulticonnectProfileService.STATE_DISCONNECTING: { + onDeviceDisconnecting(bluetoothDevice); + break; + } + default: + // there should be no other actions + break; + } + break; + } + case BleMulticonnectProfileService.BROADCAST_SERVICES_DISCOVERED: { + final boolean primaryService = intent.getBooleanExtra(BleMulticonnectProfileService.EXTRA_SERVICE_PRIMARY, false); + final boolean secondaryService = intent.getBooleanExtra(BleMulticonnectProfileService.EXTRA_SERVICE_SECONDARY, false); + + if (primaryService) { + onServicesDiscovered(bluetoothDevice, secondaryService); + } else { + onDeviceNotSupported(bluetoothDevice); + } + break; + } + case BleMulticonnectProfileService.BROADCAST_DEVICE_READY: { + onDeviceReady(bluetoothDevice); + break; + } + case BleMulticonnectProfileService.BROADCAST_BOND_STATE: { + final int state = intent.getIntExtra(BleMulticonnectProfileService.EXTRA_BOND_STATE, BluetoothDevice.BOND_NONE); + switch (state) { + case BluetoothDevice.BOND_BONDING: + onBondingRequired(bluetoothDevice); + break; + case BluetoothDevice.BOND_BONDED: + onBonded(bluetoothDevice); + break; + } + break; + } + case BleMulticonnectProfileService.BROADCAST_BATTERY_LEVEL: { + final int value = intent.getIntExtra(BleMulticonnectProfileService.EXTRA_BATTERY_LEVEL, -1); + if (value > 0) + onBatteryValueReceived(bluetoothDevice, value); + break; + } + case BleMulticonnectProfileService.BROADCAST_ERROR: { + final String message = intent.getStringExtra(BleMulticonnectProfileService.EXTRA_ERROR_MESSAGE); + final int errorCode = intent.getIntExtra(BleMulticonnectProfileService.EXTRA_ERROR_CODE, 0); + onError(bluetoothDevice, message, errorCode); + break; + } + } + } + }; + + private ServiceConnection mServiceConnection = new ServiceConnection() { + @SuppressWarnings("unchecked") + @Override + public void onServiceConnected(final ComponentName name, final IBinder service) { + final E bleService = mService = (E) service; + bleService.log(Log.DEBUG, "Activity bound to the service"); + mManagedDevices.addAll(bleService.getManagedDevices()); + onServiceBound(bleService); + + // and notify user if device is connected + for (final BluetoothDevice device : mManagedDevices) { + if (bleService.isConnected(device)) + onDeviceConnected(device); + } + } + + @Override + public void onServiceDisconnected(final ComponentName name) { + mService = null; + onServiceUnbound(); + } + }; + + @Override + protected final void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + mManagedDevices = new ArrayList<>(); + + ensureBLESupported(); + if (!isBLEEnabled()) { + showBLEDialog(); + } + + // In onInitialize method a final class may register local broadcast receivers that will listen for events from the service + onInitialize(savedInstanceState); + // The onCreateView class should... create the view + onCreateView(savedInstanceState); + + final Toolbar toolbar = findViewById(R.id.toolbar_actionbar); + setSupportActionBar(toolbar); + + // Common nRF Toolbox view references are obtained here + setUpView(); + // View is ready to be used + onViewCreated(savedInstanceState); + + LocalBroadcastManager.getInstance(this).registerReceiver(mCommonBroadcastReceiver, makeIntentFilter()); + } + + @Override + protected void onStart() { + super.onStart(); + + /* + * In comparison to BleProfileServiceReadyActivity this activity always starts the service when started. + * Connecting to a device is done by calling mService.connect(BluetoothDevice) method, not startService(...) like there. + * The service will stop itself when all devices it manages were disconnected and unmanaged and the last activity unbinds from it. + */ + final Intent service = new Intent(this, getServiceClass()); + startService(service); + bindService(service, mServiceConnection, 0); + } + + @Override + protected void onStop() { + super.onStop(); + + if (mService != null) { + // We don't want to perform some operations (e.g. disable Battery Level notifications) in the service if we are just rotating the screen. + // However, when the activity will disappear, we may want to disable some device features to reduce the battery consumption. + mService.setActivityIsChangingConfiguration(isChangingConfigurations()); + // Log it here as there is no callback when the service gets unbound + // and the mService will not be available later (the activity doesn't keep log sessions) + mService.log(Log.DEBUG, "Activity unbound from the service"); + } + + unbindService(mServiceConnection); + mService = null; + + onServiceUnbound(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + + LocalBroadcastManager.getInstance(this).unregisterReceiver(mCommonBroadcastReceiver); + } + + private static IntentFilter makeIntentFilter() { + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_CONNECTION_STATE); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_SERVICES_DISCOVERED); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_DEVICE_READY); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_BOND_STATE); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_BATTERY_LEVEL); + intentFilter.addAction(BleMulticonnectProfileService.BROADCAST_ERROR); + return intentFilter; + } + + /** + * Called when activity binds to the service. The parameter is the object returned in {@link Service#onBind(Intent)} method in your service. + * It is safe to obtain managed devices now. + */ + protected abstract void onServiceBound(E binder); + + /** + * Called when activity unbinds from the service. You may no longer use this binder methods. + */ + protected abstract void onServiceUnbound(); + + /** + * Returns the service class for sensor communication. The service class must derive from {@link BleMulticonnectProfileService} in order to operate with this class. + * + * @return the service class + */ + protected abstract Class getServiceClass(); + + /** + * Returns the service interface that may be used to communicate with the sensor. This will return null if the device is disconnected from the + * sensor. + * + * @return the service binder or null + */ + protected E getService() { + return mService; + } + + /** + * You may do some initialization here. This method is called from {@link #onCreate(Bundle)} before the view was created. + */ + protected void onInitialize(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called from {@link #onCreate(Bundle)}. This method should build the activity UI, i.e. using {@link #setContentView(int)}. + * Use to obtain references to views. Connect/Disconnect button and the device name view are manager automatically. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected abstract void onCreateView(final Bundle savedInstanceState); + + /** + * Called after the view has been created. + * + * @param savedInstanceState contains the data it most recently supplied in {@link #onSaveInstanceState(Bundle)}. + * Note: Otherwise it is null. + */ + protected void onViewCreated(final Bundle savedInstanceState) { + // empty default implementation + } + + /** + * Called after the view and the toolbar has been created. + */ + protected final void setUpView() { + // set GUI + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + } + + + /** + * Use this method to handle menu actions other than home and about. + * + * @param itemId the menu item id + * @return true if action has been handled + */ + + + + + /** + * Called when user press ADD DEVICE button. See layout files -> onClick attribute. + */ + public void onAddDeviceClicked(final View view) { + if (isBLEEnabled()) { + showDeviceScanningDialog(getFilterUUID()); + } else { + showBLEDialog(); + } + } + + /** + * Returns the title resource id that will be used to create logger session. If 0 is returned (default) logger will not be used. + * + * @return the title resource id + */ + protected int getLoggerProfileTitle() { + return 0; + } + + /** + * This method may return the local log content provider authority if local log sessions are supported. + * + * @return local log session content provider URI + */ + protected Uri getLocalAuthorityLogger() { + return null; + } + + @Override + public void onDeviceSelected(final BluetoothDevice device, final String name) { + final int titleId = getLoggerProfileTitle(); + ILogSession logSession = null; + if (titleId > 0) { + logSession = Logger.newSession(getApplicationContext(), getString(titleId), device.getAddress(), name); + // If nRF Logger is not installed we may want to use local logger + if (logSession == null && getLocalAuthorityLogger() != null) { + logSession = LocalLogSession.newSession(getApplicationContext(), getLocalAuthorityLogger(), device.getAddress(), name); + } + } + + mService.connect(device, logSession); + } + + @Override + public void onDialogCanceled() { + // do nothing + } + + @Override + public void onDeviceConnecting(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onDeviceDisconnecting(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onLinkLossOccurred(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onServicesDiscovered(final BluetoothDevice device, final boolean optionalServicesFound) { + // empty default implementation + } + + @Override + public void onDeviceReady(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingRequired(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBonded(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onBondingFailed(final BluetoothDevice device) { + // empty default implementation + } + + @Override + public void onDeviceNotSupported(final BluetoothDevice device) { + showToast(R.string.not_supported); + } + + @Override + public final boolean shouldEnableBatteryLevelNotifications(final BluetoothDevice device) { + // This method will never be called. + // Please see BleMulticonnectProfileService#shouldEnableBatteryLevelNotifications(BluetoothDevice) instead. + throw new UnsupportedOperationException("This method should not be called"); + } + + @Override + public void onBatteryValueReceived(final BluetoothDevice device, final int value) { + // empty default implementation + } + + @Override + public void onError(final BluetoothDevice device, final String message, final int errorCode) { + DebugLogger.e(TAG, "Error occurred: " + message + ", error code: " + errorCode); + showToast(message + " (" + errorCode + ")"); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param message a message to be shown + */ + protected void showToast(final String message) { + runOnUiThread(() -> Toast.makeText(BleMulticonnectProfileServiceReadyActivity.this, message, Toast.LENGTH_LONG).show()); + } + + /** + * Shows a message as a Toast notification. This method is thread safe, you can call it from any thread + * + * @param messageResId an resource id of the message to be shown + */ + protected void showToast(final int messageResId) { + runOnUiThread(() -> Toast.makeText(BleMulticonnectProfileServiceReadyActivity.this, messageResId, Toast.LENGTH_SHORT).show()); + } + + /** + * Returns the string resource id that will be shown in About box + * + * @return the about resource id + */ + protected abstract int getAboutTextId(); + + /** + * The UUID filter is used to filter out available devices that does not have such UUID in their advertisement packet. See also: + * {@link #isChangingConfigurations()}. + * + * @return the required UUID or null + */ + protected abstract UUID getFilterUUID(); + + /** + * Returns unmodifiable list of managed devices. Managed device is a device the was selected on ScannerFragment until it's removed from the managed list. + * It does not have to be connected at that moment. + * @return unmodifiable list of managed devices + */ + protected List getManagedDevices() { + return Collections.unmodifiableList(mManagedDevices); + } + + /** + * Returns true if the device is connected. Services may not have been discovered yet. + * @param device the device to check if it's connected + */ + protected boolean isDeviceConnected(final BluetoothDevice device) { + return mService != null && mService.isConnected(device); + } + + /** + * Shows the scanner fragment. + * + * @param filter the UUID filter used to filter out available devices. The fragment will always show all bonded devices as there is no information about their + * services + * @see #getFilterUUID() + */ + private void showDeviceScanningDialog(final UUID filter) { + final ScannerFragment dialog = ScannerFragment.getInstance(filter); + dialog.show(getSupportFragmentManager(), "scan_fragment"); + } + + private void ensureBLESupported() { + if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { + Toast.makeText(this, R.string.no_ble, Toast.LENGTH_LONG).show(); + finish(); + } + } + + protected boolean isBLEEnabled() { + final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); + final BluetoothAdapter adapter = bluetoothManager.getAdapter(); + return adapter != null && adapter.isEnabled(); + } + + protected void showBLEDialog() { + final Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); + startActivityForResult(enableIntent, REQUEST_ENABLE_BT); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/IDeviceLogger.java b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/IDeviceLogger.java new file mode 100644 index 0000000..2a67f5f --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/profile/multiconnect/IDeviceLogger.java @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2016, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package no.Reader.android.iisc.profile.multiconnect; + +import android.bluetooth.BluetoothDevice; +import androidx.annotation.StringRes; + +public interface IDeviceLogger { + /** + * Logs the given message with given log level into the device's log session. + * @param device the target device + * @param level the log level + * @param message the message to be logged + */ + void log(final BluetoothDevice device, final int level, final String message); + + /** + * Logs the given message with given log level into the device's log session. + * @param device the target device + * @param level the log level + * @param messageRes string resource id + * @param params additional (optional) parameters used to fill the message + */ + void log(final BluetoothDevice device, final int level, @StringRes final int messageRes, final Object... params); +} diff --git a/app/src/main/java/no/Reader/android/iisc/scanner/DeviceListAdapter.java b/app/src/main/java/no/Reader/android/iisc/scanner/DeviceListAdapter.java new file mode 100644 index 0000000..f158c24 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/scanner/DeviceListAdapter.java @@ -0,0 +1,193 @@ +package no.Reader.android.iisc.scanner; + +import android.bluetooth.BluetoothDevice; +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import no.nordicsemi.android.support.v18.scanner.ScanResult; +import no.Reader.android.iisc.R; + +/** + * DeviceListAdapter class is list adapter for showing scanned Devices name, address and RSSI image based on RSSI values. + */ +public class DeviceListAdapter extends BaseAdapter { + private static final int TYPE_TITLE = 0; + private static final int TYPE_ITEM = 1; + private static final int TYPE_EMPTY = 2; + + private final ArrayList mListBondedValues = new ArrayList<>(); + private final ArrayList mListValues = new ArrayList<>(); + private final Context mContext; + + public DeviceListAdapter(final Context context) { + mContext = context; + } + + /** + * Sets a list of bonded devices. + * @param devices list of bonded devices. + */ + public void addBondedDevices(final Set devices) { + final List bondedDevices = mListBondedValues; + for (BluetoothDevice device : devices) { + bondedDevices.add(new ExtendedBluetoothDevice(device)); + } + notifyDataSetChanged(); + } + + /** + * Updates the list of not bonded devices. + * @param results list of results from the scanner + */ + public void update(final List results) { + for (final ScanResult result : results) { + final ExtendedBluetoothDevice device = findDevice(result); + if (device == null) { + mListValues.add(new ExtendedBluetoothDevice(result)); + } else { + device.name = result.getScanRecord() != null ? result.getScanRecord().getDeviceName() : null; + device.rssi = result.getRssi(); + } + } + notifyDataSetChanged(); + } + + private ExtendedBluetoothDevice findDevice(final ScanResult result) { + for (final ExtendedBluetoothDevice device : mListBondedValues) + if (device.matches(result)) + return device; + for (final ExtendedBluetoothDevice device : mListValues) + if (device.matches(result)) + return device; + return null; + } + + public void clearDevices() { + mListValues.clear(); + notifyDataSetChanged(); + } + + @Override + public int getCount() { + final int bondedCount = mListBondedValues.size() + 1; // 1 for the title + final int availableCount = mListValues.isEmpty() ? 2 : mListValues.size() + 1; // 1 for title, 1 for empty text + if (bondedCount == 1) + return availableCount; + return bondedCount + availableCount; + } + + @Override + public Object getItem(int position) { + final int bondedCount = mListBondedValues.size() + 1; // 1 for the title + if (mListBondedValues.isEmpty()) { + if (position == 0) + return R.string.scanner_subtitle_not_bonded; + else + return mListValues.get(position - 1); + } else { + if (position == 0) + return R.string.scanner_subtitle_bonded; + if (position < bondedCount) + return mListBondedValues.get(position - 1); + if (position == bondedCount) + return R.string.scanner_subtitle_not_bonded; + return mListValues.get(position - bondedCount - 1); + } + } + + @Override + public int getViewTypeCount() { + return 3; + } + + @Override + public boolean areAllItemsEnabled() { + return false; + } + + @Override + public boolean isEnabled(int position) { + return getItemViewType(position) == TYPE_ITEM; + } + + @Override + public int getItemViewType(int position) { + if (position == 0) + return TYPE_TITLE; + + if (!mListBondedValues.isEmpty() && position == mListBondedValues.size() + 1) + return TYPE_TITLE; + + if (position == getCount() - 1 && mListValues.isEmpty()) + return TYPE_EMPTY; + + return TYPE_ITEM; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View oldView, ViewGroup parent) { + final LayoutInflater inflater = LayoutInflater.from(mContext); + final int type = getItemViewType(position); + + View view = oldView; + switch (type) { + case TYPE_EMPTY: + if (view == null) { + view = inflater.inflate(R.layout.device_list_empty, parent, false); + } + break; + case TYPE_TITLE: + if (view == null) { + view = inflater.inflate(R.layout.device_list_title, parent, false); + } + final TextView title = (TextView) view; + title.setText((Integer) getItem(position)); + break; + default: + if (view == null) { + view = inflater.inflate(R.layout.device_list_row, parent, false); + final ViewHolder holder = new ViewHolder(); + holder.name = view.findViewById(R.id.name); + holder.address = view.findViewById(R.id.address); + holder.rssi = view.findViewById(R.id.rssi); + view.setTag(holder); + } + + final ExtendedBluetoothDevice device = (ExtendedBluetoothDevice) getItem(position); + final ViewHolder holder = (ViewHolder) view.getTag(); + final String name = device.name; + holder.name.setText(name != null ? name : mContext.getString(R.string.not_available)); + holder.address.setText(device.device.getAddress()); + if (!device.isBonded || device.rssi != ExtendedBluetoothDevice.NO_RSSI) { + final int rssiPercent = (int) (100.0f * (127.0f + device.rssi) / (127.0f + 20.0f)); + holder.rssi.setImageLevel(rssiPercent); + holder.rssi.setVisibility(View.VISIBLE); + } else { + holder.rssi.setVisibility(View.GONE); + } + break; + } + + return view; + } + + private class ViewHolder { + private TextView name; + private TextView address; + private ImageView rssi; + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/scanner/ExtendedBluetoothDevice.java b/app/src/main/java/no/Reader/android/iisc/scanner/ExtendedBluetoothDevice.java new file mode 100644 index 0000000..2fd873e --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/scanner/ExtendedBluetoothDevice.java @@ -0,0 +1,32 @@ +package no.Reader.android.iisc.scanner; + +import android.bluetooth.BluetoothDevice; + +import no.nordicsemi.android.support.v18.scanner.ScanResult; + +public class ExtendedBluetoothDevice { + /* package */ static final int NO_RSSI = -1000; + public final BluetoothDevice device; + /** The name is not parsed by some Android devices, f.e. Sony Xperia Z1 with Android 4.3 (C6903). It needs to be parsed manually. */ + public String name; + public int rssi; + public boolean isBonded; + + public ExtendedBluetoothDevice(final ScanResult scanResult) { + this.device = scanResult.getDevice(); + this.name = scanResult.getScanRecord() != null ? scanResult.getScanRecord().getDeviceName() : null; + this.rssi = scanResult.getRssi(); + this.isBonded = false; + } + + public ExtendedBluetoothDevice(final BluetoothDevice device) { + this.device = device; + this.name = device.getName(); + this.rssi = NO_RSSI; + this.isBonded = true; + } + + public boolean matches(final ScanResult scanResult) { + return device.getAddress().equals(scanResult.getDevice().getAddress()); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/scanner/ScannerFragment.java b/app/src/main/java/no/Reader/android/iisc/scanner/ScannerFragment.java new file mode 100644 index 0000000..7d5bf5d --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/scanner/ScannerFragment.java @@ -0,0 +1,268 @@ +package no.Reader.android.iisc.scanner; + +import android.Manifest; +import android.app.Dialog; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothManager; +import android.content.Context; +import android.content.DialogInterface; +import android.content.pm.PackageManager; +import android.os.Bundle; +import android.os.Handler; +import android.os.ParcelUuid; +import androidx.annotation.NonNull; +import androidx.core.app.ActivityCompat; +import androidx.fragment.app.DialogFragment; +import androidx.core.content.ContextCompat; +import androidx.appcompat.app.AlertDialog; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.ListView; +import android.widget.Toast; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.UUID; + +import no.nordicsemi.android.support.v18.scanner.BluetoothLeScannerCompat; +import no.nordicsemi.android.support.v18.scanner.ScanCallback; +import no.nordicsemi.android.support.v18.scanner.ScanFilter; +import no.nordicsemi.android.support.v18.scanner.ScanResult; +import no.nordicsemi.android.support.v18.scanner.ScanSettings; +import no.Reader.android.iisc.R; + +/** + * ScannerFragment class scan required BLE devices and shows them in a list. This class scans and filter + * devices with standard BLE Service UUID and devices with custom BLE Service UUID. It contains a + * list and a button to scan/cancel. There is a interface {@link OnDeviceSelectedListener} which is + * implemented by activity in order to receive selected device. The scanning will continue to scan + * for 5 seconds and then stop. + */ +public class ScannerFragment extends DialogFragment { + private final static String TAG = "ScannerFragment"; + + private final static String PARAM_UUID = "param_uuid"; + private final static long SCAN_DURATION = 5000; + + private final static int REQUEST_PERMISSION_REQ_CODE = 34; // any 8-bit number + + private BluetoothAdapter mBluetoothAdapter; + private OnDeviceSelectedListener mListener; + private DeviceListAdapter mAdapter; + private final Handler mHandler = new Handler(); + private Button mScanButton; + + private View mPermissionRationale; + + private ParcelUuid mUuid; + + private boolean mIsScanning = false; + + public static ScannerFragment getInstance(final UUID uuid) { + final ScannerFragment fragment = new ScannerFragment(); + + final Bundle args = new Bundle(); + if (uuid != null) + args.putParcelable(PARAM_UUID, new ParcelUuid(uuid)); + fragment.setArguments(args); + return fragment; + } + + /** + * Interface required to be implemented by activity. + */ + public interface OnDeviceSelectedListener { + /** + * Fired when user selected the device. + * + * @param device + * the device to connect to + * @param name + * the device name. Unfortunately on some devices {@link BluetoothDevice#getName()} + * always returns null, i.e. Sony Xperia Z1 (C6903) with Android 4.3. + * The name has to be parsed manually form the Advertisement packet. + */ + void onDeviceSelected(final BluetoothDevice device, final String name); + + /** + * Fired when scanner dialog has been cancelled without selecting a device. + */ + void onDialogCanceled(); + } + + /** + * This will make sure that {@link OnDeviceSelectedListener} interface is implemented by activity. + */ + @Override + public void onAttach(final Context context) { + super.onAttach(context); + try { + this.mListener = (OnDeviceSelectedListener) context; + } catch (final ClassCastException e) { + throw new ClassCastException(context.toString() + " must implement OnDeviceSelectedListener"); + } + } + + @Override + public void onCreate(final Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final Bundle args = getArguments(); + if (args != null && args.containsKey(PARAM_UUID)) { + mUuid = args.getParcelable(PARAM_UUID); + } + + final BluetoothManager manager = (BluetoothManager) requireContext().getSystemService(Context.BLUETOOTH_SERVICE); + if (manager != null) { + mBluetoothAdapter = manager.getAdapter(); + } + } + + @Override + public void onDestroyView() { + stopScan(); + super.onDestroyView(); + } + + @NonNull + @Override + public Dialog onCreateDialog(final Bundle savedInstanceState) { + final AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()); + final View dialogView = LayoutInflater.from(getActivity()).inflate(R.layout.fragment_device_selection, null); + final ListView listview = dialogView.findViewById(android.R.id.list); + + listview.setEmptyView(dialogView.findViewById(android.R.id.empty)); + listview.setAdapter(mAdapter = new DeviceListAdapter(getActivity())); + + builder.setTitle(R.string.scanner_title); + final AlertDialog dialog = builder.setView(dialogView).create(); + listview.setOnItemClickListener((parent, view, position, id) -> { + stopScan(); + dialog.dismiss(); + final ExtendedBluetoothDevice d = (ExtendedBluetoothDevice) mAdapter.getItem(position); + mListener.onDeviceSelected(d.device, d.name); + }); + + mPermissionRationale = dialogView.findViewById(R.id.permission_rationale); // this is not null only on API23+ + + mScanButton = dialogView.findViewById(R.id.action_cancel); + mScanButton.setOnClickListener(v -> { + if (v.getId() == R.id.action_cancel) { + if (mIsScanning) { + dialog.cancel(); + } else { + startScan(); + } + } + }); + + addBoundDevices(); + if (savedInstanceState == null) + startScan(); + return dialog; + } + + @Override + public void onCancel(DialogInterface dialog) { + super.onCancel(dialog); + + mListener.onDialogCanceled(); + } + + @Override + public void onRequestPermissionsResult(final int requestCode, final @NonNull String[] permissions, final @NonNull int[] grantResults) { + switch (requestCode) { + case REQUEST_PERMISSION_REQ_CODE: { + if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { + // We have been granted the Manifest.permission.ACCESS_COARSE_LOCATION permission. Now we may proceed with scanning. + startScan(); + } else { + mPermissionRationale.setVisibility(View.VISIBLE); + Toast.makeText(getActivity(), R.string.no_required_permission, Toast.LENGTH_SHORT).show(); + } + break; + } + } + } + + /** + * Scan for 5 seconds and then stop scanning when a BluetoothLE device is found then mLEScanCallback + * is activated This will perform regular scan for custom BLE Service UUID and then filter out. + * using class ScannerServiceParser + */ + private void startScan() { + // Since Android 6.0 we need to obtain either Manifest.permission.ACCESS_COARSE_LOCATION or Manifest.permission.ACCESS_FINE_LOCATION to be able to scan for + // Bluetooth LE devices. This is related to beacons as proximity devices. + // On API older than Marshmallow the following code does nothing. + if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) { + // When user pressed Deny and still wants to use this functionality, show the rationale + if (ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.ACCESS_COARSE_LOCATION) && mPermissionRationale.getVisibility() == View.GONE) { + mPermissionRationale.setVisibility(View.VISIBLE); + return; + } + + requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_PERMISSION_REQ_CODE); + return; + } + + // Hide the rationale message, we don't need it anymore. + if (mPermissionRationale != null) + mPermissionRationale.setVisibility(View.GONE); + + mAdapter.clearDevices(); + mScanButton.setText(R.string.scanner_action_cancel); + + final BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); + final ScanSettings settings = new ScanSettings.Builder() + .setLegacy(false) + .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY).setReportDelay(1000).setUseHardwareBatchingIfSupported(false).build(); + final List filters = new ArrayList<>(); + filters.add(new ScanFilter.Builder().setServiceUuid(mUuid).build()); + scanner.startScan(filters, settings, scanCallback); + mIsScanning = true; + mHandler.postDelayed(() -> { + if (mIsScanning) { + stopScan(); + } + }, SCAN_DURATION); + } + + /** + * Stop scan if user tap Cancel button + */ + private void stopScan() { + if (mIsScanning) { + mScanButton.setText(R.string.scanner_action_scan); + + final BluetoothLeScannerCompat scanner = BluetoothLeScannerCompat.getScanner(); + scanner.stopScan(scanCallback); + + mIsScanning = false; + } + } + + private ScanCallback scanCallback = new ScanCallback() { + @Override + public void onScanResult(final int callbackType, final ScanResult result) { + // do nothing + } + + @Override + public void onBatchScanResults(final List results) { + mAdapter.update(results); + } + + @Override + public void onScanFailed(final int errorCode) { + // should never be called + } + }; + + private void addBoundDevices() { + final Set devices = mBluetoothAdapter.getBondedDevices(); + mAdapter.addBondedDevices(devices); + } +} diff --git a/app/src/main/java/no/Reader/android/iisc/widget/ForegroundRelativeLayout.java b/app/src/main/java/no/Reader/android/iisc/widget/ForegroundRelativeLayout.java new file mode 100644 index 0000000..d86bcf3 --- /dev/null +++ b/app/src/main/java/no/Reader/android/iisc/widget/ForegroundRelativeLayout.java @@ -0,0 +1,149 @@ +/************************************************************************************************************************************************* + * Copyright (c) 2015, Nordic Semiconductor + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE + * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + ************************************************************************************************************************************************/ + +package no.Reader.android.iisc.widget; + +import android.annotation.TargetApi; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.NinePatchDrawable; +import android.os.Build; +import androidx.annotation.NonNull; +import android.util.AttributeSet; +import android.widget.RelativeLayout; + +import no.Reader.android.iisc.R; + + +public class ForegroundRelativeLayout extends RelativeLayout { + + private Drawable mForegroundSelector; + private Rect mRectPadding; + private boolean mUseBackgroundPadding = false; + + public ForegroundRelativeLayout(Context context) { + super(context); + } + + public ForegroundRelativeLayout(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public ForegroundRelativeLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + + TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ForegroundRelativeLayout, + defStyle, 0); + + final Drawable d = a.getDrawable(R.styleable.ForegroundRelativeLayout_foreground); + if (d != null) { + setForeground(d); + } + + a.recycle(); + + if (this.getBackground() instanceof NinePatchDrawable) { + final NinePatchDrawable npd = (NinePatchDrawable) this.getBackground(); + mRectPadding = new Rect(); + if (npd.getPadding(mRectPadding)) { + mUseBackgroundPadding = true; + } + } + } + + @Override + protected void drawableStateChanged() { + super.drawableStateChanged(); + + if (mForegroundSelector != null && mForegroundSelector.isStateful()) { + mForegroundSelector.setState(getDrawableState()); + } + } + + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + if (mForegroundSelector != null) { + if (mUseBackgroundPadding) { + mForegroundSelector.setBounds(mRectPadding.left, mRectPadding.top, w - mRectPadding.right, h - mRectPadding.bottom); + } else { + mForegroundSelector.setBounds(0, 0, w, h); + } + } + } + + @Override + protected void dispatchDraw(@NonNull Canvas canvas) { + super.dispatchDraw(canvas); + + if (mForegroundSelector != null) { + mForegroundSelector.draw(canvas); + } + } + + @Override + protected boolean verifyDrawable(Drawable who) { + return super.verifyDrawable(who) || (who == mForegroundSelector); + } + + @Override + public void jumpDrawablesToCurrentState() { + super.jumpDrawablesToCurrentState(); + if (mForegroundSelector != null) mForegroundSelector.jumpToCurrentState(); + } + + public void setForeground(Drawable drawable) { + if (mForegroundSelector != drawable) { + if (mForegroundSelector != null) { + mForegroundSelector.setCallback(null); + unscheduleDrawable(mForegroundSelector); + } + + mForegroundSelector = drawable; + + if (drawable != null) { + setWillNotDraw(false); + drawable.setCallback(this); + if (drawable.isStateful()) { + drawable.setState(getDrawableState()); + } + } else { + setWillNotDraw(true); + } + requestLayout(); + invalidate(); + } + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + @Override + public void drawableHotspotChanged(float x, float y) { + super.drawableHotspotChanged(x, y); + if (mForegroundSelector != null) { + mForegroundSelector.setHotspot(x, y); + } + } +} \ No newline at end of file diff --git a/app/src/main/res/anim/bottom_animation.xml b/app/src/main/res/anim/bottom_animation.xml new file mode 100644 index 0000000..7cd1b21 --- /dev/null +++ b/app/src/main/res/anim/bottom_animation.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/button_animation.xml b/app/src/main/res/anim/button_animation.xml new file mode 100644 index 0000000..9eed840 --- /dev/null +++ b/app/src/main/res/anim/button_animation.xml @@ -0,0 +1,16 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/top_animation.xml b/app/src/main/res/anim/top_animation.xml new file mode 100644 index 0000000..a3fa2d9 --- /dev/null +++ b/app/src/main/res/anim/top_animation.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/color/button_color.xml b/app/src/main/res/color/button_color.xml new file mode 100644 index 0000000..2c87a8e --- /dev/null +++ b/app/src/main/res/color/button_color.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/color/menu_text.xml b/app/src/main/res/color/menu_text.xml new file mode 100644 index 0000000..c6d777f --- /dev/null +++ b/app/src/main/res/color/menu_text.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/app/src/main/res/drawable-hdpi/battery.png b/app/src/main/res/drawable-hdpi/battery.png new file mode 100644 index 0000000000000000000000000000000000000000..dd83f9bbaa1b65990f0f0427ff2480e51ac8957c GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^-axF(!3HGny!?I_NJ*BsMwA5SrSV zY-i5tcblKO;aZ|-w~<_ZWv|=i+4Adu+C^lZU1nTa_e%Yk->T4SI${+-P24&_1gFd7 z&ugTe~DWM4f=|ZPt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/download.png b/app/src/main/res/drawable-hdpi/download.png new file mode 100644 index 0000000000000000000000000000000000000000..eccc9fb5269aa8272628f69d6e7e57090f97976f GIT binary patch literal 15904 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/finalback.png b/app/src/main/res/drawable-hdpi/finalback.png new file mode 100644 index 0000000000000000000000000000000000000000..59faa8cf0bc67d2f0d73a52c7569ab5bd5ee58dc GIT binary patch literal 332910 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≤^U4Y6 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_action_bluetooth.png b/app/src/main/res/drawable-hdpi/ic_action_bluetooth.png new file mode 100644 index 0000000000000000000000000000000000000000..fce1884000fa1d0de6e62c4636eeef661db5697d GIT binary patch literal 307 zcmV-30nGl1P)p?u0f@f35ayHFg(3nPuC6#9y!m@@)cN})aPQ4|%eZfJj~->mV(A(iT= z-1IZ!Lsu4|RA(vkM-v8}?cHRAQaxJ$c82MK8KrvNcmd$kk6apMM?51U;zR}iO5{=L zOfl%s(F#Q&C z;<3nw4qsL(^Qc7;G+ln=WMHLMXDT6Pdzqk}>hWP_gj##lYXEbVvNO&(N6f~fLKu(A zf)NjDLzS3t>VgTQ6!WXTR!T7`vtsK>%~XkrPE|{Erq+$9GNU_NEp0vJGyf0|>{aY_ z6n*l_VtZjH#CKC_L|##~2f02W=KZudbMnO-m-3Zi{ e5$M_7^Be)XmQP>r1o!>`0000Pf4sVBYKE)g+IaHKW6wN8hDI4A_MHc3iGgA&ZlS9qf z8pU!Zp~x^+isl$9KHmSp_j}#f^L|{{q@0WHd%al&{Bkd3heOrIm z(Ax;T>ojk~Am(>6YC2a)Q#H8;8sc`9SI=fzm0kY7QHH#1`6Pnkc3wMh9tp_2$`g9# zSIh@Qfyu}%l9ezQEHx^duCbcN?7C>R_);c<#fN271un6AnnQqkGzTKv0S|#BkSe7a z&O(#IX@P!#m=6-5%KF`3prm;3?H*kM#iTKf9vnZxo4#bJSt^iwISfj@fv|NMo_4!t zqrH@vhM1R|8D0%bqW_6__!VLX-B{Lr$nZ6L|$EwsJF%It*P7ip6#;i!Gk1^f@kfX|)IfIo?Bk0Bm6%BqT1A+`lCCb6P#8xn4 zO8uvFBMqz88|R)Ir`OlE`>(YvB*G}wGMEd;BW>f$GI|a9DN0fbv40BZtB^k-XdH5$ zmB7QRy;+mW1dL^Hh3M2FZ;XgGzy~O8-*3*N6U8V$^;2X

1V{hPoSXI8>ra?~XmD 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_rssi_0_bar.png b/app/src/main/res/drawable-hdpi/ic_rssi_0_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..40d094f34d86743e7da290d35d1e6293a7b0562a GIT binary patch literal 1038 zcmV+p1o8WcP)T zv{KuQ8ChXr?FJJP{23Jze?|vZ21dld##WGEKrD2q)ckbPBu(O^YJNF(oS1tk6>hNO z`{BE~Px8__@80L`z3;uV?Kcd=C&IG1Ldx&=C9M93VkoBf_xd8@@VgBRV4+a(bvPV8 zh(sdkwFk*0?r&91^IctaWkpfGO{deJx;}ZI-rucx3OJj~2Lpk?%jIbFZ9EZA--|?C zoj{m`R!jb&s_Hv52_H}uDCj(Ns-W zMx)E=WHKD4y*vY;v`V8syu6y^{Uotzj4wWy2DvY=TmmjgTY|prBz+f7#%{aP6B2U zt^c8C%IJC;!cG8}+Y<@3ZI$9?wVvyh|3S0Dn)gziI)i%}%~lhB!zzg8Eo^>kvN#~* zQ}v5Rm3D?9;6UbE7#Wq)0S3-obd_}Q5!ND@{n!b+&Cl%t>KGCv%3CpEyd`ghJ0+^i5l+p z`j6o?3(G4S@NuVV7^e+&t6lU&4bwpLhUE@S0xbeo2rv$`C|F^@PNytUutI^YpclQz zy;J+J(|26k+gnxCfhp~FXO;Ogq}%>54Hp{aRzox_*dGA~0BKCb=A{7k0000007*qo IM6N<$f~#!pfB*mh literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_rssi_1_bar.png b/app/src/main/res/drawable-hdpi/ic_rssi_1_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..72b6996ad4d5af7bc00ddb9b96eb14a242ff0131 GIT binary patch literal 1125 zcmV-r1e*JaP)N-}bIxzh+#+XLRwjjcyndTpE;Dg`hGJNAItH>* z#32_O7{F92<)m7z9@S_x&LbAHneW(QsU+LkNhk98{D*3_y2vnApqk%2=qcY9C5P}+s0<-BbwWV z8@He@yFFf|e=Tq?lgTpde>RB0>+?@g0|wASvB-9s2?ghqx~@*x(RP+hrFQwGdQ;H? zG1BXFD^_c-lSFVz#S)V*6t=6C%5Irqf=GFn>c4{&-KAEk`V>lKx3;V6uvXipLWZqL z!S#)|rBZ3Eskk-URh;xKm&$Ufr4G7S)-&+C>;LAC(WTdtfjQi z)(kqA%T+pQS6ehjcOlkx0#+wl|3cT4QS>x~lK>vE7ZPflE5+;8x}jJ83rz}Jf0pv8 zGx$z47LUOgQbDXg!Wxezjthd%7TJo1a90=tZk1Ym4FnQ=;X=dWah=1WyZ}IsU8oIx zXEvMqNZLX!V;Dx3NF;;VTyE4c(7#0NkhE@uHUhW?bCB#f)_qurD$+8jb;(`;>^-p3 zQtWE0-LCcgf@2q4!>Bi%KX%l9UPuk*^92TFLkL|LzgDYkgzI{!)9LI6gI*;tmIV~c z2(=onsW)$x722KcsXX6y5e(gb-&1_2)x0CCZ&t);C?I9qfkQ0K?!BVba5HH58*W{- zy9;ya1r98>Xf;AZ`qI2Eg75kh0T-6&SlWZ8(QmhE8A)J?fNL)fj8flfmO3zB zXsKW&0d5B^B`o#EqtWJGy|yiW`5ek-|NKi1=;$EP)w4SPmi0E;ZtKqJ&HqP+X-hBX{Lf|eOHR_H{r|u3_y4~CcR3Z8N+ppH;+gkZ#A1=Q z)_2GTzsu=Z6~YcN*T4WKlSv2L+S>NZ<#LxnuhY?8OH!05l}g96+3cUiVsSj5FO0gJ z_Hau9d*;1Ti9~XwL!mgO(P~`VicYQD6^0yfNheFMA!1Ly`xmRe1ig3}3IcPn_b znIw|QbvmJ5H)%mKQYn?QX0yq~CgD&dmCtT$tP~4{^;|w5M49(?`EO80celx8Hi=Z) zp=fV^M4@PxA;Hc`!G*Dd0TwQOtAf_La$o~pXy_M!@jfsU*yPH}2AjLdhsV?DOpb0A2UY-9HA_(7RX*=1 z+b0wb-=Y)d&>e1uwAWG(dTnj3&`Mry&={QnTbm`Y|LQPIIacfTPQGiE7xI;~_w!6B;)e z4P8tXjs5VWJC#bE2?hdBCzA;Y8*f>yHd3q8U43)pjc0JyM`Q6QI`HG=u$;XB0MJ-8 z`m4v|u~8Js={zi#Zxgv(uAtsv*w4o6oB@CO*%tvmKx=__@7Z$&*W;{#zaJetF*`GJ znr-MZ6}anuoIHvtNF5d3tJUAKzYWBjF2ShrbyC;BBiTYCa;#gJ-v)WoDuLxpL`zrXLiOyH_IALrr(BN zA9|5#mcJVbKSdY5_wl~pM~06+PgjSG;r;1bT3iUNuGW8rY_~fy+js03!f7Zr@8x}u zeRpmYl{f!zBXE^UB~q)^uksqw7cTx}8NYV*A!vdiP!@G#-K$3O^|$9PO-@X_P@OLT zw(p52yN(=sDa?D)s)mN}wL2VrT-3>Wp?+&}a^gWnz=dU1mL5PG493iRC*M_z1d!A3 zf0&L&mkC^0Rxje=LC_kZry{mGIsb2|)kP+R63DpG<>i4`EJ~n;zT!JnpNl%ZKB3p^ zKYnen|AYVCzlYVJb9e5H&}~1VZL~X_r}zZt4H$-s>FFsO&RU!fYDNP$QvM;y|-$Dz*$57n*NaUV)iH3jxbJFkNV& zUtJP&4PA75rm4gK#^>4}W0MKHwcv)yz ckbeaj0F#H1@EcOqi2wiq07*qoM6N<$f}kjL?EnA( literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_rssi_3_bars.png b/app/src/main/res/drawable-hdpi/ic_rssi_3_bars.png new file mode 100644 index 0000000000000000000000000000000000000000..ae512dbcda218d9d2d4ae63db585a3920a87fdc9 GIT binary patch literal 1356 zcmV-S1+)5zP)^U%h&Dosv8XENDQ5&L3Vr{`agbEZ^AJ*&hN+Ula!cvxx4mpFib) z|M|o9`O`%6mnym+x@}am2H>@58#p;>Ur!JA2eA(F88DwN+KJyC* zoCkV#a$HR08gd-HXvy-B&!0c%e*Eyk@X3=Wyrc#ID4A<%Ys+D)(l9(cXWqgoCypP> zCdC3JCFRe;A|kufQVia?%m}jMW3ymeLQ;JhI<&4gx|e;clg5j zbC$%$rmCvyLs2m?UvjGma$+9n@t)haZ_5)K>!4~ZCoA0w#ls-a-o10@^TUS^I0vIg zv1Pf}uU>7wdi9DtG3s@6^=^xaiD`oJH6ySoNVI3=T3@kv| za~5Jsab*=1UXVi0w{PEY5{gxQ1A}$6%A@20Xuz+TG-djw8`rPv;!EbB2n9x#BRENe z8vLhEoqUR|R2C8v{->j>8$MWK6;H#c9N1oHd-v`w6TSirUT9(SG^q5gsx0H9b}|I^ zrW_zChwT700}_H3*w)_l308%nS4|l8Fv!zD$DJ-I%9kc5gg<`#IOXAk2R68p7O?gj(aE-qezvmT~KH9<=KNJ{ICn$;l19`2to`2j6Fip}HNIy#5Qjd6-SOsG_( z6#(URbq!4;x(oooz|`rp4qm--#g5joiZ8Z}jE$$JB*o{@+`}NxoAfWR>XSV*u->qW_pSnv39VKn14*4Jbv^PUq2aCf6K_qCXv&ifaXhkSU2_IgZt_D zJPsPs1a|flXqu#PHA6w88`?U$WaTSDec_82E(D>M7a-4?nwd+JI&Mu?p@r^gQ1Vq$ zRyL(ocM+7-FI~KN0ahcB>sgAbC77qh#KfuI-p1EteD&%jFS(ut1CWQw#XwIBQKEk! z>|~_ZWZGZ>EcCDhRN}sR`7-YH>sP$M9u!7@TSQd!t*EGIZ(@8*C#~H=(-;PM^w!Or znZ!0fLCr=bWtAFQdYon+26ZZk9b}_M3u-_;OiGIk7tqkudPYv4oDiT%PY2W@1J#w} z0+3#i8MJU4O*{;$BSCc~Ii9AZQ88d1CfC!n_AE_3Osc2p;aQq{m{?EK%d>RxFdhco6Dk;hV=D79K|Sw6L%Ucyf!4e-6vzK>cgR6dLr9Y}sYQfTA}Ov4L=fu`ORos|0Qmw*v?%m~f<4Nuh1H1F)&HFL?X7-IV(@Zn{2Lk4RxoLq}2j2O% z{x3mVzz5)p-@5XBt(yc{26h;(9bma>m;<2a1LhSl16vO`XaZy#xEKOa1$O~#PYMwM zkAYL_)2W{`8W&~_IH5V60BdEjtpMUAeU@}zQrz(V=u7%4>7ki1=qxVXBT3&RWjC;4 zV@VGrz3~h2Cy<$aG_z-to=AGzAWT=%xqnVVgDd@xW?f0$EX(f3as0E^@6_+#i{p4v z(xX;0GG1RQ6Q_RP$jb4d~6y2ro*&;gP$c2nYg77BB%0^j|ZS78nf zRi5WAP1C3_;qeGC$DvP}rcs{fZek!{1IU2qz*5k^0vwfq904oAxFzqK0ULDywS!<^ zfKG}1wQuc$t>b+LYS#@k&?T@4Sjl+vw#yQ~p+M0!b9~;PBZt6d0JACS(A(xK{7q7; z?C5bLo~VD*uA~>hd;k742vjxK4@oa2-SNMweB3R+RYUo))kIyi9~5Y#s0Zxdo)UH{ ki~Om*22Jfnai&|ZU($6IP{#gyO#lD@07*qoM6N<$f-8voc>n+a literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_template_feature.png b/app/src/main/res/drawable-hdpi/ic_template_feature.png new file mode 100644 index 0000000000000000000000000000000000000000..fef8a4174f8ddbc46ebb97403902ff6328861e3c GIT binary patch literal 2597 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 bon8N+S5}8h8E=2#pA^!?>%@a&Vb}f*YB2Om literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/iisc_logo.png b/app/src/main/res/drawable-hdpi/iisc_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..84e56a30de8d78020905b1aba331f289c5144949 GIT binary patch literal 228963 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 M4E>n`i3lE`uB*Jln%E;zp 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 {+~UXaw?!+MVZRlK#VoL@eCCJb>}&498u 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 A4*&oF literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/negative.png b/app/src/main/res/drawable-hdpi/negative.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c8308de8df4a671dbc8ea786865980435a012a GIT binary patch literal 9391 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%0A^jD3f9S&Sup* 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 Hu0mjfSD{oE literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/finalback.png b/app/src/main/res/drawable-mdpi/finalback.png new file mode 100644 index 0000000000000000000000000000000000000000..b45ba91b4fc634e2990ab28932198371cdf9b9ed GIT binary patch literal 154478 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 m>{MrKYY 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%0D98+&SdsECNH?7vvAQo0K1m!04QHA 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