├── .gitignore ├── LICENSE ├── README.md ├── api ├── api.js ├── app.js ├── package.json ├── schedule.json └── tracks.json ├── app ├── QtWorldSummit.pro ├── android │ ├── AndroidManifest.xml │ ├── build.gradle │ ├── google-play-services_lib │ │ ├── .classpath │ │ ├── AndroidManifest.xml │ │ ├── README.txt │ │ ├── libs │ │ │ ├── google-play-services.jar │ │ │ └── google-play-services.jar.properties │ │ ├── proguard.txt │ │ ├── project.properties │ │ ├── res │ │ │ ├── color │ │ │ │ ├── common_signin_btn_text_dark.xml │ │ │ │ ├── common_signin_btn_text_light.xml │ │ │ │ ├── wallet_primary_text_holo_light.xml │ │ │ │ └── wallet_secondary_text_holo_dark.xml │ │ │ ├── drawable-hdpi │ │ │ │ ├── common_full_open_on_phone.png │ │ │ │ ├── common_ic_googleplayservices.png │ │ │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ │ │ ├── common_signin_btn_text_normal_light.9.png │ │ │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_text_pressed_light.9.png │ │ │ │ ├── ic_plusone_medium_off_client.png │ │ │ │ ├── ic_plusone_small_off_client.png │ │ │ │ ├── ic_plusone_standard_off_client.png │ │ │ │ ├── ic_plusone_tall_off_client.png │ │ │ │ ├── powered_by_google_dark.png │ │ │ │ └── powered_by_google_light.png │ │ │ ├── drawable-mdpi │ │ │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ │ │ ├── common_signin_btn_text_normal_light.9.png │ │ │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_text_pressed_light.9.png │ │ │ │ ├── ic_plusone_medium_off_client.png │ │ │ │ ├── ic_plusone_small_off_client.png │ │ │ │ ├── ic_plusone_standard_off_client.png │ │ │ │ ├── ic_plusone_tall_off_client.png │ │ │ │ ├── powered_by_google_dark.png │ │ │ │ └── powered_by_google_light.png │ │ │ ├── drawable-tvdpi │ │ │ │ ├── ic_plusone_medium_off_client.png │ │ │ │ ├── ic_plusone_small_off_client.png │ │ │ │ ├── ic_plusone_standard_off_client.png │ │ │ │ └── ic_plusone_tall_off_client.png │ │ │ ├── drawable-xhdpi │ │ │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ │ │ ├── common_signin_btn_text_normal_light.9.png │ │ │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_text_pressed_light.9.png │ │ │ │ ├── ic_plusone_medium_off_client.png │ │ │ │ ├── ic_plusone_small_off_client.png │ │ │ │ ├── ic_plusone_standard_off_client.png │ │ │ │ ├── ic_plusone_tall_off_client.png │ │ │ │ ├── powered_by_google_dark.png │ │ │ │ └── powered_by_google_light.png │ │ │ ├── drawable-xxhdpi │ │ │ │ ├── common_signin_btn_icon_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_disabled_light.9.png │ │ │ │ ├── common_signin_btn_icon_focus_dark.9.png │ │ │ │ ├── common_signin_btn_icon_focus_light.9.png │ │ │ │ ├── common_signin_btn_icon_normal_dark.9.png │ │ │ │ ├── common_signin_btn_icon_normal_light.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_icon_pressed_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_disabled_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_disabled_light.9.png │ │ │ │ ├── common_signin_btn_text_focus_dark.9.png │ │ │ │ ├── common_signin_btn_text_focus_light.9.png │ │ │ │ ├── common_signin_btn_text_normal_dark.9.png │ │ │ │ ├── common_signin_btn_text_normal_light.9.png │ │ │ │ ├── common_signin_btn_text_pressed_dark.9.png │ │ │ │ ├── common_signin_btn_text_pressed_light.9.png │ │ │ │ ├── ic_plusone_medium_off_client.png │ │ │ │ ├── ic_plusone_small_off_client.png │ │ │ │ ├── ic_plusone_standard_off_client.png │ │ │ │ ├── ic_plusone_tall_off_client.png │ │ │ │ ├── powered_by_google_dark.png │ │ │ │ └── powered_by_google_light.png │ │ │ ├── drawable │ │ │ │ ├── common_signin_btn_icon_dark.xml │ │ │ │ ├── common_signin_btn_icon_light.xml │ │ │ │ ├── common_signin_btn_text_dark.xml │ │ │ │ └── common_signin_btn_text_light.xml │ │ │ ├── values-af │ │ │ │ └── common_strings.xml │ │ │ ├── values-am │ │ │ │ └── common_strings.xml │ │ │ ├── values-ar │ │ │ │ └── common_strings.xml │ │ │ ├── values-be │ │ │ │ └── common_strings.xml │ │ │ ├── values-bg │ │ │ │ └── common_strings.xml │ │ │ ├── values-bn-rBD │ │ │ │ └── common_strings.xml │ │ │ ├── values-ca │ │ │ │ └── common_strings.xml │ │ │ ├── values-cs │ │ │ │ └── common_strings.xml │ │ │ ├── values-da │ │ │ │ └── common_strings.xml │ │ │ ├── values-de │ │ │ │ └── common_strings.xml │ │ │ ├── values-el │ │ │ │ └── common_strings.xml │ │ │ ├── values-en-rGB │ │ │ │ └── common_strings.xml │ │ │ ├── values-en-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-es-rUS │ │ │ │ └── common_strings.xml │ │ │ ├── values-es │ │ │ │ ├── common_strings.xml │ │ │ │ └── wallet_strings.xml │ │ │ ├── values-et-rEE │ │ │ │ └── common_strings.xml │ │ │ ├── values-eu-rES │ │ │ │ └── common_strings.xml │ │ │ ├── values-fa │ │ │ │ └── common_strings.xml │ │ │ ├── values-fi │ │ │ │ └── common_strings.xml │ │ │ ├── values-fr-rCA │ │ │ │ └── common_strings.xml │ │ │ ├── values-fr │ │ │ │ └── common_strings.xml │ │ │ ├── values-gl-rES │ │ │ │ └── common_strings.xml │ │ │ ├── values-hi │ │ │ │ └── common_strings.xml │ │ │ ├── values-hr │ │ │ │ └── common_strings.xml │ │ │ ├── values-hu │ │ │ │ └── common_strings.xml │ │ │ ├── values-hy-rAM │ │ │ │ └── common_strings.xml │ │ │ ├── values-in │ │ │ │ └── common_strings.xml │ │ │ ├── values-is-rIS │ │ │ │ └── common_strings.xml │ │ │ ├── values-it │ │ │ │ └── common_strings.xml │ │ │ ├── values-iw │ │ │ │ └── common_strings.xml │ │ │ ├── values-ja │ │ │ │ └── common_strings.xml │ │ │ ├── values-ka-rGE │ │ │ │ └── common_strings.xml │ │ │ ├── values-kk-rKZ │ │ │ │ └── common_strings.xml │ │ │ ├── values-km-rKH │ │ │ │ └── common_strings.xml │ │ │ ├── values-kn-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-ko │ │ │ │ └── common_strings.xml │ │ │ ├── values-ky-rKG │ │ │ │ └── common_strings.xml │ │ │ ├── values-lo-rLA │ │ │ │ └── common_strings.xml │ │ │ ├── values-lt │ │ │ │ └── common_strings.xml │ │ │ ├── values-lv │ │ │ │ └── common_strings.xml │ │ │ ├── values-mk-rMK │ │ │ │ └── common_strings.xml │ │ │ ├── values-ml-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-mn-rMN │ │ │ │ └── common_strings.xml │ │ │ ├── values-mr-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-ms-rMY │ │ │ │ └── common_strings.xml │ │ │ ├── values-my-rMM │ │ │ │ └── common_strings.xml │ │ │ ├── values-nb │ │ │ │ └── common_strings.xml │ │ │ ├── values-ne-rNP │ │ │ │ └── common_strings.xml │ │ │ ├── values-nl │ │ │ │ └── common_strings.xml │ │ │ ├── values-pl │ │ │ │ └── common_strings.xml │ │ │ ├── values-pt-rBR │ │ │ │ └── common_strings.xml │ │ │ ├── values-pt-rPT │ │ │ │ └── common_strings.xml │ │ │ ├── values-pt │ │ │ │ └── common_strings.xml │ │ │ ├── values-ro │ │ │ │ └── common_strings.xml │ │ │ ├── values-ru │ │ │ │ └── common_strings.xml │ │ │ ├── values-si-rLK │ │ │ │ └── common_strings.xml │ │ │ ├── values-sk │ │ │ │ └── common_strings.xml │ │ │ ├── values-sl │ │ │ │ └── common_strings.xml │ │ │ ├── values-sr │ │ │ │ └── common_strings.xml │ │ │ ├── values-sv │ │ │ │ └── common_strings.xml │ │ │ ├── values-sw │ │ │ │ └── common_strings.xml │ │ │ ├── values-ta-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-te-rIN │ │ │ │ └── common_strings.xml │ │ │ ├── values-th │ │ │ │ └── common_strings.xml │ │ │ ├── values-tl │ │ │ │ └── common_strings.xml │ │ │ ├── values-tr │ │ │ │ └── common_strings.xml │ │ │ ├── values-uk │ │ │ │ └── common_strings.xml │ │ │ ├── values-ur-rPK │ │ │ │ └── common_strings.xml │ │ │ ├── values-uz-rUZ │ │ │ │ └── common_strings.xml │ │ │ ├── values-vi │ │ │ │ └── common_strings.xml │ │ │ ├── values-zh-rCN │ │ │ │ └── common_strings.xml │ │ │ ├── values-zh-rHK │ │ │ │ └── common_strings.xml │ │ │ ├── values-zh-rTW │ │ │ │ └── common_strings.xml │ │ │ ├── values-zu │ │ │ │ └── common_strings.xml │ │ │ └── values │ │ │ │ ├── admob_ads_attrs.xml │ │ │ │ ├── admob_iap_style.xml │ │ │ │ ├── admob_strings.xml │ │ │ │ ├── common_colors.xml │ │ │ │ ├── common_strings.xml │ │ │ │ ├── maps_attrs.xml │ │ │ │ ├── version.xml │ │ │ │ ├── wallet_attrs.xml │ │ │ │ ├── wallet_colors.xml │ │ │ │ ├── wallet_strings.xml │ │ │ │ └── wallet_styles.xml │ │ └── src │ │ │ └── android │ │ │ └── UnusedStub.java │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── libs │ │ ├── android-support-v4.jar │ │ ├── jbcrypt-0.3m.jar │ │ ├── okhttp-2.5.0.jar │ │ └── okio-1.6.0.jar │ ├── project.properties │ ├── res │ │ ├── drawable-hdpi │ │ │ └── ic_stat_gcm.png │ │ ├── drawable-mdpi │ │ │ └── ic_stat_gcm.png │ │ ├── drawable-xhdpi │ │ │ └── ic_stat_gcm.png │ │ ├── drawable-xxhdpi │ │ │ └── ic_stat_gcm.png │ │ ├── drawable-xxxhdpi │ │ │ └── ic_stat_gcm.png │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher.png │ │ ├── values-v21 │ │ │ └── styles.xml │ │ └── values │ │ │ └── libs.xml │ └── src │ │ ├── com │ │ └── iktwo │ │ │ └── qtworldsummit │ │ │ ├── GcmBroadcastReceiver.java │ │ │ ├── GcmIntentService.java │ │ │ ├── HttpAsyncRequest.java │ │ │ ├── QtWorldSummit.java │ │ │ ├── TokenUploaderFragment.java │ │ │ └── URLs.java │ │ └── org │ │ └── qtproject │ │ └── qt5 │ │ └── android │ │ └── bindings │ │ └── QtActivity.java ├── deployment.pri ├── generate-qrc.sh ├── qml │ ├── +devel │ │ └── main.qml │ ├── Api.qml │ ├── Content.qml │ ├── Header.qml │ ├── HttpRequest.qml │ ├── Information.qml │ ├── IntroView.qml │ ├── Label.qml │ ├── MainPage.qml │ ├── Map.qml │ ├── PaginationDots.qml │ ├── Schedule.qml │ ├── SingleDayDelegate.qml │ ├── SingleSessionDelegate.qml │ ├── SingleTrackDelegate.qml │ ├── SponsorNotification.qml │ ├── TabButtonStyle.qml │ ├── ToolBar.qml │ ├── TutorialPage.qml │ ├── controls │ │ ├── BaseTabBarPage.qml │ │ ├── Slide.qml │ │ ├── TabBarButton.qml │ │ ├── TabBarController.qml │ │ └── qmldir │ ├── dev.qml │ ├── home.qml │ ├── main.qml │ ├── main_ios.qml │ ├── ui │ │ ├── +android │ │ │ ├── Theme.qml │ │ │ └── qmldir │ │ ├── +ios │ │ │ ├── Theme.qml │ │ │ └── qmldir │ │ ├── +windows │ │ │ ├── Theme.qml │ │ │ └── qmldir │ │ ├── Header.qml │ │ ├── Location.qml │ │ ├── RightNowIcon.qml │ │ ├── Schedule.qml │ │ ├── SingleDayDelegate.qml │ │ ├── SingleSessionDelegate.qml │ │ ├── SingleTrackDelegate.qml │ │ ├── TabBar.qml │ │ ├── Theme.qml │ │ ├── TrackDetailSheet.qml │ │ ├── Viewport.qml │ │ └── qmldir │ └── utils │ │ ├── AccentBottom.qml │ │ ├── AccentLeft.qml │ │ ├── AccentRight.qml │ │ ├── AccentTop.qml │ │ ├── BaseButtonTheme.qml │ │ ├── BaseIcon.qml │ │ ├── BaseWindow.qml │ │ ├── ClickGuard.qml │ │ ├── Fill.qml │ │ ├── GestureArea.qml │ │ ├── HorizontalSpacer.qml │ │ ├── SafeLoader.qml │ │ ├── VerticalSpacer.qml │ │ └── qmldir ├── resources.qrc ├── resources │ └── images │ │ ├── bg.jpg │ │ ├── busyindicator.png │ │ ├── card.png │ │ ├── close.png │ │ ├── favorite.svg │ │ ├── floorplan-bcc.png │ │ ├── home.svg │ │ ├── home_active.svg │ │ ├── icon-back.png │ │ ├── icon-bookmark-hl.png │ │ ├── icon-bookmark.png │ │ ├── icon-clock-filled.png │ │ ├── icon-home.png │ │ ├── icon-information.png │ │ ├── icon-location.png │ │ ├── icon-qtloading.gif │ │ ├── icon-star.png │ │ ├── info.svg │ │ ├── info_active.svg │ │ ├── level_a.svg │ │ ├── level_b.svg │ │ ├── level_c.svg │ │ ├── location.svg │ │ ├── location_active.svg │ │ ├── logo-qws.png │ │ ├── qt_logo.svg │ │ ├── qws2015-hero.jpg │ │ ├── triangular.png │ │ └── tutorial │ │ ├── berlin.svg │ │ ├── calendar.svg │ │ ├── cloud_1.svg │ │ ├── cloud_2.svg │ │ ├── cloud_3.svg │ │ ├── code.svg │ │ └── next_white.svg └── src │ ├── api.cpp │ ├── api.h │ ├── main.cpp │ ├── screenvalues.cpp │ └── screenvalues.h └── design └── .gitkeep /.gitignore: -------------------------------------------------------------------------------- 1 | build-* 2 | .DS_Store 3 | *.pro.user 4 | *~ 5 | schedule.json 6 | tracks.json 7 | node_modules 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Qt World Summit 2 | Qt World Summit - Mobile Application - Simpler scheduling for Sessions + Tracks 3 | 4 | ![](http://ndesai.github.io/qtworldsummit/images/icon.jpg) 5 | -------------------------------------------------------------------------------- /api/app.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var app = exports.app = express(); 3 | 4 | var api = require("./api.js"); 5 | 6 | require('./api.js')(app); 7 | 8 | app.listen(6066) 9 | -------------------------------------------------------------------------------- /api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "qtworldsummit-api", 3 | "description": "", 4 | "version": "0.0.1", 5 | "private": true, 6 | "dependencies": { 7 | "express": "latest", 8 | "redis" : "latest", 9 | "request" : "latest", 10 | "underscore.string": "^3.1.1" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /app/QtWorldSummit.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | 3 | QT += qml quick widgets svg xml 4 | 5 | android { 6 | QT += androidextras 7 | } 8 | 9 | SOURCES += src/main.cpp \ 10 | src/screenvalues.cpp 11 | 12 | HEADERS += \ 13 | src/screenvalues.h 14 | 15 | RESOURCES += resources.qrc 16 | 17 | include(deployment.pri) 18 | 19 | QML_IMPORT_PATH = $$PWD/qml 20 | 21 | ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 22 | 23 | DISTFILES += \ 24 | android/AndroidManifest.xml \ 25 | android/res/values-v21/styles.xml \ 26 | android/res/values/libs.xml \ 27 | android/src/org/qtproject/qt5/android/bindings/QtActivity.java \ 28 | android/src/com/iktwo/qtworldsummit/*.java \ 29 | qml/*.qml \ 30 | qml/controls/*.qml \ 31 | qml/ui/*.qml \ 32 | qml/utils/*.qml \ 33 | qml/utils/+android/*.qml \ 34 | qml/utils/+ios/*.qml \ 35 | qml/utils/+windows/*.qml 36 | -------------------------------------------------------------------------------- /app/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | } 5 | 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:1.0.0' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | jcenter() 14 | } 15 | } 16 | 17 | apply plugin: 'com.android.application' 18 | 19 | dependencies { 20 | compile fileTree(dir: 'libs', include: ['*.jar']) 21 | } 22 | 23 | android { 24 | /******************************************************* 25 | * The following variables: 26 | * - androidBuildToolsVersion, 27 | * - androidCompileSdkVersion 28 | * - qt5AndroidDir - holds the path to qt android files 29 | * needed to build any Qt application 30 | * on Android. 31 | * 32 | * are defined in gradle.properties file. This file is 33 | * updated by QtCreator and androiddeployqt tools. 34 | * Changing them manually might break the compilation! 35 | *******************************************************/ 36 | 37 | compileSdkVersion androidCompileSdkVersion.toInteger() 38 | 39 | buildToolsVersion androidBuildToolsVersion 40 | 41 | sourceSets { 42 | main { 43 | manifest.srcFile 'AndroidManifest.xml' 44 | java.srcDirs = [qt5AndroidDir + '/src', 'src', 'java'] 45 | aidl.srcDirs = [qt5AndroidDir + '/src', 'src', 'aidl'] 46 | res.srcDirs = [qt5AndroidDir + '/res', 'res'] 47 | resources.srcDirs = ['src'] 48 | renderscript.srcDirs = ['src'] 49 | assets.srcDirs = ['assets'] 50 | jniLibs.srcDirs = ['libs'] 51 | } 52 | } 53 | 54 | lintOptions { 55 | abortOnError false 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/README.txt: -------------------------------------------------------------------------------- 1 | Library Project including Google Play services client jar. 2 | 3 | This can be used by an Android project to use the API's provided 4 | by Google Play services. 5 | 6 | There is technically no source, but the src folder is necessary 7 | to ensure that the build system works. The content is actually 8 | located in the libs/ directory. 9 | 10 | 11 | USAGE: 12 | 13 | Make sure you import this Android library project into your IDE 14 | and set this project as a dependency. 15 | 16 | Note that if you use proguard, you will want to include the 17 | options from proguard.txt in your configuration. -------------------------------------------------------------------------------- /app/android/google-play-services_lib/libs/google-play-services.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/libs/google-play-services.jar -------------------------------------------------------------------------------- /app/android/google-play-services_lib/libs/google-play-services.jar.properties: -------------------------------------------------------------------------------- 1 | doc=../../../docs/reference 2 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/proguard.txt: -------------------------------------------------------------------------------- 1 | -keep class * extends java.util.ListResourceBundle { 2 | protected Object[][] getContents(); 3 | } 4 | 5 | # Keep SafeParcelable value, needed for reflection. This is required to support backwards 6 | # compatibility of some classes. 7 | -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 8 | public static final *** NULL; 9 | } 10 | 11 | # Keep the names of classes/members we need for client functionality. 12 | -keepnames @com.google.android.gms.common.annotation.KeepName class * 13 | -keepclassmembernames class * { 14 | @com.google.android.gms.common.annotation.KeepName *; 15 | } 16 | 17 | # Needed for Parcelable/SafeParcelable Creators to not get stripped 18 | -keepnames class * implements android.os.Parcelable { 19 | public static final ** CREATOR; 20 | } -------------------------------------------------------------------------------- /app/android/google-play-services_lib/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-9 15 | android.library=true 16 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/color/common_signin_btn_text_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/color/common_signin_btn_text_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/color/wallet_primary_text_holo_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/color/wallet_secondary_text_holo_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_full_open_on_phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_full_open_on_phone.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_ic_googleplayservices.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_ic_googleplayservices.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_icon_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/common_signin_btn_text_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_medium_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_medium_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_small_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_small_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_standard_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_standard_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_tall_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/ic_plusone_tall_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/powered_by_google_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/powered_by_google_dark.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-hdpi/powered_by_google_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-hdpi/powered_by_google_light.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_icon_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/common_signin_btn_text_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_medium_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_medium_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_small_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_small_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_standard_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_standard_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_tall_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/ic_plusone_tall_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/powered_by_google_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/powered_by_google_dark.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-mdpi/powered_by_google_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-mdpi/powered_by_google_light.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_medium_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_medium_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_small_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_small_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_standard_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_standard_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_tall_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-tvdpi/ic_plusone_tall_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_icon_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/common_signin_btn_text_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_medium_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_medium_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_small_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_small_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_standard_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_standard_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_tall_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/ic_plusone_tall_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/powered_by_google_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/powered_by_google_dark.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xhdpi/powered_by_google_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xhdpi/powered_by_google_light.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_icon_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_disabled_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_focus_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_normal_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_dark.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/common_signin_btn_text_pressed_light.9.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_medium_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_medium_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_small_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_small_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_standard_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_standard_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_tall_off_client.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/ic_plusone_tall_off_client.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/powered_by_google_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/powered_by_google_dark.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable-xxhdpi/powered_by_google_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/google-play-services_lib/res/drawable-xxhdpi/powered_by_google_light.png -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable/common_signin_btn_icon_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable/common_signin_btn_icon_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable/common_signin_btn_text_dark.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/drawable/common_signin_btn_text_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 10 | 13 | 16 | 18 | 19 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-am/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "የGoogle Play አገልግሎቶች ስህተት" 5 | "አንድ መተግበሪያ የGoogle Play አገልግሎቶች እንዲጫኑ ይፈልጋል።" 6 | "አንድ መተግበሪያ የGoogle Play አገልግሎቶች እንዲዘምኑ ይፈልጋል።" 7 | "አንድ መተግበሪያ የAndroid Wear መተግበሪያ ዝማኔ ያስፈልገዋል።" 8 | "አንድ መተግበሪያ የGoogle Play አገልግሎቶች እንዲነቁ ይፈልጋል።" 9 | "በ%1$s የተጠየቀ" 10 | "Google Play አገልግሎቶችን አግኝ" 11 | "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ስልክዎ ላይ የሉም።" 12 | "ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ጡባዊዎ ላይ የሉም።" 13 | "Google Play አገልግሎቶችን አግኝ" 14 | "Google Play አገልግሎቶችን አንቃ" 15 | "Google Play አገልግሎቶችን እስካላነቁ ድረስ ይህ መተግበሪያ አይሰራም።" 16 | "Google Play አገልግሎቶችን አንቃ" 17 | "Google Play አገልግሎቶችን ያዘምኑ" 18 | "Android Wearን ያዘምኑ" 19 | "Google Play አገልግሎቶችን እስኪያዘምኑ ድረስ ይህ መተግበሪያ አይሰራም።" 20 | "የAndroid Wear መተግበሪያውን እስኪያዘምኑት ድረስ ይህ መተግበሪያ አያሄድም።" 21 | "የአውታረ መረብ ስህተት" 22 | "ከGoogle Play አገልግሎቶች ጋር ለመገናኘት የውሂብ ግንኙነት ያስፈልጋል።" 23 | "ልክ ያልሆነ መለያ" 24 | "የተገለጸው መለያ በዚህ መሣሪያ ላይ የለም። እባክው የተለየ መለያ ይምረጡ።" 25 | "በGoogle Play አገልግሎቶች ላይ ያልታወቀ ችግር።" 26 | "Google Play አገልግሎቶች" 27 | "የGoogle Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።" 28 | "ያዘምኑ" 29 | "ግባ" 30 | "በGoogle ይግቡ" 31 | "ስልክ ላይ ክፈት" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-be/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Атрымаць службы Google Play" 5 | "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма ў вашым тэлефоне." 6 | "Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма на вашым планшэце." 7 | "Атрымаць службы Google Play" 8 | "Уключыць службы Google Play" 9 | "Гэта прыкладанне не будзе працаваць, пакуль вы не ўключыце службы Google Play." 10 | "Уключыць службы Google Play" 11 | "Абнаўленне службаў Google Play" 12 | "Гэта прыкладанне не будзе працаваць падчас абнаўлення службаў Google Play." 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | "Невядомая праблема са службамі Google Play." 22 | "Службы Google Play" 23 | "Службы Google Play, да якiх прывязаны некаторыя прыкладаннi, не падтрымлiваюцца на вашай прыладзе. Па дапамогу звярнiцеся да вытворцы." 24 | 25 | 26 | "Абнавіць" 27 | "Увайсцi" 28 | "Увайсці ў Google" 29 | 30 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-es/wallet_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Comprar con Google 4 | 5 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-iw/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "‏שגיאה בשירותי Google Play" 5 | "‏קיימת אפליקציה המחייבת התקנה של שירותי Google Play." 6 | "‏קיימת אפליקציה המחייבת עדכון עבור שירותי Google Play." 7 | "‏אפליקציה מסוימת דורשת עדכון לאפליקציה Android Wear." 8 | "‏קיימת אפליקציה המחייבת הפעלה של שירותי Google Play." 9 | "התבקשה על ידי %1$s" 10 | "‏קבל את שירותי Google Play" 11 | "‏אפליקציה זו לא תפעל ללא שירותי Google Play, החסרים בטלפון שלך." 12 | "‏אפליקציה זו לא תפעל ללא שירותי Google Play, החסרים בטאבלט שלך." 13 | "‏קבל את שירותי Google Play" 14 | "‏הפעלת שירותי Google Play" 15 | "‏אפליקציה זו לא תעבוד אם לא תפעיל את שירותי Google Play." 16 | "‏הפעל את שירותי Google Play" 17 | "‏עדכון שירותי Google Play" 18 | "‏עדכון Android Wear" 19 | "‏אפליקציה זו לא תפעל אם לא תעדכן את שירותי Google Play." 20 | "‏אפליקציה זו לא תפעל עד שתעדכן את האפליקציה Android Wear." 21 | "שגיאת רשת." 22 | "‏דרוש חיבור נתונים כדי להתחבר לשירותי Google Play." 23 | "חשבון לא חוקי" 24 | "החשבון שצוין לא קיים במכשיר זה. בחר חשבון אחר." 25 | "‏בעיה לא ידועה בשירותי Google Play." 26 | "‏שירותי Google Play" 27 | "‏שירותי Google Play, שחלק מהאפליקציות שלך מתבססות עליהם, אינם נתמכים על ידי המכשיר שברשותך. צור קשר עם היצרן לקבלת סיוע." 28 | "עדכן" 29 | "היכנס" 30 | "‏היכנס באמצעות Google" 31 | "פתח בטלפון" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-ja/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Google Play開発者サービスのエラー" 5 | "アプリではGoogle Play開発者サービスをインストールする必要があります" 6 | "アプリではGoogle Play開発者サービスを更新する必要があります" 7 | "Android Wearアプリの更新が必要です。" 8 | "アプリではGoogle Play開発者サービスを有効にする必要があります" 9 | "%1$sによるリクエスト" 10 | "Play開発者サービスの入手" 11 | "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いの携帯端末にはインストールされていません。" 12 | "このアプリの実行にはGoogle Play開発者サービスが必要ですが、お使いのタブレットにはインストールされていません。" 13 | "Play開発者サービスの入手" 14 | "Play開発者サービスの有効化" 15 | "このアプリの実行には、Google Play開発者サービスの有効化が必要です。" 16 | "Play開発者サービスの有効化" 17 | "Play開発者サービスの更新" 18 | "Android Wearの更新" 19 | "このアプリの実行には、Google Play開発者サービスの更新が必要です。" 20 | "Android Wearアプリを使用するにはアプリの更新が必要です。" 21 | "ネットワークエラー" 22 | "Google Play開発者サービスに接続するには、データ接続が必要です。" 23 | "無効なアカウント" 24 | "指定したアカウントはこの端末上に存在しません。別のアカウントを選択してください。" 25 | "Google Play開発者サービスで原因不明の問題が発生しました。" 26 | "Google Play開発者サービス" 27 | "一部のアプリが使用しているGoogle Play開発者サービスは、お使いの端末ではサポートされていません。詳しくは、端末メーカーまでお問い合わせください。" 28 | "更新" 29 | "ログイン" 30 | "Googleでログイン" 31 | "端末で開く" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-ko/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Google Play 서비스 오류" 5 | "Google Play 서비스를 설치해야 하는 애플리케이션입니다." 6 | "Google Play 서비스를 업데이트해야 하는 애플리케이션입니다." 7 | "Android Wear 앱에 대한 업데이트가 필요한 애플리케이션이 있습니다." 8 | "Google Play 서비스를 사용 설정해야 하는 애플리케이션입니다." 9 | "%1$s에서 요청" 10 | "Google Play 서비스 설치" 11 | "휴대전화에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다." 12 | "태블릿에 Google Play 서비스가 설치되어 있어야 이 앱이 실행됩니다." 13 | "Google Play 서비스 설치" 14 | "Google Play 서비스 사용" 15 | "Google Play 서비스를 사용하도록 설정해야 이 앱이 작동합니다." 16 | "Google Play 서비스 사용" 17 | "Google Play 서비스 업데이트" 18 | "Android Wear 업데이트" 19 | "Google Play 서비스를 업데이트해야만 이 앱이 실행됩니다." 20 | "Android Wear 앱을 업데이트해야만 이 앱이 실행됩니다." 21 | "네트워크 오류" 22 | "Google Play 서비스에 연결하려면 데이터 연결이 필요합니다." 23 | "올바르지 않은 계정" 24 | "지정한 계정이 이 기기에 존재하지 않습니다. 다른 계정을 선택하세요." 25 | "Google Play 서비스에 알 수 없는 문제가 발생했습니다." 26 | "Google Play 서비스" 27 | "일부 사용자 애플리케이션에 필요한 Google Play 서비스가 사용자 기기에서 지원되지 않습니다. 기기 제조업체에 문의하시기 바랍니다." 28 | "업데이트" 29 | "로그인" 30 | "Google 계정으로 로그인" 31 | "휴대전화에서 열기" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-zh-rCN/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Google Play服务出错" 5 | "安装Google Play服务后才能运行应用。" 6 | "更新Google Play服务后才能运行应用。" 7 | "某个应用需要更新Android Wear应用才能正常运行。" 8 | "启用Google Play服务后才能运行应用。" 9 | "%1$s发出的请求" 10 | "获取Google Play服务" 11 | "您的手机中没有Google Play服务,您必须先安装该服务才能运行此应用。" 12 | "您的平板电脑中没有Google Play服务,您必须先安装该服务才能运行此应用。" 13 | "获取Google Play服务" 14 | "启用Google Play服务" 15 | "您必须先启用Google Play服务才能运行此应用。" 16 | "启用Google Play服务" 17 | "更新Google Play服务" 18 | "更新Android Wear" 19 | "您必须先更新Google Play服务才能运行此应用。" 20 | "只有更新Android Wear应用后,此应用才能正常运行。" 21 | "网络错误" 22 | "您必须有数据网络连接才能接入Google Play服务。" 23 | "无效帐户" 24 | "此设备上不存在指定的帐户,请选择其他帐户。" 25 | "Google Play服务出现未知问题。" 26 | "Google Play服务" 27 | "您的设备不支持部分应用所依赖的Google Play服务。请与设备制造商联系,以寻求帮助。" 28 | "更新" 29 | "登录" 30 | "使用Google帐户登录" 31 | "在手机上打开" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-zh-rHK/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Google Play 服務錯誤" 5 | "必須安裝「Google Play 服務」,才能使用應用程式。" 6 | "必須更新「Google Play 服務」,才能使用應用程式。" 7 | "有一個應用程式要求更新 Android Wear 應用程式。" 8 | "必須啟用「Google Play 服務」,才能使用應用程式。" 9 | "「%1$s」提出要求" 10 | "取得 Google Play 服務" 11 | "您的手機未安裝 Google Play 服務,安裝後才能執行這個應用程式。" 12 | "您的平板電腦未安裝 Google Play 服務,安裝後才能執行這個應用程式。" 13 | "取得 Google Play 服務" 14 | "啟用 Google Play 服務" 15 | "您必須啟用 Google Play 服務,才能執行這個應用程式。" 16 | "啟用 Google Play 服務" 17 | "更新 Google Play 服務" 18 | "更新 Android Wear" 19 | "您必須更新 Google Play 服務,才能執行這個應用程式。" 20 | "您必須更新 Android Wear 應用程式,這個應用程式才能運作。" 21 | "網絡錯誤" 22 | "要連接 Google Play 服務,必需數據連線。" 23 | "無效的帳戶" 24 | "這個裝置上沒有您指定的帳戶,請選擇其他帳戶。" 25 | "Google Play 服務出現不明問題。" 26 | "Google Play 服務" 27 | "您的裝置不支援部分應用程式所需的 Google Play 服務。如需協助,請與您的裝置製造商聯絡。" 28 | "更新" 29 | "登入" 30 | "登入 Google" 31 | "在手機中開啟" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values-zh-rTW/common_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | "Google Play 服務發生錯誤" 5 | "應用程式要求安裝 Google Play 服務。" 6 | "應用程式要求更新 Google Play 服務。" 7 | "有一個應用程式要求更新 Android Wear 應用程式。" 8 | "應用程式要求啟用 Google Play 服務。" 9 | "「%1$s」提出要求" 10 | "取得 Google Play 服務" 11 | "您的手機並未安裝 Google Play 服務,所以無法執行這個應用程式。" 12 | "您的平板電腦並未安裝 Google Play 服務,所以無法執行這個應用程式。" 13 | "取得 Google Play 服務" 14 | "啟用 Google Play 服務" 15 | "您必須啟用 Google Play 服務,這個應用程式才能運作。" 16 | "啟用 Google Play 服務" 17 | "更新 Google Play 服務" 18 | "更新 Android Wear" 19 | "您必須更新 Google Play 服務,才能執行這個應用程式。" 20 | "您必須更新 Android Wear 應用程式,這個應用程式才能運作。" 21 | "網路錯誤" 22 | "需要數據連線才能連上 Google Play 服務。" 23 | "無效的帳戶" 24 | "這個裝置上沒有您所指定的帳戶,請選擇其他帳戶。" 25 | "Google Play 服務發生不明問題。" 26 | "Google Play 服務" 27 | "您的裝置不支援部分應用程式所需的 Google Play 服務。如需協助,請與您的裝置製造商聯絡。" 28 | "更新" 29 | "登入" 30 | "使用 Google 帳戶登入" 31 | "在手機上開啟" 32 | 33 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/admob_ads_attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/admob_iap_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/admob_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Save image 4 | "Allow Ad to store image in Picture gallery?" 5 | Accept 6 | Decline 7 | Create calendar event 8 | Allow Ad to create a calendar event? 9 | 10 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/common_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | @android:color/white 5 | @android:color/white 6 | #FFAAAAAA 7 | @android:color/white 8 | #FF737373 9 | @android:color/white 10 | #FFAAAAAA 11 | #FF737373 12 | #FFDD4B39 13 | #d2d2d2 14 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/maps_attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/version.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6171000 4 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/wallet_colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | #fff3f3f3 9 | #bebebe 10 | #80bebebe 11 | #323232 12 | #80323232 13 | #ffb2b2b2 14 | #ff000000 15 | #808080 16 | #808080 17 | #6633b5e5 18 | #6633b5e5 19 | #ff33b5e5 20 | #0000ee 21 | 22 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/wallet_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | Buy with Google 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/res/values/wallet_styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 13 | 14 | 17 | 18 | 26 | 27 | 31 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /app/android/google-play-services_lib/src/android/UnusedStub.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 The Android Open Source Project 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package android; 17 | 18 | // Stub java file to make inclusion into some IDE's work. 19 | public final class UnusedStub { 20 | private UnusedStub() { } 21 | } 22 | -------------------------------------------------------------------------------- /app/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Apr 10 15:27:10 PDT 2013 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip 7 | -------------------------------------------------------------------------------- /app/android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /app/android/libs/android-support-v4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/libs/android-support-v4.jar -------------------------------------------------------------------------------- /app/android/libs/jbcrypt-0.3m.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/libs/jbcrypt-0.3m.jar -------------------------------------------------------------------------------- /app/android/libs/okhttp-2.5.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/libs/okhttp-2.5.0.jar -------------------------------------------------------------------------------- /app/android/libs/okio-1.6.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/libs/okio-1.6.0.jar -------------------------------------------------------------------------------- /app/android/project.properties: -------------------------------------------------------------------------------- 1 | android.library.reference.1=google-play-services_lib/ 2 | -------------------------------------------------------------------------------- /app/android/res/drawable-hdpi/ic_stat_gcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/drawable-hdpi/ic_stat_gcm.png -------------------------------------------------------------------------------- /app/android/res/drawable-mdpi/ic_stat_gcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/drawable-mdpi/ic_stat_gcm.png -------------------------------------------------------------------------------- /app/android/res/drawable-xhdpi/ic_stat_gcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/drawable-xhdpi/ic_stat_gcm.png -------------------------------------------------------------------------------- /app/android/res/drawable-xxhdpi/ic_stat_gcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/drawable-xxhdpi/ic_stat_gcm.png -------------------------------------------------------------------------------- /app/android/res/drawable-xxxhdpi/ic_stat_gcm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/drawable-xxxhdpi/ic_stat_gcm.png -------------------------------------------------------------------------------- /app/android/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/android/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/android/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/android/res/values/libs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://download.qt-project.org/ministro/android/qt5/qt-5.4 5 | 6 | 7 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/android/src/com/iktwo/qtworldsummit/GcmBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.iktwo.qtworldsummit; 2 | 3 | import android.app.Activity; 4 | import android.content.ComponentName; 5 | import android.content.Context; 6 | import android.content.Intent; 7 | import android.support.v4.content.WakefulBroadcastReceiver; 8 | 9 | public class GcmBroadcastReceiver extends WakefulBroadcastReceiver { 10 | @Override 11 | public void onReceive(Context context, Intent intent) { 12 | // Explicitly specify that GcmIntentService will handle the intent. 13 | ComponentName comp = new ComponentName(context.getPackageName(), 14 | GcmIntentService.class.getName()); 15 | // Start the service, keeping the device awake while it is launching. 16 | startWakefulService(context, (intent.setComponent(comp))); 17 | setResultCode(Activity.RESULT_OK); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/android/src/com/iktwo/qtworldsummit/GcmIntentService.java: -------------------------------------------------------------------------------- 1 | package com.iktwo.qtworldsummit; 2 | 3 | import android.app.IntentService; 4 | import android.app.NotificationManager; 5 | import android.app.PendingIntent; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | import android.content.SharedPreferences; 9 | import android.os.Bundle; 10 | import android.support.v4.app.NotificationCompat; 11 | import android.util.Log; 12 | import android.net.Uri; 13 | 14 | import com.google.android.gms.gcm.GoogleCloudMessaging; 15 | 16 | public class GcmIntentService extends IntentService { 17 | public static final int NOTIFICATION_ID = 1; 18 | private static final String TAG = "GcmIntentService"; 19 | NotificationCompat.Builder builder; 20 | private NotificationManager mNotificationManager; 21 | 22 | public GcmIntentService() { 23 | super("GcmIntentService"); 24 | } 25 | 26 | @Override 27 | protected void onHandleIntent(Intent intent) { 28 | Bundle extras = intent.getExtras(); 29 | GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this); 30 | 31 | String messageType = gcm.getMessageType(intent); 32 | 33 | if (!extras.isEmpty()) { 34 | if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) { 35 | // sendNotification("Send error: " + extras.toString()); 36 | } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) { 37 | // sendNotification("Deleted messages on server: " + extras.toString()); 38 | } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) { 39 | String action = extras.getString("action"); 40 | 41 | if (action == null) 42 | action = QtWorldSummit.ACTION_MAIN; 43 | 44 | 45 | String url = extras.getString("url"); 46 | 47 | if (url == null) 48 | url = ""; 49 | 50 | sendNotification(extras.getString("title"), extras.getString("message"), url, action); 51 | } 52 | } 53 | // Release the wake lock provided by the WakefulBroadcastReceiver. 54 | GcmBroadcastReceiver.completeWakefulIntent(intent); 55 | } 56 | 57 | public void sendNotification(String title, String msg, String url, String action) { 58 | mNotificationManager = (NotificationManager) 59 | this.getSystemService(Context.NOTIFICATION_SERVICE); 60 | 61 | Intent intent = new Intent(action, Uri.parse("qtworldsummit://QtWorldSummit"), this, QtWorldSummit.class); 62 | 63 | intent.putExtra("TITLE", title); 64 | intent.putExtra("MESSAGE", msg); 65 | intent.putExtra("URL", url); 66 | 67 | PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 68 | 69 | NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 70 | .setSmallIcon(R.drawable.ic_stat_gcm) 71 | .setContentTitle(title) 72 | .setStyle(new NotificationCompat.BigTextStyle().bigText(msg)); 73 | 74 | if (!action.equals(QtWorldSummit.ACTION_SPONSOR)) 75 | mBuilder.setContentText(msg); 76 | 77 | SharedPreferences prefs = getSharedPreferences(QtWorldSummit.class.getSimpleName(), Context.MODE_PRIVATE); 78 | boolean pushNotificationsActiveState = prefs.getBoolean(QtWorldSummit.PUSH_NOTIFICATIONS_ID, true); 79 | mBuilder.setAutoCancel(true); 80 | 81 | if (pushNotificationsActiveState) { 82 | mBuilder.setContentIntent(contentIntent); 83 | mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build()); 84 | } else { 85 | Log.d(TAG, "Skipping notification"); 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /app/android/src/com/iktwo/qtworldsummit/HttpAsyncRequest.java: -------------------------------------------------------------------------------- 1 | package com.iktwo.qtworldsummit; 2 | 3 | import android.os.AsyncTask; 4 | import android.util.Log; 5 | 6 | import com.squareup.okhttp.CacheControl; 7 | import com.squareup.okhttp.OkHttpClient; 8 | import com.squareup.okhttp.Request; 9 | import com.squareup.okhttp.Response; 10 | 11 | import java.io.IOException; 12 | import java.util.ArrayList; 13 | import java.util.concurrent.TimeUnit; 14 | 15 | public class HttpAsyncRequest extends AsyncTask> { 16 | private static final String TAG = HttpAsyncRequest.class.getSimpleName(); 17 | 18 | AsyncResponse requester = null; 19 | 20 | public HttpAsyncRequest(AsyncResponse requester) { 21 | this.requester = requester; 22 | } 23 | 24 | @Override 25 | protected ArrayList doInBackground(String... params) { 26 | ArrayList reply = new ArrayList(); 27 | 28 | OkHttpClient httpclient = new OkHttpClient(); 29 | httpclient.setConnectTimeout(10, TimeUnit.SECONDS); 30 | 31 | Response response; 32 | 33 | try { 34 | /// Create request with cache disabled 35 | Request request = new Request.Builder() 36 | .cacheControl(new CacheControl.Builder().noCache().build()) 37 | .url(params[0]) 38 | .build(); 39 | 40 | response = httpclient.newCall(request).execute(); 41 | 42 | if (response.isSuccessful()) { 43 | /// Add Url to the reply 44 | reply.add(params[0]); 45 | 46 | /// Add response to the reply 47 | reply.add(response.body().string()); 48 | 49 | response.body().close(); 50 | } 51 | } catch (IOException e) { 52 | reply.add("error"); 53 | reply.add(e.getMessage()); 54 | Log.e(TAG, "ERROR:" + e.toString()); 55 | } 56 | 57 | return reply; 58 | } 59 | 60 | @Override 61 | protected void onPostExecute(ArrayList reply) { 62 | requester.processFinish(reply); 63 | } 64 | 65 | public interface AsyncResponse { 66 | void processFinish(ArrayList reply); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /app/android/src/com/iktwo/qtworldsummit/TokenUploaderFragment.java: -------------------------------------------------------------------------------- 1 | package com.iktwo.qtworldsummit; 2 | 3 | import android.app.Activity; 4 | import android.app.Fragment; 5 | import android.content.Context; 6 | import android.content.SharedPreferences; 7 | import android.os.AsyncTask; 8 | import android.os.Bundle; 9 | import android.util.Log; 10 | 11 | import org.mindrot.jbcrypt.BCrypt; 12 | 13 | import java.util.ArrayList; 14 | 15 | public class TokenUploaderFragment extends Fragment implements HttpAsyncRequest.AsyncResponse { 16 | private static final String TAG = TokenUploaderFragment.class.getSimpleName(); 17 | private String mToken; 18 | 19 | @Override 20 | public void onCreate(Bundle savedInstanceState) { 21 | super.onCreate(savedInstanceState); 22 | 23 | setRetainInstance(true); 24 | } 25 | 26 | @Override 27 | public void onAttach(Activity activity) { 28 | super.onAttach(activity); 29 | } 30 | 31 | public void uploadToken(String token) { 32 | mToken = token; 33 | new HashTask(this).execute(token); 34 | } 35 | 36 | public void hashFinish(String output) { 37 | Log.d(TAG, "hash finish " + output); 38 | if (mToken != null) { 39 | String url = URLs.SERVER_URL + "/adduser?id=" + mToken + "&hash=" + output; 40 | new HttpAsyncRequest(this).execute(url); 41 | } 42 | } 43 | 44 | @Override 45 | public void processFinish(ArrayList output) { 46 | /// TODO: check output, if ok, set that token was uploaded properly, otherwise try again next time 47 | if (output != null && output.size() == 2) { 48 | Log.d(TAG, "1 - " + output.get(0)); 49 | Log.d(TAG, "2 - " + output.get(1)); 50 | 51 | if (output.get(1).equals("id registered")) { 52 | Log.d(TAG, "token uploaded :D"); 53 | 54 | SharedPreferences prefs = getActivity().getSharedPreferences(QtWorldSummit.class.getSimpleName(), Context.MODE_PRIVATE); 55 | SharedPreferences.Editor editor = prefs.edit(); 56 | editor.putBoolean(QtWorldSummit.UPLOADED_ID, true); 57 | editor.commit(); 58 | } 59 | } else { 60 | /// Assume error in here 61 | } 62 | } 63 | 64 | private class HashTask extends AsyncTask { 65 | private static final String TAG = "HashTask"; 66 | TokenUploaderFragment requester = null; 67 | 68 | public HashTask(TokenUploaderFragment requester) { 69 | this.requester = requester; 70 | } 71 | 72 | @Override 73 | protected String doInBackground(String... params) { 74 | return BCrypt.hashpw(params[0] + "xdf8", BCrypt.gensalt(10)); 75 | } 76 | 77 | @Override 78 | protected void onPostExecute(String reply) { 79 | requester.hashFinish(reply); 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /app/android/src/com/iktwo/qtworldsummit/URLs.java: -------------------------------------------------------------------------------- 1 | package com.iktwo.qtworldsummit; 2 | 3 | public class URLs { 4 | public static final String SENDER_ID = ""; 5 | public static final String SERVER_URL = ""; 6 | } 7 | -------------------------------------------------------------------------------- /app/deployment.pri: -------------------------------------------------------------------------------- 1 | android-no-sdk { 2 | target.path = /data/user/qt 3 | export(target.path) 4 | INSTALLS += target 5 | } else:android { 6 | x86 { 7 | target.path = /libs/x86 8 | } else: armeabi-v7a { 9 | target.path = /libs/armeabi-v7a 10 | } else { 11 | target.path = /libs/armeabi 12 | } 13 | export(target.path) 14 | INSTALLS += target 15 | } else:unix { 16 | isEmpty(target.path) { 17 | qnx { 18 | target.path = /tmp/$${TARGET}/bin 19 | } else { 20 | target.path = /opt/$${TARGET}/bin 21 | } 22 | export(target.path) 23 | } 24 | INSTALLS += target 25 | } 26 | 27 | export(INSTALLS) 28 | -------------------------------------------------------------------------------- /app/generate-qrc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Generate qrc 4 | 5 | QMLBASEDIR=qml 6 | RESOURCEBASEDIR=resources 7 | TMPQRC=.resources.qrc 8 | QRC=resources.qrc 9 | 10 | # 11 | # 12 | # main_ios.qml 13 | # home.qml 14 | # dev.qml 15 | # img/triangular.png 16 | # 17 | # 18 | 19 | { 20 | echo "" 21 | echo -ne '\t' 22 | echo "" 23 | for i in `find ${QMLBASEDIR} -type f | grep -v .DS_Store`; 24 | do 25 | echo -ne '\t\t' 26 | echo "${i}" 27 | done; 28 | echo -ne '\t' 29 | echo "" 30 | echo -ne '\t' 31 | echo "" 32 | for i in `find ${RESOURCEBASEDIR} -type f | grep -v .DS_Store`; 33 | do 34 | echo -ne '\t\t' 35 | echo "${i}" 36 | done; 37 | echo -ne '\t' 38 | echo "" 39 | echo "" 40 | } >> ${TMPQRC} 41 | 42 | 43 | mv ${TMPQRC} ${QRC} 44 | cat ${QRC} 45 | -------------------------------------------------------------------------------- /app/qml/+devel/main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtQuick.Controls 1.4 as QC 3 | import QtQuick.Controls.Styles 1.4 as CS 4 | import QtQuick.Layouts 1.1 as LA 5 | import QtWorldSummit 1.5 6 | import ui 1.5 as UI 7 | 8 | QC.ApplicationWindow { 9 | property var resolutions: [ 10 | {"height": 480, "width": 320, "name": "HVGA", "ratio": "3:2"}, 11 | {"height": 640, "width": 360, "name": "nHD", "ratio": "16:9"}, 12 | {"height": 640, "width": 480, "name": "VGA", "ratio": "4:3"}, 13 | {"height": 800, "width": 480, "name": "WVGA", "ratio": "5:3"}, 14 | {"height": 800, "width": 600, "name": "SVGA", "ratio": "4:3"}, 15 | {"height": 960, "width": 540, "name": "qHD", "ratio": "16:9"}, 16 | {"height": 1280, "width": 720, "name": "720p", "ratio": "16:9"}, 17 | {"height": 1280, "width": 800, "name": "WXGA", "ratio": "16:10"}, 18 | {"height": 1920, "width": 1080, "name": "1080p", "ratio": "16:9"} 19 | ] 20 | 21 | property int currentResolution: 5 22 | 23 | property bool isScreenPortrait: height >= width 24 | 25 | visible: true 26 | width: resolutions[currentResolution]["width"] 27 | height: resolutions[currentResolution]["height"] 28 | 29 | QC.StackView { 30 | id: stackView 31 | 32 | anchors.fill: parent 33 | 34 | initialItem: tutorial 35 | } 36 | 37 | Component { 38 | id: tutorial 39 | 40 | TutorialPage { 41 | onClosed: stackView.replace(mainPage) 42 | } 43 | } 44 | 45 | Component { 46 | id: mainPage 47 | MainPage { } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/qml/Content.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import utils 1.5 3 | import controls 1.5 4 | import ui 1.5 5 | 6 | Rectangle { 7 | Item { 8 | anchors { 9 | top: parent.top 10 | left: parent.left 11 | right: parent.right 12 | bottom: _tabBarController.top 13 | } 14 | 15 | Schedule { 16 | id: _schedule 17 | 18 | controller: _tabBarController 19 | } 20 | 21 | // TODO: ND - Location.qml 22 | Location { 23 | id: _location 24 | 25 | controller: _tabBarController 26 | } 27 | 28 | // TODO: ND - Information.qml 29 | BaseTabBarPage { 30 | id: _information 31 | 32 | controller: _tabBarController 33 | 34 | Rectangle { 35 | anchors.fill: parent 36 | color: "#3498db" 37 | } 38 | } 39 | } 40 | 41 | TabBar { 42 | id: _tabBarController 43 | 44 | onHideAllPages: { 45 | // close all sheets 46 | } 47 | } 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /app/qml/Header.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import utils 1.5 as Utils 3 | import ui 1.5 as UI 4 | 5 | Rectangle { 6 | id: root 7 | 8 | default property alias content: itemContainer.data 9 | 10 | property alias leftContent: itemContainerLeft.data 11 | property alias rightContent: itemContainerRight.data 12 | 13 | property bool enableLeftAndRightContainers: false 14 | 15 | anchors { 16 | top: parent.top 17 | left: parent.left 18 | right: parent.right 19 | } 20 | 21 | height: UI.Theme.heightHeader 22 | 23 | color: UI.Theme.colorLightGrey 24 | clip: true 25 | 26 | Rectangle { 27 | anchors { 28 | left: parent.left 29 | right: parent.right 30 | bottom: parent.bottom 31 | } 32 | 33 | height: 2 34 | color: UI.Theme.colorLightGreyAccent 35 | } 36 | 37 | Item { 38 | id: itemContainer 39 | 40 | anchors { 41 | top: parent.top; topMargin: UI.Theme.marginTop 42 | bottom: parent.bottom 43 | left: enableLeftAndRightContainers ? itemContainerLeft.right : parent.left; leftMargin: 10 44 | right: enableLeftAndRightContainers ? itemContainerRight.left : parent.right; rightMargin: anchors.leftMargin 45 | } 46 | } 47 | 48 | Item { 49 | id: itemContainerLeft 50 | 51 | anchors { 52 | top: parent.top; topMargin: UI.Theme.marginTop 53 | left: parent.left 54 | bottom: parent.bottom 55 | } 56 | 57 | width: UI.Theme.dp(110) 58 | } 59 | 60 | Item { 61 | id: itemContainerRight 62 | 63 | anchors { 64 | top: parent.top; topMargin: UI.Theme.marginTop 65 | right: parent.right 66 | bottom: parent.bottom 67 | } 68 | 69 | width: UI.Theme.dp(110) 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /app/qml/HttpRequest.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | 3 | QtObject { 4 | property url url 5 | 6 | property bool busy: false 7 | property bool debug: false 8 | 9 | signal requestFinished 10 | 11 | function httpRequest(parameters, operation, callback, callbackError, finishedCallback) { 12 | var doc = new XMLHttpRequest() 13 | 14 | doc.onreadystatechange = function() { 15 | if (doc.readyState === XMLHttpRequest.DONE) { 16 | if (doc.status === 200) { 17 | if (debug) 18 | console.log(operation, url + (parameters !== "" ? "?" + parameters : ""), "succeeded") 19 | 20 | callback(doc.responseText, url + (parameters !== "" ? "?" + parameters : "")) 21 | } else { 22 | if (debug) 23 | console.log(operation, url + (parameters !== "" ? "?" + parameters : ""), "failed with code", doc.status) 24 | 25 | callbackError(doc.responseText, url + (parameters !== "" ? "?" + parameters : "")) 26 | } 27 | 28 | if (finishedCallback) 29 | finishedCallback(url + (parameters !== "" ? "?" + parameters : "")) 30 | 31 | busy = false 32 | requestFinished(parameters) 33 | } 34 | } 35 | 36 | if (debug) 37 | console.log(operation, url + (parameters !== "" ? "?" + parameters : "")) 38 | 39 | doc.open(operation, url + (parameters !== "" ? "?" + parameters : "")) 40 | doc.send() 41 | } 42 | 43 | function get(parameters, callBack, errorCallback, finishedCallback) { 44 | busy = true 45 | var functionCallback = callBack 46 | if (functionCallback === undefined) { 47 | functionCallback = function(reply) { 48 | console.log("Reply finished for url:", url + (parameters !== "" ? "?" + parameters : ""), "but no callback provided") 49 | console.log("Reply:", reply) 50 | } 51 | } 52 | 53 | var functionCallbackError = errorCallback 54 | if (functionCallbackError === undefined) { 55 | functionCallbackError = function(reply) { 56 | console.log("Reply failed for url:", url + (parameters !== "" ? "?" + parameters : ""), "but no error callback provided") 57 | console.log("Reply:", reply) 58 | } 59 | } 60 | 61 | if (debug) 62 | console.log("Trying to get url:", url + (parameters !== "" ? " parameters " + parameters : "")) 63 | 64 | if (url !== "") 65 | httpRequest(parameters, "GET", functionCallback, errorCallback, finishedCallback) 66 | else 67 | console.log("Error in HttpRequest, can't call get without url") 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /app/qml/Label.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtQuick.Controls 1.4 3 | import ui 1.5 as UI 4 | 5 | Label { 6 | font.family: UI.Theme.fontFamily 7 | color: "#000000" 8 | } 9 | -------------------------------------------------------------------------------- /app/qml/Map.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtQuick.Controls 1.4 3 | import QtQuick.Controls.Styles 1.4 4 | import ui 1.5 5 | 6 | Item { 7 | id: root 8 | 9 | property var model: [ 10 | { "title" : "Level A", "source" : "qrc:/images/level_a.svg", "width" : 809, "height" : 1024 }, 11 | { "title" : "Level B", "source" : "qrc:/images/level_b.svg", "width" : 838, "height" : 1024 }, 12 | { "title" : "Level C", "source" : "qrc:/images/level_c.svg", "width" : 1024, "height" : 1024 } 13 | ] 14 | 15 | clip: true 16 | 17 | Rectangle { 18 | anchors.fill: parent 19 | } 20 | 21 | Row { 22 | id: rowTabs 23 | 24 | anchors { 25 | left: parent.left 26 | right: parent.right 27 | } 28 | 29 | Repeater { 30 | model: root.model 31 | 32 | delegate: Rectangle { 33 | property bool active: listView.currentIndex === index 34 | 35 | color: active ? Theme.activeTabColor : Theme.unactiveTabColor 36 | 37 | width: parent.width / 3 38 | height: text.height + (Theme.spacing * 2) 39 | 40 | Label { 41 | id: text 42 | 43 | anchors.fill: parent 44 | 45 | font { 46 | pixelSize: Theme.fontSizeLarge 47 | weight: Font.Light 48 | } 49 | 50 | horizontalAlignment: Text.AlignHCenter 51 | verticalAlignment: Text.AlignVCenter 52 | color: parent.active ? Theme.unactiveTabColor : Theme.activeTabColor 53 | text: modelData.title 54 | } 55 | 56 | MouseArea { 57 | anchors.fill: parent 58 | onClicked: listView.positionViewAtIndex(index, ListView.Contain) 59 | } 60 | } 61 | } 62 | } 63 | 64 | ListView { 65 | id: listView 66 | 67 | anchors { 68 | top: rowTabs.bottom 69 | bottom: parent.bottom 70 | left: parent.left 71 | right: parent.right 72 | } 73 | 74 | orientation: ListView.Horizontal 75 | highlightRangeMode: ListView.StrictlyEnforceRange 76 | snapMode: ListView.SnapOneItem 77 | 78 | model: root.model 79 | 80 | delegate: Item { 81 | height: ListView.view.height 82 | width: ListView.view.width 83 | 84 | Image { 85 | id: image 86 | 87 | anchors { 88 | fill: parent 89 | margins: Theme.spacing 90 | } 91 | 92 | source: modelData.source 93 | smooth: true 94 | fillMode: Image.PreserveAspectFit 95 | } 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /app/qml/PaginationDots.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import ui 1.5 as UI 3 | 4 | Row { 5 | id: root 6 | 7 | property ListView view 8 | property color color: "#34db98" 9 | property color activeColor: "#3498db" 10 | 11 | spacing: UI.Theme.spacing 12 | 13 | Repeater { 14 | model: root.view.count 15 | 16 | delegate: Item { 17 | height: UI.Theme.paginationDotBaseSize 18 | width: UI.Theme.paginationDotBaseSize 19 | 20 | Rectangle { 21 | id: rectangleIndicator 22 | 23 | anchors.centerIn: parent 24 | 25 | height: UI.Theme.paginationDotBaseSize 26 | width: height 27 | radius: height 28 | 29 | color: index === root.view.currentIndex ? root.activeColor : root.color 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/qml/SingleDayDelegate.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 as Utils 3 | 4 | Component { 5 | Item { 6 | id: _Item_ScheduleView 7 | property alias sessionRepeater : _Repeater_Sessions 8 | width: ListView.view.width 9 | height: ListView.view.height 10 | layer.enabled: true 11 | layer.smooth: true 12 | Flickable { 13 | id: _Flickable 14 | anchors.fill: parent 15 | flickableDirection: Flickable.VerticalFlick 16 | contentWidth: width 17 | contentHeight: _Column_Sessions.height 18 | clip: true 19 | 20 | Behavior on contentY { 21 | id: _Behavior_ContentY 22 | enabled: false 23 | NumberAnimation { 24 | duration: 350 25 | easing.type: Easing.OutCubic 26 | } 27 | } 28 | 29 | Column { 30 | id: _Column_Sessions 31 | width: parent.width 32 | height: childrenRect.height 33 | Repeater { 34 | id: _Repeater_Sessions 35 | model: modelData.sessions 36 | 37 | function positionToCurrentSession() 38 | { 39 | for(var i = 0; i < count; i++) 40 | { 41 | if(itemAt(i).flagIcon.state === "visible") 42 | { 43 | _Behavior_ContentY.enabled = true 44 | console.log("setting contentY to " + itemAt(i).y) 45 | _Flickable.contentY = itemAt(i).y 46 | _Behavior_ContentY.enabled = false 47 | } 48 | } 49 | } 50 | delegate: SingleSessionDelegate { } 51 | } 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/qml/SingleSessionDelegate.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 as Utils 3 | import ui 1.5 as UI 4 | 5 | Item { 6 | id: _Item_ScheduleDelegate 7 | property variant dataModel : modelData 8 | property alias flagIcon : _RightNowIcon 9 | width: parent.width 10 | height: _Rectangle_SessionTime.height + _Column_Tracks.height 11 | Rectangle { 12 | id: _Rectangle_SessionTime 13 | width: parent.width - UI.Theme.dp(2) 14 | height: UI.Theme.dp(80) 15 | color: UI.Theme.colorLightGrey 16 | Label { 17 | anchors.left: parent.left 18 | anchors.leftMargin: UI.Theme.dp(30) 19 | anchors.right: _RightNowIcon.state !== "hidden" ? _RightNowIcon.left : parent.right 20 | anchors.rightMargin: _RightNowIcon.state !== "hidden" ? UI.Theme.dp(20) : UI.Theme.dp(30) 21 | anchors.top: parent.top 22 | anchors.bottom: parent.bottom 23 | verticalAlignment: Text.AlignVCenter 24 | text: _Item_ScheduleDelegate.dataModel.date.formatted['24h'] 25 | color: "#222222" 26 | style: Text.Raised 27 | styleColor: "#ffffff" 28 | font.pixelSize: UI.Theme.scheduleViewPixelSize 29 | elide: Text.ElideRight 30 | } 31 | RightNowIcon { 32 | id: _RightNowIcon 33 | property bool isRightNow : false/*_Model.date_isRightNow(_Item_ScheduleDelegate.dataModel.date.plain.starting, 34 | _Item_ScheduleDelegate.dataModel.date.plain.ending)*/ 35 | anchors.right: parent.right 36 | anchors.rightMargin: UI.Theme.dp(30) 37 | skeleton: true 38 | state: "hidden" 39 | states: [ 40 | State { 41 | name: "hidden" 42 | when: !_RightNowIcon.isRightNow 43 | PropertyChanges { 44 | target: _RightNowIcon 45 | scale: 0 46 | opacity: 0 47 | } 48 | }, 49 | State { 50 | name: "visible" 51 | when: _RightNowIcon.isRightNow 52 | PropertyChanges { 53 | target: _RightNowIcon 54 | scale: 1 55 | opacity: 1 56 | } 57 | } 58 | ] 59 | transitions: [ 60 | Transition { 61 | from: "hidden" 62 | to: "visible" 63 | ParallelAnimation { 64 | NumberAnimation { 65 | target: _RightNowIcon; property: "scale"; 66 | duration: 450; easing.type: Easing.OutBack 67 | easing.overshoot: 0.4 68 | } 69 | NumberAnimation { 70 | target: _RightNowIcon; property: "opacity"; 71 | duration: 450; easing.type: Easing.OutBack 72 | } 73 | } 74 | } 75 | ] 76 | } 77 | Utils.AccentTop { 78 | color: UI.Theme.colorLightGrey 79 | } 80 | Utils.AccentBottom { 81 | color: UI.Theme.colorLightGreyAccent 82 | } 83 | } 84 | Column { 85 | id: _Column_Tracks 86 | anchors.top: _Rectangle_SessionTime.bottom 87 | anchors.left: parent.left 88 | anchors.right: parent.right 89 | height: childrenRect.height 90 | clip: true 91 | Repeater { 92 | id: _Repeater_Tracks 93 | model: _Item_ScheduleDelegate.dataModel.tracks 94 | delegate: SingleTrackDelegate { } 95 | } 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /app/qml/TabButtonStyle.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtQuick.Controls.Styles 1.4 as CS 3 | import ui 1.5 as UI 4 | 5 | CS.ButtonStyle { 6 | id: root 7 | 8 | property url imageSource 9 | 10 | background: Rectangle { 11 | color: control.checked ? UI.Theme.activeTabColor : UI.Theme.unactiveTabColor 12 | 13 | Image { 14 | anchors.centerIn: parent 15 | 16 | sourceSize.height: root.control.height / 2 17 | sourceSize.width: root.control.height / 2 18 | 19 | source: root.imageSource 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/qml/ToolBar.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import ui 1.5 as UI 3 | 4 | Rectangle { 5 | color: UI.Theme.toolBarColor 6 | 7 | height: UI.Theme.toolBarHeight 8 | 9 | Row { 10 | anchors { 11 | top: parent.top 12 | bottom: parent.bottom 13 | left: parent.left; leftMargin: UI.Theme.headerMargin 14 | } 15 | 16 | spacing: UI.Theme.spacing 17 | 18 | Image { 19 | anchors.verticalCenter: parent.verticalCenter 20 | 21 | height: parent.height * 0.8 22 | 23 | sourceSize.height: parent.height * 0.8 24 | 25 | fillMode: Image.PreserveAspectFit 26 | source: "qrc:/images/qt_logo.svg" 27 | mipmap: true 28 | } 29 | 30 | Label { 31 | anchors.verticalCenter: parent.verticalCenter 32 | 33 | color: "#000000" 34 | text: "WORLD\nSUMMIT" 35 | } 36 | } 37 | 38 | Image { 39 | anchors { 40 | right: parent.right; rightMargin: 4 41 | verticalCenter: parent.verticalCenter 42 | } 43 | 44 | height: parent.height * 0.52 45 | width: parent.height * 0.52 46 | 47 | sourceSize.height: parent.height * 0.52 48 | sourceSize.width: parent.height * 0.52 49 | 50 | source: "qrc:/images/favorite.svg" 51 | visible: false 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/qml/controls/BaseTabBarPage.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 3 | 4 | Item { 5 | id: root 6 | 7 | signal opened 8 | signal closed 9 | 10 | property alias controller: _Connections.target 11 | 12 | function show() { 13 | root.opened() 14 | visible = true 15 | } 16 | 17 | anchors.fill: parent 18 | 19 | visible: false 20 | 21 | ClickGuard { } 22 | 23 | Connections { 24 | id: _Connections 25 | 26 | target: null 27 | ignoreUnknownSignals: true 28 | 29 | onHideAllPages: { 30 | root.closed() 31 | root.visible = false 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/qml/controls/TabBarButton.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 3 | import ui 1.5 as UI 4 | 5 | Rectangle { 6 | id: _root 7 | 8 | property alias icon : _BaseIcon.source 9 | property alias iconWidth : _BaseIcon.width 10 | property alias iconObject : _BaseIcon 11 | readonly property bool isActive : root.activeButton === this 12 | 13 | signal clicked 14 | 15 | width: UI.Theme.dp(120) 16 | height: UI.Theme.dp(100) 17 | color: !isActive ? (!_MouseArea.pressed ? 18 | root.theme.backgroundDefaultColor : 19 | root.theme.backgroundPressedColor) : root.theme.backgroundActiveColor 20 | 21 | BaseIcon { 22 | id: _BaseIcon 23 | anchors.centerIn: parent 24 | width: UI.Theme.dp(54) 25 | color: !isActive ? (!_MouseArea.pressed ? 26 | root.theme.iconDefaultColor : 27 | root.theme.iconPressedColor) : root.theme.iconActiveColor 28 | transformOrigin: Item.Center 29 | } 30 | 31 | MouseArea { 32 | id: _MouseArea 33 | anchors.fill: parent 34 | onClicked: _root.clicked() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/qml/controls/TabBarController.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | import "../utils/" as Utils 3 | Item { 4 | id: root 5 | 6 | property bool enabled: true 7 | property variant tabBarModel: [] 8 | property variant activeButton: _Repeater_TabBar.count > 0 ? _Repeater_TabBar.itemAt(0) : { } 9 | 10 | property alias theme: _BaseButtonTheme 11 | 12 | signal tabClicked(variant tabObject) 13 | signal hideAllPages 14 | 15 | function clickFirstTab() { 16 | if (_Repeater_TabBar.count > 0) 17 | _Repeater_TabBar.itemAt(0).clicked() 18 | } 19 | 20 | function showView(sourceComponent) { 21 | for (var i = 0; i < _Repeater_TabBar.count; i++) { 22 | var obj = _Repeater_TabBar.itemAt(i) 23 | if (obj.dataModel.sourceComponent === sourceComponent) { 24 | _Repeater_TabBar.itemAt(i).clicked() 25 | } 26 | } 27 | } 28 | 29 | Utils.BaseButtonTheme { 30 | id: _BaseButtonTheme 31 | backgroundDefaultColor: "#eeeeee" 32 | backgroundPressedColor: "#dddddd" 33 | backgroundActiveColor: "#80c342" 34 | iconDefaultColor: "#80c342" 35 | iconPressedColor: "#6aa336" 36 | iconActiveColor: "#ffffff" 37 | borderColor: "transparent" 38 | } 39 | 40 | Row { 41 | id: _Row_TabBar 42 | 43 | anchors.left: parent.left 44 | anchors.right: parent.right 45 | anchors.bottom: parent.bottom 46 | 47 | height: 100 48 | 49 | Repeater { 50 | id: _Repeater_TabBar 51 | 52 | property variant responder: root.activeButton 53 | 54 | model: root.tabBarModel 55 | 56 | delegate: TabBarButton { 57 | property variant dataModel: modelData 58 | 59 | width: Math.floor(root.width / root.tabBarModel.length) 60 | icon: modelData.icon 61 | onClicked: { 62 | root.tabClicked(modelData) 63 | root.activeButton = this 64 | root.hideAllPages() 65 | eval(modelData.sourceComponent).show() 66 | } 67 | } 68 | 69 | Component.onCompleted: { 70 | if (count > 0) 71 | itemAt(0).clicked() 72 | } 73 | } 74 | } 75 | 76 | Utils.ClickGuard { 77 | visible: !root.enabled 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /app/qml/controls/qmldir: -------------------------------------------------------------------------------- 1 | BaseTabBarPage 1.5 BaseTabBarPage.qml 2 | Slide 1.5 Slide.qml 3 | TabBarButton 1.5 TabBarButton.qml 4 | TabBarController 1.5 TabBarController.qml 5 | -------------------------------------------------------------------------------- /app/qml/home.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Window 2.2 3 | import ui 1.5 as UI 4 | import utils 1.5 as Utils 5 | import ui 1.5 6 | 7 | Viewport { 8 | id: root 9 | 10 | property Api __api: Api { } 11 | 12 | width: 1080 13 | height: 1920 14 | color: "#000000" 15 | 16 | // TODO: Platform dependent status bar height 17 | topMargin: UI.Theme.marginTop 18 | 19 | Header { 20 | id: _header 21 | z: 2 22 | 23 | Image { 24 | id: _imageLogo 25 | 26 | anchors { 27 | left: parent.left; leftMargin: UI.Theme.dp(20) 28 | verticalCenter: parent.verticalCenter; verticalCenterOffset: UI.Theme.dp(-4) 29 | } 30 | 31 | height: parent.height 32 | 33 | fillMode: Image.PreserveAspectFit 34 | mipmap: true 35 | source: "qrc:/images/logo-qws.png" 36 | } 37 | 38 | RightNowIcon { 39 | id: _RightNowIcon 40 | 41 | anchors { 42 | verticalCenter: parent.verticalCenter 43 | right: parent.right; rightMargin: UI.Theme.dp(24) 44 | } 45 | 46 | Utils.ClickGuard { 47 | anchors { 48 | fill: parent 49 | margins: UI.Theme.dp(-10) 50 | } 51 | 52 | Utils.Fill { color: "blue" } 53 | onClicked: { 54 | // TODO: ND - Show today's schedule 55 | } 56 | } 57 | } 58 | } 59 | 60 | Item { 61 | id: _itemPageContainer 62 | 63 | anchors { 64 | top: _header.bottom 65 | left: parent.left 66 | right: parent.right 67 | bottom: parent.bottom 68 | } 69 | 70 | clip: true 71 | 72 | Rectangle { 73 | anchors.fill: parent 74 | color: UI.Theme.colorPageBackground 75 | 76 | Loader { 77 | id: _loaderMainContent 78 | anchors.fill: parent 79 | active: __api.status === Loader.Ready 80 | sourceComponent: Component { 81 | Content { } 82 | } 83 | } 84 | 85 | AnimatedImage { 86 | anchors.centerIn: parent 87 | playing: visible 88 | visible: !_loaderMainContent.active 89 | source: "qrc:/images/icon-qtloading.gif" 90 | } 91 | } 92 | } 93 | 94 | Rectangle { 95 | id: _rectangleDarkener 96 | anchors.fill: parent 97 | color: "#000000" 98 | opacity: 0.65 - (_trackDetailSheet.x / width) 99 | z: _trackDetailSheet.z 100 | } 101 | 102 | TrackDetailSheet { 103 | id: _trackDetailSheet 104 | z: 3 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /app/qml/main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtQuick.Controls 1.4 3 | import QtWorldSummit 1.5 4 | import Qt.labs.settings 1.0 5 | 6 | ApplicationWindow { 7 | id: applicationWindow 8 | 9 | property var resolutions: [ 10 | {"height": 480, "width": 320, "name": "HVGA", "ratio": "3:2"}, 11 | {"height": 640, "width": 360, "name": "nHD", "ratio": "16:9"}, 12 | {"height": 640, "width": 480, "name": "VGA", "ratio": "4:3"}, 13 | {"height": 800, "width": 480, "name": "WVGA", "ratio": "5:3"}, 14 | {"height": 800, "width": 600, "name": "SVGA", "ratio": "4:3"}, 15 | {"height": 960, "width": 540, "name": "qHD", "ratio": "16:9"}, 16 | {"height": 1280, "width": 720, "name": "720p", "ratio": "16:9"}, 17 | {"height": 1280, "width": 800, "name": "WXGA", "ratio": "16:10"}, 18 | {"height": 1920, "width": 1080, "name": "1080p", "ratio": "16:9"} 19 | ] 20 | 21 | property int currentResolution: 5 22 | 23 | property bool isScreenPortrait: height >= width 24 | 25 | property Api __api: Api { } 26 | 27 | property bool isFirstTimeRunning: true 28 | 29 | function openNotification(title, message, url) { 30 | sponsorNotifications.title = title 31 | sponsorNotifications.message = message 32 | sponsorNotifications.imageSource = url 33 | sponsorNotifications.open() 34 | } 35 | 36 | visible: true 37 | width: resolutions[currentResolution]["width"] 38 | height: resolutions[currentResolution]["height"] 39 | 40 | Settings { 41 | id: settings 42 | 43 | property alias isFirstTimeRunning: applicationWindow.isFirstTimeRunning 44 | } 45 | 46 | StackView { 47 | id: stackView 48 | 49 | property int timesBackWasPressed: 0 50 | anchors.fill: parent 51 | 52 | initialItem: mainPage 53 | opacity: 0 54 | focus: true 55 | 56 | Keys.onBackPressed: { 57 | if (sponsorNotifications.isOpen) 58 | sponsorNotifications.close() 59 | else 60 | currentItem.handleBackKey(event) 61 | } 62 | 63 | Behavior on opacity { 64 | SequentialAnimation { 65 | PauseAnimation { duration: 450 } 66 | NumberAnimation { target: stackView; property: "opacity"; to: 1 } 67 | } 68 | } 69 | } 70 | 71 | Component { 72 | id: tutorialPage 73 | 74 | TutorialPage { 75 | clip: true 76 | // onClosed: ScreenValues.setStatusBarColor(149, 165, 166) 77 | onClosed: stackView.pop() 78 | 79 | Component.onCompleted: stackView.opacity = 1 80 | } 81 | } 82 | 83 | MainPage { 84 | id: mainPage 85 | } 86 | 87 | MouseArea { 88 | anchors.fill: parent 89 | enabled: sponsorNotifications.isOpen 90 | } 91 | 92 | SponsorNotification { 93 | id: sponsorNotifications 94 | 95 | anchors.fill: parent 96 | } 97 | 98 | Connections { 99 | target: ScreenValues 100 | 101 | onSponsorNotification: { 102 | sponsorNotifications.title = title 103 | sponsorNotifications.message = message 104 | sponsorNotifications.imageSource = url 105 | sponsorNotifications.open() 106 | } 107 | } 108 | 109 | Component.onCompleted: { 110 | if (isFirstTimeRunning) 111 | stackView.push(tutorialPage) 112 | else 113 | stackView.opacity = 1 114 | 115 | settings.isFirstTimeRunning = false 116 | } 117 | 118 | Timer { 119 | interval: 1500 120 | running: true 121 | onTriggered: ScreenValues.checkIfPendingNotification() 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /app/qml/main_ios.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | import QtQuick.Controls 1.2 3 | import QtQuick.Window 2.0 4 | import utils 1.5 as Utils 5 | 6 | Utils.BaseWindow { 7 | id: superRoot 8 | property int screenWidth : 750 9 | property int screenHeight : 1334 10 | visible: true 11 | width: screenWidth / 2 12 | height: screenHeight / 2 13 | 14 | flags: Qt.MaximizeUsingFullscreenGeometryHint 15 | 16 | // Utils.Platform { 17 | // id: __Platform 18 | // Connections { 19 | // target: __Platform.item ? 20 | // __Platform.item 21 | // : null 22 | // ignoreUnknownSignals: true 23 | // } 24 | // Component.onCompleted: { 25 | // call('setStatusBarStyleDefault') 26 | // } 27 | // } 28 | 29 | Loader { 30 | id: _Loader 31 | width: parent.width*2 32 | height: parent.height*2 33 | anchors.left: parent.left; 34 | anchors.top: parent.top 35 | Scale { 36 | id: _Scale_iOS 37 | xScale: 0.5; yScale: 0.5 38 | origin.x: 0; origin.y: 0 39 | } 40 | state: "scaled" 41 | states: [ 42 | State { 43 | name: "scaled" 44 | PropertyChanges { 45 | target: _Loader 46 | transform: _Scale_iOS 47 | } 48 | } 49 | ] 50 | source: "home.qml" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/qml/ui/+android/qmldir: -------------------------------------------------------------------------------- 1 | singleton Theme 1.5 Theme.qml 2 | -------------------------------------------------------------------------------- /app/qml/ui/+ios/qmldir: -------------------------------------------------------------------------------- 1 | singleton Theme 1.5 Theme.qml 2 | -------------------------------------------------------------------------------- /app/qml/ui/+windows/qmldir: -------------------------------------------------------------------------------- 1 | singleton Theme 1.5 Theme.qml 2 | -------------------------------------------------------------------------------- /app/qml/ui/Header.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 as Utils 3 | import ui 1.5 as UI 4 | 5 | Rectangle { 6 | id: root 7 | 8 | default property alias __content : _itemContainer.data 9 | 10 | property alias leftContent : _itemContainerLeft.data 11 | property alias rightContent : _itemContainerRight.data 12 | 13 | property bool enableLeftAndRightContainers : false 14 | 15 | anchors { 16 | top: parent.top 17 | left: parent.left 18 | right: parent.right 19 | } 20 | 21 | height: UI.Theme.heightHeader 22 | 23 | color: UI.Theme.colorLightGrey 24 | clip: true 25 | 26 | Rectangle { 27 | anchors { 28 | left: parent.left 29 | right: parent.right 30 | bottom: parent.bottom 31 | } 32 | 33 | height: 2 34 | color: UI.Theme.colorLightGreyAccent 35 | } 36 | 37 | Item { 38 | id: _itemContainer 39 | 40 | anchors { 41 | top: parent.top; topMargin: UI.Theme.marginTop 42 | bottom: parent.bottom 43 | left: enableLeftAndRightContainers ? _itemContainerLeft.right : parent.left; leftMargin: 10 44 | right: enableLeftAndRightContainers ? _itemContainerRight.left : parent.right; rightMargin: anchors.leftMargin 45 | } 46 | 47 | Utils.Fill { } 48 | } 49 | 50 | Item { 51 | id: _itemContainerLeft 52 | 53 | anchors { 54 | top: parent.top; topMargin: 40 55 | left: parent.left 56 | bottom: parent.bottom 57 | } 58 | 59 | width: UI.Theme.dp(110) 60 | 61 | Utils.Fill { color: "yellow" } 62 | } 63 | 64 | Item { 65 | id: _itemContainerRight 66 | 67 | anchors { 68 | top: parent.top; topMargin: 40 69 | right: parent.right 70 | bottom: parent.bottom 71 | } 72 | 73 | width: UI.Theme.dp(110) 74 | 75 | Utils.Fill { color: "red" } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /app/qml/ui/Location.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import "../controls" 3 | 4 | BaseTabBarPage { 5 | id: root 6 | 7 | Flickable { 8 | id: _Flickable 9 | 10 | anchors.fill: parent 11 | 12 | contentHeight: _Image.sourceSize.height 13 | contentWidth: _Image.sourceSize.width 14 | 15 | Image { 16 | id: _Image 17 | 18 | source: "qrc:/images/floorplan-bcc.png" 19 | smooth: true 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/qml/ui/RightNowIcon.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import utils 1.5 as Utils 3 | import ui 1.5 as UI 4 | import ".." 5 | 6 | Rectangle { 7 | id: root 8 | 9 | property bool skeleton : false 10 | property alias rowWidth : _row.width 11 | property color baseColor : UI.Theme.colorQtMediumGreen 12 | 13 | anchors.verticalCenter: parent.verticalCenter 14 | width: _row.width 15 | height: 52 16 | radius: 10 17 | 18 | color: !skeleton ? baseColor : "transparent" 19 | border { 20 | width: !root.skeleton ? 0 : 2 21 | color: root.baseColor 22 | } 23 | 24 | transformOrigin: Item.Center 25 | // There is a painting delay if we hide this icon 26 | // when not in use. It stutters the animation 27 | // visible: opacity>0 28 | clip: true 29 | layer.enabled: true 30 | layer.smooth: true 31 | 32 | Row { 33 | id: _row 34 | height: parent.height 35 | 36 | Utils.HorizontalSpacer { 37 | width: UI.Theme.dp(12) 38 | } 39 | 40 | Utils.BaseIcon { 41 | anchors.centerIn: undefined 42 | anchors.verticalCenter: parent.verticalCenter 43 | source: "qrc:/images/icon-clock-filled.png" 44 | color: _labelNow.color 45 | width: UI.Theme.dp(24) 46 | 47 | Utils.Fill { } 48 | } 49 | 50 | Utils.HorizontalSpacer { 51 | width: UI.Theme.dp(12) 52 | } 53 | 54 | Label { 55 | id: _labelNow 56 | 57 | anchors { 58 | verticalCenter: parent.verticalCenter 59 | verticalCenterOffset: 1 60 | } 61 | 62 | font.pixelSize: UI.Theme.dp(24) 63 | color: !skeleton ? "#ffffff" : root.baseColor 64 | text: qsTr("NOW") 65 | style: Text.Raised 66 | styleColor: !root.skeleton ? "transparent" : root.baseColor 67 | 68 | Utils.Fill { } 69 | } 70 | 71 | Utils.HorizontalSpacer { 72 | width: UI.Theme.dp(24) 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /app/qml/ui/SingleDayDelegate.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import utils 1.5 as Utils 3 | 4 | Item { 5 | id: _Item_ScheduleView 6 | 7 | property alias sessionRepeater: _Flickable 8 | 9 | width: ListView.view.width 10 | height: ListView.view.height 11 | // layer.enabled: true 12 | // layer.smooth: true 13 | 14 | ListView { 15 | id: _Flickable 16 | 17 | function positionToCurrentSession() { 18 | for (var i = 0; i < count; i++) { 19 | if (itemAt(i).flagIcon.state === "visible") { 20 | _Behavior_ContentY.enabled = true 21 | console.log("setting contentY to " + itemAt(i).y) 22 | _Flickable.contentY = itemAt(i).y 23 | _Behavior_ContentY.enabled = false 24 | } 25 | } 26 | } 27 | 28 | anchors.fill: parent 29 | 30 | flickableDirection: Flickable.VerticalFlick 31 | contentWidth: width 32 | // contentHeight: _Column_Sessions.height 33 | clip: true 34 | 35 | maximumFlickVelocity: height * 3 36 | 37 | model: modelData.sessions 38 | 39 | delegate: SingleSessionDelegate { } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/qml/ui/SingleSessionDelegate.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import utils 1.5 as Utils 3 | import ui 1.5 as UI 4 | import ".." 5 | 6 | Item { 7 | id: _Item_ScheduleDelegate 8 | 9 | property variant dataModel: modelData 10 | property alias flagIcon: _RightNowIcon 11 | 12 | width: parent.width 13 | height: _Rectangle_SessionTime.height + _Column_Tracks.height 14 | 15 | Rectangle { 16 | id: _Rectangle_SessionTime 17 | 18 | width: parent.width - UI.Theme.dp(2) 19 | height: UI.Theme.dp(80) 20 | color: UI.Theme.colorLightGrey 21 | 22 | Label { 23 | anchors { 24 | left: parent.left; leftMargin: UI.Theme.dp(30) 25 | right: _RightNowIcon.state !== "hidden" ? _RightNowIcon.left : parent.right; rightMargin: _RightNowIcon.state !== "hidden" ? UI.Theme.dp(20) : UI.Theme.dp(30) 26 | top: parent.top 27 | bottom: parent.bottom 28 | } 29 | 30 | verticalAlignment: Text.AlignVCenter 31 | text: _Item_ScheduleDelegate.dataModel.date.formatted['24h'] 32 | color: "#222222" 33 | style: Text.Raised 34 | styleColor: "#ffffff" 35 | font.pixelSize: UI.Theme.scheduleViewPixelSize 36 | elide: Text.ElideRight 37 | Utils.Fill { color: "yellow" } 38 | } 39 | 40 | RightNowIcon { 41 | id: _RightNowIcon 42 | 43 | property bool isRightNow : false/*_Model.date_isRightNow(_Item_ScheduleDelegate.dataModel.date.plain.starting, 44 | _Item_ScheduleDelegate.dataModel.date.plain.ending)*/ 45 | 46 | anchors { 47 | right: parent.right; rightMargin: UI.Theme.dp(30) 48 | } 49 | 50 | skeleton: true 51 | state: "hidden" 52 | states: [ 53 | State { 54 | name: "hidden" 55 | when: !_RightNowIcon.isRightNow 56 | 57 | PropertyChanges { 58 | target: _RightNowIcon 59 | scale: 0 60 | opacity: 0 61 | } 62 | }, 63 | State { 64 | name: "visible" 65 | when: _RightNowIcon.isRightNow 66 | 67 | PropertyChanges { 68 | target: _RightNowIcon 69 | scale: 1 70 | opacity: 1 71 | } 72 | } 73 | ] 74 | 75 | transitions: [ 76 | Transition { 77 | from: "hidden" 78 | to: "visible" 79 | ParallelAnimation { 80 | NumberAnimation { 81 | target: _RightNowIcon; property: "scale"; 82 | duration: 450; easing.type: Easing.OutBack 83 | easing.overshoot: 0.4 84 | } 85 | 86 | NumberAnimation { 87 | target: _RightNowIcon; property: "opacity"; 88 | duration: 450; easing.type: Easing.OutBack 89 | } 90 | } 91 | } 92 | ] 93 | } 94 | 95 | Utils.AccentTop { 96 | color: UI.Theme.colorLightGrey 97 | } 98 | 99 | Utils.AccentBottom { 100 | color: UI.Theme.colorLightGreyAccent 101 | } 102 | } 103 | 104 | Column { 105 | id: _Column_Tracks 106 | 107 | anchors { 108 | top: _Rectangle_SessionTime.bottom 109 | left: parent.left 110 | right: parent.right 111 | } 112 | 113 | height: childrenRect.height 114 | clip: true 115 | 116 | Repeater { 117 | id: _Repeater_Tracks 118 | 119 | model: _Item_ScheduleDelegate.dataModel.tracks 120 | delegate: SingleTrackDelegate { } 121 | } 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /app/qml/ui/TabBar.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | import "../controls" 3 | import ui 1.5 as UI 4 | 5 | TabBarController { 6 | anchors.left: parent.left 7 | anchors.right: parent.right 8 | anchors.bottom: parent.bottom 9 | height: UI.Theme.dp(100) 10 | 11 | tabBarModel: [ 12 | { 13 | icon : "qrc:/images/icon-home.png", 14 | sourceComponent: _schedule 15 | }, 16 | { 17 | icon : "qrc:/images/icon-location.png", 18 | sourceComponent: _location 19 | }, 20 | { 21 | icon : "qrc:/images/icon-information.png", 22 | sourceComponent: _information 23 | } 24 | ] 25 | 26 | Rectangle { 27 | anchors.top: parent.top 28 | anchors.left: parent.left 29 | anchors.right: parent.right 30 | height: UI.Theme.dp(1) 31 | color: "#d2d2d1" 32 | z: 2 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /app/qml/ui/Viewport.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | 3 | Rectangle { 4 | id: root 5 | 6 | property int topMargin: 0 7 | 8 | color: "#000000" 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/ui/qmldir: -------------------------------------------------------------------------------- 1 | Header 1.5 Header.qml 2 | Location 1.5 Location.qml 3 | RightNowIcon 1.5 RightNowIcon.qml 4 | Schedule 1.5 Schedule.qml 5 | SingleDayDelegate 1.5 SingleDayDelegate.qml 6 | SingleSessionDelegate 1.5 SingleSessionDelegate.qml 7 | SingleTrackDelegate 1.5 SingleTrackDelegate.qml 8 | TabBar 1.5 TabBar.qml 9 | TrackDetailSheet 1.5 TrackDetailSheet.qml 10 | Viewport 1.5 Viewport.qml 11 | 12 | singleton Theme 1.5 Theme.qml 13 | -------------------------------------------------------------------------------- /app/qml/utils/AccentBottom.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Rectangle { 4 | height: 1 5 | anchors.left: parent.left; anchors.right: parent.right 6 | anchors.bottom: parent.bottom 7 | color: "red" 8 | smooth: true 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/utils/AccentLeft.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Rectangle { 4 | anchors.top: parent.top 5 | anchors.bottom: parent.bottom 6 | anchors.left: parent.left 7 | width: 1 8 | color: "red" 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/utils/AccentRight.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Rectangle { 4 | anchors.top: parent.top 5 | anchors.bottom: parent.bottom 6 | anchors.right: parent.right 7 | width: 1 8 | color: "red" 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/utils/AccentTop.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Rectangle { 4 | height: 1 5 | anchors.left: parent.left; anchors.right: parent.right 6 | anchors.top: parent.top 7 | color: "red" 8 | smooth: true 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/utils/BaseButtonTheme.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | QtObject { 4 | id: root 5 | property color backgroundDefaultColor : "#000000" 6 | property color backgroundPressedColor : backgroundDefaultColor 7 | property color backgroundActiveColor : backgroundDefaultColor 8 | property color iconDefaultColor : "#ffffff" 9 | property color iconPressedColor : iconDefaultColor 10 | property color iconActiveColor : iconDefaultColor 11 | 12 | property color borderColor : "#111111" 13 | 14 | property int colorAnimationDuration : 50 15 | } 16 | -------------------------------------------------------------------------------- /app/qml/utils/BaseIcon.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import QtGraphicalEffects 1.0 3 | import ui 1.5 as UI 4 | 5 | Item { 6 | property alias source: _Image.source 7 | property alias color: _ColorOverlay.color 8 | 9 | width: UI.Theme.dp(44) 10 | height: _Image.height 11 | layer.smooth: true 12 | layer.enabled: true 13 | 14 | Image { 15 | id: _Image 16 | 17 | anchors { 18 | left: parent.left 19 | right: parent.right 20 | } 21 | 22 | fillMode: Image.PreserveAspectFit 23 | sourceSize.width: 2 * width 24 | sourceSize.height: 2 * height 25 | smooth: true 26 | visible: false 27 | } 28 | 29 | ColorOverlay { 30 | id: _ColorOverlay 31 | 32 | anchors.fill: parent 33 | source: _Image 34 | color: "#000000" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /app/qml/utils/BaseWindow.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.4 2 | import QtQuick.Controls 1.3 3 | 4 | ApplicationWindow { 5 | property bool showFills : false 6 | property variant activeObject 7 | 8 | visible: true 9 | } 10 | -------------------------------------------------------------------------------- /app/qml/utils/ClickGuard.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | MouseArea { anchors.fill: parent } 4 | -------------------------------------------------------------------------------- /app/qml/utils/Fill.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.5 2 | import ui 1.5 as UI 3 | 4 | Rectangle { 5 | id: root 6 | 7 | function randomColor() { 8 | /// http://www.paulirish.com/2009/random-hex-color-code-snippets/ 9 | return '#' + Math.floor(Math.random() * 16777215).toString(16) 10 | } 11 | 12 | anchors.fill: parent 13 | 14 | color: "#00FEAA" 15 | opacity: 0.5 16 | visible: UI.Theme.showFills 17 | 18 | border { 19 | width: UI.Theme.activeObject === root ? 4 : 0 20 | color: "#ffffff" 21 | } 22 | 23 | Rectangle { 24 | anchors { 25 | fill: parent 26 | margins: 4 27 | } 28 | 29 | color: "transparent" 30 | 31 | border { 32 | width: root.border.width 33 | color: "#000000" 34 | } 35 | } 36 | 37 | MouseArea { 38 | anchors.fill: parent 39 | onClicked: UI.Theme = root 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/qml/utils/GestureArea.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | 3 | MouseArea { 4 | id: root 5 | property int acceptableSwipeDistance : 25; 6 | 7 | signal swipeLeft; 8 | signal swipeRight; 9 | signal swipeUp; 10 | signal swipeDown; 11 | signal tap; 12 | 13 | signal press; 14 | signal release; 15 | 16 | 17 | // private 18 | property int pressPosX; 19 | property int pressPosY; 20 | property int releasePosX; 21 | property int releasePosY; 22 | 23 | onPressed: { 24 | root.press(); 25 | pressPosX = mouse.x; 26 | pressPosY = mouse.y; 27 | } 28 | onReleased: { 29 | root.release(); 30 | releasePosX = mouse.x 31 | releasePosY = mouse.y 32 | var deltaX = releasePosX - pressPosX; 33 | var deltaY = releasePosY - pressPosY; 34 | if(deltaX < -1*acceptableSwipeDistance) 35 | { 36 | root.swipeLeft(); 37 | } 38 | else if(deltaX > acceptableSwipeDistance) 39 | { 40 | root.swipeRight(); 41 | } else if(deltaY < -1*acceptableSwipeDistance) 42 | { 43 | root.swipeUp(); 44 | } else if(deltaY > acceptableSwipeDistance) 45 | { 46 | root.swipeDown(); 47 | } 48 | else 49 | { 50 | root.tap(); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/qml/utils/HorizontalSpacer.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | Item { 3 | height: parent.height 4 | width: 10 5 | Fill { color: "black" } 6 | } 7 | -------------------------------------------------------------------------------- /app/qml/utils/SafeLoader.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | 3 | Loader { 4 | signal callSuccess(string fn) 5 | signal callFailed(string fn) 6 | property bool isReady : status === Loader.Ready && item 7 | function call(fn) 8 | { 9 | if(status === Loader.Ready 10 | && item 11 | && typeof item[fn] !== "undefined") 12 | { 13 | item[fn]() 14 | callSuccess(fn) 15 | } else 16 | { 17 | callFailed(fn) 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/qml/utils/VerticalSpacer.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.3 2 | 3 | Item { 4 | width: parent.width 5 | height: 10; 6 | Fill { color: "black" } 7 | } 8 | -------------------------------------------------------------------------------- /app/qml/utils/qmldir: -------------------------------------------------------------------------------- 1 | AccentBottom 1.5 AccentBottom.qml 2 | AccentLeft 1.5 AccentLeft.qml 3 | AccentRight 1.5 AccentRight.qml 4 | AccentTop 1.5 AccentTop.qml 5 | BaseButtonTheme 1.5 BaseButtonTheme.qml 6 | BaseIcon 1.5 BaseIcon.qml 7 | BaseWindow 1.5 BaseWindow.qml 8 | ClickGuard 1.5 ClickGuard.qml 9 | Fill 1.5 Fill.qml 10 | GestureArea 1.5 GestureArea.qml 11 | HorizontalSpacer 1.5 HorizontalSpacer.qml 12 | SafeLoader 1.5 SafeLoader.qml 13 | VerticalSpacer 1.5 VerticalSpacer.qml 14 | -------------------------------------------------------------------------------- /app/resources/images/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/bg.jpg -------------------------------------------------------------------------------- /app/resources/images/busyindicator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/busyindicator.png -------------------------------------------------------------------------------- /app/resources/images/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/card.png -------------------------------------------------------------------------------- /app/resources/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/close.png -------------------------------------------------------------------------------- /app/resources/images/floorplan-bcc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/floorplan-bcc.png -------------------------------------------------------------------------------- /app/resources/images/home.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 56 | 60 | 65 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /app/resources/images/home_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 56 | 60 | 65 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /app/resources/images/icon-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-back.png -------------------------------------------------------------------------------- /app/resources/images/icon-bookmark-hl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-bookmark-hl.png -------------------------------------------------------------------------------- /app/resources/images/icon-bookmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-bookmark.png -------------------------------------------------------------------------------- /app/resources/images/icon-clock-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-clock-filled.png -------------------------------------------------------------------------------- /app/resources/images/icon-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-home.png -------------------------------------------------------------------------------- /app/resources/images/icon-information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-information.png -------------------------------------------------------------------------------- /app/resources/images/icon-location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-location.png -------------------------------------------------------------------------------- /app/resources/images/icon-qtloading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-qtloading.gif -------------------------------------------------------------------------------- /app/resources/images/icon-star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/icon-star.png -------------------------------------------------------------------------------- /app/resources/images/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 57 | 62 | 67 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /app/resources/images/info_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 56 | 61 | 66 | 71 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /app/resources/images/location.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 56 | 61 | 62 | -------------------------------------------------------------------------------- /app/resources/images/location_active.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 56 | 61 | 62 | -------------------------------------------------------------------------------- /app/resources/images/logo-qws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/logo-qws.png -------------------------------------------------------------------------------- /app/resources/images/qws2015-hero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/qws2015-hero.jpg -------------------------------------------------------------------------------- /app/resources/images/triangular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/app/resources/images/triangular.png -------------------------------------------------------------------------------- /app/resources/images/tutorial/cloud_1.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /app/resources/images/tutorial/cloud_2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /app/resources/images/tutorial/cloud_3.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 25 | 29 | 33 | 34 | 37 | 41 | 42 | 43 | 67 | 69 | 70 | 72 | image/svg+xml 73 | 75 | 76 | 77 | 78 | 79 | 84 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /app/resources/images/tutorial/next_white.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 63 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /app/src/api.cpp: -------------------------------------------------------------------------------- 1 | #include "api.h" 2 | #include 3 | #include 4 | 5 | #define DEBUG if(1) qDebug() << __PRETTY_FUNCTION__ 6 | 7 | QT_BEGIN_NAMESPACE 8 | 9 | Api::Api(QObject *parent) : QObject(parent), 10 | m_networkManager(0) 11 | { 12 | m_networkManager = new QNetworkAccessManager(this); 13 | connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), 14 | this, SLOT(replyFinished(QNetworkReply*))); 15 | } 16 | 17 | Api::~Api() 18 | { 19 | m_future.cancel(); 20 | m_networkManager->deleteLater(); 21 | } 22 | 23 | void Api::post(QString url, QVariantMap parameters) 24 | { 25 | DEBUG << Q_FUNC_INFO; 26 | m_future.cancel(); 27 | QUrlQuery postData; 28 | QStringList keys = parameters.keys(); 29 | for(int i = 0; i < keys.count(); i++) 30 | { 31 | QString key = keys.at(i); 32 | QString value = QVariant(parameters.value(key)).toString(); 33 | 34 | postData.addQueryItem(key, value); 35 | } 36 | 37 | QNetworkRequest request(url); 38 | request.setHeader(QNetworkRequest::ContentTypeHeader, 39 | "application/x-www-form-urlencoded"); 40 | 41 | m_networkManager->post(request, postData.toString(QUrl::FullyEncoded).toUtf8()); 42 | } 43 | 44 | void Api::get(QString url) 45 | { 46 | DEBUG << Q_FUNC_INFO; 47 | m_future.cancel(); 48 | this->get(url, QVariantMap()); 49 | } 50 | 51 | void Api::get(QString url, QVariantMap parameters) 52 | { 53 | DEBUG << Q_FUNC_INFO; 54 | m_future.cancel(); 55 | QString urlCombined = url; 56 | QStringList keys = parameters.keys(); 57 | for(int i = 0; i < keys.length(); i++) 58 | { 59 | urlCombined += (i == 0 ? "?" : "&") 60 | + keys.value(i) 61 | + "=" 62 | + parameters.value(keys.value(i)).toString(); 63 | } 64 | 65 | DEBUG << urlCombined; 66 | QNetworkRequest request(urlCombined); 67 | 68 | m_networkManager->get(request); 69 | } 70 | 71 | void Api::replyFinished(QNetworkReply *reply) 72 | { 73 | qDebug() << Q_FUNC_INFO; 74 | qDebug() << reply->errorString(); 75 | 76 | m_future = QtConcurrent::run(parseJson, reply->readAll()); 77 | 78 | QJsonObject jsonObject = m_future.result(); 79 | 80 | emit Api::reply(reply->url().toString(), jsonObject); 81 | } 82 | 83 | QJsonObject Api::parseJson(QByteArray response) 84 | { 85 | QJsonDocument jsonDocument = QJsonDocument::fromJson(response); 86 | QJsonObject jsonObject; 87 | jsonObject.insert("length", response.length()); 88 | if (jsonDocument.isEmpty() || jsonDocument.isNull()) { 89 | jsonObject.insert("data", QJsonObject()); 90 | } else { 91 | QJsonValue value; 92 | if (jsonDocument.isObject()) { 93 | value = QJsonValue(jsonDocument.object()); 94 | } else { 95 | value = QJsonValue(jsonDocument.array()); 96 | } 97 | jsonObject.insert("content", value); 98 | } 99 | return jsonObject; 100 | } 101 | 102 | QT_END_NAMESPACE 103 | -------------------------------------------------------------------------------- /app/src/api.h: -------------------------------------------------------------------------------- 1 | #ifndef API_H 2 | #define API_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | class Api : public QObject 9 | { 10 | Q_OBJECT 11 | public: 12 | explicit Api(QObject *parent = 0); 13 | ~Api(); 14 | 15 | Q_INVOKABLE void post(QString url, QVariantMap parameters); 16 | Q_INVOKABLE void get(QString url); 17 | Q_INVOKABLE void get(QString url, QVariantMap parameters); 18 | 19 | private: 20 | QFuture m_future; 21 | static QJsonObject parseJson(QByteArray response); 22 | 23 | signals: 24 | void reply(QString url, QJsonObject data); 25 | 26 | public slots: 27 | 28 | private slots: 29 | void replyFinished(QNetworkReply *reply); 30 | 31 | private: 32 | QNetworkAccessManager *m_networkManager; 33 | }; 34 | 35 | #endif // API_H 36 | -------------------------------------------------------------------------------- /app/src/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | 6 | #include "screenvalues.h" 7 | 8 | static QObject *screen_values_provider(QQmlEngine *engine, QJSEngine *scriptEngine) 9 | { 10 | Q_UNUSED(engine) 11 | Q_UNUSED(scriptEngine) 12 | 13 | return new ScreenValues(); 14 | } 15 | 16 | int main(int argc, char *argv[]) 17 | { 18 | QApplication app(argc, argv); 19 | 20 | QQmlApplicationEngine engine; 21 | 22 | QQmlFileSelector* selector = new QQmlFileSelector(&engine); 23 | 24 | QStringList extraSelectors; 25 | 26 | bool devel = false; 27 | 28 | if (devel) 29 | extraSelectors << "devel"; 30 | 31 | if (!extraSelectors.isEmpty()) 32 | selector->setExtraSelectors(extraSelectors); 33 | 34 | engine.addImportPath("qrc:/qml/qml"); 35 | 36 | qmlRegisterSingletonType("QtWorldSummit", 1, 5, "ScreenValues", screen_values_provider); 37 | 38 | engine.load(QUrl("qrc:/qml/qml/main.qml")); 39 | 40 | return app.exec(); 41 | } 42 | -------------------------------------------------------------------------------- /app/src/screenvalues.h: -------------------------------------------------------------------------------- 1 | #ifndef SCREENVALUES_H 2 | #define SCREENVALUES_H 3 | 4 | #include 5 | 6 | #ifdef Q_OS_ANDROID 7 | #include 8 | #include 9 | #endif 10 | 11 | class ScreenValues : public QObject 12 | { 13 | Q_OBJECT 14 | Q_PROPERTY(int dpi READ dpi WRITE setDpi NOTIFY dpiChanged) 15 | Q_PROPERTY(float dp READ dp WRITE setDp NOTIFY dpChanged) 16 | Q_PROPERTY(bool isTablet READ isTablet NOTIFY isTabletChanged) 17 | Q_PROPERTY(bool notificationsEnabled READ notificationsEnabled WRITE setNotificationsEnabled NOTIFY notificationsEnabledChanged) 18 | 19 | public: 20 | explicit ScreenValues(QObject *parent = 0); 21 | 22 | float dp() const; 23 | void setDp(float dp); 24 | 25 | int dpi() const; 26 | void setDpi(int dpi); 27 | 28 | bool isTablet() const; 29 | void setIsTablet(bool isTablet); 30 | 31 | Q_INVOKABLE void setStatusBarColor(const int r, const int g, const int b); 32 | Q_INVOKABLE void registerNative(); 33 | Q_INVOKABLE void checkIfPendingNotification(); 34 | 35 | bool notificationsEnabled() const; 36 | 37 | #ifdef Q_OS_ANDROID 38 | static QString jstringToQString(jstring string); 39 | #endif 40 | 41 | public slots: 42 | void setNotificationsEnabled(bool notificationsEnabled); 43 | void emitSponsorNotification(const QString &title, const QString &message, const QString &url); 44 | 45 | signals: 46 | void dpChanged(); 47 | void dpiChanged(); 48 | void isTabletChanged(); 49 | void notificationsEnabledChanged(); 50 | void sponsorNotification(QString title, QString message, QString url); 51 | 52 | private: 53 | float m_dp; 54 | int m_dpi; 55 | bool m_isTablet; 56 | bool m_notificationsEnabled; 57 | 58 | int retrieveDpi(); 59 | bool retrieveIsTablet(); 60 | bool getNotificationsEnabled(); 61 | }; 62 | 63 | #endif // SCREENVALUES_H 64 | -------------------------------------------------------------------------------- /design/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ndesai/qtworldsummit/a6b6522e8f482612e622ee242165ef8a787a4192/design/.gitkeep --------------------------------------------------------------------------------