From 749e75674584b6f8f495ca1d93529fcab4ed6898 Mon Sep 17 00:00:00 2001 From: busqe Date: Wed, 22 May 2019 21:59:03 -0300 Subject: [PATCH 001/137] app android banco 0.0.1 --- .gitignore | 13 + .idea/encodings.xml | 4 + .idea/gradle.xml | 15 + .idea/misc.xml | 9 + .idea/runConfigurations.xml | 12 + .idea/vcs.xml | 6 + app/.gitignore | 1 + app/build.gradle | 57 ++ app/libs/activation.jar | Bin 0 -> 51643 bytes app/libs/additionnal.jar | Bin 0 -> 46184 bytes app/libs/mail.jar | Bin 0 -> 440508 bytes app/proguard-rules.pro | 21 + .../services/ExampleInstrumentedTest.java | 26 + app/src/main/AndroidManifest.xml | 112 +++ .../java/br/banco/services/BasePresenter.java | 6 + .../main/java/br/banco/services/BaseView.java | 6 + .../java/br/banco/services/CheckDevice.java | 57 ++ .../java/br/banco/services/MainActivity.java | 13 + app/src/main/java/br/banco/services/Test.java | 30 + .../br/banco/services/app/alert/Alert.java | 55 ++ .../services/app/alert/AlertAdapter.java | 73 ++ .../banco/services/app/alert/AlertModel.java | 20 + .../services/app/alert/AlertPresenter.java | 40 + .../banco/services/app/alert/AlertView.java | 200 +++++ .../services/app/config/ConfigServers.java | 47 + .../services/app/design/DrawProgressBar.java | 92 ++ .../services/app/design/DrawTextView.java | 12 + .../banco/services/app/design/DrawView.java | 34 + .../services/app/design/TDrawTextView.java | 828 ++++++++++++++++++ .../banco/services/app/message/IMessage.java | 10 + .../banco/services/app/message/Message.java | 24 + .../services/app/message/MessageConfig.java | 18 + .../services/app/message/MessageError.java | 17 + .../services/app/message/MessageLoad.java | 17 + .../services/app/message/MessageNormal.java | 17 + .../services/app/message/MessageSend.java | 17 + .../services/app/message/MessageSuccess.java | 17 + .../services/app/message/MessageType.java | 49 ++ .../services/app/utils/CharacterCheck.java | 55 ++ .../services/app/utils/ClassDetails.java | 39 + .../app/utils/CompareClassAndData.java | 46 + .../app/utils/CompareClassAndJson.java | 45 + .../banco/services/app/utils/Connection.java | 36 + .../services/app/utils/ConnectionChek.java | 45 + .../banco/services/app/utils/JsonConvert.java | 449 ++++++++++ .../services/app/utils/JsonConvertTypes.java | 261 ++++++ .../services/app/utils/JsonConvertV1.java | 94 ++ .../br/banco/services/app/utils/Layout.java | 14 + .../banco/services/app/utils/Orientation.java | 51 ++ .../banco/services/app/utils/Preferences.java | 30 + .../services/app/utils/ReactAplication.java | 65 ++ .../banco/services/app/utils/ScreenSizes.java | 41 + .../services/app/utils/ValidatorEmail.java | 44 + .../services/app/utils/ValidatorName.java | 80 ++ .../services/app/utils/ValidatorPhone.java | 44 + .../services/app/utils/ValidatorURL.java | 31 + .../br/banco/services/app/utils/Version.java | 17 + .../br/banco/services/contact/Contact.java | 91 ++ .../banco/services/contact/ContactModel.java | 27 + .../services/contact/ContactPresenter.java | 40 + .../contact/ContactSendPresenter.java | 67 ++ .../services/contact/ContactSendView.java | 370 ++++++++ .../banco/services/contact/ContactView.java | 309 +++++++ .../banco/services/contact/IContactImpl.java | 30 + .../banco/services/contact/data/IContact.java | 10 + .../contact/data/local/FromDatabase.java | 22 + .../contact/data/local/FromPreferences.java | 19 + .../services/contact/data/local/FromType.java | 30 + .../data/remote/FromInternational.java | 17 + .../contact/data/remote/FromNational.java | 17 + .../contact/data/remote/FromType.java | 27 + .../contact/data/template/FromDatabase.java | 17 + .../data/template/FromPreferences.java | 17 + .../contact/data/template/FromType.java | 26 + .../contact/email/ByteArrayDataSource.java | 47 + .../services/contact/email/GMailSender.java | 150 ++++ .../services/contact/email/GMailSenderV3.java | 61 ++ .../services/contact/email/JSSEProvider.java | 21 + .../contact/message/ContactMsgPresenter.java | 40 + .../contact/message/ContactMsgView.java | 344 ++++++++ .../contact/message/ContactSenderError.java | 17 + .../contact/message/ContactSenderSucess.java | 18 + .../contact/message/ContactSenderType.java | 20 + .../contact/message/GMailSenderV2.java | 203 +++++ .../services/contact/message/IContactMsg.java | 10 + .../contact/message/JSSEProvider.java | 21 + .../br/banco/services/fund/BasePresenter.java | 6 + .../java/br/banco/services/fund/BaseView.java | 6 + .../services/fund/FundModelTemplate.java | 564 ++++++++++++ .../services/fund/data/FundRepository.java | 24 + .../banco/services/fund/data/IFundData.java | 13 + .../fund/data/local/FromDatabase.java | 27 + .../fund/data/local/FromPreferences.java | 27 + .../services/fund/data/local/FromType.java | 25 + .../services/fund/data/local/ILoadFrom.java | 12 + .../fund/data/local/LoadFileLocal.java | 33 + .../fund/data/local/LoadFileLocalReal.java | 61 ++ .../fund/data/local/LoadFileLocalTask.java | 73 ++ .../fund/data/remote/FromInternational.java | 26 + .../fund/data/remote/FromNational.java | 29 + .../services/fund/data/remote/FromType.java | 25 + .../services/fund/data/remote/ILoadFrom.java | 12 + .../fund/data/remote/LoadFileHttp.java | 61 ++ .../fund/data/remote/LoadFileHttpTask.java | 73 ++ .../fund/data/template/FomMoreinfo.java | 28 + .../fund/data/template/FromDownInfo.java | 28 + .../services/fund/data/template/FromFund.java | 36 + .../services/fund/data/template/FromInfo.java | 29 + .../fund/data/template/FromScreen.java | 262 ++++++ .../services/fund/data/template/FromType.java | 37 + .../services/fund/detail/DetailAdapter.java | 322 +++++++ .../services/fund/detail/DetailModel.java | 202 +++++ .../services/fund/detail/DetailView.java | 462 ++++++++++ .../fund/detail/DetailViewTemplate.java | 328 +++++++ .../fund/detail/DetailsPresenter.java | 86 ++ .../banco/services/fund/detail/IDetail.java | 58 ++ .../fund/domain/ClassConfiguration.java | 35 + .../services/fund/domain/Configclass.java | 36 + .../services/fund/domain/EFundDataType.java | 27 + .../services/fund/domain/FundTemplate.java | 261 ++++++ .../fund/domain/national/Conteiner.java | 18 + .../fund/domain/national/DownInfo.java | 47 + .../services/fund/domain/national/Fund.java | 158 ++++ .../fund/domain/national/FundParcel.java | 35 + .../services/fund/domain/national/Info.java | 45 + .../services/fund/domain/national/Month.java | 45 + .../fund/domain/national/MonthSimulation.java | 45 + .../fund/domain/national/MoreInfo.java | 59 ++ .../fund/domain/national/NationalFund.java | 108 +++ .../services/fund/domain/national/Screen.java | 21 + .../fund/domain/national/ScreenFund.java | 54 ++ .../domain/national/ScreenFundParcel.java | 83 ++ .../domain/national/ScreenFundTemplate.java | 238 +++++ .../services/fund/domain/national/Year.java | 45 + .../fund/interactor/CompareClass.java | 57 ++ .../services/fund/interactor/ConvertGson.java | 64 ++ .../fund/interactor/ConvertGsonFormat.java | 18 + .../fund/interactor/ConvertGsonSimple.java | 30 + .../services/fund/interactor/ConvertJson.java | 338 +++++++ .../fund/interactor/ConvertJsonToArray.java | 451 ++++++++++ .../fund/interactor/ConvertJsonTypes.java | 261 ++++++ .../services/fund/interactor/ILoadTask.java | 12 + .../fund/interactor/LoadHttpFile.java | 61 ++ .../fund/interactor/LoadHttpFileTask.java | 73 ++ .../fund/interactor/LoadInternet.java | 79 ++ .../services/fund/interactor/LoadJson.java | 104 +++ .../services/fund/interactor/LoadScreen.java | 178 ++++ .../fund/interactor/ScreenListReader.java | 35 + .../fund/interactor/ScreenListWriter.java | 35 + .../services/fund/option/FundOption.java | 207 +++++ .../fund/option/FundOptionAdapter.java | 55 ++ .../fund/option/FundOptionPresenter.java | 59 ++ .../fund/option/FundOptionTouchListener.java | 57 ++ .../services/fund/option/FundOptionView.java | 293 +++++++ .../fund/option/FundOptionViewTemplate.java | 109 +++ .../services/fund/option/IFundOption.java | 33 + .../java/br/banco/services/splash/Splash.java | 55 ++ .../br/banco/services/splash/SplashModel.java | 10 + .../services/splash/SplashPresenter.java | 38 + .../br/banco/services/splash/SplashView.java | 96 ++ .../banco/services/splash/task/LoadInfo.java | 57 ++ .../services/splash/task/LoadInfoTask.java | 85 ++ app/src/main/res/anim/an_descer.xml | 10 + app/src/main/res/anim/an_entrar.xml | 10 + app/src/main/res/anim/an_entrar_esquerda.xml | 10 + app/src/main/res/anim/an_fade_in.xml | 13 + app/src/main/res/anim/an_fade_out.xml | 15 + app/src/main/res/anim/an_feader.xml | 16 + app/src/main/res/anim/an_loading.xml | 16 + app/src/main/res/anim/an_sair.xml | 10 + app/src/main/res/anim/an_sair_esquerda.xml | 10 + .../drawable-v24/ic_launcher_foreground.xml | 34 + .../res/drawable-v24/shape_button_dark.xml | 5 + .../res/drawable-v24/shape_button_light.xml | 5 + .../res/drawable-v24/shape_button_primary.xml | 6 + .../res/drawable-v24/shape_chart_bar_fund.xml | 34 + .../main/res/drawable-v24/shape_circle.xml | 5 + .../res/drawable-v24/shape_circle_dark.xml | 5 + .../res/drawable-v24/shape_circle_default.xml | 6 + .../res/drawable-v24/shape_circle_light.xml | 6 + .../main/res/drawable-v24/shape_selector.xml | 9 + .../drawable-v24/shape_selector_button.xml | 8 + .../shape_selector_button_circle.xml | 8 + .../res/drawable-v24/shape_selector_list.xml | 8 + .../main/res/drawable-v24/shape_square.xml | 14 + .../res/drawable-v24/shape_square_dark.xml | 6 + .../res/drawable-v24/shape_square_default.xml | 5 + .../res/drawable-v24/shape_square_light.xml | 6 + .../res/drawable-v24/shape_square_primary.xml | 6 + .../res/drawable/ic_launcher_background.xml | 170 ++++ .../res/drawable/ic_launcher_foreground.xml | 34 + app/src/main/res/drawable/ico_arrow_down.png | Bin 0 -> 425 bytes app/src/main/res/drawable/ico_download.png | Bin 0 -> 696 bytes .../main/res/drawable/shape_button_dark.xml | 5 + .../main/res/drawable/shape_button_light.xml | 5 + .../res/drawable/shape_button_primary.xml | 6 + .../res/drawable/shape_chart_bar_fund.xml | 34 + app/src/main/res/drawable/shape_circle.xml | 5 + .../main/res/drawable/shape_circle_dark.xml | 5 + .../res/drawable/shape_circle_default.xml | 6 + .../main/res/drawable/shape_circle_light.xml | 6 + app/src/main/res/drawable/shape_selector.xml | 9 + .../res/drawable/shape_selector_button.xml | 8 + .../drawable/shape_selector_button_circle.xml | 8 + .../main/res/drawable/shape_selector_list.xml | 8 + app/src/main/res/drawable/shape_square.xml | 14 + .../main/res/drawable/shape_square_dark.xml | 6 + .../res/drawable/shape_square_default.xml | 5 + .../main/res/drawable/shape_square_light.xml | 6 + .../res/drawable/shape_square_primary.xml | 6 + app/src/main/res/font/dblack.otf | Bin 0 -> 88940 bytes app/src/main/res/font/dbold.otf | Bin 0 -> 90228 bytes app/src/main/res/font/dlight.otf | Bin 0 -> 88240 bytes app/src/main/res/font/dmedium.otf | Bin 0 -> 89060 bytes app/src/main/res/font/dregular.otf | Bin 0 -> 87364 bytes app/src/main/res/layout/activity_alerts.xml | 81 ++ app/src/main/res/layout/activity_alerts1.xml | 82 ++ .../main/res/layout/activity_contact_form.xml | 140 +++ .../res/layout/activity_contact_form2.xml | 140 +++ .../main/res/layout/activity_detail_main1.xml | 22 + .../main/res/layout/activity_fund_detail2.xml | 16 + .../main/res/layout/activity_fund_list.xml | 18 + .../main/res/layout/activity_fund_list2.xml | 16 + .../main/res/layout/activity_invest_form.xml | 193 ++++ app/src/main/res/layout/activity_main.xml | 31 + app/src/main/res/layout/activity_splash.xml | 35 + app/src/main/res/layout/fund_content_main.xml | 17 + .../res/layout/fund_detail_download_type.xml | 47 + .../res/layout/fund_detail_footer_type.xml | 46 + .../main/res/layout/fund_detail_fund_type.xml | 203 +++++ .../main/res/layout/fund_detail_info_type.xml | 45 + .../res/layout/fund_detail_info_type1.xml | 31 + .../res/layout/fund_detail_moreinfo_type.xml | 201 +++++ .../res/layout/fund_detail_moreinfo_type1.xml | 60 ++ .../main/res/layout/fund_list_download.xml | 46 + app/src/main/res/layout/fund_list_info.xml | 46 + .../main/res/layout/fund_list_moreinfo.xml | 36 + app/src/main/res/layout/fund_list_row.xml | 46 + app/src/main/res/layout/template_button.xml | 7 + .../main/res/layout/template_linearlayout.xml | 10 + .../main/res/layout/template_progressbar.xml | 32 + app/src/main/res/layout/template_textview.xml | 17 + .../main/res/layout/template_view_chart.xml | 105 +++ app/src/main/res/layout/teste.xml | 33 + app/src/main/res/layout/toolbar_bottom.xml | 66 ++ .../main/res/layout/toolbar_bottom_global.xml | 72 ++ .../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 -> 2963 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 4905 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2060 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 2783 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4490 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 6895 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6387 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 10413 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9128 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 15132 bytes app/src/main/res/values/colors.xml | 14 + app/src/main/res/values/strings.xml | 200 +++++ app/src/main/res/values/styles.xml | 134 +++ .../br/banco/services/ExampleUnitTest.java | 17 + build.gradle | 27 + gradle.properties | 15 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++ gradlew.bat | 84 ++ settings.gradle | 1 + 269 files changed, 16087 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/gradle.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/libs/activation.jar create mode 100644 app/libs/additionnal.jar create mode 100644 app/libs/mail.jar create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/br/banco/services/ExampleInstrumentedTest.java create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/br/banco/services/BasePresenter.java create mode 100644 app/src/main/java/br/banco/services/BaseView.java create mode 100644 app/src/main/java/br/banco/services/CheckDevice.java create mode 100644 app/src/main/java/br/banco/services/MainActivity.java create mode 100644 app/src/main/java/br/banco/services/Test.java create mode 100644 app/src/main/java/br/banco/services/app/alert/Alert.java create mode 100644 app/src/main/java/br/banco/services/app/alert/AlertAdapter.java create mode 100644 app/src/main/java/br/banco/services/app/alert/AlertModel.java create mode 100644 app/src/main/java/br/banco/services/app/alert/AlertPresenter.java create mode 100644 app/src/main/java/br/banco/services/app/alert/AlertView.java create mode 100644 app/src/main/java/br/banco/services/app/config/ConfigServers.java create mode 100644 app/src/main/java/br/banco/services/app/design/DrawProgressBar.java create mode 100644 app/src/main/java/br/banco/services/app/design/DrawTextView.java create mode 100644 app/src/main/java/br/banco/services/app/design/DrawView.java create mode 100644 app/src/main/java/br/banco/services/app/design/TDrawTextView.java create mode 100644 app/src/main/java/br/banco/services/app/message/IMessage.java create mode 100644 app/src/main/java/br/banco/services/app/message/Message.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageConfig.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageError.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageLoad.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageNormal.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageSend.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageSuccess.java create mode 100644 app/src/main/java/br/banco/services/app/message/MessageType.java create mode 100644 app/src/main/java/br/banco/services/app/utils/CharacterCheck.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ClassDetails.java create mode 100644 app/src/main/java/br/banco/services/app/utils/CompareClassAndData.java create mode 100644 app/src/main/java/br/banco/services/app/utils/CompareClassAndJson.java create mode 100644 app/src/main/java/br/banco/services/app/utils/Connection.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ConnectionChek.java create mode 100644 app/src/main/java/br/banco/services/app/utils/JsonConvert.java create mode 100644 app/src/main/java/br/banco/services/app/utils/JsonConvertTypes.java create mode 100644 app/src/main/java/br/banco/services/app/utils/JsonConvertV1.java create mode 100644 app/src/main/java/br/banco/services/app/utils/Layout.java create mode 100644 app/src/main/java/br/banco/services/app/utils/Orientation.java create mode 100644 app/src/main/java/br/banco/services/app/utils/Preferences.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ReactAplication.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ScreenSizes.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ValidatorEmail.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ValidatorName.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ValidatorPhone.java create mode 100644 app/src/main/java/br/banco/services/app/utils/ValidatorURL.java create mode 100644 app/src/main/java/br/banco/services/app/utils/Version.java create mode 100644 app/src/main/java/br/banco/services/contact/Contact.java create mode 100644 app/src/main/java/br/banco/services/contact/ContactModel.java create mode 100644 app/src/main/java/br/banco/services/contact/ContactPresenter.java create mode 100644 app/src/main/java/br/banco/services/contact/ContactSendPresenter.java create mode 100644 app/src/main/java/br/banco/services/contact/ContactSendView.java create mode 100644 app/src/main/java/br/banco/services/contact/ContactView.java create mode 100644 app/src/main/java/br/banco/services/contact/IContactImpl.java create mode 100644 app/src/main/java/br/banco/services/contact/data/IContact.java create mode 100644 app/src/main/java/br/banco/services/contact/data/local/FromDatabase.java create mode 100644 app/src/main/java/br/banco/services/contact/data/local/FromPreferences.java create mode 100644 app/src/main/java/br/banco/services/contact/data/local/FromType.java create mode 100644 app/src/main/java/br/banco/services/contact/data/remote/FromInternational.java create mode 100644 app/src/main/java/br/banco/services/contact/data/remote/FromNational.java create mode 100644 app/src/main/java/br/banco/services/contact/data/remote/FromType.java create mode 100644 app/src/main/java/br/banco/services/contact/data/template/FromDatabase.java create mode 100644 app/src/main/java/br/banco/services/contact/data/template/FromPreferences.java create mode 100644 app/src/main/java/br/banco/services/contact/data/template/FromType.java create mode 100644 app/src/main/java/br/banco/services/contact/email/ByteArrayDataSource.java create mode 100644 app/src/main/java/br/banco/services/contact/email/GMailSender.java create mode 100644 app/src/main/java/br/banco/services/contact/email/GMailSenderV3.java create mode 100644 app/src/main/java/br/banco/services/contact/email/JSSEProvider.java create mode 100644 app/src/main/java/br/banco/services/contact/message/ContactMsgPresenter.java create mode 100644 app/src/main/java/br/banco/services/contact/message/ContactMsgView.java create mode 100644 app/src/main/java/br/banco/services/contact/message/ContactSenderError.java create mode 100644 app/src/main/java/br/banco/services/contact/message/ContactSenderSucess.java create mode 100644 app/src/main/java/br/banco/services/contact/message/ContactSenderType.java create mode 100644 app/src/main/java/br/banco/services/contact/message/GMailSenderV2.java create mode 100644 app/src/main/java/br/banco/services/contact/message/IContactMsg.java create mode 100644 app/src/main/java/br/banco/services/contact/message/JSSEProvider.java create mode 100644 app/src/main/java/br/banco/services/fund/BasePresenter.java create mode 100644 app/src/main/java/br/banco/services/fund/BaseView.java create mode 100644 app/src/main/java/br/banco/services/fund/FundModelTemplate.java create mode 100644 app/src/main/java/br/banco/services/fund/data/FundRepository.java create mode 100644 app/src/main/java/br/banco/services/fund/data/IFundData.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/FromDatabase.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/FromPreferences.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/FromType.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/ILoadFrom.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/LoadFileLocal.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalReal.java create mode 100644 app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalTask.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/FromInternational.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/FromNational.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/FromType.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/ILoadFrom.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttp.java create mode 100644 app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttpTask.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FomMoreinfo.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FromDownInfo.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FromFund.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FromInfo.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FromScreen.java create mode 100644 app/src/main/java/br/banco/services/fund/data/template/FromType.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/DetailAdapter.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/DetailModel.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/DetailView.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/DetailViewTemplate.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/DetailsPresenter.java create mode 100644 app/src/main/java/br/banco/services/fund/detail/IDetail.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/ClassConfiguration.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/Configclass.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/EFundDataType.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/FundTemplate.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Conteiner.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/DownInfo.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Fund.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/FundParcel.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Info.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Month.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/MonthSimulation.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/MoreInfo.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/NationalFund.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Screen.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/ScreenFund.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/ScreenFundParcel.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/ScreenFundTemplate.java create mode 100644 app/src/main/java/br/banco/services/fund/domain/national/Year.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/CompareClass.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertGson.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertGsonFormat.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertGsonSimple.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertJson.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertJsonToArray.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ConvertJsonTypes.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ILoadTask.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/LoadHttpFile.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/LoadHttpFileTask.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/LoadInternet.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/LoadJson.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/LoadScreen.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ScreenListReader.java create mode 100644 app/src/main/java/br/banco/services/fund/interactor/ScreenListWriter.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOption.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOptionAdapter.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOptionPresenter.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOptionTouchListener.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOptionView.java create mode 100644 app/src/main/java/br/banco/services/fund/option/FundOptionViewTemplate.java create mode 100644 app/src/main/java/br/banco/services/fund/option/IFundOption.java create mode 100644 app/src/main/java/br/banco/services/splash/Splash.java create mode 100644 app/src/main/java/br/banco/services/splash/SplashModel.java create mode 100644 app/src/main/java/br/banco/services/splash/SplashPresenter.java create mode 100644 app/src/main/java/br/banco/services/splash/SplashView.java create mode 100644 app/src/main/java/br/banco/services/splash/task/LoadInfo.java create mode 100644 app/src/main/java/br/banco/services/splash/task/LoadInfoTask.java create mode 100644 app/src/main/res/anim/an_descer.xml create mode 100644 app/src/main/res/anim/an_entrar.xml create mode 100644 app/src/main/res/anim/an_entrar_esquerda.xml create mode 100644 app/src/main/res/anim/an_fade_in.xml create mode 100644 app/src/main/res/anim/an_fade_out.xml create mode 100644 app/src/main/res/anim/an_feader.xml create mode 100644 app/src/main/res/anim/an_loading.xml create mode 100644 app/src/main/res/anim/an_sair.xml create mode 100644 app/src/main/res/anim/an_sair_esquerda.xml create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable-v24/shape_button_dark.xml create mode 100644 app/src/main/res/drawable-v24/shape_button_light.xml create mode 100644 app/src/main/res/drawable-v24/shape_button_primary.xml create mode 100644 app/src/main/res/drawable-v24/shape_chart_bar_fund.xml create mode 100644 app/src/main/res/drawable-v24/shape_circle.xml create mode 100644 app/src/main/res/drawable-v24/shape_circle_dark.xml create mode 100644 app/src/main/res/drawable-v24/shape_circle_default.xml create mode 100644 app/src/main/res/drawable-v24/shape_circle_light.xml create mode 100644 app/src/main/res/drawable-v24/shape_selector.xml create mode 100644 app/src/main/res/drawable-v24/shape_selector_button.xml create mode 100644 app/src/main/res/drawable-v24/shape_selector_button_circle.xml create mode 100644 app/src/main/res/drawable-v24/shape_selector_list.xml create mode 100644 app/src/main/res/drawable-v24/shape_square.xml create mode 100644 app/src/main/res/drawable-v24/shape_square_dark.xml create mode 100644 app/src/main/res/drawable-v24/shape_square_default.xml create mode 100644 app/src/main/res/drawable-v24/shape_square_light.xml create mode 100644 app/src/main/res/drawable-v24/shape_square_primary.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable/ico_arrow_down.png create mode 100644 app/src/main/res/drawable/ico_download.png create mode 100644 app/src/main/res/drawable/shape_button_dark.xml create mode 100644 app/src/main/res/drawable/shape_button_light.xml create mode 100644 app/src/main/res/drawable/shape_button_primary.xml create mode 100644 app/src/main/res/drawable/shape_chart_bar_fund.xml create mode 100644 app/src/main/res/drawable/shape_circle.xml create mode 100644 app/src/main/res/drawable/shape_circle_dark.xml create mode 100644 app/src/main/res/drawable/shape_circle_default.xml create mode 100644 app/src/main/res/drawable/shape_circle_light.xml create mode 100644 app/src/main/res/drawable/shape_selector.xml create mode 100644 app/src/main/res/drawable/shape_selector_button.xml create mode 100644 app/src/main/res/drawable/shape_selector_button_circle.xml create mode 100644 app/src/main/res/drawable/shape_selector_list.xml create mode 100644 app/src/main/res/drawable/shape_square.xml create mode 100644 app/src/main/res/drawable/shape_square_dark.xml create mode 100644 app/src/main/res/drawable/shape_square_default.xml create mode 100644 app/src/main/res/drawable/shape_square_light.xml create mode 100644 app/src/main/res/drawable/shape_square_primary.xml create mode 100644 app/src/main/res/font/dblack.otf create mode 100644 app/src/main/res/font/dbold.otf create mode 100644 app/src/main/res/font/dlight.otf create mode 100644 app/src/main/res/font/dmedium.otf create mode 100644 app/src/main/res/font/dregular.otf create mode 100644 app/src/main/res/layout/activity_alerts.xml create mode 100644 app/src/main/res/layout/activity_alerts1.xml create mode 100644 app/src/main/res/layout/activity_contact_form.xml create mode 100644 app/src/main/res/layout/activity_contact_form2.xml create mode 100644 app/src/main/res/layout/activity_detail_main1.xml create mode 100644 app/src/main/res/layout/activity_fund_detail2.xml create mode 100644 app/src/main/res/layout/activity_fund_list.xml create mode 100644 app/src/main/res/layout/activity_fund_list2.xml create mode 100644 app/src/main/res/layout/activity_invest_form.xml create mode 100644 app/src/main/res/layout/activity_main.xml create mode 100644 app/src/main/res/layout/activity_splash.xml create mode 100644 app/src/main/res/layout/fund_content_main.xml create mode 100644 app/src/main/res/layout/fund_detail_download_type.xml create mode 100644 app/src/main/res/layout/fund_detail_footer_type.xml create mode 100644 app/src/main/res/layout/fund_detail_fund_type.xml create mode 100644 app/src/main/res/layout/fund_detail_info_type.xml create mode 100644 app/src/main/res/layout/fund_detail_info_type1.xml create mode 100644 app/src/main/res/layout/fund_detail_moreinfo_type.xml create mode 100644 app/src/main/res/layout/fund_detail_moreinfo_type1.xml create mode 100644 app/src/main/res/layout/fund_list_download.xml create mode 100644 app/src/main/res/layout/fund_list_info.xml create mode 100644 app/src/main/res/layout/fund_list_moreinfo.xml create mode 100644 app/src/main/res/layout/fund_list_row.xml create mode 100644 app/src/main/res/layout/template_button.xml create mode 100644 app/src/main/res/layout/template_linearlayout.xml create mode 100644 app/src/main/res/layout/template_progressbar.xml create mode 100644 app/src/main/res/layout/template_textview.xml create mode 100644 app/src/main/res/layout/template_view_chart.xml create mode 100644 app/src/main/res/layout/teste.xml create mode 100644 app/src/main/res/layout/toolbar_bottom.xml create mode 100644 app/src/main/res/layout/toolbar_bottom_global.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_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_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_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_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_round.png create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/styles.xml create mode 100644 app/src/test/java/br/banco/services/ExampleUnitTest.java 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 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2b75303a --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +*.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 diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..15a15b21 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 00000000..2996d531 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..9fdea7e6 --- /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 00000000..7f68460d --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /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 00000000..796b96d1 --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 00000000..20408c7a --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,57 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 28 + // buildToolsVersion rootProject.buildToolsVersion + defaultConfig { + applicationId "br.banco.services" + minSdkVersion 19 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + // dataBinding {enabled = true } +} + +dependencies { + + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'com.android.support:appcompat-v7:28.0.0' + + implementation 'com.android.support:recyclerview-v7:28.0.0' + implementation 'com.android.support.constraint:constraint-layout:1.1.3' + implementation 'com.android.support.constraint:constraint-layout:1.0.3' + + implementation 'com.google.code.gson:gson:2.7' + + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' + + testImplementation 'junit:junit:4.12' + testImplementation 'org.mockito:mockito-core:2.27.0' + //testImplementation 'org.mockito:mockito-core:' + rootProject.mockitoVersion; + + + implementation fileTree(dir: 'libs/', include: ['*.jar']) + +} + + +/* +sourceSets { + main { + res.srcDirs = [ + file("src/main/res/templates/").listFiles(), + "src/main/res/templates", + "src/main/res" + ] + } +} +*/ \ No newline at end of file diff --git a/app/libs/activation.jar b/app/libs/activation.jar new file mode 100644 index 0000000000000000000000000000000000000000..614a03cd25f2fc259bc8b2100ae4340b5051c5ac GIT binary patch literal 51643 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 literal 0 HcmV?d00001 diff --git a/app/libs/mail.jar b/app/libs/mail.jar new file mode 100644 index 0000000000000000000000000000000000000000..ea594fdd8a32e902e71a4189342aa69763e282ff GIT binary patch literal 440508 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 {roxC<*Rg7jLGe)=JN*8 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 @!Kw)6}uRu;PCu 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�NW&f1Dt4z2hiP5v2Z^%x(6wjJFME#6xFp_T5Ol0) ze0cGxEAJJNT{Q|J%yEGEY7m7UX$M~t0F6!j)<)pUdQq>AW1sdl*A z+5-^Z`uR*c^KRx+9is0XPZhvS1Kxg-G}u8j3jwdJn-IlxRbdLvVSAEAaa6Zu#`!3g zICDFv#wazvEPJVqQOP<&%EXn{E9I{+a*J-sSKx?CcKe7*;m(`R+0*k3k@x$F|AoNc zUSx}_r*s&_gy$VnjKCf_p*=7_>AjucHg;vG!x{S`wkE4Z*EonPh6X zO!CbrMdjK2TtcMpLJ!3cV~sTYofk1y*I%tBps5gb-@V;g)S2U!hYiXD=1=K}n(=!` zKT5w;pga-px`nnb8HKiJUDJhs+;EERi7Eq$XlM88BAHNg4AGP|`c+YxVq9r=VP9+w zVAG%C{vb=Lt`E^$y4vhPdIx9c?BP>CfxBPR0N#Ljyg8u|RvrLYc|&D00b6EiC~E;i zG-!XtE~>txLh5!XLACZU?FQ;zDqAF_t*w7}(8uQ^SNWx^Q3COAJosNUT>b|F&i_q; zOjTQF6jfATJLL9bFKg)nQ9&l9*aFEg!NFvM#6Kzlmf>_@LO$&qI`dx`XlpktdH>$! z#voxZt>jS}%V?(hH==_y(_G^vKMBdsRtiJ%*UlbQ}04xbwIy9+f|% zjs53MmQ$s+kUKFwiZ&<*n4~!erRfXDyy}#w&Ew%HBv$Fh=XxD=GV>P1o72;)hOQxy z3P|ysQha-EZ8|ZJb?qU}1LYqMQ5Yz^DEam)_;g{p_}o=t4?g$oeE` zmRWcJ-+AF%*M9!3f}WZ5C5Wudws<8QDNLQ@pKPP;#gcU8Jh9!aWwEk@j9@`{;- z?-38WW&&P8PyQH0c>=_QSQDW?#6jjJ0$N2ET>o@)tcgl6-Bg&aE{jk1{$AjQ!5LZL zPRSq{&Sk+FSqklCNjx*bnGR+;zW4ipS*o+`c%r%4nH!Ji7;(3ue}x3H_gIG+K~{fe z$!1vOf2l$zScAeg4wS-|CAb$wk)ie2-9@uS;N5*>K=}v`zr-E+25+>;$hv}4dCOM% zpow3>6Aj#c#<`BcK&iV z|35rgw*K*C;Y&UPk!%JM=gxq^R4$u@iR2d21*znU8VjE$q%HSiX~xm%%G5EfY##;Y zD-ZqX!zgB%+Al`ALKBd&u4rPF2^&)j2R+GCF;l+Fkq>?ZH;f%+8@ekgx+xTB*awE+Qywv~zXkyKW0T=&at^ro4eFLC{X?2<6nC)}g!4EZ!e6`TA&E$3YU7-fIe~ z?vTh_XT?@nY{C0_sdt{|smaIyJI8E)?03ryLFOlGK=^@dQ4pE|cvtW2*}uk^mO{!X zCXBFC-t@9qwEYwDP)A~lcVQwoYKUp>^efvKL%u92DK_n3MK(eokWJ)8l@(BI$3GZG zpxP_>1G*(t{fTuI8Y*AD@pzD``w74PAhw2>6F3pG$ux%(+#R@=Ml~bs{b56pzJRor!I!& zF^f0}mbSscnIK?lB!j&owU%l(#_}{39b)n~m9q$qtmWxeeml4^1)U)KAJM#J;bAA~GHV6^e=wC|6t>#~u%=;RJK^H1NB zEzBJtFAWp_=xS+J5XB(FEcc09wMMpe!R$(0odv_8#9MU|$AvdIFYMtofShFyp-Rpy z6OBmw#;e5&Wj-7q88@A&G5d*DdtTwWT$9Fb4g-!`8jSEwCXQIcvKAM(7|X@)LLWfo zC`i_An(XZmoRKosa)T9k)RvLHMpGr`T$xvrO@wmq->{~G;b9|AwD^hQTr+wgj73F4 z9iR{>p+nMrq$*5lbETrKGo+*So?@@@*nL9lpB`dQhJBWGBlXp5gu$}zRQ-fIH9v6v0Swc~ zG9A>HhMerb0_J~ls}zzK(NtDZQWaKFRr-&NT%m@ix5{GY=f?#zORA26ga9-cW{v=I zT@7YZ4U}e&Koc@DV4=_CFL|Vl*)FX>NdP)xZR3kVDJ7~^Wi6eZ07&?^Q#)Z!`r7tUW)cdj&~LRmaBipb$l z(%d?F`eDuei<)y-fFRI|U)2R2Uz^^JD|1ERrn1uI6$((%G`gocWcmbUoQ4d6tzCT-I% z+#z{8#zK7by76}di7v%9NAEm@GyP*Z&fuO>JC;b2?qYe4&RLW9;pM4%FJMA+FWB(f zeoVM*z*Xgx2ZlwmEZc>KpCgl*GW~jd$`@u!rC@FMOieQf~Hb4EbTcZ^~IKovN*0P!Pk$rQ4@6_XW|!=@ zSRT~=4N?58mS-6G%r4r`={*Uw49XRnFd{Om?JZs=!CX-c$5NA#he;W#LL3eNrlt() zSuOR$394~nUJ%QSyymgpcDI=H+aNLbhT0A5=vWPQm_R@z0iQK`PG3}!k{MJcbI})Q zbcmV;W?XdCGGK4e@CnFwM;CYuz;{{yFI7r3RXWw z(7VwkjaBFVQY?xxEwlG&uzDO);1ZBKM{2&wHojGY$|BU!TP)mK!3G zLuD^mW14s!o?_$fR-#5>C*_81;D$P^Bd|3-LP%k2+%w_`xVzTKCbQI!mE9DHPMxfR z!#|I%w9meU`oM5bbHZ2y|j;tES{O zrpZV-s$U{zG03>IGg_pC5%UOxK>v~(O6aBiLW2=!t>_1HbFipvuCJXRY^6%#usG@y zBkz5hr(6|Qx{srvgS#oW1rxKRoj=ub$q4TrU<*~x9cD^g5z1_;*et-*_^Rg2xI z*wG5KDXywUGqHVQH#Fh?bQAG5Wbg~JT^>V^_Jdi|t0qE8^Jo|B*DyT5F)l@it{+Zo zy@L#JJL_=|#B^YImLUgu(5M$^hfcZJ(pF#BRW%08MjR?)>F6S=cooj*m5ZS{LuP+X z1%kF@!$vvsZvN6pd@eN&VkxY)(-HVYhVW467j0PvhCok=__t`gLYL;P=NS=5p)jBcr*A0x6GN|z?) zv3V*Zr)wlN2CG}oa1nu(D@dUga1C-&>X7-xp=han;)W-AIKMtWB#4LLPKVBs#y3{u zaEEa}>ycguoGg-k(r^qMhYbFW>A6pYd5LzqfCq56;w$1Mb>U5?KV{VD%R!3oL$>vB z#jREpWF!%P=QE3(^~nKp>#TDNKy?qhZS3>gHeDfi96d6N@9r817{QVJCjF;WT=<#y zk+^=s`%hcSPP}RYQ|WtsI_9hlgE;sR3JCXDOCzL}tNu|E^q_S<#X@ zDUymUW|WW#F+)fL7b%Miw5I-3!?Us@7=_E4g7xLevFT>7ahDzbhQ>Zd&iX*&C4o@2 z2ZpTg%ZCX4+}2Xj;)4{EB}R7WW$zJ%^;4)K7aLgfc(j`^a*$9}Ny`=ie^4->e|OO% zh9{Wvc&RFY6Sd!-RO2gD=bgJhbA*bd!=Fu*;qZ#h@R$%#?ZlD0os27iZ~ENR_T)ov zsDg;Y8=*+^IrevG@E zXl{ebfK%ITA5LL7k9MOLt>mm(5;LVbC*H)!+`Slc%j}2xfclDC{@N{s>=Gb} zk3Mf1PVBH0D12z2zal4P+hu59@9cdAE6jAsqgb`9lzlbHZMA>2q}P_C|y zIowfX9}`5vfP=O7ZE#XRA(BblA+=0UptB~*_h)Xes{w<#cy@~rp4czHGtx7Xb&(KC2hfG$3I z`)6khnbhx?OP)tFK|=;R9{7{qDxtsaxR#pnhCaOKbomQeQ{bYd|h^2sAo zQt{Eun4_zZzzB>d>~wk~Pab-wdb$a?eBSUeuuD6iL^;gD_8`hp$jfafs85&PLQk^q z3q0PE2!zq*{F`>j-GgONt~UB23~vu9u;U+-i#5lnBZHCsQImLeEwd0pt|HM zVdl$BD#{xrIpI2M@8dSsPAJ71hv5<6@O+r_XXOu_&%>qH%-jM!GhU~B7U;S+D7K}2 zfSXA+N8NXp1Z;PLs16#s2Hv6h@g+0houfC325TsdLQslm~Bo#U~$jdeWTPOyGvq~5~<)4&}Qtuh^ z7be2yN~DV%rwSC4CGzbMvJhG8!i+@fB-u-J$R<)`%dU3}^D$ua2}o!t7)|eDGdJYv zoM`iLtYJA<+6PO&3+%U2kDrrHeG^(}GxgN}(}E$q5@- zX4{@wcVx?A4Bq(KRY?RqRHq$6Y>rUsvBR+-#SHaRs6npE(1pMnI*YEF?|-ywX3Ms| zO~_8YBqaFJmg%Jdy7RgL*$fj3>MqDE6L0iZw8}6}3Ck-?VaK{IA7^rmca%h7vuUmK zqsrH;-PM2j*|Nn$!FlOhJisgt{$BhAp6|$&@I%0?`f^aoX!N&aYk2i`rCT^uGQ;@zimcG3L)e7}d34C|q@|CCrxUS3kzJ>nT z!+$~dm04o!fZu4qdz_Vf3wqcqc46=pL)iXyzx&+_6=4pVSETrgv2*Cs{%TeGs8HS^ zXll2_q?aTPEk+X5QD>}gZw?XIe-*?EK~doSCPm#_U0BLVMQ5TBxFsQdt!>Gb6{mI0 zV+og)^!C)*05>hgvCVZ%4s5^fXh2|)*x)4N3&m(X?IwNyUR-E?jd4uYLHiEpm&iX{ zUKhEv59pvr=)<{TeAC4b<~YFOB+(CV-ly)M^Fz5Dv3&|T>uPKMA0mfCBH+J?I1B*9W_W0$l{tX2uP4*yHFoXISC9x^32&F{$=AgL{vk zR*s(|y%=KA^#Vnw@F{X|Lgo8o(z;q9(F=%Pb~#IYuiPf{9%)6(yr{)oI>nrFLPt{C z8#i2&lB89nm~RR}S5KQmK2B`av@qusk*=n>YSCy)*U#8Wi&MH-7tA{}(5xuql~lQ3 z!1PA8IpkD<+$61e$A&$<(kSdS1C~W%I#w)~CgG{TsZ`|1YOTPfHl+AHW)8g&?$!eN zFuhjUw16g~}HY1jH-a|GcmJXKj4`(k58JeP_OHkHm#sCywEbOpb*42ZsD!hY; z$Zfj0+-Bj!Q^Ht^VrrPwlz1T_Ut*(WsSH0s;_jUah-Hby?&ZotSn9>f? z3LHi_*R{q$cDw)%Q$}}WXO%szYRIF?-q{jm%#sCtuCe4$Ye{ZP46@t(Mk}SsfW&sN zu>sC~=3a-O*%_|mdx#~ZuOP=RsSl)I!R7As9bbn~Gv;QB`6?IsykT zF2!}@jVB4QY1fhN@FQl_djk?m3%oPy?FUuW3Drlxp5AY)DfEv${mPY9XL70vzlI;F zz}FI-{=9fG^6EvpLkM!*8s5#42^y@8A+wcWzzaXbEFPwid!6QmQT&-8(zz(rxiD7p z&)m3q6FhZGHC5G4K=epWOn~KTdF8GP>XD2>z{F!TImi%YU@Ml?|P3 z1YKP$Ozm7OjSXGwok*GfyL3^hrt9!ky7;h*caheRq6M?8)W{L?g<4Y+u>DTA!=NNY zR45fOV&-hwv~dR9fI~%mD=(?;a`l)?o_P8j2^T%V$h~(2=y<+}WSQW6*{zp9YE2(X zVmF~QHgmfi<=b+2mQ`O;S*mOQN%n*#6n{dd%B12f#PvIKKaD0g)i7i^Qw_H&(PpDFuVg@l zb&;{IjJ=TbFgU*~m8E5J=IpO)aeGJyrdBBq=s;Hi_6C_zGaMafyrb<#Mu}wv-)#V0 zP-k0d`zuxvG0hLVXC(PL6g<-_ib`C4aG<$~gay(ZH&!_!s*=XgN!eWm0IQeK+akFZ z0uRs?np2H8C!0l&R=19?SPy}*qm?kHxcF!A@maQ8f~>y^P5jRWOF%%haB5-^`m0UuxN@vi9J~?`yD{(@mZQ8P{4#23onszs>U;n0N%CGDZE_FaOaGv zgKjT_()kq39pMJnYScmesewl2(6prSXdnwL%J6ls@-LmPc0v|yOC)Sg7c|{+RY1pe zJTjv05NQ#Vkhw{VAlhzgLh9Z;@m#{u25m{0j0QlES^0n`Z!v%GKJA*6eym0?)XcZG z0DCGw2y=Bt50(vg4Ry+&2yl8(#F*6$SRmC^1=L$OEB zZy37>PMgY!QR=+#*+_CiT`Uv7CK)(4g6A@Of0$44&5x4wLV|FC+)lz?m#=%wNEC(7 zdPeG~krc1+^1Bv~(KT0)5zpTlbm<90pNfqiA#k;8%TJBNp3$3vG18sD+app*^3)U$ z{Pd1@4Bj6jR?1Mmtn+_>%N$TX5tH@HDv3>7f^Ra~U)l{%8!#`_%gTb?_WD?UZy}Mi zUri|^av)7`YO#^-$U6>+!Z!#Klf*K8j}nC_16JkR8d%M|s$S?ge5$L;mDL6<0kh0i zKUZrtZSEV4v)uaSp~4FRREoVTFq>4y1E6N+juW6}^B`9&S|~vys<90DF{Jrhmuo1L z#>(wKaF0-8VZ!TUQFeZXSY|@kIOJ^jJx2KXrdt|iIwGT+-jTD<^GK&IQpRw#MXMZLo!p2Erda4X%nx5X12Vqza1 zp}V)4eFs%}d)VH>+^;!m33efjTZT*=(8;Cq(#%WsON?$8QRAf5EHHN&>YP$}|CGiT zIRXc=_Wuuv{tuuvpuJHSu|B(3NZW15Nj2GffYze1 zq+nmEBL_YykpL@U93p_ytq!Yi_hPC}9PCuJ{7<}ArFe;vt*XsnSpqF#xW}%KapkI) z+G*uoO=b9d_X=p-23X_!x&2?C+s)UDJs*35t)GwZ-;_lQ(ZYLBtC32=2Le>TPaam^ zfHx?pQrd{XRqs?=WvI93Xhu9)8_%M7F`nF7DU#TTMhnbJRZ5rNSocnq?X9VwY?h#T zf+T{@jOCEz1U*sPbN~7V8%Mwf!X-$T1IwBA;AkHW^y!tWIzXmEMZ!$eh!mBKEFt2< zy+1~3%@wwfafJyb13@Q2N28RqxyM>Rf)$gLS^|ligdyoW=pgYC)W5UvXBq2ij7*I) z#W0st`;)qSP>EW+c{FogV^9JE2~>QkyZIxC=uleIN1lsB4be-Vt4Mv5D`gQG4gyG; z5u}DuB+U&}MeV0oSl)*{xi$88<6F;be3ebd)|=ca3--C;;Yvl(-N~0M#*=slY|Vw1 zHQ5IgBqh?FPqTl%%5dpg*=w9H3M*zKMQSKgF*Y?%pmH4)+=;j0zG> zoh#AAp#Z1t3K+M~Ja;v4ta%P=j-1hPzCUDyhD%byw17qEFkjZO{*o(D<}zfGeATw{X#%O?xzD+1^-}Ya@Y|*nqvF)!9(;(g9w7WrP%&)Y&_} z{Jh2JJ;wkvSTNxD;-V_j1`h0No^=`VzF`t68tm)@<<*?EqVCkft54hAO6BKeD4VfO z7P^%81x4gU0<~Fox9)A0mTETGU#njDADL>K?mx92f(qE!X^~6DLKjyWsy26`u`hz` z!bGdX_L%mpY9otKUcnUeG7vCD=4(YDh78#=NVlg9c()|H#f)-ek)l^?B2B4`mwe}1 zZm&Tbv~!^&@io-Z^sw4RGrd?d!*4ywmwS+v71~Qo?fT!6hF(^aAgGt2v(ae4$i2sR zD~-tHOn11WGVZ-d5NAw)i)N!WUlMvsI2V!N1uS(Yad6-9ov|Q}$ZXrlJ!N{~(15UK?kbzuPG}^3x+?o<%I+RKWD6klUJO1xZ)5#8wV`MIRy< ze=r zfwIc5{=VptF8 zsM#eP!|&-Q<$s>uQvuoE$kPP``|;%3#-rC9+R<=48%!dU(YpKbcyT91_9*Xd5;@&V zmr1A7*AG54Oo9Q6lhj@lSaE+erJ8D%Mz=GJXy|I;)+$?mev9V-`sRyzN%%p)!;^iD5a*&2taW_1qFp zVRAo4f;BZ(TCBoL_jvF^>}m^Fck7`x=AD3z! z#dsW_XChLZ;9Xld#}zpmV}1U7=nJL<-Y9#NYJK5#jFF z_z|jklx%JgQD1rll6-X!TGBQi`UbI*eb!*fYgf5F6CbZULkndoG5!bS!kx<0f7$!& z!cIc9=Yq=nW$-eU=G?9o1ZlPkJtWLT?)-V`VLX2xT}sFeL+x=0^eavfX=;(Pc(VPNrYmRtJm$wQBOam{D5mjAU#kYC z2q!BWEyunLA%Td^QoCdfXlT2-wlp~p_gMLjTVlA|b%okxbc41#zH4iq&G_7YZz>XT zRPI@PlDyGHN=(q&NNNpqoLzQzJpWk~FWatzKhL_|N^h&!U1Q0fc@%L+ZAiK`HAOva zE`dZlAww=yW)gQb;!iAHl(|$cPP}JPgte9Lnyg-r3awX)-Hj0DTXp@~UN>MO#tISW)v{SFTEYZxq@ew@PmB=WAqa}=>Blagu7@zRX*!2B{HPIc z&R5D7duij8CY&% z@a`t$X1vnGamys!9LgR_K^vqh)?)Rq@p>ZI3>P%fmE33q50mo-(k{AHMP3Xk;;u(i zIm*vhcP3yW_lPMFr!chlgPiC5MDTmW{VY1(t!gtqk z%m)Md;TP=wTcM-Q6xU(&eNB6YwqxUPYOI-%R@!L+s~qg3&7jxV#gnTRk9ya5D;x(+ zEU8;6rzOh<^-_dRG^a0(YwNr!?(ijtfwTV2_4g6woJxH2(O5gwmTyB~i?(CIcNK})yac{73 zkK_2Qr30It99a!o9MO&kJbG)uA2iEhi%RF>3dc^|o8fzzt_gF;Pc*p~n@G2U+({LV z-YyJNWLc_C&oVC(AbuR*VQ#8Xuh5X3*l%13lxrfEq8gtdeg+9AY>Of({GnQ^r>i%N zH>Fm#WyxY4E*?a3LS-A%YoWvqBWYe zGQFW6Ld_TfsZFW3)d-KTjqG;I2sk)vYI7i(>J@GIwWp;MIZm~~)`H5h!)&wf0cp$Pbf4wp0hL4mF5LQn@oUuqM#xqL@UmCS_pSW>7?^ zngP(7$Yd!B@cW+zGcjsB!4e5UJO-wi1U~3v zPLPmFg-V&X?yVjghI_7K%Nir__FtI@h9LbJIpEv3Zp?qnL`eTV6H%2E`R}|VN@>Mz zUI3LZp3~7t#!3pBPI|4Th^mrGhnK!->pt24$l*W)_R?djuV_P0M*JtDz|{GlWqGzmD4SZ&O^Vd({q_>hiAFPlx! zfxTS21g$tuY;OASF(R?)B`mZu0$#15n1Df&UIowgL51l7NL7V6Pr#y3^vIgAg$-D) z3iDQhiTm*{M(t|})?SBRU>HQdiazyqUMP^*r$2<~TJ~}8R|q6;A~(P69}YQ7wYGQY zJ~vT(+%9xYm23Xz5B&blKys>?y+kX(EVhHe-DBroH0L{TT|onBxJ_`~;cT8qc-}B$PPf~;xUGV#x1RxL){hddwGRx=?D5l)1na+Pf5Olp7!(r1|4~ENf`(b6g4$y|8abP&;v_nWD1}(vL+;D=!o@h zem#IOh;$1=HZ1WbzUd1S!KRTRR{m|q?{QEWYHC+3%4vZS8P{u$L>)Axm{m|ScRuLk zzCew*db2kdWb0S|l(HL()tvoi&8&fvR$o77$+&rdgdMcW0mf3H2e2n$80;EJ$if+C zaPwOho0et+$&EBe%vV!1#;YxJsB~s;Wyrn%uTP`hgbi%}dU4UO&!Zp>3WoX(>gz

zLKDNed#s9<=9z=BQZ((+v|;%X zH=Y|>mfVeNkTM$3#$PFDIwER9qsQu2UNX#>0})EDp%ao%9?UX=)z{W)n|Rq-Va_OX zb<#%f4=>wPJ{DGF+|EP`ONZcm5YZD!gw|XTHMY~a$RRO)a@!L33!kqYNTo& zXRbHe$RgxWEiYO*OcbYa%_4-n?E!|k?a0Stq>LRjzxsT2-)N`Ba9Dht!G{iKc+j?_ zo(+OZmzU)mLn`j#fl7rOGSjX`)+rAV*t(9tq$qm+C(X^-Uy zdV2`bp1mx{782m-XdBXE9!G@6n%z-gjAmpO0oybeJop{#D&m!j`%=ca903mh9!sy| zcc=Gd97L^I4X(Kj)RM7^#3kq_EP}~N5p?pH&K(rGgSTXg%`GIM@rZa8l&LywR&YEx zi)SX$zB3!U$kV5d#=vz zk)ZGN?->2L(}}7rx+r65vn+S4EeXA_8Cw&5L#<2->fyBEL zra#g&}{AiO@*ugM%HW|K934b^PfTe#wcTxj^D5b_+;&otTOf>d5u_*1g0SDp+P z#UtK~BSqZfy#X&#IbM>D|&Eh+O!Y%_+Q}l=8TQgIi&Bc ziB&w>A-CCWe})b)G%Ny?QDoa39|RcVlmU_VBhcg$mvG7ZV;?4!sN4NnU)(9ddAzkN zBbT5TzVvUIHNn+vo1B(QkMHrbXaU_rheqxpWt-y`X)x`qmeG-ry$%y(RSwT1!c>KK zRhMc-=>Jml&J8r+eE)SS93o>V)H7giWK|-;Nn&!CLacf*UPRKUUK&D>STCfh#XpoN zHZ*duBfQzCv-a;I(8Xr-fvHTbz~cxiA@;Kmo?=;5+msOL+%f5We^orp%hj#&aZJX7<5QHz7aYI@4VZ) zI)rsGslVQ9`)U{|o$wLz+!^XvvbE<2-Ch}CdSM?KH@5K9u{r3Gp)1g&J0J?b1nO=# z{!G+4>8+gvb1ZjS-P#@I7U4%Gt0JR5ZMVF%%v%|rThe{wa-GJ12MqZg!Y7!96wws8 z+^QC{1Gr=X{()h@e5Fucr zAv)TuW-<2z&$C0|F1Iyll}r^=Sv$0U4SLHict zRe8`_N-hUwq4Dgmk~f8O>gDL50CwhsyL0ElpPZo>P%Q0!3UbjJTpi6l9O%u@2ADU~ z5Ok~xA{6OP0Q}>SRhqGw1`k^M-r%kEi$-npYdJN~+A0R(D{Sf-nNZOMdTWSL#Y?iv zczmoiSOzbpVt|@O9JZP7Vk#n7RcMuZqO>k~Z@{v=L=qLMO|ZCitkj;_!Lqz7?sbCu zJbbfa1SAh@SpFqJ93ReJkt0MmC7aBW_*duiBCe7sSBFVleyg&WmSyznCbI0Lfa%he z3i<8uv%@e4Dp~3i=bkb@(h2I65}CCBYQ!YY;imeg#L;gYw)L>E&PWQLO3ueF5QL1a zWCXQ5=y)_Q+Rd)E@bA(kde!%Sa|RG3mxdWnVA=B!N!K^oWB9 z)=vgg(8%>CWpcd$pFrQb%vk&b>8RmEPvu})SUmV9jsad4rKzWKjjQr>gGEKMaad_x zC*o8D6gH~|r}8jA zIa|Vm?UUe=EntjF!Al{joH8_j=%TeTwd`qiC9hSyuD@{*@D_ zT`zJ9S*0e_b>W;nwvU6Gx?q&bDVPq{D#8sfZS-)~m`U-WxS}o%fa^*Se`#drM~-B! zO~oTCZr9&$b_cPB8#R=OJcS6=;H5H!&)8Ep&yfpR^1yYeg%+=cw@!^5P1BF-?g<|S zB_d1}8*&Uwir_^h;b*E%#09k#HIIZO11)dv5gebA;YN!Hk7}e)W>J-b;i?53R*NJ~ z`n6S@W&&o$va#e8TLsxf%O;iNZCRrk$E2YXuR{C?xetc8yV1Wn{BUVYYde3nz^29P zlF&X_Brk>Iq@TfvE_$x$k`ZIQ5;Go;tJk>MwzwKZPQ|oR#CoDSXPmcQT#JILlk(c> zL(aRnt1yM@Vq;sW9OeM2#d|%DH|)ckPRdN}+}D!neu$YFkVy#tdjc)*Wo%YgzK zDs!Iui0o2UpOb*T;H0OV;Wt62N#!du!>9{t6rKre+nOE09sOX(k&u)3&n+H%K$$B3 z;bZa0mCZsgiqp+&JRpUfnsCPHmSJ=WSe?L%L*3{DhaVzazIO0WKSGXz<{Dg+sb+_lNmC&~qASrs`$Rpt~0Iy;6-FEFgWB z8&kO&NdwTzEFA1Kt<5!4c_s>2RDA>Y|~|*;GBeOKLD-^m#xQojuN?d3YZf2lkHXM2CdhM z$mwBDu}TY4KpGieDA3fMs6O_*DRNO_N(nR7nk$`q3sCZcceqStN!_WJM=zCYtJ%{PFNsBjITs7^965yA~NLj;;&_LbSD%&m)4&uAa;uD}y)XZ4C8OX6y0AX{Gfo-g(#Qr$-?FG9l|)mFO9Fee!FS*E)?yHKcncWJMbKH7ZE6t>QMo&yL=U+Gnf&5+QXVunI`fZ#(SX{8)l`I<@3AB4N zwH_&}ih7ijomO*=Hm*i+SApuO*V8qO+Hd1?@?#Z4J;Lq;`0iO@90@E!g+RV1*hlz0 zq3Y5fB0?1+@;cW`V3ZK`$3oXz|EJ?RG#qA>c4AFdmj4h<@BY-zuc%dzn}GV$?P;{* zZeT+Nakw)P#XD+-HDiz>iQm_=vb=`yHVFtm#+1ToH}*LB^y!cbs65opt;IiHkXZS+ z#Yjy_qLs3gBMq9Dj(diVnH6K+#P5BB09ZlXYQ}1JPSHa4sJJN;Dlex(_96{Lhgl>9Sk;g6poQAoU^tNw8C3jo6Aat6OsFMv2VsNjn4 zJM-57cgxm)O>PVs1-+KMdQ}uN>*0ZDBTioAcjlKd+u==-v*_e33GkSp%f+`O2*mmL zYnJ5llgV8j8if$-@w1P61q;TAGOVy=4%ICh#dXeq$mZfc==Yj41D)2D!+T2clx)l9 zYLGqLDLvdd%~oxKu}}+A`ohhWc!&dS#0S=js5(*PKI1?7VajcQTsZhAyy0Y=Kl6`; z@sEj-6Z4Vs<%(6vSwz2OQ!b%1>wJbBm-ozZKf+h4d>4zH?>NW4Wu{_FQ^AVZgbG-} z(&<>D%pQpnY+0*2$07;cxsRzH_z0{Y;k&DfUp7GU5J_LB%uo(vxeZEg*IR(7@Y> zL3PK=3GEChk4LrQ`p6MUXiQ20B&p?i*sI&_mdIYA_xtYS4fv-6&OR&LG%chNo~>L$ zjiLVeV+LH#GF~xSUOW&(`O|e#3YvWqlFs}V)4LR|YiGY9o5qautklFVtTTFMI+AR- zzSiBapmG!E^rtTI)1C1r5v8V;9GJ)@k|WT=Q&ETq8tOtViYO6MdtI z?KAf*QO~l1&O|i}$WX`hnI&(SrGoicpOXTUb5)QUZu`c}B98N5inYL;oFZBM*K5J- zA*NqPD5HktW}d78zonQ!EqtNbOXFZkzW0JzrfOmWXk%B_5u0q#>$Zk2 z5Y*gmKq0C~yb-@j*V9%5&_*Oh(DjxDzBo6a!@&M7sp;#Okm(%}Z;*J?^yBNr4a>~8 zu2m2;&&yr9@J4TvGIdxe5&ell+ScrMOTBTEdhycnwjywMcHx2|jhdGL8R4X0T{<_`=MER~thM^bva!xW4!2m;)+bEU(-xo|IBMEhi@LW3 zvSO(bc52J4V6Du`3^zHGt-E2bD1TZi>H0XPt^P>ajM@ZVXR7 zbUQ%%L_d`c*F2;+V1F*O=ExkVK4EBi_&b2ZGhQ7cn#VC;9Wx%_*0Nq5gsMz&9D&Ky_(p7=gDjIi?{2x=iG6*16>$}2ff}gwdJ>D=~)fFVC#IS z{>~4=rKUMObmM&O%CB2g>+iWZVSZA+C9A# zd#iW1sBv}`_SaRx?^_I#n2|HV1IQn%;Y3^J+`^9NF6W+GW*es50rU7%sz3kMvutI40ebh~X^m0rx1gJ&qOkuoLVJ|C(p!Qd^;OP?TbZ zrTn|(!De4>Ige!Ga}jPGRESb{L`>JH5A6c)2h1Dh%#m~P>@X19Xi8zKyx}`@lY*lH zsHZAlbB{B2T7}Og0QV#9b9s@|`#HgODOh1{x?*UDzvx9Xf^YG4@W!t(I^gFPTnH^3 zkk{_-q{1oU)bY+_Dts4)?Mkp~mDdK0B`(7VPXYIc9x-ti@wbpMtY5+h(Q-O~-rk)4 zadK%k6N-S@Bs|GNrcy0fp#Zg^D`1j~5M1M_d}<#uTE2{CS!MYd%`3xL`< z2M=lG_2E@dM*u>@n&ix=SEdt>jklovTRRSoUs0g}kB&)a>PmAF=6TjwjkC;W%uI2z zZ1)yT8vIr=cs9(?XO0VnS(9J27ppWDQ`Qn8zuMO!ImpU{rY+9mnG{p*>)uB#+jh)O{D3|o=2KRzA{=RCBFF z<~-$&kf!>Q!ct+4F$x|o*T?mw?)V|UJ#6u8w_Lp6j4`7!@CZt1MwNBi0l+j1P;I^O z2zup5!Ja0Z95mvcUHW=PY!|vcw4UDIs*)8HW+WF!Ui`&^4zVVV%seZt{;AqMSO0e6o@U2t zcQ9K?zEdI#mx*)?Jj$!Xx^ry)wMd<{V+y~s3$tPh+X8<77qY~5;;4j%jH{_P(J+JQ z2td;l0-BT)dfcQBV-?-!Gn=>K_Rh`hF}x3UQA0|%uaL}~?k!Jb>Q;1p*UFq7#+MND_}5*AlZC$rBP_$o97IECX?oc_j1w;n!-aW8 zoBuQ;y5hWbzN-_3j&-hV*5tw|loO(k-SWcc={Mq=TYk@kwlw_Sr$XoT(EEZZ5l_@J z`t29k_6}p3MbXT{^sDRosa;vj*N^$Ts~_&9pV0V+ zDDbhkpi>b8D2G(H66bYMAXG)E3+fi0$^&f^|DOaP=JOyAaljXLqsX!#Xvupp4^oh> zU(}}-EhUC*cEh&YI+YCS@|yUynwt3uCbACRK4H+>wJbQ!9X!58&^kQB8wmmrqEU1W zRsp?Ly#Z+?H=Hkl5z~Q=8uX;<{;P|yZ6G9-y*UE42#UdnLnp==;(-r0sl zrkfngW&~kS!#u-{XD%y0Dm~w3iaj*NvS?Z>Lars2HRX!$iL+&`%kP%?W4h6X7~YLw z-W{&Xz&4k4Z0fnw8OTddR|-ERb;@+FIL*XXKeIVGbd1V9*cmN#%L{b$qZAm=C}ltSH4S>t;##2O7rGxhy<@pK&*)ivgtQxw*)nqpz+{#sR0^} zG_WM;o*KvN%smmNGVu5b;w}B<2Q>YYMA3nFyED!{sQSa31Bj%1AG^s?uURv6Gv)_& z7@w7Yg7A2)IyX$a)Gn3N6GqiyGS?aRmhoK57yW)1CcCx-lM~i#3{kRWS>vsza@nyM z%42!ltXX`Bezo`6;o^2wi;&b03Z^k#7tB)Tln8I$tnP-#{!r zM@RAlb%?=LHgY~`4YVpdr4}wI_H`F4CW`m_Po)e! ziSnAaYn*f0oO{nR3X@;Q?!^^6WpsvgRfS+$_t{e@xk zmHV^@R;5Z}H`GS`p2(l+6i034n$LVZ)^x$Ut0nD@rPNpfmFH?Byn#5UKB%98v%Ixo9>Fx}T?~lhzaDSQ21qKrO zmTO)&JyrNk{A$jE4s=wHr2ADS{heo0Akmtwt$Hq3A^q;hnJjpahtRD* zUfD^u&X%%qgtAr5T~i6tBefegP!>8Hwn^M)>o@_6`1o#f#ZX$h7%)L&LQtvWKI7$a zxo@N(wBp)>zcj2#PBbetuFTGibqQl&lmrChEEM{~&mx6cOGzM^N>L*$j1}w72;8-j z<3}MTn*$4Wc)2lN4sy95d;+ws4%-ZNaKJm&1du6`ThXKHREehzLNhbCp$RQ_9=Z7< zBe8*?OTIhhGlrQviU#UWxB$@^mi9Q!phu7GPvb5Mutj`}4`lD~rq|_JRNulL#F+yF zew>ID0!GviL&6nJV*|8Tp5xqx4@H$p2x%@h@!s8&)xD8ulnF zs62957R3ru5CLdt$bf1c&SQh%sL^BVg5L_4y7+l7W zaJu-ca2nw>;?&vl5;vh$iYbS56Ka&Nl0&j8-HNi5CMTU&D?Bu?f9@H!oa}ns{-H=d z>ps`dXIDQqvhGc&BW`<(joTDvQd|0ch< zj3z_&bSAI$QXu}l>iyH1Mf5?L8Y>PbRSu-_L3w?4MzU_c*m11BrHU-D=D%CQ6@cD(QS0D+>KyI}2B+xX)+bw0<5_xpqD|63o+@E6pWNf_{$$UP^|1E~^#RqSBc< zV?EL0kf0|Nm|o5@8yeqBEx&;mH6qg$(x{y^7Rrq?shBg~okCdw8dVf#fvymP_nlr* zD3Uo4bbo#Db{Zz$yb>^)3hLe=eUflSWV54ZbiKMJZ&no|N2T@TBP;CNY$Pk4ZBtXG zOiidut4zMWdZgGAR#v~0i|HXy$@KgtjLV&6>6(9x?xp|+8&07CGDZbCCwFz(f=i39 zCOvD2m?=tmu35NJH7K)Tv0;RQ%3q$uBe+m=7#3KxB4h!&_P<{&RcsL^XIrb3yRc6- zuwjH7){0v~tnUc@UAhmGmVQ)Oq4b_>@}i8{-u!Ydq6>$0-3)A^O0@EjP934|H=s|W z!ovuyMGR@r+A}gk6{9gT<#P#$875(&0)L4y!5=B0S_hX`Krp0@haZ&}^^xsp`)L2( z8n(>SnfZs(jfql7oQ6f~YvZjThem&+!g|%my^6XJX?>aLr?!PM!x#no@S({(lPa}G zX0W2eDujQ2oVkJ@?jI?|(ny~jj7jJaa+DL0CZNEQA&WAnzAUs2KxO$Q)Pr$Pd4?huV!|=r%n|?zAv_YrR2DPN{k3&fXMrNM3f&KR1S&71zzK z`<7gAz?v0L5IyUix$6!^{Z2vA!(8)?CK)Nl`e2LcpNfSA2KAyaijD?<6U!W z9G;QQpl+uXCbMFXJkaFpT>U|xueD!`GN*H0OKGgqc4fK5O6v-KQcUZLUUuBvU!}s( z8C8l~QF#D4L++%z(HpY#`@&W~K)1`^`@_*1u>$4p-ZgyTi^e!kzp`5<)=)~|Z+Z_? zD-s3e5zch)ZkLNQkM}~cJiA-72ZkouU;t)SSLCAFjYgDG$MD1jl${`|>T_~!o;DYq_Zk_O5g;iznC5y?Y z|LhyS^b$s8l#^6HtrD`ud2L^t-L+5|*i$4s0%8}~e_jx<9i=|^!Q`#5%PHvNs2$}! z&lp4}W$is!;`x-sXD0AAMe<5Fe~Xy5(o^y1H|ziH2>+T+r=ORfGqpAG9YnYTa^0fO zvFj$t##Nir@TByI8?6Dsh?+caJDq5PRm7l;NNT&DsI5O7i5ej@s??E8sf|c_5|OlU zu=XiyQn__7y$>)A&EywEJ%+AA1f{}}r2HjuxvO(H2WK{s^=s|c-l=|HbFz7T@{RWN ze2;uPH6$@m)-8O4{Q25CLY`3$6{HEOEn-!@V6{M3xmc2UFWB}qq73PvCRH17y->Z* zjEO-#4Z=t(&_>BqmSa!h%P1y_JMEF4qa*rwmt><4SdRm-@*v=lU5tvkz*mU|3>n=N zfjctfcC?{G8I@2>Qo%3*`?OF0IQQIZ^B)o|)iQSaJOs4~oGAeq`N z@VRVO#-pA{)yH++$AB7i@O8@VHFQ8)+E@6$`1-~uOSfd(th8-b+O}=mS!vtOO53(= z+p4r}+xE-T-S6JpecwBKjJ?Mi-{05~YtHy0=A;RWH${nVEihBOhIHlD&$nAPK|!1%B+%I&o(g{_a)SUHWH%ge<08@-g1CXiMMKk?&rq31-eJ=jq9ob{He0ak zEjU#6ls$3cm!G@L3yQ03AZiyIkpOx;l7Z>?Q98?-j!AjZscUMQDrM{RaHZ*Vnz6x7V3a)CLd6Qw2KG7>)aL9GS~^fzSn4> z1o8}reBQ8;_cfClH*iVVjeFY=c!zY`rA`QIZWY_yBWU#nz3H;3H&>Xxb;OOj0AwKk9X|gL1%!VJq6%8tI2alJhXR6CoGdNS zU$Ur`i>3=c)Th7HmBT~T5K#*u$O(==&9dDYGGkLq)z;ofP`_93cYvPdb|=pYgiP)Z zyEu>DFGn(8UO%6KYkY};=mkDS)l`>JD7%YJGksH+R`v0@?Mw<1NJA zbIm9@*Hhx(|1zW0%UkVVBZzRHRqiVjUovU=pA$2PkPA^bO)`UMH_LjV5nbGjEvq}QYj+~waIiBI z?{i%!b>Qm7f5Bzh`)s@gAM0HA!CIBbg;V5@G7~6*XJ#4^cQ7NGmZj5h_jR|7PKdFT z=ti_=R8$LHH#r?QYj;wY=bzLvEP3b&CeB(L{>2#-tjng#j*h-EInKhPWejD0vs zvt{tk6h`bm{3jeW@-B7uf?MR=z^~j=G)UYKKpVt$wx$-|c{EM;S=a6XXGQ-6hOxUx z@8dMYY8d)k2Gvt^GY~dtIwx%qoAX6>Kp=$mf$gWf=is;l+B&_Kscst~xNm@P<>=Qp z5d#BXm_kb{{GM@$YSj&iAE?vI-Amat0} zQPU~B%UXpjZLNPsC?1@7))kmusWb$$)mOS(N+ODZB!Eh!QZ+g}yF%+VAV%M}p%pR; z-lUJCOA-Cr6$}{ZQllkdJ`<>KBDjW9E1wz4Y*@ROtZ2t2o9sq)bQ zXVGeU?}a2o(JB3C5cT`9!268ICQLpIg2>v2>HPQV%H6r)KJ^e8m~#QkbRy!}aq7pU z^!d@si2zE@4ii){T~BdJauomht};K&i`-S4bZV@GjV>FyMOuNe+J|pA^Y+1;+Nm|% zBcgO}*KU56NmSYSjobqsT^&kWGO%wngqJT9Z5~##)^m&M^6#sgorMjuMu?mBVAT&1 z^=5i_8L#MAQkZKMR@Xwa#~L`cu%+wQFLGzV@TWbP?q?{U0WI^kD4bVXc;M7UpTL%2 z*e|=gmAN9mGzwD-YKusbH*F8zojIqb=Y&TcQ9Nt8!KpttBn&OWQQ52`aTb5#1pA0F z^+jfr1Gi#iFUjlsJ9Kvajt3LQERlBZ@7a6}n8gBR@#7xUXh zPZa8F1wJ}6eUko^6 zTWC%P^9E4(2WK*U+uoE`k<(X_vJmYQ+}RU}8`OXo2=0fdTq99lSv4LMLgB1Ac_OynWQjk*K%52NX9-0H9wy9mPltoErv?WjRsIa_b zZ5J!6<)InkMViG-HN-Zf*GA%3i3nl^(F3MP?2Yt*5-ihu++Sz)-9m{#NlyLw0C*cO z2eRfge2(><417diMdEj24kf?b=Y?lP=rSGpQQC)O4@b{tS%R)h!X(7^IUH$miS<{V zmqyNA%m1$PuYbGAg!1oEm;085|7VZHOKIgVr_N3qVvpH4mIQ#nBx=}%G_Ns5WIsf5 zD1{21p1JLa+0u>?+~A(#n;x)h`4CP!)M0~H_`#>=zw9(Hrn0-cy@7fhObhfReKVmL zh#4mc#^-sEqKox3eYJm>lhl%~Uax^Lw*a;lRk3PjdVAzh%3W4M5MI)I%*y2~+goNM zrDr2B=3xBE3$c}na0p*LjyZ*O-{9v20`W9%8nGXH zvVg=E*?lOziicp)v_mG#=?a#iCWYsgP}7Hwf_cEBX}c_cD5zjRd`cA-lo3uOf1u4> z5j|{=n(8wq<^?69m_n5}#lm$U93_hp9U?WJ{ZUKDzZtC}u+g~jJD-p^2@q^dm`*gj zqX&jdMc3xR7(I22>&H%k;CZb$H%JsJE@LEmhID9-8A1^HsJrV;Z(wmwt(w^UlUnDx zN(AANXoN-Cc{Hgw zJ+;|V7YR;$g-VmVf$q?5R1bLf22;UB!6+RHFE)Wg-P512bDQBWuV1c7q92Tv7N- zjD(vCLqN@ZnO|4UXjufF9~A)|)t6s_Pr?(5Q5zk4B*qZ_1Frm@*4Ce*bk?Q22Mo{i z8g5?o!I|{;Z)F*CcXqG0b%*57`?C))053HKc>NITGmlqqPf^zKXG9lmukhxo>x9_v z#n(#i30sg>=)yjV?@ebFPdA73VlI#u=mSLN^JfYd=nbZh#<4q{`>UX2 zFj8E)fMJCqJ&aAZSeJptP%gb64M7-ljN4(r_OPh2D1$Q)Lw8|+KU;Jd z0c(k$@-QHPW~i%*h~^791mkjXOjO>i?e!y>%)A(}1(^gV93Xri5M_V(gW=^!s+`Tq z0!R?A|JY(c;#3u@wpgTlIJS2XCUvB^ON4OLXYXP}$L&zG49WQ@fN%NTJ9r(?ko2#o_HSU39lxk*zpx9YPN+LlA%d7^#IP>JaQ{>;mXzCe zR+1xPk}?QN>#P6h4_Aj#Q-aP-Q)o9g`Ieex7P@K3vGWLIwmPB?=Y;s);g$*gRdA|f zZGSrEFq0D+mLd4X^=d9eJ9Ac!fJ0=WJlUEDW?ChT5H`{ju!x_4h${kY6p(;qAMH9& zeSvOCs9+aR##$18=H6!lB3iK6d7z~JtqwsQ@+5tPEwd)zDSa7F}qN4)|s zjKHOa!XLGtp0Gdh+Bf)3o|3QrXVDYG*OH`-P>e6b*e;2*13M$`2r35U(}|t71-mZ; z`$|`5h_;IMXQ+G&k!c`}yq;IX-dgZniLP z*E-ONQXa!d3Fvi~g*Ax#BZ^2BIftrnfxLq{SrBwB=o zPF49pPJL3dmu?vie#*uTi^zDSR>EGI+AO?aP^m2^Gwme ze46@9p~9s<2U=OZu9}T;W?;RUto1MUn^f$M$2YE6(YR#}RMv?TBQhfQ3X6`p)9`46 z^io2$TDs4B0jDVg5I?MLGJ1NWgW(N^q)wixaFaN2=jbbCis$T87wsfyfEZ64f$Jxn z6a%sPF}M(VwG?j*n=FT^PF)f20Oj))=$q zD<2FR?8{*`yw%9}SW+m--K#^!{C>+oV@a(MmoXPRKsMr>iQQY)vqSPenU<(olQHhz zYN?FPs9GIQv!D7NS>I1QhS6kUNnf!oS;vWjPGj?%Q6_Mqh>P^ba8cROOxLp@aSTND z=p+fube_CFR=U7he*<4ZoY1HF!ssOYjlEzKx0!0=QfqA$~-Oa*&G? z9awg+i*5G#YCb#0ANJ3KSvJhPV>8>_D%S-fSCJ$4R~1n}vY%BEaOPp>lN*Lo)Rk*l zUHYlKsTe9^t&g zM@K)fRGO$NV3Tg0yV3Qz#$)3~fQ$$pS<8k#hj<8%clit(KCm_78h7}}592sh5G76| zcvTEbvo9qV-#~KjzMLLgmM#&UA;uM|b_Ms})q@VV!$uxP*5YK>S*J_;oFi-P`XMqD$Wnvqi_jT z!FNWAAa!*J4KuVs@iH7xATOkZELT(w(xQ)BRW?h9Y9~NqOGm4Zkqbv(fS0lsapC}# z=~ssflj^(aCQ({*$RWv0$H!M5zEdkR1pQFzJ{)mVtW^LvRp_p^>=w9kB6!NUOLq!6 zMT|1a8$2bNOV!5Eg3qhr$A+RuEys2WWNt+#fkYQYo!qtj=yP4Pg6~B>8#R|F?6coB zwnyBSU;Kg$QXyee+*-?Lu`y5sPxOzOwjc7ID8Cdzuj?L5-5_Y2OIj7eAA(!#=-sfY zsfZNbns3Yr7oSEzOQi|RCUQh2T|(+-%Z#h%LNV=xmWR3vci%}i%bKP{9BuTHw{oP? zk3sE_Y*gW7mAMgR&JDJ#01{4fv<1XGhW6rYakSJP>`I^4s7_UW`gbwSsjL>QxZHHI z1cSY+XxUf{KHc~`t3W?jx~8gh%=SXMagX(U!t>r5%}1x(fP8NC%4!I3%g<#PN_@;m zzx~2#_=M~}>gbHNdx8u3rzs_p=yr-E7ytk#!r%2`ss5d+ zNgFwu+8D~%I4U~X+S=GV{;!T~WX#lG^1(yh@n8D0Op26*CDJAQh}6ui=5i@m7LTf( z$B}j-#+L!I({Bxk8VxX~5P2@4lM#qY@YI*=PuSi^Z;@r+b+M-YIC-ZiV*i9xt>@-0^$NWD&U z!n=qeR-zbnfqGfAXw&7nRd93XU$!Wi1-yGzsP&@DxG!!o8|yICj)2ajy_?ZeKK#H% zrfxQTxm11cKJi$Fd+A_%)^1#o!b0#T*?SitRbJ$3h=++>WZ038)QqC$1w#thF*AHQ z^4J7}Y(_u=Ui;k>6tFRL`)_V-B_}QWJ;LJ!RVYU7=Lf#o@q>g#r^A%3S%;z`nD4S*({Dt1pT_-E!+snh}4_&-9;eB*-1Mexk42Wc32W%L; zH!c-nbZF%bTR_~X3`rX*&$2Y=MB{ce*_WrFRXcC7SF;%Z`jJMdXFCavzR~ z#_jQ)QV>MC`5`C-QfL7xoLJRQjaB*T=i!W{$z)$r>vOIK!S}cKkoVBklDy>(ZQ zMzC%oUDICvA5#3V7KRfAuD>DGJz)7z&h}5-=RaeA$@#nr@=W{$g0U>z$IW%X+}Q9E z_M%^vDD&FYB8H4)KUM9Ox}5e;hbVsdhZL69QIR3ncL*5%HU$46wJq%Y%@XCEjGT;! z{_!hpX=L^NWb?kTI&;j%S2HF~Pq1%MgZDF7W3i02T=;ScqiWpv=)FE9dl zVwANebOqtyp_l}&xx>j$w*{<_uBjY$eSy;XmtT1@=c2L^7z6?g=yiA6WyU)2N*@DJ zQDy;W^aaRM(4Kit%FgQ~N2tof5Pl-o`H=DwZD#EfdpE zp4nU@9r3P&xsn>2SJ#IeXDrZQFX05%KKe61G5Ph^UwMVSbZ_nR9n{3X4eEakjQw{| z|25g8tf{D}jQr_LlM$0OO3Y`2tSK}e2rr3ZR+=C&2Pj=aEe2It3AP*vGy;*40r0An z8I=q+jDd%J_M9W@*2oBAd@g0;NzV8Q<`YQE6S~C%LDcB#w(N0H|F~-5Wl?EE-2M4- zrwCB2YjzFJM2lHIMK_bN6&SFT;sx9-K*~VF@b9 zXxy;iw+%n010YVRSEo~p2LoaK{QcbOPUr6?hFabBD@;X{Vq%<1^U2ht6KHVP{#bDy z%+ZOFpB*JjxqG_Q&r-obzd4vsN`(0Y#~ex|s{q-k;4uqXCTeaVD}JWgDY0{sz(W-4 zjF)#yuwE_~F>m3eD(ys_f$#oy|Eh~ZVk4JJPo5MOGMZM-B}=7ORk6bC78_j=F?0bg5IWVm)FSESrt$BL!f@YEg!kqsbhyC$*Q%iZMJ-m zI?VZN%itp`&H=(wh26*1#|-o%LgV&=}DFG3BvRvyY^ z97dA^W-WNr@_UB?`vNPpBpmi;lY(3HSv&cI9Zg0l&<6>WRSPt##D|(Fo(%b7c^s1& zJRwK}%-Qyea)GKnicKSSLx^z@cQe>%AqAgo^4FFq2$(%U(XUnsj!htwpL8aN$uK6) z{OlexiTc`*tWHvTX&Czx(FL5`g#7l8O;OGCIXkeyJFN&Km5HWD>N_O!8V3xmA}z?5 z^E{8{5qC1y>NlSJ!6%QK>(msIyjhgX^|x`QT1(0r^Oc?u$An457r7C!Q)hr8FCGW-K$j9SxP{qI?-<*kh}~3ASjS=3xil0k(>YCY_Yi5td6B_QwuV5J zGsC72R(aAR(ha=!ot>kdk@UaipKU|sY3BA&8tUS3#OfCej`u5dZljmri?~9;^A47I zuQQ|Tt|0UkYpbXShS78NupVYw0Q;zw26kE$tbgVLD{~i)Nq4CC&Ws%Qd<$X-0a@pO zu!dTty=op0S!E32z^-Vc$u=O@M~G(rkwP=b)-Td5w$3n^=rC2yEI#D2@oK6guJ?Bdr9jYcJrAQaPEbDQc9|2B9uM_m3 zr5`~ha6V4IAEKN3#NxgUuh=`0Q;6J|!5@++gGfz2OmqJD;No7MD}`p46+=_p8X4i{ z;U%1L9L8FouF7Ip8S+~HN%;AT?irq0xPkXN)cBVt607(6i*$jIMno)XbCJRtr)>Cj zAs)Rg_^^2W(}{b^1TIza^jJ@i7wAWd9M8@YkcPL!*i=g2k<<>pIZ*%+Zr{_0J6nGIR~M6tde9w6w2 zjppX@1Q(3_k=UBrIDo)0+mKEH%lix^1YP&d3nVF2fC1R^NId;U@F z^lYky3%`AJkih>Z@DR@s2fZ>trp;Q~a;ashD-N5sqOqC}eQ` zP}=^~9mc6~xqh3Wx%!v4l>qJW>gwh5;%3!k6DlqYXm2+=7W9ZC1J)Y?_sL14$+=!# zd!#5o{K(ntkrQ;EE_QYZz@hIQV#dt+x$>9&Bx#$Ki+%UkyMRn-lPeqAE$wl$$6HH# zQHQ(mF;0;+(q{RdninaQHHE6hAnv!DVLX{EpRW(N^QzI6#t6y6=G73Xrxhby(Q_v0 zRP8c#@&>Xi;a$V=CBH!mR)XOK4Tk!pG-@LXbXt(PgHPcJ4EWM~z~=HBM-)Q*KPG~D1;~LM+~~yyA#HzTkg&SM|M6s~ zIg|;>WK7<4X@jrT8bzN~$f~C3LbNQr6iyxU9E8+LnBRA|!buyI!n8hrqL6)GSa{U< z`Cf<0E{QoT7{V<=Jpn3q+;3v1LA;sT$b#k~21RH2+hI_~eEnFfu`&>wdmg_Z;z+txr$E_qTf8>m0@wyuf=#an!^*Ws~ z*FBCduEDDe8Q7*GaA|%a6Vyic>9!aWP0FUdo{!O4vI$2ZS@^=7& zax6?wUo4;`+Ii4-Xe|j7CSSKFD!@)s>sd(vhnnS0e=*qOMYcis1IKq=1Ce7)*jW%A z8kR?JP*y|mSnG^43Z12PG*~_uPkiG_1y`y(p|_%^;yu7#psWTe&wHv@sJGAHA0HmL zz@()4Kha@5?Y%j1x=n1hGNr4FnydRKG%$UkapkJsDN8=m#vDt^^_jE)Jz5@oLYH<% z?rfR5abZnOnXspsI5V|DH*>c^^9Ut>ZFfO~7V=4f%8wVG{u#xKD$matD$m?1{p%gIIi$h*@s zTt1}kfJN3kIq{F+BFJGX_>NL^SQ$|v*GR)MJUO0aKYmrW08MNFdT|ig`h3HiT|UQ1So*{<@ihst-)k9{Y4?T4E)%bt{kW&h{}<2rB5m?jl`0K^WseGN5npB zQo;aKgL;MBUAhqM-DrXOB^L9woy{A{_UTCxVI%k4!JJ7cgvvw~z3jl1#{f`SOE--m zpBf|evhgZZn*mapve>!P1(!Y*Zo2UgFYRa{NjdTd9kg*c6rt;91IP1eK;)J9> z0AO#MFh5q|xp+U)C$QiIY=T>A!T_n&G+t-0_B-0JCw||i6?~~fSV_{$PW&n!#VenN zdDLBUQlgoOJ)W5c$QuZ;DD&*;64M3_?sT}5pZ=Jd@uiv;a4|pGOUNAwO>-M!Er?@xYD@$S^PXj?dwXV+YbjKRs zl%uJkJbnC7iqGL}ol@IG<}^=H0%U4q0_LdLrkdpZ;@+97wXpiJJA4L);$;T_@0^vP z{)43{Xf@>CA81v@2KTCj5wD%z$DC7_o7&+gq-$Ncl`s;BLG8Y>x!3`*Y-#g-I&7wZ z(&lJKJ?s`IkWRHkLt@h=K#;GtHtAgpg=ATg9fZ-A-r&M-T$SW5Om?R=^DE=N3gz8Q zIE5AkdRdnxt}>?}LwGl30s(Q$uKiMLm0BYdv$aZVT;+vy|0q?cC8EWq+ ze$5%d2*I{iroLBeElIrmYKwNg2(=TG)L#D?b~551Sjh}Kb%GGSc{}gT#?7vif%zrh zaUNc`{$vPEC7)#@PkECtggBL*lsjNs`(`#nMah;O6>oZcFyE5vy?O9pz3A`9CeH_T-K)*BEMq_m6EU zeCoRrw23l9BI+`jvy*aPd{?zQ8OChg8FJd>lT zv&bxq*Jl}T&9#d6JltjBeOWJf7f7MAj5a;>@mtHz6oxx|rFoXbG%fhWx&rz*GmT*7 zqv74=uinJKlp~JWw*zJx?*ByV2}?%FR6sd&J*%G!sw4*3q8zIsUj|az1l54pYihzF z*%D;L((dTeKi2&D`}2nnfA_8w6r+*GTJ?u~CXWje8WGvOV4cbLkRkh1weY=&pOS8kF9IvsPfTXcnnh{a=id0UDl{T^G_mSbtRm}l8R6_-I`KyC znjkdfS4q}MKoyykZHYI=z{mUZWwE}1*D z??rM~+$|w5p5o+o%X7zSCz~0`r`XW z(GA%@h~CYFt!8!v0S1v1yckS0^cTqrl6_GPYGW+eqHu)QRt80YR2_Wst}Ty3`HmHn zSLlz_U3D@mi0u`{ZLmFf0%i^pSwln!365A-X*BJV+rIad(+`&#MrZs+2DQ`djh9xv zWE&|9X~!hF3FJ%X$W%0*D5epG6-86!c2PWes7%FnMQWK6IolWfn3ULJrL2IDMS&OU zH0@vwq1sELY!+K&69LhZv2<7Y8D7=1p>_Azah8B++=W`P1n6F<4znh+7aN4(Nj)9! z;WE#Sj%iF!8Uww~QN(9Lv!xZ9oYvk^B=bUFCazLhMrB<+*1VKIpCVc4h$rixS4pWm zq<|)}G~=;THY&g?yxF&f@u`0bx?9Y*(xLkD^noEif5#|UC+l$LT${={^iMY9#F~DsmJS=bu!8= zbxbduT_W}r4;WCiW%L@MDaEKa42y*6(4%`FygKrEdP0^?d@yS&hG#@Yp%bD_Cfoo` zHvj50*N^c;Mo(DiugH7Jdzi1l`(qm1Prvbt7X4+UtwC0zmsb>rXJX=8EawfqqJn0D zD+&wsgm4@Ntnz%3aZt8yoBmJGYaCo8esw6aI&V_qoMj3X*}fCnPq4pgiCe`u;?wu^ zh2y_5|NpEde@$cluUaBxWNGGXWbdZvsORY9@UM=i>cy}01&l6O2%>;uYH6s3CNb0U zK%yAbMCFq4)xH7HW60gtJPWa`zPZE7k$A|q2`dVRHr5S`_Ezc4x(N;|3!tz^;iua- zr?sz|>bDvny$vUszIf7@Do@k942R3)v#zVNuBn|vAKorVUDnTYfkZw@rbKWfhY>jf z{Q<#RO9n^2Xe^V5@$nK2dIxp148VtC0u#bqS0Z){%v82QQEA`P6rR|0WOz{!E(q@Q zNU2jWkzkNZ2+5rjKW;*^)6@d%Akc8U=+oGgtdU1ZQw(nN0vK*HibjvQwuya+e_KOdkyf4Ik`wo)0-Z=UQni%npnbe9>QYNN6@f>Rf zRyZRCGj4-Pcqz?g5)-5loi2S6iBI0s0{VB)hcRAjKIm zPp&xn{k9hJx?9~qDBrZsL1=fXd@9FwzWPc~!Lkyi8bdDIpE)}^rZkS=mcN91xxfj2 zhSy8_Ls`Ep6y~DhE>2`HfY&g4f`KAl73t?iAYT+akO0jPhHgIEp>_SN>E*zx<%ikj zhj{SSSnN{m*WnWCE3hxH_BT3*zpFJIkEESNZe89>mrCtIEaYAe{-EK~cQBlrvjzA7 ztZG;fBehXf0{oaoWVR>i$2LJKWWa^~xjkesUx&T6_C2b~4DAcE8#VaMGYZzKar zEl!Gy-KU4vWhpC8u8k=|Pa-#lM5yx<9Lsb%(ysmOGxi5%D2=CZj+q-%^nL`J+_>x>v;G1S3+_<&5psw`tB{4QsZDmXKn zY~JW$qQyYMuFMte@aC=&{MYr+*vSU z@ib{Jqcph@gyHpTLXO2oQZB8?Br@W#9B<*;ti=SQ^20CQm|}hhJOW;i=j*S&!P1Eq_gZZzl65;mIV0)!6bxFSwdyL| zadA!GPYE*&cHKd7sy9Exe#n7w!1RvhwIxHms%g+M?<`_?D?GH@)833&TqTVkDSDDd zIi1NLn)I-5dKb^hpAC8EWh}xPPL+TiELtlFn?|au*F0ZWa}$5mP&5E}?daJ!aM6su zs>zZuGDOA^G~l`jBFOH^f_xe;)1hV%S2c>OqL!SsQcjB7 zAA;ej^y|7%X*Y2zbr(@=l~Tf^+mEcvyjBf#tv4@wL8@tp5T}VvbLSS$YRbs z3pU-q!L#a};_+64JOG)1N3A|yssFf!HI$h%X{FJ!dCbs{pt4n5e|-0ltof4}toq{KE~{)o zr3&?C0D)E-2kP*~5SR2e8GkUx~DD+*ahAPs0YLSpu#OsX0+o~S!6 zAtp;!@f4cdWyT_Cz;=33!%(lRZ{M~_EFRv+D6c$}^WIlE5wr27qY`mJg*a=-QNA^L zR#{;cPj^(3`JrSZx%4iqZdxs-PIr;)P-2*|!o7E~iXa9vwWk~{3EyoZs9;Fo7CMXC z{0TL-rQk8C>cBUnxz|>mPU{(ykz&KUAM!-qFUe{#SC>t;rcCg54#BY`6NKw1*(oX9 zPmGFABdlYZ)us+^t4}*)liD>s{|M(`QW?uy|zA+J!AWbs@$gdP-UZCtq9c04EwNS_~}D1!jvPnfZ)H!xoY??Mm8 zjNYRIqvC^LepW0cS%bW(gsFuHKDfLF@DIM*qHMIbIGVT5)ZJUiY(8ha4$I8rMV`gO ztt)Oo8%J{OD{eR&OQ

Z&uRd%l437_!-9Oj0eGg0?=6*05F z;QoRXkf@$10N-%pH~inxlfNdY{}-f?{=f7@;eW7`N;L~lMH3wFO(rV=a4QHab*R95 zmbmx;F})BVmez>MRlr#VV3HV;V8ro464FM?Q%CDfS}Yws8Jtse%kkZx3%Oby7sc5N zHad@UFAHyIylmM|8S!&-8IFS=?>Bq<`x#$v@7Z5>-5oZsV_zMfI6WNi<3P!Lbg5HA z;e}dU>0&0krTR2HN~5MHp+fv?#WMR)X<*jARq>%C0||QZlV;}l#pXA;jw+22AgH8w zt$8YB#LUdZKVc!5EX9vzSGfV5a<5B%Uv-rhaO4)69ro(`%3vMGXi$+1&9&N%iS%?5 zW-D}>63Ouw?+W6ieO&97@>!V5(L|ddw%$C~sBF(p?8w6<(HFe@v7RcHxsVpi0MH0h#^5xKHJ@srm-_GRu`alH4M5=yuENczH5Tgg|uj1e@g$ax2FK(wn{oAAFjMb zY>19m#3$)*lfTj6AS&vb5`S))-=icT0#EcF`orPHkiX>oz8zBh12|iLgP_>t%7KTs zY_Qg@WgpVKI1cd3_@&OOMuo|flB@+iCy_(hx5TelK3@GtJ;oJGppD6tDTNB{dHDu` z!{SJ7Qv%JAb0r^KCe8e6ofs*%Yo5y9B=f^AlM9b#j!IqG2Mskx>wS>5!PVZQ@VHl* zihc~agEhJx71IjW^C{O_(ZpzYy-+!dU%yF?n!ni9`$$UWg1yaW8{SqAYh-IKN~Lyd zf!zw3Ce^Q;>!WKcxGv=rrZrC9E`Jjc)KU!QvDdAlktW=dnG$<7?xSH4t^F)Hx%wAz zrzZP#ErKV`e3+?RWgVUSz4khojlp}tGA-|w=&O^Xav=)l_9mW8$q~S0k8@iyOCes` zgw}~mvHiswdfAu&Osb@zeQ|;mUfc=}@{uH~B#$;dd{UhWYbdKyQ8!j{ zXf&=JF;k!>qEU99sd&=an@dJQy!X2##eu$K)8{!Fn?EqLjs~N@&^#_%c?`C%B*qvG zB@+QGhrT~wE%kWyAH)ZJD+`fTBZje8F*>saA zoA2A4SerU!L3g#(i9>v6z_m#H$2`I^F68GR9v?+?;J5M39{M&*Gn(0uqe8T?fA3_3 z$mYh_a)9@fbCoTE6={+YM}n9m=+mHg6bj2@ZO;ejn|ob0 z@n&vuU5`a99cH{nAEZ>=dqSjcv~bNZ!Lk8jf(wu38=~YaV-y~v@(Ge~Atcy6{yyg&?v}Bg!>x{Fw&8>}hA3ze zKm((KNnQH#t9|MHB0^t?k6xBNe!Y^*th?g~=cHWrNW5~S%!6o}mD7;b*~-+&>7b zVpY_}>d?XuG7*atI+<(KtG`=oog|ugN`Ee>hdMzj6)Lq#vBm;eDn3?ygl18{R#oFIGe2 z@t@+*ox0W;LN%fGuKL729c&B~*bgvMi1P1n& z6!#u(-^$1E;p5aPT);DXAidvZUVTsXKV(iXu!}cltQN8Nm=KZ>@BU580iJ!xky`M% zB81t`s8KyN|59xGV0?{c|3MjkYhyaNb#j4s{_JC4@F{szjIKk4@%EsTOs-myK+8OA zg4Pv4%bCJsA<-@_v8F4gX(Q&*O=D#s1WVLD^oyREM{%Yl*(_ z*7inDA=r9Hq}r5E$rT<+rvfd!#y7j3!=}y=HkD)8l7ly}ntk~f9hR}hK1zeaY_a%9 zYPwu7@~P*iz3|5$YUr%qxDwpa!@Fx?!Xaz;%x|ToTX<^QaFtnW!E&`ImYFE!JRmQ9 zklj2atU(G(gmSA}o5uaEG8 z65la;rJsj;MAd}O!Qhe$9?OdQy#Ctjxr@gdxc(Lh?6iu#gm#MGDnV+HWwZ+i=Di}) zx+eJ;Z43Ane#QmK%M{nKGz6QM%bH_)Sn3|uxL}V8b8!=rqYyyoK-NV9geqc@-znVVO(*M9UktU zMs-1B*-xz1uXk3q6T^roQgzY+PFA=ZrhdoJJT?k6S++EqCoD>$-lY?gLVh5`+_{4O zQoVN?#K*z|Uy>*&_7bIM%zK`0q^!9mZ;k$?w0Z4J2ut~&nq%(TJVL^ z_9gptzdzl{Y4Gb-Ge!#gJgtO|HxNzaud>AYJr%?1qcYM=rG~_TIiHYSg(ZO~|NefI zF8i_;jnov_hRY2p*_fE=r)1qj;51TyT}!Rq`u@&GDP}EOp_Zn}Ez^cThF&8KL{!~| zqa+xISKUDA;pUDQM)p<^oYWamwjSQM2JAZxBVz(gtR5t$emn+(SDvz_523t(e{50e zWAxLA5Ag+&o9Wxo^y4-X)`*~Wwy#D`*oRUYJ!rObod@-?Z8U1JU!>^Wr(4z$%-0&k zQ{X3Ppj*Zrg@S8!cl zN`R9gF_YI3VDAcxLIb?>hbZ+lcSj2pMH{vMxm!wbBsTfuiTApu8dAWOB?{a|W`z1& zY`&AK+!=OV$N%A$ayCpw`8O8tKvabdE{QNAWy&%(Elm4`;5F^k#$TiH>BjkoMaA5& zLPB~Srqo4C=8HY*i29RF_3qk9f%&$O$@|x+Nbb1~%B)oJn5rxLMG^Z|R8sEU5%X`5 zhz3$!CJBgGW8+W6*X;hQi=N?(8DfN7W}{t&JJ>M?hA>owQ4ZKd<&2XX0Na*GY{0Yo z&E%@$4U+D!vG`88!o+BI1fzV#?bI3fQ0t@|ZB2q^jX9P86Z}Ka|m|k;I8tb^=)j>UWOA`SoE2X51ggf~*tb%xzBDRFp zejV@#*4v~iLVrRZ;l8_iS;qkdal(!k4wJ}`%HDyJy>^U0ERrR)>%nrXg1Z~YC{*1_ zw`u6rluYl1DRYMH6fwno^vh|^4Joi#Ay|F`IVc~eu(ZOHS1i$`1~KI?k+m#xVTWW* z0o^isqNZZQBmKp>C%CnPo1|{SEm(WBt&I<|EwX=lC~;9-zqs`GYY%0R3{Owl z{tW9R+ku)4Y?n(+z^SOI&{gU(15AhBXkN1fKcl2l7z@#KFDqcI3<&(ikhRWh!-ui$ z18g*8Xf}jsHo%Cj1ADm=g8B|7J+ZgwwfWtR=!auPR%}du9k!Tqhsm9! zW?N)c*D~V(^hofI;_fAMhf;ZhlVeocH8Rr|kOx{>q)e0(oJKlsoIvIJwKS`4gnBMp zU}&R+iZx`>e8cOX;$Sf}j2PL@JM=fT?wM)J=K-zW`^|Cbj(2b#wVqf*uIgZ9$V?Yc z%HG&q$$UvJpK{>^p;_V&|GN7!ak^llIh@LMdQU2NB~>Jyoc=Y<_<^_boDZyWQPCH) zADn%um5BZsl>QkFIJUI(yc+n*(Daca{hUKU+0K|onbeuC6tf%zvm8=X%CM+p-=qNrFb=KuWckCF+wMT0w~Q~d36;!N*352!w?x_C z_Q9u|Vs!AIuj9_2M@~dEvHPjqb5!|yIJ9@y?d%~mw2eTv`xf(~WKkG7gY}do>$B@s zMF;1Bi!KKc2E-Op!i}>QSz!0dhKZ}0yr!Kt!ZG7cTTs~S6FZLC(S>2yPu&oFaQ72s zHn#4SE{H2T=qr+%S}JFsHm8Y3P5lbT z_E1K_@T7U1#G_mPE<)z`);V#l3R443n!$OCp1Qwlbf$W686B{}RX1oR#uh~foZ`f! z)t*`lQkF4_`3L$1Yd-_Q6#i+_$N~P8K_tb_S)HDF7bQ?#1kVElLLA5MXQ9!Vo~<0k zAzQSsJ4=DKDj1aUu7ZNTE|rHT2D9i#96#)9CpUR%r$8sP;2NG}(PcbX?S^jMMu!#R z_L)Fbq%6Sdn@nmw_m%;eJm}fg&8EOI)lCX``LkoVDPL#l_C1AaxlGRM439sVnSTM0s2$3LIBbLw*`e-ey<$jw%Bm= zUI39rnDRKd-Xl=bPz@49}*qY z5U+tptkEGnZoNbV4-86Fz_>Yb4}Tj>IDT!RV|IxaLo_3Gsdp&ON#}ACM2NOycZusV zp)pngbH>$^^TdB6?;(ZR2lvD$Ko)N1^fo`7r!?H>!I)@QoY>J4ZdQ-sA%Wcnz4*DK z5Jp?%H)wHSHmx?`^#n}b8>V)T)j^>lyeNgQ7zU}WR|ZWG%hQF+ z65WZT-SECKvj;igav&jqNF5`cJ*Q=`5cZ{kza_-);9s>B=|%LXvPwXdV5r_XhDrNI}8Rm#F|6+>sMAa zoFD&m5FF^Zo+rrD1S29M6p(YM z#CySL@M7@5CGHjd(ETs9jaCrzq|)^!J=+I?QzOoz*gnr<9N98+n7QtwLiJvbf5&~z z{60SJV0xfU6T=vyk}}gz7i}7bs>(Hc z&sAlDx}dY}Q*1^-LflzfdUI*;k_NIHu`|Hi(W^zk0i#URG3t~4$2 zP>~#m?|u+HKaLmdetG@AMr^0at%~t{XONnBs6%IQj;;y%#idgY{`&HP_w_H+k?b8y zk}g!*^r-;!>T`5~5W^LSG3fp8AW~tGk^D#9mw8Pi@p)cD;i4R?bNX;C=>AE*$WTRY zR~=t;i&^@ZN=ee;nfOgjWw9%Qw<3LI8UIGIpC0;G%9e4J-8uGjvSSj9OD7kq32`7C zj$n(BIucvC5$HUo-5aKBY&IuHM@+@m0`3X_eU~b`2qO%o1Usv->-wLsY{~%ci;D@db68+5;*E zN|8gR$vcZ9&e#C=6UACxMF(?zcR+Ua5RXtiAs)3x%_%U>%HJdlS_SL|`3|qcDZcUs zmrvDLi6{m%DK-Yw!!nB+%KY9KhS=_N;%)W!_9r${vXjLeE<&3Kb!LZ z|NBRD$-gjN|4`%^8Q3Ss2tfAH!;36WQUI==5K3sF4B)q-atmS1&8j9e5?hqDuob!P zOS%F1ZN29ph|*y-H_c$e_^5^@9C@YT8P^d}2dkm)rU;gEq0NeH{jPv{vzM&Hk+$}_ zQSiLr!b=__{gMX$e&ao#ilAp_cn;$%G!m%*Awd=T4K{`;!(d zfDjj^wC1)vTz>!~nAQAU=Tuw~{MB>tPnRp&28e6%&zms+m?Hnr2mZe;LjULs_?LJ6 zzl}oCYC3l7Lx?_qKTwpmLeFzq(>MhJK_e7I6s-Z8f6(Xo9&lRK1Idk~4U;x0D#6+B zEvAk_VloE>e1B@%=ZWPsrh;C#{Z;c<1Kzxf!%3D&KMyY+90l)`;%mLAIp5FKsj2)hbMAum)r64c@zDTNC{1Zw({5RF<_te|X}X#e zZ%!PUs~2kzmM)^dyc)y^yLTfC9ildnVtgMD^A!#E$J2VVIu)m)Ced|V=f);-7Uc~= zAtn-EDpJvn^&W8^J?f|lj0IT>?2J~9!S#)*MZ~k>^_ORf6WAPqKoYX7$$nCl-Zmc% zS{w^DcX>?fVixiT+ zb0W18lO#GSr%j$oE2IgyrN@!%gHM8xF+B{LyFlKmaUw_%&fRPXWmTeTWhKp zNf-}3NOXq}Pob^y;Z%J3@CwRCuBHSCeR)QkOJ;!Gjo_p?1a$_;B5iR?9Pn`sJCYp} zV_nv{vZi5bQpK2&%wwxs5nuZQwrXC)rd%LD=6F^mXI@5m7<9j_mE~4+zW*rft|u<@ z%6t3k)^uXcrZ-6GfSPK(Q_A#uG8q~AC-V;1UbAQf@;3-z@6GO#0{GX==Q#4OXpStY z3RX>ai$Jg@bNvPyk@?+Kx>3wn^lsGZu#R>j?`jfSwj+T<#*)RUzzvNl*_GPV{^+POVFB+D=F#3WF*sUXXdWBLu#W({T zD?M#N?YdCi0r>TDF zp$vK)iaI8KZ+{m35+dzN#oiO}SzVvEi%V7M`~5WY*waEgP1SIXgwmE+8%h zlE!i4xOp<->xmNHTu!eCxmb7z5x0>q=i^x;`p93_6Xk0fZWPM%i}KL#Si#xV6+tAh z5o^lMY#;97$&tAun`UcZU63Oj0(Y~?B^vh*Gm}NpJ^7%PKvdgPx*k!f%)gZ1TI<}! zVe(+7St>tRTS_mrH?A5r(ap{f7w-@5`X#HvTouy1^_*$e?Kc{oAGaAmlm&;jwrq;s z-Zz(0fAnAn!tE|Tj;^rvr(S;72dXC6(_El~cJl4dEk2qUbAm2^moH=}8Nr#UD@~rH z>QLc8MB07v*Y0#mhoKzJZXb7CbF9$#-zb|ddPcFIRfo9IKAj-sz zvxDO9`Wv>B$ZJ0XWhOGhUw6L!<567JtkPa`D6?FDggaln!!h|kXeNBZK$-BgV7d*v zPUg3M?Td+p8yX zI$hE_@OQ(ZFUYaYTEJOqmiK18kzm%T6WFG=`LNkjfzTWs0g@&vU_-kOja)yyJUkaz z_kFz#dLnIgjH);Mu3FC}SD*X`~m$kj3 z#$8%FHP*R4n(q?1_FC43(oqf8kN#Yds5)^f0B8yH>RY|*N-Y7s+g;?S*M z_1r!D1^N$x%BQW%=5NqnzoudS@2%{AYhM3FpyJ~EBcc}+u{E;$;VJ&B3Fp5=ufef0 zQa{lqA=^xxOq>=eDL$2y;0w6~5v-DUA^!9WefIms3UnSuyoR0g&3p^RDl>g}GqGb= z+9cpnS9_UW(>_y9>^XXPNWa8ZnDY=^LG$cl_j{gnu2$>f@>U^1cjH8G5Pn)R<4G^* za%s7$<`ebEd(CftM>6%P4thA}=wyUG{j?z)G7z0D(h~TPXerXopDqYOs={)nfUo;G zHzuY8^aHsfz5AeUw)w;&M98w+cU5EE9`Mi=4~E4;cuo09EkcyhqXymW7orDJg|2l62H;WCB*-6z*&1esuCEW>y-TqIhTu zzf?=xpslTdwf&EEIfZ7?68>VU(&$E(Q`jurgC17r24@Eon|8^zp&Yzt@{y(>%``Tz+4l!$`kE=}|&S>6IVR zpvGNlYSkUAf;~r!SWA_&@>`VQrbGReG@^viRvr}&HH&uMg4s4SPk?D`0f>??0QUed zD_r;rH_NuB7KQw?=R|316xLe#hl9@Bb_;vVNg*u&aP4wZX`oK#zXFU1LvT=~ouM9@ z#YR#(@N4G-{9!G+^a-|V=TJFkNoI5$d5){z_BxR!RFABTv#DPfC9AX{v_0&2&vsGV zH1zFGzYh(K($DJzwM3OoS0T)>0#4JQ>akw$T!mP(1fT%xq?^h0vtJ9(sDrDoX@(i3 zpAdH1Mu@yt&GO)y!&Bpq5nWnX|exC@UM;qVskF$RZ(FYv|bek2;E~R zkFzZ42<~T`l()!yx42b3?1+*( zzKgBnLGua<;!bD-ij8~IDSEuQAV8;|yk}38%f+f83TASTuK|Mj^PWRj&9wCiSLu!vIbUoS zXUAzL1lhDDj5EqJu;p@*v%}^9=Vg6q_Ao2E)!&@?iQdNIi$`cuW3=!^L%CJ5;G0vW zmoJPbAHe}_gzG`w7>8kza5}(?-8)N~W;7k|A*r=DDbD!%wRw(?HIEe}Tj;{bxuMSt zkHxga-r?=H_J>Q*kqtVYb?%LB`b)DPRw5DCM~Bo#5y#M@$A}=uIHhz@+?%U z#fu;eFY=cI_@mdfWqzS5>|#JB7`#4S@8+1{bjVP`&g426JwA{ zWEd|G7!#)+#Mb#nr8!*^EasR6e5RhOR0YA8aiX)Gyty?~bK-Cm(wQSm&tlCg-~CRTio$k3F9>&M%+{c>Pf@!-Y{e|& z2LPV;X~mM9HhrN73E8=J2vNii!qZmWV^$K`$ulQuvm~}y zbp5C^7nBaj-2rPnNrmE?Kl_1LA=#Vffnd5k9n+zJUd=tBg71xep%PEJMR2@c%`>5+ zt>clF0%=df`BUyCZKX7GHX)X1tELPz4ajqTEV$GN zOiXaaN;=H&HcWhE9WtpB!-?-_l(yS-S{A&MT^T%?4b7#HOReBXoX^ zd1Yn!5_r4^{i4={Qli`pi`BD`4rs@b7N@LS654Ir;gF>Dx4@I< zBBA;P$sYdhjQXTaigo-ggN`Qn7U`ZESnTi;14aN`v_P{l;+%*k0w=JICQSayj1J_r zbjc9NeFMH(sB#+w^sW|=lIg+`s8P-?X%d#&np@6Z#z#L9t-PZ%u#IV#QEfeMmsre^ zwv&YY7q8L+ynT{b$G_p^{F5yd*P_x#rHNP!PNb=F@L3*2LVaE`NuNy>pKJ+Ojk?jM zXO_QHX9?5z`=Xr90Hv;syUMjDj|ZJ90g1|8MGP5q*(Gtw^;C8T(ST*#I@^e{XGtNs z7ZK$C_zP1$1|9Lcwm6+PuRemiZp7<&QD#JK3cT#vxCH3KyS#w(6bsZTF0Vg}hrvN+sfs}m$2C+YBiDU}(ZL6%qXG1-D zB0F6AyD{<{VN~ajChp&^RAzG?9 z98j?YacC+hu2xv2N!`gIY`y9V^2&4xywMrp8H~x|iQA(f+RE&kjJ!cxM#XEA zW$&Kl`#6V6sWC%jo3H5+d$@aE3G~K8@Qx~Y0r*1oiD{+k4hxm{Ny>ar0-3L=2G6yJbfZ*v9rmL$gSbMs^0S0-0}!PA@wb&SSxs1pCN;D zka|7g;ATS?*)|ers~Zuw2J4sFgkEhifMtEwB}3e$JizFWJposBxcds6!VMD&gxW!( zMb4h|TYu7LO-G+!=c76m4Fn}qR@zo?Yu`DXy^4LML;=zgwc5Vzm0k)$XwhTp8L4%w zWChu$#7m6zI=d?aJXy6FG!{9#FzJ>yH;g77QEi{CZ0HBXI}7&vl<7?e-0ZL|`@oHFv_9%{l+D~7QORzqO?pDBpfN`}Jb!bAm@EK*R;A9JtjbO~>ptcMGojhR zGG%r-yP-GKW-tY^q3j}9k#5*bg4m;oO-}A&FHRo$SwsQhc!2S83aD2dPNrLOZr-lI zGW-(LZ!Sxd+4(dhV&A2Opr74*=>+dVfn5(|z=Yr16_ioFk-2FcT3uhdQYYyTnO{I?^O&gYLdCh)aqC zYLxMdWz2Dvn##CjK|=lP&_RQ!xH1`5V>tZ@Yjh0MLzi_dvR)!aBC%88ti?DoGv3rA zl`SXLMwQaJ&XaLOOfj>8Zmq0uHT44dm^yXO5kaq6v6EkRSA=TN#}ScEBm6Q|^?da4 zCd?<@kZP!G zwf>j?Owzqe8EuQCOWPy=LTaf>W%1b&#}hsY%OgolV*jz^)NQ$havQYXq)HHc4i)R@ zAL7^o=_mb^3laXcTK@dfICRueUS>&bnR>j*gr5F{0b5MB2L$NjiKP+E{ECd)Ee>_R zSVWvRv^<^Tl@j(cTw~GMib+jA6?aTs6?X7g-6~2Re}gQ;(g%!BaZGgBlfU`l}n`8OR*u_ z=fjreR~^ckSPtxLp5Q$OVc%tV*;U~pqi&zb?X!j;-g5`Zw52@1Rs-ru{TRQ)SFH{~ zjuCmTpi@Wm!8?w(-TTtrR_W{^&Zofj1C1|9KUlF9wCn`B9iY?R=Yz->v{y!7I=M(8 zUDLBp!`HHZtP84$IL3ne?~(K=w0v z^?>+-IId!B4)z(6QpKp~cXJ?E&e3jc?0o3{2cj}+%wzrQ2j$xNkILMCkEjSKN{h<5 zIR6WxVxu&#{u33ED31vwN^jDnyv#;jrU+kEOkVG#kwBJ~E1!q5` z;TvS9_i~|?<>2}O@Lu5RV~a_dA2TX_)%H`;lzGg3e6;<|>kCL95>AW=_+HU#nKxUB zqKY$3$1LPqT%$re!Q3A@Y0p~OF=dHZ-gEUnMO3l_5)74%*Zw$p4ER&M+eZSRP<$Cw zlm>aJ1vr}izVd8Y&A;a=k?U1ImW3t@LEg6O0pP-^?y3a8Vv7%wWfeS|no%KT>ocWs zm$sq?Q69s0y};8Jo28S;Fj1{-61Z$CiqwD4iL4I#HbZv{25o+lutWspLlE)?Y<HXAAf97! z%%@+H>&~5B@Emuteencs61sCLEk%bBd@*TDWfjzg`$ckv01ha~927a!Did z9GS^<8tTLq3T%lXiQy6Lq-C4H=81clf8ENFFUi7SMOA!YDsB#qRR|gIPd>a^m{*EV zrqL!M?2g-k18%`fAousiK<$cw`hdbw6Gn`8{|&YcMo#^`1-ZM^c-JQvk7&RXFi0~_}`Cjl@x?&PKZ@@-B-(2G!9+;5Vk8yyET>vLsXzY1ry62 zZpREUSbqj&AUpW4X*AvJQ?DV7fT;Hnu(^8?zlIzOCzLzpV;HUK80RpLH3;it<`rLf z4@=ui7g$ZvEG(i9@ZKlQB_G0066#agPHc7$Ql!?fKG~i%&H?C3@f;Y|I2h3UxARZt zbN<;E{nXR%!uNxAuw(aM)f$|lI)I#2cEv}o?i!YfeW zWgw}*BEkyvAObC_-d1UF?x1FYlKmr@DIOU88b#!5bre}SW$m=;5ogLEf~PqqAH z`~;r3rfKQ?qc`D>vyVNdK0l{kv+g(ezQ0}pe)F)O3Z?nm+&&nKvF4opi6TkBdBvVg zn-45=e@n>VNF8sjlfaV(>QytW8RSGfjmZ;cJT{d*bV|K%+iUZ`bLY$%!=M)gt*l#i zvVCgIfFM(>_K!%NZ*xjDa%dm&5Ow6RU;1s(-bsc?9RkR_Z(q!0Gpf zFZzmp9%70=ra$JCTufUUnxT<|pbd1%e%*mMbz+>0#r(Qf07P?8YQ0X@ai09S_%B@R zI{8RXAee82B~HQv0jR^9h-LFUK;PT!T6l8LNmTC}#^nuRLMwf*mpV#ZLyuE#k#a9) ztKX$^5~dktbIH<#!x7#zXm3IUv&8i5C~kDeh^NX+p{zg|DfEIRKh4($slg?)Q=OU* zW=IH^6m$7b)kGpO)&=x{2O)& z_69H*vnR~RgyRcPn~lVN0ii$a{_$TEQ?c09@TZ6+o7Ye?lv76+Y;x}qzp(5TccRUj z9?*%wL~F7NvPRRlCMpUw(vD#~Me1Ta4fAc#dc&Ey&V@$U2DnnoOW$6!f8>xJVJcqu zyek#Ej1iV;B15E6%Ze{myNnk0DW^iLl7A;uI8@ne_GUrD z!mm{nGpkx5u!hNk+y>>MbzC3c9FqpP%{YGT{`q%UC#0KrN5%^X zSNGiI$Ux4hq^kUH(6*|-hB8O_s&>y8Am9V{gR>I`LnP*K5-Q!EJU~BZd&)1F`5V+3 zrH!jbm3wMRk{MckFg2&ry2ZyD;J4a?WNBAwH;-oG8ZM@nOFV0n+ukk;hXAe@~vax>Vay%ECL ze6#L0--Jo6am7$)x>aB3*bU|}mnnym?O|TExM43}G#fSYCwTy?ql5f7YTrN*8ZzCNCd}D5W^~;+?Y@8gF%=+x~?}3|mVSV=o z({e~{@ydR_#BI_u4)q(5_!!7|gDN@Wt=?1Xj0DS!-oC-`H6#00e?&{y$c|5&iwb+j zRzcp(S+3muFC=)htafhrM@ClkALD5L{cM!Bu>Cg-kfM|wk{UYCa`tUpI0S?;uq^MfQ5zD_4+`F0Ky0}Dn(zV zeQmPfpdyA&*Uy~W``+7r-`yTy`oDxQ2>~U>tqwBsGVK1y^5B7bOU78CZI;oaLwT=T zo67^gkxp8fZr$DuXL;(s+t>nh$@a|Fsy6uej|_zITaP$o>8t0msk}j32SOK*1CE8M zHMt1SVuXgE;J~Y6ghu=b`B!_xYZdA~w6Zi&BSijUX=CRZWM>;`m;!di>7ir20c1d z4q@W(85V>Hdu^l!I9T_YHq%8y3M-xFhtL3G@rGtYXQWaUyA;9X6NSsZT1OgjxyJ3z z==`QCGiF9FV2E*9`5dT+UVbaY=rwTK06SX+e=FU zI3#vp9I@JnwY6Y-=K?Tu32pquIso*Csv?=ZX4zu2*sw)&j~oyGzlb?6HEn*g$)~-S zEoW^WWq+y2X9GAxxx#IIQ0q80WSna<2koCoSdk4yr73ZwB6tHOpYVwB^2zSm6810J zb3EQ8SK-7l>rz)ZLvyYv@L&!Znz1O)wY@9q!}3&>}hu=7ax=JDj z@XU;ZZ+Ay7hBLxPsGWs;z*V@lz&9VQ!x3{zATxK=3knaAZAxZCnZ$FWCfOr>qwZU$ zZX-xrZ|>Q{wk38zu=_=lxqRllW( zMzvkbn8r}SE52Div#@NjD!Pclz?G{B$ZPz9x>u@G_@fvPv-{S6DGYVgx0j#65_-r^ z*B5}{>(_VSOD9wR95Q14>NC%E8~1VMapvo1H=Z8=Jup!~9KT(j;@HyJq4j8EVgd%Wx&)5Bt2$Pjs{k-dJ6Lx`iRmWcq{3JFHY8l9ja+S#d6(o32 zyaLx%*I|$+m^EUz0|aSVraJg6W`b=cBsGOV0}I=ApPb5oa1j7Qf7)}82}dBE`PN2+ZO7=h3XMCiEwzJ<0B6fj z7pMy^6tUIQnW2enMv#Y1BG7>Ql#9^_*$M1tsLIS!wnyKbWz{khPFdG?UZ6glD1@^w zQ>&!38`8*t<7>iF)e?#h&Z)SmsP3pW5ob}uQl*att97eXv6t_{d8lRtwL8eo$RskB z>>)P`xzx(IKqA-2;$1J$Hxx9WJS7tQ=m>ySsv${KXd$oZX|##5J6<`*-NK&zC*)>O z!TQ~1Ji)w}c5@0^X0sJ+i5%vIJR;1n7=9;)?E`b(5Iz|JzL%apAiVJYaz_l6_9h^c zSQnt{;E$akw^dAG|2DQIa6s`ijc;k6koJ@dZ2wEc&6B?1#cFSg;S3y_~7 zd+xPRY#2w(F3g2U3^Hw8am&mw!GjTm#+H#gRs*}36aZ<;tJba^ib!VY_&pE%3pk5+ z2stsWzp;tbTQuHb9?!367CYr(4qHXMD9Ye%_91dA z7lVBgNrE@mJrhYtBbO-sqy+4Pl_`NeF3kf&7>fQg(l-)=$bJLHrF8ike2j#(0sV-1 zsi5T}x(dQPS09&eT|paWw({xq5v!orkRknxaJARmcKT^0JNj!sYCZ7YS*QA3NH*v}!JQW&d#d;o+RORh-la-BtWjEC{-S zABOC;@S6*kVq>`T(7orQ-#@1c9^3%H&qOKwkF+kszom8mTNJKnVq@oOVk{x|znZ?2 zP9skRJ+epOFz{KPb&Z4tH z9z8mEaASC)?RbO9E@ztVm#cyVk*GQJX5DUR3&j$&o3= z4@W*`c4MHvA+Sj@O0j!lM>;n4iP%sA);RjJ3yqEMFLcm0HpQR{Cd*oOiA7_x+9Z5)q0neGrFu1mR;PD=SOb~xUTfNDqNQ&HG!$hs^Iv-;d(*Kl$^tQsW8kMt$`BJ zlY%tVFWNUo2CJzt+?d!VIC?t(C^_|q1w=DMJF7BYij2Jer`a-TaxVV2I3#e1Bok9H z%?=kYe(s%eqpTuot>gSrCchHrHFn)3Mx+;mfKN7<(>&l;WinE$Zz;lQTr!hY?oHQ@ zjp~%+8%Xsjwq~$)#Vm`cG*}n~FrTJN<4!rLyw)(NxuaVZ?B;sY`AV3Kqgz(YwWK=&2|LBI0&l&SF z`H}S)32zx-LlcvmgsKkb0eHAweAu$q4%A~!YfjJuB+E5t(T%;1_J)eOkHQuL8~|XR zMFYYVx92nYyiwsUy*x#f^$*Z&WNrSpY9F}XYTUU`W2L(W;YlM6dQKRLr_!8IF z-gQ>e{p?bnV@kX+?Jv5w7@%piPJM?Fm+cYwH+%N-kB%jv z!&rYDfo2P`11w1ZG)KTeS!*>sjeY5FWwT^jww;oArVgSTN0($pb-pFV$n8t$7BPnSkYT9)RO5t{s80f2AxBNM+PQaHykLv#$#KQ-au6!LCP*hGFqw3N2l7qHGYrz=Or~BWjn+|jK~N3p)H67p#s zmJqpOtPfFa{Efn?vwwzbG`Z;9dGmtn=GthvA}wAIGvwPoE7@MJ0|~8#l5pO~-QbT_ zy+(1)hq8Cegd4y=$jq~byGG7Nq%8;hgsAp1LW4LYT$@5zCwaJWnZ53)BhBCHiDE5d z%S*R+(^63_Xd4%+@ai1hQC!}!>!QEZfu&LI^vs-`qcNN%_Z4Vu?-qPJ!rE|Rc@CHa zrR|pFU`+l6%Bm}B*lF^B7}JHU_CbSpXJsNyUHL(Z3J2CNV2tM@_kFn>dXcC}dCD^? z&xHzqL+7EC%X=fH3iKVsM-C(=4mz`|7m<3q(l?gj;D;f1VFxERtp?3Y1mm6!yUp9( z?SrtXl3GL5d1PL<iq8UAQEsrrdjl;XMw|xvZZb0d)~ne2WIj8 z|55hN(UrdIvS^ZyZF|PHZQJbFwrzE6+qT`YZQJaQZhq_Rd-uI(ud~LubBy`_my!DB z`@B{4R54vq>NoSX&Z{%iOf!4+fgK-k(=6UN+NQ3_@gLH7A#vX!L-b9Y4pUF=$8iAZ z4HN1O8g#`Py+V<1%5$#yjzGJkkl&$uou0TO_x35jl1}fdR~1oLrRW<$*&S%V(ssYc zYW04%lm7S&;Wq^HL!NqV4Bw|O2)odGmwnvBn~Up>0=$M%?AkDf`E@kA{;o`us&0<7 z@ZPR&7IZ+tk%O;n^ghCJ)1XDlWUtcO>omKi30u;BW$Nk6Zu(Pz^Re~?^3Ngri+B?b z5dsKk0ro%Lw*Hgd?cb2V+5gzx)V~u`Tzl>4|A0Uw93{~F67WCN7HSIy%LtaHNSzH) zaI|2bO_(wjMrZGIZo~mGvQS-g=u)a=&QtqY^*%>=gv=Gm@hCs)dA3@iD*jRG(&Xx# zCtETAa^~CzrYkChg--f4_)Y z-l0OKe^_JuVR^8>`H2=;ZlO?LxY_+#mj99;Qz|Csuis(`7T0&h93lyWl62{3ld(bZ zx;(2BR`U@k1MNi@_y(;|TspvxgpgI*qo=lc1iimgwig~$+ASM7a z@v05PKN8?X820G@NyX1pRCC#UTQrY-r(#Ny|NKPtw15t8;Zo9P+9<~@CCXHdbwzi| z$(w^kiMbGH#gbxZot^H@mb2@%mjm`vzHEs`ZfQO}%zh>uVF*@?JdDTtH>-UoJ(a8Q zDEbgZytja7R7%u6*3yM;+`|rx@DqsL1(E(c=u|P4<|4AAxc34Z#BqZ*DDrAcrO8Dc zuDy`ka$LN#5Wl^V`#ia`qi{Z{GXlRo>@@jGBzIH#abh&Qm`SMVkk2rEQ$CB7JG}7- zxF9JG<>YtJPbfKo*?~wV&9P516`t9 zt9tZaB*u3&Z(zHq#?{}Jl?yagp3@;(2X@8@`${A5TSLSfEeQ z9d8mPX9BJkAlHC+_QaGal4EqPmRvg5pJ4EW!K3xq+2%qRZq9{p@_E^DwJ6;jlPhcj zG6xoTIxa-0EQT?}45Y3|;1wiKh*Hj{(pj^u4y{sQEAV5#WvgrdvwsYoXMj9@xYQmbcSQV7 zlP7FuZvt0;1mjNE8*0TKeW&!;r7PU+4(%OYf7pv7u6Nh!6=D?O&PBH-sAEM|CfO>` znTZvSOoFPG?ijTEh!hz1J*uUfX2X5O*$} z%}-!t=NRXW2xlH|(rlmV$xL)-Z?#HsXT*z!6i=GS3pZ@Z$z9SZXR%hHrG{8wol6a7 zP@fwt8LLvu6;fuw97O7hi7$I48?9TaH8uc1ZB2A zan3p;|LAOccAQybh(9E$;k>AK-qgCHRn8>6pG5D$XQYya1zy8&Fbwj~q#3EVxLOE@ z+!@&RMAzpz00R&(>KPYizwi_XowxLMy@DBD?GhuD_Jl)j3&oNO0FwkoRGI#9id*2S4gXAQfq4 z6anMIN{W;zP}+-;tcLBYBx>QjhQ+6dF8kqS7(qH%Xq7B(@QHqhVS{+2F6L@f<-M~~ zl;s53bd$)Vh%433u^i(!4VJ~Mudv7+0o!{oYSNEf*Qf92xjC})hvHyKHFZW zRcxIv&}Bt+o-H@d!zS~#T^|3%;=BvC_o;r%F~#uzXz0dR#F8Q z7V0s3gA-ix>&(9U)$Sc zv+xELOGNsh~vpfU6!f8Y|eXV{O3eb8KujjmDUq3 zp!{~P#RKjkTwO~Fz5kHnZJ{B4l63u}TI8L;&wA@v)2-^<- z;47zJzA>kflp}4|a$7CN&G14Qx3s-s>;~2^TPu5-@nI$Mm;>GV4*<}@Fr&#Czeg(N zKLwjZW6c(FRX;+LTUDJ~s8gA1aEH%fqiut~VencLQbTsneQFHNx@JZ5K(Yt7UE;n{ z^TV;(PvhMQLJs_yrY;RqiO^uULe1`976!8Js)p8Ynh5S&Gx-0j7pSWKo9XqNCQ?^X z#q^z?Ootg%6t^dA|4r+Z28_fwFQ9@5gCh#2IQz?hqp!YwS0`9UM6Kpt*`!ilt>#kL z*PG40!5${Ygb*?lcI-?O((mvY zX9rp_JrGwM2f$Y0&rbd(F&&AuC7yw9pUn#~EKX>o9H^jQZoyLk z{MCA4`{hN`9-MYevUX*eA_{wCW_X`WSg`QbE z;Qdfk_X_p`*0y`c<@Q`OxLerp1>!AH@pc%UJDa{5gGlw~EHJW7kaH!4>5Ekw*DLlk ze(vE@<}~4(`b!ESmI$$c!vU+ysFIQ-?hn!GThWM3>(| z3#)qrnqbKnE|*i7imv`RCqu)tX3_55-z%PI$wn`4YzlfLoY7I(dZQc&At%R=uStQ} zRGLj|fj5puflLyok`BKDn`}WpWPlu$Rv2Qiz^QH#bOQT#kQl_!+>6ehFt(I%D zEA&_MpDvf)ow#)oB_$>(sRGkoAX%yoz=vIue_3;OL-tOO)CoS=ri%l9t}R!$;8arR zr-V^+cpfSdoD`N7sT$Z0JFUV?M0JZ00&5rnheA?-+=B+v;v9rvu0lnq+g(rYdC>3} zMC92ZubC0`PS_B1KV8)zd*Zw-!>Ise|~TDlOF?@ z_`q-2=Xe(;*~*9^F(^7IvK$wfHx(eJAkN6yF~4NqWgSOuCCPy*32iUls~hy7U8M`a*5RjBpXHwLy8?d3$Y-DaHk^S|y(@2a%l%9~ zp-mi{tV1#Na1E6SJ=``UK5VO;?dOebdX}^`=%z?)LMcy7p*rv=r^o@Q%_M;aKJOON zJlEFRCxsb-;VCB+()Ldzr~%#3g7gq?V4A~kj@I;@`YgtjqtG}#RU3GocU9{%y{S6i zxk)VZ%j=MO@lU-o(`>6Q8sN*SOvhP)1+bieScuUFp$6QRQ$ri8)Br67KEqRYiFHI4 zI(H`w_j#VTu3AXb9By3JyD3cDRu6b3tkXC&i&lq=H-&%a4ljaeX0c#_udpw?ZGHh` z*`nuJqF2bitD@#_H$l6kg~PSZJpq-9gS}FP3iU%^;?v@24tsdInmXiPDxn*!%VssC zjT^G14dVbOvs?Sr5HPL8r5%h~Cu&!nl5+&h!x-~fi>gkW#x|h5W<~fF7Q9X~(%1Li z>jxwc(_TO6eqb$pWIba%Zc*k{Hk}UXe_(IL8*-VXJCi>0w77MEWnPvGOK<;;pgF$Y zi#_GaeGAn-JAICTbI~XI^@6AKU^DgRc`c~S*|r#DDc@`qZ=P-0Y}MasRzA{vy4B#^ zy`XrYaqCLI34fp8UI|zAt zr<2@Ao_J#YL_dN!+ISqzCu#|$MY*0ocum$Kc&$|j(FLg~ctM<2pcu4PS=`F^1`+wW zsY_FDJrY^4wB!e?gHaczc57J4?*2ny*{L3M??3(_M_{Raqrtxgqr&fkv;XtaLh^6N z4MAmLNlDf3HEj!LkN>-m$VNfun-!t+a=W=U-2mDXI=v<z7i&F-WVu1OMsumUmNznyhJ-rB!Bm^-`JS6l`^<+&Rau6pdy-+>74W*jU&1iYrXn zn5$?ml;+ngC;Ewd#_~z~>&}y|n{VrjN3PTJwbf1UJG4Ldtp}Vav>IGVBHWrz1(AhD zL}=Djesw7TpI>02AX!@9YKE24`r2C!Xprl-f7)bM<*`3UTHAX(vuevI+OvL8ucx_<{>xH68cbu$N!8G=^t%ILk|imUNdtgla)N+%MPQkb2O{)x=&gauH;r%=OsPRBU84!B z47wCr2k&wj!N_J>5{kM=uR2pei4iSRuV=lMmsjN(!Ta7O+&}fON2LIciu%;rxLajo ztkE{$>wfsT9nENr2gr*~pCT0*Rf27<23)o|(tpwZC8;XPla`(bSQMLcvW|d(Z3wkt zO`w4quXN4_2CcQYd5Rhh?NsG6n3(YimP*WG3E`}>I!`IrDk~tm8N`|Uw4SQ@g`wIn zd-kCw#ibS0Ybt6(EW}coJFhj(!(ENqG}0zA#*Qi*ab~W`0NOzti<&TA%sI*k9Sdg> z{|az{IM*Xj2kbgTMx6>1dE@fvQGNV2kLMt*w2clLhPBU${WMsxb(_2|E}Gq;qrimj zAM$}tS+h`Vm>h+xv@+h)bTGsSaf}lT%NgfXJC2`|pGRqg5T$WFLC{B}?3e1WccD|M z!k-r~5yePe%Wi~uzZMsOZAXmVr9i@)(r8Jy^Q+b1#vl0MuCSaUzrQHfe=bc-{sNWA z^ay)+jbfA`TBA4VPJ}uF>NVd!nb$suJVi~})wmp`P?e9)t5gJx8c`Xa%j#>ntBizP zlO6aaiY*H1_&7EuMstAai2K?l8TueFTbb4}o{St{QWlRyeC>H9Z@<7I^;b$=M(``2 zyu{OR+kO%QDtA=6xx-G_;X@O(lF{yLJk52!G+LOtI@+QGU3TcbgZ`cdKOX~wEh|=U zfVSQrpCgDW-X2@kr?^#auVvl-5ZN|YWQyc`7~iumw)|kVm17$C9_g&;{L}12UPRoG zs+5)2-n~B(A9Fu}-qH3r!CWP@hgvYJa0cUi|*bJt9T`Y86 zA=FjnCpqzI$Oe))E0?196}ut3;i(w)^ZbEr?3+ChFHhVXi& zw{l0ewsA2uEAlvCS#m^lOx>24B6VnYP-u>%ui%c7$#DX3BtT-Xe_+gVsAhk?I?$+g zk6dE!r$529qOW~YZ33w(m}(AAXrWO-=2R+H_;KmvaEsicr$IQ5(vU_qN~teHs4vq; zOGZeyEh@A%M3Yp%pH9Chz#MW8Gs;4=sBYyV3*9Ud^Jjc^?vlS;vHX+C+U_~^t*|s< zN>H~@ji3~esxuYxI16FPYMg6XqJcmMPcy68u7&UI*e~;#v{dETUmGTe1%tt9#-=>3 za{2Ipc7YPPggcy4i4r2%9sw5V6U^ch&+Cz-!aLIAmyYL`5cvU(_J)e~#&UkAI{(2+ zbpYG4kFzR=_q?m!24Pk{%j(A|b@bHS<6GVQi>y3x<%GS&k5cSHZHxzfv z+a-44^7jK=*&T*{kKP^Y#sK@P4}n2AuFDW@#yZiWUAE+iDrLFKa0gJ6tyI5KWau;G zr%I&;aLixLR@u)M+1Id>9EP@{zF3o?rZ~Z^3`2v-4%HZjUqMb-e+r0?w^cUfN-{Z+?-6d*j!RCmos=7 z<_Xje2Y%&j{0RKx7oqeHZS|*Wu$Ht!cbd*arJkoEElTQWT~E@%pJjUrMv4?oH9>>E z7rLNGN(UO`!x!Vj>GAG-m%m}|6Yno7BnytU z;dnvMiN%&5&Nus{)C!dL)!Qw9_KAM9MS0RHBDhw2nK%XKk**$zbjSs6y$<>69&viL z`oix~VST8N=#ehF{hnsMe|MYKKj`;t1=`ZmTL2($VQUNxsgrnKCG&)>QbTMxF0+T( zHVN40CUAeO4X>#d7&=|W&Aq`=L2^>wB^>@H8POW8_r-pBktNzFi2UO~Q>kL|!+NE- zw)ymOa))Y35_dycK^71X^tF%wMRxyXfAe)O(LIxk4($hvdIz>M$nK0bBf_O-`qS!~QA0e6vl=S5Pl`GTHvpdGbEZ z{xZ=TmkV?$Nc8Pei@TaRLO<8Dop!8j_v{-DQJi@;%hKX3<6PDO?GU)pS2^)Zgc89x z#@lGFfB_ksx4DQ-uGHGLj@_tX=cbwUw7A?aFTejYmpFV-%=BF=9xRA`RI0HZAa)?&M{-3!QGV|6#?;CHmXKX1NZzvg#;r2r3T1}8R;FvN>f zqDozd6PX*RPPpJaId@u+v)Rn3;XvN%+D@`<==8O%!k=6TI(8pK zNsoMPn=>EEH%JVCPy1R%XGV*tTNBVAKJBMXEqP4-G-H*WfA=Juy?f~Z2?aboJ|yU8 zA|axH>~*rT?}B=EP{>BbZ8v8B>3ix9ft-Kb6EEIhJ(tU}*Zjd<9~Jag@#CT>DvL2z z@G_Q={MYLP3U(K>7Z`C3`@tqo=h~$PN$?cEQKg}isZ=aG&Zgnf<6#68X&O4DY|gH| z>Zs9qLc`^XRg2Sl@^uaXS1Gp8ylBtx5xW{=MZq*?P?iZ?qfhjGE15-? zpf=MT_?Wtku*Qs8CY8&t5cs=3-=al$_o5#-YS7=*n`-u2_E-!7W=9V3Gq%lyxkt<) zxATYQHHXLaPe5daj{E~dN4=;q{PJ4&2>9_<^t?y(mvPf$FoOEbYlhSDoab*4fe7`8JK_;{8b z?vJvckg4&bXd&x!)@_kmc^+?2sDr@g8MfXfVi`K~(8slWSqq_$CYRGCk3I=*6j{*H z1Fqo2*gwkaK%!|wS@1PrBSdwJ9xqFaM^(`DSY$h`eTl+Y8aYOq z8|~4qBoc$X!cc7_*T!%}hYcLVG>B?z!b4pvV(n$kn(#p`(E;}!*dF0xYLVT`9QTRAw9pH5^)xNhEZ%lHR~mXJcaWI1nntIrg#hE$KI<# zCBq(Kaj87M_uJTgY)z0Vm5=!s@GhqUr3i`vx0cwTby&2H`!zt=M?;1gy^6s4kB_qy zUK8(pSWDEqoV+Asx%@NCHpW=y3F~Ret;*nT@*VML2hZa*=0*_oy|nZ^O4h`2Nm^T| z8E&M2_p&{#U24(J=-N0JpW%+Q7v{iw$l(rtz`J6xsJoa3Eaq{0*qE1MlrW?bD2|1V z3rrqxCQt|m!Gtu4wr98t3mP{5?gqeO$oZMd?Uwoi$yK7P0*SpsrCBLPm~^(wvwF6- zc_fXoM~qfKAKgtzpV|gn-=?BMwQL>fEqE6f+au&y0cD}L;Co$zJot%zb()*(#&JWe z_<vfJX4O0Dcu z;v7JB(Q4|(_e*F0uS9ia`5&15gsiCX#}<2>KGJ#VM7_|ri3SI7#z{jUwxvnRj32fe z$WwyzoB7Y2;n^gYiezy zctM+_PdYqUC^n4eEKq3n0`VVb3a{+cTOi-5Of?YHY9-u~s4F0}F`#W`&~+i6D355a z8fg|KrGDs~u-Vy%XTC?bxT(R)R zH_0LU3{o`Xb(Zt(azo4OYC*rZ_Y=q-&y7_C^!VI%!Tc?Dj)ivPme*G*1<>kkH~KQJ zC!HY+#~84P^H6P}QFFK2z`J%H3u7L;*{n&5xJCy_qITY;xm_W^l2{Erw7jL>KmhVX z@{x#+p@@O)!&J6~%5=(fPhzY(({;&O^BkY+fZ8B)Oy-Q3NMSdN+1)KEwuxShv;w#L1@u;daA8$Z!RL>WB z-|2iJ4vs!~?&^|98iMHg(mY8dL`b=z5j$&rZ51`1kToB(EA%M zhrROpb%HH%4sHdQ#P5^cEGVWRlT)mkQv(#s)ls=<9K~s#4QX=`ojZAsC)EweEzvnB z5oIzHH6Wk35}s!N3)IfkW;uS}j?{wxc;x(hSE{m|k(G(Fn2EEIxrrkQ<9{XgDcM+| z2qOBDbw9J{MaTFss=XO%TcGho5&!~&(Ss|YDW4upm`Swhy&76E4(RVIeHHJ5`1=S* z<=B8_1wHGy*=HtsnBOix|9%{h`vZ7j6^Sm(yfHC~Bf`q3_vgo!$CkKV$uAfEueKG# z{p~M^@roT%GJM}Vy!yvOG>EM|n|`WlUGa_BRpFmSzioQuXHCNyoTam^^ODox;^v?P zx^5p(q1yw5!mWZm3*dUG!gO2AEZB{N0As2d*`;do?^u{^0d$a^W66UpMc;1ihw**` zM~`DQwAOlTLz8PBvmX-{^aI$-P^_GhCI=qgS%(`cV4mLYBOtFJg0lZV{+)V}=5)dfrgfBnv(mgMxbhRN4q*h>2nzsuGWR5h%s}mUSrtkTxv}*f$o~ZIKHixHP$wYnZAUi{855Gzy99^x z<%t=|cOR2i%#=|F+89nG+IsmxAPj-8ilV&vHk}RKfBZ{|f{0JQ9Q~G}fd8Wu^*@5g z|22;Mf3WetkWs7&BH6cMnD=lWl?f$FCMAD$DX|{T6S*fGtvB5POzN6ZC z_JyCTfkYeMC+FCM=Huk6_p7sO=ZQkT_ihyhNKG;hJnW|fPj@YErgZa76lua0XClGJ z+3Qqj`xwK)pqN;Yw1S`Vr9c%gmNZ?w=fa(aqc}~X!pw8Y1g@Mhn6&4PPz;^m(l3MK7f@|L zw`lU;DH&qc#ihiZhHKl2BJt?xbcP09W+*rIqZg%63m77|osqdVMnkgs@~Tk(ynbTI zq7APWxomgFuu!vVYV2d^W0izcVMJAIp+JuX(b^f(gdbufVPZ7%b#<_-JRz|#bsBki z;iOI@%Yyy)O41LzZmd&HV_|6U{}asIY{y;azD^mX(OxY{Em+)e=6u z%mvcWj}&9mA-zVK@lq~eGBI(f6$WX=3^8d2c{S!O91I^7SvE3$-#!%&k zYI;6FS1s9_^q*0=d%o7w`BfcI>14;vJwdz~zG1Go>g4*(#z@bU3oSyb?U`maA;=Xu>DxF2o;Z0ySrgdyY z>0vX*c<^8;vqArLwjO3{$Q)!`<*;e6*rqSA<$n1IYk+@&r8d~0B&SI-ub4yn4 z;k0VFIPKV%Mv=e*53o98u1=fBouXX7j9d;WZt~0fH*skIer@J4B_4!5%mHy_ft?p0 z&Kjxt0X!NzgbVIKwKLQnjtuM(lbD~M9g$~E_~h-|%?5IYtNAN{ZE#<($Hhj(L{Txk+COo>a9ao8|`8?}?{nMY6RC957gaQwmP4{SjEtz1q0*pc{}fKApT)37GhAoZJO#6@QJ zTcXNTa1uUt{qX9+bNbGhRvPI(L$Dz1v3;eG81eIT(IdNQ98E zcL9@Jnfawc)j4bVfLk`yyC;tA`&*9#CnlEQfK({sr&CXQwTWy9oy*5$bxFGRPx zW|!u#V^C~)Q&oxb$Fz!4($G4OYvwTaRFajzHCZE%$&C8w_U=~wI%`wr3LV-{( z$h;SXQ#~|Hvpan*y*ji>%rkec@)G^>Wzke@t=#4$z0|QGj@O#9B)yfH z&4&o_bLVml{z@+Lv>3{zaPSs1lCloCjI&xZR0JQ_(yG$if+?HO)pI7sn9sfL4arsi*_U##;p?L?tO=i8Au6o*y}h| zRGmm7X~^1gLH+KTtg&ovu%alkX32yom1l)gmD}=>r6!SV#_drZaV!*k!(Y%(L^M z)hx!HE|CGDuCk~E!VLs2Xht|1;}L%>s;%z>~U+ywErv<+ct4I09Vrrk&KL{Tk& z_QX((EYw9<22=MsD(BH-9gbO5g}HHku*XI4-;*HWkKIAD82MBI6PDfB*g>xZ7zn6) zkzJey81=#oYF_!F8*E?oa)$`iC!J3BZzs48rSCLRPs9u&)CbC&oMNnqy)qn-2w z$?=V4c3+@F@DGgGy#hv-F-$G)typ;Z-#+jzL@%IfF7C1YTji3aYOZ??2{79YiL9jL zs`Fv%*VKrp*cE)ak6#u^A08TcjA4!p$eU2ut8>u?7!F z=F>*@?Im-)-N8N6bBY8NnSCj8e!u_%=5u*e_KHU=K)!TvCh>h$c{M4u1e>@Ph*wCRKm)hh~=TaXeGzoHI5vqjKQQ zf9C=yRWhC;X;X@a@gJ(PxhKQ3+hbV~}R5@q!j zy2n)|O%x^W*sf7_-iF+M4qj||C~o$x z24h~khF*Oc!ox_1*#mxX&=tNGY=(*-+GhRovRC387yN|8Pd0i@@D5n`YlN9d{>MA# zZRV#=PYBc>wv(%yeFqOD`QP%dA29GM^aoX4k+sOly=S^yE2l5eSmG9B+xTbowNvYxEc#m`79CEpqsTIsGDL z?4Ov_W;5ODj?1VX*UnTSSLU%(D-`EOQq)dB`P>XE$~>xwpR2$$SmafJqN#BhYOMR( z#(x|u^ZUqRkhq{89?9t>*Jk|kg7qtQbT*iE0&PZdU-exkk2ithnJX7ng_|RDa8z${ zz>SMFpgHY8aC*?DjT*Vrm}LzejYBJ|s%FemZC7T}CvK7LUB&W$53J4IcOuzP<|8qvFoQywowTTW(|z|%yUdC%&2 zo4vKJ>f4PSBe%Putp&2iq=RN zMpy7hS<12x+wiZGl$NaTSFHYQ0sbdtv<_^t{yx9y(EbsRI>(CG6(6Q~THnM1h!O}X zUd!?TGJ3DNY4GMtnKqhR4!KtExfR}EEw`@Dr(Ia5X7Y0ibhQMGMFoO~YCL>smzl#m zWYCfq_$c?9)!G++OA3)Z%OP|JmS3-rS5tblSR7Gt%N71Xy%+4-8n2i#?+9_7XLM=R zXji!>Y`X3uVS#6qS4FFPWOqo{BET!kmCJL0iD~-hmQfIMIHIhraTbjTYnW!Qjznfk zfo95{A$+y^m?IZ$pp|CPiv(&A4cXv)Ad-bqzvVEI#po5y=FLHyN3G64U{6MIMNo({ z>-5-no0?9nT|*i5?M>52#)-}ClGGAVy_%aQbn$>bN_+?xU+KghG zoY+iwY3ZOR)2*5;_~*Yf#Yx_xX7xh;>a8ow+vUZ6YYpt;FSxu<*3kmOR(QtTl^ z$3r@Sw>qXeF~_cNVZk{Z0K)P&NoW7(OjlK!IZToklRp(Brg%^qKv-k)=7`C<9B&$? zAtPU^C%GXsKA)J0Sl9Y*E!>OO@S_}mjF0NBz3Oj3Q%}+2smOkXZn%PQhFjRXES^<|ZiH80L*-}6fD-DGg!Rol5N2ZQh zZ?R{4bya0>KDlD5MQ;cAblXI`6BJJ{Wc7w$p$bcA!FHc0xw4axX}FHVVnote`i8@#{}HZ;&7wBN|i3R}8G`CwZShh=jV z)TN5J%Ve*kOGx-k(rg<1DN)YS{oB-r)TM`k-t2YRb!jGZ(3^uL%RxBN|RF5D;}}1!E~)ZiYQA9`vo-@v7AsOq!s&!_))kv z_hYCB%s06RTcZ?`Gv>Pk$0|Q>&k>RI+zw{==cm-K+DvPtd1S#we&?B)XTCSQZdsC2 zn37+TU5wtv>qf-n5QVFm6K!{0wcq-r+;bL}D!+H~553wNRb}EO)O! zGrpzIlv^Zd4AMVr-m!6+Q6WQ9cl?b?A1xEB=@0DVyr)3Cj(ciS)%6Q5YA0|8@Geb`k03rt3E ziO8%_n$ZJe3MoD4>840IU2`)cG|r~i;Y0XkCKtlY?_ZX;t}y_#_xICXet-Y_`TzGo zxPKJ2f1cl+{-3{q-pRzk(a451j?G)E|D#z!%UrQf zUZkX&DWgr;UXhhjMWbxE&I?b!WTA*rRxQICw@3G+aGZ}N0heFM)ktAyf^U#q2 z!`r~nu=)&Z{ti}D6pM#bdNTRx`Yp;lY&mS09x+5wYb@7^oR58RR_#)KXj8q0Nf4H+ zW9JuMa3(n%OrGV3YJ)uNVHT3(O}Kj+RuuYE1A1<>L0~W}AX)#W94OIur(|F}hLtRC z1YA16kbdAA_HL<~BCbgkqy)u6w{N<#Zytim5WWrIxtDmFhFQ_d)7Sy5_oVk>dnf`( zi{cFy(?}VHsl<1YXK<&>F)w zuBGKpF~Ly8%y%{!J9t&%v29HnLv)q-i{4idLl8xj`D{Wi9Ik9Qv?Zbt5V&`LvpV0? z*y1|dFxof5|3?3dTGue77$p6Eck=%ueME#SF$Yd=t zS&D$i%^rYbeyu{AKoX{xfF&gm)pezn4k;R9YzU%VZfU0f!qjM}Q-}bLNZ#p#_VdSc zxC|~++UUR8s&$%aU%46GsoeqE6jBuzA>2u?D2UM}F|Qzn#3) zx)FfwyU}divx6Cm4pOj!6|kNZO9>3>AVW<;7hR-OyM_j}IJ%j1)`Fs+$4WxagMX4> zK6R#$E0pE(jfV;hWSti?1Tn-(HXsz)xq_uciQjFEKNySKBxylq4MxWDjK!TKQtWp5 zZ!7u&E=$m)#TW*LNg6arCFdxbopsPPU}u+lnz)xB-b&UVss+N?Zn;3D$rY7JaZJz2 zchjOO)rHqiR@3+6BS)`tm_8JmLmiQ=C=v!OUILf!s1KB|r)OE0gsE4J&c9lggQR*8 zh5jhLiXjSTwaU>4GDk=5LfpwP8O|b{Ki*62A(qb=C}x-ive!wT@=h*j;ic};p!?5i z4IyWOs)ecryP{7dwm>`xWtnG_RWa0^zG+C(F2f=~ahPM5$q!_cv7D0}06ej#f6#k=H{?A`P zB@-hPi|>pW5d-J{7aBv9Ccafm%uo1kNlMfJC0ad1#ZruNl4}Mj5KF3V5}gi0OGhqV zi_){npJq}WYSR3u^hWQdTA85u#$;Iap7&_h(qj6^iSFC|HdB`^i z#eVwEwBV|1*{Zg5QayUrefP1|Ga*9qGt&(E(A5>7MdI7{Tp+Lf*pyTU3-of;6-DY3 zf>oS^8j1=n9@lLw;TmmNRs)e1)g~__p`R)IIctL*+h={aBqQ1xf%I0rlaJ6adQOE)11Oh3Cybb(S&N|(Gym3 z6GdaW#MBA9--qnoURx{XeIlo3T4&G+ks%wL+%s8Vz48HIQs6F1|6uTxPrZ?)E0kGQ zwx}iL=Hmx^Xea>?#_wFdKjv2*iNIgmimlPZ+BPAfi}Rki*c}9b5)kI13PC!>+_D5& zMMK}T{E1^!+Fh%RGG2DXNc%d+82%II2&Px(f)TY@jWA)4C+**>JpwJ*r3+G7b=kcrV{rV`c zDci>AgPiFukc4Q$`*?OD!LvDa?*%&LHm(^BLOqPuXq^M!D9RtiqxWV^|DVyq2i0Fu_#2p~{}Gt~s7wD7nE!P&ON#vWZ)Av) ztn#<+=refyLr91LQ4kEN7gF*kTDQTGP*XH04VV#DmkgV-0pr@~^~gTN=~m@7kHgq- zl!`~*c%tejZ1)?=V(SEYV8oGusb`0mUav2&zMn7Gx2n!wh>4iC7Egavvz=h7?3UCN zW8)+H{m(B`a!_8YrVs*A?v})(i3SK`hX1bJwe(9Y%j2co_3U>9hTkZvLo)9l-$xn8!DOz|YXOM|bf{ zO9gg-W+d2JIX7-I#RX!;MV=5Ss)Er{KtC zb+<+--hq-T>8&9XO&GU}w}`A9D-c( zx}!K=R-qV$F1i&*u|kxz<4Zuuzu!cK9r&cblmZXHq;`7`Lc9-nOt!Z^gV5R0bB1!3 z{O!!c4jF>8K9D{(^nhaGbQ6{vY%JYQWsS1m+#$=rwVlm^B+dqhk{PU{-+u4Oh9~tU z28$<2@z{+70U5jJ>0%L#f`$nH_e*Y$B*_xVlyd-2J81R#!;;PL~A2uvdoN|HauiM+cr}+g8Q4ZQHhO z+qUgWQn78@ww+XL+pIWw>7F}x=HA!SYrU6R`9G_E2Yc^tpL1l?!!+NqBo?@Th-Y&@Y!$Vj&pa8SKl+YGdH&RhoOODWYO}wG zxQFY0BF>fu!6O}OVtSZcjKx;9W0Aq#XHAOv1GW|&(+{NxuXG1-^`=zxn5c3jsb?ib zSt?(&=c@t@IQt)qEx2&c{U(`okPgv#YjgFWdATj-du1PQ>d^Pkefr#S7Amq@9h3^x zWuX`MAY33v=l_-tjkZiMgKUeu{N2A2M8FL7ctX9YL%n>zkWv3|oQfu?97Sx6$ou0Cg@4I3hW zf4C;n@?sf+f9RZ0ZMm^W6jI{ZSmQTUo}Z6oq>?;Usm87gZ0lpP;{nCUoMF9mGPRWD zoglo0du2oX4wZ++sxEV)Ipg-+{?Np8)TQ7B_*rPmHT@uUY{lQ$mSS%#Cdo%ElQ2rK zsfP|r0#N8gtTj0Zjpv*TF+sZ1H$RP#} z@d~j$fF$O{`)vc>Vy~wKh!Ob>SI(}$2tcc>GF5g+-Y6q+qVK+6d($p%ts?ois=pLv0DD! zDnn-CQyv&t+F3zo$m~re|CODG`KFO-BSl0+6JewEg!l%1xq*J=$(RH|HL*Xn&VJ?d zbwl*^<8{vTo2p$YBzVZEbk}5dBF4Ilg#UJzdE%H2*=b+)BZlUBGvKr~yiYzPM*s27 zwr@V#tWCWYpqmhZpr8r(3M}CzG)@`{GV9ngGsbdJ z>%bg|Yl&iau0|r(<)WlyqqKeq<1;h+HZZm!T5+0=wPGDNl89&%I)jrYSItLNVNQP! zSf&1obwwOw4|_Vzd+#+$(JSA9NzSEW|Hk z^-4R0FPay-@_hjmC8FQ$`9l~*NseGhwm1mX`_(gk#&^p*1$3=3Ja^`WQ!jk8;09S? zT5+y}Sn;ll)EB>_R?whaQTRxQ`BeVVJ-5?+cC9PwMRClNt zR*b@ox0`^%Vrjwx{((^Y0T4H;ayh>g0!bm$s)ba!FCL-hugXzg9}8cCdo>mnw|rBePU#NM0iihaTEL?TxoEz=?zi zk1*16d`NSDT9IL;-Nw?Cxl?_NOGmF|mY3qDe?Rqv`9?kTn8AVw>Ysjh^V>VSI!o8L z%LmX7)fLJN>dyNk4Ob2DvPFf=P4BUSo7W;tPmj-3jqAC!lx3wiN7O>oB4eRxCcDIoQI4U{T-ws zA_Rv%0+4*lyk*~31@37Nj~>GIVY!5letZ;LSG zc}kBqGfpK&V5y z1|3(DQa1JJoNBE$~6n`ZZQutUAZa{T0W~Hp{_rSqxZN2QJKD z!TJsFT;|Hz7)|QU7J1?PmcO)6(L9vz zbF=Z4u004#8`wDV2>f6|1kvkG*f-$0uDgc;84|cbtDP%?~7@1iVUzw)3+mC9R3+u|+ z%jWA{ zd^8gAj^QMJRNNU^8XYTEUXa{2Y^}k5zM3nWoGXwdoqCA;pPFPkqwch3rZ=DI1{qcW zIQag5rnx&JAWPCUW7R_!n@06IO_QI7giCljaY%ylZ&)wn{;4he*xM*u~ zn=Ox{^!H`0-PN7G{Fy;ZXXO0%Ul}C(x0hx9c;oxO>4b=bt@ZzA5?^w~pRWkfC!h%e zu?q4HU&`Wpp1}G76FnZd+6=l*3D&sC5E08`v&Q))RGO@jrsF>W421Q}dYP<5F=XUfG{!#nFM1!5 z@8-Dud%QPhGCTOJinbAqFlS4QIYV28u#C}Z=F#B+K8lxh=A?cghbh3Z0_BM!;9jcCM+xQw zHxy|jqH)UNPcGk<7#<-w3fxnwuz@a4p1dWolRdN%WBxAv+D^KpJb1%369Y~dhE$kx z@FGsxZVZs?TyLyAA9oo==HUQWZ^MmC{QZdym}Fbj&oZW%=bn*b9ks_dC6>$3TMKY> zo+pIIlNtU)P{+yN6_vhkV^9W}Mi1%QMLq&PFp_Sm_eH=8cS-7$a!BURZ zn!5YPFCz|~?&v4aC+`c_w9sN$o{#s+MtAgrlVPJ|4snNVa>6sT9*{yF(>LH!$%0j* z4M{2c>^@3ajVuGP)%YZRm$VX}vDPq6A#9_9ddzKCOxKjK+r~+}ofZD}c51HERe14t zzo+dlxlp{>vkS_zO68=8V0n?=mVo;^`~<<7yW>(j>*JqryS#Um-tsGa$^W(i{B`*L z70&+BfNkdF;JEihXF(qMaYK_(W^c#x`vRbU60qPWDCL$|j09{%wpw7ZvovB4G}r6` z65taN5ut!Jg=X)7!ZF$)p$81~EgeNfA7!AwzE)4`ep?^Zfd|RulB-_8bS-)7k!}d@ z>{<&Asa85Cm0$jKQv>$1hPj+$)FuxP?SjN#BPdt|iKG-_t_nhA)d)AP7@Ob9gee+0 zH6ki4prz41hPx5ixDg4Fkk?y` zj&gyf*FuQa8JwgEOKS*3zx3kAiy71TNlU(mKS@OcVKio)|F!rpiB}(iW$RB{{8y{e zX%Py&2M^--c7F)j4bx8l-?Q(hKi%PM*whl`CrVi1hSAZd&kBQDyChx^*vF?SsWOG~ zm*=9r!5d$SAFxjhF6=zj=doDy@_Q=C&L*F{qLNc|N9=z*3q;W}=#JeOAEG*X0VhrL zxFK4qWiQg!a*om#JCo3BMtn+my-g1^N-2Lr{~>kJd01Q=e90(0f2-2|HGJi_G5R<7syMEI__bC( za}>}XE)q`yKn!UTFj8m`G_(*e99SbQCD;b54+(ujkP$JPQx|t<$bk?OMXgZHI1$N4 zyX6{nUF~2DS5DRyBtop0V1v8aHrw&Cl{MSfTMcODNAEW-fOeCJ_Mvy9Uo{ZoYfKca zUbj-_6ox9{-`#-wK6Q&1NEm^VpS+Ia3?nrkckTwAz|Sp@o3usNE*&3>u5 zAOba=UH8(?aM>hING|LasE?w>11sXO=}gI2@Q=Q^1nQ95)-KLqL{u49%G9zAykt^SBfv$t6M8cd!Ofbxy8NLmj7XwuB{nAX*=sf7w zhR0C+J5MBQgW93;%(Mek_5LtBiuZZKzOX^nZr=~&nJS95zF}2$ehhviu++nETIGnp z>Iw2d^_6WIZ8>L3g`DWiNp{Ix$?fV3wD=wo2)=eU`Zzla_MSE}p{k7F+vD3XYAT2n z+^Z0CC#vz?1ADDzQ1OMR^}AlJQ=n2;F;Z=#7@`m(pF)IIAi?otfjhX9`Luq6i5=&e zwxWHE9Uui0PE`v?IZn(7e=3YH7pyl+&c-g)X{6cKlg=jL(DL3oy&q&J@|&!+XJb-k z*eD!*9P!Qez}W`F$;&>fcPn5Tw!~0jipC4>m(b^RTnk+d=9cIjB0E}E)^!oB*2GM> z1Quj|MX@_S)XQ|{6)3OtoTw&EcuW9%3fi7NtvGWr7Mn#Z*!K$Ip1;28U;BR#kg1^Ke|B#;lm6F~u(vtmra3Ndf@gkCzmYTfqy_#!*y^aHt!ZkwN z4Tsy-n8_xRJb3BhPp(`L0pad96&*cUbUo9BoeN1u%j*+S)Qe?htv4JT;ar)W`SyGJ> zyJvTb0MOtM{0L`K1F58atxUMtYg4bgdtq|yDz#%WUD zr4FnyyQ5(pH`%_~j_Es`_w_-XQRvnOQGgzBI_ek>n-Htie+CTY@h!5eLO6z^9IYbo zVPfz9*z6%$>d@l1{fD9CZc77$`vf6;l@m zCp!C5^6CcS;v z{gz>x4wTkI;J)O__PFkOnT(6e1F-xvo?Zy(<#6)#Fi>lQf#aptil}NPHOOI7=b5wah$OFv1YPzT9dFo87!kfo}rbsdct?;&HbhG=^?DA%>GM82KR?9Re8Iw@Z(YMrrw*GvCaWJ z18z|AaDi6S!wXj)TQ$QASpdjXOrkbLu@FAdqW`H}%C;m)WEh9gEm(Z1Or@%KHvj3; zzY=GSHc2jVQ+H4Ep(80vv0+0Gez^a+46W|S`77-tk>V50g(eFAJXD{vxrM<(k5pk@ zMS0b@dbj^T*<*+gCEx03gyE69a+~iE>d_}p0-PY;t_MIlWsxTMJyx$h;PAZE&G-Xw zG10V!MEX<_Ks$0ckC-x;(xT2|SJg@UqNp}qJsq8#ZW}|>?;&+CYbls~VzI)U9_{^nk zgm@KJ5&C1Uk4nGT$Umo#^bC-BgUa2e8U@%yc1GwYPc!*5xi}_(J=SA;nwj6Gs%v60|)fD)}FUmp9ErMKyw80vfp)^l%Nf3gVX| z)rCOU&_{5XFB3VylJ4k**eY%d7{&m=?17ECY$HX@76TnF{J5Wf+Tye2V}rj&_XQ_x zAc$6>c)W%^@W8B-eNrd&`Ewp|uP3X7>Z|s>|1Ae2`VY0w#_4}58Qu!gwg`XtxacB) zHC}|}%aFUD>y`(C#Us-iSor-(X6ww#ZsF-zKB29_gP_|zCk%$0jvGg2LE_K%JFvf3QflWD$B4?xX1X4Mld#t6uB1OzqtiEUE zx=3Fkppc4o?&Lnts7-+mn*u@OS8>QPwhWY9+oXJw5ejF0NdnsA*#?(CVZ(254*fLWz5}s11XOHff@i^W1e?xbogd9AhjA9+6eYvf;~sK%TQ_00OCut6<** zB5iD<_T!KM#v+vHesaHf4!R{efOfqJ=83Z=$!@b;#t7$s-7E77>g(U2>h=_S&2)$& zl%z#}&9;q$t!+?R>PjNr_A< zdcOf}gJ5770F-;)7IK+E6`C`15o>$T97nx)N<20va?Z!Vsj-9Xwij6gf%#_?Ybk1Q zA9xfQUU9Wh;^9D0S#dNSNv>UqTNcC(HGiF&=iTyx6Wd_0p4);WOVIr8*dNyfPtQWh z?LSa-r&S0)Yye`O0XNblrRglv-{sJ3yrlr}oRqJqppdd9Prm~zC97BYperf;-CFmh z%i+S$)C9nPU+(3FFGnrQ#Da1(dmg_O>X zCJWC*ka3c2;e5yH0H78IVDh3{{u)w!3=v&Mogj;O?>=S(w#Dc z)d@|MIna_!aSVLqww^BSoP$tR^>GsKeO+nj?0br8#72h&05MVQZrKfG2)l~#wdwOz zOgk_lq=RjXOT>Jqiwu){2BaFj(CWpWd(Jfz#W*-Clae(O;!3q_(qh8$1U-tQ_ zM9Nd;%g?}5wFq0wK>|gT(f=$~AcT=KDFJ%7yek*2ex+bUiqt92bV8CRtTjMfM`XUs zaA0^oBGm5AqiV<8FnpdDizEEIu5lW!x?lddo+0Z=3rf+W&nYWzcO_xzT!`f-#%b=- znf}&`?H_RPB?GvR>MQt$|389{-^j?p*wOLd@ZcY$o)3vTp3UB>)f&v3Z*?}w6d_ro z1{gwFz96rGDh(t|xKNzoi`6$-aE99I4|hSvxPhT?HB~%g1-0P7$|oSPq^9mUPIDh^ zzCFD^L;7(p&&KMjUEHC*6*6vD9SH^e$jqvry9gl&Pb0uOo`J zek=c8<@WHzRfWPD@e^N}w-2BbMUf>_(yxP9n~aiXr*771A9G}3Gxy$vC^=bAdrXa- zf7Hy#K^>V_E(D6R^usT)9^C((9(QQuhkyAP=!J;5b67kP+1ggG4t_FseYgLGZQNyo zOPJI*>9hrS^Tv{o)bsi*iinp4d+4RYu3*fsKSjn<9{Z|nKUk@o;pE+o%8TEe;p;m2 z#h7Gi_CAP z7+$K00DxvS28Dk?w=pu-FK;ngbw82f{Ry<;JUEnYqo&-T88~G0yu+!MM7U<4qU1H75-Z)xmC7oq4vzNS?hn_8$esb@C0Au( zy!3K&qjKZdNqhtLZW2AJ<|ShY`-v1WeF;2mM{oDyGiIY23swyUJVi@RD)V}}?jIt8 z)-Cuai@z_6sbbETB}RLe@Y=^9iMTY`F#&!!?$J4;hqx#v-N7oru^H@=MS-9HG`L#z zM@aFe)mcNMf_v;E$;9nT8yH3s9L=hOP)r#vC6cLI!X_i(={5IHz+BXpt>U>H;STc5 zp`S`&`-#<`t|0GA{2r>|L-o-Ty3$G7e;Fzrss6R4t38FSAICGjP6c0ZtRb4ix-E? z%iD{pN0fNXzSyB+y5 z#+57?#|w*9x?-C{(~^~CYb#qHEwOv)5+thQ@-#97=VF5$dlWaS^zG(p9N!;2OWbFW z4m{Acierm}8hO=#ixgt;DCL7YT>LIGyaM^qC-A)k8$)R48v~ycXQ;YC4e$$yTJmr$ z%wuznlk@f=4jb+c+dF;dAt080)&%1HLwIT{DjR%1A{KR5PceWmfiCTPq)>-08MkPy z?t~W$R0|tK&1s=&i(D8jhHNZ#LfsIf7e9+^4BbmN8iD1+`|qu_;uK1gE{q}*i2QYT z>2{neMZy?aRO7nz=&AS?#7x)RJja<8h50$}vQ`o7F4HO4i5m0`K5!V6+9|cLa<`E; zl6qpF0T5dnd7nN)H+X?yj+!lMWsj#cmdZ-;cT;t1c++cYdjt4nVk*Ua2utlfY1xE! zhK#<89i-X8ZakmJhFvxrt7t0dee<#&};$%E({e&bqa*7Xp4+1l3MWy-Bz_ zgY!4LHj)9yqG}kBo}nDKxTeG~3;}L>8FMspmT>Prae<_F zf^b5`Qk9-s3Lk4H{izHgg?vg}L__ZPI)esH5k*TUx119yQu)4!ri!~MMH%U-cDn|@?26D;o#T<(yE_jcE4#xd?C){ zco|5oCV?%osWLeoGG}DHeTKg3q6f83cD%-(`k@Bx)aj_&54@QjV1RUr+3MpP!;(y# zr4mAv5PR|LBQ?^?#iPzR495w-%CwX{48E+y^hKQBgLuomQQewBA!AWZkUn^5m*9qDfSC+)yjR9P*I|o~a-1a$OH~C;) z-zV+Pg=qCu(nL}gXwDDC`Nul(y|Q#Kej0y>oK7QeANq>}nlS?k@b#*nLc(_AD=U5W z)xF&FF7w_%WX8veTml-ziWu!9E2L^|jS53`@lmb1VZeL07H)lhVwt0j&ZwJ2}P2lX)S@9a7-0ay#GIy$(od`1kUG^B?bp@2a zksMOupo^Xi0>%Ub)m~r8S;B0wY^z*SpcT|)cE?I=(IJ%aWH}v(Q(TbYAX%p7tr7vNG%HGa4(zCmHyN$)R?72iY zjn&8&6Y38fYm*12}Bk1MoHPtjmHG zg`J`TzaTn(zsChHM-{^{ZA${db;24@GXBER>?H#gO7zR1$by38@Zes*GuHu0K_jNE zL8U(zO{&_E@u|=Y^mJ|M4g3%NF156R@=`7O*#0r}JxlbKa7&KGlBdyAsS3*Fg!@l< zG}2jfZ#p6@9|IFpW`W%XH}-8Cx4bgbi>w-BC1nIw=>&Owv6qX@n_oi=AcoVpKuvDP zC7R>X>yt$izf|~f?xWC?Vg%AuGG)M}J-j*82d$GCaAy%(KR%kkIV$Z)w0dEG7e{s{nS_UfKK)Cq`QZ)vI^>ya^q4q6-Xn) zIK=Ki=}Bt!ecrSUO?a1C?S#vUt&<+Nj!Z2iLpGFN`QPgpjMr#UiX{TA7UQ4?Cw1ni zbE+y!#=QsM<#B58uvx2vj1?tT!%t8otd8;N9cJw(@-o6{Md3vm0)Q|rqcPD2;Rh}H zddLe__;W4Vi;U|7)j*w**U@A!*#e7!U}B_w`t6O0%{<(=x@J|J1R{0Lj^^>>DXgQ3 za6ixir*}L2_@9J52){*N_`Rm>Z=@N&wxA+iI!X`04(^S^bJ5Ox;?X&l<89fWFj1)4 zhtIdg+ud)c@r~@*xm9PS7~UlBM8Cao)))pQqmR3=W!BO>+iXyAQV#@<|87iSy@seW z($Lo4a_6DW0;~M>wQ*yPoP5c%X{2OU7;q`3*z|V6qY}@Q`d}{$yE#iiY@W?ig+&e(}}2_G%u7vAxKTMQ>_OYx}( zBJW)lm{Ve5wLvJS=sQDS^tVk3Y|@TI0=V5Y9GEEf zVfDe^q&|H;EI6G%YH`y=j=u>O?Y1@BhV zBG4q3Aa0Gk$q;CX>`IU&amH+01Y>=xCOztpUqyLQM5Mo%V3}e-v+*hjOJT8peEs~m zjnCq#4kmq|hAIeYNSSIN=aojK_ZBnU%+?@8wQ-xp?&F||n^CvT8VG0Y_K#zIm7b6{ zxz-$Bv&x%DgTO4SJ0*!S4E#j8s{Qa*vE2st@`GY=$HqlCGbFG^I73wN9Xp-o!mo1w z8fw>(306)f3x)|pMTdlcAeP!=FlHaEK%a=S1Q~95Wl&Yu$y`ET4_W+F`LLf*B__ow4`Z$Z4L9y1IZem$!)H-NUEsj`Vc0Cy_N z!MXZm0dyc=gOB;8Dw-zhE0}fbasW4Z%J`*3%+nisJ(ZYIJwi8cNw)y_E4c`07sPyg ztc9AT*(fc21r?=U7L*Z^Xs|mB${CZQcEE^4rQ}O{_i_rfo;Pmq+L3tvqmGr!5Ib!> zp~+*+M)gUaZL0FN+N)GKsWKNzprR1w1DM$yzv5Hwa#h0&VAW`c;lqTZ#4nnR0!fIA zWR$8BU6lqOxM%3F`7zKXYR5P?g{Bg~gO)0jwB;c~ShJ3Q!I^YO@bKvz2<{^WMd2;M z$$B4~D!Dlx@%D-N*YZ^LIvsxdRqZ1k@mYiGJ<<*g<>*?g7z`N-_+bN-KcELW;at-N z&)MV5affY4`3hELadA$2tf5JHPM9_IW#f%`1LB_f$O$w0eLddItC60}pXQ@=rcf*n zLq%T~@g0fWIr8SHz=yxgdC__suT$|G%H5)FQ`y`8Y<##QuU{`td@u6jab@nxh3l&}n`o5R#<@2M- z=bv*S`*O^EI$zE3@2!voe<@#x8S8(|wErtwy_K{b5x-7r$*`J>Eyu;lL5jh{>EGe! zlKCK)E3A^F4B10;ZX1To-N#swt^{vH<}H1Ev$Y?BtZq38=2(r=qO;3q`~d&-=jHdF z8jVvy=v>~YzjB|xnn5cQ~JGndh0Q1Ykbw4?yj-fGurC%~(MkfM6h zK@+Fdh|kQD2h)-uJL!qP1H@55bH=S_DFX{0JHA=_`Q71O+Yl4pJJbKFwLz35o34vApnJtTy+D4i$28`p}sHC*9 zH;P|OHA9+u_sl*gcPkk&4urU^0GF~(nQThU=)p>MVR{MDB zBkR(KTH;;TRhkw{e*mo|wIdC)@DtdoqmWqo_je2GY1sJys7a*`!#yq&@h#o0x5t>F z5dgyrF+E+)5NmD;DQAdACY~Nqa<8Wj4ca^%Mk1>oV=B2@1H)Dw%}N-)$ASs-x}Pjb zHB>dcw`U(m6f+S(Q*8Y!gdswJ^Hy4YuNpubqZKcmIi*Qj+^H)Y&z!~4xA7#_KC6ae z$M8p|WD3i}W~)Ms5fDB&h#k0k`-($OA0GzppeqI^ru#m0VL#k>^_r60j8Z|%Q+C(F zd^mLanDkWIBIwHdwIc1kgM?qNk$E0;>YflCwqX5UK`}sPE=dRc0tDTuc-|l-iSKR8 z3S?~!O%C9PFc(#xS&1sCEkEEL25%>Vu{&PiMh6yElTyfepD(X?E2#lfN$yiy^kU!q z(<9dN?$<_kVQyoHW{8%cGeQh(;=Qgg6z+!FR{Y1**~riksSOfC(*{f3n0w13mRcF5 zL8svR4G!JsAgBpLsa+(d@w$G^OUmM_jLpw4Iq%?;G`!nlq8oj#7iGk583S^w{0?*R zm4(gt&Ix+8%dL1pc8K;xpn3)#P$xNKmKJ;l-dL)v@-^0b7dYDsUn)NW47vvRd0aW; zah(ngt{@2!qIfWhyHNG08Sb|m90tIAV zK4~O*uuugff6N~oxq;TAoQk}tB;mXQtRk#5M!8`I1_Zwy@5@aGhOSh2A(LhbsWK2HfCgPzC}3jSnP8EXQh*6aksI8zG-H zZwe8@=QckkUm-L4_B+6b)V6MMgd?KLkZSJe9^!m;0xCNmK6H?kUfKc`#+SsmA7G(A zgz@BM176nZwgrXW2}B;b567uizBNGE06Ov}$RnBNxNznEX(A)mk&H}kKJ&|d^vqj7 z47Ijs8u>BM;6w}Gr*od~DeRfVcSc-iJv14vlhar9q=6F_FJcP^$_86*D|kHQlc&k( zIQ!`=^g@*;pSg6=VO3(WR|CX_(Wif3%X=%4!(ypC#%?&0z`eHXQY6}EzyBPXfAuwy zmQ@TEP-4;`B5a9{h!tC@)l6@|pn2F#vXxJR{seY`-8b3{W?5RX{NTJzEPu&r)3oHLq-wW3x#=8R6FymFj^0 zrNTCfcxz~sY-p!WQJI4390bdLk$a86R4Ax@;7S|=Ng*rwN$NbouI$(0_YnZ2P-d?s z6qQyphfKroOX!T`r8Rke%MRb^iDC(oqjx`1deCo|bs5*Dz3Cp%cgX=(1x^tM)SCB| z2BwXqIG+*VpI4GjRL%%Ilx{mnR=K>l-ahY%|LH+OX4uFZZ65Xg;c>YOcbOY~G}lti zM5+xvo(3A*%U@U%-8v~`En2KlO+QBedtP(%*x3wlw$rZMa*H5J3tLTpBYJURk$ZoM za4h}k8xO(L9`d5I8w1e^y}~W6;Eiu3XO+#%KVCeIH9L02zH$=xf8=B;U^UBE8vggs zU+1KqzM-YQsWFY2leJZ(ini?<8=M!^+RIXJ=mN1qlyZZEOp503K{Z zL({TE0iJ?OMBe9nNWoidlWPmrJnsZeTBVEL2u{c2^~@ODM?aQxmL8Nq4vi3L|-{Vyjw={?If9IYr` zm=e~kbsgAg+9Dg*Wz6-K&Xd9G5UrqGEM<>(O#NPoWbrE;cus(}RbGL*WQbpUuYgr&MnPp3;>@?1;ws8Uv6{87 zH~{%TbLac++;OXRFSzIo73Eq7qGSJIKrmqYEDEHI3X1yo8a+IsP2r2gZPts=gl}e3 zbL^O{a(#8+P!_-NOf|!c`Wd&xJy{lNpXOOe|qxb~nf3e`Og) z-l1)FaXMvBqV#z(JF*~10F2d-Il;Wn*vaIDbTZIW;%AOH!qWe+e;5#gr}y21U@LL-c_xYTAXR;}e;BB{=<+s>rWOOwd^sEQ=( zgoss>i3!%FS#Nd;?^-N0ShZ}$sr+qZ(tCXp134o%9nkSw0nfN-Iw5)oIwQ(8HeCqee=cpT1$ zMs_M{W3HxCv}Mr?_aL^`(_A9a=l{rMv`IV5Fg zVEX{Fv(GDp)|hNH_1T`r^u@-GQwM4~*T5Gh<1=VY1?fy=DhsB|blK`0PjHW1=NSnI zouXmHCp(>mlI2&uUQVU=cg16baN^56Z_n%d8j(9anHTc6@%nxC%nmWx4>4Jv=)Ao> zR{4953z{R>y$|Y6&Z|h#y|eCJWqj&AkZ76}G*(k+4G{N!>lXA8U&BLP2=&<&qZFYz zx_mF5WfvOc{mFH{TR^C}=?&WBpNq~c6usC`pbcb_PEYW>^DX7lM=>;|c8UY33kQ_| z_{Bdb!zU*;2j9_CFJGQsni5VSTYsM5m+~>XU+HJL)a=|qhc?Zy-$#E??+z#0itpQ$ z;sOGgIqcyomI$}20`c3D-eVTGf7;&vX{9d-LaV9!BDLm1K4KauO9+M^*wLbY+IK%-0_U-YRUv`~S_z}t&e{`i<(j`^+nW_Adv zUn53{>ui_{LE$DVR8~2~MC*s(``2|u<9-7*Uq7d+pa}Ge<5&K4{eE6VK>B@x83()u zDT6LnbJ!phYhn=bw*KvN5Q!lLUn4T6G;D`uSs6jhIjCx!1AW7gT#FK|u$J*?CyKqQ zK=zP2@gZq1&^xHP>}c5chhLtkG+9b={Q!dIu2|dN{oM~Mss!UMZ|y^mc#|^dP_mR{ zc>{Du<7{uU(K3DaY8fRly?60^B~fC9>PI<00kYDkIq&=1NEt)gKC`KF^pV?hS@x`1 z(xP!{JQMEc@T?>eja_z|jPFYnuK}59B3?i`!r9R#9yK&G)i`%lN^$2tEH*fl|>p`+`|qu(-mN%h!WwyQ>qnO z>;Nwg?N-(DZ2NOd!28Mrp{X`W_RYX;!k0>G1p&b;ULW?j~sc+aFiwKPbVujEFz@;~<`0PE) zMkF#O-!7~lOrIdVP6DeI1gOiKmv|l@ogO&j>46Zay+`&ZRy=*b{$15izdcOTc7JD! zv}HbrV@q-j7g=eJ%ri%h5T2VtEzo2MuhU{d-6wSAalM&9hlclW8a|9ON0RdFP08@2 za?A?R1`u7i4A(#8vK+mq8fFoZp2o7bl3m@5gvj8l-)pzQwo@H-OQxwbut5oZ1#18vEu~wsDRUO z3Yn;XjE%jX&ay4Z1D2I=Gfx@ic+#p^U_xmr;NC=Qj%Ip1O$%{Hh{2gw(F;S!n8s5i zOMq61$s(?DC$uN_Q-vsyx(djKw0SSL>r{em@^EC-iK4!-SB%2No0wEmqOoEph)*=f zkbUUMNI4H8VfNP#pQfK)yXnDx_bvbu8%4z`=8M+qCQ!q7MxLu zH2GZjGPoF1kmu#LD?7$>iJo>axW_G_u)wS6Ze)Tsn=okD>Dt#h0{YXvEug3s0|Od z@PltejJeOzy6w5FFkWCy_o%sTHu)7<8lwH~6jqrSOU)`X+q>q0KQ4t=BRXE4WhAM{ zgHpfZ2VrHF0>g3>m3NXd2nP)O6}3jZwFjPT5^D^Bh)><1 z&>!^o1mpDDK6B}wn8wMVl_`eeTlOdk5T2FAI)zEt3k}9gUsDf+cI@iDZ(A<#HFfb_ zs+y~4t8%mQ1Bf`?`)dt(+kT<1E-SQ&SWEHGL5OU-$|J#TOc+u*X0gz8cMU|W6r=NW;*TtD+v_Ku?T!oi1x#uU91Gwm^OwED&%*c%1k5sc|Sf9SaZ_Lq_FDHVDSkm2749R2VFWOfj3)uQ49mpVlaw5rm zQp8Qyw%h6<1JVwHm`Ua^2nTAK4Lg0yDoF|6wqPEKrh%`R+NPooZgW1x`j8%j4_^Ev zo#GZX{lsN^#6ShI$)+w*C_Unu8@Ac#C|-k zCw>(W^HwRMMvYu%URv|_h~MxZte{v*l)l(XZ|S~&dVkN1x0i{(EDeJHZ?}v8XV-Q6 zSJTy&T>o;q?U}IBYoB3sYgoSn*e`*CHcAM?hquX^>r(yX8Aa>oU=Sxt)n4>H7!H){ z#odmM+x$P3oe4aY-S@!9mZc;~q{!AH`;y4gZ)_!7mXSgk3`WdoETyQlDB9B^NsA>) z6x!dk2$4!j8!e(z+7puMe;$;%=FUw2=l6Nuciuj~zR$Vmo_p@O_nv!iRl)qM4GC2j zBU!ihnyoiC|8-9E#3s|R@x$E7BR}WMew{U|+{HHT@KvMc>F-)IowLHch8Z#=ZtdEp zzed*g-Tg76dkpW4R@4#HZm@#0&u3&b_#U$LO^VsUFfj2>*m3e+!?1Os$H~LZs_a9W zh01y^n1>D1^BA^EQ+nF>QfFFYl-{hTK?crsX7c_KQY*R*pA_o&4BMl>+BNa6=f|#( zl;7pFnMqm=?F$=ziRMl1zM{9lPI^Kjd0|CUp=Z>%oJ-{=CB~S~5MLX*!6Pkx`1#3x zcgKCKjsBKbGkN~+_dObU{)YD^Hq1ZO@geHT&#YZTsJ?0TLo#Z1ZyHx@6qE3a$ z+w{i6t>)gWqnkn(e;zHPYn(mq-Rx>#!P4iNl%ejaACmSg^KVlK*i%?C7W&(a-Bvf} z757#7(fi`74ncqWmS=xUoZy2Gw8EpqqUdl!NYuh``chh8e}_vUI$ZfDlWa!bl@1Uq z@yZpDjTAWIR^oXrbdAR%!SJLjt=11z#$2rpOmv>;^R!#2TeL?czWmgDF9**>KOT>- zuaBR&_^j|QOZBfemppp*OXqdXjNhf*GMA&Z){Pi(*6noLvP}A$X!`wj3Y`*~SXbM2 zGi_0UL*>sy491vUBUTIEnR-s;TUyD{?yFzYTw|JwM@A>M)5m#&W7-|QU&Rb}lzS^e%Hj1SC?ml%m z%JJJ%&mm7J#fQ?C9G!PER)|ujZE`m>U;Y+((kL5)Z{~BKb%azo%`L2LJ+1i7`ll4t z!>|447Of_)DG8IR>H=GRglRq{`8?aGpGGl!Pi zI!(@2**t98^{zaPMGNj6QQ5g{bW`9&BcC<50=14^EE9Z?^7}ye!6Ma&??y?xbmtAf zWH?jUwQXae$^YJt;Qx&NfQWr#uOm}#Cq#mF>@SOLFr83iRp-k*e@~(4!!E^gHOa^>J3qbe zF@?*o)2|0CP=5DV+c9COLH*vO&b=4^%enPk+)Sn*a>}~*(apI}q$D3gazzR~g6948 zfMNYE=@~H^KJH}sro<(mmn2?Vb$)f1${Yix$FG%_&m3vZ5gwM+c`&>4j(4(cz)7z- zDWOXNpC)Jv#MS(Ekw0#!3a61!cZeO(Um+2^Sm@_HsXIqcZPRmP&MDnsV|K%-LSx_P z9wD{tf_A37Pvhs4-ot{1Q$s8(Civt$kgb-W)>v!0)|CezxLWm2^}C?Oo6o+RK5h`I zU2yxQz7We~Ypj&{9f?J2G~c+p$z>Q-trpxFJ2pzaXYXRN<@ye3ZCZ!ksg!4xUK$=qG5r8D}y$=vTtWFCyUcw2!U80)`=JmTav z!5zxX+>$Hyfr2U(It-dw`A}KLn#wN^m1+}%TC}yrvmADe9QoKN{H}JEkxs3!&~cj= z>LoM2rDxQw%zGcNrox;Z(G>FPW@qWk6>ZCZJy>b^Q}FVNxPrs8mE~O~m3ivOI=>B4 zHP1UzG1Bh7L_@`<_$ev1H+M?d`jye+XG=|Lzh`rn* zBo*K2TbEl4Zawa>KKZ=twjb~F_ojXF&s^m)eRRyYul_0jyGgpV#&*bfqpqo8S3Cu7 zUm3ajh}E45wu<6UiXLYkn>zQP(Qt~j@Uk?$-!?)JNXgyY@hOe(YOWz}3cEclg>84LgHLU@oIzq+#du8V zhA=l3=s2B!-Iks-c1%@hUWoL=mQSf~B9<(Sof)+JK%!o0McCNj$Yoa-ue4aD;4=G6 zX+hK2rK>AiJ@a0PbgciivV;=QEV#9x@irApnM0(_Y0QcL7VWt# zRTJcuy3cy^qGR*U|Hw~NTUyZaAuHq5u=78b=32ceoRDWy9W;58%C4$Mjr#2^i>=2S z7L8oICz1KWOS;xzNW$?>f#W;XbB4z`oW5~JB+W{8-jq|>$x1_hSa$kVSJMpM={WYm(ZdB%dAMbu7iGO*O+5a2yU3*1wH>pYv|nw}(y2?`F4E)Yu){PZ z$LfwYIVZA+=96i9e`S4y=#!EfQ)}lL>$9ALof_n44K;UH30-KsPP|ArSXVZ|(e!wj z@6BI6w;V@Yl5<~M+#otMo~2$BnwqlNwQTx3{glLa66d}PNzS-tx<$ewMc=K)w(b1v zOM%%>Htx|VGCSL`YFLnITunZ8m-8XN$Da!)w3dq)-z;H>OsdgPqZ}5kYbNhYUH#>3 z*Y?Em&6CXaX)e{pNtq1W-=n3p#xE#uo3fx;Y{9AQrr^8t3ip?;6rR8I$@-x7yru4b z-q{;6w#{quyR`O3k?=~L+Hpt6bWF zroaUqzvj!9&%dJw!*DsrX9AHKb@Ex&2$VvpI?3ytE`C*@XzSri6;%c9=s zzEIWmI^Xk2^1d9YGZ8b(-|OnD3}w|C%jDcN_<8IeMeWh-W-r@czg%B;UCO_5>_u3D z?;X+0yWi`0KN^4hppDY8^32Q|JEx_d&vv+OS+&L2T-~SV-1o0l%cYom7yK$rG`9@x zs;{#6&TLjK@rn=snb_SeX#DI-*_m1SSB)*tTqz44E83RgV`2OGh{n@INt0FYhs))L zIn1M_GOwJukheSJ@(lA8 z+batNKbWtG+~_sD*<{GxBmS1dr43v6ByZewdu;pfkq#ZI@hdi3EZN)0%-mR6ru_7Z zcuzv-UMcw_GYmB6?oFCu`q|<`&F*uoxYwVSvm}DQmC7tUcizfgE?SA@Uoa=q?3)kG z(K#aSdg}7rSea-AA4*k2c-|S^vU86PQKiRMqz&zgbaD83%AC=D`j<>b_txd!AN{F^ z*6-JFVpI;#In~;z=6tqLKl_2{Nrs=H=r7MW$1VFFCW(ml$lMwcHhB#*Liy|NS(8N? zvvVZh)wE@OzD-^czuINL&Vr~{mxKEfNM26NDgOkCPM4&J7(zgB6loMm4E|>jZe~`r zQt-oAh#tnkJBkF8#K_}h>p|AGcec}YB0JmL*}8k^INANGMk&N0vU?7+ZI}#$oI?d!N~V#Rm$E=l1NHwB$E074}OJ6;E?uCO|K+dz^hn$K>x|mx$Q~_i#2eNtwKcq1pIpwrCwTEbk z97szme#mKfWJ8@K*%+kUz=7Os!w+eKM^fJh#qI;-Zw}<>nf#EZcx0RUr%}HE=>aJo z>H}>YehJU!gXChCk+Z~eEP?0_LZU}mA7Ka{Rd+;H0G0B;#Zcm9BQCSY+e_niuTrBccdZC{J z5al>Z-Q~@P$i*P7r&$yR0ZpTlAX z(Zgu=Q8X_7`HJEv%qGBw!$*+2tw;(1d_Dl|C}sdN%$gY<4vYNw234B1>9(W|G@q?- zb`zWUkVg>6n~&#pK0B#%6%1=Am;vhL&*tKIjxMF{S^{z+ zBI3<_9J0SdcccT6+MmrZxPL1;>7(}+tYA9CZqpIwg%da?5iay|)%DqH&YH;xq({-2 z{S$A4zjIP)=%aD46fllPBB>$Ykvz@kJ9uS07kjU&3$}0^UKIqmtO*AsM?}yVffRci zJWkQPF$4r5eTNqfo4Q`$aFi%|7(FUholmjX2~k-WLA_NFjS*+?4Ll+(Jg|5f<2Hu& z%mkSKFcJwuB(_KD4Gz{DbrK;bAteKjF@f5d!(?)?1S#ECb5X$7L32VCTJoMJ9WSi$ zvv86!7;BKoVCOHPB!CH=+~~m}QIYDs|H2b3n}%980WA%RPvkBRJaH=AiJYvxN1Kh` zj99-a6NVdP{lTofNjMgJRwTP=tBC$*u*hCn3NDuu8 zh?~F!Q7e?5f#Lq~mz=62gp9thQ|uiyy3J6zli5Thk&K;rzy@8YGPvl%6Piya0_{A! zsBc?32Sfc+^jUpLTX;zwl;g9nz(~~%uKh%d?dHmZiH8|f$ppniv5TOCL+i$GAqHke z4eal3_!L}?+7z@3xEFw{ji_@f6~pa^+QBu5v_L-S(({`iiv!vlUbMlC2*9ApeLI=) z#aD`~DoBGd`eT{Fx}*i-SghdaaJZiZ51ab)X}2f{6$39i*mY#!U{OpiLBU)_!DHqAO^I7ggJ$#TY2h?zR0&5(6Y5Q8)w)XK`oo z5zyqI%ET7{JqRrjHAVd>40OQx^Wm;3j#sV*K|{gGDzoX5L|Ozj#o>OeVxwqe7K<9o zS;>T3{LmwLd3+LmdzZoA`~mN1gm7ay8zC}0 zD&p^bri1;8Sg_FJ4EVeC@Twz>q_{pt|DB?=7%*4e-WeK4I!uQ!xJ6+Xt<=80f^yx3 za;YN3Snv;Qhl}?S`z8Zy2|A~q2!9%E5FUOIc;CVCqyDrI`~nBBKlthm6nRj;r-#t= z!A63BjM_-{8a`BVAT@$(45~BP_23mKHT05$q}5r6;d-#B4Ctg-QM`5fw#US5HdwPL zbbJ#Ko!TbyqViC{>vxotB0voRLD7KjMG^)%&`5YoDmhjEt1%!`K(DAhwIyS)eYMY1 zqgrI624XJp6uinv*&{b$h)&@7c@*0!Q2c=nkj{gAs7L&|8AJP9KRiWj_e)VR1ZX-y zQ4`&?6$2g6B~R*_vwD~8fk@1Qp5YbjcI(j+(k}>-ALw-4;F`lxWzC! zf*6hMso#e|a|^-=FWO!%cXJ(-emvmNu~G6t1QiVfH(ht=bZCKpJ21Wh^v9}U4=7Mo z2jB~2HZfs3B9oK;mpibGpl;*-_fK7-qxh^{kQIz0grIvN2IZ*l($D^<&*6KTTqSq? zVkp6OKpP{a*m#r^+ovNtVp3*ctwnv{Px0SSns+XtT5Ft zG!O=ZfY^6Xj5xJ)P^d&)w+?XyH7Yuivt)$ndTd=Z#2eP7;_woMd zpH9rWGH6k{PV{gZ@73yp38ImD5V8=nuxM+Lg8+fe!~JDa81%)_G*4<+G?&HS;*336 z#9XE}l+A#xWH8rdhDX9kmKsh2nTZZoy?5Q32Vb(lY*R7tM}XKc;l=i7So{mW_iMI{ zXfC7h2c9FhkpcaKqhB$b@h^A}X5Y+%Rdi4gw^3Jdk;8kUi34y@6!P5aU%tUZI~Er6 zlN6yNU_#V{hRjRB1>hmN_Vllwe1TR4Lk`H{R?nHtnv9*Av% zhw)@_gW8?To7yWgmvy+Xq$(Flun%MC0nm}w1PHHj z4x|65NIp7PA3u&90Tyu&Bu1M`GAyg&xG>U&nW`uoI?S;|@>qQn+u=UcAEaFXivVb! z=3r|xK+Wj5_JXJow&v!rXf#FuGY}HG_{K74x5~CAfUY0I7gX6=GE7(x z#nTBU;hgc(-VgAsNe8bt+T-th}#=bHz_NFNA`9~ zeOtNJ2M$c;YRH+D%9=vzBodMDfy#VYmhT5R)j-70Yi&M{Fo&j=58go;QS0dGcqF$7 zniwA*e|(2Qg-*f*B61ysb`TDEL89^AY*PrKd($0sdza^Vk9An`6&^%di6w;8XqWE` zXH@fG!$P_{%-RQpQ6rI1oe=nzz{iFB`t-o* zGaxasMv6Mg@4-CbM1SGWTx!nS&Sbe}Ceo zcPdrhT|qQHP&lfVTSfo)2|QT;`a^9Zt^hFzt z^97z@D;Jx2?jCLwYY&PWm%0p>DN(Qh59b9Q4vh`tZt!IHCSy<|!^qK5A<$*h1E`Rh z!7UeDj;!-;B7|<2phH3X!0~tf|6jqYKe0pQ{s*F;g}Mdz$M)ns;rR`&IW*p<6%sE1 z#}=sQF!s$eo<#S-dcjMq@*(;Najexh&_C*_g`0TtiF(B&YZc~I6Dc)jV1sC{eV~OW zk{EY$cO^xSLLP;ICZga)CAE0N6U#mSZLLA|N5WHogqA*ut+Gg@9^Ob^Q;!zQjMRu6 z>~jD{+jhtYo^tlNJR7nH8LwBxc6E_qP)!FQltmW}Y(Db@6U~Hom$g;M-y#aovtgDQ zt+HbsJkhq!p0!;3LSmi~jMkAaG*h>$1T}LJTIQZKZ5GsB4;aNn#3&jeBbrC|ZRbdy>5i|uVC`c%A;2T_i*_kX zhw)@uk=<>LjrzM;8yXRUav4BvxyNwLhEFtee8L(|Ddr(I@(J7CC>QgI!AV)fW}kt_ zK|#1T5+$Y#b$W9LsN6HM)@#&mAeMW_LL)(kr3V3nNJ^k|-JLv$jUIoORq-ko9h!QP zNVKSgsza$-`vI+qeb-#|VDu$P}-*EpaohYtbMqC6srBg6hrZS*U z_;pML$G4#e!@d$H8!nmG<@2W15F=<82$aIRrl7Dfn7z@22bR#jl{vZ4MVI-mm5)1oRyA1J<-6#pxW4<^}?jU zNQO>$5c{M(F%tMRUZ|D||NkT?Alhj)z~5mT56*#M#1bYekS#jmno6widBJWzKw?qv8j+mYEQvH@mefNHGDo7BqMIiL!e2;X)<*r8Zn^6qEQ{rW;%Ko_BQ<|1r9{$PDj)0xXKvOS|rB0*@*_FRAy2ifeI z;^s&UtMDb2d+Vf3%%D0zNl|rOxrR{srjzlIWapPhiCk1iXp86?9i;++u&IlQ=`0EL zw8$MT4+WMTL@DZQg@VmMkdDk&tbcMm1TpK3_x4aIA|0q`U@29D5MeOUZ)xnC3Al&B zJtg(}(*O+XR)cEt?oB)xuReoUyJ8cds3+h>Q%_uPBb@%$MP33KBY4#4VP)||0-rKy z4^1;xti_>vCvBHJ z-&sSz>t2UOfJS)>USe7Jf@$q^dS45MpaEi`_J6Du!Teq8;_Fi*hqY&Oy(Xjwk+eBD)q+@#0bc(Pg_9>j zP8I1MXbP3*qcE1kWjAVDb?S;{;P`UL^KA&0V}zIIx6{a3y1>`~?jDs#SscsZGX6>X zY_<^vq?y>C+oW3a>!99&zZWT?)(Lvdi=(>u0g7GA!uX4Yr=2 z(l`!YJ5%k%MrDExR>6xlJTC*3(tCD;Ba^tW1&`89`)DKsg>nZap}R!v3=tG@1zMy! z@lQPHK>N=o5=4LLM2HG<4LpaZa)R)T`rC48kb6lI0%6eh`pObz^d9nI9mb608;b|O zo4oH3@H)XssSOAPzn=XMVfMu!{CBQ6jXKl-`KY9B(Aoq9c*h0-_ImSwlJRV~Uj(s- zKmlZgluov%5~4*mE9Jf@Sia>@j3N}128NERE&`^-*bx1p*1s&;$;^D7>L3d9wh)Y? zuCB=u$HZ6a({uEj?w~JaC?GoL$MP6Ni3(u`!obZvI)d2Ez_)6BUgrdw1K9w`Xkaql z6Cv}?H5>P!ov{)yy8wgsJ%{HanBKveYcwsIrr!Hc+b|mU?N?N0p=~yF*fL^+8`hF} zT&SG-Bc>Ow-HuWumU`15jzb4Bv;_!=+q?oXREW*58QBTu5e3qqa|AN55eb>Lfk_74 z@IPm?EM(D$s^FB2fJ%&xONAqUNULDY6m1C$85pPyEsP#RW5x2CE8lu!PwIZ~A{pR9 zP%|!y!65&JU~W9bykvT-f$&WF;F&bo+7^kFxeCMVJ>9VHbn=kio36NI6u0=symf;L z4h1wi``(>|!G`yrdmh-Yg-9OB%JD^2Ll1*BW*}h&Vk5am zk(eAPyb%~W+LqHHQ=QWQI8!|dTl~q0ezFRj)NRSZ9nXdx7z!_od^2pSH?fC?Gd6SI zI|$XA#ctI<6V2;5qQ{4G-e!W8ZwC?4mfV(xW5Ps40DIy+r|JkZuL`sXBSC?mgH58t z>=vjXM0I_V_D<3F&&~4^x8rhI^b8R9AXGCdu0=i$Z0+V~$A5;pD(}QyV$M68qp9C5 z#8F-6{DWqnPh$O21yNf7jQWocB{--foxxwR&&Nw$698ZqR2K@Roy9?2=lp|GJAb6y z@Bq6aj@8jeTKk3naM1q7(?79i@4_ei-=^9qIRg5`IvD7qGBZkXcnakoWbPrKyG()V z%7$5b)WYh@anQaMnt!Oai5K&Wh3mP=!FUG!uSL2qLkbCLh%*l=l-J{Qh!NA zr;1k8tZp3Al~2newjupjr6v&vmHrN1bX21DvoCn+U7;klzi{1#H{AGOMrIJBu1XsGGD6vWXWXO9NaSRj$y%bhw!K!g+mRN`HuSu?{Us4RLUlffN*#*NZR)IV_rD>|c18-YW^z=%8SL7N7- z9bhgHN}$H{b|enQyV{Rkd91$(Xc`ve5T0q24W_n$XtW240lY z-2X*|zMWrYS_4lNsvT9K`dA#3%n0PJ!mrQfi|K)YdGM+t?Xg4&2kSFT?!4y98M#^@ z9QcSqJR@Z+FNy_|58Qd02emE|yXA-+U3Emh6KYrEB~=0Vi33=&%pHUuWP}J9hDikz^a&^*vJ%)#=XWh78Btmo}Ko zen$-I8uDGZaeJpZ{$2$%n8 literal 0 HcmV?d00001 diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 00000000..f1b42451 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/app/src/androidTest/java/br/banco/services/ExampleInstrumentedTest.java b/app/src/androidTest/java/br/banco/services/ExampleInstrumentedTest.java new file mode 100644 index 00000000..43a1049a --- /dev/null +++ b/app/src/androidTest/java/br/banco/services/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package br.banco.services; + +import android.content.Context; +import android.support.test.InstrumentationRegistry; +import android.support.test.runner.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getTargetContext(); + + assertEquals("br.banco.services", appContext.getPackageName()); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..3845e17f --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/BasePresenter.java b/app/src/main/java/br/banco/services/BasePresenter.java new file mode 100644 index 00000000..b7efe255 --- /dev/null +++ b/app/src/main/java/br/banco/services/BasePresenter.java @@ -0,0 +1,6 @@ +package br.banco.services; + +public interface BasePresenter { + + void start(); +} diff --git a/app/src/main/java/br/banco/services/BaseView.java b/app/src/main/java/br/banco/services/BaseView.java new file mode 100644 index 00000000..c0d0d2ee --- /dev/null +++ b/app/src/main/java/br/banco/services/BaseView.java @@ -0,0 +1,6 @@ +package br.banco.services; + +public interface BaseView { + + void start(); +} diff --git a/app/src/main/java/br/banco/services/CheckDevice.java b/app/src/main/java/br/banco/services/CheckDevice.java new file mode 100644 index 00000000..6e84cc79 --- /dev/null +++ b/app/src/main/java/br/banco/services/CheckDevice.java @@ -0,0 +1,57 @@ +package br.banco.services; + +/** + * + * Sequencia de carregamento: + * + * FUND, CONTACT: + * View> Presenter-> Model> Screen> Rules> dbase[Json / Share / dbase] + * Rules[...] = 0 && msgCode <= 5 ) ? msgCode : 0; + + MessageType type = MessageType.values()[msgCode]; + IMessage message = type.returnMessage(); + String[] alertValues = message.configDesign(context); + + view.updateAlertView(alertValues); + } + + + public interface View{ + + void drawView(); + void updateAlertView(String alertValues[]); + void showProgressBar(); + void hideProgressBar(); + + } + +} diff --git a/app/src/main/java/br/banco/services/app/alert/AlertView.java b/app/src/main/java/br/banco/services/app/alert/AlertView.java new file mode 100644 index 00000000..4b0f17b2 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/alert/AlertView.java @@ -0,0 +1,200 @@ + /* + + recebe + carrega + mostra = mensagem + @FAZER: onResume() checar conexao + abrir home + */ + +package br.banco.services.app.alert; + + import android.graphics.Color; + import android.graphics.PorterDuff; + import android.os.Bundle; + import android.os.Handler; + import android.support.v7.app.AppCompatActivity; + import android.util.DisplayMetrics; + import android.util.Log; + import android.view.KeyEvent; + import android.view.View; + import android.widget.Button; + import android.widget.ProgressBar; + import android.widget.RelativeLayout; + import android.widget.TextView; + + import br.banco.services.R; + import br.banco.services.app.utils.ConnectionChek; + + + public class AlertView extends AppCompatActivity implements AlertPresenter.View { + + public String TAG = "ALERTA"; + private AlertPresenter presenter; + private int messageCode = 0; + private ConnectionChek internet; + + + public TextView tvArea ; + public TextView tvTitle; + public TextView tvMessage; + public Button btAction; + + private ProgressBar progressBar; + //private Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_alerts); + + initProgressBar(); + + if(getIntent().getExtras() != null) { + messageCode = getIntent().getExtras().getInt("messageCode"); + } + + drawView(); + presenter = new AlertPresenter(this); + + Log.d(TAG, "VIEW / "+getClass().getName()+" / onCreate -> START " ); + + + + } + + + + @Override + public void onResume() { + super.onResume(); + + presenter.loadAlertView(messageCode, getApplicationContext()); + Log.d(TAG, "VIEW / "+getClass().getName()+" / onResume -> START " ); + } + + + @Override + public void updateAlertView(String[] alertValues) { + + tvArea.setText(alertValues[0]); + tvTitle.setText(alertValues[1]); + tvMessage.setText(alertValues[2]); + btAction.setText(alertValues[3]); + + if(alertValues[4].equals("buttonCircleDefault")){ + btAction.setBackgroundResource( R.drawable.shape_circle_light); + btAction.setTextColor(Color.parseColor("#333333")); + } + + + if(messageCode==2){ // internet error + + btAction.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) + { + showProgressBar(); + + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + hideProgressBar(); + if(checkInternet()){ + + //message.what. + + Log.d(TAG, " VIEW / "+getClass().getName()+" / -> EXIT ") ; + finish(); + } + } + }, 3000); + + Log.d(TAG, " VIEW / "+getClass().getName()+" / onClick -> checkInternet") ; + } + }); + + } + + } + + public boolean checkInternet(){ + + internet = new ConnectionChek(); + + if(internet.isNetworkAvailable(getApplicationContext()) == true){ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> SUCESS") ; + return true; + }else{ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> ERROR") ; + return false; + } + + } + + + @Override + public void drawView(){ + + tvArea = (TextView) findViewById(R.id.lbArea); + tvTitle = (TextView) findViewById(R.id.DT_fd_title); + tvMessage = (TextView) findViewById(R.id.DT_fd_fundName); + btAction = (Button) findViewById(R.id.btAction3); + } + + @Override + public void showProgressBar() { + progressBar.setVisibility(View.VISIBLE); + } + + @Override + public void hideProgressBar() { + progressBar.setVisibility(View.INVISIBLE); + } + + private void initProgressBar() { + + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(this, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(this); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + this.addContentView(progressBar, params); + hideProgressBar(); + } + + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + return false; + } + return super.onKeyDown(keyCode, event); + } + } diff --git a/app/src/main/java/br/banco/services/app/config/ConfigServers.java b/app/src/main/java/br/banco/services/app/config/ConfigServers.java new file mode 100644 index 00000000..0a721e7b --- /dev/null +++ b/app/src/main/java/br/banco/services/app/config/ConfigServers.java @@ -0,0 +1,47 @@ +/* + Endereços ficaram acessiveis para facilitar a mudança de servidores +*/ + +package br.banco.services.app.config; + +public final class ConfigServers { + + public String contactAdress ="https://floating-mountain-50292.herokuapp.com/cells.json"; + public String fundAdress ="https://floating-mountain-50292.herokuapp.com/fund.json"; + public String AlertAdress =""; + public String MessageAdress =""; + + public String getContactAdress() { + return contactAdress; + } + + public void setContactAdress(String contactAdress) { + this.contactAdress = contactAdress; + } + + public String getFundAdress() { + return fundAdress; + } + + public void setFundAdress(String fundAdress) { + this.fundAdress = fundAdress; + } + + + public String getAlertAdress() { + return AlertAdress; + } + + public void setAlertAdress(String alertAdress) { + AlertAdress = alertAdress; + } + + public String getMessageAdress() { + return MessageAdress; + } + + public void setMessageAdress(String messageAdress) { + MessageAdress = messageAdress; + } +} + diff --git a/app/src/main/java/br/banco/services/app/design/DrawProgressBar.java b/app/src/main/java/br/banco/services/app/design/DrawProgressBar.java new file mode 100644 index 00000000..00619827 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/design/DrawProgressBar.java @@ -0,0 +1,92 @@ +package br.banco.services.app.design; + +import android.app.Activity; +import android.content.Context; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.util.DisplayMetrics; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; + +public class DrawProgressBar { + + + + + public void initProgressBar2(Context context) { + + ProgressBar progressBar; + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + // Display display = getWindowManager().getDefaultDisplay(); + + ((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + + //WindowManager window = new WindowManager(); + // ((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics); + + // window.getDefaultDisplay().getW + //window.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + + } + + + public void initProgressBar(Context context) { + + int marginTop = 0; + int marginLeft = 0; + ProgressBar progressBar; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + // getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + //this.getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(context, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(context); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + // this.addContentView(progressBar, params); + // hideProgressBar(); + } + + + + public void showProgressBar(Context context, ProgressBar progressBar) { + progressBar.setVisibility(View.VISIBLE); + } + + public void hideProgressBar(Context context,ProgressBar progressBar) { + progressBar.setVisibility(View.INVISIBLE); + } + + + + +} + + diff --git a/app/src/main/java/br/banco/services/app/design/DrawTextView.java b/app/src/main/java/br/banco/services/app/design/DrawTextView.java new file mode 100644 index 00000000..3de3643c --- /dev/null +++ b/app/src/main/java/br/banco/services/app/design/DrawTextView.java @@ -0,0 +1,12 @@ +package br.banco.services.app.design; + +public class DrawTextView { + + + String id; + String layout_width; + String layout_height; + String text; + String layout_centerInParent; + +} diff --git a/app/src/main/java/br/banco/services/app/design/DrawView.java b/app/src/main/java/br/banco/services/app/design/DrawView.java new file mode 100644 index 00000000..e1b88ddb --- /dev/null +++ b/app/src/main/java/br/banco/services/app/design/DrawView.java @@ -0,0 +1,34 @@ +package br.banco.services.app.design; + +import android.content.Context; +import android.view.View; + +public class DrawView { + + + + + + public View initView(Context context, View view) { + + return view; + } + + + + public View showinitView(Context context, View view) { + view.setVisibility(View.VISIBLE); + return view; + } + + public View hideinitView(Context context,View view) { + view.setVisibility(View.INVISIBLE); + return view; + } + + + + +} + + diff --git a/app/src/main/java/br/banco/services/app/design/TDrawTextView.java b/app/src/main/java/br/banco/services/app/design/TDrawTextView.java new file mode 100644 index 00000000..c2566c3f --- /dev/null +++ b/app/src/main/java/br/banco/services/app/design/TDrawTextView.java @@ -0,0 +1,828 @@ +package br.banco.services.app.design; + +public class TDrawTextView { + + + String AallowUndo_p; + String autoLink_p; + String autoSizeMaxTextSize_p; + String autoSizeMinTextSize_p; + String autoSizePresetSizes_p; + String autoSizeStepGranularity_p; + String autoSizeTextType_p; + String autoText_p; + String breakStrategy_p; + String bufferType_p; + String capitalize_p; + String cursorVisibl_p; + String digits_p; + String drawableBottom_p; + String drawableEnd_p; + String drawableLeft_p; + String drawablePadding_p; + String drawableRight_p; + String drawableStart_p; + String drawableTint_p; + String drawableTintMode_p; + String drawableTop_p; + String editable_p; + String editorExtras_p; + String elegantTextHeight_p; + String ellipsiz_p; + String ems_p; + String enabled_p; + String fallbackLineSpacing_p; + String firstBaselineToTopHeight_p; + String fontFamily_p; + String fontFeatureSettings_p; + String fontVariationSettings_p; + String freezesText_p; + String gravity_p; + String height_p; + String hint_p; + String hyphenationFrequency_p; + String imeActionId_p; + String imeActionLabel_p; + String imeOption_p; + String includeFontPadding_p; + String inputMethod_p; + String inputType_p; + String justificationMode_p; + String lastBaselineToBottomHeight_p; + String letterSpacing_p; + String lineHeight_p; + String lineSpacingExtra_p; + String lineSpacingMultiplier_p; + String lines_p; + String linksClickable_p; + String marqueeRepeatLimit_p; + String maxEms_p; + String maxHeight_p; + String maxLength_p; + String maxLines_p; + String maxWidth_p; + String minEms_p; + String minHeight_p; + String minLines_p; + String minWidth_p; + String numeric_p; + String password_p; + String phoneNumber_p; + String privateImeOptions_p; + String scrollHorizontally_p; + String selectAllOnFocus_p; + String shadowColor_p; + String shadowDx_p; + String shadowDy_p; + String shadowRadius_p; + String singleLine_p; + String text_p; + String textAllCaps_p; + String textAppearance_p; + String textColor_p; + String textColorHighlight_p; + String textColorHint_p; + String textColorLink_p; + String textCursorDrawable_p; + String textFontWeight_p; + String textIsSelectable_p; + String textScaleX_p; + String textSelectHandle_p; + String textSelectHandleLeft_p; + String textSelectHandleRight_p; + int textSize_p; + String textStyle_p; + String typeface_p; + String width_p; + + + public String getAallowUndo_p() { + return AallowUndo_p; + } + + public void setAallowUndo_p(String aallowUndo_p) { + AallowUndo_p = aallowUndo_p; + } + + public String getAutoLink_p() { + return autoLink_p; + } + + public void setAutoLink_p(String autoLink_p) { + this.autoLink_p = autoLink_p; + } + + + public String getAutoSizeMaxTextSize_p() { + return autoSizeMaxTextSize_p; + } + + public void setAutoSizeMaxTextSize_p(String autoSizeMaxTextSize_p) { + this.autoSizeMaxTextSize_p = autoSizeMaxTextSize_p; + } + + public String getAutoSizeMinTextSize_p() { + return autoSizeMinTextSize_p; + } + + public void setAutoSizeMinTextSize_p(String autoSizeMinTextSize_p) { + this.autoSizeMinTextSize_p = autoSizeMinTextSize_p; + } + + + public String getAutoSizePresetSizes_p() { + return autoSizePresetSizes_p; + } + + public void setAutoSizePresetSizes_p(String autoSizePresetSizes_p) { + this.autoSizePresetSizes_p = autoSizePresetSizes_p; + } + + public String getAutoSizeStepGranularity_p() { + return autoSizeStepGranularity_p; + } + + public void setAutoSizeStepGranularity_p(String autoSizeStepGranularity_p) { + this.autoSizeStepGranularity_p = autoSizeStepGranularity_p; + } + + public String getAutoSizeTextType_p() { + return autoSizeTextType_p; + } + + public void setAutoSizeTextType_p(String autoSizeTextType_p) { + this.autoSizeTextType_p = autoSizeTextType_p; + } + + public String getAutoText_p() { + return autoText_p; + } + + public void setAutoText_p(String autoText_p) { + this.autoText_p = autoText_p; + } + + public String getBreakStrategy_p() { + return breakStrategy_p; + } + + public void setBreakStrategy_p(String breakStrategy_p) { + this.breakStrategy_p = breakStrategy_p; + } + + public String getBufferType_p() { + return bufferType_p; + } + + public void setBufferType_p(String bufferType_p) { + this.bufferType_p = bufferType_p; + } + + public String getCapitalize_p() { + return capitalize_p; + } + + public void setCapitalize_p(String capitalize_p) { + this.capitalize_p = capitalize_p; + } + + public String getCursorVisibl_p() { + return cursorVisibl_p; + } + + public void setCursorVisibl_p(String cursorVisibl_p) { + this.cursorVisibl_p = cursorVisibl_p; + } + + public String getDigits_p() { + return digits_p; + } + + public void setDigits_p(String digits_p) { + this.digits_p = digits_p; + } + + public String getDrawableBottom_p() { + return drawableBottom_p; + } + + public void setDrawableBottom_p(String drawableBottom_p) { + this.drawableBottom_p = drawableBottom_p; + } + + public String getDrawableEnd_p() { + return drawableEnd_p; + } + + public void setDrawableEnd_p(String drawableEnd_p) { + this.drawableEnd_p = drawableEnd_p; + } + + public String getDrawableLeft_p() { + return drawableLeft_p; + } + + public void setDrawableLeft_p(String drawableLeft_p) { + this.drawableLeft_p = drawableLeft_p; + } + + public String getDrawablePadding_p() { + return drawablePadding_p; + } + + public void setDrawablePadding_p(String drawablePadding_p) { + this.drawablePadding_p = drawablePadding_p; + } + + public String getDrawableRight_p() { + return drawableRight_p; + } + + public void setDrawableRight_p(String drawableRight_p) { + this.drawableRight_p = drawableRight_p; + } + + public String getDrawableStart_p() { + return drawableStart_p; + } + + public void setDrawableStart_p(String drawableStart_p) { + this.drawableStart_p = drawableStart_p; + } + + public String getDrawableTint_p() { + return drawableTint_p; + } + + public void setDrawableTint_p(String drawableTint_p) { + this.drawableTint_p = drawableTint_p; + } + + public String getDrawableTintMode_p() { + return drawableTintMode_p; + } + + public void setDrawableTintMode_p(String drawableTintMode_p) { + this.drawableTintMode_p = drawableTintMode_p; + } + + public String getDrawableTop_p() { + return drawableTop_p; + } + + public void setDrawableTop_p(String drawableTop_p) { + this.drawableTop_p = drawableTop_p; + } + + public String getEditable_p() { + return editable_p; + } + + public void setEditable_p(String editable_p) { + this.editable_p = editable_p; + } + + public String getEditorExtras_p() { + return editorExtras_p; + } + + public void setEditorExtras_p(String editorExtras_p) { + this.editorExtras_p = editorExtras_p; + } + + public String getElegantTextHeight_p() { + return elegantTextHeight_p; + } + + public void setElegantTextHeight_p(String elegantTextHeight_p) { + this.elegantTextHeight_p = elegantTextHeight_p; + } + + public String getEllipsiz_p() { + return ellipsiz_p; + } + + public void setEllipsiz_p(String ellipsiz_p) { + this.ellipsiz_p = ellipsiz_p; + } + + public String getEms_p() { + return ems_p; + } + + public void setEms_p(String ems_p) { + this.ems_p = ems_p; + } + + public String getEnabled_p() { + return enabled_p; + } + + public void setEnabled_p(String enabled_p) { + this.enabled_p = enabled_p; + } + + public String getFallbackLineSpacing_p() { + return fallbackLineSpacing_p; + } + + public void setFallbackLineSpacing_p(String fallbackLineSpacing_p) { + this.fallbackLineSpacing_p = fallbackLineSpacing_p; + } + + public String getFirstBaselineToTopHeight_p() { + return firstBaselineToTopHeight_p; + } + + public void setFirstBaselineToTopHeight_p(String firstBaselineToTopHeight_p) { + this.firstBaselineToTopHeight_p = firstBaselineToTopHeight_p; + } + + public String getFontFamily_p() { + return fontFamily_p; + } + + public void setFontFamily_p(String fontFamily_p) { + this.fontFamily_p = fontFamily_p; + } + + public String getFontFeatureSettings_p() { + return fontFeatureSettings_p; + } + + public void setFontFeatureSettings_p(String fontFeatureSettings_p) { + this.fontFeatureSettings_p = fontFeatureSettings_p; + } + + public String getFontVariationSettings_p() { + return fontVariationSettings_p; + } + + public void setFontVariationSettings_p(String fontVariationSettings_p) { + this.fontVariationSettings_p = fontVariationSettings_p; + } + + public String getFreezesText_p() { + return freezesText_p; + } + + public void setFreezesText_p(String freezesText_p) { + this.freezesText_p = freezesText_p; + } + + public String getGravity_p() { + return gravity_p; + } + + public void setGravity_p(String gravity_p) { + this.gravity_p = gravity_p; + } + + public String getHeight_p() { + return height_p; + } + + public void setHeight_p(String height_p) { + this.height_p = height_p; + } + + public String getHint_p() { + return hint_p; + } + + public void setHint_p(String hint_p) { + this.hint_p = hint_p; + } + + public String getHyphenationFrequency_p() { + return hyphenationFrequency_p; + } + + public void setHyphenationFrequency_p(String hyphenationFrequency_p) { + this.hyphenationFrequency_p = hyphenationFrequency_p; + } + + public String getImeActionId_p() { + return imeActionId_p; + } + + public void setImeActionId_p(String imeActionId_p) { + this.imeActionId_p = imeActionId_p; + } + + public String getImeActionLabel_p() { + return imeActionLabel_p; + } + + public void setImeActionLabel_p(String imeActionLabel_p) { + this.imeActionLabel_p = imeActionLabel_p; + } + + public String getImeOption_p() { + return imeOption_p; + } + + public void setImeOption_p(String imeOption_p) { + this.imeOption_p = imeOption_p; + } + + public String getIncludeFontPadding_p() { + return includeFontPadding_p; + } + + public void setIncludeFontPadding_p(String includeFontPadding_p) { + this.includeFontPadding_p = includeFontPadding_p; + } + + public String getInputMethod_p() { + return inputMethod_p; + } + + public void setInputMethod_p(String inputMethod_p) { + this.inputMethod_p = inputMethod_p; + } + + public String getInputType_p() { + return inputType_p; + } + + public void setInputType_p(String inputType_p) { + this.inputType_p = inputType_p; + } + + public String getJustificationMode_p() { + return justificationMode_p; + } + + public void setJustificationMode_p(String justificationMode_p) { + this.justificationMode_p = justificationMode_p; + } + + public String getLastBaselineToBottomHeight_p() { + return lastBaselineToBottomHeight_p; + } + + public void setLastBaselineToBottomHeight_p(String lastBaselineToBottomHeight_p) { + this.lastBaselineToBottomHeight_p = lastBaselineToBottomHeight_p; + } + + public String getLetterSpacing_p() { + return letterSpacing_p; + } + + public void setLetterSpacing_p(String letterSpacing_p) { + this.letterSpacing_p = letterSpacing_p; + } + + public String getLineHeight_p() { + return lineHeight_p; + } + + public void setLineHeight_p(String lineHeight_p) { + this.lineHeight_p = lineHeight_p; + } + + public String getLineSpacingExtra_p() { + return lineSpacingExtra_p; + } + + public void setLineSpacingExtra_p(String lineSpacingExtra_p) { + this.lineSpacingExtra_p = lineSpacingExtra_p; + } + + public String getLineSpacingMultiplier_p() { + return lineSpacingMultiplier_p; + } + + public void setLineSpacingMultiplier_p(String lineSpacingMultiplier_p) { + this.lineSpacingMultiplier_p = lineSpacingMultiplier_p; + } + + public String getLines_p() { + return lines_p; + } + + public void setLines_p(String lines_p) { + this.lines_p = lines_p; + } + + public String getLinksClickable_p() { + return linksClickable_p; + } + + public void setLinksClickable_p(String linksClickable_p) { + this.linksClickable_p = linksClickable_p; + } + + public String getMarqueeRepeatLimit_p() { + return marqueeRepeatLimit_p; + } + + public void setMarqueeRepeatLimit_p(String marqueeRepeatLimit_p) { + this.marqueeRepeatLimit_p = marqueeRepeatLimit_p; + } + + public String getMaxEms_p() { + return maxEms_p; + } + + public void setMaxEms_p(String maxEms_p) { + this.maxEms_p = maxEms_p; + } + + public String getMaxHeight_p() { + return maxHeight_p; + } + + public void setMaxHeight_p(String maxHeight_p) { + this.maxHeight_p = maxHeight_p; + } + + public String getMaxLength_p() { + return maxLength_p; + } + + public void setMaxLength_p(String maxLength_p) { + this.maxLength_p = maxLength_p; + } + + public String getMaxLines_p() { + return maxLines_p; + } + + public void setMaxLines_p(String maxLines_p) { + this.maxLines_p = maxLines_p; + } + + public String getMaxWidth_p() { + return maxWidth_p; + } + + public void setMaxWidth_p(String maxWidth_p) { + this.maxWidth_p = maxWidth_p; + } + + public String getMinEms_p() { + return minEms_p; + } + + public void setMinEms_p(String minEms_p) { + this.minEms_p = minEms_p; + } + + public String getMinHeight_p() { + return minHeight_p; + } + + public void setMinHeight_p(String minHeight_p) { + this.minHeight_p = minHeight_p; + } + + public String getMinLines_p() { + return minLines_p; + } + + public void setMinLines_p(String minLines_p) { + this.minLines_p = minLines_p; + } + + public String getMinWidth_p() { + return minWidth_p; + } + + public void setMinWidth_p(String minWidth_p) { + this.minWidth_p = minWidth_p; + } + + public String getNumeric_p() { + return numeric_p; + } + + public void setNumeric_p(String numeric_p) { + this.numeric_p = numeric_p; + } + + public String getPassword_p() { + return password_p; + } + + public void setPassword_p(String password_p) { + this.password_p = password_p; + } + + public String getPhoneNumber_p() { + return phoneNumber_p; + } + + public void setPhoneNumber_p(String phoneNumber_p) { + this.phoneNumber_p = phoneNumber_p; + } + + public String getPrivateImeOptions_p() { + return privateImeOptions_p; + } + + public void setPrivateImeOptions_p(String privateImeOptions_p) { + this.privateImeOptions_p = privateImeOptions_p; + } + + public String getScrollHorizontally_p() { + return scrollHorizontally_p; + } + + public void setScrollHorizontally_p(String scrollHorizontally_p) { + this.scrollHorizontally_p = scrollHorizontally_p; + } + + public String getSelectAllOnFocus_p() { + return selectAllOnFocus_p; + } + + public void setSelectAllOnFocus_p(String selectAllOnFocus_p) { + this.selectAllOnFocus_p = selectAllOnFocus_p; + } + + public String getShadowColor_p() { + return shadowColor_p; + } + + public void setShadowColor_p(String shadowColor_p) { + this.shadowColor_p = shadowColor_p; + } + + public String getShadowDx_p() { + return shadowDx_p; + } + + public void setShadowDx_p(String shadowDx_p) { + this.shadowDx_p = shadowDx_p; + } + + public String getShadowDy_p() { + return shadowDy_p; + } + + public void setShadowDy_p(String shadowDy_p) { + this.shadowDy_p = shadowDy_p; + } + + public String getShadowRadius_p() { + return shadowRadius_p; + } + + public void setShadowRadius_p(String shadowRadius_p) { + this.shadowRadius_p = shadowRadius_p; + } + + public String getSingleLine_p() { + return singleLine_p; + } + + public void setSingleLine_p(String singleLine_p) { + this.singleLine_p = singleLine_p; + } + + public String getText_p() { + return text_p; + } + + public void setText_p(String text_p) { + this.text_p = text_p; + } + + public String getTextAllCaps_p() { + return textAllCaps_p; + } + + public void setTextAllCaps_p(String textAllCaps_p) { + this.textAllCaps_p = textAllCaps_p; + } + + public String getTextAppearance_p() { + return textAppearance_p; + } + + public void setTextAppearance_p(String textAppearance_p) { + this.textAppearance_p = textAppearance_p; + } + + public String getTextColor_p() { + return textColor_p; + } + + public void setTextColor_p(String textColor_p) { + this.textColor_p = textColor_p; + } + + public String getTextColorHighlight_p() { + return textColorHighlight_p; + } + + public void setTextColorHighlight_p(String textColorHighlight_p) { + this.textColorHighlight_p = textColorHighlight_p; + } + + public String getTextColorHint_p() { + return textColorHint_p; + } + + public void setTextColorHint_p(String textColorHint_p) { + this.textColorHint_p = textColorHint_p; + } + + public String getTextColorLink_p() { + return textColorLink_p; + } + + public void setTextColorLink_p(String textColorLink_p) { + this.textColorLink_p = textColorLink_p; + } + + public String getTextCursorDrawable_p() { + return textCursorDrawable_p; + } + + public void setTextCursorDrawable_p(String textCursorDrawable_p) { + this.textCursorDrawable_p = textCursorDrawable_p; + } + + public String getTextFontWeight_p() { + return textFontWeight_p; + } + + public void setTextFontWeight_p(String textFontWeight_p) { + this.textFontWeight_p = textFontWeight_p; + } + + public String getTextIsSelectable_p() { + return textIsSelectable_p; + } + + public void setTextIsSelectable_p(String textIsSelectable_p) { + this.textIsSelectable_p = textIsSelectable_p; + } + + public String getTextScaleX_p() { + return textScaleX_p; + } + + public void setTextScaleX_p(String textScaleX_p) { + this.textScaleX_p = textScaleX_p; + } + + public String getTextSelectHandle_p() { + return textSelectHandle_p; + } + + public void setTextSelectHandle_p(String textSelectHandle_p) { + this.textSelectHandle_p = textSelectHandle_p; + } + + public String getTextSelectHandleLeft_p() { + return textSelectHandleLeft_p; + } + + public void setTextSelectHandleLeft_p(String textSelectHandleLeft_p) { + this.textSelectHandleLeft_p = textSelectHandleLeft_p; + } + + public String getTextSelectHandleRight_p() { + return textSelectHandleRight_p; + } + + public void setTextSelectHandleRight_p(String textSelectHandleRight_p) { + this.textSelectHandleRight_p = textSelectHandleRight_p; + } + + public int getTextSize_p() { + return textSize_p; + } + + public void setTextSize_p(int textSize_p) { + this.textSize_p = textSize_p; + } + + public String getTextStyle_p() { + return textStyle_p; + } + + public void setTextStyle_p(String textStyle_p) { + this.textStyle_p = textStyle_p; + } + + public String getTypeface_p() { + return typeface_p; + } + + public void setTypeface_p(String typeface_p) { + this.typeface_p = typeface_p; + } + + public String getWidth_p() { + return width_p; + } + + public void setWidth_p(String width_p) { + this.width_p = width_p; + } +} diff --git a/app/src/main/java/br/banco/services/app/message/IMessage.java b/app/src/main/java/br/banco/services/app/message/IMessage.java new file mode 100644 index 00000000..75413a81 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/IMessage.java @@ -0,0 +1,10 @@ +package br.banco.services.app.message; + +import android.content.Context; + +public interface IMessage { + + public String[] configDesign(Context context); + +} + diff --git a/app/src/main/java/br/banco/services/app/message/Message.java b/app/src/main/java/br/banco/services/app/message/Message.java new file mode 100644 index 00000000..d745d051 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/Message.java @@ -0,0 +1,24 @@ +package br.banco.services.app.message; +/* + Mostra as mensagens de sistema: Erro, Internet... +*/ +import android.content.Context; + +public class Message implements IMessage{ + + public Context context; + public String[] message; + public IMessage imessage; + + public Message(IMessage imessage){ + this.imessage = imessage; + } + + public String[] configDesign(Context context){ + return message; + } + + public String[] configPernalized(Context context){ + return imessage.configDesign(context); + } +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageConfig.java b/app/src/main/java/br/banco/services/app/message/MessageConfig.java new file mode 100644 index 00000000..8d550ae5 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageConfig.java @@ -0,0 +1,18 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageConfig extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_unknown_error); + } + +} + diff --git a/app/src/main/java/br/banco/services/app/message/MessageError.java b/app/src/main/java/br/banco/services/app/message/MessageError.java new file mode 100644 index 00000000..4b7e5d11 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageError.java @@ -0,0 +1,17 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageError extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_unknown_error); + } + +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageLoad.java b/app/src/main/java/br/banco/services/app/message/MessageLoad.java new file mode 100644 index 00000000..25b5b7e8 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageLoad.java @@ -0,0 +1,17 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageLoad extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_loading_app); + } + +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageNormal.java b/app/src/main/java/br/banco/services/app/message/MessageNormal.java new file mode 100644 index 00000000..d4928766 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageNormal.java @@ -0,0 +1,17 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageNormal extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_connection_error); + } + +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageSend.java b/app/src/main/java/br/banco/services/app/message/MessageSend.java new file mode 100644 index 00000000..7460b6a5 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageSend.java @@ -0,0 +1,17 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageSend extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_sending_app); + } + +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageSuccess.java b/app/src/main/java/br/banco/services/app/message/MessageSuccess.java new file mode 100644 index 00000000..da94c779 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageSuccess.java @@ -0,0 +1,17 @@ +package br.banco.services.app.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class MessageSuccess extends AppCompatActivity implements IMessage { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_connection_sucess); + } + +} diff --git a/app/src/main/java/br/banco/services/app/message/MessageType.java b/app/src/main/java/br/banco/services/app/message/MessageType.java new file mode 100644 index 00000000..9b710bbc --- /dev/null +++ b/app/src/main/java/br/banco/services/app/message/MessageType.java @@ -0,0 +1,49 @@ +package br.banco.services.app.message; +/* +Enumera os tipos de mensagens de sistema + */ +public enum MessageType { + + LOAD { + @Override + public IMessage returnMessage() { + return new MessageLoad(); + } + }, + CONFIG { + @Override + public IMessage returnMessage() { + return new MessageConfig(); + } + }, + NORMAL { + @Override + public IMessage returnMessage() { + return new MessageNormal(); + } + }, + SUCESS { + @Override + public IMessage returnMessage() { + return new MessageSuccess(); + } + }, + ERROR { + @Override + public IMessage returnMessage() { + return new MessageError(); + } + } + , + SEND { + @Override + public IMessage returnMessage() { + return new MessageSend(); + } + } + + ; + + public abstract IMessage returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/app/utils/CharacterCheck.java b/app/src/main/java/br/banco/services/app/utils/CharacterCheck.java new file mode 100644 index 00000000..212d8a14 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/CharacterCheck.java @@ -0,0 +1,55 @@ +package br.banco.services.app.utils; + +import android.util.Log; + +public final class CharacterCheck { + + public int isNumber; + public long isLong; + public String Text; + public String Simbol; + + public int getIsNumber(String isNumber) { + try { + + Integer numberInt = Integer.valueOf(isNumber); + return numberInt; + } + catch (NumberFormatException e) { + Log.e("CONTACT", "ERROR = " + e.getMessage()); + return 0; + } + } + + + public long getIsLong(String checkLong) { + + try { + + //Long numberLong = Long.parseLong(checkLong); + long numberLong = Long.valueOf(checkLong); + // Log.e("CONTACT", "SUCCESS = " + numberLong); + return numberLong; + } + catch (NumberFormatException e) { + //Log.e("CONTACT", "ERROR = " + e.getMessage()); + return 0; + } + } + + public String getText() { + return Text; + } + + public void setText(String text) { + Text = text; + } + + public String getSimbol() { + return Simbol; + } + + public void setSimbol(String simbol) { + Simbol = simbol; + } +} diff --git a/app/src/main/java/br/banco/services/app/utils/ClassDetails.java b/app/src/main/java/br/banco/services/app/utils/ClassDetails.java new file mode 100644 index 00000000..0428ef3e --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ClassDetails.java @@ -0,0 +1,39 @@ +package br.banco.services.app.utils; + +public final class ClassDetails { + + private String ClassName; + private String MethodName; + private String MethodType; + + + public ClassDetails(){ + + // this.ClassName = getClass().getName(); + //this.MethodName = getClass().getEnclosingMethod().getName(); + } + + public String getClassName() { + return ClassName; + } + + public void setClassName(String className) { + ClassName = className; + } + + public String getMethodName() { + return MethodName; + } + + public void setMethodName(String methodName) { + MethodName = methodName; + } + + public String getMethodType() { + return MethodType; + } + + public void setMethodType(String methodType) { + MethodType = methodType; + } +} diff --git a/app/src/main/java/br/banco/services/app/utils/CompareClassAndData.java b/app/src/main/java/br/banco/services/app/utils/CompareClassAndData.java new file mode 100644 index 00000000..d76fb523 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/CompareClassAndData.java @@ -0,0 +1,46 @@ +package br.banco.services.app.utils; + +import android.util.Log; + +import br.banco.services.fund.data.template.FromFund; + +import static br.banco.services.fund.domain.Configclass.SCREEN_CLASS; + +public class CompareClassAndData { + + + public boolean compareClassAndData(){ + + // comparar se as config da classe sao iguais aos dados + FromFund fromFund = new FromFund(); + + boolean nameAll = false; + boolean sizeAll = false; + + try { + + String fundName = fromFund.LOAD_DATA_NAME; + String className = SCREEN_CLASS.Name; + + int fundSize = fromFund.LOAD_DATA_SIZE; + int classSize = SCREEN_CLASS.Size; + + //name = SCREEN_CLASS.Name == fromFund.LOAD_DATA_NAME; + nameAll = fundName.equals(className); + sizeAll = fundSize == classSize; + + // Log.d("FUND", "VIEW / nameAll -> " + className+ "=" + fundName); + // Log.d("FUND", "VIEW / sizeAll -> " + classSize+ "=" + fundSize); + + }catch (Exception e){ + Log.d("FUND", "VIEW / CompareClassAndData -> ERROR! -> " + e.getMessage()); + } + + return (nameAll && sizeAll) ; + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/app/utils/CompareClassAndJson.java b/app/src/main/java/br/banco/services/app/utils/CompareClassAndJson.java new file mode 100644 index 00000000..21312dba --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/CompareClassAndJson.java @@ -0,0 +1,45 @@ +package br.banco.services.app.utils; + +import android.util.Log; + +import org.json.JSONObject; + +import java.lang.reflect.Field; + +public class CompareClassAndJson { + + + public boolean compareIF(JSONObject json, Class clas){ + + boolean compare = false; + + try { + + Field[] fields = clas.getDeclaredFields(); + int count = 0; + String jsonNames = null; + String fieldNames = null; + + for(Field fieldName : fields){ + + //Class fielType = fieldName.getType(); + jsonNames = json.names().getString(count); + + + Log.d("FUND", fieldName.getName() + " / " + jsonNames); + + count++; + } + + }catch (Exception e){ + Log.d("FUND", "compareIF->ERROR->" + e.getMessage()); + } + + return compare ; + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/app/utils/Connection.java b/app/src/main/java/br/banco/services/app/utils/Connection.java new file mode 100644 index 00000000..039ecc80 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/Connection.java @@ -0,0 +1,36 @@ + /* + @fazer + implementar @ import android.net.NetworkCapabilities; + cehcar versao do android suporta este + */ + +package br.banco.services.app.utils; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; + + public class Connection { + + private static int TYPE_WIFI = 1; + private static int TYPE_MOBILE = 2; + private static int TYPE_NOT_CONNECTED = 0; + + public static int getConnectivityStatus(Context context) { + + ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); + + switch (activeNetwork.getSubtype()) + { + + case ConnectivityManager.TYPE_WIFI: + return TYPE_WIFI; + case ConnectivityManager.TYPE_MOBILE: + return TYPE_MOBILE; + default: + return TYPE_NOT_CONNECTED; + + } + } + } diff --git a/app/src/main/java/br/banco/services/app/utils/ConnectionChek.java b/app/src/main/java/br/banco/services/app/utils/ConnectionChek.java new file mode 100644 index 00000000..47764698 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ConnectionChek.java @@ -0,0 +1,45 @@ + /* + @fazer + implementar @ import android.net.NetworkCapabilities; + cehcar versao do android suporta este + */ + +package br.banco.services.app.utils; + +import android.content.Context; +import android.net.ConnectivityManager; +import android.net.NetworkInfo; + + public class ConnectionChek { + + + public static boolean isNetworkAvailable(Context context) { + + try { + ConnectivityManager connectivityManager = (ConnectivityManager) + context.getSystemService(Context.CONNECTIVITY_SERVICE); + + if (connectivityManager != null) { + NetworkInfo activeNetwork = connectivityManager.getActiveNetworkInfo(); + return (activeNetwork != null && activeNetwork.isConnected()); + } else { + return false; + } + + }catch (Exception e){ + return false; + } + + } + + + + + + + + + + + + } diff --git a/app/src/main/java/br/banco/services/app/utils/JsonConvert.java b/app/src/main/java/br/banco/services/app/utils/JsonConvert.java new file mode 100644 index 00000000..27c1732a --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/JsonConvert.java @@ -0,0 +1,449 @@ +package br.banco.services.app.utils; +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +// screen=str, info=array, downInfo=array , moreInfo=str + +public class JsonConvert { + + public JSONObject objZero; + public JSONObject objOne ; + public JSONObject objTwo ; + public JSONObject objTree ; + + JSONArray arrayOne; + JSONArray arrayTwo; + + + + public ReactAplication RX; + public JsonConvert(){ + RX = new ReactAplication(); + + + + } + + //------------------ BUSCA OBJETOS ---------------- + + + // level 3 + public JSONObject searchLevelTree(String jsonString, + String clssString, + String fieldString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + + // Log.e("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("objZero.length():" + objZero.length()); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + // Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + if(key.equals(clssString+"")) { + + // objTwo = objOne.getJSONArray(key); + objTwo = objOne.getJSONObject(key); + // Log.v("FUND", "@objTwo: " +key + " @length:" + objTwo.length()); + + for (int i2 = 0; i2 < objTwo.length(); i2++) { + + String key2 = objTwo.names().getString(i2) +""; + String val2 = objTwo.get(objTwo.names().getString(i2)) + ""; + //Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + val2); + + if(key2.equals(fieldString+"")) { + + objTree = objTwo.getJSONObject(key2); + Log.v("FUND", "@objTree: " +key + " @length:" + objTree.length()); + + for (int i3 = 0; i3 < objTree.length(); i3++) { + + String key3 = objTree.names().getString(i3) +""; + String val3 = objTree.get(objTree.names().getString(i3)) + ""; + + Log.v("FUND", "@KEY: " +key3 + " @VALUE:" + val3); + + } + + } + + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + Log.e("FUND", e.getMessage()); + // RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + // level 1 + public JSONObject searchLevelOne(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + + // Log.e("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("objZero.length():" + objZero.length()); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + // Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + if(key.equals(clssString+"")) { + + // objTwo = objOne.getJSONArray(key); + objTwo = objOne.getJSONObject(key); + Log.v("FUND", "@objTwo: " +key + " @length:" + objTwo.length()); + + for (int i2 = 0; i2 < objTwo.length(); i2++) { + + String key2 = objTwo.names().getString(i2) +""; + String val2 = objTwo.get(objTwo.names().getString(i2)) + ""; + Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + val2); + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + Log.e("FUND", e.getMessage()); + // RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + // level 0 + public JSONObject searchLevelZero(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + boolean resultOne = false; + + try { + + objZero = new JSONObject(jsonString); + objOne = objZero.getJSONObject(clssString); + objOne = objZero.getJSONObject(clssString); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + if(resultOne) { + + RX.onNext(msgFlow); + + //Log.v("FUND", "" +mapKey + " = " + mapValue); + + for (int i = 0; i < objOne.names().length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + Log.v("FUND", "KEY:" +key + " VALUE:" + val); + + } + + RX.onNext("SUCESSO"); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + //------------------ BUSCA ARRAYS ---------------- + + + //level 2 + public JSONObject searchLevelOneArray(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + JSONArray arraTwo; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + // Log.d("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("msgFlow:" + msgFlow); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + //Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + //RX.onNext("msgFlow:" + msgFlow); + if(key.equals(clssString+"")) { + + //objTwo = objOne.getJSONArray(key); + // objTwo = objOne.getJSONObject(key); + arrayOne = objOne.getJSONArray(key); + //Log.d("FUND", "@arrayOne: " +arrayOne + " @length:" + arrayOne.length() + ""); + + for (int i2 = 0; i2 < arrayOne.length(); i2++) { + + + // String key2 = objTwo.names().getString(i2) +""; + //String key2 = objTwo.names().getString(i2) +""; + + Log.d( "FUND", "OBJ = " + arrayOne.get(i2).toString()); + + // String val2 = objTwo.get(objOne.names().getString(i)) + ""; + + // Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + key2); + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + + //level 3 + public JSONObject searchLevelTreeArray(String jsonString, + String clssString, + String fieldString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + JSONArray arraTwo; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + // Log.d("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("msgFlow:" + msgFlow); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + //Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + //RX.onNext("msgFlow:" + msgFlow); + if(key.equals(clssString+"")) { + + //objTwo = objOne.getJSONArray(key); + // objTwo = objOne.getJSONObject(key); + arrayOne = objOne.getJSONArray(key); + //Log.d("FUND", "@arrayOne: " +arrayOne + " @length:" + arrayOne.length() + ""); + + for (int i2 = 0; i2 < arrayOne.length(); i2++) { + + // String key2 = objTwo.names().getString(i2) +""; + //String key2 = objTwo.names().getString(i2) +""; + + String key2 = arrayOne.get(i2).toString() +""; + Log.d( "FUND", "ARRAY = " + key2); + + if(key2.equals(fieldString+"")) { + + + // nameZero = arrayOne.getString(key2.toS); + + //objTwo = arrayOne.getJSONObject(key2); + // arrayTwo = arrayOne.getJSONArray(key2); + // JSONArray arrAtores = arrayTwo.getJSONObject(); + + //Log.d( "FUND", "objTwo = " + key2.length()); + + // for (int i3 = 0; i3< objTwo.length(); i3++) { + + // String key2 = objTwo.names().getString(i3) +""; + //String key2 = objTwo.names().getString(i3) +""; + + // Log.v("FUND", "@KEY: " + key2 + " @VALUE:" + key2); + // } + + } + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + + + + + + +} + diff --git a/app/src/main/java/br/banco/services/app/utils/JsonConvertTypes.java b/app/src/main/java/br/banco/services/app/utils/JsonConvertTypes.java new file mode 100644 index 00000000..174bbab9 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/JsonConvertTypes.java @@ -0,0 +1,261 @@ +package br.banco.services.app.utils; + +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class JsonConvertTypes { + + + public Map dataToMap = new HashMap(); + + public void convertTo(String origin) { + + + + String className = "screen"; + // origin = "xxxx"; + + JSONObject jsonObject = convertStringJson( origin, className ); + // dataToMap = convertToMap(origin); + + // String TES = convertClassName(jsonObject, className); + + } + + + + // OK + + + // OK + public JSONObject convertStringJson(String origin, String className) { + + try{ + + if( origin.length() > 0 ) { + + Log.d("FUND", "convertStringJson -> SUCESS"); + + JSONObject json = new JSONObject(origin); + JSONObject parts = json.getJSONObject(className); + + return parts; + } + else { + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertStringJson -> ERROR - >" + e.toString()); + return null; + } + + } + + // OK + public String convertClassName(JSONObject json, String className){ + + String classFinal = "A"; + // String ClassConvert = className.substring(0, 1).toUpperCase() + className.substring(1); + + try { + JSONObject mainObj = json.getJSONObject("screen"); + + if (mainObj.length() == 10) { + + for(int i = 0; i SUCESS" + classFinal ); + + } else { + Log.d("FUND", "convertClassName -> ERROR" ); + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertClassName -> ERROR - >" + e.toString()); + return null; + } + + + + + + + /* + + try { + // Field[] fields = classeTry.getFields(); + //Object fieldType = field.getType(); + + + Screen screen = new Screen(); + Class classeTry = screen.getClass(); + + + + Field nameField = classeTry.getField("title"); + + Log.v("FUND", "convertClassName -> SUCESSO " + nameField); + + } catch(NoSuchFieldException e) { + Log.v("FUND", "convertClassName -> ERRO -> " +e.toString() + " "); + } + */ + + return classFinal; + } + + + public static Map loadMap(JSONObject json) throws JSONException { + + Map retMap = new HashMap(); + + if(json != JSONObject.NULL) { + retMap = jsonToMap(json); + } + return retMap; + } + + public Map convertToMap(String origin){ + + Map dataToMap = new HashMap(); + boolean error = false; + + try { + JSONObject json = new JSONObject(origin); + JSONObject mainObj = json.getJSONObject("screen"); + + if (mainObj.length() == 10) { + + for(int i = 0; i SUCESS" ); + + } else { + Log.d("FUND", "convertToMap -> ERROR < 10" ); + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertToMap -> ERROR - >" + e.toString()); + return null; + } + return dataToMap; + } + + public String jsonMapToSring (HashMap mainObj){ + + String destiny = null; + + if (mainObj.size() == 10) { + + for(int i = 0; i < mainObj.size(); i++){ + + String mapKey = mainObj.get(i) +""; + String mapValue = mainObj.get(i) + ""; + + dataToMap.put(mapKey, mapValue); + + Log.v("FUND", "" +mapKey + " = " + mapValue); + } + Log.d("FUND", "convertToMap -> SUCESS" ); + + } else { + Log.d("FUND", "convertToMap -> ERROR < 10" ); + return null; + } + + return destiny; + } + + public static Map jsonToMap(JSONObject object) throws JSONException { + Map map = new HashMap(); + + Iterator keysItr = object.keys(); + while(keysItr.hasNext()) { + String key = keysItr.next(); + Object value = object.get(key); + + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap((JSONObject) value); + } + map.put(key, value); + } + return map; + } + + public static List jsonToList(JSONArray array) throws JSONException { + + List list = new ArrayList(); + + for(int i = 0; i < array.length(); i++) { + Object value = array.get(i); + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap((JSONObject) value); + } + list.add(value); + } + + return list; + } + + public String[] convertToArray(String start){ + String[] resultValue = {}; + + return resultValue; + } + + public ArrayList convertToString(String start){ + ArrayList resultValue = null ; + + return resultValue; + } + +} + + +/* +dataToMap.put("fundName", mainObj.getString("fundName")); +dataToMap.put("whatIs", mainObj.getString("whatIs")); +dataToMap.put("definition", mainObj.getString("definition")); +dataToMap.put("riskTitle", mainObj.getString("riskTitle")); +dataToMap.put("risk", mainObj.getString("risk")); +dataToMap.put("infoTitle", mainObj.getString("infoTitle")); +dataToMap.put("moreInfo", mainObj.getString("moreInfo")); +dataToMap.put("info", mainObj.getString("info")); +dataToMap.put("downInfo", mainObj.getString("downInfo")); +*/ + diff --git a/app/src/main/java/br/banco/services/app/utils/JsonConvertV1.java b/app/src/main/java/br/banco/services/app/utils/JsonConvertV1.java new file mode 100644 index 00000000..e7f6064a --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/JsonConvertV1.java @@ -0,0 +1,94 @@ +package br.banco.services.app.utils; +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +public class JsonConvertV1 { + + public ReactAplication RX; + public JsonConvertV1(){ + + + } + + public void startTask(String jsonString) { + + String jsonStr = "{" + + "\"devmovies\":" + + "{" + + "\"filme\":" + + "[" + + "{" + + "\"id\":1," + + "\"titulo\":\"Os Arquivos JSON\"," + + "\"ano\":1998," + + "\"resumo\":\"A história dos arquivos muito leves\"," + + "\"generos\":[\"Ação\",\"Sci-fi\",\"Drama\"]," + + "\"elenco\":[\"Gillian Triggerson\",\"David Markupovny\"]" + + "}," + + "{" + + "\"id\":2," + + "\"titulo\":\"Sexta-feira 13: JSON Vive\"," + + "\"ano\":1986," + + "\"generos\":[\"Ação\",\"Horror\"]," + + "\"elenco\":[\"Ann Labelvalue Pair\", \"Jennifer Json\", \"John Java\"]" + + "}" + + "]" + + "}" + + "}"; + + + try { + + + JSONObject devMovies = new JSONObject(jsonStr); + JSONObject filmes = devMovies.getJSONObject("devmovies"); + JSONArray arrFilmes = filmes.getJSONArray("filme"); + + + for (int i = 0; i < arrFilmes.length(); i++) { + + //recupera filme de índice "i" no array + JSONObject f = ((JSONArray) arrFilmes).getJSONObject(i); + + System.out.println("id: " + f.getInt("id")); + System.out.println("titulo: " + f.getString("titulo")); + System.out.println("ano: " + f.getInt("ano")); + + Log.d("FUND","resumo: " + f.optString("resumo", "-")); + + //gêneros + JSONArray arrGeneros = f.getJSONArray("generos"); + for (int k = 0; k < arrGeneros.length(); k++) { + Log.d("FUND", "genero " + (k + 1) + ": " + arrGeneros.getString(k)); + } + + //elenco + System.out.println("elenco: "); + + JSONArray arrAtores = f.getJSONArray("elenco"); + for (int j = 0; j < arrAtores.length(); j++) { + Log.d( "TAG", "\t" + arrAtores.getString(j)); + } + + System.out.println(); + + } // for + + RX.onNext("SUCESSO"); + }catch(JSONException e){ + RX.onError(e); + } + catch (Exception e){ + RX.onError(e); + } + + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/app/utils/Layout.java b/app/src/main/java/br/banco/services/app/utils/Layout.java new file mode 100644 index 00000000..1a44f40a --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/Layout.java @@ -0,0 +1,14 @@ +package br.banco.services.app.utils; + +import android.util.Log; + +public final class Layout { + + + public void showLog(String tag, String event){ + + Log.d(tag, " -> "+getClass().getName()+" -> " + event) ; + } + + +} diff --git a/app/src/main/java/br/banco/services/app/utils/Orientation.java b/app/src/main/java/br/banco/services/app/utils/Orientation.java new file mode 100644 index 00000000..b227f4c6 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/Orientation.java @@ -0,0 +1,51 @@ +package br.banco.services.app.utils; + +public class Orientation { + + int orientation; + int horizontal; + int vertical; + int blok; + + public int getOrientation() { + // int currentOrientation = getResources().getConfiguration().orientation; + return orientation; + } + + public void setOrientation(int orientation) { + // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); + this.orientation = orientation; + } + + public int getHorizontal() { + return horizontal; + } + + public void setHorizontal(int horizontal) { + this.horizontal = horizontal; + } + + public int getVertical() { + return vertical; + } + + public void setVertical(int vertical) { + this.vertical = vertical; + } + + + + public void setBlok(int blok) { + /* + int currentOrientation = getResources().getConfiguration().orientation; + if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); + } + else { + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT); + } + */ + + this.blok = blok; + } +} diff --git a/app/src/main/java/br/banco/services/app/utils/Preferences.java b/app/src/main/java/br/banco/services/app/utils/Preferences.java new file mode 100644 index 00000000..ebae5ba4 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/Preferences.java @@ -0,0 +1,30 @@ + /* + @fazer + implementar + */ + +package br.banco.services.app.utils; +import android.content.Context; +import android.content.SharedPreferences; + + public class Preferences { + + + public static final String LOGGED = "logged"; + + private SharedPreferences mSharedPreferences; + private Context mContext; + + public Preferences(Context aContex){ + mContext = aContex; + mSharedPreferences = mContext.getSharedPreferences("settings", Context.MODE_PRIVATE); + } + + public boolean getBoolean(String aKey){ + return mSharedPreferences.getBoolean(aKey, false); + } + + public void setBoolean(String aKey, boolean aValue){ + mSharedPreferences.edit().putBoolean(aKey,aValue).commit(); + } + } diff --git a/app/src/main/java/br/banco/services/app/utils/ReactAplication.java b/app/src/main/java/br/banco/services/app/utils/ReactAplication.java new file mode 100644 index 00000000..d749ae4d --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ReactAplication.java @@ -0,0 +1,65 @@ +package br.banco.services.app.utils; + +import android.util.Log; + + +public class ReactAplication { + + + public void onCompleted(){ + + try{ + + Log.e("FUND", "onError: "); + + }catch (Exception ex){ + Log.d("FUND", "onCompleted: ERROR ONNEX: " + ex.getMessage() ); + } + + } + + public void onError(Throwable e){ + + try{ + + // StackTraceElement[] s = Thread.currentThread().getStackTrace(); + // StackTraceElement e = s[3]; + // String c = e.getClassName(); + // String m = e.getMethodName(); + + String message = "-> CLASS: " + e.getStackTrace()[2].getClassName() + + " -> METHOD: " + e.getStackTrace()[2].getMethodName() + + "-> ERROR"+ e.getMessage() + + ""; + Log.e("FUND", "onError: " + message); + + }catch (Exception ex){ + Log.d("FUND", "onNext: ERROR ONNEX: " + ex.getMessage() ); + } + + } + + public void onNext(String message){ + + try{ + + StackTraceElement[] s = Thread.currentThread().getStackTrace(); + StackTraceElement e = s[3]; + + if(e.getMethodName().equals("")){ e = s[1]; } + //if(e!=null){ e = s[2]; } + + String c = e.getClassName(); + String m = e.getMethodName(); + + Log.d("FUND", "onNext: " + m + " -> " + message +" -> " + c ); + // Delegate.onError(String Message) + + }catch (Exception ex){ + Log.d("FUND", "onNext: ReactAplication ERROR: " + ex.getMessage() ); + } + + + } +} + diff --git a/app/src/main/java/br/banco/services/app/utils/ScreenSizes.java b/app/src/main/java/br/banco/services/app/utils/ScreenSizes.java new file mode 100644 index 00000000..a21aba48 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ScreenSizes.java @@ -0,0 +1,41 @@ +package br.banco.services.app.utils; + +import android.app.Activity; +import android.content.Context; +import android.util.DisplayMetrics; + +public final class ScreenSizes extends Activity { + + private int width = 0; + private int height = 0; + + //Activity activity = new Activity().getParent(); + + public ScreenSizes(Activity activity,Context context){ + + DisplayMetrics displayMetrics = new DisplayMetrics(); + activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + //((Activity)context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + this.height = displayMetrics.heightPixels; + this.width = displayMetrics.widthPixels; + + } + + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + +} diff --git a/app/src/main/java/br/banco/services/app/utils/ValidatorEmail.java b/app/src/main/java/br/banco/services/app/utils/ValidatorEmail.java new file mode 100644 index 00000000..1f053cda --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ValidatorEmail.java @@ -0,0 +1,44 @@ + +package br.banco.services.app.utils; + +import java.util.regex.Pattern; + + +public class ValidatorEmail {// implements TextWatcher + + private boolean mIsValid = false; + + public static final Pattern EMAIL_PATTERN = Pattern.compile( + "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + + "\\@" + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + + "(" + + "\\." + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + + ")+" + ); + + + + public boolean isValid() { + return mIsValid; + } + + + public static boolean isValidEmail(CharSequence email) { + return email != null && EMAIL_PATTERN.matcher(email).matches(); + } + + /* + @Override + final public void afterTextChanged(Editable editableText) { + mIsValid = isValidEmail(editableText); + } + + @Override + final public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + final public void onTextChanged(CharSequence s, int start, int before, int count) {} + */ +} diff --git a/app/src/main/java/br/banco/services/app/utils/ValidatorName.java b/app/src/main/java/br/banco/services/app/utils/ValidatorName.java new file mode 100644 index 00000000..f2b4dfd9 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ValidatorName.java @@ -0,0 +1,80 @@ +package br.banco.services.app.utils; +/* + CERTO: Jose Silva Santos + ERRADO: Jose da Silva Santos + +*/ + +import java.util.regex.Pattern; + +public class ValidatorName { //implements TextWatcher + + //private boolean isValidName = false; + + public static final Pattern USER_NAME = Pattern.compile( + "[a-zA-ZA-z\\-\\+]{1,50}" + ); + + + public static boolean haveWords(String strName) { + try { + + if(strName != null) { + strName = strName.replace(" ","").trim(); + } + + return USER_NAME.matcher(strName).matches(); + + } catch (Exception e) { + return false; + } + } + + public static boolean haveSize(String strName) { + try { + return strName != null + && strName.length() > 1 + && strName.length() < 25 + ; + + } catch (Exception e) { + return false; + } + } + + public static boolean haveParts(String strName){ + try { + + String[] parts = {}; + if(strName != null) { + strName = (strName.trim()); + parts = strName.split(" "); + } + + return (parts.length > 1 && parts.length < 5) ; + + } catch (Exception e) { + return false; + } + + } + + public static boolean isValidName(String strName) { + + //return ( haveWords(strName) ); + return ( haveWords(strName) && haveSize(strName) && haveParts(strName) ); + } + + /* + @Override + final public void afterTextChanged(Editable editableText) { + } + + @Override + final public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + final public void onTextChanged(CharSequence s, int start, int before, int count) {} + */ + +} diff --git a/app/src/main/java/br/banco/services/app/utils/ValidatorPhone.java b/app/src/main/java/br/banco/services/app/utils/ValidatorPhone.java new file mode 100644 index 00000000..e2b645a0 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ValidatorPhone.java @@ -0,0 +1,44 @@ +package br.banco.services.app.utils; + +import java.util.regex.Pattern; + +/* +FEITO: 0000000000 / telefone com 10 digitos +@FAZER: Formatar (00)0000-0000 + */ +public class ValidatorPhone { //implements TextWatcher + + private boolean misValid = false; + public static final Pattern USER_NAME = Pattern.compile( + "[0-9\\-\\+]{10,13}" + ); + + public static boolean isPhoneNumeric(String strTelefone) { + try { + + String removeSpace = strTelefone.replace(" ","").trim(); + return strTelefone != null && USER_NAME.matcher(strTelefone).matches(); + + }catch (NumberFormatException nfe) { + return false; + }catch (NullPointerException npe) { + return false; + } + } + + public boolean isValid() { + return misValid; + } + + /* + @Override + final public void afterTextChanged(Editable editableText) { + } + @Override + final public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + final public void onTextChanged(CharSequence s, int start, int before, int count) {} + */ + +} diff --git a/app/src/main/java/br/banco/services/app/utils/ValidatorURL.java b/app/src/main/java/br/banco/services/app/utils/ValidatorURL.java new file mode 100644 index 00000000..2aeb09fd --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/ValidatorURL.java @@ -0,0 +1,31 @@ + +package br.banco.services.app.utils; + +import java.util.regex.Pattern; + + +public class ValidatorURL {// + + private boolean mIsValid = false; + + public static final Pattern URL_PATTERN = Pattern.compile( + + "[a-zA-Z0-9\\+\\.\\_\\%\\-\\+]{1,256}" + + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,64}" + + "(" + + "\\." + + "[a-zA-Z0-9][a-zA-Z0-9\\-]{0,25}" + + ")+" + ); + + public boolean isValid() { + return mIsValid; + } + + + public static boolean isValidURL(CharSequence urlChek) { + return urlChek != null && URL_PATTERN.matcher(urlChek).matches(); + } + +} diff --git a/app/src/main/java/br/banco/services/app/utils/Version.java b/app/src/main/java/br/banco/services/app/utils/Version.java new file mode 100644 index 00000000..b6e36b41 --- /dev/null +++ b/app/src/main/java/br/banco/services/app/utils/Version.java @@ -0,0 +1,17 @@ +package br.banco.services.app.utils; + +import android.os.Build; + +public final class Version { + + private final String osRelease = Build.VERSION.RELEASE; + private final int sdkVersion = Build.VERSION.SDK_INT; + + public String getOsRelease() { + return osRelease; + } + + public int getSdkVersion() { + return sdkVersion; + } +} diff --git a/app/src/main/java/br/banco/services/contact/Contact.java b/app/src/main/java/br/banco/services/contact/Contact.java new file mode 100644 index 00000000..64aff69b --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/Contact.java @@ -0,0 +1,91 @@ +package br.banco.services.contact; + +/* + @FAZER: Implementar o Parcelable por reduzir gasto de memoria + */ + +//import android.os.Parcelable; +import android.util.Log; + +import java.io.Serializable; +import java.util.ArrayList; + +public class Contact implements Serializable { + + private String FullName; + private String Email; + private Long Phone; + private int EmailSave; + + public Contact() { + // this.FullName = FullName; + // this.Email = Email; + // this.Phone = Phone; + // this.EmailSave = EmailSave; + } + + public String getFullName() { + return FullName; + } + + public void setFullName(String FullName) { + this.FullName = FullName; + } + + public String getEmail() { + return Email; + } + + public void setEmail(String Email) { + this.Email = Email; + } + + public Long getPhone() { + return Phone; + } + + public void setPhone(Long phone) { + Phone = phone; + } + + + public int getEmailSave() { + return EmailSave; + } + + public void setEmailSave(int emailSave) { + EmailSave = emailSave; + } + + public void showValues(String TAG, String FUNCTION, ArrayList listValues){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if(listValues.size()==4 || TAG != null) { + Log.i(TAG, "FullName = " + listValues.get(0)); + Log.i(TAG, "Email = " + listValues.get(1)); + Log.i(TAG, "Phone = " + listValues.get(2)); + Log.i(TAG, "EmailSave = " + listValues.get(3)); + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " lista incompleta!" ); + } + } + + public void showObjetc(String TAG, String FUNCTION, Contact contact){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if( contact!=null && TAG != null) { + + Log.d(TAG, " c.getFullName() = " + contact.getFullName()); + Log.d(TAG, " c.getFullName() = " + contact.getEmail()); + Log.d(TAG, " c.getFullName() = " + contact.getPhone()); + Log.d(TAG, " c.getFullName() = " + contact.getEmailSave()); + + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " objeto nulo!" ); + } + } + + +} diff --git a/app/src/main/java/br/banco/services/contact/ContactModel.java b/app/src/main/java/br/banco/services/contact/ContactModel.java new file mode 100644 index 00000000..8c92b71c --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/ContactModel.java @@ -0,0 +1,27 @@ +package br.banco.services.contact; + +// area, titulo, mensagem, botao texto, botao estilo + +public class ContactModel implements IContactImpl.ModelImpl { + + + public ContactModel(){ + + // do action + } + + @Override + public void savePreferecnces(Contact contactForm){ + // Log.d("CONTACT", " / MODEL / savePreferecnces -> SUCCESS " ); + }; + + @Override + public void clearferecnces(Contact contactForm){ + // Log.d("CONTACT", " / clearferecnces -> SUCCESS " ); + }; + + //public void updateContact(){} + //public void readContact(){} + //public void deleteContact(){} + +} diff --git a/app/src/main/java/br/banco/services/contact/ContactPresenter.java b/app/src/main/java/br/banco/services/contact/ContactPresenter.java new file mode 100644 index 00000000..63267678 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/ContactPresenter.java @@ -0,0 +1,40 @@ +package br.banco.services.contact; + +/* + @FAZER: Gravar preferencias, Banco de Dados, etc + */ + +import android.content.Context; + +import java.util.ArrayList; + +public class ContactPresenter implements IContactImpl.PresenterImpl { + + private String TAG = "CONTACT"; + + private Contact contact; + private IContactImpl.ModelImpl modelImpl; + private IContactImpl.ViewImpl viewImpl; + + public ContactPresenter(IContactImpl.ViewImpl views) { + + modelImpl = new ContactModel(); + contact = new Contact(); + this.viewImpl = views; + } + + public Context getContext() { + return (Context) viewImpl; + } + + public void sendForm(Contact contactForm){ + + modelImpl.savePreferecnces(contactForm); + // viewImpl.sendFormView(contactForm); + viewImpl.sendFormView2(contactForm); + + // contact.showObjetc(TAG, getClass().getName() + "drawFormView" ,contactForm); + } + + +} diff --git a/app/src/main/java/br/banco/services/contact/ContactSendPresenter.java b/app/src/main/java/br/banco/services/contact/ContactSendPresenter.java new file mode 100644 index 00000000..76474a67 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/ContactSendPresenter.java @@ -0,0 +1,67 @@ +package br.banco.services.contact; + +import android.content.Context; +import android.util.Log; + +import br.banco.services.app.alert.Alert; +import br.banco.services.app.message.IMessage; +import br.banco.services.app.message.MessageType; +import br.banco.services.contact.message.ContactSenderType; +import br.banco.services.contact.message.IContactMsg; + + +public class ContactSendPresenter { + + private Alert alert; + private View view; + + public ContactSendPresenter(View view) { + this.alert = new Alert(); + this.view = view; + } + + public void loadAlertView(int msgCode, Context context){ + + msgCode = (msgCode >= 0 && msgCode <= 5 ) ? msgCode : 0; + + MessageType type = MessageType.values()[msgCode]; + IMessage message = type.returnMessage(); + String[] alertValues = message.configDesign(context); + + view.updateAlertView(alertValues); + + // Log.d("CONTACT"," / loadAlertView -> SUCESS -> msgCode TESTE = " + msgCode); + } + + + public void loadAlertContactView(int msgCode, Context context){ + + msgCode = (msgCode == 0 || msgCode == 1 ) ? msgCode : 0; + + //ContactSenderType type = ContactSenderType.ERROR; + ContactSenderType type = ContactSenderType.values()[msgCode]; + + IContactMsg message = type.returnMessage(); + String[] alertValues = message.configDesign(context); + + view.updateAlertView(alertValues); + } + + + public interface View{ + + boolean checkInternet(); + void drawView(); + void updateAlertView(String alertValues[]); + + // boolean sendEmailTask(); + + void initProgressBar(); + void showProgressBar(); + void hideProgressBar(); + + } + + + +} diff --git a/app/src/main/java/br/banco/services/contact/ContactSendView.java b/app/src/main/java/br/banco/services/contact/ContactSendView.java new file mode 100644 index 00000000..529f6719 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/ContactSendView.java @@ -0,0 +1,370 @@ + /* + + INTENET > INTENT > BUNDLE > EMAIL + + */ + +package br.banco.services.contact; + +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import javax.mail.MessagingException; + +import br.banco.services.R; +import br.banco.services.app.utils.ConnectionChek; +//import br.banco.services.contact.message.ContactMsgView; +import br.banco.services.contact.message.GMailSenderV2; + + + public class ContactSendView extends AppCompatActivity implements ContactSendPresenter.View { + + public String TAG = "CONTACT"; + private ContactSendPresenter presenter; + public GMailSenderV2 emailSender ; + + private int messageCode = 0; + private ConnectionChek internet; + private Handler handler; + + private Contact contactTest; + private ArrayList listSendMail ; + + + public TextView tvArea ; + public TextView tvTitle; + public TextView tvMessage; + public Button btAction; + + private ProgressBar progressBar; + //private Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_alerts); + + presenter = new ContactSendPresenter(this); + + drawView(); + initProgressBar(); + showProgressBar(); + + + if(checkInternet()){ + + presenter = new ContactSendPresenter(this); + presenter.loadAlertView(messageCode, getApplicationContext()); + + String keyName = "contactData"; // reutilizavel + listSendMail = new ArrayList(); + //listSendMail.addAll( receiveIntentView(keyName) !=null ); + listSendMail = ( receiveIntentView(keyName) ); + + if(listSendMail != null && listSendMail.size() == 1 ){ + + messageCode = 5; // not send + presenter.loadAlertView(messageCode, getApplicationContext()); + + String TESTE = "testando"; + + new sendEmailTask().execute(listSendMail); + + Log.d(TAG, " VIEW / "+getClass().getName()+" / listSendMail -> SUCCESS"); + + }else{ + + Log.d(TAG, "VIEW / "+getClass().getName()+" / listSendMail -> ERROR"); + } + + }else{ + + messageCode = 2; // not connected + presenter.loadAlertView(messageCode, getApplicationContext()); + + Log.d(TAG, "VIEW "+getClass().getName()+" / onCreate -> ERROR " ); + } + + //Log.d(TAG, " / onCreate -> getIntent -> messageCode = " + messageCode) ; + + } + + + + @Override + public void onResume() { + super.onResume(); + if(messageCode == 5) { + // caso mensagem enviada voltar ao Splash + // presenter.loadAlertView(messageCode, getApplicationContext()); + Log.d(TAG, "VIEW / "+getClass().getName()+" / onResume -> EXIT " ); + } + + } + + + + public boolean checkInternet(){ + + internet = new ConnectionChek(); + + if(internet.isNetworkAvailable(getApplicationContext()) == true){ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> SUCESS") ; + return true; + }else{ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> ERROR") ; + return false; + } + + } + + + private ArrayList receiveIntentView(String keyName){ + + ArrayList listContact = new ArrayList(); + listContact = null; + + if(getIntent().getExtras() != null){ + Bundle bundle = getIntent().getExtras(); + + if(bundle.getSerializable("contactData") != null){ + + try { + + listContact = (ArrayList) bundle.getSerializable(keyName); + + //contactTest.showObjetc(TAG, getClass().getName() + " / onCreate", listContact); + //contactTest.showValues(TAG, getClass().getName() + " / onCreate", listContact); + + Log.d(TAG, " VIEW / receiveIntentView -> SUCCESS"); + + }catch (Exception e){ + Log.d(TAG, "VIEW / receiveIntentView -> ERROR = " + e.getMessage() ); + } + } + } + + //listContact = null; + return listContact; + } + + public class sendEmailTask extends AsyncTask, Void, ResponseMail> { + + protected void onPreExecute() { + + Log.e(TAG,"VIEW / sendEmailTask -> INICIO"); + showProgressBar(); + + } + + @Override + protected ResponseMail doInBackground(ArrayList... contactList) { + + try { + + emailSender = new GMailSenderV2(); + ArrayList resultList = new ArrayList(); + + // carregar da string XML + //getResources().getString(R.string.adress_email_title); + + String emailTitle = "TITULO DA MENSAGEM"; + String emailBody ="CORPO DA MENSAGEM"; + String emailTo ="busqe.irece@gmail.com"; + String emailCopy ="adrianosouzai@gmail.com"; + + if(contactList.length > 0) { + + resultList = contactList[0]; + + if(resultList.get(0) !=null ) { + + String emailSave = ""; + emailSave = (resultList.get(0).getEmailSave() == 1) ? "SIM" : "NAO"; + + emailBody = "CORPO DA MENSAGEM: \n\n" + + "NOME: " + resultList.get(0).getFullName()+ "\n" + + "EMAIL: " + resultList.get(0).getEmail() + "\n" + + "PHONE: " + resultList.get(0).getPhone() + "\n" + + "SALVAR EMAIL: " + emailSave + "\n" + + ""; + }else{ + emailBody ="Mensagem com vazia!"; + } + + }else{ + emailBody ="Mensagem com erros!"; + } + + Log.e(TAG, "VIEW / emailBody = " + emailBody ); + + // converer classe em boolean + emailSender.sendMail(emailTitle, emailBody,emailTo,emailCopy); + + + } catch (MessagingException e) { + Log.e(TAG, "VIEW / sendEmailView -> ERROR = " + e.fillInStackTrace()); + throw new RuntimeException(e); + + } catch (Exception e) { + Log.e(TAG, "VIEW / sendEmailView - ERROR = " + e.fillInStackTrace()); + + } + + return null; + } + + @Override + protected void onPostExecute(ResponseMail response) { + + messageCode = 1; // not send + presenter.loadAlertContactView(messageCode, getApplicationContext()); + + Log.e(TAG,"VIEW / sendEmailTask -> FINAL"); + hideProgressBar(); + } + + } + + public class ResponseMail { + + private List lista = new ArrayList(); + + public List mLista() { + return lista; + } + + + } + + + + + + + @Override + public void updateAlertView(String[] alertValues) { + + + tvArea.setText(alertValues[0]); + tvTitle.setText(alertValues[1]); + tvMessage.setText(alertValues[2]); + btAction.setText(alertValues[3]); + + // String buttonStyle = alertValues[4]; + + switch (messageCode){ + + case 0: + showProgressBar(); // LOAD + break; + case 1: + hideProgressBar(); // + break; + case 2: + hideProgressBar(); // + break; + case 3: + hideProgressBar(); // + break; + case 4: + hideProgressBar(); // + break; + default: + hideProgressBar(); // ERROR + break; + + } + + if(alertValues[4].equals("elementInvible")){ + btAction.setBackgroundResource( R.drawable.shape_circle_light); + btAction.setTextColor(Color.parseColor("#333333")); + } + + + Log.d(TAG," VIEW / updateAlertView -> SUCESS -> alertValues"); + } + + @Override + public void drawView(){ + + tvArea = (TextView) findViewById(R.id.lbArea); + tvTitle = (TextView) findViewById(R.id.DT_fd_title); + tvMessage = (TextView) findViewById(R.id.DT_fd_fundName); + btAction = (Button) findViewById(R.id.btAction3); + } + + @Override + public void showProgressBar() { + progressBar.setVisibility(View.VISIBLE); + } + + @Override + public void hideProgressBar() { + progressBar.setVisibility(View.INVISIBLE); + } + + @Override + public void initProgressBar() { + + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(this, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(this); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + this.addContentView(progressBar, params); + hideProgressBar(); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + return false; + } + return super.onKeyDown(keyCode, event); + } + + + } diff --git a/app/src/main/java/br/banco/services/contact/ContactView.java b/app/src/main/java/br/banco/services/contact/ContactView.java new file mode 100644 index 00000000..a883bc95 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/ContactView.java @@ -0,0 +1,309 @@ + /* + + @FAZER: usar Stragy Patern + FLUXO: + + */ + +package br.banco.services.contact; + + import android.content.Context; + import android.content.Intent; + import android.graphics.Color; + import android.os.Bundle; + import android.support.constraint.ConstraintLayout; + import android.support.v7.app.AppCompatActivity; + import android.text.Editable; + import android.text.TextWatcher; + import android.util.Log; + import android.view.KeyEvent; + import android.view.View; + import android.widget.Button; + import android.widget.CheckBox; + import android.widget.CompoundButton; + import android.widget.ProgressBar; + import android.widget.EditText; + import android.widget.TextView; + + import java.io.Serializable; + import java.util.ArrayList; + + import br.banco.services.R; + import br.banco.services.app.utils.CharacterCheck; + import br.banco.services.app.utils.ValidatorEmail; + import br.banco.services.app.utils.ValidatorName; + import br.banco.services.app.utils.ValidatorPhone; + + import br.banco.services.contact.message.ContactMsgView; + + + public class ContactView extends AppCompatActivity implements + IContactImpl.ViewImpl, + View.OnClickListener + { + + public String TAG = "CONTACT"; + public int option = 0; + + private Contact contactTest; + public ArrayList listFormItens; + private ArrayList listFormContact ; + + private static IContactImpl.PresenterImpl presenter; + + public ConstraintLayout constraintLayout; + public EditText vFullName ; + public EditText vEmail; + public EditText vPhone; + public CheckBox vEmailSave; + public Button vBtSend; + private ProgressBar progressBar; + + private boolean isValidName = false; + private boolean isValidEmail = false; + private boolean isValidPhone = false; + + private Intent intentSendData; + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_contact_form); + + contactTest = new Contact(); + presenter = new ContactPresenter(this); + + drawFormView(); + drawNavigation(); + + // presenter.loadView(option, getApplicationContext()); + + checkTyping(vFullName); + checkTyping(vEmail); + checkTyping(vPhone); + + + + + } + + @Override + public void onResume() { + super.onResume(); + + } + + + // @Override + public void drawFormView(){ + + vFullName = (EditText) findViewById(R.id.etFullName); + vEmail = (EditText) findViewById(R.id.etEmail); + vPhone = (EditText) findViewById(R.id.etPhone); + vEmailSave =(CheckBox) findViewById(R.id.cbEmailAccept); + vBtSend = (Button) findViewById(R.id.btSend); + + // int isChecked = (vEmailSave.isChecked()) ? 1 : 0; + + vEmailSave.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + + if (isChecked) { + + // vEmailSave.setBackgroundColor(Color.RED); + //vEmailSave.setButtonDrawable(R.drawable.shape_button_dark); + } + else + { + //vEmailSave.setButtonDrawable(R.drawable.shape_button_light); + // vEmailSave.setBackgroundColor(Color.GRAY); + } + + + } + }); + + vBtSend.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) + { + + checkFormValuesView(); + + // contactTest.showObjetc(TAG, getClass().getName() + "drawFormView" ,contactTest); + //contactTest.showValues(TAG,getClass().getName() + " / sendFormView",listFormItens); + + if(isValidName && isValidEmail && isValidPhone){ + + presenter.sendForm(contactTest); + + }else{ + Log.d(TAG, " / drawFormView -> drawAlert"); + } + + } + }); + } + + public void drawFormAlert(final TextView viewt){ + // Log.d(TAG, "ERRO: DADOS VAZIOS"); + } + + public void sendFormView2(Contact contactForm){ + + + ArrayList contactData = new ArrayList(); + contactData.add(contactForm); + + Intent intent = new Intent(this, ContactSendView.class); + Bundle bundle = new Bundle(); + + bundle.putSerializable("contactData",(Serializable)contactData); + intent.putExtras(bundle); + startActivity(intent); + + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + + clearFormTextView(); + //finish(); + + // contactTest.showObjetc(TAG, getClass().getName() + "drawFormView" ,contactForm); + + Log.d(TAG, " VIEW / sendFormView2 -> SUCCESS" ); + } + + public void sendFormView(Contact contactForm){ + + Log.d(TAG, " / sendFormView -> SUCCESS" ); + + ArrayList contactData = new ArrayList(); + contactData.add(contactForm); + + Intent intent = new Intent(this, ContactMsgView.class); + Bundle bundle = new Bundle(); + + bundle.putSerializable("contactData",(Serializable)contactData); + intent.putExtras(bundle); + startActivity(intent); + + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + + // clearFormTextView(); + //finish(); + + // contactTest.showObjetc(TAG, getClass().getName() + "drawFormView" ,contactForm); + } + + public void checkTyping(final TextView view){ + + view.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + // String elementId = getResources().getResourceEntryName(view.getId()); + checkFormValuesView(); // checkFormValuesView(elementId) + + } + + @Override + public void afterTextChanged(Editable s) { + //Log.d(TAG, "afterTextChanged === " + isValidEmail); + } + }); + + } + + public void checkFormValuesView(){ + + ValidatorName ValidatorName = new ValidatorName(); + ValidatorEmail validatorEmail = new ValidatorEmail(); + ValidatorPhone validatorPhone = new ValidatorPhone(); // depends: isValidPhone + // isChecked = bool + + String testName = vFullName.getText().toString().trim(); + String testEmail = vEmail.getText().toString().trim(); + String testPhone = vPhone.getText().toString().trim(); + int isChecked = (vEmailSave.isChecked()) ? 1 : 0; + // boolean isChecked = vEmailSave.isChecked(); + + isValidName = ValidatorName.isValidName(testName); + isValidEmail = validatorEmail.isValidEmail(testEmail); + isValidPhone = validatorPhone.isPhoneNumeric(testPhone); + + CharacterCheck characterCheck = new CharacterCheck(); + Long phoneNumber = characterCheck.getIsLong(testPhone); + isValidPhone = (phoneNumber >= 1000000000); //10 digits + + contactTest.setFullName(testName); + contactTest.setEmail(testEmail); + contactTest.setPhone(phoneNumber); + contactTest.setEmailSave(isChecked); + + //contactTest.showObjetc(TAG, getClass().getName() + " / drawFormView" , contactTest); + + } + + public void clearFormTextView(){ + + // checar internet antes de limpar o form + vFullName.setText(""); + vEmail.setText(""); + vPhone.setText(""); + vEmailSave.setChecked(false); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + return false; + } + return super.onKeyDown(keyCode, event); + } + + + @Override + public void onClick(View view) { + + Intent IT; + Context context = getApplicationContext(); + + switch (view.getId()) { + + case R.id.btAction1: + IT = new Intent(this, br.banco.services.fund.option.FundOptionView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda,R.anim.an_sair_esquerda); + break; + /* + case R.id.btAction2: + IT = new Intent(this, br.banco.services.contact.ContactView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda,R.anim.an_sair_esquerda); + break; + */ + + } + + } + + public void drawNavigation(){ + Button BTAction1 = (Button) findViewById(R.id.btAction1); + Button BTAction2 = (Button) findViewById(R.id.btAction2); + BTAction1.setOnClickListener(this); + BTAction2.setOnClickListener(this); + } + + + + + + } diff --git a/app/src/main/java/br/banco/services/contact/IContactImpl.java b/app/src/main/java/br/banco/services/contact/IContactImpl.java new file mode 100644 index 00000000..56127da2 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/IContactImpl.java @@ -0,0 +1,30 @@ +package br.banco.services.contact; + +import android.widget.TextView; + +public interface IContactImpl { + + interface PresenterImpl{ + void sendForm(Contact contact); + } + + interface ModelImpl{ + void savePreferecnces(Contact contactForm); + void clearferecnces(Contact contactForm); + } + interface ViewImpl{ + + // start + void drawFormView(); + + // process + void checkTyping(final TextView view); + void checkFormValuesView(); + + // final + void sendFormView(Contact contactForm); + void sendFormView2(Contact contactForm); + void clearFormTextView(); + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/IContact.java b/app/src/main/java/br/banco/services/contact/data/IContact.java new file mode 100644 index 00000000..d9acf63c --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/IContact.java @@ -0,0 +1,10 @@ +package br.banco.services.contact.data; + +import android.content.Context; + +public interface IContact { + + public String configDesign(Context context); + +} + diff --git a/app/src/main/java/br/banco/services/contact/data/local/FromDatabase.java b/app/src/main/java/br/banco/services/contact/data/local/FromDatabase.java new file mode 100644 index 00000000..7e860454 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/local/FromDatabase.java @@ -0,0 +1,22 @@ +package br.banco.services.contact.data.local; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; +import br.banco.services.contact.data.IContact; +import br.banco.services.fund.data.IFundData; + +public class FromDatabase extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + + + + +} diff --git a/app/src/main/java/br/banco/services/contact/data/local/FromPreferences.java b/app/src/main/java/br/banco/services/contact/data/local/FromPreferences.java new file mode 100644 index 00000000..4caf5b57 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/local/FromPreferences.java @@ -0,0 +1,19 @@ +package br.banco.services.contact.data.local; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; +import br.banco.services.contact.data.IContact; +import br.banco.services.fund.data.IFundData; + +public class FromPreferences extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/local/FromType.java b/app/src/main/java/br/banco/services/contact/data/local/FromType.java new file mode 100644 index 00000000..02282b88 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/local/FromType.java @@ -0,0 +1,30 @@ +package br.banco.services.contact.data.local; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.contact.data.IContact; + + + +public enum FromType { + + DATABASE { + @Override + public IContact returnMessage() { + return new FromPreferences(); + } + }, + PREERENCES { + @Override + public IContact returnMessage() { + return new FromDatabase(); + } + } + + ; + + public abstract IContact returnMessage(); + +} + diff --git a/app/src/main/java/br/banco/services/contact/data/remote/FromInternational.java b/app/src/main/java/br/banco/services/contact/data/remote/FromInternational.java new file mode 100644 index 00000000..a7a81ca1 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/remote/FromInternational.java @@ -0,0 +1,17 @@ +package br.banco.services.contact.data.remote; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.contact.data.IContact; + +public class FromInternational extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/remote/FromNational.java b/app/src/main/java/br/banco/services/contact/data/remote/FromNational.java new file mode 100644 index 00000000..509118b8 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/remote/FromNational.java @@ -0,0 +1,17 @@ +package br.banco.services.contact.data.remote; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.contact.data.IContact; + +public class FromNational extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/remote/FromType.java b/app/src/main/java/br/banco/services/contact/data/remote/FromType.java new file mode 100644 index 00000000..bba6012e --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/remote/FromType.java @@ -0,0 +1,27 @@ +package br.banco.services.contact.data.remote; + +import br.banco.services.contact.data.IContact; + + +public enum FromType { + + NATIONAL { + @Override + public IContact returnMessage() { + return new FromInternational(); + } + }, + INTERNATIONAL { + @Override + public IContact returnMessage() { + return new FromNational(); + } + } + + + ; + + public abstract IContact returnMessage(); + +} + diff --git a/app/src/main/java/br/banco/services/contact/data/template/FromDatabase.java b/app/src/main/java/br/banco/services/contact/data/template/FromDatabase.java new file mode 100644 index 00000000..dade38b2 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/template/FromDatabase.java @@ -0,0 +1,17 @@ +package br.banco.services.contact.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.contact.data.IContact; + +public class FromDatabase extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/template/FromPreferences.java b/app/src/main/java/br/banco/services/contact/data/template/FromPreferences.java new file mode 100644 index 00000000..f5e2fac8 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/template/FromPreferences.java @@ -0,0 +1,17 @@ +package br.banco.services.contact.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.contact.data.IContact; + +public class FromPreferences extends AppCompatActivity implements IContact { + + private Context b; + + public String configDesign(Context a) { + // this.b = a; + return "{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + } + +} diff --git a/app/src/main/java/br/banco/services/contact/data/template/FromType.java b/app/src/main/java/br/banco/services/contact/data/template/FromType.java new file mode 100644 index 00000000..999ab578 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/data/template/FromType.java @@ -0,0 +1,26 @@ +package br.banco.services.contact.data.template; + +import br.banco.services.contact.data.IContact; + + +public enum FromType { + + DATABASE { + @Override + public IContact returnMessage() { + return new FromPreferences(); + } + }, + PREERENCES { + @Override + public IContact returnMessage() { + return new FromDatabase(); + } + } + + ; + + public abstract IContact returnMessage(); + +} + diff --git a/app/src/main/java/br/banco/services/contact/email/ByteArrayDataSource.java b/app/src/main/java/br/banco/services/contact/email/ByteArrayDataSource.java new file mode 100644 index 00000000..5edf105c --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/email/ByteArrayDataSource.java @@ -0,0 +1,47 @@ +package br.banco.services.contact.email; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import javax.activation.DataSource; + +public class ByteArrayDataSource implements DataSource { + private byte[] data; + private String type; + + public ByteArrayDataSource(byte[] data, String type) { + super(); + this.data = data; + this.type = type; + } + + public ByteArrayDataSource(byte[] data) { + super(); + this.data = data; + } + + public void setType(String type) { + this.type = type; + } + + public String getContentType() { + if (type == null) + return "application/octet-stream"; + else + return type; + } + + public InputStream getInputStream() throws IOException { + return new ByteArrayInputStream(data); + } + + public String getName() { + return "ByteArrayDataSource"; + } + + public OutputStream getOutputStream() throws IOException { + throw new IOException("Not Supported"); + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/contact/email/GMailSender.java b/app/src/main/java/br/banco/services/contact/email/GMailSender.java new file mode 100644 index 00000000..525d982d --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/email/GMailSender.java @@ -0,0 +1,150 @@ +package br.banco.services.contact.email; + +import java.security.Security; +import java.util.Properties; + +import javax.activation.DataHandler; +import javax.mail.Message; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + +public class GMailSender extends javax.mail.Authenticator { + + //private + + public String Mailhost = "smtp.gmail.com"; + public Session Session; + public String User ="busqe.irece@gmail.com"; + public String Password ="Zeus2030"; + + //public + + public String FullName; + public String Email; + public String Phone; // integer + public String EmailSave; // boolean + + public String EmailCopy; + public String Subject; + public String Body; + + public String getFullName() { + return FullName; + } + + public void setFullName(String fullName) { + FullName = fullName; + } + + public String getEmail() { + return Email; + } + + public void setEmail(String email) { + Email = email; + } + + public String getPhone() { + return Phone; + } + + public void setPhone(String phone) { + Phone = phone; + } + + public String getEmailSave() { + return EmailSave; + } + + public void setEmailSave(String emailSave) { + EmailSave = emailSave; + } + + public String getEmailCopy() { + return EmailCopy; + } + + public void setEmailCopy(String emailCopy) { + EmailCopy = emailCopy; + } + + public String getSubject() { + return Subject; + } + + public void setSubject(String subject) { + Subject = subject; + } + + public String getBody() { + return Body; + } + + public void setBody(String body) { + Body = body; + } + + + //config + + static { + Security.addProvider(new JSSEProvider()); + } + + public GMailSender() { + + this.User = User; + this.Password = Password; + + this.FullName = FullName; + this.Email = Email; + this.Phone = Phone; + this.EmailSave = EmailSave; + + this.EmailCopy = EmailCopy; + this.Subject = Subject; + this.Body = Body; + + Properties props = new Properties(); + props.setProperty("mail.transport.protocol", "smtp"); + props.setProperty("mail.host", Mailhost); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.port", "465"); + props.put("mail.smtp.socketFactory.port", "465"); + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + props.put("mail.smtp.socketFactory.fallback", "false"); + + props.put("mail.smtp.starttls.enable","true"); + + props.setProperty("mail.smtp.quitwait", "false"); + + Session = Session.getDefaultInstance(props, this); + } + + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(User, Password); + } + + public synchronized void sendMail(String subject, String body, + String sender, String recipients) throws Exception { + MimeMessage message = new MimeMessage(Session); + + DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), + "text/plain")); + + message.setSender(new InternetAddress(sender)); + message.setSubject(subject); + message.setDataHandler(handler); + + if (recipients.indexOf(',') > 0) + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients)); + else + message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients)); + + Transport.send(message); + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/contact/email/GMailSenderV3.java b/app/src/main/java/br/banco/services/contact/email/GMailSenderV3.java new file mode 100644 index 00000000..67514fe0 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/email/GMailSenderV3.java @@ -0,0 +1,61 @@ +package br.banco.services.contact.email; + +import java.security.Security; +import java.util.Properties; + +import javax.activation.DataHandler; +import javax.mail.Message; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + +import javax.mail.Address; + +import javax.mail.MessagingException; + +public class GMailSenderV3 +{ + public static void main(String[] args) { + Properties props = new Properties(); + + /** Parâmetros de conexão com servidor Gmail */ + props.put("mail.smtp.host", "smtp.gmail.com"); + props.put("mail.smtp.socketFactory.port", "465"); + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.port", "465"); + + Session session = Session.getDefaultInstance(props, + new javax.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() + { + return new PasswordAuthentication("busqe.irece@gmail.com", "Zeus2030"); + } + }); + + /** Ativa Debug para sessão */ + session.setDebug(true); + + try { + + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress("busqe.irece@gmail.com")); //Remetente + + Address[] toUser = InternetAddress //Destinatário(s) + .parse("adrianosouzai@gmail.com"); + + message.setRecipients(Message.RecipientType.TO, toUser); + message.setSubject("Enviando email com JavaMail");//Assunto + message.setText("Enviei este email utilizando JavaMail com minha conta GMail!"); + /**Método para enviar a mensagem criada*/ + Transport.send(message); + + System.out.println("Feito!!!"); + + } catch (MessagingException e) { + throw new RuntimeException(e); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/contact/email/JSSEProvider.java b/app/src/main/java/br/banco/services/contact/email/JSSEProvider.java new file mode 100644 index 00000000..eedf2cc9 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/email/JSSEProvider.java @@ -0,0 +1,21 @@ +package br.banco.services.contact.email; +import java.security.AccessController; +import java.security.Provider; + +public final class JSSEProvider extends Provider { + private static final long serialVersionUID = 1L; + + public JSSEProvider() { + super("HarmonyJSSE", 1.0, "Harmony JSSE Provider"); + AccessController.doPrivileged(new java.security.PrivilegedAction() { + @Override + public Void run() { + put("SSLContext.TLS","org.apache.harmony.xnet.provider.jsse.SSLContextImpl"); + put("Alg.Alias.SSLContext.TLSv1","TLS"); + put("KeyManagerFactory.X509","org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl"); + put("TrustManagerFactory.X509","org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl"); + return null; + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/contact/message/ContactMsgPresenter.java b/app/src/main/java/br/banco/services/contact/message/ContactMsgPresenter.java new file mode 100644 index 00000000..c1377ce9 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/ContactMsgPresenter.java @@ -0,0 +1,40 @@ +package br.banco.services.contact.message; + +import android.content.Context; + +import br.banco.services.app.alert.Alert; + + +public class ContactMsgPresenter { + + private Alert alert; + private View view; + + public ContactMsgPresenter(View view) { + this.alert = new Alert(); + this.view = view; + } + + public void loadAlertView(int msgCode, Context context){ + + msgCode = (msgCode >= 0 && msgCode < 5 ) ? msgCode : 0; + + ContactSenderType type = ContactSenderType.values()[msgCode]; + IContactMsg message = type.returnMessage(); + String[] alertValues = message.configDesign(context); + + view.updateAlertView(alertValues); + } + + + + public interface View{ + + void drawView(); + void updateAlertView(String alertValues[]); + void showProgressBar(); + void hideProgressBar(); + + } + +} diff --git a/app/src/main/java/br/banco/services/contact/message/ContactMsgView.java b/app/src/main/java/br/banco/services/contact/message/ContactMsgView.java new file mode 100644 index 00000000..d9b8d077 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/ContactMsgView.java @@ -0,0 +1,344 @@ + /* + + recebe + carrega + mostra = mensagem + @FAZER: onResume() checar conexao + abrir home + */ + +package br.banco.services.contact.message; + +import android.content.Intent; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.os.AsyncTask; +import android.os.Bundle; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.widget.Button; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import javax.mail.MessagingException; + +import br.banco.services.R; +import br.banco.services.app.utils.ConnectionChek; + +import br.banco.services.contact.Contact; + + public class ContactMsgView extends AppCompatActivity implements ContactMsgPresenter.View { + + public String TAG = "CONTACT"; + public GMailSenderV2 emailSender ; + private ContactMsgPresenter presenter; + private Contact contactTest; + private ArrayList listSendMail ; + + + private int messageCode = 1; // Error // device + + private ConnectionChek internet; + private Handler handler; + + private Intent intentSender; + private Intent intentReceiver; + + public TextView tvArea ; + public TextView tvTitle; + public TextView tvMessage; + public Button btAction; + + private ProgressBar progressBar; + //private Toolbar toolbar; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_alerts); + + contactTest = new Contact(); + drawView(); + initProgressBar(); + presenter = new ContactMsgPresenter(this); + + listSendMail = new ArrayList(); + listSendMail.addAll(receiveIntentView()); + + // --------- + + internet = new ConnectionChek(); + + if(internet.isNetworkAvailable(getApplicationContext()) == true){ + // messageCode = 3; // Sucess + + if(listSendMail.size() > 0){ + + showProgressBar(); + + String teste ="OK"; + new sendEmailTask().execute(teste); + + // if( sendEmailView(listSendMail) ){ + messageCode = 0; + // } + + + }else{ + messageCode = 1; + presenter.loadAlertView(messageCode, getApplicationContext()); + } + + + }else{ + //messageCode = 4; // Error + } + + + + + + } + + @Override + public void onResume() { + super.onResume(); + + // presenter.loadAlertView(messageCode, getApplicationContext()); + + } + + + @Override + public void updateAlertView(String[] alertValues) { + + tvArea.setText(alertValues[0]); + tvTitle.setText(alertValues[1]); + tvMessage.setText(alertValues[2]); + btAction.setText(alertValues[3]); + + if(alertValues[4].equals("buttonCircleDefault")){ + btAction.setBackgroundResource( R.drawable.shape_circle_light); + btAction.setTextColor(Color.parseColor("#333333")); + } + + + } + + @Override + public void drawView(){ + + tvArea = (TextView) findViewById(R.id.lbArea); + tvTitle = (TextView) findViewById(R.id.DT_fd_title); + tvMessage = (TextView) findViewById(R.id.DT_fd_fundName); + btAction = (Button) findViewById(R.id.btAction3); + } + + + private ArrayList receiveIntentView(){ + + ArrayList listContact = new ArrayList(); + + if(getIntent().getExtras() != null){ + Bundle bundle = getIntent().getExtras(); + + if(bundle.getSerializable("contactData") != null){ + + try { + + listContact = (ArrayList) bundle.getSerializable("contactData"); + + //contactTest.showObjetc(TAG, getClass().getName() + " / onCreate", listContact); + //contactTest.showValues(TAG, getClass().getName() + " / onCreate", listContact); + + Log.d(TAG, " / ContactMsgView -> SUCCESS"); + + }catch (Exception e){ + Log.d(TAG, " / ContactMsgView -> ERROR = " + e.getMessage() ); + } + } + } + + return listContact; + } + + private Boolean sendEmailView(ArrayList listMail) { + + emailSender = new GMailSenderV2(); + boolean sendSuccess= false; + + String FullName; + String Email; + String Phone; + String EmailSave; + + String EmailCopy; + String Subject; + String Body; + + // FullName = listMail.get(0).getFullName() ; + //Email = listMail.get(0).getEmail(); + //// Phone = listMail.get(0).getPhone().toString(); + // EmailSave = "" + listMail.get(0).getEmailSave(); + + //Log.e(TAG, "listMail = " + listMail.get(0).getClass()); + + String subject = "assunto do email"; + String body = "corpo do email do " ; + + + try { + + emailSender.sendMail( + "NOVA MENSAGEM DO APP", + "NOVA MENSAGEM AQUI NO MEU APP", + "busqe.irece@gmail.com", + "adrianosouzai@gmail.com"); + + hideProgressBar(); + + Log.e(TAG, " / sendEmailView -> SUCCESS" ); + } catch (MessagingException e) { + Log.e(TAG, " / sendEmailView -> ERROR = " + e.getMessage()); + throw new RuntimeException(e); + } catch (Exception e) { + Log.e(TAG, " / sendEmailView - ERROR = " + e.fillInStackTrace()); + + } + + + + + + return sendSuccess; + } + + + + public class sendEmailTask extends AsyncTask { + + protected void onPreExecute() { + + Log.e(TAG,"sendEmailTask -> INICIO"); + showProgressBar(); + + } + + @Override + protected ResponseMail doInBackground(String... strings) { + + try { + + emailSender = new GMailSenderV2(); + + emailSender.sendMail( + "NOVA MSG LEGAL AQUI MEN", + "NOVA MENSAGEM AQUI NO MEU APP", + "busqe.irece@gmail.com", + "adrianosouzai@gmail.com"); + + + Log.e(TAG, " / sendEmailView -> SUCCESS"); + + } catch (MessagingException e) { + Log.e(TAG, " / sendEmailView -> ERROR = " + e.fillInStackTrace()); + throw new RuntimeException(e); + } catch (Exception e) { + Log.e(TAG, " / sendEmailView - ERROR = " + e.fillInStackTrace()); + + } + + Log.e(TAG,"sendEmailTask -> ENVIANDO"); + + return null; + } + + @Override + protected void onPostExecute(ResponseMail response) { + Log.e(TAG,"sendEmailTask -> FINAL"); + + hideProgressBar(); + } + + } + + + public class ResponseMail { + + private List lista = new ArrayList(); + + public List mLista() { + return lista; + } + + + } + + + + + // sistema + + private void initProgressBar() { + + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(this, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(this); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + this.addContentView(progressBar, params); + hideProgressBar(); + } + + @Override + public void showProgressBar() { + progressBar.setVisibility(View.VISIBLE); + } + + @Override + public void hideProgressBar() { + progressBar.setVisibility(View.INVISIBLE); + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + return false; + } + return super.onKeyDown(keyCode, event); + } + + + } diff --git a/app/src/main/java/br/banco/services/contact/message/ContactSenderError.java b/app/src/main/java/br/banco/services/contact/message/ContactSenderError.java new file mode 100644 index 00000000..51074430 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/ContactSenderError.java @@ -0,0 +1,17 @@ +package br.banco.services.contact.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class ContactSenderError extends AppCompatActivity implements IContactMsg { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_contact_error); + } + +} diff --git a/app/src/main/java/br/banco/services/contact/message/ContactSenderSucess.java b/app/src/main/java/br/banco/services/contact/message/ContactSenderSucess.java new file mode 100644 index 00000000..50fd67d7 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/ContactSenderSucess.java @@ -0,0 +1,18 @@ +package br.banco.services.contact.message; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.R; + +public class ContactSenderSucess extends AppCompatActivity implements IContactMsg { + + private Context b; + + public String[] configDesign(Context a) { + this.b = a; + return b.getResources().getStringArray(R.array.alert_contact_success); + } + +} + diff --git a/app/src/main/java/br/banco/services/contact/message/ContactSenderType.java b/app/src/main/java/br/banco/services/contact/message/ContactSenderType.java new file mode 100644 index 00000000..74202718 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/ContactSenderType.java @@ -0,0 +1,20 @@ +package br.banco.services.contact.message; + +public enum ContactSenderType { + + ERROR { + @Override + public IContactMsg returnMessage() { + return new ContactSenderError(); + } + }, + SUCESS { + @Override + public IContactMsg returnMessage() { + return new ContactSenderSucess(); + } + }; + + public abstract IContactMsg returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/contact/message/GMailSenderV2.java b/app/src/main/java/br/banco/services/contact/message/GMailSenderV2.java new file mode 100644 index 00000000..04b2e276 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/GMailSenderV2.java @@ -0,0 +1,203 @@ +package br.banco.services.contact.message; + +import android.util.Log; + +import java.security.Security; +import java.util.Properties; + +import javax.activation.DataHandler; +import javax.mail.Message; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + +import br.banco.services.contact.email.ByteArrayDataSource; +import br.banco.services.contact.email.JSSEProvider; + + +public class GMailSenderV2 extends javax.mail.Authenticator{ + + + public String Mailhost = "smtp.gmail.com"; + public String User ="busqe.irece@gmail.com"; + public String Password ="Zeus2030"; + + public javax.mail.Session Session; + + //public + + public String FullName; + public String Email; + public String Phone; // Long + public String EmailSave; // integer + + public String EmailCopy; + public String Subject; + public String Body; + + + + public String getMailhost() { + return Mailhost; + } + + public void setMailhost(String mailhost) { + Mailhost = mailhost; + } + + public javax.mail.Session getSession() { + return Session; + } + + public void setSession(javax.mail.Session session) { + Session = session; + } + + public String getUser() { + return User; + } + + public void setUser(String user) { + User = user; + } + + public String getPassword() { + return Password; + } + + public void setPassword(String password) { + Password = password; + } + + public String getFullName() { + return FullName; + } + + public void setFullName(String fullName) { + FullName = fullName; + } + + public String getEmail() { + return Email; + } + + public void setEmail(String email) { + Email = email; + } + + public String getPhone() { + return Phone; + } + + public void setPhone(String phone) { + Phone = phone; + } + + public String getEmailSave() { + return EmailSave; + } + + public void setEmailSave(String emailSave) { + EmailSave = emailSave; + } + + public String getEmailCopy() { + return EmailCopy; + } + + public void setEmailCopy(String emailCopy) { + EmailCopy = emailCopy; + } + + public String getSubject() { + return Subject; + } + + public void setSubject(String subject) { + Subject = subject; + } + + public String getBody() { + return Body; + } + + public void setBody(String body) { + Body = body; + } + + + //config + + static { + Security.addProvider(new JSSEProvider()); + } + + public GMailSenderV2() { + + this.User = User; + this.Password = Password; + + this.FullName = FullName; + this.Email = Email; + this.Phone = Phone; + this.EmailSave = EmailSave; + + this.EmailCopy = EmailCopy; + this.Subject = Subject; + this.Body = Body; + + + Properties props = new Properties(); + + props.setProperty("mail.transport.protocol", "smtp"); + props.setProperty("mail.host", Mailhost); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.port", "465"); + props.put("mail.smtp.socketFactory.port", "465"); + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + props.put("mail.smtp.socketFactory.fallback", "false"); + + props.put("mail.smtp.starttls.enable","true"); + + props.setProperty("mail.smtp.quitwait", "false"); + + Session = Session.getDefaultInstance(props, this); + } + + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(User, Password); + } + + public synchronized void sendMail( + String subject, + String body, + String sender, + String recipients) + + throws Exception { + + MimeMessage message = new MimeMessage(Session); + DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), + "text/plain")); + + message.setSender(new InternetAddress(sender)); + message.setSubject(subject); + message.setDataHandler(handler); + + if (recipients.indexOf(',') > 0) + message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients)); + else + message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients)); + + Transport.send(message); + + Log.e("CONTACT", "VIEW / GMailSenderV2 -> SUCCESS"); + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/contact/message/IContactMsg.java b/app/src/main/java/br/banco/services/contact/message/IContactMsg.java new file mode 100644 index 00000000..362450c4 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/IContactMsg.java @@ -0,0 +1,10 @@ +package br.banco.services.contact.message; + +import android.content.Context; + +public interface IContactMsg { + + public String[] configDesign(Context context); + +} + diff --git a/app/src/main/java/br/banco/services/contact/message/JSSEProvider.java b/app/src/main/java/br/banco/services/contact/message/JSSEProvider.java new file mode 100644 index 00000000..3d1752e3 --- /dev/null +++ b/app/src/main/java/br/banco/services/contact/message/JSSEProvider.java @@ -0,0 +1,21 @@ +package br.banco.services.contact.message; +import java.security.AccessController; +import java.security.Provider; + +public final class JSSEProvider extends Provider { + private static final long serialVersionUID = 1L; + + public JSSEProvider() { + super("HarmonyJSSE", 1.0, "Harmony JSSE Provider"); + AccessController.doPrivileged(new java.security.PrivilegedAction() { + @Override + public Void run() { + put("SSLContext.TLS","org.apache.harmony.xnet.provider.jsse.SSLContextImpl"); + put("Alg.Alias.SSLContext.TLSv1","TLS"); + put("KeyManagerFactory.X509","org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl"); + put("TrustManagerFactory.X509","org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl"); + return null; + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/BasePresenter.java b/app/src/main/java/br/banco/services/fund/BasePresenter.java new file mode 100644 index 00000000..4638e205 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/BasePresenter.java @@ -0,0 +1,6 @@ +package br.banco.services.fund; + +public interface BasePresenter { + + void start(); +} diff --git a/app/src/main/java/br/banco/services/fund/BaseView.java b/app/src/main/java/br/banco/services/fund/BaseView.java new file mode 100644 index 00000000..dc1aa14c --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/BaseView.java @@ -0,0 +1,6 @@ +package br.banco.services.fund; + +public interface BaseView { + + void start(); +} diff --git a/app/src/main/java/br/banco/services/fund/FundModelTemplate.java b/app/src/main/java/br/banco/services/fund/FundModelTemplate.java new file mode 100644 index 00000000..099e3ff3 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/FundModelTemplate.java @@ -0,0 +1,564 @@ +package br.banco.services.fund; + +import android.util.Log; + +import java.util.ArrayList; + +public class FundModelTemplate { + + ArrayList listArrayOptions = new ArrayList(); + + // LABELS + + private String NameLabel; + private String MonthLabel; + private String TimeLabel; + + // VALORES + + private String Name; + private String Month; + private String Time; + + + public FundModelTemplate(){ + + //showListOptionsTemplate(); + + } + + + // valores + + public String getName() { + return Name; + } + + public void setName(int name) { + Name = listMoreInfoTemplate[name][0][1] ; + } + + public String getMonth() { + return Month; + } + + public void setMonth(int month) { + Month = listMoreInfoTemplate[month][1][1]; + } + + public String getTime() { + return Time; + } + + public void setTime(int time) { + Time = listMoreInfoTemplate[time][2][1]; + } + + + // labels + + + public String getNameLabel() { + return NameLabel; + } + + public void setNameLabel(int nameLabel) { + NameLabel = listMoreInfoTemplate[nameLabel][0][0] ; + } + + public String getMonthLabel() { + return MonthLabel; + } + + public void setMonthLabel(int monthLabel) { + MonthLabel = listMoreInfoTemplate[monthLabel][1][0]; + } + + public String getTimeLabel() { + return TimeLabel; + } + + public void setTimeLabel(int timeLabel) { + TimeLabel = listMoreInfoTemplate[timeLabel][2][0]; + } + + + // lista todos os fundos + + + public void showListOptionsTemplate(){ + + + for(int count = 0; count < listMoreInfoTemplate.length; count ++){ + + Log.d("FUND","FUNDOS / showListOptionsTemplate => ["+count+"] " ); + + Log.d("FUND","NOME = " + listMoreInfoTemplate[count][0][0] + " : " +listMoreInfoTemplate[count][0][1] ); + Log.d("FUND","MES = " + listMoreInfoTemplate[count][1][0] + " : " +listMoreInfoTemplate[count][1][1] ); + Log.d("FUND","12MESES = " + listMoreInfoTemplate[count][2][0] + " : " +listMoreInfoTemplate[count][2][1] ); + Log.d("FUND"," ----------------------------------------- "); + + // Log.d("FUND","START = "+count+" = " + listOptions[count][0][1]); + + + } + + } + + // detalha um fumdo + + public void showListOptionsObjectTemplate(FundModelTemplate fd){ + + + for(int count = 0; count < listMoreInfoTemplate.length; count ++){ + + Log.d("FUND","FUNDOS / showListOptionsObjectTemplate => ["+count+"] " ); + + Log.d("FUND","NOME = " + fd.getNameLabel() + " : " +fd.getName() ); + Log.d("FUND","MES = " + fd.getMonthLabel() + " : " +fd.getMonth() ); + Log.d("FUND","12MESES = " + fd.getTimeLabel() + " : " +fd.getTime() ); + Log.d("FUND"," ----------------------------------------- "); + + // Log.d("FUND","START = "+count+" = " + listOptions[count][0][1]); + + + } + + } + + + public void putListOptionsObjectTemplate(int count){ + + setNameLabel(count); + setMonthLabel(count); + setTimeLabel(count); + + setName(count); + setMonth(count); + setTime(count); + + Log.d("FUND","FUNDOS / putListOptionsObjectTemplate() => ["+count+"] " ); + + Log.d("FUND","NOME = " + getNameLabel() + " : " + getName() ); + Log.d("FUND","MES = " + getMonthLabel() + " : " + getMonth() ); + Log.d("FUND","12MESES = " + getTimeLabel() + " : " + getTime() ); + Log.d("FUND"," ----------------------------------------- "); + + + } + + + + // template 01 -- LIST + + //static final String listMoreInfoTemplate[][][] = + public static String listMoreInfoTemplate[][][] = + { //0 + + { //0 + { "title", "Zeus ZERO Plus Multimercado" }, + { "month","0.1" }, + { "12months","0.9" } + }, + { //1 + { "title", "Cronus UM Dinâmico Plus Multimercado Internacional " }, + { "month","1.1" }, + { "12months","1.9" } + }, + { //2 + { "title", "Hades DOIS Dinâmico Plus Multimercado" }, + { "month","3.1" }, + { "12months","2.9" } + }, + { //3 + { "title", "Herculos TRES Dinâmico Plus Debentures Incentivadas Renda Fixa " }, + { "month","3.1" }, + { "12months","3.9" } + }, + { //4 + { "title", "Zeus QUATRO Plus Multimercado" }, + { "month","4.1" }, + { "12months","4.9" } + }, + { //5 + { "title", "Cronus CINCO Dinâmico Plus " }, + { "month","5.1" }, + { "12months","5.9" } + }, + { //6 + { "title", "Hades SEIS Dinâmico Plus Multimercado" }, + { "month","6.1" }, + { "12months","6.9" } + }, + { //7 + { "title", "Herculos SETE Dinâmico Plus " }, + { "month","7.1" }, + { "12months","7.9" } + }, + { //8 + { "title", "Zeus OITO Dinâmico Plus Multimercado" }, + { "month","8.1" }, + { "12months","8.9" } + }, + { //9 + { "title", "Cronus NOVE Fundo Dinâmico Plus Multimercado" }, + { "month","9.1" }, + { "12months","9.9" } + }, + { //10 + { "title", "Hades DEZ Fundo Dinâmico Plus " }, + { "month","10.1" }, + { "12months","10.9" } + }, + { //11 + { "title", "Herculos ONZE Fundo Dinâmico Plus " }, + { "month","11.1" }, + { "12months","11.9" } + }, + { //12 + { "title", "Zeus DOZE Dinâmico Plus Multimercado" }, + { "month","12.1" }, + { "12months","12.9" } + }, + { //13 + { "title", "Cronus TREZE Fundo Dinâmico Plus " }, + { "month","13.1" }, + { "12months","13.9" } + }, + { //14 + { "title", "Hades QUATORZE Fundo Dinâmico Plus Multimercado" }, + { "month","14.1" }, + { "12months","14.9" } + }, + { //15 + { "title", "Herculos QUINZE Fundo Dinâmico Plus " }, + { "month","15.1" }, + { "12months","15.9" } + } + + + }; + + public String[][][][] createListInfoTemplate(){ + + String[][][][] listInfoTemplate2 ={}; + + for(int count = 0; count < listMoreInfoTemplate.length; count ++) { + + String[][][][] listInfoTemplate = + { + { //0 -> nome + + { //0 + {"title", "" + count}, + {"name", "Taxa de administração"}, + {"data", "0,50%"}, + + }, + { //1 + {"title", ""+ count}, + {"name", "Aplicação inicial"}, + {"data", "R$ 10.000,00"} + }, + { //2 + {"title", ""+ count}, + {"name", "Movimentação mínima"}, + {"data", "R$ 1.000,00"} + }, + { //3 + {"title", ""+ count}, + {"name", "Saldo mínimo"}, + {"data", "R$ 5.000,00"} + }, + { //4 + {"title", ""+ count}, + {"name", "Resgate (valor bruto)"}, + {"data", "D+0"} + }, + { //5 + {"title", ""+ count}, + {"name", "Cota (valor bruto)"}, + {"data", "D+1"} + }, + { //6 + {"title", ""+ count}, + {"name", "Pagamento (valor bruto)"}, + {"data", "D+2"} + } + + } + + + }; + } //for + + return listInfoTemplate2; + } + + // template 02 + + + + + static final String listMoreInfoDetailsTemplate[][][][] = + { + { //01 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { //02 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 03 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 04 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + + }, + { //05 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { //06 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 07 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 08 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + + }, + { //09 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { //10 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 11 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 12 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + + }, + { //13 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { //14 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 15 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + }, + { // 16 + { //month + { "fund", "0.3" }, + { "CDI","0.3" } + }, + { //year + { "fund", "13.01" }, + { "CDI","12.08" } + } + , + { //12months + { "fund", "17.9" }, + { "CDI","17.6" } + } + + } + }; + + + public static String[][][] getListMoreInfoTemplate() { + return listMoreInfoTemplate; + } + + public static String[][][][] getListMoreInfoDetailsTemplate() { + return listMoreInfoDetailsTemplate; + } + + + public final String SAVE_DATA_CONTACT ="{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + + public final String SAVE_DATA_FUND_ = "{'screen':{'title':'Fundosdeinvestimento','fundName':'VinciValoremFIMultimercado','whatIs':'Oqueé?','definition':'OFundotemporobjetivoproporcionaraosseuscotistasrentabilidadenolongoprazoatravésdeinvestimentos.','riskTitle':'Grauderiscodoinvestimento','risk':4,'infoTitle':'Maisinformaçõessobreoinvestimento','moreInfo':{'month':{'fund':0.3,'CDI':0.3},'year':{'fund':13.01,'CDI':12.08},'12months':{'fund':17.9,'CDI':17.6}},'info':[{'name':'Taxadeadministração','data':'0,50%'},{'name':'Aplicaçãoinicial','data':'R$10.000,00'},{'name':'Movimentaçãomínima','data':'R$1.000,00'},{'name':'Saldomínimo','data':'R$5.000,00'},{'name':'Resgate(valorbruto)','data':'D+0'},{'name':'Cota(valorbruto)','data':'D+1'},{'name':'Pagamento(valorbruto)','data':'D+2'}],'downInfo':[{'name':'Essenciais','data':null},{'name':'Desempenho','data':null},{'name':'Complementares','data':null},{'name':'Regulamento','data':null},{'name':'Adesão','data':null}]}}"; +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/data/FundRepository.java b/app/src/main/java/br/banco/services/fund/data/FundRepository.java new file mode 100644 index 00000000..39144103 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/FundRepository.java @@ -0,0 +1,24 @@ +package br.banco.services.fund.data; + +import android.content.Context; + +public class FundRepository implements IFundData { + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/data/IFundData.java b/app/src/main/java/br/banco/services/fund/data/IFundData.java new file mode 100644 index 00000000..b1efd5f4 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/IFundData.java @@ -0,0 +1,13 @@ +package br.banco.services.fund.data; + +import android.content.Context; + +public interface IFundData { + + String configDesign(Context context); + + // void getFund(); + //void checkFund(); + +} + diff --git a/app/src/main/java/br/banco/services/fund/data/local/FromDatabase.java b/app/src/main/java/br/banco/services/fund/data/local/FromDatabase.java new file mode 100644 index 00000000..2ad3aacf --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/FromDatabase.java @@ -0,0 +1,27 @@ +package br.banco.services.fund.data.local; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromDatabase extends AppCompatActivity implements IFundData { + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/data/local/FromPreferences.java b/app/src/main/java/br/banco/services/fund/data/local/FromPreferences.java new file mode 100644 index 00000000..35d7fe29 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/FromPreferences.java @@ -0,0 +1,27 @@ +package br.banco.services.fund.data.local; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromPreferences extends AppCompatActivity implements IFundData { + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/data/local/FromType.java b/app/src/main/java/br/banco/services/fund/data/local/FromType.java new file mode 100644 index 00000000..930f5cfc --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/FromType.java @@ -0,0 +1,25 @@ +package br.banco.services.fund.data.local; + +import br.banco.services.fund.data.IFundData; + + +public enum FromType { + + DATABASE { + @Override + public IFundData returnMessage() { + return new FromPreferences(); + } + }, + PREERENCES { + @Override + public IFundData returnMessage() { + return new FromDatabase(); + } + } + + ; + + public abstract IFundData returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/fund/data/local/ILoadFrom.java b/app/src/main/java/br/banco/services/fund/data/local/ILoadFrom.java new file mode 100644 index 00000000..dc0ca63f --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/ILoadFrom.java @@ -0,0 +1,12 @@ +package br.banco.services.fund.data.local; + +import java.util.List; + + +public interface ILoadFrom { + + void processFinish(String output); // load + void convertFinish(List listScreen, String message); // object + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocal.java b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocal.java new file mode 100644 index 00000000..0a9793ed --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocal.java @@ -0,0 +1,33 @@ +package br.banco.services.fund.data.local; + +import android.util.Log; + +import java.io.IOException; + +public class LoadFileLocal { + + + public String loadExternalJson(String jsonURL) throws IOException { + + StringBuilder SB = new StringBuilder(); + + String fileName = "NOME_ARQUIVO_LOCAL.txt"; + + try { + + + } catch(Exception ex) { + Log.e("FUND", "O arquivo nao pode ser lido '" + fileName + "'"); + } + + return SB.toString(); + + } //loadExternalJson + + + +} + + + + diff --git a/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalReal.java b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalReal.java new file mode 100644 index 00000000..fbb002c5 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalReal.java @@ -0,0 +1,61 @@ +package br.banco.services.fund.data.local; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; + +public class LoadFileLocalReal { + + + public String loadExternalJson(String jsonURL) throws IOException { + + // Log.d("FUND","MODEL / "+getClass().getName()+" -> " + jsonURL); + + //FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE); + + + StringBuilder SB = new StringBuilder(); + String fileName = "/sdcard/PROD_COD.txt"; + + String line = null; + + try { + + FileReader fileReader = new FileReader(fileName); + + BufferedReader bufferedReader = + new BufferedReader(fileReader); + + while((line = bufferedReader.readLine()) != null) { + System.out.println(line); + SB.append(line); + } + + bufferedReader.close(); + } + catch(FileNotFoundException ex) { + Log.e("FUND", "Arquivo nao pode ser aberto: '" + fileName + "'"); + } + catch(IOException ex) { + Log.e("FUND", "O arquivo nao pode ser lido '" + fileName + "'"); + // Or we could just do this: + // ex.printStackTrace(); + } + + + return SB.toString(); + + } //loadExternalJson + + + + + +} + + + + diff --git a/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalTask.java b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalTask.java new file mode 100644 index 00000000..4b3c905e --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/local/LoadFileLocalTask.java @@ -0,0 +1,73 @@ + +package br.banco.services.fund.data.local; + +import android.content.Context; +import android.os.AsyncTask; +import android.util.Log; + +public class LoadFileLocalTask extends AsyncTask { + + public ILoadFrom delegate = null; + + public LoadFileLocalTask(Context context) { + + // + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + // Log.d("FUND","MODEL / "+getClass().getName()+" / doInBackground -> START "); + } + + @Override + protected String doInBackground(String... loadValues) { + + // Log.d("FUND","doInBackground -> " + loadValues[0] ); + + String teste = "0"; + String textValues = null; + String urlServer = loadValues[0]; // ValidatorURL + + // web, local + + + try { + + LoadFileLocal load = new LoadFileLocal(); + textValues = load.loadExternalJson(urlServer); + + Log.d("FUND","MODEL /"+getClass().getName()+" -> SUCCESS" ); + + + } catch (Exception e) { + Log.d("FUND","MODEL /"+getClass().getName()+" doInBackground -> ERROR: " + e.getMessage()); + e.printStackTrace(); + } + + return textValues; + + } + + protected void onProgressUpdate(String... progress) { + //Log.d("FUND", "MODEL / doInBackground -> " + progress[0]); + } + + @Override + protected void onPostExecute(String result) { + + // Log.d("FUND", "MODEL / onPostExecute -> result=" + result); + delegate.processFinish(result); + + } + + + + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/remote/FromInternational.java b/app/src/main/java/br/banco/services/fund/data/remote/FromInternational.java new file mode 100644 index 00000000..eb64f253 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/FromInternational.java @@ -0,0 +1,26 @@ +package br.banco.services.fund.data.remote; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromInternational extends AppCompatActivity implements IFundData { + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } +} diff --git a/app/src/main/java/br/banco/services/fund/data/remote/FromNational.java b/app/src/main/java/br/banco/services/fund/data/remote/FromNational.java new file mode 100644 index 00000000..5b39e282 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/FromNational.java @@ -0,0 +1,29 @@ +package br.banco.services.fund.data.remote; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromNational extends AppCompatActivity implements IFundData { + + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/remote/FromType.java b/app/src/main/java/br/banco/services/fund/data/remote/FromType.java new file mode 100644 index 00000000..33fb65a2 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/FromType.java @@ -0,0 +1,25 @@ +package br.banco.services.fund.data.remote; + +import br.banco.services.fund.data.IFundData; + + +public enum FromType { + + NATIONAL { + @Override + public IFundData returnMessage() { + return new FromNational(); + } + }, + INTERNATIONAL { + @Override + public IFundData returnMessage() { + return new FromInternational(); + } + } + + ; + + public abstract IFundData returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/fund/data/remote/ILoadFrom.java b/app/src/main/java/br/banco/services/fund/data/remote/ILoadFrom.java new file mode 100644 index 00000000..5683dc8e --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/ILoadFrom.java @@ -0,0 +1,12 @@ +package br.banco.services.fund.data.remote; + +import java.util.List; + + +public interface ILoadFrom { + + void processFinish(String output); // load + void convertFinish(List listScreen, String message); // object + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttp.java b/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttp.java new file mode 100644 index 00000000..2de2745c --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttp.java @@ -0,0 +1,61 @@ +package br.banco.services.fund.data.remote; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public class LoadFileHttp { + + + public String loadExternalJson(String jsonURL) throws IOException { + + // Log.d("FUND","MODEL / "+getClass().getName()+" -> " + jsonURL); + + try{ + + URL url = new URL(jsonURL); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + + conn.setReadTimeout(10000); + conn.setConnectTimeout(15000); + conn.setRequestMethod("GET"); + conn.setDoInput(true); + conn.connect(); + + BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + StringBuilder SB = new StringBuilder(); + + while ((line = in.readLine()) != null) { + + // Log.d("FUND", "@@ loadJSON() " + line); + + SB.append(line); + + } + + //Log.d("FUND","MODEL / loadExternalJson -> SUCCESS" ); + + in.close(); + return SB.toString(); + + }catch (Exception ex){ + Log.d("FUND","MODEL / loadExternalJson -> ERROR" +ex.getMessage() ); + return null; + } + + + + } //loadExternalJson + + + +} + + + + diff --git a/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttpTask.java b/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttpTask.java new file mode 100644 index 00000000..6231be9a --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/remote/LoadFileHttpTask.java @@ -0,0 +1,73 @@ + +package br.banco.services.fund.data.remote; + +import android.content.Context; +import android.os.AsyncTask; +import android.util.Log; + +public class LoadFileHttpTask extends AsyncTask { + + public ILoadFrom delegate = null; + + public LoadFileHttpTask(Context context) { + + // + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + // Log.d("FUND","MODEL / "+getClass().getName()+" / doInBackground -> START "); + } + + @Override + protected String doInBackground(String... loadValues) { + + // Log.d("FUND","doInBackground -> " + loadValues[0] ); + + String teste = "0"; + String textValues = null; + String urlServer = loadValues[0]; // ValidatorURL + + // web, local + + try { + + + LoadFileHttp load = new LoadFileHttp(); + textValues = load.loadExternalJson(urlServer); + + Log.d("FUND","MODEL /"+getClass().getName()+" -> SUCCESS" ); + + + } catch (Exception e) { + Log.d("FUND","MODEL /"+getClass().getName()+" doInBackground -> ERROR: " + e.getMessage()); + e.printStackTrace(); + } + + return textValues; + + } + + protected void onProgressUpdate(String... progress) { + //Log.d("FUND", "MODEL / doInBackground -> " + progress[0]); + } + + @Override + protected void onPostExecute(String result) { + + // Log.d("FUND", "MODEL / onPostExecute -> result=" + result); + delegate.processFinish(result); + + } + + + + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FomMoreinfo.java b/app/src/main/java/br/banco/services/fund/data/template/FomMoreinfo.java new file mode 100644 index 00000000..37fbbff1 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FomMoreinfo.java @@ -0,0 +1,28 @@ +package br.banco.services.fund.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FomMoreinfo extends AppCompatActivity implements IFundData { + + + private Context b; + public String configDesign(Context a){ + + this.b = a; + return ""; + + } + + public void getFund(){ + + } + + public void checkFund(){ + + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FromDownInfo.java b/app/src/main/java/br/banco/services/fund/data/template/FromDownInfo.java new file mode 100644 index 00000000..90d75060 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FromDownInfo.java @@ -0,0 +1,28 @@ +package br.banco.services.fund.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromDownInfo extends AppCompatActivity implements IFundData { + + private Context b; + + public String configDesign(Context a) { + this.b = a; + return ""; + } + + + public void getFund(){ + + } + + public void checkFund(){ + + + } + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FromFund.java b/app/src/main/java/br/banco/services/fund/data/template/FromFund.java new file mode 100644 index 00000000..0dbaefdb --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FromFund.java @@ -0,0 +1,36 @@ +package br.banco.services.fund.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromFund extends AppCompatActivity implements IFundData { + + + private Context b; + + public String configDesign(Context a) { + this.b = a; + return LOAD_DATA_DEVICE; + } + + public final String LOAD_DATA_DEVICE = "{'screen':{'title':'Fundosdeinvestimento','fundName':'VinciValoremFIMultimercado','whatIs':'Oqueé?','definition':'OFundotemporobjetivoproporcionaraosseuscotistasrentabilidadenolongoprazoatravésdeinvestimentos.','riskTitle':'Grauderiscodoinvestimento','risk':4,'infoTitle':'Maisinformaçõessobreoinvestimento','moreInfo':{'month':{'fund':0.3,'CDI':0.3},'year':{'fund':13.01,'CDI':12.08},'12months':{'fund':17.9,'CDI':17.6}},'info':[{'name':'Taxadeadministração','data':'0,50%'},{'name':'Aplicaçãoinicial','data':'R$10.000,00'},{'name':'Movimentaçãomínima','data':'R$1.000,00'},{'name':'Saldomínimo','data':'R$5.000,00'},{'name':'Resgate(valorbruto)','data':'D+0'},{'name':'Cota(valorbruto)','data':'D+1'},{'name':'Pagamento(valorbruto)','data':'D+2'}],'downInfo':[{'name':'Essenciais','data':null},{'name':'Desempenho','data':null},{'name':'Complementares','data':null},{'name':'Regulamento','data':null},{'name':'Adesão','data':null}]}}"; + public final String LOAD_DATA_NAME = "screen"; + public final int LOAD_DATA_SIZE = 10; + + + public void getFund(){ + + } + + public void checkFund(){ + + + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FromInfo.java b/app/src/main/java/br/banco/services/fund/data/template/FromInfo.java new file mode 100644 index 00000000..3ac7f427 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FromInfo.java @@ -0,0 +1,29 @@ +package br.banco.services.fund.data.template; + +import android.content.Context; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromInfo extends AppCompatActivity implements IFundData { + + private Context b; + + public String configDesign(Context a) { + this.b = a; + return ""; + } + + + + public void getFund(){ + + } + + public void checkFund(){ + + + } + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FromScreen.java b/app/src/main/java/br/banco/services/fund/data/template/FromScreen.java new file mode 100644 index 00000000..89ed4047 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FromScreen.java @@ -0,0 +1,262 @@ +package br.banco.services.fund.data.template; + +/** + * + * REGRAS para validar JSON + * Algumas regras podem ser definidas externamente como tamnho do arquivo: size:0 + * + */ + +import android.content.Context; +import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; + +import br.banco.services.fund.data.IFundData; + +public class FromScreen extends AppCompatActivity implements IFundData { + + private Context b; + + String Name; + String Data; + String Type; + int Size; + int Chars; + int Bytes; + + //---------- get external / get patern ------------- + + // public final String LOAD_DATA_DEVICE ="{'cells':[{'id':1,'type':2,'message':'Olá,primeiroseapresentecomoseunome:','typefield':null,'hidden':false,'topSpacing':60.0,'show':null,'required':false},{'id':2,'type':1,'message':'Nomecompleto','typefield':1,'hidden':false,'topSpacing':35.0,'show':null,'required':true},{'id':4,'type':1,'message':'Email','typefield':3,'hidden':true,'topSpacing':35.0,'show':null,'required':true},{'id':6,'type':1,'message':'Telefone','typefield':'telnumber','hidden':false,'topSpacing':10.0,'show':null,'required':true},{'id':3,'type':4,'message':'Gostariadecadastrarmeuemail','typefield':null,'hidden':false,'topSpacing':35.0,'show':4,'required':false},{'id':7,'type':5,'message':'Enviar','typefield':null,'hidden':false,'topSpacing':10.0,'show':null,'required':true}]}"; + public final String LOAD_DATA_DEVICE ="{JSON HERE}"; + + public final String LOAD_DATA_NAME = "screen"; + public final int LOAD_DATA_SIZE = 10; // fields + public final int LOAD_DATA_CHARS = 1000; // 1mb + public final int LOAD_DATA_BYTES = 5000; // nao definido + public final String LOAD_DATA_TYPE = "TEXT"; + + public FromScreen(){ + + this.Data = LOAD_DATA_DEVICE; + this.Name = LOAD_DATA_NAME; + this.Size = LOAD_DATA_SIZE; + this.Chars = LOAD_DATA_CHARS; + this.Bytes = LOAD_DATA_BYTES; + this.Type = LOAD_DATA_TYPE; + + } + + public String configDesign(Context a) { + this.b = a; + return LOAD_DATA_DEVICE; + } + + /** + * + * VALIDATORS --------------- + */ + + @Nullable + public boolean setComparetor( + String name, + String data, + String type, + int size, + int chars, + int bytes + ){ + + boolean Rules = false; + try { + + name = (name == null) ? "" : name; + data = (data == null) ? "" : data; + type = (type == null) ? "" : type; + size = (size < 1) ? 0 : size ; + chars = (chars < 1) ? 0 : chars; + bytes = (bytes < 1) ? 0 : bytes; + + Rules = getComparetor(data, LOAD_DATA_DEVICE) && + getComparetor(name, LOAD_DATA_NAME) && + getComparetor(size, LOAD_DATA_SIZE) && + getComparetor(chars, LOAD_DATA_CHARS) && + getComparetor(bytes, LOAD_DATA_BYTES)&& + getComparetor(type, LOAD_DATA_TYPE); + + } catch (Exception e) { + e.printStackTrace(); + } + return Rules; + } + + // @SuppressWarnings(); + @Nullable + public boolean getComparetor(int a, int b){ + return (a==b) || a == 0; + } + @Nullable + public boolean getComparetor(double a, double b){ + return (a==b) || a == 0; + } + @Nullable + public boolean getComparetor(boolean a, boolean b){ + return (a==b) || a == false; + } + @Nullable + public boolean getComparetor(String a, String b){ + return (a.equals(b)) || a == "" ; + } + @Nullable + public boolean getComparetor(Object a, Object b){ + return (a.equals(b)) || a == null ; + } + + /** + * + * SETERS --------------- + */ + + + public int getSize() { + return Size; + } + + public void setSize(int size) { + Size = size; + } + + public String getName() { + return Name; + } + + public void setName(String name) { + Name = name; + } + + public String getData() { + return Data; + } + + public void setData(String data) { + Data = data; + } + + public int getChars() { + return Chars; + } + + public void setChars(int chars) { + Chars = chars; + } + + public int getBytes() { + return Bytes; + } + + public void setBytes(int bytes) { + Bytes = bytes; + } + + public String getType() { + return Type; + } + + public void setType(String type) { + Type = type; + } + + /** + * + * USER CASES retorno --------------- + */ + + public String getStringTest() { + + String nLine = System.getProperty( "line.separator" ); + + + return " " + + " ------CLASS: FromScreen----------" + nLine + nLine + + + " Name=" + Name + nLine + + " Data=" + Data + nLine + + " Type=" + Type + nLine + + " Size=" + Size + nLine + + " Chars=" + Chars + nLine + + " Bytes=" + Bytes + nLine + nLine + + + " -------------EXTERNAL-----------------" + nLine + nLine + + + " LOAD_DATA_DEVICE=" + LOAD_DATA_DEVICE + nLine + + " LOAD_DATA_NAME=" + LOAD_DATA_NAME + nLine + + " LOAD_DATA_SIZE=" + LOAD_DATA_SIZE + nLine + + " LOAD_DATA_CHARS=" + LOAD_DATA_CHARS + nLine + + " LOAD_DATA_BYTES=" + LOAD_DATA_BYTES + nLine + + " LOAD_DATA_TYPE=" + LOAD_DATA_TYPE + nLine + nLine + + + "---------------USER CASE---------------" + nLine + nLine + + " userCaseFalse=" + userCaseTrue() + nLine + + " userCaseTrue=" + userCaseFalse() + nLine + + " userCaseFalse=" + userCaseNull() + nLine + + + ""; + } + + /** + * + * USER CASES teste --------------- + */ + + + public boolean userCaseTrue(){ + + boolean usercase = false; + usercase = false; + + usercase = setComparetor( + LOAD_DATA_NAME, + LOAD_DATA_DEVICE, + LOAD_DATA_TYPE, + LOAD_DATA_SIZE, + LOAD_DATA_CHARS, + LOAD_DATA_BYTES); + + return usercase; + } + + public boolean userCaseFalse(){ + boolean usercase = false; + usercase = false; + + usercase = setComparetor( + "blablabla", + "bla bla bla", + "", + 20, + 0, + 0); + + return usercase; + } + + public boolean userCaseNull(){ + + boolean usercase = false; + usercase = false; + + usercase = setComparetor( + null, + null, + null, + -555, + -555, + -555); + + return usercase; + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/data/template/FromType.java b/app/src/main/java/br/banco/services/fund/data/template/FromType.java new file mode 100644 index 00000000..9c17ec6b --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/data/template/FromType.java @@ -0,0 +1,37 @@ +package br.banco.services.fund.data.template; + +import br.banco.services.fund.data.IFundData; + + +public enum FromType { + + FUND_TYPE { + @Override + public IFundData returnMessage() { + return new FromFund(); + } + }, + MOREINFO_TYPE { + @Override + public IFundData returnMessage() { + return new FomMoreinfo(); + } + }, + INFO_TYPE { + @Override + public IFundData returnMessage() { + return new FromInfo(); + } + }, + + DOWNLOAD_TYPE { + @Override + public IFundData returnMessage() { + return new FromDownInfo(); + } + } + ; + + public abstract IFundData returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/DetailAdapter.java b/app/src/main/java/br/banco/services/fund/detail/DetailAdapter.java new file mode 100644 index 00000000..d36fc77a --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/DetailAdapter.java @@ -0,0 +1,322 @@ +package br.banco.services.fund.detail; + +/** + * + * Estas CLASSES devem ser externas para DESACOPLAR o layout e ser reaproveitavel + * + */ + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +import java.util.ArrayList; + +import br.banco.services.R; +import br.banco.services.fund.domain.national.ScreenFundTemplate; + + +public class DetailAdapter extends RecyclerView.Adapter { + + private ArrayList dataSet; + Context mContext; + int total_types; + private int adapterPosition; + + + /** + * + * INICIO DO LAYOUT - FD_header, FD_body, FD_footer + * + */ + + + // inicio do body + + public static class FDFundVH extends RecyclerView.ViewHolder { + + TextView DT_fd_title; + TextView DT_fd_fundName; + TextView DT_fd_whatIs; + TextView DT_fd_definition; + TextView DT_fd_riskTitle; + LinearLayout DT_fd_chartBarLevelTemplate; + LinearLayout DT_fd_chartBarLevelTemplate_Aply; + View DT_fd_chart_arrow_4; + View DT_fd_chart_frame_4; + + public FDFundVH(View itemView) { + super(itemView); + + this.DT_fd_title = (TextView) itemView.findViewById(R.id.DT_fd_title); + this.DT_fd_fundName = (TextView) itemView.findViewById(R.id.DT_fd_fundName); + this.DT_fd_whatIs = (TextView) itemView.findViewById(R.id.DT_fd_whatIs); + this.DT_fd_definition = (TextView) itemView.findViewById(R.id.DT_fd_definition); + this.DT_fd_riskTitle = (TextView) itemView.findViewById(R.id.DT_fd_riskTitle); + + this.DT_fd_chart_arrow_4 = (View) itemView.findViewById(R.id.DT_fd_chart_arrow_4); + this.DT_fd_chart_frame_4 = (View) itemView.findViewById(R.id.DT_fd_chart_frame_4); + + } + + } + + public static class FDMoreinfoVH extends RecyclerView.ViewHolder { + + + TextView MI_lb_co1_titulo; + TextView MI_lb_co1_titulo1; + TextView MI_lb_co1_titulo2; + TextView MI_lb_co1_titulo3; + + TextView MI_lb_co2_titulo; + TextView MI_lb_co2_titulo1; + TextView MI_lb_co2_titulo2; + TextView MI_lb_co2_titulo3; + + TextView MI_lb_co3_titulo; + TextView MI_lb_co3_titulo1; + TextView MI_lb_co3_titulo2; + TextView MI_lb_co3_titulo3; + + + //TextView TV2; + // LinearLayout layout = (LinearLayout) getLayoutInflater().inflate(R.layout.template_linearlayout, null); + + public FDMoreinfoVH(View itemView) { + super(itemView); + + this.MI_lb_co1_titulo = (TextView) itemView.findViewById(R.id.MI_lb_co1_titulo); + this.MI_lb_co1_titulo1 = (TextView) itemView.findViewById(R.id.MI_lb_co1_titulo1); + this.MI_lb_co1_titulo2 = (TextView) itemView.findViewById(R.id.MI_lb_co1_titulo2); + this.MI_lb_co1_titulo3 = (TextView) itemView.findViewById(R.id.MI_lb_co1_titulo3); + + this.MI_lb_co2_titulo = (TextView) itemView.findViewById(R.id.MI_lb_co2_titulo); + this.MI_lb_co2_titulo1 = (TextView) itemView.findViewById(R.id.MI_lb_co2_titulo1); + this.MI_lb_co2_titulo2 = (TextView) itemView.findViewById(R.id.MI_lb_co2_titulo2); + this.MI_lb_co2_titulo3 = (TextView) itemView.findViewById(R.id.MI_lb_co2_titulo3); + + this.MI_lb_co3_titulo = (TextView) itemView.findViewById(R.id.MI_lb_co3_titulo); + this.MI_lb_co3_titulo1 = (TextView) itemView.findViewById(R.id.MI_lb_co3_titulo1); + this.MI_lb_co3_titulo2 = (TextView) itemView.findViewById(R.id.MI_lb_co3_titulo2); + this.MI_lb_co3_titulo3 = (TextView) itemView.findViewById(R.id.MI_lb_co3_titulo3); + + } + + } + + public static class FDInfoVH extends RecyclerView.ViewHolder { + + TextView IF_lb_co1_titulo; + TextView IF_lb_co2_titulo; + + public FDInfoVH(View itemView) { + super(itemView); + + this.IF_lb_co1_titulo = (TextView) itemView.findViewById(R.id.IF_lb_co1_titulo); + this.IF_lb_co2_titulo = (TextView) itemView.findViewById(R.id.IF_lb_co2_titulo); + + } + + } + + public static class FDDownInfoVH extends RecyclerView.ViewHolder { + + + TextView DL_lb_co1_titulo; + Button DL_lb_co2_titulo; + + public FDDownInfoVH(View itemView) { + super(itemView); + + this.DL_lb_co1_titulo = (TextView) itemView.findViewById(R.id.DL_lb_co1_titulo); + this.DL_lb_co2_titulo = (Button) itemView.findViewById(R.id.DL_lb_co2_titulo); + + } + + } + + /** + * + * FINAL DO LAYOUT - parte generica + * + */ + + + public static class FD_footer extends RecyclerView.ViewHolder { + + Button btDetailView; + + public FD_footer(View itemView) { + super(itemView); + this.btDetailView = (Button) itemView.findViewById(R.id.btDetailView); + + } + + } + + public DetailAdapter(ArrayList data, Context context) { + + this.dataSet = data; + this.mContext = context; + total_types = dataSet.size(); + + } + + @Override + public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + + View view; + switch (viewType) { + + /** + * aqui caberia um header + * + */ + + case ScreenFundTemplate.FUND_TYPE: + + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fund_detail_fund_type, parent, false); + return new FDFundVH(view); + + case ScreenFundTemplate.MOREINFO_TYPE: + + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fund_detail_moreinfo_type, parent, false); + return new FDMoreinfoVH(view); + + case ScreenFundTemplate.INFO_TYPE: + + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fund_detail_info_type, parent, false); + return new FDInfoVH(view); + + case ScreenFundTemplate.DOWNLOAD_TYPE: + + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fund_detail_download_type, parent, false); + return new FDDownInfoVH(view); + case ScreenFundTemplate.FOOTER_TYPE: + + view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fund_detail_footer_type, parent, false); + return new FD_footer(view); + + } + return null; + + } + + @Override + public int getItemViewType(int position) { + + switch (dataSet.get(position).getType()) { + case 0: + return ScreenFundTemplate.FUND_TYPE; + case 1: + return ScreenFundTemplate.MOREINFO_TYPE; + case 2: + return ScreenFundTemplate.INFO_TYPE; + case 3: + return ScreenFundTemplate.DOWNLOAD_TYPE; + case 12: + return ScreenFundTemplate.FOOTER_TYPE; + default: + return -1; + } + + + } + + @Override + public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int listPosition) { + + ScreenFundTemplate model = dataSet.get(listPosition); + + + if (model != null) { + switch (model.type) { + case ScreenFundTemplate.FUND_TYPE: + + ((FDFundVH) holder).DT_fd_title.setText(model.getSession()); // fundos de.. + ((FDFundVH) holder).DT_fd_fundName.setText(model.getTitle()); // Vince.. + ((FDFundVH) holder).DT_fd_whatIs.setText(model.getSubtitle()); // o Que.. + ((FDFundVH) holder).DT_fd_definition.setText(model.getDescription()); // O fundo... + ((FDFundVH) holder).DT_fd_riskTitle.setText(model.getChartTitle()); // Grau de .. + + // LinearLayout layout = new LinearLayout(this); + + // ((FDFundVH) holder).DT_fd_chart_arrow_4.setBackgroundTintMode(); + + //((FDFundVH) holder).DT_fd_chart_arrow_4.setLayoutParams(params); + + + break; + case ScreenFundTemplate.MOREINFO_TYPE: + + /** + * aqui deve ser uma CLASSE INJETADA em oura classe + * + */ + + ((FDMoreinfoVH) holder).MI_lb_co1_titulo.setText(""); + ((FDMoreinfoVH) holder).MI_lb_co1_titulo1.setText(""+model.getTitle()); + ((FDMoreinfoVH) holder).MI_lb_co1_titulo2.setText(""+model.getTableTitle()); + ((FDMoreinfoVH) holder).MI_lb_co1_titulo3.setText(""+model.getTableValue()); + + ((FDMoreinfoVH) holder).MI_lb_co2_titulo.setText(""+model.getChartTitle()); + ((FDMoreinfoVH) holder).MI_lb_co2_titulo1.setText("0.3%"); + ((FDMoreinfoVH) holder).MI_lb_co2_titulo2.setText("12.01%"); + ((FDMoreinfoVH) holder).MI_lb_co2_titulo3.setText("17.9%"); + + ((FDMoreinfoVH) holder).MI_lb_co3_titulo.setText(""+model.getSession()); + ((FDMoreinfoVH) holder).MI_lb_co3_titulo1.setText("03%"); + ((FDMoreinfoVH) holder).MI_lb_co3_titulo2.setText("12%"); + ((FDMoreinfoVH) holder).MI_lb_co3_titulo3.setText("17.6%"); + + break; + case ScreenFundTemplate.INFO_TYPE: + + ((FDInfoVH) holder).IF_lb_co1_titulo.setText(model.getTableTitle()); + ((FDInfoVH) holder).IF_lb_co2_titulo.setText(model.getTableValue()); + + break; + case ScreenFundTemplate.DOWNLOAD_TYPE: + + ((FDDownInfoVH) holder).DL_lb_co1_titulo.setText(model.getTableTitle()); + ((FDDownInfoVH) holder).DL_lb_co2_titulo.setText(model.getAdressLabel()); + // Adress Link + + ((FDDownInfoVH) holder).DL_lb_co2_titulo.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + + Toast.makeText(mContext, "Baixando Arquivo...", Toast.LENGTH_SHORT).show(); + } + }); + + break; + case ScreenFundTemplate.FOOTER_TYPE: + + ((FD_footer) holder).btDetailView.setText(model.getAdressLabel()); + + break; + + + + + } + } + + } + + @Override + public int getItemCount() { + return dataSet.size(); + } + + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/DetailModel.java b/app/src/main/java/br/banco/services/fund/detail/DetailModel.java new file mode 100644 index 00000000..19be17e6 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/DetailModel.java @@ -0,0 +1,202 @@ +package br.banco.services.fund.detail; + + +import android.content.Context; +import android.os.Parcel; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.data.remote.ILoadFrom; +import br.banco.services.fund.interactor.ILoadTask; +import br.banco.services.fund.interactor.LoadInternet; +import br.banco.services.fund.interactor.LoadScreen; + +public class DetailModel implements IDetail.ModelDT, ILoadTask, ILoadFrom +{ + + private static IDetail.PresenterDT presenter; + private static ILoadTask task; + + // data patern + + public static final int SITE_NATIONAL = 0; //origin + public static final int SITE_INTERNATIONAL = 1; + + public static final int LOAD_INTERNET = 0; // location + public static final int LOAD_PREFERENCES = 1; + public static final int LOAD_DATABASE = 2; + + public Context context; + public static final int INTERNET_CONN_ATTEMPTS = 3; + + // design config + + public static final int FUND_TYPE = 0; + public static final int MOREINFO_TYPE = 1; + public static final int INFO_TYPE = 2; + public static final int DOWNLOAD_TYPE = 3; + + public static final int HEADER_TYPE = 10; + public static final int BODY_TYPE = 11; + public static final int FOOTER_TYPE = 12; + + public int origin; + public int location; + + public int type; + public int data; + public String text; + + public ArrayList container; + public ArrayList configurations; + public ReactAplication RX = new ReactAplication(); + + public DetailModel(IDetail.PresenterDT presenter) { + this.origin = LOAD_INTERNET; + this.location = SITE_NATIONAL; + this.presenter = presenter; + // RX.onNext("MODEL->presenter->"+ (presenter!=null)); + + } + + public void processStart(int location ,Context c){ + this.context = c; + + // RX.onNext("MODEL->Context->"+ (c!=null)); + LoadInternet connectInternet = new LoadInternet(c); + connectInternet.delegate = this; + connectInternet.execute(""); //INTERNET_CONN_ATTEMPTS + //RX.onNext("carregar da web"); + } + + public void processFinish(String output){ + // RX.onNext("processFinish->context->" + (context!=null)); + + if(output.equals("success")) { + RX.onNext("MODEL / carregar internet..." + output); + + // LoadFileHttpTask loaadHttp = new LoadFileHttpTask(context); + // loaadHttp.delegate = this; + // loaadHttp.execute(""); + + LoadScreen loadScreen = new LoadScreen(context); + loadScreen.delegate = this; + loadScreen.execute(""); + + + }else{ + // RX.onNext("MODEL / Carregando dados locais..."); + + LoadScreen loadScreen = new LoadScreen(context); + loadScreen.delegate = this; + loadScreen.execute(""); + } + } + + public void convertFinish(List listScreen, String message){ + + if(listScreen != null) { + RX.onNext("MODEL / convertFinish->Sucess"); + // RX.onNext("MODEL / loadConfigurations->Sucess"); + // presenter.loadConfigurations(listScreen, message); + + + }else{ + RX.onNext("MODEL / convertFinish->Error"); + // presenter.loadAlert(4, context); + } + + } + + + // ------------------- config data ----------------------- + + //@Override + + + public void describeContents (){ + + } + + public void writeToParcel (Parcel dest, int flags) { + + } + + // -------------- + + + public int decideLoadData(int decide){ + decide = (decide < 0 || decide > 2 ) ? origin : decide ; + return decide; + } + + // origem dos dados + + public int getOrigin() { + return origin; + } + + public void setOrigin(int origin) { + + origin = (origin < 0 || origin > 2 ) ? 0 : origin ; + + int dataSource[] = { + LOAD_INTERNET, + LOAD_PREFERENCES, + LOAD_DATABASE + }; + + this.origin = dataSource[origin]; + } + + public int getLocation() { + return location; + } + + public void setLocation(int location) { + + location = (location < 0 || location > 1) ? 0 : location ; + + int dataSource[] = { + SITE_NATIONAL, + SITE_INTERNATIONAL + }; + + this.location = dataSource[location]; + } + + // more + + + + + + + + // conteudo + + public ArrayList getContainer() { + return container; + } + + public void setContainer(ArrayList container) { + this.container = container; + } + + //configuracoes + + public ArrayList getConfigurations() { + return configurations; + } + + public void setConfigurations(ArrayList configurations) { + this.configurations = configurations; + } + //testes + + // ------------------- config data ----------------------- + + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/DetailView.java b/app/src/main/java/br/banco/services/fund/detail/DetailView.java new file mode 100644 index 00000000..cce589e1 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/DetailView.java @@ -0,0 +1,462 @@ +package br.banco.services.fund.detail; + +/** + * + * Sequencia de carregamento: + * + * FUND, CONTACT: + * View> Presenter-> Model> Screen> Rules> dbase[Json / Share / sqlite] + * Rules[...] listDetail = new ArrayList<>(); + + // ----- DESIGN + + private RecyclerView mRecyclerView; + private ProgressBar progressBar; + private Toolbar toolbar; + public Context context; + public ReactAplication RX = new ReactAplication(); + private int messageCode = 4; // Error + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_detail_main1); + + + + if ((savedInstanceState != null) && + (savedInstanceState.getSerializable("KEY") != null)) { + + //VEW = (VIWE) savedInstanceState.getSerializable("starttime"); + } + + presenter = new DetailsPresenter(); //01 + ((DetailsPresenter) presenter).setView(this); // presenter.setView(this); + + getContext(); + drawNavigation(); + + //initProgressBar(); + //showProgressBar(); + + presenter.decideLoadContent(savedInstanceState); //02 + //RX.onNext("presenter: " + (presenter!=null)); + + // start + ArrayList list= new ArrayList(); + drawRecyclerView(); + updateRecyclerView( context, list); + + } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + // outState.putParcelableArrayList(KEY_AREA, presenter.getScreen()); + + } + + + @Override + public void onResume() { + super.onResume(); + + // checkOnResume(); + // RX.onNext("onResume->" + getClass().getName()); + + } + + // RecyclerView + + public void drawRecyclerView(){ + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + } + + public int checkOptionListView(){ + + int contItens = 0; + if (mRecyclerView.getAdapter() != null) { + contItens = mRecyclerView.getAdapter().getItemCount(); + } + return contItens; + } + + public void updateRecyclerView(Context context, ArrayList listContentData){ + + String BD_FUNDO_TITULO = "###"; + try { + + Bundle extras = getIntent().getExtras(); + + // Log.e("TESTE","extras = "+ (extras!=null)); + + if (extras != null) { + + if (extras.getString("BD_FUNDO_TITULO") != null) { + BD_FUNDO_TITULO = extras.getString("BD_FUNDO_TITULO"); + }else{ + + } + + } + + }catch (Exception ex){ + Log.e("TESTE","ERRO Bundle " ); + } + + + Log.e("TESTE","BD_FUNDO_TITULO = " + BD_FUNDO_TITULO ); + + List listaTemplate = new ArrayList(); + List listaExport = new ArrayList(); + ArrayList listScreen = new ArrayList<>(); + + + + /** + * + * 1 - Carregar um LIST contendo todos os arrays -> de> listaExport + * 2 - extrair essas arrays para detro de classes + * 3 - injetar nas classes do Recicledview + * + */ + + + + ArrayList listFund = new ArrayList(); + ArrayList listMoreingo = new ArrayList(); + ArrayList listInfo = new ArrayList(); + ArrayList listDownInfo = new ArrayList(); + + // carrgar tamanhos de database ou pacote + + int tScreen = 10; // < - carregar de pacote + int tFund = 5; + int tMoreingo = 3; + int tInfo = 8; + int tDownInfo = 4; + + ArrayList list= new ArrayList(); + + ScreenFundTemplate screen; + Fund fund = new Fund(); + fund.setDefinition("title here"); + + + + + /** + * + * HEADER, BOODY, FOOTER, outros conteudos... + * + */ + + + + // -------------------- FUNDO + + String TituloFundo ="Vinci Valorem FI Multimercado"; + if(BD_FUNDO_TITULO.length() > 2){ + TituloFundo = BD_FUNDO_TITULO; + } + + screen = new ScreenFundTemplate(fund); + screen.setType(0); + screen.setData(1); + screen.setTitle("" + TituloFundo); + screen.setSubtitle("O que é?"); // + screen.setSession("Fundos de investimento"); + screen.setDescription("O Fundo tem por objetivo proporcionar aos seus cotistas rentabilidade no longo prazo através de investimentos."); + screen.setChartTitle("Grau de risco do investimento"); + + listContentData.add(screen); + + // -------------------- MORE INFO + + /** + * + * aqui deve ser um ARRAY contendo MAPS para criar a tabela do MORE INFO + * + */ + screen = new ScreenFundTemplate(fund); + screen.setType(1); + screen.setData(1); + + screen.setTitle("No mes"); + screen.setTableTitle("No ano"); + screen.setTableValue("12 Meses"); + + screen.setChartTitle("Fundo"); + screen.setSession("CDI"); + + listContentData.add(screen); + + // -------------------- INFO + + for(int i= 0; i < 8; i++){ + + screen = new ScreenFundTemplate(screen); + screen.setType(2); + screen.setData(0); + screen.setTableTitle("Aplicação inicial " + i); + screen.setTableValue("R$ "+(i+1)+".000,00" + i); + listContentData.add(screen); + + } + + // -------------------- DOWNLOAD + + for(int b= 0; b < 5; b++){ + + screen = new ScreenFundTemplate(screen); + screen.setType(3); + screen.setData(0); + screen.setTableTitle("Essenciais" + b); + screen.setAdressLabel("BAIXAR" + b); + listContentData.add(screen); + + } + + // -------------------- FOOTER + + screen = new ScreenFundTemplate(screen); + screen.setType(12); + screen.setData(1); + screen.setAdressLabel("Investir"); + screen.setAdressLink("ACTION_CLICK"); + listContentData.add(screen); + + + + if(listContentData != null) { + + DetailAdapter adapter = new DetailAdapter(listContentData, this); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, OrientationHelper.VERTICAL, false); + + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + + mRecyclerView.setLayoutManager(linearLayoutManager); + //mRecyclerView.setItemAnimator(new DefaultItemAnimator()); + mRecyclerView.setAdapter(adapter); + + }else{ + // presenter.loadAlert(1, context); + } + } + + // views + + public void showProgressBar() { + progressBar.setVisibility(View.VISIBLE); + } + + public void hideProgressBar() { + progressBar.setVisibility(View.INVISIBLE); + } + + public void initProgressBar() { + + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(this, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(this); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + this.addContentView(progressBar, params); + hideProgressBar(); + + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> initProgressBar" ); + + } + + public void showToolbar(){ + + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> showToolbar" ); + + } + + public boolean getContext(){ + this.context = getApplicationContext(); + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> getContext" ); + return (context != null); + } + + // content + + public void updateAlertView( int msgCode, Context context){ + + Handler handler; + messageCode = msgCode; + // delay + handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + Intent intent; + intent = new Intent(getApplicationContext(), + br.banco.services.app.alert.AlertView.class ); + intent.putExtra("messageCode", messageCode); + startActivity(intent); + + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + // finish(); + + } + }, 100); + + Log.d(TAG," / updateAlertView -> ERROR -> messageCode = " + messageCode); + + } + + public void checkOnResume(){ + + if(checkOptionListView() < 1){ + + Log.d(TAG, "VIEW/"+getClass().getName()+"/onResume->lOAD:0" ); + + if(ConnectionChek.isNetworkAvailable(getApplicationContext()) == true){ + + // presenter.drawOptionList(); + // presenter.decideLoadContent(STATE_KEY); //02 + + Log.d(TAG, "VIEW/"+getClass().getName()+"/onResume->DRAW" ); + + if(checkOptionListView() < 1){ + + int msgCode = 4; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + }else{ + int msgCode = 2; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + } + + } + + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + return false; + } + return super.onKeyDown(keyCode, event); + } + + + @Override + public void onClick(View view) { + + Intent IT; + Context context = getApplicationContext(); + + switch (view.getId()) { + + case R.id.btAction1: + IT = new Intent(this, br.banco.services.fund.option.FundOptionView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + finish(); + break; + + + case R.id.btAction2: + IT = new Intent(this, br.banco.services.contact.ContactView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + finish(); + break; + + } + + + + } + + public void drawNavigation(){ + Button BTAction1 = (Button) findViewById(R.id.btAction1); + Button BTAction2 = (Button) findViewById(R.id.btAction2); + BTAction1.setOnClickListener(this); + BTAction2.setOnClickListener(this); + } + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/DetailViewTemplate.java b/app/src/main/java/br/banco/services/fund/detail/DetailViewTemplate.java new file mode 100644 index 00000000..d8cee442 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/DetailViewTemplate.java @@ -0,0 +1,328 @@ +package br.banco.services.fund.detail; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Color; +import android.graphics.PorterDuff; +import android.os.Bundle; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.OrientationHelper; +import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.Toolbar; +import android.util.DisplayMetrics; +import android.util.Log; +import android.view.View; +import android.widget.ProgressBar; +import android.widget.RelativeLayout; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.R; +import br.banco.services.app.utils.ConnectionChek; +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.domain.national.DownInfo; +import br.banco.services.fund.domain.national.Fund; +import br.banco.services.fund.domain.national.Info; +import br.banco.services.fund.domain.national.MoreInfo; +import br.banco.services.fund.domain.national.ScreenFund; +import br.banco.services.fund.domain.national.ScreenFundTemplate; + + +public class DetailViewTemplate extends AppCompatActivity implements + IDetail.ViewDT { //ILoadTask + + // ----- DATA + + private final String TAG ="FUND"; + private static IDetail.PresenterDT presenter; + private ScreenFund screenFund; + private ArrayList listDetail = new ArrayList<>(); + + // ----- DESIGN + + private RecyclerView mRecyclerView; + private ProgressBar progressBar; + private Toolbar toolbar; + public Context context; + public ReactAplication RX = new ReactAplication(); + private int messageCode = 4; // Error + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.activity_detail_main1); + + if ((savedInstanceState != null) && + (savedInstanceState.getSerializable("KEY") != null)) { + + //VEW = (VIWE) savedInstanceState.getSerializable("starttime"); + } + + presenter = new DetailsPresenter(); //01 + ((DetailsPresenter) presenter).setView(this); // presenter.setView(this); + + getContext(); + + //initProgressBar(); + //showProgressBar(); + + presenter.decideLoadContent(savedInstanceState); //02 + //RX.onNext("presenter: " + (presenter!=null)); + + // start + ArrayList list= new ArrayList(); + drawRecyclerView(); + updateRecyclerView( context, list); + + } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + // outState.putParcelableArrayList(KEY_AREA, presenter.getScreen()); + + } + + + @Override + public void onResume() { + super.onResume(); + + // checkOnResume(); + // RX.onNext("onResume->" + getClass().getName()); + + } + + // RecyclerView + + public void drawRecyclerView(){ + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + } + + public int checkOptionListView(){ + + int contItens = 0; + if (mRecyclerView.getAdapter() != null) { + contItens = mRecyclerView.getAdapter().getItemCount(); + } + return contItens; + } + + public void updateRecyclerView(Context context, ArrayList listContentData){ + + + List listaTemplate = new ArrayList(); + List listaExport = new ArrayList(); + + ArrayList listScreen = new ArrayList<>(); + + ArrayList listFund = new ArrayList(); + ArrayList listMoreingo = new ArrayList(); + ArrayList listInfo = new ArrayList(); + ArrayList listDownInfo = new ArrayList(); + + // carrgar tamanhos de database ou pacote + + int tScreen = 10; // < - carregar de pacote + int tFund = 5; + int tMoreingo = 3; + int tInfo = 8; + int tDownInfo = 4; + + ArrayList list= new ArrayList(); + + ScreenFundTemplate screen; + Fund fund = new Fund(); + fund.setDefinition("BOOOOO"); + + + screen = new ScreenFundTemplate(fund); +/* + // -------------------- FUND + + screen.setType(0); + screen.setData(1); + screen.setTitle(" setTitle Here"); + screen.setSubtitle(" setSubtitle Here"); + screen.setSession(" setSession Here"); + screen.setDescription(" setDescription Here setDescription Here setDescription Here setDescription Here setDescription Here setDescription Here"); + screen.setChartTitle(" setChartTitle Here"); + + listContentData.add(screen); + + // -------------------- MORE INFO + + screen = new ScreenFundTemplate(fund); + screen.setType(2); + screen.setData(1); + + screen.setTitle(" setTitle Here"); + screen.setTableTitle(" setSession"); + screen.setTableValue(" setDescription Here "); + screen.setChartTitle(" setChartTitle Here"); + + listContentData.add(screen); + + + for(int i= 0; i < 8; i++){ + + screen = new ScreenFundTemplate(screen); + screen.setType(2); + screen.setData(0); + screen.setTableTitle(" setTableTitle " + i); + screen.setTableValue(" setTableValue " + i); + listContentData.add(screen); + + } + + for(int b= 0; b < 5; b++){ + + screen = new ScreenFundTemplate(screen); + screen.setType(3); + screen.setData(0); + screen.setTableTitle(" setTableTitle " + b); + screen.setAdressLabel(" setAdressLabel " + b); + listContentData.add(screen); + + } + + */ + + // if(listContentData != null) { + + DetailAdapter adapter = new DetailAdapter(listContentData, this); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, OrientationHelper.VERTICAL, false); + + mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView); + + mRecyclerView.setLayoutManager(linearLayoutManager); + //mRecyclerView.setItemAnimator(new DefaultItemAnimator()); + mRecyclerView.setAdapter(adapter); + + // }else{ + // presenter.loadAlert(1, context); + // } + } + + // views + + public void showProgressBar() { + progressBar.setVisibility(View.VISIBLE); + } + + public void hideProgressBar() { + progressBar.setVisibility(View.INVISIBLE); + } + + public void initProgressBar() { + + int marginTop = 0; + int marginLeft = 0; + + // size + DisplayMetrics displayMetrics = new DisplayMetrics(); + getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); + + int width = displayMetrics.widthPixels; + int height = displayMetrics.heightPixels; + + marginTop = (height > 0) ? (height / 2) - 80 : 0 ; + marginLeft = (width > 0) ? (width / 2) - 80 : 0 ; + + // bar + progressBar = new ProgressBar(this, null, + android.R.attr.progressBarStyleSmall); + progressBar.getIndeterminateDrawable() + .setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); + progressBar.setIndeterminate(true); + progressBar.setBackgroundColor(Color.TRANSPARENT); + + // layout + RelativeLayout layout = new RelativeLayout(this); + + // params + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(160, 160); + params.setMargins(marginLeft, marginTop, 0, 0); + + this.addContentView(progressBar, params); + hideProgressBar(); + + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> initProgressBar" ); + + } + + public void showToolbar(){ + + toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> showToolbar" ); + + } + + public boolean getContext(){ + this.context = getApplicationContext(); + // Log.d(TAG, "VIEW / "+getClass().getName()+" -> getContext" ); + return (context != null); + } + + // content + + public void updateAlertView( int msgCode, Context context){ + + Handler handler; + messageCode = msgCode; + // delay + handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + Intent intent; + intent = new Intent(getApplicationContext(), + br.banco.services.app.alert.AlertView.class ); + intent.putExtra("messageCode", messageCode); + startActivity(intent); + + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + // finish(); + + } + }, 100); + + Log.d(TAG," / updateAlertView -> ERROR -> messageCode = " + messageCode); + + } + + public void checkOnResume(){ + + if(checkOptionListView() < 1){ + + Log.d(TAG, "VIEW/"+getClass().getName()+"/onResume->lOAD:0" ); + + if(ConnectionChek.isNetworkAvailable(getApplicationContext()) == true){ + + // presenter.drawOptionList(); + // presenter.decideLoadContent(STATE_KEY); //02 + + Log.d(TAG, "VIEW/"+getClass().getName()+"/onResume->DRAW" ); + + if(checkOptionListView() < 1){ + + int msgCode = 4; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + }else{ + int msgCode = 2; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + } + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/DetailsPresenter.java b/app/src/main/java/br/banco/services/fund/detail/DetailsPresenter.java new file mode 100644 index 00000000..bbbfe59a --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/DetailsPresenter.java @@ -0,0 +1,86 @@ +package br.banco.services.fund.detail; + + +import android.content.Context; +import android.os.Bundle; +import android.os.Parcel; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.domain.national.ScreenFund; + +public class DetailsPresenter implements IDetail.PresenterDT{ + + private IDetail.ModelDT model; + private IDetail.ViewDT views; + ReactAplication RX = new ReactAplication(); + // private ScreenFund screenFund; + + private ArrayList listScreen= new ArrayList<>(); + //Context context; + private int messageCode = 4; // Error + + public DetailsPresenter(){ + + model = new DetailModel(this); + // RX.onNext("model->" + (model != null)); + + } + + public void setView(IDetail.ViewDT views){ // IDetail.ViewDT views + this.views = views; + // RX.onNext("DetailsPresenter-> setView->" + (views!=null)); + } + + public Context getContext() { + // RX.onNext("DetailsPresenter-> context->" + (context!=null)); + return (Context) views; + } + + public void decideLoadContent(Bundle savedInstanceState){ //01 + model.processStart(model.getLocation(), getContext()); + } + + // @Override + public ArrayList getScreen() { + return listScreen; + } + + + public void loadConfigurations(List listScreen, String message) + { + RX.onNext("LITA ITENS " + listScreen.size()); + + if(listScreen != null) { + + RX.onNext("LITA ITENS " + listScreen.size()); + + //views.drawInterface(ScreenFund listFund); + }else{ + int messageCode = 1; + //views.onLoadError(int messageCode); + } + + } + + public void describeContents (){ + } + + public void writeToParcel (Parcel dest, int flags) { + + } + + public void loadAlert(int msgCode, Context context){ + + // msgCode = 3; + RX.onNext("PRESENTER / loadAlert->Error"); + msgCode = (msgCode >= 0 && msgCode <= 5 ) ? msgCode : 0; + views.updateAlertView(msgCode, context); + + } + + + +} diff --git a/app/src/main/java/br/banco/services/fund/detail/IDetail.java b/app/src/main/java/br/banco/services/fund/detail/IDetail.java new file mode 100644 index 00000000..54b385d2 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/detail/IDetail.java @@ -0,0 +1,58 @@ +package br.banco.services.fund.detail; + +import android.content.Context; +import android.os.Bundle; + +import java.util.ArrayList; +import java.util.List; + + +public interface IDetail { + + + interface PresenterDT{ + + void decideLoadContent(Bundle savedInstanceState); + void loadConfigurations(List listScreen, String message); + void loadAlert(int msgCode, Context context); + + //ArrayList getScreen(); + + } + + interface ModelDT{ + + // decide origem dos dados + + void setOrigin(int origin); + int getOrigin(); + + void setLocation(int location); + int getLocation(); + + void processStart(int location, Context c); + void processFinish(String location) ; + + ArrayList getContainer(); + ArrayList getConfigurations(); + + + } + interface ViewDT{ + + //data + + String KEY_AREA = "screen"; // screen + + //void onSuccess(int messageCode); + //void onErrorLoad(int messageCode); + void updateAlertView(int msgCode, Context c); + + + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/ClassConfiguration.java b/app/src/main/java/br/banco/services/fund/domain/ClassConfiguration.java new file mode 100644 index 00000000..c7c6a38e --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/ClassConfiguration.java @@ -0,0 +1,35 @@ +package br.banco.services.fund.domain; + + +public enum ClassConfiguration { + + SCREEN_CLASS("screen",10), + FUND_CLASS("fund",10), + MOREINFO_CLASS("moreInfo",3), + INFO_CLASS("info",2), + DONWNLOAD_CLASS("downInfo",2); + + ClassConfiguration(String name, int size) { + this.ClassName = name; + this.ClassSize = size; + } + + public String ClassName; + public int ClassSize; + + public String getClassName() { + return ClassName; + } + + public void setClassName(String className) { + ClassName = className; + } + + public int getClassSize() { + return ClassSize; + } + + public void setClassSize(int classSize) { + ClassSize = classSize; + } +} diff --git a/app/src/main/java/br/banco/services/fund/domain/Configclass.java b/app/src/main/java/br/banco/services/fund/domain/Configclass.java new file mode 100644 index 00000000..4ddd7eb2 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/Configclass.java @@ -0,0 +1,36 @@ +package br.banco.services.fund.domain; + +public enum Configclass { + + + SCREEN_CLASS("screen",10), + FUND_CLASS("fund",10), + MOREINFO_CLASS("moreInfo",3), + INFO_CLASS("info",2), + DONWNLOAD_CLASS("downInfo",2); + + public String Name; + public int Size; + + Configclass(String name, int size) { + this.Name = name; + this.Size = size; + } + + public String getName() { + return Name; + } + + public void setName(String name) { + Name = name; + } + + public int getSize() { + return Size; + } + + public void setSize(int size) { + Size = size; + } + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/EFundDataType.java b/app/src/main/java/br/banco/services/fund/domain/EFundDataType.java new file mode 100644 index 00000000..0ad0baf6 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/EFundDataType.java @@ -0,0 +1,27 @@ +package br.banco.services.fund.domain; + +import br.banco.services.fund.data.IFundData; +import br.banco.services.fund.data.remote.FromInternational; +import br.banco.services.fund.data.remote.FromNational; + + +public enum EFundDataType { + + NATIONAL { + @Override + public IFundData returnMessage() { + return new FromNational(); + } + }, + INTERNATIONAL { + @Override + public IFundData returnMessage() { + return new FromInternational(); + } + } + + ; + + public abstract IFundData returnMessage(); + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/FundTemplate.java b/app/src/main/java/br/banco/services/fund/domain/FundTemplate.java new file mode 100644 index 00000000..9d3c56eb --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/FundTemplate.java @@ -0,0 +1,261 @@ +package br.banco.services.fund.domain; + +import android.util.Log; + +import java.util.ArrayList; + +import br.banco.services.fund.FundModelTemplate; + +public class FundTemplate { + private String title; + private String genre; + private String year; + + + // private String Title; + + private String FundName; + private String WhatIs; + private String Definition; + private String RiskTitle; + private int Risk; + private String InfoTitle; + + /*--------*/ + + private ArrayList MoreInfo; + private ArrayList Info; + private ArrayList DownInfo; + + + public FundTemplate() { + + // this.title = title; + // this.genre = genre; + //this.year = year; + } + + // strings + + public String getFundName() { + return FundName; + } + + public void setFundName(String fundName) { + FundName = fundName; + } + + public String getWhatIs() { + return WhatIs; + } + + public void setWhatIs(String whatIs) { + WhatIs = whatIs; + } + + public String getDefinition() { + return Definition; + } + + public void setDefinition(String definition) { + Definition = definition; + } + + public String getRiskTitle() { + return RiskTitle; + } + + public void setRiskTitle(String riskTitle) { + RiskTitle = riskTitle; + } + + public int getRisk() { + return Risk; + } + + public void setRisk(int risk) { + Risk = risk; + } + + public String getInfoTitle() { + return InfoTitle; + } + + public void setInfoTitle(String infoTitle) { + InfoTitle = infoTitle; + } + + //Arrays + + + public ArrayList getMoreInfo() { + return MoreInfo; + } + + public void setMoreInfo(ArrayList moreInfo) { + MoreInfo = moreInfo; + } + + public ArrayList getInfo() { + return Info; + } + + public void setInfo(ArrayList info) { + Info = info; + } + + public ArrayList getDownInfo() { + return DownInfo; + } + + public void setDownInfo(ArrayList downInfo) { + DownInfo = downInfo; + } + + + /*------------------*/ + + public String getTitle() { + return title; + } + + public void setTitle(String name) { + this.title = name; + } + + + + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + + + + public String[][][] getFUNDlist (int fundID, FundModelTemplate model){ + + // DataBaseTemplate model = new DataBaseTemplate(); + // 0 = fund , 1 = label, 2 = data + + String[][][] listGet = model.listMoreInfoTemplate; + String listSet[][][] = new String[][][] + { + { + { listGet[fundID][0][0],listGet[fundID][0][1] }, + { listGet[fundID][1][0],listGet[fundID][1][1] }, + { listGet[fundID][2][0],listGet[fundID][2][1] } + } + }; + + return listSet; + } + + + + + + + + + + // tests + + public void showArray(String TAG, String FUNCTION, ArrayList listValues){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if(listValues.size() == 9 || TAG != null) { + + Log.i(TAG, "Title = " + listValues.get(0)); + Log.i(TAG, "FundName = " + listValues.get(1)); + Log.i(TAG, "WhatIs = " + listValues.get(2)); + Log.i(TAG, "Definition = " + listValues.get(3)); + Log.i(TAG, "RiskTitle = " + listValues.get(4)); + Log.i(TAG, "Risk = " + listValues.get(5)); + Log.i(TAG, "InfoTitle = " + listValues.get(6)); + + Log.i(TAG, "moreInfo = " + listValues.get(6)); + Log.i(TAG, "info = " + listValues.get(7)); + Log.i(TAG, "downInfo = " + listValues.get(8)); + + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " lista incompleta!" ); + } + } + + + + public void showClass(String TAG, String FUNCTION, FundTemplate fund){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if( fund!=null && TAG != null) { + + Log.d(TAG, " fund.getTitle() = " + fund.getTitle()); + Log.d(TAG, " fund.getFundName() = " + fund.getFundName()); + Log.d(TAG, " fund.getWhatIs() = " + fund.getWhatIs()); + Log.d(TAG, " fund.getDefinition() = " + fund.getDefinition()); + Log.d(TAG, " fund.getRiskTitle() = " + fund.getRiskTitle()); + Log.d(TAG, " fund.getRisk() = " + fund.getRisk()); + Log.d(TAG, " fund.getInfoTitle() = " + fund.getInfoTitle()); + + Log.d(TAG, " fund.getMoreInfo() = " + fund.getMoreInfo()); + Log.d(TAG, " fund.getInfo() = " + fund.getInfo()); + Log.d(TAG, " fund.getDownInfo() = " + fund.getDownInfo()); + + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " objeto nulo!" ); + } + } + + + + + + public void showListDetail(int fundID){ + + FundModelTemplate model = new FundModelTemplate(); + String[][][] list = model.listMoreInfoTemplate; + String listCopy[][][] = new String[][][] + { + { + { list[fundID][0][0], list[fundID][0][1] }, + { list[fundID][0][0],list[fundID][1][1] }, + { list[fundID][0][0],list[fundID][2][1] } + } + }; + + if(listCopy.length > 0) { + + Log.d("FUND", "FUNDO DETALHE / showListMOREINFOdetail => [" + fundID + "] "); + + Log.d("FUND", "NOME = " + listCopy[0][0][0] + " : " + listCopy[0][0][1] ); + Log.d("FUND", "MES = " + listCopy[0][1][0] + " : " + listCopy[0][1][1] ); + Log.d("FUND", "12MESES = " + listCopy[0][2][0] + " : " + listCopy[0][2][1] ); + Log.d("FUND", " ----------------------------------------- "); + + }else{ + + Log.d("FUND","showListMOREINFOdetail -> listMoreInfoTemplate -> VAZIA "); + } + } + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Conteiner.java b/app/src/main/java/br/banco/services/fund/domain/national/Conteiner.java new file mode 100644 index 00000000..dab5bcab --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Conteiner.java @@ -0,0 +1,18 @@ +package br.banco.services.fund.domain.national; + + +public class Conteiner { + + private final Class type; + public String Value; + + public Conteiner (String Value, Class type) { + this.type = type; + this.Value = Value; + } + + public Class getType() { + return this.type; + } + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/DownInfo.java b/app/src/main/java/br/banco/services/fund/domain/national/DownInfo.java new file mode 100644 index 00000000..953a9b37 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/DownInfo.java @@ -0,0 +1,47 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class DownInfo { + + //JsonProperty("name") + private String name; + //JsonProperty("data") + private Object data; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("name") + public String getName() { + return name; + } + + //JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + //JsonProperty("data") + public Object getData() { + return data; + } + + //JsonProperty("data") + public void setData(Object data) { + this.data = data; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Fund.java b/app/src/main/java/br/banco/services/fund/domain/national/Fund.java new file mode 100644 index 00000000..522178f8 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Fund.java @@ -0,0 +1,158 @@ +package br.banco.services.fund.domain.national; + +import java.util.ArrayList; + +import br.banco.services.fund.domain.FundTemplate; + +public class Fund { + + + + public static final int MOREINFO_TYPE = 0; + + private String Title; + private String FundName; + private String WhatIs; + private String Definition; + private String RiskTitle; + private int Risk; + private String InfoTitle; + + // Arrays + + private ArrayList MoreInfo; + private ArrayList Info; + private ArrayList DownInfo; + + public Fund() { + + } + + // String + + + public String getTitle() { + return Title; + } + + public void setTitle(String title) { + Title = title; + } + + public String getFundName() { + return FundName; + } + + public void setFundName(String fundName) { + FundName = fundName; + } + + public String getWhatIs() { + return WhatIs; + } + + public void setWhatIs(String whatIs) { + WhatIs = whatIs; + } + + public String getDefinition() { + return Definition; + } + + public void setDefinition(String definition) { + Definition = definition; + } + + public String getRiskTitle() { + return RiskTitle; + } + + public void setRiskTitle(String riskTitle) { + RiskTitle = riskTitle; + } + + public int getRisk() { + return Risk; + } + + public void setRisk(int risk) { + Risk = risk; + } + + public String getInfoTitle() { + return InfoTitle; + } + + public void setInfoTitle(String infoTitle) { + InfoTitle = infoTitle; + } + + //Arrays + + public ArrayList getMoreInfo() { + return MoreInfo; + } + + public void setMoreInfo(ArrayList moreInfo) { + MoreInfo = moreInfo; + } + + public ArrayList getInfo() { + return Info; + } + + public void setInfo(ArrayList info) { + Info = info; + } + + public ArrayList getDownInfo() { + return DownInfo; + } + + public void setDownInfo(ArrayList downInfo) { + DownInfo = downInfo; + } + + + // risk + + public String[][][] getRiskList (int risk, FundTemplate model){ + + String[][][] listGet ={}; + + /* + String listSet[][][] = new String[][][] + { + { + { listGet[risk][0][0],listGet[risk][0][1] }, + { listGet[risk][1][0],listGet[risk][1][1] }, + { listGet[risk][2][0],listGet[risk][2][1] } + } + }; +*/ + return listGet; + + } + + + public void setFundTemplate() { + + //FromType fund = new FromType(); + + this.Title = "@Fundos de investimento" ; + this.FundName = "@Vinci Valorem FI Multimercado" ;; + this.WhatIs = "@O que é?" ;; + this.Definition = "@O Fundo tem por objetivo proporcionar aos seus cotistas rentabilidade no longo prazo através de investimentos." ;; + this.RiskTitle = "@Grau de risco do investimento" ;; + this.Risk = 4 ; + this.InfoTitle = "@Mais informações sobre o investimento" ;; + // Arrays + + this.MoreInfo = null ; + this.Info = null ; + this.DownInfo = null ; + } + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/FundParcel.java b/app/src/main/java/br/banco/services/fund/domain/national/FundParcel.java new file mode 100644 index 00000000..1c67f9a8 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/FundParcel.java @@ -0,0 +1,35 @@ +package br.banco.services.fund.domain.national; + +import android.os.Parcelable; + +import java.util.ArrayList; + +public abstract class FundParcel implements Parcelable { + + + public static final int MOREINFO_TYPE = 0; + + private String Title; + private String FundName; + private String WhatIs; + private String Definition; + private String RiskTitle; + private int Risk; + private String InfoTitle; + + // Arrays + + private ArrayList MoreInfo; + private ArrayList Info; + private ArrayList DownInfo; + + public FundParcel() { + //setFundTemplate(); + } + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Info.java b/app/src/main/java/br/banco/services/fund/domain/national/Info.java new file mode 100644 index 00000000..773ec582 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Info.java @@ -0,0 +1,45 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class Info { + + //JsonProperty("name") + private String name; + //JsonProperty("data") + private String data; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("name") + public String getName() { + return name; + } + + //JsonProperty("name") + public void setName(String name) { + this.name = name; + } + + //JsonProperty("data") + public String getData() { + return data; + } + + //JsonProperty("data") + public void setData(String data) { + this.data = data; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Month.java b/app/src/main/java/br/banco/services/fund/domain/national/Month.java new file mode 100644 index 00000000..daba7aef --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Month.java @@ -0,0 +1,45 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class Month { + + //JsonProperty("fund") + private Double fund; + //JsonProperty("CDI") + private Double cDI; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("fund") + public Double getFund() { + return fund; + } + + //JsonProperty("fund") + public void setFund(Double fund) { + this.fund = fund; + } + + //JsonProperty("CDI") + public Double getCDI() { + return cDI; + } + + //JsonProperty("CDI") + public void setCDI(Double cDI) { + this.cDI = cDI; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/MonthSimulation.java b/app/src/main/java/br/banco/services/fund/domain/national/MonthSimulation.java new file mode 100644 index 00000000..b763345e --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/MonthSimulation.java @@ -0,0 +1,45 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class MonthSimulation { + + //JsonProperty("fund") + private Double fund; + //JsonProperty("CDI") + private Double cDI; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("fund") + public Double getFund() { + return fund; + } + + //JsonProperty("fund") + public void setFund(Double fund) { + this.fund = fund; + } + + //JsonProperty("CDI") + public Double getCDI() { + return cDI; + } + + //JsonProperty("CDI") + public void setCDI(Double cDI) { + this.cDI = cDI; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/MoreInfo.java b/app/src/main/java/br/banco/services/fund/domain/national/MoreInfo.java new file mode 100644 index 00000000..6098dcba --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/MoreInfo.java @@ -0,0 +1,59 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class MoreInfo { + + //JsonProperty("month") + private Month month; + //JsonProperty("year") + private Year year; + //JsonProperty("12months") + private br.banco.services.fund.domain.national.MonthSimulation MonthSimulation; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("month") + public Month getMonth() { + return month; + } + + //JsonProperty("month") + public void setMonth(Month month) { + this.month = month; + } + + //JsonProperty("year") + public Year getYear() { + return year; + } + + //JsonProperty("year") + public void setYear(Year year) { + this.year = year; + } + + //JsonProperty("12months") + public br.banco.services.fund.domain.national.MonthSimulation getSimulation() { + return MonthSimulation; + } + + //JsonProperty("12months") + public void setSimulation(br.banco.services.fund.domain.national.MonthSimulation MonthSimulation) { + this.MonthSimulation = MonthSimulation; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/NationalFund.java b/app/src/main/java/br/banco/services/fund/domain/national/NationalFund.java new file mode 100644 index 00000000..d5fa943b --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/NationalFund.java @@ -0,0 +1,108 @@ +package br.banco.services.fund.domain.national; + +public class NationalFund { + + // public String screen; + public String title; + public String fundName; + public String whatIs; + public String definition; + public String riskTitle; + public String risk; + public String infoTitle; + public String moreInfo; + public String info; + public String downInfo; + + /* + public String getScreen() { + return screen; + } + + public void setScreen(String screen) { + this.screen = screen; + } + */ + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getFundName() { + return fundName; + } + + public void setFundName(String fundName) { + this.fundName = fundName; + } + + public String getWhatIs() { + return whatIs; + } + + public void setWhatIs(String whatIs) { + this.whatIs = whatIs; + } + + public String getDefinition() { + return definition; + } + + public void setDefinition(String definition) { + this.definition = definition; + } + + public String getRiskTitle() { + return riskTitle; + } + + public void setRiskTitle(String riskTitle) { + this.riskTitle = riskTitle; + } + + public String getRisk() { + return risk; + } + + public void setRisk(String risk) { + this.risk = risk; + } + + public String getInfoTitle() { + return infoTitle; + } + + public void setInfoTitle(String infoTitle) { + this.infoTitle = infoTitle; + } + + public String getMoreInfo() { + return moreInfo; + } + + public void setMoreInfo(String moreInfo) { + this.moreInfo = moreInfo; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public String getDownInfo() { + return downInfo; + } + + public void setDownInfo(String downInfo) { + this.downInfo = downInfo; + } + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Screen.java b/app/src/main/java/br/banco/services/fund/domain/national/Screen.java new file mode 100644 index 00000000..b223dfe7 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Screen.java @@ -0,0 +1,21 @@ +package br.banco.services.fund.domain.national; + + +public class Screen { + + public int id; + public String title; + public String fundName; + public String whatIs; + + public String definition; + public String riskTitle; + public String risk; + + public String infoTitle; + public String moreInfo; + public String info; + + public String downInfo; + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/domain/national/ScreenFund.java b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFund.java new file mode 100644 index 00000000..2119fde8 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFund.java @@ -0,0 +1,54 @@ +package br.banco.services.fund.domain.national; + +public class ScreenFund { + + + int id; + String Header; + String Body; + String Footer; + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getHeader() { + return Header; + } + + public void setHeader(String header) { + Header = header; + } + + public String getBody() { + return Body; + } + + public void setBody(String body) { + Body = body; + } + + public String getFooter() { + return Footer; + } + + public void setFooter(String footer) { + Footer = footer; + } + + + //@Override + public int describeContents () { + return 0; + } + + //@Override + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundParcel.java b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundParcel.java new file mode 100644 index 00000000..07f2ce6e --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundParcel.java @@ -0,0 +1,83 @@ +package br.banco.services.fund.domain.national; + +import android.os.Parcel; +import android.os.Parcelable; + +public class ScreenFundParcel implements Parcelable { + + public static final String ID_KEY = "id"; + public static final String KEY_FAVORITE = "key-favorite"; + + int id; + String Header; + String Body; + String Footer; + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getHeader() { + return Header; + } + + public void setHeader(String header) { + Header = header; + } + + public String getBody() { + return Body; + } + + public void setBody(String body) { + Body = body; + } + + public String getFooter() { + return Footer; + } + + public void setFooter(String footer) { + Footer = footer; + } + + + //@Override + public int describeContents () { + return 0; + } + + //@Override + public void writeToParcel (Parcel dest, int flags) { + + dest.writeLong (id); + dest.writeString (Header); + dest.writeString (Body); + dest.writeString (Footer); + } + + public ScreenFundParcel(Parcel in) { + + this.id = in.readInt(); + this.Header = in.readString(); + this.Body = in.readString(); + this.Footer = in.readString(); + } + + public static final Creator CREATOR = new Creator () { + public ScreenFundParcel createFromParcel (Parcel source) { + return new ScreenFundParcel(source); + } + + @Override + public ScreenFundParcel[] newArray (int size) { + return new ScreenFundParcel[size]; + } + }; + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundTemplate.java b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundTemplate.java new file mode 100644 index 00000000..43b672d6 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/ScreenFundTemplate.java @@ -0,0 +1,238 @@ +package br.banco.services.fund.domain.national; + +import java.util.ArrayList; + +public class ScreenFundTemplate { + + public static final String ID_KEY = "id"; + public static final String KEY_FAVORITE = "key-favorite"; + + /** + * Definicoes de layout + * + */ + + public static final int HEADER_TYPE = 10; + public static final int BODY_TYPE = 11; + public static final int FOOTER_TYPE = 12; + + public static final int FUND_TYPE = 0; + public static final int MOREINFO_TYPE = 1; + public static final int INFO_TYPE = 2; + public static final int DOWNLOAD_TYPE = 3; + + + public int origin; + public int location; + + public int type; + public int data; + public String text; + + // ---------------- LAYOUT / TELA ----------------------- + + public String Title; + public String Subtitle; + + public String Session; + public String Description; + + public String ChartTitle; + public ArrayList Chart; + + public String AdressLink; + public String AdressLabel; + + public String TableTitle; + public String TableValue; + + + public String getTitle() { + return Title; + } + + public void setTitle(String title) { + Title = title; + } + + public String getSubtitle() { + return Subtitle; + } + + public void setSubtitle(String subtitle) { + Subtitle = subtitle; + } + + public String getSession() { + return Session; + } + + public void setSession(String session) { + Session = session; + } + + public String getDescription() { + return Description; + } + + public void setDescription(String description) { + Description = description; + } + + public String getChartTitle() { + return ChartTitle; + } + + public void setChartTitle(String chartTitle) { + ChartTitle = chartTitle; + } + + public ArrayList getChart() { + + // Chart.add("03%"); + // Chart.add("12%"); + // Chart.add("17%"); + + return Chart; + } + + public void setChart(ArrayList chart) { + + // chart.add("03%"); + // chart.add("12%"); + // chart.add("17%"); + + Chart = chart; + } + + public String getAdressLink() { + return AdressLink; + } + + public void setAdressLink(String adressLink) { + AdressLink = adressLink; + } + + public String getAdressLabel() { + return AdressLabel; + } + + public void setAdressLabel(String adressLabel) { + AdressLabel = adressLabel; + } + + public String getTableTitle() { + return TableTitle; + } + + public void setTableTitle(String tableTitle) { + TableTitle = tableTitle; + } + + public String getTableValue() { + return TableValue; + } + + public void setTableValue(String tableValue) { + TableValue = tableValue; + } + + public ScreenFundTemplate(Object object){ + + + + } + + + + /** + * Definicoes de dados IMAGEM, TEXTO, ETC + * + */ + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getData() { + return data; + } + + public void setData(int data) { + this.data = data; + } + + public String getText() { + return text; + } + + public void setText(String text) { + this.text = text; + } + + + + + /** + * Definicoes de layout - CAMPOS + * + */ + + + int id; + String Header; + String Body; + String Footer; + + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getHeader() { + return Header; + } + + public void setHeader(String header) { + Header = header; + } + + public String getBody() { + return Body; + } + + public void setBody(String body) { + Body = body; + } + + public String getFooter() { + return Footer; + } + + public void setFooter(String footer) { + Footer = footer; + } + + + + + + + + + + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/domain/national/Year.java b/app/src/main/java/br/banco/services/fund/domain/national/Year.java new file mode 100644 index 00000000..8a395531 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/domain/national/Year.java @@ -0,0 +1,45 @@ +package br.banco.services.fund.domain.national; + +import java.util.HashMap; +import java.util.Map; + +public class Year { + + //JsonProperty("fund") + private Double fund; + //JsonProperty("CDI") + private Double cDI; + //JsonIgnore + private Map additionalProperties = new HashMap(); + + //JsonProperty("fund") + public Double getFund() { + return fund; + } + + //JsonProperty("fund") + public void setFund(Double fund) { + this.fund = fund; + } + + //JsonProperty("CDI") + public Double getCDI() { + return cDI; + } + + //JsonProperty("CDI") + public void setCDI(Double cDI) { + this.cDI = cDI; + } + + //JsonAnyGetter + public Map getAdditionalProperties() { + return this.additionalProperties; + } + + //JsonAnySetter + public void setAdditionalProperty(String name, Object value) { + this.additionalProperties.put(name, value); + } + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/interactor/CompareClass.java b/app/src/main/java/br/banco/services/fund/interactor/CompareClass.java new file mode 100644 index 00000000..76352a77 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/CompareClass.java @@ -0,0 +1,57 @@ +package br.banco.services.fund.interactor; + +import android.util.Log; + +import br.banco.services.fund.data.template.FromFund; + +import static br.banco.services.fund.domain.Configclass.SCREEN_CLASS; + +public class CompareClass { + + + public boolean compareClass(Class clas1, Class clas2 ){ + + boolean equals = false; + try { + + equals = (clas1.getClass().equals( clas1.getClass() )); + + }catch (Exception e){ + Log.e("FUND", " "+getClass().getName()+"->ERROR!-> " + e.getMessage()); + } + return (equals); + } + + + + public boolean compareClassAndData(FromFund fromFund){ + + // comparar se as config da classe sao iguais aos dados + fromFund = new FromFund(); + + boolean nameAll = false; + boolean sizeAll = false; + + try { + + String fundName = fromFund.LOAD_DATA_NAME; + String className = SCREEN_CLASS.Name; + + int fundSize = fromFund.LOAD_DATA_SIZE; + int classSize = SCREEN_CLASS.Size; + + //name = SCREEN_CLASS.Name == fromFund.LOAD_DATA_NAME; + nameAll = fundName.equals(className); + sizeAll = fundSize == classSize; + + // Log.d("FUND", "VIEW / nameAll -> " + className+ "=" + fundName); + // Log.d("FUND", "VIEW / sizeAll -> " + classSize+ "=" + fundSize); + + }catch (Exception e){ + Log.e("FUND", " "+getClass().getName()+"->ERROR!-> " + e.getMessage()); + } + + return (nameAll && sizeAll) ; + } + +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertGson.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertGson.java new file mode 100644 index 00000000..4267a0f4 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertGson.java @@ -0,0 +1,64 @@ +package br.banco.services.fund.interactor; + +import android.content.Context; +import android.os.AsyncTask; +import android.util.Log; + +import com.google.gson.Gson; +import com.google.gson.JsonSyntaxException; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.fund.domain.national.NationalFund; + +public class ConvertGson { + + public ILoadTask delegate = null; + public List nacional = new ArrayList(); + + public ConvertGson(Context context) { + // do here + } + + public class ConvertOrigin extends AsyncTask { + + + protected void onPreExecute() { + + Log.d("FUND", "onPreExecute -> START " ); + } + + @Override + protected NationalFund doInBackground(String... strings) { + + String dataReceived = "" + strings[0]; + try { + + String jsDados = dataReceived; + Gson GS = new Gson(); + + return GS.fromJson(jsDados, NationalFund.class); // fromJson - toJson + + } catch (JsonSyntaxException e) { + Log.d("FUND", "doInBackground -> ERRO " ); + e.printStackTrace(); + return null; + } + + } + + @Override + protected void onPostExecute(NationalFund response) { + + String message = "sucess"; + String content = "content here" ; // + response + + // delegate.convertFinish(content, message); + Log.d("FUND", "onPostExecute -> SUCESS -> " + response ); + + } + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonFormat.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonFormat.java new file mode 100644 index 00000000..bf951c66 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonFormat.java @@ -0,0 +1,18 @@ +package br.banco.services.fund.interactor; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.fund.domain.national.NationalFund; + +public class ConvertGsonFormat { + + private List nacional = new ArrayList(); + + public List listGsonFormat() { + return nacional; + } + + + +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonSimple.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonSimple.java new file mode 100644 index 00000000..e65a346f --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertGsonSimple.java @@ -0,0 +1,30 @@ +package br.banco.services.fund.interactor; + +import android.util.Log; + +import com.google.gson.Gson; + + +public class ConvertGsonSimple { + + //public List nacional = new ArrayList(); + public ConvertGsonSimple() { } + + public void convertGS(String dataOrigin) { + + + try{ + + String message = null; + Gson gson = new Gson(); + + + }catch (Exception e){ + Log.d("FUND", "" + e); + } + + + } + +} + diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertJson.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertJson.java new file mode 100644 index 00000000..e9efa8d9 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertJson.java @@ -0,0 +1,338 @@ +package br.banco.services.fund.interactor; + +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.domain.national.Screen; + + +public class ConvertJson { + + public Map dataToMap; + public JSONObject jsonObject; + public String stringClass; + public String arrayCompare; + public int integerTotal; + public Screen screen; + + public String messageTask; + ReactAplication RX; + + //private Throwable throwable; + // private static Method method; + + + public ArrayList arrayClass; + public ArrayList arrayJson; + public boolean compareArrays; + + public ConvertJson(){ + + this.RX = new ReactAplication(); + jsonObject = new JSONObject(); + dataToMap = new HashMap(); + stringClass = new String(); + arrayClass = new ArrayList<>(); + arrayJson = new ArrayList<>(); + compareArrays = false; + } + + + // BUSINESS //Class classFrom + public void onStartTask(String packageStr, String jsonStr){ + + try { + + Class classTo = Class.forName(packageStr); + String className = classTo.getSimpleName().toLowerCase(); + + jsonObject = stringToJson(jsonStr, className); + dataToMap = jsonToMap(jsonObject); + arrayClass = classToArray(jsonObject , classTo); + arrayJson = jsonToArray(jsonObject); + compareArrays = compareArrays(arrayClass, arrayJson); + + messageTask = className; + + RX.onNext(messageTask); + } catch (Exception e) { + onErrorTask(e, messageTask); + } + + + } + + public void onErrorTask(Throwable e, String message){ + + // Log.d("FUND", arrayClass.size() + " onErrorTask: " + message ); + + } + + public void onSucessTask(){ + // delegate + + + Log.d("FUND", arrayClass.size() + " onSucess: " + messageTask ); + } + + + + + + // CONVERTER --------------------- + + + + + + public JSONObject createJson(String strValue) { + + try{ + + JSONObject json = new JSONObject(strValue); + //json.put(strValue); + + RX.onNext("" + (json!=null)); + return json; + + } catch (Exception e) { + //onError(e); + + RX.onError(e); + return null; + } + + } + + public JSONObject createJsonTree(String K1, String V1, String K2, String V2) { + + JSONObject json = null; + + try { + + json = new JSONObject(); + json.put(K1, V1); + + JSONArray jsonSon = new JSONArray(); + jsonSon.put(K2); + jsonSon.put(V2); + + json.put("SON", jsonSon); + + RX.onNext(""+(json!=null)); + }catch (JSONException e){ + RX.onError(e); + } + + return json; + } + + // OK + public JSONObject stringToJson(String classString, String className) { + + try{ + + JSONObject json = new JSONObject(classString); + JSONObject jsonConvert = json.getJSONObject(className); + + RX.onNext("" + (jsonConvert!=null)); + return jsonConvert; + + } catch (Exception e) { + //onError(e); + + RX.onError(e); + return null; + } + + } + + // OK + public Map jsonToMap(JSONObject json){ + Map dataMap = new HashMap(); + try { + JSONObject mainObj = json; + for(int i = 0; i classToArray(JSONObject json, Class clas){ + + ArrayList arrayClass = null; + + try { + arrayClass = new ArrayList<>(); + Field[] fields = clas.getDeclaredFields(); + int fieldCount = fields.length; + for(Field f : fields){ + f.setAccessible(true); + if(!(f.getName().equals("id") || + f.getName().equals("$change") || + f.getName().equals("serialVersionUID"))){ + arrayClass.add(f.getName()); + } + // Log.d("FUND", f.getName() + " / " + f.getType() ); + } + // Log.d("FUND", arrayClass.size() + " / " + fieldCount ); + RX.onNext("size: " +(arrayClass.size() > 0)); + }catch ( Exception e){ + RX.onError(e); + } + return arrayClass; + } + + // OK + public ArrayList jsonToArray(JSONObject json){ + ArrayList dataArray = null; + try { + dataArray =new ArrayList(); + JSONObject mainObj = json; + for(int i = 0; i array1, ArrayList array2){ + boolean compare = false; + try { + Collections.sort(array1); + Collections.sort(array2); + compare = (array1.equals(array2)); + RX.onNext("bool:" + (compare)); + } catch (Exception e) { + // e.printStackTrace(); + RX.onError(e); + } + return (compare); + } + + + //UTILIZAR --------------------- + + + // -> AINDA EM TESTE + + public int getColumnFromClass(Class classActual) { + int count = 0; + + try{ + + Field[] fields = classActual.getDeclaredFields(); + String fieldName; + Class fieldType; + int fieldCount = fields.length; + + + for (Field field : fields) { + + if (!field.isAccessible()) field.setAccessible(true); + fieldName = field.getName(); + fieldType = field.getType(); + + if (fieldName.compareTo("") == 0) { + continue; + } + + if (count == fieldCount - 1) { + Log.d("FUND", field.getName() + " == " + fieldType); + } else { + + } + + count++; + + } + }catch (Exception e){ + RX.onError(e); + } + + return count; + } + + public static Map loadMap(JSONObject json) throws JSONException { + + Map retMap = new HashMap(); + + if(json != JSONObject.NULL) { + retMap = jsonToMap2(json); + } + return retMap; + } + + public static Map jsonToMap2(JSONObject object) throws JSONException { + Map map = new HashMap(); + + Iterator keysItr = object.keys(); + while(keysItr.hasNext()) { + String key = keysItr.next(); + Object value = object.get(key); + + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap2((JSONObject) value); + } + map.put(key, value); + } + return map; + } + + public static List jsonToList(JSONArray array) throws JSONException { + + List list = new ArrayList(); + + for(int i = 0; i < array.length(); i++) { + Object value = array.get(i); + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap2((JSONObject) value); + } + list.add(value); + } + + return list; + } + +} + diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonToArray.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonToArray.java new file mode 100644 index 00000000..1ce7edb6 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonToArray.java @@ -0,0 +1,451 @@ +package br.banco.services.fund.interactor; +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import br.banco.services.app.utils.ReactAplication; + +// screen=str, info=array, downInfo=array , moreInfo=str + +public class ConvertJsonToArray { + + public JSONObject objZero; + public JSONObject objOne ; + public JSONObject objTwo ; + public JSONObject objTree ; + + JSONArray arrayOne; + JSONArray arrayTwo; + + + + public ReactAplication RX; + public ConvertJsonToArray(){ + RX = new ReactAplication(); + + + + } + + //------------------ BUSCA OBJETOS ---------------- + + + // level 3 + public JSONObject searchLevelTree(String jsonString, + String clssString, + String fieldString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + + // Log.e("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("objZero.length():" + objZero.length()); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + // Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + if(key.equals(clssString+"")) { + + // objTwo = objOne.getJSONArray(key); + objTwo = objOne.getJSONObject(key); + // Log.v("FUND", "@objTwo: " +key + " @length:" + objTwo.length()); + + for (int i2 = 0; i2 < objTwo.length(); i2++) { + + String key2 = objTwo.names().getString(i2) +""; + String val2 = objTwo.get(objTwo.names().getString(i2)) + ""; + //Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + val2); + + if(key2.equals(fieldString+"")) { + + objTree = objTwo.getJSONObject(key2); + Log.v("FUND", "@objTree: " +key + " @length:" + objTree.length()); + + for (int i3 = 0; i3 < objTree.length(); i3++) { + + String key3 = objTree.names().getString(i3) +""; + String val3 = objTree.get(objTree.names().getString(i3)) + ""; + + Log.v("FUND", "@KEY: " +key3 + " @VALUE:" + val3); + + } + + } + + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + Log.e("FUND", e.getMessage()); + // RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + // level 1 + public JSONObject searchLevelOne(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + + // Log.e("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("objZero.length():" + objZero.length()); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + // Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + if(key.equals(clssString+"")) { + + // objTwo = objOne.getJSONArray(key); + objTwo = objOne.getJSONObject(key); + Log.v("FUND", "@objTwo: " +key + " @length:" + objTwo.length()); + + for (int i2 = 0; i2 < objTwo.length(); i2++) { + + String key2 = objTwo.names().getString(i2) +""; + String val2 = objTwo.get(objTwo.names().getString(i2)) + ""; + Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + val2); + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + Log.e("FUND", e.getMessage()); + // RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + // level 0 + public JSONObject searchLevelZero(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + boolean resultOne = false; + + try { + + objZero = new JSONObject(jsonString); + objOne = objZero.getJSONObject(clssString); + objOne = objZero.getJSONObject(clssString); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + if(resultOne) { + + RX.onNext(msgFlow); + + //Log.v("FUND", "" +mapKey + " = " + mapValue); + + for (int i = 0; i < objOne.names().length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + Log.v("FUND", "KEY:" +key + " VALUE:" + val); + + } + + RX.onNext("SUCESSO"); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + //------------------ BUSCA ARRAYS ---------------- + + + //level 2 + public JSONObject searchLevelOneArray(String jsonString, + String clssString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + JSONArray arraTwo; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + // Log.d("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("msgFlow:" + msgFlow); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + //Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + //RX.onNext("msgFlow:" + msgFlow); + if(key.equals(clssString+"")) { + + //objTwo = objOne.getJSONArray(key); + // objTwo = objOne.getJSONObject(key); + arrayOne = objOne.getJSONArray(key); + //Log.d("FUND", "@arrayOne: " +arrayOne + " @length:" + arrayOne.length() + ""); + + for (int i2 = 0; i2 < arrayOne.length(); i2++) { + + + // String key2 = objTwo.names().getString(i2) +""; + //String key2 = objTwo.names().getString(i2) +""; + + Log.d( "FUND", "OBJ = " + arrayOne.get(i2).toString()); + + // String val2 = objTwo.get(objOne.names().getString(i)) + ""; + + // Log.v("FUND", "@KEY: " +key2 + " @VALUE:" + key2); + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + + //level 3 + public JSONObject searchLevelTreeArray(String jsonString, + String clssString, + String fieldString, + int maxSize) { + + String levelZero = clssString; + String nameZero = null; + String nameOne = null; + + boolean resultOne = false; + boolean resultTwo = false; + JSONArray arraTwo; + + try { + + objZero = new JSONObject(jsonString); + nameZero = objZero.names().getString(0); + objOne = objZero.getJSONObject(nameZero); + // objTwo = objOne.getJSONArray(nameZero); + // Log.d("FUND","nameZero = " + nameZero); + + resultOne = (jsonString.length()>0 && jsonString.length()< maxSize); + // resultTwo = (jsonString.length()>0 && jsonString.length()< maxSize); + + String msgFlow = ("SEARCH:" +clssString +", " + + " RESULT:" + resultOne + "," + + " SIZE:"+jsonString.length()+"," + + " MAX SIZE:" + maxSize); + + // RX.onNext("msgFlow:" + msgFlow); + + if(resultOne) { + + for (int i = 0; i < objOne.length(); i++) { + + String key = objOne.names().getString(i) +""; + String val = objOne.get(objOne.names().getString(i)) + ""; + //Log.v("FUND", "@KEY: " +key + " @VALUE:" + val); + + //RX.onNext("msgFlow:" + msgFlow); + if(key.equals(clssString+"")) { + + //objTwo = objOne.getJSONArray(key); + // objTwo = objOne.getJSONObject(key); + arrayOne = objOne.getJSONArray(key); + //Log.d("FUND", "@arrayOne: " +arrayOne + " @length:" + arrayOne.length() + ""); + + for (int i2 = 0; i2 < arrayOne.length(); i2++) { + + // String key2 = objTwo.names().getString(i2) +""; + //String key2 = objTwo.names().getString(i2) +""; + + String key2 = arrayOne.get(i2).toString() +""; + Log.d( "FUND", "ARRAY = " + key2); + + if(key2.equals(fieldString+"")) { + + + // nameZero = arrayOne.getString(key2.toS); + + //objTwo = arrayOne.getJSONObject(key2); + // arrayTwo = arrayOne.getJSONArray(key2); + // JSONArray arrAtores = arrayTwo.getJSONObject(); + + //Log.d( "FUND", "objTwo = " + key2.length()); + + // for (int i3 = 0; i3< objTwo.length(); i3++) { + + // String key2 = objTwo.names().getString(i3) +""; + //String key2 = objTwo.names().getString(i3) +""; + + // Log.v("FUND", "@KEY: " + key2 + " @VALUE:" + key2); + // } + + } + + } + + //nameOne = objZero.names().getString(0); + } + + } + + // RX.onNext(msgFlow); + RX.onNext("resultOne:" + resultOne); + }else{ + RX.onNext("resultOne:" + resultOne); + } + + }catch(JSONException e){ + RX.onError(e); + }catch (Exception e){ + RX.onError(e); + } + + return objZero; + } + + + + + + + + + +} + diff --git a/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonTypes.java b/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonTypes.java new file mode 100644 index 00000000..25cffc07 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ConvertJsonTypes.java @@ -0,0 +1,261 @@ +package br.banco.services.fund.interactor; + +import android.util.Log; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +public class ConvertJsonTypes { + + + public Map dataToMap = new HashMap(); + + public void convertTo(String origin) { + + + + String className = "screen"; + // origin = "xxxx"; + + JSONObject jsonObject = convertStringJson( origin, className ); + // dataToMap = convertToMap(origin); + + // String TES = convertClassName(jsonObject, className); + + } + + + + // OK + + + // OK + public JSONObject convertStringJson(String origin, String className) { + + try{ + + if( origin.length() > 0 ) { + + Log.d("FUND", "convertStringJson -> SUCESS"); + + JSONObject json = new JSONObject(origin); + JSONObject parts = json.getJSONObject(className); + + return parts; + } + else { + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertStringJson -> ERROR - >" + e.toString()); + return null; + } + + } + + // OK + public String convertClassName(JSONObject json, String className){ + + String classFinal = "A"; + // String ClassConvert = className.substring(0, 1).toUpperCase() + className.substring(1); + + try { + JSONObject mainObj = json.getJSONObject("screen"); + + if (mainObj.length() == 10) { + + for(int i = 0; i SUCESS" + classFinal ); + + } else { + Log.d("FUND", "convertClassName -> ERROR" ); + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertClassName -> ERROR - >" + e.toString()); + return null; + } + + + + + + + /* + + try { + // Field[] fields = classeTry.getFields(); + //Object fieldType = field.getType(); + + + Screen screen = new Screen(); + Class classeTry = screen.getClass(); + + + + Field nameField = classeTry.getField("title"); + + Log.v("FUND", "convertClassName -> SUCESSO " + nameField); + + } catch(NoSuchFieldException e) { + Log.v("FUND", "convertClassName -> ERRO -> " +e.toString() + " "); + } + */ + + return classFinal; + } + + + public static Map loadMap(JSONObject json) throws JSONException { + + Map retMap = new HashMap(); + + if(json != JSONObject.NULL) { + retMap = jsonToMap(json); + } + return retMap; + } + + public Map convertToMap(String origin){ + + Map dataToMap = new HashMap(); + boolean error = false; + + try { + JSONObject json = new JSONObject(origin); + JSONObject mainObj = json.getJSONObject("screen"); + + if (mainObj.length() == 10) { + + for(int i = 0; i SUCESS" ); + + } else { + Log.d("FUND", "convertToMap -> ERROR < 10" ); + return null; + } + + } catch (Exception e) { + e.printStackTrace(); + Log.d("FUND", "convertToMap -> ERROR - >" + e.toString()); + return null; + } + return dataToMap; + } + + public String jsonMapToSring (HashMap mainObj){ + + String destiny = null; + + if (mainObj.size() == 10) { + + for(int i = 0; i < mainObj.size(); i++){ + + String mapKey = mainObj.get(i) +""; + String mapValue = mainObj.get(i) + ""; + + dataToMap.put(mapKey, mapValue); + + Log.v("FUND", "" +mapKey + " = " + mapValue); + } + Log.d("FUND", "convertToMap -> SUCESS" ); + + } else { + Log.d("FUND", "convertToMap -> ERROR < 10" ); + return null; + } + + return destiny; + } + + public static Map jsonToMap(JSONObject object) throws JSONException { + Map map = new HashMap(); + + Iterator keysItr = object.keys(); + while(keysItr.hasNext()) { + String key = keysItr.next(); + Object value = object.get(key); + + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap((JSONObject) value); + } + map.put(key, value); + } + return map; + } + + public static List jsonToList(JSONArray array) throws JSONException { + + List list = new ArrayList(); + + for(int i = 0; i < array.length(); i++) { + Object value = array.get(i); + if(value instanceof JSONArray) { + value = jsonToList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = jsonToMap((JSONObject) value); + } + list.add(value); + } + + return list; + } + + public String[] convertToArray(String start){ + String[] resultValue = {}; + + return resultValue; + } + + public ArrayList convertToString(String start){ + ArrayList resultValue = null ; + + return resultValue; + } + +} + + +/* +dataToMap.put("fundName", mainObj.getString("fundName")); +dataToMap.put("whatIs", mainObj.getString("whatIs")); +dataToMap.put("definition", mainObj.getString("definition")); +dataToMap.put("riskTitle", mainObj.getString("riskTitle")); +dataToMap.put("risk", mainObj.getString("risk")); +dataToMap.put("infoTitle", mainObj.getString("infoTitle")); +dataToMap.put("moreInfo", mainObj.getString("moreInfo")); +dataToMap.put("info", mainObj.getString("info")); +dataToMap.put("downInfo", mainObj.getString("downInfo")); +*/ + diff --git a/app/src/main/java/br/banco/services/fund/interactor/ILoadTask.java b/app/src/main/java/br/banco/services/fund/interactor/ILoadTask.java new file mode 100644 index 00000000..d25b90c5 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ILoadTask.java @@ -0,0 +1,12 @@ +package br.banco.services.fund.interactor; + +import java.util.List; + + +public interface ILoadTask { + + void processFinish(String output); // load + void convertFinish(List listScreen, String message); // object + + +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFile.java b/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFile.java new file mode 100644 index 00000000..2ef5a336 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFile.java @@ -0,0 +1,61 @@ +package br.banco.services.fund.interactor; + +import android.util.Log; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; + +public class LoadHttpFile { + + + public String loadExternalJson(String jsonURL) throws IOException { + + // Log.d("FUND","MODEL / "+getClass().getName()+" -> " + jsonURL); + + try{ + + URL url = new URL(jsonURL); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + + conn.setReadTimeout(10000); + conn.setConnectTimeout(15000); + conn.setRequestMethod("GET"); + conn.setDoInput(true); + conn.connect(); + + BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + StringBuilder SB = new StringBuilder(); + + while ((line = in.readLine()) != null) { + + // Log.d("FUND", "@@ loadJSON() " + line); + + SB.append(line); + + } + + //Log.d("FUND","MODEL / loadExternalJson -> SUCCESS" ); + + in.close(); + return SB.toString(); + + }catch (Exception ex){ + Log.d("FUND","MODEL / loadExternalJson -> ERROR" +ex.getMessage() ); + return null; + } + + + + } //loadExternalJson + + + +} + + + + diff --git a/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFileTask.java b/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFileTask.java new file mode 100644 index 00000000..3f4c97cf --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/LoadHttpFileTask.java @@ -0,0 +1,73 @@ + +package br.banco.services.fund.interactor; + +import android.content.Context; +import android.os.AsyncTask; +import android.util.Log; + +public class LoadHttpFileTask extends AsyncTask { + + public ILoadTask delegate = null; + + public LoadHttpFileTask(Context context) { + + // + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + + // Log.d("FUND","MODEL / "+getClass().getName()+" / doInBackground -> START "); + } + + @Override + protected String doInBackground(String... loadValues) { + + // Log.d("FUND","doInBackground -> " + loadValues[0] ); + + String teste = "0"; + String textValues = null; + String urlServer = loadValues[0]; // ValidatorURL + + // web, local + + + try { + + LoadHttpFile load = new LoadHttpFile(); + textValues = load.loadExternalJson(urlServer); + + // Log.d("FUND","MODEL / doInBackground -> SUCCESS" ); + + + } catch (Exception e) { + Log.d("FUND","MODEL / doInBackground -> ERROR: " + e.getMessage()); + e.printStackTrace(); + } + + return textValues; + + } + + protected void onProgressUpdate(String... progress) { + //Log.d("FUND", "MODEL / doInBackground -> " + progress[0]); + } + + @Override + protected void onPostExecute(String result) { + + // Log.d("FUND", "MODEL / onPostExecute -> result=" + result); + delegate.processFinish(result); + + } + + + + + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/LoadInternet.java b/app/src/main/java/br/banco/services/fund/interactor/LoadInternet.java new file mode 100644 index 00000000..5dc73194 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/LoadInternet.java @@ -0,0 +1,79 @@ +package br.banco.services.fund.interactor; + +import android.content.Context; +import android.os.AsyncTask; + +import br.banco.services.app.utils.ConnectionChek; +import br.banco.services.app.utils.ReactAplication; + +public class LoadInternet extends AsyncTask { + + public ILoadTask delegate = null; + public int ATTEMPTS = 0; + public String STATUS = "error"; + public Context context; + public ReactAplication RX = new ReactAplication(); + + public LoadInternet(Context c) { + this.ATTEMPTS = 3; + this.context = c; + + if(context == null){ + // delegate.processFinish(STATUS); + } + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + //this.cancel(true); + // RX.onNext("Conectando..." ); + } + + @Override + protected String doInBackground(String... loadValues) { + + String textValues = null; + String urlServer = loadValues[0]; // ValidatorURL + + try { + + // temnta 3 vezes + if(ConnectionChek.isNetworkAvailable(context) == true){ + // RX.onNext("Contectado com sucesso!"); + STATUS = "success"; + }else{ + // RX.onNext("Nao foi possivel conectar "); + + for(int count = 0; count < 3; count++){ + // Thread.sleep(3000); + //RX.onNext("Tentando novamente: " + count); + ATTEMPTS = count; + + if(ConnectionChek.isNetworkAvailable(context) == true){ + STATUS = "success"; + } + }//for + } + } catch (Exception e) { + RX.onError(e); + delegate.processFinish(STATUS); + e.printStackTrace(); + + } + + return STATUS; + } + + protected void onProgressUpdate(String... progress) { + // RX.onNext("onProgressUpdate=" + progress[0]); + } + + @Override + protected void onPostExecute(String result) { + //RX.onNext("onPostExecute=" + STATUS + "->result->"+result); + delegate.processFinish(result); + + } + +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/LoadJson.java b/app/src/main/java/br/banco/services/fund/interactor/LoadJson.java new file mode 100644 index 00000000..f9eb0164 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/LoadJson.java @@ -0,0 +1,104 @@ +package br.banco.services.fund.interactor; + +import android.os.Bundle; +import android.support.v7.app.AppCompatActivity; + +import org.json.JSONObject; + +import br.banco.services.R; +import br.banco.services.app.utils.JsonConvert; +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.data.template.FromScreen; + +//import org.json.JSONException; +//import org.json.JSONObject; + + +public class LoadJson extends AppCompatActivity { + + public ReactAplication RX = new ReactAplication(); + public JSONObject jsonObject; + private String TAG = "FUND"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.teste); + + Read(); + // Update(); + // Debug(); + // Test(); + + + } + + + public void Read(){ + + FromScreen fromScreen = new FromScreen(); + String jsonString = fromScreen.LOAD_DATA_DEVICE; + JsonConvert convert = new JsonConvert(); + + + // OK -------------------- converter para OBJETO + + //0 screen = OBJ + // convert.searchLevelZero(jsonString, "screen", 2000); //moreInfo + + + // -------------------- converter para OBJETO + + // 1 //downInfo = OBJ + // convert.searchLevelOne(jsonString, "moreInfo", 2000); // screen + + + // -------------------- converter para OBJETO + + // 3 //downInfo = OBJ + // convert.searchLevelTree(jsonString, "moreInfo", "month", 2000); // + + + // -------------------- converter para ARRAY + + + // 2 info, downInfo = Array + // convert.searchLevelOneArray(jsonString, "info", 2000); // moreInfo + // convert.searchLevelOneArray(jsonString, "downInfo", 2000); // moreInfo + + + // 3 //info = Array + convert.searchLevelTreeArray(jsonString, "info","name", 2000); + //convert.searchLevelTreeArray(jsonString, "downInfo","data", 2000); + + } + + public void Update(){ + + + + } + + + public void Debug(){ + + + + } + + + public void Test(){ + + + + } + + + + + + + +} + + diff --git a/app/src/main/java/br/banco/services/fund/interactor/LoadScreen.java b/app/src/main/java/br/banco/services/fund/interactor/LoadScreen.java new file mode 100644 index 00000000..e416447b --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/LoadScreen.java @@ -0,0 +1,178 @@ +package br.banco.services.fund.interactor; + +import android.content.Context; +import android.os.AsyncTask; +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.app.utils.ReactAplication; +import br.banco.services.fund.data.template.FromScreen; +import br.banco.services.fund.domain.national.ScreenFundTemplate; + +/** + +@rules: + + CLASS BASE: Fund + CLASSE RELATORIO: ScreenFundTemplate OU ScreenFund + DEPENDE DE: FromScreen; + + + @param: String Name = screen + @param: String Data = JSON ; + @param: String Type = Text; + @param: int Size = 10; + @param: int Chars = 1000; + @param: int Bytes = null; + + + */ + +public class LoadScreen extends AsyncTask { + + public ILoadTask delegate = null; + private String STATUS = "error"; + + public Context context; + + public FromScreen screenRule; + public ScreenFundTemplate screenTemplate; + public ReactAplication RX = new ReactAplication(); + + public List listaTemplate = new ArrayList(); + public List listaExport = new ArrayList(); + + public ArrayList listScreen = new ArrayList<>(); + public ArrayList listFund = new ArrayList<>(); + public ArrayList listMoreinfo = new ArrayList<>(); + public ArrayList listInfo = new ArrayList<>(); + public ArrayList listDownInfo = new ArrayList<>(); + + public int tScreen = 0; // < - carregar de pacote + public int tFund = 0; + public int tMoreingo = 0; + public int tInfo = 0; + public int tDownInfo = 0; + + private int SHARED_PREFERENCES = 1; + private String JSON_CARREGADO = null; + + + public LoadScreen(Context c) { + + this.screenRule = new FromScreen(); + // this.screenTemplate = new ScreenFundTemplate(Object); // + + this.SHARED_PREFERENCES = 1; + this.JSON_CARREGADO = screenRule.LOAD_DATA_DEVICE; + + this.context = c; + + + if(context == null){ + + // delegate.processFinish(STATUS); + // this.cancel(true); + + } + } + + @Override + protected void onPreExecute() { + super.onPreExecute(); + //this.cancel(true); + // RX.onNext("Conectando..." ); + + } + + @Override + protected String doInBackground(String... loadValues) { + + String textValues = null; + String urlServer = loadValues[0]; + + textValues = "[ DADOS JSON AQUI - OBJETO]"; + + try { + + if(SHARED_PREFERENCES == 1){ + + + + + Log.e("FUND",JSON_CARREGADO); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + STATUS = "success"; + }else{ + + RX.onNext("Nao foi possivel carregar preferencias "); + STATUS = "error"; + } + + } catch (Exception e) { + RX.onError(e); + delegate.convertFinish(null,STATUS); + e.printStackTrace(); + + } + + return textValues; + } + + protected void onProgressUpdate(String... progress) { + // RX.onNext("onProgressUpdate=" + progress[0]); + } + + @Override + protected void onPostExecute(String result) { + RX.onNext("onPostExecute->" + STATUS + " / result->"+result); + // delegate.convertFinish(listaExport , STATUS); + + } + +} + +/** +* +* Sequencia de carregamento: +* +* FUND, CONTACT: +* View> Presenter-> Model> Screen> Rules> dbase[Json / Share / dbase] +* Rules[...] lista = new ArrayList(); + lista.add ("bla"); + List subLista = new ArrayList(); + subLista.add ("ble"); + subLista.add ("bli"); + lista.add (subLista); + for (Object o : lista) { + if (o instanceof List) { + // este é o cast "inseguro". + for (String s: (List)o) + { + System.out.print(s + ","); + } + System.out.println (); + } else { + String s = (String) o; + System.out.println ("s=" + s); + } + } + + + + } +} diff --git a/app/src/main/java/br/banco/services/fund/interactor/ScreenListWriter.java b/app/src/main/java/br/banco/services/fund/interactor/ScreenListWriter.java new file mode 100644 index 00000000..8e2cb2e8 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/interactor/ScreenListWriter.java @@ -0,0 +1,35 @@ +package br.banco.services.fund.interactor; + +import java.util.ArrayList; +import java.util.List; + +public class ScreenListWriter { + + + public void readItens(){ + + + List lista = new ArrayList(); + lista.add ("bla"); + List subLista = new ArrayList(); + subLista.add ("ble"); + subLista.add ("bli"); + lista.add (subLista); + for (Object o : lista) { + if (o instanceof List) { + // este é o cast "inseguro". + for (String s: (List)o) + { + System.out.print(s + ","); + } + System.out.println (); + } else { + String s = (String) o; + System.out.println ("s=" + s); + } + } + + + + } +} diff --git a/app/src/main/java/br/banco/services/fund/option/FundOption.java b/app/src/main/java/br/banco/services/fund/option/FundOption.java new file mode 100644 index 00000000..73b26f40 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOption.java @@ -0,0 +1,207 @@ +package br.banco.services.fund.option; + +import android.util.Log; + +import java.util.ArrayList; + +public class FundOption { + + // SIMULACAO; + + private String genre; + private String year; + + + // SIMPLES; + + private String Title; + private String FundName; + private String WhatIs; + private String Definition; + private String RiskTitle; + private int Risk; + private String InfoTitle; + + // ARRAYS + + private ArrayList MoreInfo; + private ArrayList Info; + private ArrayList DownInfo; + + + public FundOption() { + + + } + + public FundOption(String title, String genre, String year) { + + this.Title = title; + this.genre = genre; + this.year = year; + } + + // strings + + public String getTitle() { + return Title; + } + + public void setTitle(String name) { + this.Title = name; + } + + + + public String getFundName() { + return FundName; + } + + public void setFundName(String fundName) { + FundName = fundName; + } + + public String getWhatIs() { + return WhatIs; + } + + public void setWhatIs(String whatIs) { + WhatIs = whatIs; + } + + public String getDefinition() { + return Definition; + } + + public void setDefinition(String definition) { + Definition = definition; + } + + public String getRiskTitle() { + return RiskTitle; + } + + public void setRiskTitle(String riskTitle) { + RiskTitle = riskTitle; + } + + public int getRisk() { + return Risk; + } + + public void setRisk(int risk) { + Risk = risk; + } + + public String getInfoTitle() { + return InfoTitle; + } + + public void setInfoTitle(String infoTitle) { + InfoTitle = infoTitle; + } + + //Arrays + + + public ArrayList getMoreInfo() { + return MoreInfo; + } + + public void setMoreInfo(ArrayList moreInfo) { + MoreInfo = moreInfo; + } + + public ArrayList getInfo() { + return Info; + } + + public void setInfo(ArrayList info) { + Info = info; + } + + public ArrayList getDownInfo() { + return DownInfo; + } + + public void setDownInfo(ArrayList downInfo) { + DownInfo = downInfo; + } + + + /*------------------*/ + + + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + + // tests + + public void showArray(String TAG, String FUNCTION, ArrayList listValues){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if(listValues.size() == 9 || TAG != null) { + + Log.i(TAG, "Title = " + listValues.get(0)); + Log.i(TAG, "FundName = " + listValues.get(1)); + Log.i(TAG, "WhatIs = " + listValues.get(2)); + Log.i(TAG, "Definition = " + listValues.get(3)); + Log.i(TAG, "RiskTitle = " + listValues.get(4)); + Log.i(TAG, "Risk = " + listValues.get(5)); + Log.i(TAG, "InfoTitle = " + listValues.get(6)); + + Log.i(TAG, "moreInfo = " + listValues.get(6)); + Log.i(TAG, "info = " + listValues.get(7)); + Log.i(TAG, "downInfo = " + listValues.get(8)); + + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " lista incompleta!" ); + } + } + + + + public void showClass(String TAG, String FUNCTION, FundOption fund){ + + Log.i(TAG, "@TAG: " + TAG + " / " + FUNCTION); + + if( fund!=null && TAG != null) { + + Log.d(TAG, " fund.getTitle() = " + fund.getTitle()); + Log.d(TAG, " fund.getFundName() = " + fund.getFundName()); + Log.d(TAG, " fund.getWhatIs() = " + fund.getWhatIs()); + Log.d(TAG, " fund.getDefinition() = " + fund.getDefinition()); + Log.d(TAG, " fund.getRiskTitle() = " + fund.getRiskTitle()); + Log.d(TAG, " fund.getRisk() = " + fund.getRisk()); + Log.d(TAG, " fund.getInfoTitle() = " + fund.getInfoTitle()); + + Log.d(TAG, " fund.getMoreInfo() = " + fund.getMoreInfo()); + Log.d(TAG, " fund.getInfo() = " + fund.getInfo()); + Log.d(TAG, " fund.getDownInfo() = " + fund.getDownInfo()); + + }else{ + Log.e(TAG, "Erro: @TAG: " + TAG + " / " + FUNCTION + " objeto nulo!" ); + } + } + + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/option/FundOptionAdapter.java b/app/src/main/java/br/banco/services/fund/option/FundOptionAdapter.java new file mode 100644 index 00000000..909511cb --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOptionAdapter.java @@ -0,0 +1,55 @@ +package br.banco.services.fund.option; + +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import java.util.List; + +import br.banco.services.R; + +public class FundOptionAdapter extends RecyclerView.Adapter { + + private List moviesList; + + public class MyViewHolder extends RecyclerView.ViewHolder { + public TextView title, year, genre; + + public MyViewHolder(View view) { + super(view); + title = (TextView) view.findViewById(R.id.title); + genre = (TextView) view.findViewById(R.id.genre); + year = (TextView) view.findViewById(R.id.year); + } + } + + + public FundOptionAdapter(List moviesList) { + this.moviesList = moviesList; + } + + @Override + public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.fund_list_row, parent, false); + + return new MyViewHolder(itemView); + } + + @Override + public void onBindViewHolder(MyViewHolder holder, int position) { + + FundOption fund = moviesList.get(position); + + holder.title.setText(fund.getTitle()); + holder.genre.setText(fund.getGenre()); + holder.year.setText(fund.getYear()); + } + + @Override + public int getItemCount() { + return moviesList.size(); + } +} diff --git a/app/src/main/java/br/banco/services/fund/option/FundOptionPresenter.java b/app/src/main/java/br/banco/services/fund/option/FundOptionPresenter.java new file mode 100644 index 00000000..427b1410 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOptionPresenter.java @@ -0,0 +1,59 @@ +package br.banco.services.fund.option; + +import android.content.Context; + +import br.banco.services.app.alert.Alert; +import br.banco.services.fund.FundModelTemplate; + +public class FundOptionPresenter { + + private String TAG = "FUND"; + + private FundModelTemplate template; + private IFundOption.ModelImpl modelImpl; + private IFundOption.ViewImpl viewImpl; + private Alert alert; + + + FundOptionPresenter(IFundOption.ViewImpl views) { + + template = new FundModelTemplate(); + this.viewImpl = views; + this.alert = new Alert(); + + } + + //@Override + public Context getContext() { + return (Context) viewImpl; + } + + + public void drawOptionList(){ + + String[][][] list; + list = template.getListMoreInfoTemplate(); + + if(list != null) { + + //viewImpl.drawOptionListView(); + viewImpl.updateOptionListView(template); + + }else{ + + } + + } + + + public void loadAlert(int msgCode, Context context){ + + msgCode = (msgCode >= 0 && msgCode <= 5 ) ? msgCode : 0; + viewImpl.updateAlertView(msgCode, context); + + } + + + + +} diff --git a/app/src/main/java/br/banco/services/fund/option/FundOptionTouchListener.java b/app/src/main/java/br/banco/services/fund/option/FundOptionTouchListener.java new file mode 100644 index 00000000..29fe6b1c --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOptionTouchListener.java @@ -0,0 +1,57 @@ +package br.banco.services.fund.option; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.GestureDetector; +import android.view.MotionEvent; +import android.view.View; + +public class FundOptionTouchListener implements RecyclerView.OnItemTouchListener { + + private GestureDetector gestureDetector; + private ClickListener clickListener; + + public FundOptionTouchListener(Context context, final RecyclerView recyclerView, final ClickListener clickListener) { + this.clickListener = clickListener; + gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() { + @Override + public boolean onSingleTapUp(MotionEvent e) { + return true; + } + + @Override + public void onLongPress(MotionEvent e) { + + View child = recyclerView.findChildViewUnder(e.getX(), e.getY()); + if (child != null && clickListener != null) { + clickListener.onLongClick(child, recyclerView.getChildPosition(child)); + } + } + }); + } + + @Override + public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { + + View child = rv.findChildViewUnder(e.getX(), e.getY()); + if (child != null && clickListener != null && gestureDetector.onTouchEvent(e)) { + clickListener.onClick(child, rv.getChildPosition(child)); + } + return false; + } + + @Override + public void onTouchEvent(RecyclerView rv, MotionEvent e) { + } + + @Override + public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { + + } + + public interface ClickListener { + void onClick(View view, int position); + + void onLongClick(View view, int position); + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/option/FundOptionView.java b/app/src/main/java/br/banco/services/fund/option/FundOptionView.java new file mode 100644 index 00000000..446e10ab --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOptionView.java @@ -0,0 +1,293 @@ +package br.banco.services.fund.option; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.DefaultItemAnimator; +import android.support.v7.widget.DividerItemDecoration; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.widget.Button; + +import java.util.ArrayList; +import java.util.List; + +import br.banco.services.R; +import br.banco.services.app.utils.ConnectionChek; +import br.banco.services.contact.ContactView; +import br.banco.services.fund.FundModelTemplate; + +public class FundOptionView extends AppCompatActivity implements + IFundOption.ViewImpl, + View.OnClickListener { + + private final String TAG ="FUND"; + private FundOptionPresenter presenter; + private int messageCode = 4; // Error + + private List fundList = new ArrayList<>(); + private RecyclerView recyclerView; + private FundOptionAdapter mAdapter; + private FundModelTemplate template2; + + private ConnectionChek internet; + //private ProgressBar progressBar; + + //private static IFundDetailption.ViewImpl viewImpl; + private static IFundOption.PresenterImpl presenterImpl; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_fund_list2); + + drawOptionListView(); + drawNavigation(); + presenter = new FundOptionPresenter (this); + + // Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + // setSupportActionBar(toolbar); + + + if(checkInternet()){ + presenter.drawOptionList(); + + }else{ + int msgCode = 2; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + + } + + @Override + public void onResume() { + super.onResume(); + + if(checkOptionListView() < 1){ + + Log.d(TAG, "VIEW / "+getClass().getName()+" / onResume -> checkOptionListView = 0" ); + + if(checkInternet()){ + + presenter.drawOptionList(); + Log.d(TAG, "VIEW / "+getClass().getName()+" / onResume -> drawOptionList" ); + + if(checkOptionListView() < 1){ + + int msgCode = 4; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + }else{ + int msgCode = 2; + presenter.loadAlert( msgCode, getApplicationContext()); + } + + } + } + + public boolean checkInternet(){ + + internet = new ConnectionChek(); + + if(internet.isNetworkAvailable(getApplicationContext()) == true){ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> SUCESS") ; + return true; + }else{ + Log.d(TAG, " VIEW / "+getClass().getName()+" / checkInternet -> ERROR") ; + return false; + } + + } + + public void drawOptionListView(){ + + + recyclerView = (RecyclerView) findViewById(R.id.recycler_view); + mAdapter = new FundOptionAdapter(fundList); + recyclerView.setHasFixedSize(true); + + // vertical / match_parent + RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); + + // horizontal // wrap_content + // RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext(), LinearLayoutManager.HORIZONTAL, false); + + recyclerView.setLayoutManager(mLayoutManager); + recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); + recyclerView.setItemAnimator(new DefaultItemAnimator()); + recyclerView.setAdapter(mAdapter); + + // click + recyclerView.addOnItemTouchListener(new FundOptionTouchListener(getApplicationContext(), + recyclerView, new FundOptionTouchListener.ClickListener() { + @Override + public void onClick(View view, int position) { + + FundOption fund = fundList.get(position); + Intent intent = new Intent(); + String FDFundoTitulo = fund.getTitle() ; + + + //br.banco.services.app.alert.AlertView.class + intent = new Intent(getApplicationContext(), + br.banco.services.fund.detail.DetailView.class ); + intent.putExtra("BD_FUNDO_TITULO", "" + FDFundoTitulo); + + + startActivity(intent); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + + // finish(); + + // Toast.makeText(getApplicationContext(), fund.getTitle() + " foi clicado!", Toast.LENGTH_SHORT).show(); + } + + @Override + public void onLongClick(View view, int position) { + + Intent intent2 = new Intent(); + + //br.banco.services.app.alert.AlertView.class + intent2 = new Intent(getApplicationContext(), + br.banco.services.contact.ContactView.class ); + //intent.putExtra("messageCode", messageCode); + startActivity(intent2); + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + + } + })); + + Log.d(TAG," / drawOptionListView -> SUCESS " ); + } + + public void updateOptionListView(FundModelTemplate template) { + + FundOption fund; + String[][][] list = null; + + list = template.getListMoreInfoTemplate(); + + if(list !=null && list.length > 0) { + + for (int count = 0; count < list.length; count++) { + + template.setNameLabel(count); + template.setMonthLabel(count); + template.setTimeLabel(count); + + template.setName(count); + template.setMonth(count); + template.setTime(count); + + fund = new FundOption( + "" + template.getName(), + "" + template.getMonthLabel() + ": " + template.getMonth(), + "" + template.getTimeLabel() + ": " + template.getTime()); + + fundList.add(fund); + + Log.d(TAG, "VIEW / updateOptionListView -> SUCESS "); + } + + + mAdapter.notifyDataSetChanged(); + + }else{ + + Log.d(TAG, "VIEW / "+getClass().getName()+" / updateOptionListView -> ERROR" ); + } + + + } + + public int checkOptionListView(){ + + int contItens = 0; + if (recyclerView.getAdapter() != null) { + contItens = recyclerView.getAdapter().getItemCount(); + } + return contItens; + } + + public void updateAlertView( int msgCode, Context context){ + + Handler handler; + messageCode = msgCode; + // delay + handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + Intent intent; + intent = new Intent(getApplicationContext(), + br.banco.services.app.alert.AlertView.class ); + intent.putExtra("messageCode", messageCode); + startActivity(intent); + + overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + // finish(); + + } + }, 100); + + Log.d(TAG," / updateAlertView -> ERROR -> messageCode = " + messageCode); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if (keyCode == KeyEvent.KEYCODE_BACK) { + + //Toast.makeText(getApplicationContext(), "quer fechar ?" , Toast.LENGTH_LONG).show(); + finish(); + //overridePendingTransition(R.anim.an_sair, R.anim.an_entrar); + return false; + } + return super.onKeyDown(keyCode, event); + } + + @Override + public void onClick(View view) { + + Intent IT; + Context context = getApplicationContext(); + + Button BTAction1 = (Button) findViewById(R.id.btAction1); + Button BTAction2 = (Button) findViewById(R.id.btAction2); + BTAction1.setOnClickListener(this); + BTAction2.setOnClickListener(this); + + switch (view.getId()) { + + /* case R.id.btAction1: + IT = new Intent(this, br.banco.services.fund.option.FundOptionView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda,R.anim.an_sair_esquerda); + break; + */ + case R.id.btAction2: + IT = new Intent(this, br.banco.services.contact.ContactView.class); + startActivity(IT); + overridePendingTransition(R.anim.an_entrar_esquerda, R.anim.an_sair_esquerda); + break; + + } + + } + + public void drawNavigation(){ + Button BTAction1 = (Button) findViewById(R.id.btAction1); + Button BTAction2 = (Button) findViewById(R.id.btAction2); + BTAction1.setOnClickListener(this); + BTAction2.setOnClickListener(this); + } + +} diff --git a/app/src/main/java/br/banco/services/fund/option/FundOptionViewTemplate.java b/app/src/main/java/br/banco/services/fund/option/FundOptionViewTemplate.java new file mode 100644 index 00000000..eb85443d --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/FundOptionViewTemplate.java @@ -0,0 +1,109 @@ +package br.banco.services.fund.option; + +import android.content.Context; +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.util.TypedValue; +import android.view.View; + +public class FundOptionViewTemplate extends RecyclerView.ItemDecoration { + + private static final int[] ATTRS = new int[]{ + android.R.attr.listDivider + }; + + public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL; + + public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL; + + private Drawable mDivider; + private int mOrientation; + private Context context; + private int margin; + + public FundOptionViewTemplate(Context context, int orientation, int margin) { + this.context = context; + this.margin = margin; + final TypedArray a = context.obtainStyledAttributes(ATTRS); + mDivider = a.getDrawable(0); + a.recycle(); + setOrientation(orientation); + } + + public void setOrientation(int orientation) { + if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) { + throw new IllegalArgumentException("invalid orientation"); + } + mOrientation = orientation; + } + + @Override + public void onDrawOver(Canvas c, RecyclerView parent, RecyclerView.State state) { + if (mOrientation == VERTICAL_LIST) { + drawVertical(c, parent); + } else { + drawHorizontal(c, parent); + } + } + + public void drawVertical(Canvas c, RecyclerView parent) { + final int left = parent.getPaddingLeft(); + final int right = parent.getWidth() - parent.getPaddingRight(); + + final int childCount = parent.getChildCount(); + + for (int i = 0; i < childCount; i++) { + + final View child = parent.getChildAt(i); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child + .getLayoutParams(); + final int top = child.getBottom() + params.bottomMargin; + final int bottom = top + mDivider.getIntrinsicHeight(); + mDivider.setBounds(left + dpToPx(margin), top, right - dpToPx(margin), bottom); + mDivider.draw(c); + + } + + } + + public void drawHorizontal(Canvas c, RecyclerView parent) { + + final int top = parent.getPaddingTop(); + final int bottom = parent.getHeight() - parent.getPaddingBottom(); + + final int childCount = parent.getChildCount(); + + for (int i = 0; i < childCount; i++) { + + final View child = parent.getChildAt(i); + final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child + .getLayoutParams(); + + final int left = child.getRight() + params.rightMargin; + final int right = left + mDivider.getIntrinsicHeight(); + + mDivider.setBounds(left, top + dpToPx(margin), right, bottom - dpToPx(margin)); + mDivider.draw(c); + } + + } + + @Override + public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { + if (mOrientation == VERTICAL_LIST) { + outRect.set(0, 0, 0, mDivider.getIntrinsicHeight()); + } else { + outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0); + } + } + + private int dpToPx(int dp) { + Resources r = context.getResources(); + return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics())); + } +} \ No newline at end of file diff --git a/app/src/main/java/br/banco/services/fund/option/IFundOption.java b/app/src/main/java/br/banco/services/fund/option/IFundOption.java new file mode 100644 index 00000000..9c4a5449 --- /dev/null +++ b/app/src/main/java/br/banco/services/fund/option/IFundOption.java @@ -0,0 +1,33 @@ +package br.banco.services.fund.option; + +import android.content.Context; + +import br.banco.services.fund.FundModelTemplate; + +public interface IFundOption { + + + interface PresenterImpl{ + + void loadAlert(int msgCode, Context context); + // void checkOptionList(); + //void checkOptionList(); + } + interface ModelImpl{ + + // void saveOptionListModel(); + //void loadOptionListModel(); + } + interface ViewImpl{ + + boolean checkInternet(); + void drawOptionListView(); + void updateOptionListView(FundModelTemplate fund); + + void updateAlertView(int msgCode, Context context); + } + + + + +} diff --git a/app/src/main/java/br/banco/services/splash/Splash.java b/app/src/main/java/br/banco/services/splash/Splash.java new file mode 100644 index 00000000..44049ac8 --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/Splash.java @@ -0,0 +1,55 @@ +package br.banco.services.splash; + + +public class Splash { + + + public String Area; + public String Title; + public String Message; + public String Text; + public String Style; + public String Teste; + + public String getArea() { + return Area; + } + + public void setArea(String area) { + Area = area; + } + + public String getTitle() { + return Title; + } + + public void setTitle(String title) { + Title = title; + } + + public String getMessage() { + return Message; + } + + public void setMessage(String message) { + Message = message; + } + + public String getText() { + return Text; + } + + public void setText(String text) { + Text = text; + } + + public String getStyle() { + return Style; + } + + public void setStyle(String style) { + Style = style; + } + + +} diff --git a/app/src/main/java/br/banco/services/splash/SplashModel.java b/app/src/main/java/br/banco/services/splash/SplashModel.java new file mode 100644 index 00000000..b343c96b --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/SplashModel.java @@ -0,0 +1,10 @@ +package br.banco.services.splash; + +// area, titulo, mensagem, botao texto, botao estilo + +public class SplashModel { + + + + +} diff --git a/app/src/main/java/br/banco/services/splash/SplashPresenter.java b/app/src/main/java/br/banco/services/splash/SplashPresenter.java new file mode 100644 index 00000000..bc8533db --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/SplashPresenter.java @@ -0,0 +1,38 @@ +package br.banco.services.splash; + +import android.content.Context; + +import br.banco.services.app.message.IMessage; +import br.banco.services.app.message.MessageType; + + +public class SplashPresenter { + + private Splash splash; + private View view; + + public SplashPresenter(View view) { + this.splash = new Splash(); + this.view = view; + } + + public void loadAlertView(int msgCode, Context context){ + + msgCode = (msgCode > 0 && msgCode < 5 ) ? msgCode : 0; + + MessageType type = MessageType.values()[msgCode]; + IMessage message = type.returnMessage(); + String[] alertValues = message.configDesign(context); + + view.updateSplashView(alertValues); + } + + + public interface View{ + + void drawSplashView(); + void updateSplashView(String alertValues[]); + + } + +} diff --git a/app/src/main/java/br/banco/services/splash/SplashView.java b/app/src/main/java/br/banco/services/splash/SplashView.java new file mode 100644 index 00000000..9022c3bc --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/SplashView.java @@ -0,0 +1,96 @@ + /* + + recebe + carrega + mostra = mensagem + @FAZER: onResume() checar conexao + abrir home + */ + +package br.banco.services.splash; + + import android.content.Intent; + import android.os.Bundle; + import android.os.Handler; + import android.support.v7.app.AppCompatActivity; + import android.util.Log; + import android.widget.TextView; + + import br.banco.services.R; + import br.banco.services.app.utils.ConnectionChek; + + public class SplashView extends AppCompatActivity implements SplashPresenter.View { + + private String TAG = "SPLASH"; + private SplashPresenter presenter; + + private int messageStart = 0; // Load + private int messageCode = 4; // Error + + private ConnectionChek internet; + private Handler handler; + + private Intent intent; + public TextView mTextView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + internet = new ConnectionChek(); + + if(internet.isNetworkAvailable(getApplicationContext()) == true){ + messageCode = 3; // Sucess + }else{ + messageCode = 4; // Error + } + + setContentView(R.layout.activity_splash); + + drawSplashView(); + mTextView = (TextView) findViewById(R.id.tvStartText); + + presenter = new SplashPresenter(this); + // Log.d(TAG, " onCreate // messageCode = " + messageCode) ; + + } + + @Override + public void onResume() { + super.onResume(); + presenter.loadAlertView(messageStart, getApplicationContext()); + Log.d(TAG, "VIEW / "+getClass().getName()+" / onResume -> ALERT " ); + + } + + @Override + public void updateSplashView(String[] alertValues) { + + mTextView.setText(alertValues[2] ); + + // delay + handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + //br.banco.services.app.alert.AlertView.class + intent = new Intent(getApplicationContext(), + br.banco.services.fund.option.FundOptionView.class ); + intent.putExtra("messageCode", messageCode); + startActivity(intent); + finish(); + + } + }, 3000); + + Log.d(TAG, "VIEW / "+getClass().getName()+" / updateSplashView -> AlertView / " + messageCode ); + + } + + @Override + public void drawSplashView(){ + + mTextView = (TextView) findViewById(R.id.DT_fd_fundName); + } + + + + + } diff --git a/app/src/main/java/br/banco/services/splash/task/LoadInfo.java b/app/src/main/java/br/banco/services/splash/task/LoadInfo.java new file mode 100644 index 00000000..baf7bceb --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/task/LoadInfo.java @@ -0,0 +1,57 @@ +package br.banco.services.splash.task; + // executar tarefa caso o app esteja diferente + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.TextView; + +import br.banco.services.R; + +public class LoadInfo extends Activity { + + public TextView textView; + LoadInfoTask asyncTask; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + textView = (TextView) findViewById(R.id.mTextView); + + textView.setOnClickListener(new OnClickListener() { + + @Override + public void onClick(View v) { + + } + }); + } + + LoadInfoTask.OnAsyncResult asynResult = new LoadInfoTask.OnAsyncResult() { + + @Override + public void onResultSuccess(final int resultCode, final String message) { + + runOnUiThread(new Runnable() { + public void run() { + textView.setText("Code : " + resultCode + "\nMessage : " + message); + } + }); + } + + @Override + public void onResultFail(final int resultCode, final String errorMessage) { + + runOnUiThread(new Runnable() { + public void run() { + textView.setText("Code : " + resultCode + "\nMessage : " + errorMessage); + } + }); + + } + }; + +} diff --git a/app/src/main/java/br/banco/services/splash/task/LoadInfoTask.java b/app/src/main/java/br/banco/services/splash/task/LoadInfoTask.java new file mode 100644 index 00000000..3fde2568 --- /dev/null +++ b/app/src/main/java/br/banco/services/splash/task/LoadInfoTask.java @@ -0,0 +1,85 @@ +package br.banco.services.splash.task; + + +import android.os.AsyncTask; +import android.os.Handler; +import android.util.Log; + +public class LoadInfoTask extends AsyncTask { + + public OnAsyncResult onAsyncResult; + + public void setOnResultListener(OnAsyncResult onAsyncResult) { + if (onAsyncResult != null) { + this.onAsyncResult = onAsyncResult; + + } + } + + @Override + protected Void doInBackground(Void... params) { + + + + if (onAsyncResult != null) { + + + if (2==2) { + onAsyncResult.onResultSuccess(0, "SUCESSO"); + } else { + onAsyncResult.onResultFail(1, "ERRO"); + } + } + + return null; + } + + protected void onPostExecute(Integer results) { + + try { + + + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + Log.d("FUND","SUCESSO"); + + } + }, 5000); + + } catch (Exception e) { + Log.d("FUND","ERRO"); + e.printStackTrace(); + } + + } + + + + + public interface OnAsyncResult { + + void onResultSuccess(int resultCode, String message); + + void onResultFail(int resultCode, String errorMessage); + } + +} + + +/* + + + Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + + + + } + }, 3000); + + */ \ No newline at end of file diff --git a/app/src/main/res/anim/an_descer.xml b/app/src/main/res/anim/an_descer.xml new file mode 100644 index 00000000..50848daf --- /dev/null +++ b/app/src/main/res/anim/an_descer.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_entrar.xml b/app/src/main/res/anim/an_entrar.xml new file mode 100644 index 00000000..1406e4c2 --- /dev/null +++ b/app/src/main/res/anim/an_entrar.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_entrar_esquerda.xml b/app/src/main/res/anim/an_entrar_esquerda.xml new file mode 100644 index 00000000..c357981e --- /dev/null +++ b/app/src/main/res/anim/an_entrar_esquerda.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_fade_in.xml b/app/src/main/res/anim/an_fade_in.xml new file mode 100644 index 00000000..a02b47c3 --- /dev/null +++ b/app/src/main/res/anim/an_fade_in.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_fade_out.xml b/app/src/main/res/anim/an_fade_out.xml new file mode 100644 index 00000000..4a91d2dc --- /dev/null +++ b/app/src/main/res/anim/an_fade_out.xml @@ -0,0 +1,15 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_feader.xml b/app/src/main/res/anim/an_feader.xml new file mode 100644 index 00000000..d36e5909 --- /dev/null +++ b/app/src/main/res/anim/an_feader.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_loading.xml b/app/src/main/res/anim/an_loading.xml new file mode 100644 index 00000000..2fd72282 --- /dev/null +++ b/app/src/main/res/anim/an_loading.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_sair.xml b/app/src/main/res/anim/an_sair.xml new file mode 100644 index 00000000..0cb64c7d --- /dev/null +++ b/app/src/main/res/anim/an_sair.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/anim/an_sair_esquerda.xml b/app/src/main/res/anim/an_sair_esquerda.xml new file mode 100644 index 00000000..432a978d --- /dev/null +++ b/app/src/main/res/anim/an_sair_esquerda.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 00000000..1f6bb290 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_button_dark.xml b/app/src/main/res/drawable-v24/shape_button_dark.xml new file mode 100644 index 00000000..fcecac86 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_button_dark.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_button_light.xml b/app/src/main/res/drawable-v24/shape_button_light.xml new file mode 100644 index 00000000..954d30c2 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_button_light.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_button_primary.xml b/app/src/main/res/drawable-v24/shape_button_primary.xml new file mode 100644 index 00000000..62e24714 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_button_primary.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_chart_bar_fund.xml b/app/src/main/res/drawable-v24/shape_chart_bar_fund.xml new file mode 100644 index 00000000..0406536a --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_chart_bar_fund.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_circle.xml b/app/src/main/res/drawable-v24/shape_circle.xml new file mode 100644 index 00000000..28a6c098 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_circle.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_circle_dark.xml b/app/src/main/res/drawable-v24/shape_circle_dark.xml new file mode 100644 index 00000000..094f130d --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_circle_dark.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_circle_default.xml b/app/src/main/res/drawable-v24/shape_circle_default.xml new file mode 100644 index 00000000..08bc1e3a --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_circle_default.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_circle_light.xml b/app/src/main/res/drawable-v24/shape_circle_light.xml new file mode 100644 index 00000000..7db3ec38 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_circle_light.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_selector.xml b/app/src/main/res/drawable-v24/shape_selector.xml new file mode 100644 index 00000000..75b8edb8 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_selector.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_selector_button.xml b/app/src/main/res/drawable-v24/shape_selector_button.xml new file mode 100644 index 00000000..1d58f4b9 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_selector_button.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_selector_button_circle.xml b/app/src/main/res/drawable-v24/shape_selector_button_circle.xml new file mode 100644 index 00000000..e6d3db16 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_selector_button_circle.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_selector_list.xml b/app/src/main/res/drawable-v24/shape_selector_list.xml new file mode 100644 index 00000000..b09fa296 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_selector_list.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable-v24/shape_square.xml b/app/src/main/res/drawable-v24/shape_square.xml new file mode 100644 index 00000000..a161cd60 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_square.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_square_dark.xml b/app/src/main/res/drawable-v24/shape_square_dark.xml new file mode 100644 index 00000000..7972bde4 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_square_dark.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_square_default.xml b/app/src/main/res/drawable-v24/shape_square_default.xml new file mode 100644 index 00000000..85d86955 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_square_default.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_square_light.xml b/app/src/main/res/drawable-v24/shape_square_light.xml new file mode 100644 index 00000000..e9b71e87 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_square_light.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-v24/shape_square_primary.xml b/app/src/main/res/drawable-v24/shape_square_primary.xml new file mode 100644 index 00000000..ae72c446 --- /dev/null +++ b/app/src/main/res/drawable-v24/shape_square_primary.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..0d025f9b --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..1f6bb290 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ico_arrow_down.png b/app/src/main/res/drawable/ico_arrow_down.png new file mode 100644 index 0000000000000000000000000000000000000000..c6816aa4207ef2a252aa5f11de2dc7b6f5770cbc GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx-l>?%6qyvhE&{2`t$$4J+mT1$l((wIMV(xb10~>DKP|?o{3RwU`RS-!qdyEm}q9e zz#^6$^j_3`@`N%DVrdYJwDJiA&hb0&p` z84uPxKR@rxT;tc5m-C-^c6VQC_Qyv@+0#VXG`VX-NQGnm8pTDDZ8P`c6WJMdFh_o&#x{W{j7Vo_xrnhZ5{uAf9F5Mz@gw) zalBf#z?LcKsga<$cu2Y=2GY&R_h`boL7v!4;@)&f^uBk`M2ARlXWsV`+U}f-h L^>bP0l+XkK2^pMn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ico_download.png b/app/src/main/res/drawable/ico_download.png new file mode 100644 index 0000000000000000000000000000000000000000..f16f38ba4f9c23f76c422109b420e69e76b0fc95 GIT binary patch literal 696 zcmV;p0!RIcP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ;E=fc|RCwA%$iWQ&FbKmy2fF{nK#KaQC4WxkPJ-X; zej*nfv=R;JC9VKsVrF3Y3s(0Zqz)p-#Q5(&Baq9;@*gPnp9v@qQVj+G0mS$pr1Bq7 z@;?(JBf=6UkV**uKad7Npf*MZCV&89`VTe@sG0$61q3{{xBGeJ5+hK>e+EXz|NnuG z0J#)o6+i&7FhV>4w1??G*tq}y7@7aS|H$z9Gf;>TWDb!02eJcfF+czTRsRDy3SdGyeN^^A-a*DE=}s{9$ARO8tCr zkKx~6uwR%UJ^~0Jh&whGTqpB|f=KaYrdprP@$y!?&;|Bv0f{(m2q2(wf5EE%Lv;T6 z^zn&}&20vT+g!X~_w9zNf=Yq_KmdVl0D1^4@b~{8ke)A}o_TqH-FFZw_3uBj4uAk+ z1Ze{Li-FAn>6%-td3;+Sd0!cZ{z*O`2 z+5ewEe>40AM)JRZ!0=@R#SSAV;{JX91`I<;i~$4?BhX4F21a + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_button_light.xml b/app/src/main/res/drawable/shape_button_light.xml new file mode 100644 index 00000000..954d30c2 --- /dev/null +++ b/app/src/main/res/drawable/shape_button_light.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_button_primary.xml b/app/src/main/res/drawable/shape_button_primary.xml new file mode 100644 index 00000000..62e24714 --- /dev/null +++ b/app/src/main/res/drawable/shape_button_primary.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_chart_bar_fund.xml b/app/src/main/res/drawable/shape_chart_bar_fund.xml new file mode 100644 index 00000000..0406536a --- /dev/null +++ b/app/src/main/res/drawable/shape_chart_bar_fund.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/shape_circle.xml b/app/src/main/res/drawable/shape_circle.xml new file mode 100644 index 00000000..28a6c098 --- /dev/null +++ b/app/src/main/res/drawable/shape_circle.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_circle_dark.xml b/app/src/main/res/drawable/shape_circle_dark.xml new file mode 100644 index 00000000..094f130d --- /dev/null +++ b/app/src/main/res/drawable/shape_circle_dark.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_circle_default.xml b/app/src/main/res/drawable/shape_circle_default.xml new file mode 100644 index 00000000..08bc1e3a --- /dev/null +++ b/app/src/main/res/drawable/shape_circle_default.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_circle_light.xml b/app/src/main/res/drawable/shape_circle_light.xml new file mode 100644 index 00000000..7db3ec38 --- /dev/null +++ b/app/src/main/res/drawable/shape_circle_light.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_selector.xml b/app/src/main/res/drawable/shape_selector.xml new file mode 100644 index 00000000..75b8edb8 --- /dev/null +++ b/app/src/main/res/drawable/shape_selector.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/shape_selector_button.xml b/app/src/main/res/drawable/shape_selector_button.xml new file mode 100644 index 00000000..1d58f4b9 --- /dev/null +++ b/app/src/main/res/drawable/shape_selector_button.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/shape_selector_button_circle.xml b/app/src/main/res/drawable/shape_selector_button_circle.xml new file mode 100644 index 00000000..e6d3db16 --- /dev/null +++ b/app/src/main/res/drawable/shape_selector_button_circle.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/shape_selector_list.xml b/app/src/main/res/drawable/shape_selector_list.xml new file mode 100644 index 00000000..b09fa296 --- /dev/null +++ b/app/src/main/res/drawable/shape_selector_list.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/app/src/main/res/drawable/shape_square.xml b/app/src/main/res/drawable/shape_square.xml new file mode 100644 index 00000000..a161cd60 --- /dev/null +++ b/app/src/main/res/drawable/shape_square.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_square_dark.xml b/app/src/main/res/drawable/shape_square_dark.xml new file mode 100644 index 00000000..7972bde4 --- /dev/null +++ b/app/src/main/res/drawable/shape_square_dark.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_square_default.xml b/app/src/main/res/drawable/shape_square_default.xml new file mode 100644 index 00000000..85d86955 --- /dev/null +++ b/app/src/main/res/drawable/shape_square_default.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_square_light.xml b/app/src/main/res/drawable/shape_square_light.xml new file mode 100644 index 00000000..e9b71e87 --- /dev/null +++ b/app/src/main/res/drawable/shape_square_light.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_square_primary.xml b/app/src/main/res/drawable/shape_square_primary.xml new file mode 100644 index 00000000..ae72c446 --- /dev/null +++ b/app/src/main/res/drawable/shape_square_primary.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/dblack.otf b/app/src/main/res/font/dblack.otf new file mode 100644 index 0000000000000000000000000000000000000000..2092a7bbdce0fafea9712edc7e9b13281adc205b GIT binary patch literal 88940 zcmce;2Ut``_b@(pckf=f3rkrSk@fB_s91regO#RYS5WK)=^g2UBKF=3sHmt|uwd`T zuF+T$lUSlA_Ee2An#{$Eum3Z5cVWrzec$ipU4Ml3wL@r%OYi7m zVH?(T&P7zm2!vX!8x-y3GfU>X93jep5SkE|5t}`F{M6?NIW9s-rc6$VjekD%>%XAv z284iQ05Ff`D!`XPzIAd&UQuD?%y*DqhLGZPMr={G-raxN`D3jIyXp{YK-g7e{%h#l2yqZ z2quycDEtTYWDcKHh?U)h@^D#|NXb|xekE@Z8jQ#nNhSW$S%^k5$!*C7fs=^$2YuFbR@eg-8!n!%=qvK|dG+ zm5Ji1pHZ;n8uFG*2I3=;hvW+KrsOD?N<@(myr~b!OVSBqJ-~KB><;lhpb9VuqagT0 z=m5b5f)50D2yPJCLg++wLxV|xG{GZv{3R}^tJEISi-FE!6e)>?^g@UyKo|;PF64JY z`#m5n`@~B&LmYx4rR^X-4WSImb4~Fgh=(9r(g$fJt58=mZ_))ow-~}$2s)&ts(=>s z8RB+OHy8q<-lNeHXQYt?qwds0=yNdYDDgt>FlMd98`9kXt|#Hs3o$(m1xwRVcQS_( zcPNK?qz=^WPVtDP(ohR13zk?z`!>*SCkU_ys9%7d9JQm;Q9OwybC8zIKg@ks>K(K@ z47HMMfjNf0ia0Xl0e$Nw4S>162JKWq{Z7yh%)JPEkA_n}n${!>=oUhFkIqRVp+6U4 ztYm%OqjD+`wW7WTyegRMB-Bbe4?+pF?*jCU^G@czNsz+n5!ZsOgGGRKpvYQKJw82v z@LIA1`fOeYvKE$stUJk*wXh6iEy$XYev*0rH$fVSG~!yoI*_$62UrKnv=-N4J$``s z_ib1QvKE#B=1R5$5(IjPEtfH4U*K&N=Ksat0uOO*{v%FC`(c7O)@xM?4(X zd<^VEvNmL&{xc@)Lgva8OOL~zngDq?Lu4PD;s8_JmYgfHxBp`dXHMMr=9sKEne+cu zY(AIdY>@M55mP5%ZOrYO=)%}vz@GLsg&2sBK*)x`Lx_UFK{!MGPS*C*E6N$hIpNb> z$<9ynU{2>s%05*}#(qjAF*OX*#(f_N`yoHTmiq4HV6JG)`v4f#z^*v64n;hLR>F{$ZtA|X8`zw#K}~Spgviz z5ac7`ku?U%WyYiaf;~poZ7{$g7WZfmh^tXEi2-=-H&90S&0`b@@}VP)@u3JOb)cNU zL|SB=zeArpK}>iqnP=m;ElRT!Vn`l0C_W?Cb5afQ@5a=@k@Xc|n*D!2n?%gkuncM$r+S@(pzc!ptJ%K&CRzXJ&_p#gF$5c=#Paf5#K zLG2|$KwA&zC3|<}khsF$1|A@F2ONJm zXXN}vK|3Cxdx&cyt|`$K#Is3o;7oZ-#=w3c>uV9jJ?@SM!rGR=I*KvO!RHVj!yvyp!m-dI)A6R}XbJLs$fLhD*vQIix3peCP}L23ZBLX^w;=mvQT0{PmYZl<&Z?j3zhX(@7oYlRU< zW`RSaHYm{qms`LYLX1qQ+ zD>1JyHYY*fJ7Z#GM4y3!bFw_b(qrS&q7stw(_?c2J^caA|(zAbzC^;`L zyR(;9VPT><|cS1=VhcD$0CjsF1H5w`6E3FMd@fF zNCV`bTG<-Upl0+Q9hKXqZE{jk^wIsU=z_~`1V54u=Pot1$FYETo1Uw z)FF-rSR%j*fnE;O(xcue1L{Sh2&gj<=;r{22MPnqu_z9up(wygg8C$%g94E!@_a%utA63M^{f=~ep z0ozLeq-;?srJ~wW9Vu@rkm^oFQUj<2DwisyR!B6GK*{Hl@1+Z*i=>;Sx1?XmY-EFE zV`SrH%k^r#i(adD)4S^p`p)_Y{T^2*S2tI8*Ojho-6U>uH#;{+Hy1apTWhzrZXMks z-6pstxLt1Zg&_I#30fuX>QNQtM0KD%DL*Qh3Z?o}gQ--i2-F}q6pK3qt`c(eO@n85~DgPSz@zBSE9}j%o|8d{PX&*~JPW?FLWB;eu zpI&=<_37tNFFif=^w85?Ps5))c=F|w8&Be%#6GTj{P*MEAHRP5)8iM9A3y&7@q@=_ z9`ATu{kZ3&P)1>r0^*SWpMK;L!u3h>WZf&H$NCA@6 z7AZki+9L<#h*YQ6>UM) zXgk`5cAy%x8|^}S&|b6;)uR3A06K(@pu^}WI*yKkR&WY^1~=`WfE5u&lmhyE5!ws~ zK8<<{Cn#0Ipm}H=+-PzoRuXHJM5R*#^)Kopl`Wy+cut{4qMhg@nhp#gQ$kVgC331K z9NekYufULJpxI!#l2J7E1NE4CLA|7&QqRx{i2|Lc+^FBFH`FWYwZukZ3+Ht*^_=>V z`VGxOi_lE87%f0c(K56gEkUc%8W`a!REajA_2@O_MfsyiaFTr}U(huI;A9aCGT{dB z-=`HY*Z<}}3e2Tob)sx7g)RYf{?G<}aHl@BwLu@+Nj|iberPWfG&a&RHZl&KIXB8y z$Q7oylvRD$Mz`!>ushBnG<%t2%Z}$9Bz8a%_KX$m5+~RVtzp%@VTHTHO7??Q8v`O| z5-NeYnG54tiPnPsb~~)YF?1eXMPH&j=pkraZxKcxDTZ>OII2C2r3V#G^`-_=!>BP- z9F+mQVkWheT2F1Jc2I|?v(#nkI(3`62eb8t`ilYsvBX;9BxxmSFY%Iek@S`fkVH#H zO2$i4CHa!6lG&2wk`0ork{Zc=$uY@il8ch7lADqTlAk2MOa77wQc9|js-><{52>HD zi!@vsDIF#qFHM%_NvB9>OP5PGNOwq&OFxsImtK)xmwqk1EB#LTgY=p7C+TbH8|ho= zJLv~$z4VhzCS!nmImnvHn#)?s+Q|ZCp|Sz8VZhCDWQDR4S($9MY>{l4Y^AJ1Rw>&o z+aarw?Uo&s9hM!FeI~mgyDYmQ`%?C`?2hb#>_^#OG)3Fe&FPkO8`_f&q(kUFbQC?B zj;Ax|0(u%fk6uo%qqov~=p*zQ`g8g#`aAj={TuzB{wSBr?c~mKS9u4yue__gr+lD% zxO{>e_1hB_Es&d+^jlU`B`SZ;^YJ^p+RjO64RiRax)m*D(R^?Wkt#(-*usUva*6NDYZL9lMkF9>TdSmss)xWH1 zYdh=a)^64vtbMI}Sog9XU_IJ8)jHpLw)Gn8YU@MRm#uGGzp#E|{eiV%b!=PKhwZ|K zvxC_Y>;yKQ&1Fm21?*~eBfE{=%^qM+u;KnDqAW2ls%O($~a}Va=LPba)Yu)c|>_p`L*(?@=rUdot>S=uDzX~ zU3a^|cH`|b>`Ltx+O4(QWp~Q%3%e(FKiTp2Huf6(PWHj}z3nI1C)sD&7uwIWue9H5 zf5!f%{XP4a_U{}h2RjGOp`$~vLvM#+4si~X9Hu!ec3AIF<8aL3vcoqHPaWPkd~{Se zws36g=Cj9QQh&cD(NR(D66N_m1@{nM$c@uF|X8seDvj zRXtS$R3lWesuWd$s#G;cwL-O4wOO@abxL(fbwhPm^;Gq%>d$79W{%C;HuG;5)@)F- zan0hIRl#phvxA2%wTuM${enw(?LQz~}GCV#jFE$Qz@w~W(RCru05RVhT5#l%A zl+MYD&5MVYWAl0%n}&-7=}6Cpx(N-bp2jXD7^9vd1?UQ3_ik)HsWI7G?0=H@?cG2n zsUg)Ht`r%u#=a(5q$3+iBsV4_C&uO^L+E4dV2Uy7W9&?dG3wJmyKiH~)W&2#i&oMs z(*4ExgliehZGQ`Rx<$IbIMQ_SJ5a>T6u$#4a562@14YbC@jJ-a*(_r;C^8!ckyir?tQVdgd_qvI0dQ_|C8b4~G33rcXA zY?%L{BE3BEJIvV4d}B0BT)%wrJ1i$9Gbx{ZhFNwy-!e1IxD@%uXq4EuV(~kwVRecd zQqdND$hAn5W8vc+YK+1FJv|{eH#ILSGb=YfB_SsvHzilhgr;XF$BL=g%&feG^n{ey zp4qu6>2PBuxIOcXg?->mh=4&EDP((#>0uU#gEA75j2J0^`ahcpOUR4u9ShSHk&vEe zZekPwp@pHz5R(@A#b#&6_K(e&7#}+ze_;NI6jN)1Q=*cyqEnJGVu!}&n_3;5oD!a# zGB_7-pk-3q+^7k`oQ-W5VS+_}p+#{Fq_<)s-&km_CBnq269F}e^gN#Q+(e@ofP@6; zIU$iodY&%!JTt#2CCfNV*(o{6S-GU&-r_eeHs91tc5+Hwatbt=MS4#tm>d2_KTMP? zyC|l`dSZ(7&pS3TCB@rd@bNVz{LK)5A2Xz($j=P%Hzxwji9mBA$eai^B?1iQgqd=H ziL$q!nU1%)y0^Kyx4F8Hxw?=xZkE zYaXeunX<2$vagx4ubHy1nX<2$vY(lN+<{mhj8%#;Jn z-3Txv2bhrq%*X*|S%mudrDr7( zXl!PDN@iX{QVt}ufk08hr2N=)!of*Qc)gfN%1MaL18z@%AOnDYa(Y&ALS|9|bR!{? zjKVW6HrJRF#~@~tCub)oWQxg&AWYK|Kzf)kP5DM#0sygLQJm0Nn3NB)Ga-XW9}@x$ z1C+N2k#<9AV}*pw_}JWJu{0s0AxRK(L1+Rk6PX4`V^x@of&|a>I5Q)Kq)`AvLKL46 zH_COAA(|J&qGX1+L8d~Qh-irNQqtoIO-uO_~@l7WcOA(2Q35+WrM z6H*WpS|k#QLBdE45+XSQD2fBA)DU^wrQ@sc4HTkJit)VMWC(s<7hks7ZQVz%*KVJtQ3i^d|0w8hmzEHhpz zjLF6wPnv4HSQtw!v`Gv*l4inQ&C){H7MGeu2VyX3ukVe&C%r@x% zV$SjsU<8=-WHCe3?MBj;cLK54q=8#vm~RJSxuw3_h%~~;UI^_blV+mU1lFk3iv%q- zdn3TIf26s_X8xgIHx^_Y+XvNLBmv6#|LCj;_y++IW~ruIA~jNPRM^FGQEL}dCcWCn z*D~kdG#AjMEXXn!;BA@nX`1tEQs&&XnhtmLG^2rv+Ok}flbPcJxfSWCzq~Vv4|*lV#1_wHKu)x zbQ^Uou?P+sQJ}_n50HdWOUiH5lJd=3Qocz`%D2># zAS1H4e3O<070q4s%r|ODpt_1$Qhrk{$y9@ANn&eI4-!L7f>@*~3K$D1BPR3mbHMUu z6xZMYkYLHMEpSbX)wEm$Hc%0B<_5)#nXVC!3`|58v!aK<|26M~fmt~jvFYdvdD9pQ z54;)ZGUZN9pwg(r)C-BdBuuhEvRLw)jcLpDWco1W zOck?@IR%#VmR4=7I#><28f`TmEa>~J-hqX@wRL-IPq2=Uw$89Fww_^q&iab=Be048 z%<9>0YzUjj&S4j_E7)@O7<-NVlKqK&ub>sI!bzc5v{wWxCMaer)+tUZZYo|Y-YM#B zTH3hTbg=1TGt4H}X0gp0n}ar|Y|hzSvbk<^+vYbLY$Mo8Z56f-w(V?t*hbh6u#K`! zww+=-AFSJ}ZFkrnvb|z^-S(F49or|iFKvId{iw88woq!p&fQLFQ2Hu^l|7V$l|z*y zloORH%1O$6$()+!Gv&nv%F-UrL~OXX|j2jwR_8#@QPmUgY|+S+xp^S0|| z*T-&{-Dta5yF|M*yDYmryUF}gyjlHz>e+FpwR_Ws)%t1th9yUEu4_jeAEiy%eLne_ z=Gpn$Sa$81zg&bMrRTV5rh;dOI zOWHSnd{WZ*@%xgF9ox6>m{!q>6-u2tar`74p?*5*mO!u32CbwMmoDD4+@-u?Maa+0Q>; zI((>B!9T?XYN3}rt}H)kNHSYi%&w_kU!|?A*jlk$b9r-8+!`J3CCA>A1nRD!@#e4w zQ+KiVHl0E(bd`@1BI)1d%9pGl#ZtPUU~*ZuCV$F`wNrIPn`YLYaXGWHcH<`P+O_Le zY}RbwP*zZ-!vyiz_#xFH8c(5poG?w8hTF&eeD`wov12gYLMQx|!OerN3!a9N#Y2Z` z-?pK*ZQHQ=i00DP$)j{r1&R@x4Grl$a{ahn>45(V2E|Vl!t2K|eG(Fe3`sh0Q_GKo z{6t1DVB5C19sKOxU;~V_VmX_aH@PHEla`lhG0-hA&_f$a^0u7e=u@MI?(*>Fez~yg z)G46;9N$v^CR7XVuV*s3vyzL7w8bSwWr@k`^y+);R^v3S-K{ykxj1F74lA&NzTR)x z);7W1lj}RqpVOVcu>MQTxF}pXCI8$B8^$r^>sD4STW_`Q__8w>C$Q1WMywmBT~@NP zxO|G$IOy+G+)_SuMcJxZtE@_@rtiJS?iSmqUcZMeDX!41FIb%>IJpQ;(^E+xzQ`9eFj%07vR#%-mdfx?W1j#)?2|q~>LDT)zgz5rqc79B(kBiU_qX^s_e&}o5 zPAdd0RZmPwnK&_J@8QFHNl2NforMpm6EZRq5;AHI9H=27BSEWFyUG*iWlYb}7uY3_8lm8>1GY<$_dLCCKn98qzqezB4Tx#o_oUqqxLkj}C8z)WYkTGM1 z3^_UG^5v5!FT?iQ=!9P}mu8+BdqTT2b7JKP&4f|Ksi`_eot0DF7$IEvzz9Y711)%@ za`=NB7YQF|g|Gof;Y8{*PL$$ue5yBllEVuD{UOV!^a^*EHWed}jnSs=I-B}f^Z4wZ zJ-c+rPF8&Omhh`l^T~dkF=N`C$(qU2maUqhE7~}}_O#3C#kCtZYFDi)U$#NBp?uDa zRl1Eui<3vWDAl8IBn@X4vv6pYRl_(1zV3vzQA~bWd6kZr3PJUDOz5cqtk5d_IAuzj zZrrG;!`)mIxS&A&kgMOq6qHTN*G382XL77K_2iCDfrGF!4pQ*LoNzlKfx!uQGmUNQ zJHnP3#t5;(W?HaipuQ8o7O1a<AmKQzxH^=rQ#uJb zJcZ-&8(J7GZzYUvg~yTo=~fT6@5G^U5_#K{mni$$KYe49?YM^`dj97Zew2CgIUS(0&$ASSGLCGCyIRt|pWo zy!Al(R~p5JUAuJW&dvMf0ogyntfHW9Ore4i+G1%4X5lBji`&BaUZ5VCk(ZpDvE?(Z zV)j5*A*6*Bd~hzLzKLS-we{+p>e4kuyR4>H&fam@g=d+=%Xh4<)Nb5Wv8K9OkYI^( zN=kfE&IGGT6Xp#czz`^*9sH!2 z!Up(}m~edp2eyBV)d>MknfV3j+HP;YlkeJGkf~EFpN%^RcB44O3l{e8`KkiE0(;}u z*t>$|3)R><0Lug)txyXqx#Dj*_IZM3*jguqJFQ@cvyO^yU>#LOKCG&2jnJYEi*wc3 zwe=mpvMCGaOx0pnyqgvxa<+cEJniGr#Qk;x$>p z!HH?(#wG5)a%KPS4c00rrlpP7w!>|f!`V((<6s826{L3s7JkwY0oFD+hQpni z&uX^T*4E^X)GCGPI9@>=Eo2pNqQVu9mwIukM1HM5E4*T&R*pC^R;${cx$|)G8O_nt zgd3|8$1^Ht1)s&wQ14Gns)*4{1Is@}$Yx zv2lglYS))u|TaF*aFRX9#!6>8UabW&2zoNP@-&dSP6-S)9*E5>Oe zMy2=dt9#dq-nXxM*>+7$^~~a(y6h9XXC2pkeP-8<8=${nL(DIN!9!peT*glnm#nNF zVgo*<7{DskhFNh%x!S^#Nz<}4S(C~)mFSAL&N}p?%W3A;igO#QwVT#guK`|AT~@eW zw=ri$OeFAFVH@5;3&WU)-Me%nv2r@Ax(a9Bz+Wj;V5gZNcPFcHi;lkuZdwpyD;~1= zkQ}?d`VF@r+bfZS^D&I+`rU*3G-09Jge|lJYae4u!Q_wIbWL}Gy^#4#BZL9x4P&02 z-}wV8ta#oaGeFuiLMOqQ7Qz|a2|Ghw1+0Tw(92VVP#R0*%190e@h{bzS;aBI57@+A zMsZ($Y->sGdfnQ>Wrc!`3!wLw3$$=XaKLA1p}!pG*O$;)vnEd*rWqg@Udewvd+m$u zIwc4y-kQOQ_0}|=C>N&k4mc4%riHO`VW{wu#xFsLDIPAw?)(==IpE>$YGJ7ScYK;w zZmcTc9kGGB2BXkNvHW%?zP3JjKMO#8y(6Pk^F0JBrc*F2I5EF|PYa(hO2Io6x8twQ zVSx$pHlb>eH+udm)lS-RTo`ivOv9oCN*j+uK3ycRZ z!0r@bHqUUNl)o#$!L8`ex2*4=0FmYaQoi1q=AB_>Js4cXJJa>fjB+rXk9Pd6LWS@v zBlMY&IzU?>7;ee2=bdlx866&o?d#7e3V2uCcJ^XcK@H-hilgJ<6dQP7?4c+mQ>9>F z-@Fv}%^MIMhWgF0Q`^*^gMk!O%{y?;<=m13xvXL&ODX;ahE@v;ZzNa<@j1u|S&R^o zGH1NDM9@BvW9IVbxK#IAQNJ-Mr90`)B{}YY^#?vfhpnMAIqX3=Ti9RdD)=)>%r4O> zr*=ter;QORuqT$|3PCOp#}#S?Ux~A^5A|Uu&Q@cee-#QofF6VcnBBF&MMu(#5*Ee> zhxJJ;2du%JZ&}H~>;;j~EJz_FCUZNpImbINLSR=x!Um=%X4Q}kgrw3Dk1KEL@~m`Kk43 z89If~T8+>bOrf|aD1^6+F!u_0LI0woj%&oWyd-E+p&1$Jw*aP;!u(LNN{h)btbKChd zI>lk`8K-DuDN5K^6Jd|vK7$5b_$A`OCd@Qe(1Kn7J^9WYKkmu2SeGLSKmgY{D{xZXxtFLSIVIT?Bsw z2mZkD$3NhAitbbB5ke2de^X#3LQmlz5s;u~2poseb3`rb0G_whF>CO}MJo_>-WuF+ z!2_4Nu0ZDy`W{jDY|#}&y_BNQ5qg2ZahUo=hDs6m3Zv;1`0#?uE1E{!lBwVQz$IDI zDjWV{06df>s}T4*gUc*9{=;8Fz@HO)U(*@nUr?4Y8lOsZbe4BTIxCBr1Kl1Y+M$x6u{Nv-6Z%nD|;vVL|f5zv;)o2 zoxtUE3AmSTq4(0q=zDUd++MB$htgK^Zt@=TczL0`Ouio6M=#0m%b&^rW@L<-Y0U&P z5#TVompRE?W9q>jw5^qgRWKN_Vy#wLt+A@K+G160wcqL>IDlTTdSpG&dKIf?Q`i{_ zUvS8ruXwBYVB>7l#wN|C0E|($Y+l%4aIlov`hk0858G%kIlWNQ%GS!>$_ZdnnyFl^ z+@(CN{L)Tm=WEx~Zn#~#-E_N^cH8VO*xk1K#_p9pvTtVZZr{~@u>C9tD~Fa228Uh_ zBOTHlHac>S9UX%mV;vVeRytl$WvJ$YJL7KE8P!*+=c>P(DVk}Ujc%6LY;Lo4&Gt9D z((Hj+u3n&Cqu!!Es6MN{t$ynyb!z71=H%xT<}}Kw)M>fXcBg|*m!0lA{qFRkxoz{- z&3iWQ-F#K^oy|`)zt#Ln^LNhH&RS=0=RVF8oF_Xkci!cE!TEvnpDk=#v}=*tqN+u0 zi}NjRws_g%eT#Y*m5YZHo&bvI+*l7A{#%gjk3p5)wM>St+o@w5< zbZQyc@)$Rgo5aoIws5Dpd)ynXM61%a*7|CDX-8^PwUf1rwOh2uw70ZRw6C)Wm0x3Ou{rcKv2quOM&$!fE<&7C%n-P^f$ zcE8|$-Tn8rL2Wy??b^1w?V+|u+P-VozulpB-?sa{eN6ii?bF*&ZNI#Ib^DX;Z@2%Y z!<-K5J6!MZOUIy&Asxdy4(T|yV@b!_jyF3#==gW1=ABx1O6~Mzr)M6lM>CIc9%nsn zdc5{{=c(|t^=$6h*|V!>wr7FobkBvJ*t5>d$!n-riPtu-@4Wu<`eYbus5JcOJ;?hf zpRPW=ea84C`t0|$_vL)M`1bUj;Je)Sgzr_~AN^wd*883C`^kT_|5*Pb|AYRw{9gsg z1KI_23s@BJN1$(D&%mU>(!kFGuLs@=d>Z&J$UewFC@g41PzdKEvg^&R z|LWGYTla2byRGWBx!cxmH@o-j-n)CB?z6k!?4j(@sYjn4{d(l~sO)jQ$ITvJ_IT9e zhaOLQJnQkI$Lk&+LYza|gan5~gbWH95fUGg6;c#3D`Z(nWysEuBOw<<9)!FKsS6Q8 zZ9}=xj-jEUF`*fu#i8>;H-;Vxy%zdi=ucrS!+gR*!X}1ghn0pc3R@p`DC}m~&ItRqwr?IXHG42p=4$c>mAu`Z$};$p#8_8rzYy>D6H9er#1Df;RA`S*+LH@aVDznT4J z_gmMG@6Ysa)8D86r~z#T%p0&|z>b0Rz^s9{2Mrk%KUg)m<>27KS%a?({%-K|!G8~t z4RIe5JS26<#vxThwhXBrvVF*{A>R%8amb%T{uQN&a*pa46&f`tYIIay)YPbjQ58|! zqYg)%i@FhYFY0;Jn;W2=CvQ+=uOZAM z)?5CF4HCRA%S(M}65nB8-eG@$GI_;wS_pFjus2C6KPUGfZy*6$%@XV=<)7h9_01{g z6838|YQ}Erw`$^YXY9b#%s)GGS2`x9gqU-EwgoP;dLcL(7@uW#IbJds4K! zQ%~i8G4tRYxGgi$iw0IC?Gt2z%=u>TM|rR3SqTVKGMd4*8-Kow9bANvx$3mSg4mf_ ztYj+ZZ=73RYPEX$(kaEnxLKmkT{30Wj8#@;Yvxs~a@oFN=dqPqCEh>lJznq*cX@lA zlh&QXE!0C;KB2zvXikYau;K81u@+P>A8FkvCqah;&tBU4?TVjU2%hqJDbvRm<^{fT z-cY`~dZEj)J=0-fx3&*Iy6r-d3wUKAaX> zYh1W?uyD!|Tr?Yr?-lT#Fx#X5mh$8Ik!rW|@6SiSYS(WWW@$ktUna2a zu19xxKg?~|#SXt;pChou_%;W#zxSh+#diyEr&}DJxRHhHR{?%cbnh@JF1g4l!Df_+ zJt^K6XKrVO-3uEGSx#m%mf#jsQ1?e6#rLV(t`<7Ug##b|pm8U;au{1Yl*MyEZ|ndj z!0BB5UPf8G5GJ(q92UO;@XBnqc=iDnzkkNzlmNE4s^FLV9KM4MQhxg{`J4wffMKwB z_9+(6^#e?>IRt=RWP2fX02Fa|Ah0T)gG%JG$ZzDYPGgH#awiH|eytAyX4J%ztW4e5ar1}yxcDp{dSbj*)gx=?k&@Gzvo-5$cIo243SXdBZHg$& ziHj?&{`%`p)rSsk%8Ae_A66Co1$Vj$g;Z-+nZ*j>tB-Nham`Uyx$kSP4X6ArlcV6S zjU(ZfGM-h|e#=2l+L2XmfwkBHV{y7%IqM48E#@bn>a}~=smAA-TzH;QK7h@4 z7JIK{gIMLJ+3PvVl~tBMX5r2b{b7~Qpy!iVX?sq&V<^kNCeIpu;bo-WO|aqJXrYfB zPlFpQc9JXc)1mAKEkWof_pG-O7#^;U_Hu!#xA7#&esVm5pt`|j9>2qk@Q%i<VEh?` zUz0*%knozuq4JkF_@xj`D{lz{LB7;A69%f`ukM-&h*5@}VewV|?+`9=;b~5Fyd9@1 z%BVR$`Ml;*&3a-iJnqdZ=fVMf!co`YTyB}df|b$t7?ZlEw)mpv?5Uxgvi)F=IuOOS z<&+1xgDiOy2oh45nvBGCG5(x#AQWPMsT(k$G?-KkcKi~!?gOwxKkdgVGdSufoZ=SP zSK69WK4sxfDw>oWagcO2?3Mz4ZQ*a&fwVmfSQZ#4`HN;iPmcc}yUs2g$>NwwPC5o! z5N$_a1Cxtld$CG<0qTQ!3CuC%jiXsh)uXyA;tNly@r7p;yzmT|P%?3h?ojfC${5pY zkLvVnPW9;8vGUEEk4+n(74AX@?=lv7M!CGIf>Yh^0u$DaRp!C?$sk%npY>qn$YH5# zz^k^v%k_gLzr>u=?n)oMVYntbnLH&O6MSI;gK!FyQL}%_InCLVFoScqaYC3HCQf`K zPOgmB3?IFMWB5U`U{=}wFna?o?CD_a7|SZZWT{p#5s3@4IqFUn{5hO*`Ruc-s;H^K z_jnV7Z_#*0xroJao4C3vzE&-S$|Hr{p2Wf}mwO7kBS|V$jsxmzY1~}?3ZHr`#3U z#uU8q8jA<N~-)8`CB)FhKBg5&Rwpyv@_L$BwU=^A$&T?%iu8Ouwg|vt;hlxl64k zZz|gh&(v$kGxgG?OP4HNVx`;)_G_#J1;Phxl)u6;;?Kk5t#Ak{f5wiUpEF+`tT}&h z!_@rES~zxc`tp#NO+gxX%yj82bkp@4BshK!j9B@{wt|x&o1$>LlZDhT#+0-UDyYN0 zrPuFSz3-sQ!Rh--_GrKTRsd^aSQx!NHEDIcCO&C;NvbXkfCBYx7+sP&Jt^KLes$9N zRBc!oCctm$l0EyTAJiP&w|e~^9pL!mqw3)kCJY}w;po}3M@g74T&vs-3|5XE-@rf? zfC@nP!M}Y(br2TN&}r--uO3N{6goh%gCGa4E5{wMqtM|qrus7)>}ZaI(SzobnZ}sM~ zbS)?Xzs5Wj+=Vv7JOaY@r0yxyW)#JY=;T9( zgIv&KYRs!wn7V*950dvLZPxDCc<#(?7r`)Foi=Ui%vsvmvr1idnN)=vK}upPJ^P4CDX8Z73chPYy4h{p#DF@R*;zeMO!A z^Vy&H(HIV%O!Vr=TXa!g$;?Tbv1xm5-P*n9#J2S_i?--)-J*9TO{^NK@is&W8bR}8 z)XNKpt9I?vDFrKB`~ItEH?V}lJ8^R<-x2RqgT2e6u3s%d1Dy!`P! zGDd9kCq6ZX^A?7vBd`x$vu@Y!GcMQ0eIBS4y45TH#IC#KmjqXODPE;6oH98_JN({R zdG)%9eJ&sY`TCOYb6>cTpy$sq z(hAL;k}@-sk}`Mh+qaX1%p@&Q{XB8TEske4vba+{1B#L`5g&Mm^WIW888cG+5H?aN zKu6)d?{L983a4X*6h9x$68Xb>)a`QT5?Jg4{G%=t4lK^VK`*1&Iy>NsAJ}@t2-?>D zgf;^E+V6#~J{Pc%>Wq%I;9MS}UJ^4y^fM97XC!#px82qz43lQr9 z+`7bTIJQH{W-WI{`DgTZTQ<-Swg zX9HQs(=R|FRh0=7gjz4Q7L4RiSk=!RVMzF7-Ifr}62j{~#JG!)D@0#ay#O?4zIWXg zcd_DExDD9B#k#y--DXctSW!hD(_xmnbJ(3wYXVt7s0k}VIWk9t-qi*#4+B0-sFFgM z8K}LP(Cf=S<&3j;0WM%r;YL?ZW%#o0r}iwUv)5rU27wNtXI1(HzIzDw57-y{pYGhP z=`2xsRW|_3@F(Bhoz(nMTo9-$LSOMSMS5Srl9=f|=DT@v#orb1lRzI_3oJ-z2^Xf8 zSmXANusQ)8g<7=&?;?%RQgC_S3d%I#I-~*pFt6Z%@p^xt@Ou_s@Bd!%CgiSm?$Qe& zBL!BT9Zi>KBrlI!%o#Q9rE`Z0avEM|wqK;D)zr>Dq<8IDJ&;ZgkvJ%7uBnnN?$)kY7jYVg3STsL=ixsIsTumrgM=Gxx;4o`0PC5{MA)mH&P@9R20 zcaHc9G&lMRV7tN!7S}hp3+S<(==;(9A07j1K$H9iw*tu+3@$Ka})$Y9Ef*m?tgt4{I4~J*^`t>-NU(B3XzxB%2O>?HN(XO1ebow-xl)RY*+C0H= zqkLV(+!-r%D`ze(D{&Fj%#^vMGiCy(nKpNdrby79mESnFe&t}KA{8wB(AJ<;Q zy@A`bWwDCqJjEtXlN0{mYChr1gE+hiTxA}Cf)AMf(z>JI!tgDFUH!3KFhq}CDWWk|@oAI(55yQ<*nAOn7VjMsf%z&uv1T(TRg2yTReHnyfjVHOs$ z{UBGi2W|rD9Qg1!g2h3V-InkadqLsF4&-2-9{^Kv1Ew+=9|+-^Kz`s8+yU|(2X`9P z3&3&4cKCohRDd?NMW?n1|M@NTHO3U~&* zkN?}99m)QP+cZ?IBqNPbsk)Kc;j<5AGt16|nG&S=AM|vTW~0dabJK(w>Ez3ygLg3v38F zIUWBJ!Zii`$Zv2bpl9Tu0p1P3Gr-yT#hug@cT)q@f%gBOIt5UX9xvC_Ko*4eHU{TSKmDufC%_&*DkEwXnb=gZo+HV%%8JLryR$@%6YKU$dZ}TFUVSr<1kI;A&tXovP|PRSSAk^ zBswh68dAwobuI+>Iab#F>dwv2G2Uj$Rd5RXFK|+7dg)t3s+()Hs`Dpe^vyf7T=l_k zQ^jNW=ngUJQ6!9)m{n!)6@E1{~ zL_-iMBJM?C3sU_!8;WL-A{-3TyA~U6VwXFG)EgWwI;PawJMoKdVVB4|LU^b!kbL_J zE;s5IL3u46DAY21UzsrQCLSmUD-&#wyPW8yPDMWztR_w4KS$9NbcX$j?{{R19R7Y~sMK70D^V5K0D1Y@w>FBVe~HJ-@G8$W%w*q7p4FVY;Io{in!T;TUJBJ0!!zQ ztXcS&poZ`fbz^37X5-suYZ~d|$#t`5a@+2+MjOmcqW_=8Aq=L!rg0laputmkCiqpq zWdkDAX9&_V{xbw2R{13MmAxbUM!2WLEyIbB0zjv19f<56%(Pm`3u5vX8ea(q@| zRgGvkR^11MTfdhK?IIDz86dwv{_O$zXaAfqbgUAm(WIUi0d`p|3~o6hS;FP>zooeWR(P z;D!qt-z`gxZ&1wS6HME`Soa*XW*c2!D&hFd;Sbfp<58HxN zD1r)QrS*Hf*!JQ9+eXgU2&j?_Rm#AQAMC}NUJHyOi&VM+mEgjb1H$bv`?vAf1uA46?S5GkI!TwUW(3e#H z7H%8ni=E(H=NbeEcLA2h-LA_D`sanPl)SGP|B}gka7>C@S{*nrH!XQabbsQ@3-pWN z;#lS>T!BLm(1}Loy<5D-J2qY#f8wWka>v=*;_8ILa`CMRQ#k=<0J2`aVZC@cVJOGJ zCawht!NFe;4u68X1G3VHgZJ}wBLU|MtRY|+_<@9joZx;2n+qXg;C%?^0M~IaqmKZw z*9Y!Vychqy8aST+B0;gJzkg|Hi!8y9ju0GA%e&N%pmC7=ArFxZJ9^8v;dXS@(u(rU z8s#RC#f@8IlCTxF27ns3Mx-zqR`h>o>6gLM8zm7uvh?J@dZ-xAQv5KY0-MvM-(mb4 zOi?ffSivx!2QxDMh7352e+dgm@y=x7h`o*v0|^;crzUq%iccmN5%LPP;D0U^kSxF< zU<obmY*Un8iFs;@xtH3-?b6I2jR;NNf% zg-h^nYWORYzTjFd>U2U!f(yEsXcHR1{|LCCjo2BXqAv0XbP+>+XR(Obf%wZ%__)DK zTQ$L0>lSf`@G97h4YLag_uT`Qn!#XBm;n^QcrVr}G;XE+V1JlU?}0Bt(JdlB+gnug z;8cT!hhl3>$h}~nQQ%$;BO<^1zZq`hYwZAh=qS5ds5!(3S zpKE-sHNGP@zQB^sgEhk)+r!oDG>(9WjtD9I!JOIdb9VTk9q<>IgF3O~K~*&E^!#2e z43;nbd}U?%dT_!vKbw}r-@h##WVJ|eSI-NXF}bwZszG*u7k6ppj1BYdTEUC&|Hs~Y z05o~6|Ksl)NrH(+9HB}~qPVTQR?#{Tw^i%j;>Lw+*$6H~tteJe5Cj21KoKi$jcCD9 z6}2vKgRS=3l-gD~iEp_4KIct>faBWR_Ium^zxVdz3GX=X8P9pnInO%fTHdqp_Ni&j ztuxvCuA>4#s6th`K}2qVYg1+Q@80W5h=k2boNf>xLYvOjfN-}P1c>WkL*0#&ay5|F z;A+FsqJy}q#(1@4Iz}F(VaCQ;2#-4g-UYK@e<9aU=Y#B$#aJji!Q6P1u%fEBf*zLm z#(SSalN}}(FKefrTS;Rk-vGOw4t?zuJz0M3&?>ZeUfFj78X)p18Au=K$f# zhx`k4;mVJVCH&=RDloy2iO07(VBAKM?HD%?lJQ*Iu}~chgq~6tOO>Mb zqK~+XoybLav5Ck)!!~$+z$gXYAG4|GWhxQ!I^G)4fd`W<@?V!1eRM822x4lU~(yfve>u-S)Is z%@MiH-f;9D>G1Hobaeu0$$Q;diMr3W|ERqUXZ4*UX{w49rADs~@?WvC2nv#THB`^k z>1rq1<}lhOANuET6p(y~>>GtjPC)A46kmk)nU3P;LvE^0I*v}TSJ;pC8ttm7;^tQgCl9MH-VA$QV#9U6A?KQkKEE2C5Q)(p85@y8o%h65OqjQSmK%jOIf&*>fIfbvbFraMt9Ykn?^2^ zNyJmgO%!12-ud-h^=?2aACeZ75D?Q~&%#-e zlNFzGEi**BqE{@~td4TzJ~Q|UiM{9tlD-G__xwn}N#6)q5DdWZRT3L& zil7VC%jL(X+wJbC;AG7QbM-&lKO)ypJ;w9XNnAA>uHpS*@Zh2iy9Ny#f`(Pamvl>Q zul9qCDf0IHybWKfpFtvCQ#51Yjzh;&cO20iSv)^QT~*V+M(MQ^!hZSfHJ688RAtN` znbKX+bmXW-i`BmF9@F54V;F{g5 z%RE)*DzD^J-ReRwBKB9OuF72QYva0j&3qMSB_`9uNy8ma#~tVvqaME1DgN#o{Ig~2 zC`D{0YKTC-)HRV4HMc|DdA!S89OsYuocD}Vfqh!PVZCj3OF8H%iHe|}^kGI%`l;h= zWL#U&q75vd>Y>S->TKZAW3YlX9%Hb9gOZI{7A;}pCDl5>5~DTNG~^RZHamz-gbx)4 z+#+`H{H$B7??K|_KY8Ama7eXp+Tf_J3a*}^g=omekjtlS)?A9dsL8Uddw+O|kgGj# zdMl2BAKrDYI{9Roiu(kO`-zxz+jtpj?so8|`&|A>$b^w$s=CEwhxp?9A^p{`V7MlM zuGub+*j?Hq(X|BmwG39~N$6mH%Kul-?jsB#UKYo1hcV+eDy9-Wo~cllk`I>BXabdF zVh4A|%+shObT!Y#q9sPAWad7c9e+8G=V3mNB=ux<^FE@Bl4SmRBy9?~QjuZc+Sa_b z-Hx=Nd?=mx%MYyF=botwj`5E6`(oS1n60simfMpy9LcaD;#QZqy3j6+f_9;_AL>3| z92ouOqOU<%J5y8C2aasW&#{4PWtM!t-@KWsVVu<=QOXyqmTy%j1%B@0X5+rvi8{ag z`$G@yKP5I>O^%3<#HE}`j9SL4Cn5uUZTQvEYnn0Ae=YRW?a7Dm!DmTd4<-49*w|J_5t7u)OYrkItBRm#Lu%5(fi=^}exQK31lKtZK5|K>z5td`< zkPc*{4|R0%Q0n@V({k=Ke;+gGM%YblSmz*lDgTFjpTKAJY*+c!X>SjaHG<=n^WP{PMO4q}h421zu zUqd!GT$g=ELWWXHQc-2wJb2>q9!D}7Ct{}`xK=7o`Xjl3)sR2Ti;lwV z6a{F3D6h-%F_=#a4uDM=|XQ^QAVo6xh{)EMI)mVDUXM1|$qR~@pf1=lHwalL` zMJx5cj5LHD;bxHjCKO#i;IPs#b&;6c5GR2KBlFkf64KKqj#yxYUT$Bglfb&p8c&na z)?~b{y3kM^u1;`R98Vn<;iTvS4fuHKusA`)_2<47l5f#l--@~Zb|`3XZks+Ipx! zbo;j??#opiOLM=kJiF6*+RR1HBS(7f-5;#x97J5(B*NMgg#tn+leHp31#DIpDo+)g z#7d2H@fEr~|JQ$8%Qq|UJOX{lenEQ}DU$C?$g~afwqVUZ*eDw1tt25wx+mEs89g%K zGdQ4)7kB==?Kgc?HO&M1y$(PaI4>2B2lGYHhVx0>%)f4DjPo|61#mgVB_;PMzn-;TYb^sUd zY29Jd?5v+`UVORt@kSM~Hzdm+iiyjn2cVFFHl%-x=bYmv6&1*eImcx!Y&jSR4SWD2 z8<%COE@HZVRhY(rzW-t6s{x=J%QY3t3NXx;fmE+j!{xrjo;K7iD*W%uofEI}nG`x( zG0QXYOEn#y+*e|b{chN!``MA}cdNJvu}s$vS$D*HKs~#cP52iv!aC}*`41t5gR4w8 zq|#$vreaijO22{@hqN{Ek=`Ck{m{y8z}yw=KN`cAvx+k?`EI|&$XFm5xVqxDgDaL3)%~vrNsJo!ljDb`z&_1Hm6R2ND);6pb|(e-MX9&? zZ}MF~#F87ywIQQKs|GFg#RkkT$RlWh!bqty@)OA~byChR4`c4dO zVQFU$d2mm(&LOhTnc8>7`0#>w>rXCnohLc1T;i;93ke8W;QVv5`nytNHh!tdP4Jy;3>qWs|5>XhR|gU% zX~+7FvFhz#M1GO5!*ZH<6=aS<;_+UKC(K^FZP(8Dm^9cV(IwDQED7Nwc@o=1e2F|K z+vMYyFAVlq1q27I@=^E(ghvNs;#r=4%I3(%U6C=W*ex;Z;}!8Sp?+J`k^UQ99Bmen z_459c7kT)r&t@f`h*q83{&3a)a7)ryJUooETi0i@B`4??){=9z;VfbXW=&Jg{4&Su zt|BjY$AK@^`wu4Nl-PW`IDhg%Rg$Yy^ausDm6HC8NQ;ORwgewzAB%Z^6xk&|kQ%f5 zn9Y;HXW&zwWXK?UML%CU|HCQYJ(J_v=$be!Ccw?rKfqbtmzyvD*KKj?cK<~# zzJ7~fvL-*PWG{}w;Rmu!N-r@tYL}9$D~iwCegUCtibQ4`+^(3n{Nt#pK(}h-Q){rE zJwk2|8fT9f)*ySR2@b5zvcM<9sn0mqfQt~42<)dL;J85|ct7$MTsYT`%M!{4tRxWG ziSEO6jA*D6^$gNg{+08=X**Q=5_TOpZu3Ly6HV>922L2R`mUvLN9w*UyA?-LLtNdx z{hZW2I2=5&Z%2sB!ud;P&zQJ1d7-*pbK%GfKl&loQMDiPepbs8u!+DTr|BrkCK#Ge zl$oa_m zsQlj05JT6}nBh{`m5J$g@MAGolUvHwBuj-{mrMzX7v18T2p@`WktRYep4#|&!*91a z84V}px}Y9!Yy4T4n@a5ND7n#GT{4>PWyDoC1rg{9T5#hl@FcElfMGBSGMPSXG7cv0 z2)^*j6gbXz^UBy2mdoN2S0yX5kHw~?s^jCgWo$^d+^{G7NG_rkJPJ59KSPzaXj1Gr zg}c|PXvQ`)d-|^j6yrRy3Ja66vXi2hd+y}pIXR~UZFbqxV5{@|h&dM}`}Ra^O;hjM616!k z#ZtyqL!C$~jMWLchH}!}Fq~^n)O@wjurLwUMH_d}ow@W5)R>sxLHh+d3KuP1vUH(h z9@p}`=>Ca}yQzpc(1$L6dy{79re*~8dV7i8WBxygQ6`aOIr+5lHLleb73mHAPH!>S zD!6f9?o%6X=!@>8Rj`WdjkfJACat!-xJ!m&(H|;rJJ)&CYIM8!^y+gjbVYywhEKI_$V_pV`R@IKZVI@mwM3kBW$2?)!_2NDiDQXREiW{n

(C`csk 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 axGu^Di+^-cwl!H^xyk;UG0O%)dj20v|70ov literal 0 HcmV?d00001 diff --git a/app/src/main/res/font/dlight.otf b/app/src/main/res/font/dlight.otf new file mode 100644 index 0000000000000000000000000000000000000000..8a7f085abd28e11f37fba052fd493514a3be21ad GIT binary patch literal 88240 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 Mo`yNvtp)A*A0xKva{vGU literal 0 HcmV?d00001 diff --git a/app/src/main/res/font/dmedium.otf b/app/src/main/res/font/dmedium.otf new file mode 100644 index 0000000000000000000000000000000000000000..b4608d06d170998c463a5451d552b533149dabef GIT binary patch literal 89060 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_alerts.xml b/app/src/main/res/layout/activity_alerts.xml new file mode 100644 index 00000000..fa64b8a2 --- /dev/null +++ b/app/src/main/res/layout/activity_alerts.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + +

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%0AtC4aRw0AiCnK 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