├── LICENSE ├── README.md ├── android-actions ├── README.md ├── begin │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs │ │ │ └── .gitignore │ │ ├── proguard-rules.txt │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── _DS_Store │ │ │ ├── java │ │ │ └── com │ │ │ │ └── jarekandshawnmusic │ │ │ │ └── m │ │ │ │ ├── ArtistActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MediaPlayerService.java │ │ │ │ ├── MyMusicStore.java │ │ │ │ └── PlaylistFragment.java │ │ │ └── res │ │ │ ├── _DS_Store │ │ │ ├── drawable-hdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-mdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── artist_image_dual_core.jpg │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_good.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ ├── activity_artist.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_playlist.xml │ │ │ ├── artist_tile.xml │ │ │ └── fragment_playlist.xml │ │ │ ├── raw │ │ │ ├── dual_core_all_the_things.mp3 │ │ │ └── dual_core_mastering_success_and_failure.mp3 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── integers.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── end │ ├── .gitignore │ ├── app │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── libs │ │ │ └── .gitignore │ │ ├── proguard-rules.txt │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── _DS_Store │ │ │ ├── java │ │ │ └── com │ │ │ │ └── jarekandshawnmusic │ │ │ │ └── m │ │ │ │ ├── ArtistActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MediaPlayerService.java │ │ │ │ ├── MyMusicStore.java │ │ │ │ └── PlaylistFragment.java │ │ │ └── res │ │ │ ├── _DS_Store │ │ │ ├── drawable-hdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-mdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── artist_image_dual_core.jpg │ │ │ ├── ic_action_add_to_queue.png │ │ │ ├── ic_action_full_screen.png │ │ │ ├── ic_action_good.png │ │ │ ├── ic_action_next.png │ │ │ ├── ic_action_pause.png │ │ │ ├── ic_action_play.png │ │ │ ├── ic_action_previous.png │ │ │ ├── ic_action_return_from_full_screen.png │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ ├── activity_artist.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_playlist.xml │ │ │ ├── artist_tile.xml │ │ │ └── fragment_playlist.xml │ │ │ ├── raw │ │ │ ├── dual_core_all_the_things.mp3 │ │ │ └── dual_core_mastering_success_and_failure.mp3 │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── integers.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle └── simulator │ ├── actions-simulator.apk │ └── actions-simulator │ ├── README.md │ ├── app │ ├── build.gradle │ ├── lint.xml │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── developers │ │ │ └── actions │ │ │ └── debugger │ │ │ ├── ActionsListFragment.java │ │ │ ├── CayleyActivity.java │ │ │ ├── MainActivity.java │ │ │ └── util │ │ │ ├── ActionData.java │ │ │ ├── CayleyResult.java │ │ │ └── Utils.java │ │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_av_upload.png │ │ ├── ic_launcher.png │ │ ├── ic_voice_search.png │ │ ├── play_artist.png │ │ └── play_genre.png │ │ ├── drawable-mdpi │ │ ├── ic_av_upload.png │ │ ├── ic_launcher.png │ │ ├── ic_mailboxes_accounts.png │ │ ├── ic_menu_refresh.png │ │ ├── ic_voice_search.png │ │ ├── play_artist.png │ │ └── play_genre.png │ │ ├── drawable-xhdpi │ │ ├── ic_av_upload.png │ │ ├── ic_launcher.png │ │ ├── ic_menu_refresh.png │ │ ├── ic_voice_search.png │ │ ├── list_divider_holo_dark.png │ │ ├── play_artist.png │ │ └── play_genre.png │ │ ├── drawable-xxhdpi │ │ ├── ic_av_upload.png │ │ ├── ic_launcher.png │ │ ├── ic_voice_search.png │ │ ├── play_artist.png │ │ └── play_genre.png │ │ ├── drawable │ │ ├── cayley_transparent.png │ │ └── list_divider_horizontal_inset.xml │ │ ├── layout │ │ ├── activity_cayley.xml │ │ ├── activity_main.xml │ │ ├── list_fragment.xml │ │ └── list_item.xml │ │ ├── menu │ │ ├── activity_main.xml │ │ └── review.xml │ │ ├── raw │ │ └── intents.json │ │ ├── values-sw600dp-land │ │ └── refs.xml │ │ ├── values-sw600dp │ │ └── dimens.xml │ │ ├── values-sw720dp-land │ │ └── dimens.xml │ │ ├── values-sw720dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── chrome-apps ├── begin │ ├── assets │ │ ├── icon_128.png │ │ └── icon_16.png │ ├── background.js │ ├── index.html │ ├── main.js │ ├── manifest.json │ └── styles.css └── end │ ├── assets │ ├── icon_128.png │ └── icon_16.png │ ├── background.js │ ├── board.js │ ├── index.html │ ├── main.js │ ├── manifest.json │ └── styles.css ├── dart-start ├── begin │ ├── pubspec.yaml │ └── web │ │ ├── piratebadge.css │ │ ├── piratebadge.dart │ │ └── piratebadge.html ├── end │ ├── pubspec.yaml │ └── web │ │ ├── piratebadge.css │ │ ├── piratebadge.dart │ │ ├── piratebadge.html │ │ └── piratenames.json ├── step3 │ ├── pubspec.yaml │ └── web │ │ ├── piratebadge.css │ │ ├── piratebadge.dart │ │ └── piratebadge.html ├── step4 │ ├── pubspec.yaml │ └── web │ │ ├── piratebadge.css │ │ ├── piratebadge.dart │ │ └── piratebadge.html ├── step5 │ ├── pubspec.yaml │ └── web │ │ ├── piratebadge.css │ │ ├── piratebadge.dart │ │ └── piratebadge.html └── step6 │ ├── pubspec.yaml │ └── web │ ├── piratebadge.css │ ├── piratebadge.dart │ └── piratebadge.html ├── go-codelab ├── solution │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go ├── static │ ├── favicon.ico │ ├── partials │ │ ├── home.html │ │ └── list.html │ ├── todo.css │ ├── todo.html │ └── todo.js ├── step1 │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go ├── step2 │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go ├── step3 │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go ├── step4 │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go └── step5 │ ├── app.go │ ├── app.yaml │ ├── static │ └── utils.go ├── instant-buy └── end │ ├── .gitignore │ ├── build.gradle │ ├── demo.iml │ ├── demo │ ├── .gitignore │ ├── build.gradle │ ├── demo-demo.iml │ ├── proguard-rules.txt │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── gen │ │ └── com │ │ │ └── google │ │ │ └── io │ │ │ └── instantbuy │ │ │ └── demo │ │ │ ├── BuildConfig.java │ │ │ ├── Manifest.java │ │ │ └── R.java │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── io │ │ │ └── instantbuy │ │ │ └── demo │ │ │ └── MainActivity.java │ │ ├── main.iml │ │ └── res │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── layout │ │ └── activity_main.xml │ │ ├── menu │ │ └── main.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── mobile-backend-starter └── begin │ ├── LICENSE │ ├── MobileBackend │ ├── build.gradle │ ├── libs │ │ └── gcm-server.jar │ ├── snippets │ │ └── BlobEndpoint.java │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── cloud │ │ │ └── backend │ │ │ ├── beans │ │ │ ├── EntityDto.java │ │ │ ├── EntityListDto.java │ │ │ ├── FilterDto.java │ │ │ └── QueryDto.java │ │ │ ├── config │ │ │ ├── BackendConfigManager.java │ │ │ ├── CloudEndpointsConfigManager.java │ │ │ ├── ConfigurationServlet.java │ │ │ ├── StringUtility.java │ │ │ └── XSRFTokenUtility.java │ │ │ ├── pushnotification │ │ │ ├── Configuration.java │ │ │ ├── DeviceCleanupServlet.java │ │ │ ├── NotificationCleanupServlet.java │ │ │ ├── PushFeedbackProcessingServlet.java │ │ │ ├── Sender.java │ │ │ ├── Utility.java │ │ │ ├── Worker.java │ │ │ └── WorkerServlet.java │ │ │ └── spi │ │ │ ├── BlobAccess.java │ │ │ ├── BlobEndpoint.java │ │ │ ├── BlobManager.java │ │ │ ├── BlobMetadata.java │ │ │ ├── BlobUrl.java │ │ │ ├── BlobUrlManager.java │ │ │ ├── CrudOperations.java │ │ │ ├── DeviceSubscription.java │ │ │ ├── EndpointV1.java │ │ │ ├── ImageTransformer.java │ │ │ ├── ProspectiveSearchServlet.java │ │ │ ├── QueryOperations.java │ │ │ ├── QuerySubscriptions.java │ │ │ ├── SecurityChecker.java │ │ │ ├── SubscriptionRemovalServlet.java │ │ │ └── SubscriptionUtility.java │ │ └── webapp │ │ ├── WEB-INF │ │ ├── appengine-web.xml │ │ ├── cron.xml │ │ ├── datastore-indexes.xml │ │ ├── logging.properties │ │ ├── queue.xml │ │ └── web.xml │ │ ├── admin │ │ ├── configure.jsp │ │ ├── img │ │ │ └── bg.gif │ │ └── style.css │ │ ├── favicon.ico │ │ └── index.html │ ├── app │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.txt │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── cloud │ │ │ └── backend │ │ │ └── sample │ │ │ └── guestbook │ │ │ ├── GuestbookActivity.java │ │ │ ├── IntroFirstFragment.java │ │ │ ├── IntroSecondFragment.java │ │ │ ├── IntroThirdFragment.java │ │ │ ├── IntroductionActivity.java │ │ │ ├── OnIntroNavListener.java │ │ │ ├── PostAdapter.java │ │ │ └── SplashFragment.java │ │ └── res │ │ ├── anim │ │ └── translate_progress.xml │ │ ├── drawable-hdpi │ │ ├── ic_camera.png │ │ ├── ic_launcher_guestbook.png │ │ ├── ic_left_arrow.png │ │ ├── ic_menu_guestbook.png │ │ ├── ic_right_arrow.png │ │ ├── ic_send.png │ │ ├── img_connect.png │ │ ├── img_done.png │ │ ├── img_dots_1.png │ │ ├── img_dots_2.png │ │ ├── img_dots_3.png │ │ ├── img_guestbook_splash.png │ │ └── img_logo_splash.png │ │ ├── drawable-ldpi │ │ ├── ic_camera.png │ │ ├── ic_launcher_guestbook.png │ │ ├── ic_left_arrow.png │ │ ├── ic_menu_guestbook.png │ │ ├── ic_right_arrow.png │ │ ├── ic_send.png │ │ ├── img_connect.png │ │ ├── img_done.png │ │ ├── img_dots_1.png │ │ ├── img_dots_2.png │ │ ├── img_dots_3.png │ │ ├── img_guestbook_splash.png │ │ └── img_logo_splash.png │ │ ├── drawable-mdpi │ │ ├── ic_camera.png │ │ ├── ic_launcher_guestbook.png │ │ ├── ic_left_arrow.png │ │ ├── ic_menu_guestbook.png │ │ ├── ic_right_arrow.png │ │ ├── ic_send.png │ │ ├── img_connect.png │ │ ├── img_done.png │ │ ├── img_dots_1.png │ │ ├── img_dots_2.png │ │ ├── img_dots_3.png │ │ ├── img_guestbook_splash.png │ │ └── img_logo_splash.png │ │ ├── drawable-xhdpi │ │ ├── ic_camera.png │ │ ├── ic_launcher_guestbook.png │ │ ├── ic_left_arrow.png │ │ ├── ic_menu_guestbook.png │ │ ├── ic_right_arrow.png │ │ ├── ic_send.png │ │ ├── img_connect.png │ │ ├── img_done.png │ │ ├── img_dots_1.png │ │ ├── img_dots_2.png │ │ ├── img_dots_3.png │ │ ├── img_guestbook_splash.png │ │ └── img_logo_splash.png │ │ ├── layout │ │ ├── activity_introduction.xml │ │ ├── activity_main.xml │ │ ├── fragment_intro_first.xml │ │ ├── fragment_intro_second.xml │ │ ├── fragment_intro_third.xml │ │ ├── fragment_splash.xml │ │ └── row_post.xml │ │ ├── menu │ │ ├── activity_main.xml │ │ └── image_processing.xml │ │ ├── values-v11 │ │ └── styles.xml │ │ ├── values-v14 │ │ └── styles.xml │ │ └── values │ │ ├── colors.xml │ │ ├── integers.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── mobile-backend-starter-android-client-core │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.txt │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── cloud │ │ │ └── backend │ │ │ ├── GCMBroadcastReceiver.java │ │ │ ├── GCMIntentService.java │ │ │ ├── core │ │ │ ├── CloudBackend.java │ │ │ ├── CloudBackendAsync.java │ │ │ ├── CloudBackendFragment.java │ │ │ ├── CloudBackendMessaging.java │ │ │ ├── CloudCallbackHandler.java │ │ │ ├── CloudEndpointUtils.java │ │ │ ├── CloudEntity.java │ │ │ ├── CloudQuery.java │ │ │ ├── Consts.java │ │ │ └── Filter.java │ │ │ └── volleyutil │ │ │ └── BitmapLruCache.java │ │ └── res │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ └── strings.xml │ └── settings.gradle ├── play-games ├── begin │ └── Squash │ │ ├── Squash.iml │ │ ├── app │ │ ├── app.iml │ │ ├── build.gradle │ │ ├── lint.xml │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── google │ │ │ │ └── example │ │ │ │ ├── games │ │ │ │ └── basegameutils │ │ │ │ │ ├── BaseGameActivity.java │ │ │ │ │ ├── GameHelper.java │ │ │ │ │ └── GameHelperUtils.java │ │ │ │ └── squash │ │ │ │ ├── Ball.java │ │ │ │ ├── ParseDeepLinkActivity.java │ │ │ │ ├── SquashActivity.java │ │ │ │ └── SquashView.java │ │ │ └── res │ │ │ ├── drawable-hdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-mdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xhdpi │ │ │ └── ic_launcher.png │ │ │ ├── drawable-xxhdpi │ │ │ └── ic_launcher.png │ │ │ ├── layout │ │ │ └── activity_squash.xml │ │ │ ├── menu │ │ │ └── squash.xml │ │ │ ├── values-sw600dp │ │ │ └── dimens.xml │ │ │ ├── values-sw720dp-land │ │ │ └── dimens.xml │ │ │ ├── values-v14 │ │ │ └── styles.xml │ │ │ └── values │ │ │ ├── dimens.xml │ │ │ ├── gamehelper_strings.xml │ │ │ ├── ids.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ ├── build.gradle │ │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── import-summary.txt │ │ ├── local.properties │ │ └── settings.gradle └── end │ └── Squash │ ├── Squash-Complete.iml │ ├── Squash.iml │ ├── app │ ├── app.iml │ ├── build.gradle │ ├── lint.xml │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── example │ │ │ ├── games │ │ │ └── basegameutils │ │ │ │ ├── BaseGameActivity.java │ │ │ │ ├── GameHelper.java │ │ │ │ └── GameHelperUtils.java │ │ │ └── squash │ │ │ ├── Ball.java │ │ │ ├── ParseDeepLinkActivity.java │ │ │ ├── SquashActivity.java │ │ │ └── SquashView.java │ │ └── res │ │ ├── drawable-hdpi │ │ └── ic_launcher.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── layout │ │ └── activity_squash.xml │ │ ├── menu │ │ └── squash.xml │ │ ├── values-sw600dp │ │ └── dimens.xml │ │ ├── values-sw720dp-land │ │ └── dimens.xml │ │ ├── values-v14 │ │ └── styles.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── gamehelper_strings.xml │ │ ├── ids.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── import-summary.txt │ ├── local.properties │ └── settings.gradle ├── polymer-and-dart ├── .gitignore ├── build.dart ├── pubspec.lock ├── pubspec.yaml └── web │ ├── begin │ ├── app.css │ ├── codelab_element.dart │ ├── codelab_element.html │ ├── codelab_form.dart │ ├── codelab_form.html │ ├── codelab_list.dart │ ├── codelab_list.html │ ├── index.html │ └── model.dart │ └── end │ ├── app.css │ ├── codelab_element.dart │ ├── codelab_element.html │ ├── codelab_form.dart │ ├── codelab_form.html │ ├── codelab_list.dart │ ├── codelab_list.html │ ├── index.html │ └── model.dart ├── polymer-build-mobile ├── README ├── begin │ ├── bower.json │ ├── index.html │ └── styles.css ├── end │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step2 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step3 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step4 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step5 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step6 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── step7 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css └── step8 │ ├── bower.json │ ├── codelab-app.html │ ├── index.html │ └── styles.css ├── wallet-objects └── end │ └── wallet-objects │ ├── app │ ├── .gitignore │ ├── app.iml │ ├── build.gradle │ ├── proguard-rules.txt │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── com │ │ │ └── google │ │ │ └── io │ │ │ └── wallet │ │ │ └── objects │ │ │ └── demo │ │ │ └── MainActivity.java │ │ └── res │ │ ├── drawable-hdpi │ │ ├── ic_launcher.png │ │ ├── wallet_button_background_enabled.9.png │ │ └── wallet_button_save_to_foreground_enabled.png │ │ ├── drawable-mdpi │ │ └── ic_launcher.png │ │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ │ ├── layout │ │ └── activity_main.xml │ │ ├── menu │ │ └── main.xml │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml │ ├── build.gradle │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── local.properties │ ├── settings.gradle │ └── wallet-objects-io.iml └── webrtc-file-sharing ├── begin └── index.html ├── js └── lib │ └── adapter.js ├── server.js ├── step2 ├── index.html └── js │ └── main.js ├── step3 ├── index.html └── js │ ├── lib │ └── adapter.js │ └── main.js ├── step4 ├── index.html └── js │ ├── lib │ └── adapter.js │ └── main.js ├── step5 ├── index.html ├── js │ ├── lib │ │ └── adapter.js │ └── main.js └── server.js ├── step6 ├── index.html ├── js │ ├── lib │ │ └── adapter.js │ └── main.js └── server.js └── step7 ├── css └── main.css ├── index.html ├── js ├── lib │ └── adapter.js └── main.js └── server.js /README.md: -------------------------------------------------------------------------------- 1 | Google I/O 2014 Codelab Source Code 2 | ============= 3 | 4 | This is the beginning and solution code for the Google I/O 2014 Codelabs. A 5 | separate subdirectory is defined for each codelab. Navigate 6 | [here](https://io2014codelabs.appspot.com/) for instructions on how to complete 7 | the codelabs or navigate to the codelabs /end directory for finished sample code. 8 | 9 | If you believe a codelab has a bug please file it on the 10 | [issues page](https://github.com/googlesamples/io2014-codelabs/issues) 11 | -------------------------------------------------------------------------------- /android-actions/begin/.gitignore: -------------------------------------------------------------------------------- 1 | lt application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | build/ 16 | 17 | # Local configuration file (sdk path, etc) 18 | local.properties 19 | 20 | # Eclipse project files 21 | .classpath 22 | .project 23 | 24 | # Windows thumbnail db 25 | .DS_Store 26 | 27 | # IDEA/Android Studio project files, because 28 | # the project can be imported from settings.gradle 29 | .idea 30 | *.iml 31 | 32 | # Old-style IDEA project files 33 | *.ipr 34 | *.iws 35 | 36 | # Local IDEA workspace 37 | .idea/workspace.xml 38 | 39 | # Gradle cache 40 | .gradle 41 | 42 | # Sandbox stuff 43 | _sandbox 44 | -------------------------------------------------------------------------------- /android-actions/begin/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android-actions/begin/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion '19.1.0' 6 | defaultConfig { 7 | minSdkVersion 10 8 | targetSdkVersion 19 9 | versionCode 1 10 | versionName '1.0' 11 | } 12 | buildTypes { 13 | release { 14 | runProguard false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 16 | } 17 | } 18 | productFlavors { 19 | } 20 | } 21 | 22 | dependencies { 23 | compile 'com.android.support:appcompat-v7:19.+' 24 | } 25 | -------------------------------------------------------------------------------- /android-actions/begin/app/libs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/libs/.gitignore -------------------------------------------------------------------------------- /android-actions/begin/app/proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the ProGuard 5 | # include property in project.properties. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/_DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/_DS_Store -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/_DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/_DS_Store -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/artist_image_dual_core.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/artist_image_dual_core.jpg -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_good.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 27 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/layout/artist_tile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 22 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/raw/dual_core_all_the_things.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/raw/dual_core_all_the_things.mp3 -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/raw/dual_core_mastering_success_and_failure.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/app/src/main/res/raw/dual_core_mastering_success_and_failure.mp3 -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #C00 4 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 4 | 50 5 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Jarek & Shawn Music 4 | @string/app_name 5 | Dual Core 6 | Brought together by the power of the internet (and perhaps a touch of musical providence), California based computer programmer / rapper int eighty and English web designer / music producer c64 have been rocking the more studious side of the hip hop underground since 2007. 7 | http://jarekandshawnmusic.com/artist/DualCore 8 | 9 | -------------------------------------------------------------------------------- /android-actions/begin/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /android-actions/begin/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:0.12.+' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | mavenCentral() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /android-actions/begin/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /android-actions/begin/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/begin/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android-actions/begin/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jun 14 22:51:48 EDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /android-actions/begin/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /android-actions/end/.gitignore: -------------------------------------------------------------------------------- 1 | lt application files 2 | *.apk 3 | *.ap_ 4 | 5 | # files for the dex VM 6 | *.dex 7 | 8 | # Java class files 9 | *.class 10 | 11 | # generated files 12 | bin/ 13 | gen/ 14 | out/ 15 | build/ 16 | 17 | # Local configuration file (sdk path, etc) 18 | local.properties 19 | 20 | # Eclipse project files 21 | .classpath 22 | .project 23 | 24 | # Windows thumbnail db 25 | .DS_Store 26 | 27 | # IDEA/Android Studio project files, because 28 | # the project can be imported from settings.gradle 29 | .idea 30 | *.iml 31 | 32 | # Old-style IDEA project files 33 | *.ipr 34 | *.iws 35 | 36 | # Local IDEA workspace 37 | .idea/workspace.xml 38 | 39 | # Gradle cache 40 | .gradle 41 | 42 | # Sandbox stuff 43 | _sandbox 44 | -------------------------------------------------------------------------------- /android-actions/end/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /android-actions/end/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion '19.1.0' 6 | defaultConfig { 7 | minSdkVersion 10 8 | targetSdkVersion 19 9 | versionCode 1 10 | versionName '1.0' 11 | } 12 | buildTypes { 13 | release { 14 | runProguard false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 16 | } 17 | } 18 | productFlavors { 19 | } 20 | } 21 | 22 | dependencies { 23 | compile 'com.android.support:appcompat-v7:19.+' 24 | compile 'com.google.android.gms:play-services:5.+' 25 | } 26 | -------------------------------------------------------------------------------- /android-actions/end/app/libs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/libs/.gitignore -------------------------------------------------------------------------------- /android-actions/end/app/proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the ProGuard 5 | # include property in project.properties. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /android-actions/end/app/src/main/_DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/_DS_Store -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/_DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/_DS_Store -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/artist_image_dual_core.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/artist_image_dual_core.jpg -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_add_to_queue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_add_to_queue.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_good.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_next.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_pause.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_play.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_previous.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_previous.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_return_from_full_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_action_return_from_full_screen.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 27 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/layout/artist_tile.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 22 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/raw/dual_core_all_the_things.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/raw/dual_core_all_the_things.mp3 -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/raw/dual_core_mastering_success_and_failure.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/app/src/main/res/raw/dual_core_mastering_success_and_failure.mp3 -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #C00 4 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 4 | 50 5 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Jarek & Shawn Music 4 | @string/app_name 5 | Dual Core 6 | Brought together by the power of the internet (and perhaps a touch of musical providence), California based computer programmer / rapper int eighty and English web designer / music producer c64 have been rocking the more studious side of the hip hop underground since 2007. 7 | http://jarekandshawnmusic.com/artist/DualCore 8 | 9 | -------------------------------------------------------------------------------- /android-actions/end/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /android-actions/end/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:0.12.+' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | mavenCentral() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /android-actions/end/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /android-actions/end/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/end/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android-actions/end/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sat Jun 14 22:51:48 EDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /android-actions/end/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator.apk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator.apk -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/README.md: -------------------------------------------------------------------------------- 1 | Actions Simulator 2 | =========== 3 | 4 | The code is a reference implemention to simulate Google Search Actions. It gets a deeplink to a 5 | handler app through a Cayley instance and fires the appropriate intent to play the music from 6 | requested artist/genre. 7 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | applicationId "com.google.developers.actions.debugger" 9 | minSdkVersion 16 10 | targetSdkVersion 19 11 | } 12 | 13 | buildTypes { 14 | release { 15 | runProguard false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile 'com.google.code.gson:gson:2.2.4' 23 | compile 'org.apache.commons:commons-lang3:3.3.2' 24 | compile 'com.android.support:support-v13:+' 25 | } 26 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_av_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_av_upload.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_voice_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/ic_voice_search.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/play_artist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/play_artist.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/play_genre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-hdpi/play_genre.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_av_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_av_upload.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_mailboxes_accounts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_mailboxes_accounts.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_menu_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_menu_refresh.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_voice_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/ic_voice_search.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/play_artist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/play_artist.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/play_genre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-mdpi/play_genre.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_av_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_av_upload.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_menu_refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_menu_refresh.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_voice_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/ic_voice_search.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/list_divider_holo_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/list_divider_holo_dark.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/play_artist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/play_artist.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/play_genre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xhdpi/play_genre.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_av_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_av_upload.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_voice_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/ic_voice_search.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/play_artist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/play_artist.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/play_genre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable-xxhdpi/play_genre.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable/cayley_transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/app/src/main/res/drawable/cayley_transparent.png -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/drawable/list_divider_horizontal_inset.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 18 | 19 | 23 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/menu/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/menu/review.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/raw/intents.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "mActionType":"PLAY_ARTIST", 4 | "mAction":"android.media.action.MEDIA_PLAY_FROM_SEARCH", 5 | "mActionExtras":[ 6 | { 7 | "first":"query", 8 | "second":"Nerdcore" 9 | } 10 | ] 11 | }, 12 | { 13 | "mActionType":"PLAY_GENRE", 14 | "mAction":"android.media.action.MEDIA_PLAY_FROM_SEARCH", 15 | "mActionExtras":[ 16 | { 17 | "first":"query", 18 | "second":"Dual Core" 19 | } 20 | ] 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/values-sw600dp-land/refs.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | @layout/activity_main 8 | 9 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 96dp 4 | 400dp 5 | 16dp 6 | 80dp 7 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | 10 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/values-sw720dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 80dp 4 | 48dp 5 | 200dp 6 | 8dp 7 | 16dp 8 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 14 | 15 | 16 | 80dp 17 | 48dp 18 | 200dp 19 | 8dp 20 | 16dp 21 | 16dp 22 | 16dp 23 | 24 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | mavenCentral() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:0.11.+' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | mavenCentral() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/android-actions/simulator/actions-simulator/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/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.10-all.zip 7 | -------------------------------------------------------------------------------- /android-actions/simulator/actions-simulator/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /chrome-apps/begin/assets/icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/chrome-apps/begin/assets/icon_128.png -------------------------------------------------------------------------------- /chrome-apps/begin/assets/icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/chrome-apps/begin/assets/icon_16.png -------------------------------------------------------------------------------- /chrome-apps/begin/background.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Listens for the app launching then creates the window. 3 | * 4 | * @see http://developer.chrome.com/apps/app.runtime.html 5 | * @see http://developer.chrome.com/apps/app.window.html 6 | */ 7 | chrome.app.runtime.onLaunched.addListener(function() { 8 | chrome.app.window.create( 9 | "index.html", 10 | { 11 | id: "mainWindow", 12 | bounds: { 13 | width: 500, 14 | height: 300 15 | } 16 | } 17 | ); 18 | }); 19 | -------------------------------------------------------------------------------- /chrome-apps/begin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | TicTacToe 6 | 7 | 8 | 9 | 10 | 11 |

12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /chrome-apps/begin/main.js: -------------------------------------------------------------------------------- 1 | var greeting = document.querySelector('#greeting'); 2 | greeting.innerText = "Hello, World!"; 3 | -------------------------------------------------------------------------------- /chrome-apps/begin/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "TicTacToe", 4 | "description": "", 5 | "version": "0.0.1", 6 | "minimum_chrome_version": "23", 7 | "icons": { 8 | "16": "assets/icon_16.png", 9 | "128": "assets/icon_128.png" 10 | }, 11 | "app": { 12 | "background": { 13 | "scripts": ["background.js"] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /chrome-apps/begin/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #F8F8F8; 3 | font-family: 'Open Sans', sans-serif; 4 | font-size: 14px; 5 | margin: 15px; 6 | } 7 | -------------------------------------------------------------------------------- /chrome-apps/end/assets/icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/chrome-apps/end/assets/icon_128.png -------------------------------------------------------------------------------- /chrome-apps/end/assets/icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/chrome-apps/end/assets/icon_16.png -------------------------------------------------------------------------------- /chrome-apps/end/background.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Listens for the app launching then creates the window. 3 | * 4 | * @see http://developer.chrome.com/apps/app.runtime.html 5 | * @see http://developer.chrome.com/apps/app.window.html 6 | */ 7 | chrome.app.runtime.onLaunched.addListener(function() { 8 | chrome.app.window.create( 9 | "index.html", 10 | { 11 | id: "mainWindow", 12 | bounds: { 13 | width: 500, 14 | height: 300 15 | } 16 | } 17 | ); 18 | }); 19 | -------------------------------------------------------------------------------- /chrome-apps/end/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | TicTacToe 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 | 34 |
35 |
36 | 37 | 38 | -------------------------------------------------------------------------------- /chrome-apps/end/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "TicTacToe", 4 | "description": "", 5 | "version": "0.0.1", 6 | "minimum_chrome_version": "23", 7 | "icons": { 8 | "16": "assets/icon_16.png", 9 | "128": "assets/icon_128.png" 10 | }, 11 | "app": { 12 | "background": { 13 | "scripts": ["background.js"] 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /dart-start/begin/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /dart-start/begin/web/piratebadge.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | void main() { 6 | // Your app starts here. 7 | } 8 | -------------------------------------------------------------------------------- /dart-start/begin/web/piratebadge.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Pirate badge 12 | 14 | 15 | 16 | 17 |

Pirate badge

18 | 19 |
20 | TO DO: Put the UI widgets here. 21 |
22 |
23 |
24 | Arrr! Me name is 25 |
26 |
27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /dart-start/end/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /dart-start/end/web/piratenames.json: -------------------------------------------------------------------------------- 1 | { "names": [ "Anne", "Bette", "Cate", "Dawn", 2 | "Elise", "Faye", "Ginger", "Harriot", 3 | "Izzy", "Jane", "Kaye", "Liz", 4 | "Maria", "Nell", "Olive", "Pat", 5 | "Queenie", "Rae", "Sal", "Tam", 6 | "Uma", "Violet", "Wilma", "Xana", 7 | "Yvonne", "Zelda", 8 | "Abe", "Billy", "Caleb", "Davie", 9 | "Eb", "Frank", "Gabe", "House", 10 | "Icarus", "Jack", "Kurt", "Larry", 11 | "Mike", "Nolan", "Oliver", "Pat", 12 | "Quib", "Roy", "Sal", "Tom", 13 | "Ube", "Val", "Walt", "Xavier", 14 | "Yvan", "Zeb"], 15 | "appellations": [ "Awesome", "Captain", 16 | "Even", "Fighter", "Great", "Hearty", 17 | "Jackal", "King", "Lord", 18 | "Mighty", "Noble", "Old", "Powerful", 19 | "Quick", "Red", "Stalwart", "Tank", 20 | "Ultimate", "Vicious", "Wily", "aXe", "Young", 21 | "Brave", "Eager", 22 | "Kind", "Sandy", 23 | "Xeric", "Yellow", "Zesty"]} 24 | -------------------------------------------------------------------------------- /dart-start/step3/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /dart-start/step3/web/piratebadge.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | void main() { 8 | querySelector('#inputName').onInput.listen(updateBadge); 9 | } 10 | 11 | void updateBadge(Event e) { 12 | querySelector('#badgeName').text = (e.target as InputElement).value; 13 | } 14 | -------------------------------------------------------------------------------- /dart-start/step3/web/piratebadge.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Pirate badge 12 | 14 | 15 | 16 | 17 |

Pirate badge

18 | 19 |
20 |
21 | 22 |
23 |
24 |
25 |
26 | Arrr! Me name is 27 |
28 |
29 | 30 |
31 |
32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /dart-start/step4/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /dart-start/step4/web/piratebadge.dart: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 | // for details. All rights reserved. Use of this source code is governed by a 3 | // BSD-style license that can be found in the LICENSE file. 4 | 5 | import 'dart:html'; 6 | 7 | ButtonElement genButton; 8 | 9 | void main() { 10 | querySelector('#inputName').onInput.listen(updateBadge); 11 | genButton = querySelector('#generateButton'); 12 | genButton.onClick.listen(generateBadge); 13 | } 14 | 15 | void updateBadge(Event e) { 16 | String inputName = (e.target as InputElement).value; 17 | 18 | setBadgeName(inputName); 19 | if (inputName.trim().isEmpty) { 20 | genButton..disabled = false 21 | ..text = 'Aye! Gimme a name!'; 22 | } else { 23 | genButton..disabled = true 24 | ..text = 'Arrr! Write yer name!'; 25 | } 26 | } 27 | 28 | void generateBadge(Event e) { 29 | setBadgeName('Anne Bonney'); 30 | } 31 | 32 | void setBadgeName(String newName) { 33 | querySelector('#badgeName').text = newName; 34 | } 35 | -------------------------------------------------------------------------------- /dart-start/step4/web/piratebadge.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Pirate badge 12 | 14 | 15 | 16 | 17 |

Pirate badge

18 | 19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 |
28 |
29 | Arrr! Me name is 30 |
31 |
32 | 33 |
34 |
35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /dart-start/step5/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /dart-start/step5/web/piratebadge.html: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Pirate badge 12 | 14 | 15 | 16 | 17 |

Pirate badge

18 | 19 |
20 |
21 | 22 |
23 |
24 | 25 |
26 |
27 |
28 |
29 | Arrr! Me name is 30 |
31 |
32 | 33 |
34 |
35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /dart-start/step6/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: avast_ye_pirates 2 | description: Write a Dart web app code lab 3 | dependencies: 4 | browser: any 5 | -------------------------------------------------------------------------------- /go-codelab/solution/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: solution 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/solution/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /go-codelab/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/go-codelab/static/favicon.ico -------------------------------------------------------------------------------- /go-codelab/static/partials/home.html: -------------------------------------------------------------------------------- 1 |

2 | All the 3 | Yourlists

4 | 9 | 10 |
11 | 12 | 13 |
14 | -------------------------------------------------------------------------------- /go-codelab/static/partials/list.html: -------------------------------------------------------------------------------- 1 |

{{list.Name}}

2 | 3 | 8 | 9 |
10 | 11 | 12 |
13 |
14 | Delete 15 |
16 | 17 | Back home 18 | -------------------------------------------------------------------------------- /go-codelab/step1/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: one 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/step1/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /go-codelab/step2/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: two 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/step2/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /go-codelab/step3/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: three 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/step3/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /go-codelab/step4/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: four 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/step4/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /go-codelab/step5/app.yaml: -------------------------------------------------------------------------------- 1 | # Copyright 2011 The Go Authors. All rights reserved. 2 | # Use of this source code is governed by a BSD-style 3 | # license that can be found in the LICENSE file. 4 | 5 | application: go-at-io 6 | version: five 7 | runtime: go 8 | api_version: go1 9 | 10 | handlers: 11 | - url: /static 12 | static_dir: static 13 | - url: /favicon.ico 14 | static_files: static/favicon.ico 15 | upload: static/favicon.ico 16 | - url: /api/.* 17 | script: _go_app 18 | - url: /.* 19 | static_files: static/todo.html 20 | upload: static/todo.html 21 | -------------------------------------------------------------------------------- /go-codelab/step5/static: -------------------------------------------------------------------------------- 1 | ../static -------------------------------------------------------------------------------- /instant-buy/end/.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /local.properties 3 | /.idea/workspace.xml 4 | .DS_Store 5 | ._* 6 | -------------------------------------------------------------------------------- /instant-buy/end/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:0.11.+' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | mavenCentral() 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /instant-buy/end/demo.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /instant-buy/end/demo/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /instant-buy/end/demo/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | minSdkVersion 9 9 | targetSdkVersion 19 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | runProguard false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | dependencies { 22 | compile fileTree(dir: 'libs', include: ['*.jar']) 23 | compile 'com.android.support:support-v4:19.1.0' 24 | compile 'com.android.support:appcompat-v7:19.+' 25 | compile 'com.google.android.gms:play-services:4.4.52' 26 | } 27 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/gen/com/google/io/instantbuy/demo/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /*___Generated_by_IDEA___*/ 2 | 3 | package com.google.io.instantbuy.demo; 4 | 5 | /* This stub is only used by the IDE. It is NOT the BuildConfig class actually packed into the APK */ 6 | public final class BuildConfig { 7 | public final static boolean DEBUG = Boolean.parseBoolean(null); 8 | } -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/gen/com/google/io/instantbuy/demo/Manifest.java: -------------------------------------------------------------------------------- 1 | /*___Generated_by_IDEA___*/ 2 | 3 | package com.google.io.instantbuy.demo; 4 | 5 | /* This stub is only used by the IDE. It is NOT the Manifest class actually packed into the APK */ 6 | public final class Manifest { 7 | } -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/gen/com/google/io/instantbuy/demo/R.java: -------------------------------------------------------------------------------- 1 | /*___Generated_by_IDEA___*/ 2 | 3 | package com.google.io.instantbuy.demo; 4 | 5 | /* This stub is only used by the IDE. It is NOT the R class actually packed into the APK */ 6 | public final class R { 7 | } -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/main.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/instant-buy/end/demo/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/instant-buy/end/demo/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/instant-buy/end/demo/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/instant-buy/end/demo/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Google IO Instant Buy Demo 5 | Hello world! 6 | Settings 7 | 8 | 9 | -------------------------------------------------------------------------------- /instant-buy/end/demo/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /instant-buy/end/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /instant-buy/end/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/instant-buy/end/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /instant-buy/end/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jun 18 11:09:38 PDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /instant-buy/end/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':demo' 2 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/libs/gcm-server.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/MobileBackend/libs/gcm-server.jar -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/java/com/google/cloud/backend/config/StringUtility.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend.config; 2 | 3 | import com.google.appengine.api.datastore.Text; 4 | 5 | /** 6 | * Utility class contains utility methods for String type objects. 7 | */ 8 | public class StringUtility { 9 | 10 | private StringUtility() {} 11 | 12 | /** 13 | * Determine if an input string is null or empty. 14 | * 15 | * @param string Input string that might contain null, empty string or non-empty string 16 | * @return True if the input string is null or empty; false, the otherwise 17 | */ 18 | public static boolean isNullOrEmpty(String string) { 19 | return (string == null || string.isEmpty()); 20 | } 21 | 22 | /** 23 | * Determine if an input text is null or empty. 24 | * 25 | * @param text Input text that might contain null, empty text or non-empty text 26 | * @return True if the input text is null or empty; false, the otherwise 27 | */ 28 | public static boolean isNullOrEmpty(Text text) { 29 | return (text == null || text.getValue() == null || text.getValue().isEmpty()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/java/com/google/cloud/backend/spi/ImageTransformer.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend.spi; 2 | 3 | import com.google.appengine.api.images.Image; 4 | 5 | /** 6 | * Interface for a image transformer. 7 | */ 8 | public interface ImageTransformer { 9 | 10 | /** 11 | * Applies some transformations to the old image and returns the transformed image. 12 | * 13 | * @param oldImage 14 | * @return 15 | */ 16 | public Image transform(Image oldImage); 17 | } 18 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/java/com/google/cloud/backend/spi/QuerySubscriptions.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend.spi; 2 | 3 | import java.util.List; 4 | 5 | /** 6 | * Class manages CloudEntities query unsubscription. 7 | */ 8 | public class QuerySubscriptions { 9 | 10 | private static final QuerySubscriptions _instance = new QuerySubscriptions(); 11 | 12 | /** 13 | * Returns an instance of {@link QuerySubscriptions}. 14 | * 15 | * @return a singleton 16 | */ 17 | public static QuerySubscriptions getInstance() { 18 | return _instance; 19 | } 20 | 21 | private QuerySubscriptions() { 22 | } 23 | 24 | /** 25 | * Remove all subscriptions for this device. 26 | * 27 | * @param deviceId a unique identifier for the device 28 | */ 29 | protected void unsubscribe(String deviceId) { 30 | List id = SubscriptionUtility.extractRegIdAsList(deviceId); 31 | SubscriptionUtility.clearSubscriptionAndDeviceEntity(id); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/WEB-INF/appengine-web.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | myApplicationId 4 | 1 5 | true 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/WEB-INF/cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /admin/push/feedbackservice/process 5 | Query APNS Feedback service and remove inactive deviecs 6 | 7 | every 4 hours 8 | 9 | 10 | /admin/push/notifications/cleanup 11 | Remove no longer needed records of processed notifications 12 | 13 | worker 14 | 16 | every day 04:45 17 | America/New_York 18 | 19 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/WEB-INF/datastore-indexes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/WEB-INF/logging.properties: -------------------------------------------------------------------------------- 1 | # A default java.util.logging configuration. 2 | # (All App Engine logging is through java.util.logging by default). 3 | # 4 | # To use this configuration, copy it into your application's WEB-INF 5 | # folder and add the following to your appengine-web.xml: 6 | # 7 | # 8 | # 9 | # 10 | # 11 | 12 | # Set the default logging level for all loggers to WARNING 13 | .level = INFO 14 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/WEB-INF/queue.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | notification-delivery 4 | pull 5 | 6 | 7 | notification-device-token-cleanup 8 | 10/s 9 | 20 10 | default 11 | 12 | 13 | subscription-removal 14 | 100/s 15 | 20 16 | default 17 | 18 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/admin/img/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/MobileBackend/src/main/webapp/admin/img/bg.gif -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/MobileBackend/src/main/webapp/favicon.ico -------------------------------------------------------------------------------- /mobile-backend-starter/begin/MobileBackend/src/main/webapp/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Redirecting 4 | 5 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion '19.1.0' 6 | defaultConfig { 7 | minSdkVersion 15 8 | targetSdkVersion 19 9 | versionCode 1 10 | versionName '1.0' 11 | } 12 | buildTypes { 13 | release { 14 | runProguard false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 16 | } 17 | } 18 | productFlavors { 19 | } 20 | enforceUniquePackageName = false 21 | dexOptions { 22 | preDexLibraries = false 23 | } 24 | } 25 | 26 | dependencies { 27 | compile project(':mobile-backend-starter-android-client-core') 28 | } 29 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/java/com/google/cloud/backend/sample/guestbook/OnIntroNavListener.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend.sample.guestbook; 2 | 3 | /** 4 | * Listener used by the introductory Fragments to interact with each other and 5 | * with the Guestbook Activity. The hosting Guestbook Activity should implement 6 | * this listener. 7 | */ 8 | public interface OnIntroNavListener { 9 | public void toFirst(String fromTag); 10 | 11 | public void toSecond(String fromTag); 12 | 13 | public void toThird(String fromTag); 14 | 15 | public void done(boolean skipFutureIntro); 16 | } 17 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/java/com/google/cloud/backend/sample/guestbook/SplashFragment.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend.sample.guestbook; 2 | 3 | import android.app.Fragment; 4 | import android.os.Bundle; 5 | import android.view.LayoutInflater; 6 | import android.view.View; 7 | import android.view.ViewGroup; 8 | 9 | import com.google.cloud.backend.R; 10 | 11 | /** 12 | * This Fragment provides the splash screen that is shown when the guestbook app 13 | * is retrieving entries from the server. 14 | */ 15 | public class SplashFragment extends Fragment { 16 | @Override 17 | public View onCreateView( 18 | LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 19 | return inflater.inflate(R.layout.fragment_splash, container, false); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/anim/translate_progress.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_camera.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_launcher_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_launcher_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_left_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_menu_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_menu_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/ic_send.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_connect.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_done.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_1.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_2.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_dots_3.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_guestbook_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_guestbook_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_logo_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-hdpi/img_logo_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_camera.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_launcher_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_launcher_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_left_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_menu_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_menu_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_right_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/ic_send.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_connect.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_done.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_1.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_2.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_dots_3.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_guestbook_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_guestbook_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_logo_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-ldpi/img_logo_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_camera.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_launcher_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_launcher_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_left_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_menu_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_menu_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/ic_send.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_connect.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_done.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_1.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_2.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_dots_3.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_guestbook_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_guestbook_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_logo_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-mdpi/img_logo_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_camera.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_launcher_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_launcher_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_left_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_left_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_menu_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_menu_guestbook.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_right_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_right_arrow.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/ic_send.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_connect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_connect.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_done.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_1.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_2.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_dots_3.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_guestbook_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_guestbook_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_logo_splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/app/src/main/res/drawable-xhdpi/img_logo_splash.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/layout/activity_introduction.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 13 | 14 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/layout/fragment_splash.xml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 15 | 16 | 24 | 25 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/layout/row_post.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 20 | 21 | 27 | 28 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/menu/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/menu/image_processing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/values-v11/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | #000000 3 | #ffffff 4 | #acacac 5 | #333333 6 | #212121 7 | #33b4e5 8 | #ffbb33 9 | #eeeeee 10 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/app/src/main/res/values/integers.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1 4 | 5 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:0.11.+' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | mavenLocal() 15 | mavenCentral() 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /mobile-backend-starter/begin/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /mobile-backend-starter/begin/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Jun 08 21:36:53 JST 2014 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 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/google/home/thagikura/android-studio/sdk/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the ProGuard 5 | # include property in project.properties. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/java/com/google/cloud/backend/GCMBroadcastReceiver.java: -------------------------------------------------------------------------------- 1 | package com.google.cloud.backend; 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 | 11 | @Override 12 | public void onReceive(Context context, Intent intent) { 13 | // Explicitly specify that GcmIntentService will handle the intent. 14 | ComponentName comp = new ComponentName(context.getPackageName(), 15 | com.google.cloud.backend.GCMIntentService.class.getName()); 16 | // Start the service, keeping the device awake while it is launching. 17 | startWakefulService(context, (intent.setComponent(comp))); 18 | setResultCode(Activity.RESULT_OK); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /mobile-backend-starter/begin/mobile-backend-starter-android-client-core/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /mobile-backend-starter/begin/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':mobile-backend-starter-android-client-core', ':MobileBackend' 2 | -------------------------------------------------------------------------------- /play-games/begin/Squash/Squash.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion '19.1.0' 6 | 7 | defaultConfig { 8 | minSdkVersion 9 9 | targetSdkVersion 19 10 | } 11 | 12 | buildTypes { 13 | release { 14 | runProguard false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 16 | } 17 | } 18 | } 19 | 20 | dependencies { 21 | compile 'com.android.support:support-v4:+' 22 | compile 'com.google.android.gms:play-services:+' 23 | } 24 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/begin/Squash/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/begin/Squash/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/begin/Squash/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/begin/Squash/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/menu/squash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values/gamehelper_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Failed to sign in. Please check your network connection and try again. 4 | The application is incorrectly configured. Check that the package name and signing certificate match the client ID created in Developer Console. Also, if the application is not yet published, check that the account you are trying to sign in with is listed as a tester account. See logs for more information. 5 | License check failed. 6 | Unknown error. 7 | 8 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 1066863964070 3 | 4 | CgkIpt-wsIYfEAIQAQ 5 | CgkIpt-wsIYfEAIQAg 6 | CgkIpt-wsIYfEAIQAw 7 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Squash 5 | Hello world! 6 | Reset 7 | Play Game 8 | Sign Out 9 | 10 | -------------------------------------------------------------------------------- /play-games/begin/Squash/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /play-games/begin/Squash/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | mavenCentral() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:0.12.+' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | mavenCentral() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /play-games/begin/Squash/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/begin/Squash/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /play-games/begin/Squash/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 20 11:15:53 PDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /play-games/begin/Squash/local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | #Mon Jun 16 11:16:16 PDT 2014 11 | sdk.dir=/Applications/Android Studio.app/sdk 12 | -------------------------------------------------------------------------------- /play-games/begin/Squash/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /play-games/end/Squash/Squash-Complete.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /play-games/end/Squash/Squash.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion '19.1.0' 6 | 7 | defaultConfig { 8 | minSdkVersion 9 9 | targetSdkVersion 19 10 | } 11 | 12 | buildTypes { 13 | release { 14 | runProguard false 15 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 16 | } 17 | } 18 | } 19 | 20 | dependencies { 21 | compile 'com.android.support:support-v4:+' 22 | compile 'com.google.android.gms:play-services:+' 23 | } 24 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/lint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/end/Squash/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/end/Squash/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/end/Squash/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/end/Squash/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/menu/squash.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 12 | 13 | 17 | 18 | 22 | 23 | 27 | 28 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values-sw600dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values-sw720dp-land/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 128dp 8 | 9 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values-v14/styles.xml: -------------------------------------------------------------------------------- 1 | 16 | 17 | 18 | 23 | 26 | 27 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 16dp 5 | 16dp 6 | 7 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values/gamehelper_strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Failed to sign in. Please check your network connection and try again. 4 | The application is incorrectly configured. Check that the package name and signing certificate match the client ID created in Developer Console. Also, if the application is not yet published, check that the account you are trying to sign in with is listed as a tester account. See logs for more information. 5 | License check failed. 6 | Unknown error. 7 | 8 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values/ids.xml: -------------------------------------------------------------------------------- 1 | 2 | 1066863964070 3 | 4 | CgkIpt-wsIYfEAIQAQ 5 | CgkIpt-wsIYfEAIQAg 6 | CgkIpt-wsIYfEAIQAw 7 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Multisquash 5 | Hello world! 6 | Reset 7 | High Score 8 | Send Gift 9 | Gift Inbox 10 | Achievements 11 | Sign Out 12 | Play Game 13 | 14 | -------------------------------------------------------------------------------- /play-games/end/Squash/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 14 | 15 | 16 | 19 | 20 | -------------------------------------------------------------------------------- /play-games/end/Squash/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | buildscript { 3 | repositories { 4 | mavenCentral() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:0.12.+' 8 | } 9 | } 10 | 11 | allprojects { 12 | repositories { 13 | mavenCentral() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /play-games/end/Squash/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/play-games/end/Squash/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /play-games/end/Squash/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Jun 20 11:17:55 PDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /play-games/end/Squash/local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | #Mon Jun 16 11:23:24 PDT 2014 11 | sdk.dir=/Applications/Android Studio.app/sdk 12 | -------------------------------------------------------------------------------- /play-games/end/Squash/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /polymer-and-dart/.gitignore: -------------------------------------------------------------------------------- 1 | .buildlog 2 | packages 3 | -------------------------------------------------------------------------------- /polymer-and-dart/build.dart: -------------------------------------------------------------------------------- 1 | import 'package:polymer/builder.dart'; 2 | 3 | main(args) { 4 | build(entryPoints: ['web/index.html'], 5 | options: parseOptions(args)); 6 | } 7 | -------------------------------------------------------------------------------- /polymer-and-dart/pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: polymer_and_dart 2 | description: Sample app built with the polymer.dart package 3 | environment: 4 | sdk: '>=1.2.0 <2.0.0' 5 | dependencies: 6 | polymer: '>=0.10.0 <0.11.0' 7 | dev_dependencies: 8 | unittest: '>=0.10.0 <0.11.0' 9 | transformers: 10 | - polymer: 11 | entry_points: 12 | - web/begin/index.html 13 | - web/step2/index.html 14 | - web/step3/index.html 15 | - web/step4/index.html 16 | - web/step5/index.html 17 | - web/step6/index.html 18 | - web/step7/index.html 19 | - web/end/index.html 20 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/app.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | margin-bottom: 12px; 5 | font-family: sans-serif; 6 | color: #666; 7 | } 8 | 9 | body { 10 | padding: 30px; 11 | } 12 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/codelab_element.dart: -------------------------------------------------------------------------------- 1 | import 'package:polymer/polymer.dart'; 2 | import 'model.dart' show Codelab; 3 | import 'dart:html' show Event, Node, CustomEvent; 4 | 5 | @CustomTag('codelab-element') 6 | class CodelabElement extends PolymerElement { 7 | CodelabElement.created(): super.created() {} 8 | } 9 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/codelab_element.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/codelab_form.dart: -------------------------------------------------------------------------------- 1 | import 'package:polymer/polymer.dart'; 2 | import 'model.dart' show Codelab; 3 | import 'dart:html' show CustomEvent, Event, Node; 4 | 5 | 6 | @CustomTag('codelab-form') 7 | class CodelabFormElement extends PolymerElement { 8 | CodelabFormElement.created() : super.created() {} 9 | } 10 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/codelab_list.dart: -------------------------------------------------------------------------------- 1 | import 'package:polymer/polymer.dart'; 2 | import 'model.dart' show Codelab; 3 | import 'dart:html' show Event, Node; 4 | 5 | @CustomTag('codelab-list') 6 | class CodelabList extends PolymerElement { 7 | CodelabList.created() : super.created() {} 8 | } 9 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/codelab_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Polymer: Build an Admin Console Using Dart 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Polymer: Build an Admin Console Using Dart

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /polymer-and-dart/web/begin/model.dart: -------------------------------------------------------------------------------- 1 | library polymer_and_dart.web.models; 2 | 3 | import 'package:polymer/polymer.dart'; 4 | 5 | class Codelab extends Observable { 6 | } 7 | -------------------------------------------------------------------------------- /polymer-and-dart/web/end/app.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin: 0; 3 | padding: 0; 4 | margin-bottom: 12px; 5 | font-family: sans-serif; 6 | color: #666; 7 | } 8 | 9 | body { 10 | padding: 30px; 11 | } 12 | -------------------------------------------------------------------------------- /polymer-and-dart/web/end/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Polymer: Build an Admin Console Using Dart 7 | 8 | 9 | 10 | 11 | 12 | 13 |

Polymer: Build an Admin Console Using Dart

14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /polymer-and-dart/web/end/model.dart: -------------------------------------------------------------------------------- 1 | library polymer_and_dart.web.models; 2 | 3 | import 'package:polymer/polymer.dart'; 4 | 5 | /* 6 | * The barebones model for a codelab. Defines constants used for validation. 7 | */ 8 | class Codelab extends Observable { 9 | static const List LEVELS = const ['easy', 'intermediate', 'advanced']; 10 | static const MIN_TITLE_LENGTH = 10; 11 | static const MAX_TITLE_LENGTH = 30; 12 | static const MAX_DESCRIPTION_LENGTH = 140; 13 | 14 | @observable String title; 15 | @observable String description; 16 | @observable String level; 17 | 18 | Codelab([this.title = "", this.description = ""]); 19 | } -------------------------------------------------------------------------------- /polymer-build-mobile/README: -------------------------------------------------------------------------------- 1 | This is a sample code for the Google IO 2014 codelab 2 | "Polymer: Build a Material Design Mobile Web App with Paper Elements". 3 | 4 | Codelab instructions: http://io2014codelabs.appspot.com/static/codelabs/polymer-build-mobile/ 5 | 6 | *** 7 | This code sample uses [Bower](http://bower.io/) to manage code dependencies. Plese run 8 | 9 | $ bower install 10 | 11 | in each directory you wish to test before running the sample in the browser. 12 | *** 13 | 14 | *** 15 | Polymer requires files to be served over HTTP server rather than as local files. 16 | E.g. if you have python (2.x) installed, run 17 | 18 | $ python -m SimpleHTTPServer 19 | 20 | (or another server of your choice) to view the sample in the browser. 21 | *** 22 | 23 | -------------------------------------------------------------------------------- /polymer-build-mobile/begin/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "paper-elements": "Polymer/paper-elements#master" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /polymer-build-mobile/begin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | + 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
I'm PolymerMobileCodelab, a web app with Polymer!
19 |
20 |
21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /polymer-build-mobile/begin/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-family: sans-serif; 3 | font-size: 16px; 4 | display: flex; 5 | flex-flow: row; 6 | align-items: center; 7 | justify-content: center; 8 | } 9 | 10 | core-header-panel { 11 | float: left; 12 | width: 360px; 13 | height: 400px; 14 | margin: 5px; 15 | } 16 | 17 | core-header-panel::shadow #mainContainer { 18 | margin: 0 10px; 19 | box-shadow: 0 10px 40px 0 #aaa; 20 | } 21 | 22 | .core-header { 23 | height: 60px; 24 | line-height: 60px; 25 | font-size: 18px; 26 | padding: 0 10px; 27 | background-color: #4F7DC9; 28 | color: #FFF; 29 | transition: height 0.2s; 30 | } 31 | 32 | .core-header.tall { 33 | height: 180px; 34 | } 35 | 36 | .core-header.medium-tall { 37 | height: 120px; 38 | } 39 | 40 | .content { 41 | height: auto; 42 | color: black; 43 | background: linear-gradient(rgb(214, 227, 231), lightblue); 44 | text-align: center; 45 | } 46 | -------------------------------------------------------------------------------- /polymer-build-mobile/end/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto#master" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/end/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step2/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto#master" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step2/codelab-app.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 9 | 13 | -------------------------------------------------------------------------------- /polymer-build-mobile/step2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step2/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step3/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto#master" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step3/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } 4 | 5 | [drawer] { 6 | background-color: #fff; 7 | } 8 | 9 | [main] > div { 10 | padding: 2em; 11 | } 12 | 13 | [drawer] > core-item { 14 | padding: 1em; 15 | } 16 | 17 | [main] paper-checkbox { 18 | margin-right: 1em; 19 | } 20 | 21 | [main] { 22 | height: 100%; 23 | background-color: #f1f1f3; 24 | } 25 | 26 | [drawer] core-toolbar { 27 | background-color: #4F7DC9; 28 | color: #fff; 29 | } 30 | 31 | [main] core-toolbar { 32 | background-color: #526E9C; 33 | color: #fff; 34 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step4/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step4/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } 4 | 5 | [drawer] { 6 | background-color: #fff; 7 | } 8 | 9 | [main] > div { 10 | padding: 2em; 11 | } 12 | 13 | [drawer] > core-item { 14 | padding: 1em; 15 | } 16 | 17 | [main] paper-checkbox { 18 | margin-right: 1em; 19 | } 20 | 21 | [main] { 22 | height: 100%; 23 | background-color: #f1f1f3; 24 | } 25 | 26 | [drawer] core-toolbar { 27 | background-color: #4F7DC9; 28 | color: #fff; 29 | } 30 | 31 | [main] core-toolbar { 32 | background-color: #526E9C; 33 | color: #fff; 34 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step5/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step5/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } 4 | 5 | [drawer] { 6 | background-color: #fff; 7 | } 8 | 9 | [main] > div { 10 | padding: 2em; 11 | } 12 | 13 | [drawer] > core-item { 14 | padding: 1em; 15 | } 16 | 17 | [main] paper-checkbox { 18 | margin-right: 1em; 19 | } 20 | 21 | [main] { 22 | height: 100%; 23 | background-color: #f1f1f3; 24 | } 25 | 26 | [drawer] core-toolbar { 27 | background-color: #4F7DC9; 28 | color: #fff; 29 | } 30 | 31 | [main] core-toolbar { 32 | background-color: #526E9C; 33 | color: #fff; 34 | } 35 | 36 | paper-fab { 37 | background-color: #e0a30b; 38 | position: absolute !important; 39 | bottom: -27px; 40 | right: 1em; 41 | z-index: 10; 42 | } 43 | 44 | .card { 45 | width: 300px; 46 | background-color: #fff; 47 | padding: 1em; 48 | margin: 1em; 49 | position: relative; 50 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step6/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step6/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } 4 | 5 | [drawer] { 6 | background-color: #fff; 7 | } 8 | 9 | [main] > div { 10 | padding: 2em; 11 | } 12 | 13 | [drawer] > core-item { 14 | padding: 1em; 15 | } 16 | 17 | [main] paper-checkbox { 18 | margin-right: 1em; 19 | } 20 | 21 | [main] { 22 | height: 100%; 23 | background-color: #f1f1f3; 24 | } 25 | 26 | [drawer] core-toolbar { 27 | background-color: #4F7DC9; 28 | color: #fff; 29 | } 30 | 31 | [main] core-toolbar { 32 | background-color: #526E9C; 33 | color: #fff; 34 | } 35 | 36 | paper-fab { 37 | background-color: #e0a30b; 38 | position: absolute !important; 39 | bottom: -27px; 40 | right: 1em; 41 | z-index: 10; 42 | } 43 | 44 | .card { 45 | width: 300px; 46 | background-color: #fff; 47 | padding: 1em; 48 | margin: 1em; 49 | position: relative; 50 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step7/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /polymer-build-mobile/step7/styles.css: -------------------------------------------------------------------------------- 1 | :host { 2 | font-family: Roboto, 'Helvetica Neue', Helvetica, Arial; 3 | } 4 | 5 | [drawer] { 6 | background-color: #fff; 7 | } 8 | 9 | [main] > div { 10 | padding: 2em; 11 | } 12 | 13 | [drawer] > core-item { 14 | padding: 1em; 15 | } 16 | 17 | [main] paper-checkbox { 18 | margin-right: 1em; 19 | } 20 | 21 | [main] { 22 | height: 100%; 23 | background-color: #f1f1f3; 24 | } 25 | 26 | [drawer] core-toolbar { 27 | background-color: #4F7DC9; 28 | color: #fff; 29 | } 30 | 31 | [main] core-toolbar { 32 | background-color: #526E9C; 33 | color: #fff; 34 | } 35 | 36 | paper-fab { 37 | background-color: #e0a30b; 38 | position: absolute !important; 39 | bottom: -27px; 40 | right: 1em; 41 | z-index: 10; 42 | } 43 | 44 | .card { 45 | width: 300px; 46 | background-color: #fff; 47 | padding: 1em; 48 | margin: 1em; 49 | position: relative; 50 | } 51 | 52 | *[data-fade-selected="true"] .item[data-done="true"] { 53 | opacity: 0.3; 54 | } 55 | 56 | paper-button[raisedButton].colored { 57 | width: 100%; 58 | background: #4285f4; 59 | color: #fff; 60 | fill: #fff; 61 | } -------------------------------------------------------------------------------- /polymer-build-mobile/step8/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "PolymerMobileCodelab", 3 | "description": "", 4 | "homepage": "", 5 | "keywords": [ 6 | ], 7 | "author": "", 8 | "private": true, 9 | "dependencies": { 10 | "polymer": "Polymer/polymer#master", 11 | "core-elements": "Polymer/core-elements#master", 12 | "paper-elements": "Polymer/paper-elements#master", 13 | "font-roboto": "Polymer/font-roboto#master" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /polymer-build-mobile/step8/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PolymerMobileCodelab 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'android' 2 | 3 | android { 4 | compileSdkVersion 19 5 | buildToolsVersion "19.1.0" 6 | 7 | defaultConfig { 8 | minSdkVersion 9 9 | targetSdkVersion 19 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | buildTypes { 14 | release { 15 | runProguard false 16 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 17 | } 18 | } 19 | } 20 | 21 | repositories { 22 | mavenCentral() 23 | flatDir { 24 | dirs 'libs' 25 | } 26 | } 27 | 28 | dependencies { 29 | compile fileTree(dir: 'libs', include: ['*.jar']) 30 | compile 'com.android.support:appcompat-v7:19.+' 31 | //compile 'com.google.android.gms:play-services:4.4.52' 32 | compile 'com.google.android.gms:google-play-services-wallettester-second-party-5033600:5.0.33-600@aar' 33 | } 34 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/proguard-rules.txt: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/pying/Documents/sdks/android-sdk-macosx/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the ProGuard 5 | # include property in project.properties. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/wallet_button_background_enabled.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/wallet_button_background_enabled.9.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/wallet_button_save_to_foreground_enabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-hdpi/wallet_button_save_to_foreground_enabled.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/drawable-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/app/src/main/res/drawable-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/menu/main.xml: -------------------------------------------------------------------------------- 1 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Wobs Gradle 5 | Hello world! 6 | Settings 7 | 8 | 9 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | flatDir{ 7 | dirs 'app/libs' 8 | } 9 | } 10 | dependencies { 11 | classpath 'com.android.tools.build:gradle:0.11.+' 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | mavenCentral() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Settings specified in this file will override any Gradle settings 5 | # configured through the IDE. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/googlesamples/io2014-codelabs/cb0438141df93a628f4930e36a72d6bd9ff8f6ca/wallet-objects/end/wallet-objects/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jun 17 16:57:16 PDT 2014 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.10-all.zip 7 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/local.properties: -------------------------------------------------------------------------------- 1 | ## This file is automatically generated by Android Studio. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file should *NOT* be checked into Version Control Systems, 5 | # as it contains information specific to your local configuration. 6 | # 7 | # Location of the SDK. This is only used by Gradle. 8 | # For customization when using a Version Control System, please read the 9 | # header note. 10 | sdk.dir=/Users/pying/Documents/sdks/android-sdk-macosx -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /wallet-objects/end/wallet-objects/wallet-objects-io.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /webrtc-file-sharing/begin/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WebRTC codelab: begin 6 | 7 | 8 | 9 | 10 |

Hello I/O!

11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /webrtc-file-sharing/server.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var nodeStatic = require('node-static'); 4 | var http = require('http'); 5 | var file = new(nodeStatic.Server)(); 6 | var app = http.createServer(function(req, res) { 7 | file.serve(req, res); 8 | }).listen(2014); 9 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WebRTC codelab step 2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step2/js/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | navigator.getUserMedia = navigator.getUserMedia || 4 | navigator.webkitGetUserMedia || navigator.mozGetUserMedia; 5 | 6 | var constraints = {video: true}; 7 | 8 | function successCallback(stream) { 9 | window.stream = stream; // stream available to console 10 | var video = document.querySelector("video"); 11 | video.src = window.URL.createObjectURL(stream); 12 | video.play(); 13 | } 14 | 15 | function errorCallback(error){ 16 | console.log("navigator.getUserMedia error: ", error); 17 | } 18 | 19 | navigator.getUserMedia(constraints, successCallback, errorCallback); 20 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WebRTC codelab: step 3 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | WebRTC codelab: step 4 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 |
15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WebRTC codelab: step 5 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step5/js/main.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | var isInitiator; 4 | 5 | window.room = prompt("Enter room name:"); 6 | 7 | var socket = io.connect(); 8 | 9 | if (room !== "") { 10 | console.log('Message from client: Asking to join room ' + room); 11 | socket.emit('create or join', room); 12 | } 13 | 14 | socket.on('created', function(room, clientId) { 15 | isInitiator = true; 16 | }); 17 | 18 | socket.on('full', function(room) { 19 | console.log('Message from client: Room ' + room + ' is full :^('); 20 | }); 21 | 22 | socket.on('ipaddr', function(ipaddr) { 23 | console.log('Message from client: Server IP address is ' + ipaddr); 24 | }); 25 | 26 | socket.on('joined', function(room, clientId) { 27 | isInitiator = false; 28 | }); 29 | 30 | socket.on('log', function(array) { 31 | console.log.apply(console, array); 32 | }); 33 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step6/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | WebRTC codelab: step 6 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step7/css/main.css: -------------------------------------------------------------------------------- 1 | canvas.incomingPhoto { 2 | display: inline-block; 3 | margin: 10px; 4 | width: 200px; 5 | height: 150px; 6 | border: 1px solid #ccc; 7 | } 8 | 9 | canvas#photo { 10 | height: 240px; 11 | width: 320px; 12 | border: 1px solid #ccc; 13 | } 14 | 15 | div#buttons { 16 | border-bottom: 1px solid #ccc; 17 | margin: 0 0 20px 0; 18 | padding: 0 0 20px 0; 19 | } 20 | 21 | div#videoCanvas { 22 | height: 240px; 23 | margin: 0 0 20px 0; 24 | } 25 | 26 | video#camera { 27 | width: 320px; 28 | min-height: 240px; 29 | float: left; 30 | margin: 0 20px 0 0; 31 | border: 1px solid #aaa; 32 | } 33 | -------------------------------------------------------------------------------- /webrtc-file-sharing/step7/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | WebRTC codelab: step 7 7 | 8 | 9 | 10 | 11 | 12 |

13 | Room URL: ... 14 |

15 | 16 |
17 | 18 | 19 |
20 | 21 |
22 | then 23 | or 24 | 25 |
26 | 27 |
28 |

Incoming photos

29 |
30 |
31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | --------------------------------------------------------------------------------