From abededd8f7014bb4af9e0e203b71633cd72e9c20 Mon Sep 17 00:00:00 2001 From: Trevor Johns Date: Tue, 9 Dec 2014 18:47:59 -0800 Subject: [PATCH] Docs: Sync browseable samples for lmp-docs Synced to developers/samples/android commit bc036ecdf44cd03163c206096172299f3940b057. Change-Id: Ib68230d79ca300e7db906aff2ebfc2cb6c6968f7 --- .../res/values-v21/base-colors.xml} | 9 +- .../res/values-v21/base-template-styles.xml} | 12 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../MainActivity.java | 28 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../ActivitySceneTransitionBasic/_index.jd | 6 +- .../res/layout/details.xml | 2 +- .../res/layout/grid_item.xml | 2 +- .../res/transition/grid_detail_transition.xml | 28 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/styles.xml | 3 - .../res/values-v21/template-styles.xml | 22 - .../res/values/base-strings.xml | 6 +- .../res/values/strings.xml | 15 + .../DetailActivity.java | 118 +++- .../ImageMemoryCache.java | 96 --- .../MainActivity.java | 44 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../AgendaData/Wearable/AndroidManifest.xml | 2 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/drawable-hdpi/ic_launcher.png | Bin 3483 -> 3889 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2304 -> 2533 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 4379 -> 5270 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 6307 -> 9309 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../browseable/BasicAndroidKeyStore/_index.jd | 17 +- .../res/layout-sw600dp-land/activity_main.xml | 41 +- .../res/layout-sw600dp/activity_main.xml | 38 +- .../res/layout/activity_main.xml | 46 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values/base-strings.xml | 17 +- .../MainActivity.java | 6 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - samples/browseable/BasicNetworking/_index.jd | 8 +- .../res/drawable-hdpi/ic_launcher.png | Bin 4407 -> 4499 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2668 -> 2721 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 6230 -> 6287 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 11294 -> 10763 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values/base-strings.xml | 8 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/drawable-hdpi/ic_launcher.png | Bin 5473 -> 4588 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 3298 -> 2770 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 7401 -> 6549 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 12074 -> 11666 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - samples/browseable/BatchStepSensor/_index.jd | 10 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values/base-strings.xml | 10 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Camera2BasicFragment.java | 20 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../CardReader/res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../CardView/res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../DataLayer/Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/res/values/base-strings.xml | 6 +- .../DataLayer/Wearable/AndroidManifest.xml | 2 +- samples/browseable/DataLayer/_index.jd | 6 +- .../Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Wearable/AndroidManifest.xml | 2 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../DoneBar/res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../ElizaChat/Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../EmbeddedApp/Wearable/AndroidManifest.xml | 2 +- .../Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../FindMyPhone/Wearable/AndroidManifest.xml | 2 +- .../Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Flashlight/Wearable/AndroidManifest.xml | 2 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values/dimens.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/res/values/strings.xml | 2 + .../GeofenceTransitionsIntentService.java | 29 +- .../MainActivity.java | 100 +-- .../Geofencing/Wearable/AndroidManifest.xml | 2 +- .../Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Wearable/AndroidManifest.xml | 2 +- .../res/drawable-nodpi/bugdroid_large.png | Bin 0 -> 10089 bytes .../Wearable/res/drawable/gradient.xml} | 15 +- .../Wearable/res/drawable/shape.xml} | 22 +- .../Wearable/res/layout/activity_main.xml | 23 +- .../Wearable/res/layout/custom_fragment.xml | 31 + .../Wearable/res/values/dimens.xml | 1 + .../Wearable/res/values/strings.xml | 30 +- .../CustomFragment.java | 32 + .../MainActivity.java | 3 + .../SampleGridPagerAdapter.java | 198 ++++-- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/drawable-hdpi/ic_launcher.png | Bin 9397 -> 4135 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 5237 -> 2492 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 14383 -> 5828 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 10533 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 6 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../JumpingJack/Wearable/AndroidManifest.xml | 2 +- .../MainActivity.java | 2 +- .../fragments/SettingsFragment.java | 13 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../browseable/MediaBrowserService/_index.jd | 16 +- .../res/drawable-hdpi/ic_launcher.png | Bin 4805 -> 2051 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2592 -> 1545 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 5246 -> 2838 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 14755 -> 4437 bytes .../res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 5982 bytes .../MediaNotification.java | 50 +- .../PackageValidator.java | 9 +- .../res/drawable-hdpi/ic_launcher.png | Bin 4781 -> 4360 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2872 -> 2684 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 6655 -> 6178 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 11507 -> 10820 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - samples/browseable/MediaRecorder/_index.jd | 10 +- .../res/drawable-hdpi/ic_launcher.png | Bin 4512 -> 3925 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2719 -> 2388 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 6345 -> 5433 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 11620 -> 9657 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../MediaRecorder/res/values/base-strings.xml | 10 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/drawable-hdpi/ic_launcher.png | Bin 3964 -> 4801 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2327 -> 2956 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 5488 -> 6724 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 9578 -> 11883 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 5 +- .../res/drawable-nodpi/qr_code.png | Bin 0 -> 12394 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/res/values/base-strings.xml | 2 +- .../Application/res/values/colors.xml | 2 +- .../Application/res/values/strings.xml | 4 + .../MainActivity.java | 4 +- .../NotificationPresets.java | 33 +- .../Wearable/AndroidManifest.xml | 2 +- .../WearableListItemLayout.java | 29 +- samples/browseable/Notifications/_index.jd | 2 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Quiz/Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Quiz/Wearable/AndroidManifest.xml | 2 +- .../Application/AndroidManifest.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - samples/browseable/RecyclerView/_index.jd | 4 +- .../res/layout/recycler_view_frag.xml | 22 +- .../RecyclerView/res/layout/text_row_item.xml | 19 +- .../res/values-v21/base-colors.xml | 22 + .../res/values-v21/base-template-styles.xml | 25 + .../res/values-v21/template-styles.xml | 22 - .../RecyclerView/res/values/base-strings.xml | 4 +- .../RecyclerView/res/values/dimens.xml | 20 + .../RecyclerView/res/values/strings.xml | 2 + .../CustomAdapter.java | 27 +- .../RecyclerViewFragment.java | 89 ++- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Wearable/AndroidManifest.xml | 2 +- .../GridExampleActivity.java | 29 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 1399 -> 4311 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 1102 -> 2600 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 1987 -> 5894 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 3446 -> 9540 bytes .../res/drawable-xxxhdpi/ic_launcher.png | Bin 5166 -> 13382 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../Application/res/values/base-strings.xml | 16 +- .../SpeedTracker/Wearable/AndroidManifest.xml | 2 +- .../res/drawable-hdpi/ic_launcher.png | Bin 1399 -> 4311 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 1102 -> 2600 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 1987 -> 5894 bytes .../ic_file_download_black_24dp.png | Bin 355 -> 0 bytes .../ic_file_download_googblue_24dp.png | Bin 309 -> 0 bytes .../ic_file_download_grey600_24dp.png | Bin 434 -> 0 bytes .../ic_file_download_white_24dp.png | Bin 433 -> 0 bytes .../ic_gps_not_saving_grey600_96dp.png | Bin 0 -> 6470 bytes .../ic_gps_saving_grey600_96dp.png | Bin 0 -> 5667 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 3446 -> 9540 bytes .../res/drawable-xxxhdpi/ic_launcher.png | Bin 5166 -> 13382 bytes .../Wearable/res/layout/main_activity.xml | 4 +- .../WearableMainActivity.java | 4 +- .../ui/SpeedPickerLayout.java | 35 +- samples/browseable/SpeedTracker/_index.jd | 16 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/drawable-hdpi/ic_launcher.png | Bin 4165 -> 3454 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 2376 -> 2117 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 6258 -> 4966 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 12088 -> 8803 bytes .../StorageProvider/res/ic_launcher.png | Bin 4165 -> 0 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Application/AndroidManifest.xml | 4 +- .../res/layout-sw600dp-land/activity_main.xml | 41 +- .../res/layout-sw600dp/activity_main.xml | 38 +- .../Application/res/layout/activity_main.xml | 46 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../MainActivity.java | 6 +- .../Wearable/AndroidManifest.xml | 2 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Timer/Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Timer/Wearable/AndroidManifest.xml | 2 +- .../WearableListItemLayout.java | 30 +- .../WatchFace/Application/AndroidManifest.xml | 74 +++ .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../Application/res/drawable-hdpi/tile.9.png | Bin 0 -> 196 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../activity_analog_watch_face_config.xml | 27 + .../activity_digital_watch_face_config.xml | 95 +++ .../Application/res/layout/activity_main.xml | 36 ++ .../activity_tilt_watch_face_config.xml | 27 + .../res/values-sw600dp/template-dimens.xml} | 8 +- .../res/values-sw600dp}/template-styles.xml | 9 +- .../res/values-v11}/template-styles.xml | 4 +- .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../Application/res/values/base-strings.xml | 31 + .../Application/res/values/strings.xml | 45 ++ .../res/values/template-dimens.xml} | 16 +- .../res/values/template-styles.xml | 42 ++ ...gAndCardBoundsWatchFaceConfigActivity.java | 37 ++ ...gitalWatchFaceCompanionConfigActivity.java | 217 +++++++ .../TiltWatchFaceConfigActivity.java | 37 ++ .../WatchFace/Wearable/AndroidManifest.xml | 205 ++++++ .../Wearable/res/drawable-hdpi/bg.png | Bin 0 -> 61104 bytes .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-hdpi/preview_analog.png | Bin 0 -> 35216 bytes .../drawable-hdpi/preview_analog_circular.png | Bin 0 -> 89304 bytes .../res/drawable-hdpi/preview_calendar.png | Bin 0 -> 1793 bytes .../preview_calendar_circular.png | Bin 0 -> 4572 bytes .../res/drawable-hdpi/preview_card_bounds.png | Bin 0 -> 9853 bytes .../preview_card_bounds_circular.png | Bin 0 -> 24280 bytes .../res/drawable-hdpi/preview_digital.png | Bin 0 -> 50993 bytes .../preview_digital_circular.png | Bin 0 -> 8256 bytes .../res/drawable-hdpi/preview_tilt.png | Bin 0 -> 5703 bytes .../drawable-hdpi/preview_tilt_circular.png | Bin 0 -> 9987 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/layout/activity_digital_config.xml | 39 ++ .../Wearable/res/layout/color_picker_item.xml | 38 ++ .../WatchFace/Wearable/res/values/color.xml | 23 + .../WatchFace/Wearable/res/values/dimens.xml | 26 + .../WatchFace/Wearable/res/values/strings.xml | 51 ++ .../WatchFace/Wearable/res/xml/watch_face.xml | 16 + .../AnalogWatchFaceService.java | 334 ++++++++++ .../CalendarWatchFaceService.java | 232 +++++++ .../CardBoundsWatchFaceService.java | 103 +++ ...DigitalWatchFaceConfigListenerService.java | 91 +++ .../DigitalWatchFaceService.java | 605 ++++++++++++++++++ .../DigitalWatchFaceUtil.java | 205 ++++++ ...igitalWatchFaceWearableConfigActivity.java | 298 +++++++++ .../Gles2ColoredTriangleList.java | 278 ++++++++ .../SweepWatchFaceService.java | 275 ++++++++ .../TiltWatchFaceService.java | 478 ++++++++++++++ samples/browseable/WatchFace/_index.jd | 12 + .../Application/AndroidManifest.xml | 5 +- .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4584 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2757 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6603 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 11788 bytes .../res/values-v21/base-colors.xml | 20 + .../res/values-v21/base-template-styles.xml | 23 + .../res/values-v21/template-styles.xml | 22 - .../Wearable/AndroidManifest.xml | 2 +- 503 files changed, 8907 insertions(+), 2690 deletions(-) rename samples/browseable/{ElizaChat/Shared/AndroidManifest.xml => ActionBarCompat-Basic/res/values-v21/base-colors.xml} (71%) rename samples/browseable/{RecipeAssistant/Shared/AndroidManifest.xml => ActionBarCompat-Basic/res/values-v21/base-template-styles.xml} (71%) create mode 100644 samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-template-styles.xml create mode 100644 samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-template-styles.xml create mode 100644 samples/browseable/ActionBarCompat-Styled/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ActionBarCompat-Styled/res/values-v21/base-template-styles.xml create mode 100644 samples/browseable/ActivityInstrumentation/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ActivityInstrumentation/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ActivityInstrumentation/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ActivitySceneTransitionBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ActivitySceneTransitionBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ActivitySceneTransitionBasic/res/values-v21/template-styles.xml delete mode 100644 samples/browseable/ActivitySceneTransitionBasic/src/com.example.android.activityscenetransitionbasic/ImageMemoryCache.java create mode 100644 samples/browseable/AdapterTransition/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AdapterTransition/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AdapterTransition/res/values-v21/template-styles.xml create mode 100644 samples/browseable/AdvancedImmersiveMode/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AdvancedImmersiveMode/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AdvancedImmersiveMode/res/values-v21/template-styles.xml create mode 100644 samples/browseable/AgendaData/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AgendaData/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AgendaData/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/AppRestrictionEnforcer/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AppRestrictionEnforcer/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AppRestrictionEnforcer/res/values-v21/template-styles.xml create mode 100644 samples/browseable/AppRestrictionSchema/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AppRestrictionSchema/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AppRestrictionSchema/res/values-v21/template-styles.xml create mode 100644 samples/browseable/AppRestrictions/res/values-v21/base-colors.xml create mode 100644 samples/browseable/AppRestrictions/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/AppRestrictions/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicAccessibility/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicAccessibility/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicAccessibility/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicAndroidKeyStore/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicAndroidKeyStore/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicAndroidKeyStore/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicContactables/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicContactables/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicContactables/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicGestureDetect/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicGestureDetect/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicGestureDetect/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicImmersiveMode/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicImmersiveMode/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicImmersiveMode/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicManagedProfile/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicManagedProfile/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicManagedProfile/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicMediaDecoder/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicMediaDecoder/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicMediaDecoder/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicMediaRouter/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicMediaRouter/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicMediaRouter/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicMultitouch/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicMultitouch/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicMultitouch/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicNetworking/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicNetworking/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicNetworking/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicNotifications/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicNotifications/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicNotifications/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicRenderScript/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicRenderScript/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicRenderScript/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicSyncAdapter/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicSyncAdapter/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicSyncAdapter/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BasicTransition/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BasicTransition/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BasicTransition/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BatchStepSensor/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BatchStepSensor/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BatchStepSensor/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BluetoothChat/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BluetoothChat/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BluetoothChat/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BluetoothLeGatt/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BluetoothLeGatt/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BluetoothLeGatt/res/values-v21/template-styles.xml create mode 100644 samples/browseable/BorderlessButtons/res/values-v21/base-colors.xml create mode 100644 samples/browseable/BorderlessButtons/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/BorderlessButtons/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Camera2Basic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Camera2Basic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Camera2Basic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Camera2Video/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Camera2Video/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Camera2Video/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CardEmulation/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CardEmulation/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CardEmulation/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CardReader/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CardReader/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CardReader/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CardView/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CardView/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CardView/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ClippingBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ClippingBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ClippingBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CustomChoiceList/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CustomChoiceList/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CustomChoiceList/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CustomNotifications/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CustomNotifications/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CustomNotifications/res/values-v21/template-styles.xml create mode 100644 samples/browseable/CustomTransition/res/values-v21/base-colors.xml create mode 100644 samples/browseable/CustomTransition/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/CustomTransition/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DataLayer/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DataLayer/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DataLayer/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DelayedConfirmation/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DelayedConfirmation/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DelayedConfirmation/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DisplayingBitmaps/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DisplayingBitmaps/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DisplayingBitmaps/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DocumentCentricApps/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DocumentCentricApps/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DocumentCentricApps/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DoneBar/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DoneBar/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DoneBar/res/values-v21/template-styles.xml create mode 100644 samples/browseable/DrawableTinting/res/values-v21/base-colors.xml create mode 100644 samples/browseable/DrawableTinting/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/DrawableTinting/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ElevationBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ElevationBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ElevationBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ElevationDrag/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ElevationDrag/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ElevationDrag/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ElizaChat/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ElizaChat/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ElizaChat/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/EmbeddedApp/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/EmbeddedApp/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/EmbeddedApp/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/FindMyPhone/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/FindMyPhone/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/FindMyPhone/Application/res/values-v21/template-styles.xml create mode 100755 samples/browseable/Flashlight/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/Flashlight/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/Flashlight/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/Flashlight/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/Flashlight/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Flashlight/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Flashlight/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/FloatingActionButtonBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/FloatingActionButtonBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/FloatingActionButtonBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/FragmentTransition/res/values-v21/base-colors.xml create mode 100644 samples/browseable/FragmentTransition/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/FragmentTransition/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Geofencing/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Geofencing/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Geofencing/Application/res/values-v21/template-styles.xml create mode 100755 samples/browseable/GridViewPager/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/GridViewPager/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/GridViewPager/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/GridViewPager/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/GridViewPager/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/GridViewPager/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/GridViewPager/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/GridViewPager/Wearable/res/drawable-nodpi/bugdroid_large.png rename samples/browseable/{ElizaChat/Shared/res/values/strings.xml => GridViewPager/Wearable/res/drawable/gradient.xml} (69%) rename samples/browseable/{RecipeAssistant/Shared/res/values/strings.xml => GridViewPager/Wearable/res/drawable/shape.xml} (61%) create mode 100644 samples/browseable/GridViewPager/Wearable/res/layout/custom_fragment.xml create mode 100644 samples/browseable/GridViewPager/Wearable/src/com.example.android.wearable.gridviewpager/CustomFragment.java create mode 100644 samples/browseable/HdrViewfinder/res/values-v21/base-colors.xml create mode 100644 samples/browseable/HdrViewfinder/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/HdrViewfinder/res/values-v21/template-styles.xml mode change 100755 => 100644 samples/browseable/HorizontalPaging/res/drawable-hdpi/ic_launcher.png mode change 100755 => 100644 samples/browseable/HorizontalPaging/res/drawable-mdpi/ic_launcher.png mode change 100755 => 100644 samples/browseable/HorizontalPaging/res/drawable-xhdpi/ic_launcher.png create mode 100644 samples/browseable/HorizontalPaging/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/HorizontalPaging/res/values-v21/base-colors.xml create mode 100644 samples/browseable/HorizontalPaging/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/HorizontalPaging/res/values-v21/template-styles.xml create mode 100644 samples/browseable/ImmersiveMode/res/values-v21/base-colors.xml create mode 100644 samples/browseable/ImmersiveMode/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/ImmersiveMode/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Interpolator/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Interpolator/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Interpolator/res/values-v21/template-styles.xml create mode 100644 samples/browseable/JobScheduler/res/values-v21/base-colors.xml create mode 100644 samples/browseable/JobScheduler/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/JobScheduler/res/values-v21/template-styles.xml create mode 100755 samples/browseable/JumpingJack/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/JumpingJack/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/JumpingJack/Application/res/drawable-xhdpi/ic_launcher.png create mode 100644 samples/browseable/JumpingJack/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/JumpingJack/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/JumpingJack/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/JumpingJack/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/LNotifications/res/values-v21/base-colors.xml create mode 100644 samples/browseable/LNotifications/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/LNotifications/res/values-v21/template-styles.xml create mode 100644 samples/browseable/MediaBrowserService/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 samples/browseable/MediaEffects/res/values-v21/base-colors.xml create mode 100644 samples/browseable/MediaEffects/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/MediaEffects/res/values-v21/template-styles.xml create mode 100644 samples/browseable/MediaRecorder/res/values-v21/base-colors.xml create mode 100644 samples/browseable/MediaRecorder/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/MediaRecorder/res/values-v21/template-styles.xml create mode 100644 samples/browseable/MediaRouter/res/values-v21/base-colors.xml create mode 100644 samples/browseable/MediaRouter/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/MediaRouter/res/values-v21/template-styles.xml create mode 100644 samples/browseable/NavigationDrawer/res/values-v21/base-colors.xml create mode 100644 samples/browseable/NavigationDrawer/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/NavigationDrawer/res/values-v21/template-styles.xml create mode 100644 samples/browseable/NetworkConnect/res/values-v21/base-colors.xml create mode 100644 samples/browseable/NetworkConnect/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/NetworkConnect/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Notifications/Application/res/drawable-nodpi/qr_code.png create mode 100644 samples/browseable/Notifications/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Notifications/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Notifications/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/PdfRendererBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/PdfRendererBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/PdfRendererBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/Quiz/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Quiz/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Quiz/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/RecipeAssistant/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/RecipeAssistant/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/RecipeAssistant/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/RecyclerView/res/values-v21/base-colors.xml create mode 100644 samples/browseable/RecyclerView/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/RecyclerView/res/values-v21/template-styles.xml create mode 100644 samples/browseable/RecyclerView/res/values/dimens.xml create mode 100644 samples/browseable/RenderScriptIntrinsic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/RenderScriptIntrinsic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/RenderScriptIntrinsic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/RepeatingAlarm/res/values-v21/base-colors.xml create mode 100644 samples/browseable/RepeatingAlarm/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/RepeatingAlarm/res/values-v21/template-styles.xml create mode 100644 samples/browseable/RevealEffectBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/RevealEffectBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/RevealEffectBasic/res/values-v21/template-styles.xml create mode 100755 samples/browseable/SkeletonWearableApp/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/SkeletonWearableApp/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/SkeletonWearableApp/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/SkeletonWearableApp/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/SkeletonWearableApp/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SkeletonWearableApp/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SkeletonWearableApp/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SlidingTabsBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SlidingTabsBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SlidingTabsBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SlidingTabsColors/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SlidingTabsColors/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SlidingTabsColors/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SpeedTracker/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SpeedTracker/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_black_24dp.png delete mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_googblue_24dp.png delete mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_grey600_24dp.png delete mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_white_24dp.png create mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_gps_not_saving_grey600_96dp.png create mode 100644 samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_gps_saving_grey600_96dp.png create mode 100644 samples/browseable/StorageClient/res/values-v21/base-colors.xml create mode 100644 samples/browseable/StorageClient/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/StorageClient/res/values-v21/template-styles.xml mode change 100755 => 100644 samples/browseable/StorageProvider/res/drawable-hdpi/ic_launcher.png mode change 100755 => 100644 samples/browseable/StorageProvider/res/drawable-mdpi/ic_launcher.png mode change 100755 => 100644 samples/browseable/StorageProvider/res/drawable-xhdpi/ic_launcher.png mode change 100755 => 100644 samples/browseable/StorageProvider/res/drawable-xxhdpi/ic_launcher.png delete mode 100755 samples/browseable/StorageProvider/res/ic_launcher.png create mode 100644 samples/browseable/StorageProvider/res/values-v21/base-colors.xml create mode 100644 samples/browseable/StorageProvider/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/StorageProvider/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SwipeRefreshListFragment/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SwipeRefreshListFragment/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SwipeRefreshListFragment/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SwipeRefreshMultipleViews/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SwipeRefreshMultipleViews/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SwipeRefreshMultipleViews/res/values-v21/template-styles.xml create mode 100644 samples/browseable/SynchronizedNotifications/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/SynchronizedNotifications/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/SynchronizedNotifications/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/TextLinkify/res/values-v21/base-colors.xml create mode 100644 samples/browseable/TextLinkify/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/TextLinkify/res/values-v21/template-styles.xml create mode 100644 samples/browseable/TextSwitcher/res/values-v21/base-colors.xml create mode 100644 samples/browseable/TextSwitcher/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/TextSwitcher/res/values-v21/template-styles.xml create mode 100755 samples/browseable/Timer/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/Timer/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/Timer/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/Timer/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/Timer/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/Timer/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/Timer/Application/res/values-v21/template-styles.xml create mode 100644 samples/browseable/WatchFace/Application/AndroidManifest.xml create mode 100755 samples/browseable/WatchFace/Application/res/drawable-hdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Application/res/drawable-hdpi/tile.9.png create mode 100755 samples/browseable/WatchFace/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/WatchFace/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/WatchFace/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Application/res/layout/activity_analog_watch_face_config.xml create mode 100644 samples/browseable/WatchFace/Application/res/layout/activity_digital_watch_face_config.xml create mode 100755 samples/browseable/WatchFace/Application/res/layout/activity_main.xml create mode 100644 samples/browseable/WatchFace/Application/res/layout/activity_tilt_watch_face_config.xml rename samples/browseable/{ActionBarCompat-ListPopupMenu/res/values-v21/template-styles.xml => WatchFace/Application/res/values-sw600dp/template-dimens.xml} (72%) rename samples/browseable/{ActionBarCompat-ShareActionProvider/res/values-v21 => WatchFace/Application/res/values-sw600dp}/template-styles.xml (66%) rename samples/browseable/{ActionBarCompat-Basic/res/values-v21 => WatchFace/Application/res/values-v11}/template-styles.xml (83%) create mode 100644 samples/browseable/WatchFace/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/WatchFace/Application/res/values-v21/base-template-styles.xml create mode 100644 samples/browseable/WatchFace/Application/res/values/base-strings.xml create mode 100644 samples/browseable/WatchFace/Application/res/values/strings.xml rename samples/browseable/{ActionBarCompat-Styled/res/values-v21/template-styles.xml => WatchFace/Application/res/values/template-dimens.xml} (52%) create mode 100644 samples/browseable/WatchFace/Application/res/values/template-styles.xml create mode 100644 samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/AnalogAndCardBoundsWatchFaceConfigActivity.java create mode 100644 samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/DigitalWatchFaceCompanionConfigActivity.java create mode 100644 samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/TiltWatchFaceConfigActivity.java create mode 100644 samples/browseable/WatchFace/Wearable/AndroidManifest.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/bg.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_analog.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_analog_circular.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_calendar.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_calendar_circular.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_card_bounds.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_card_bounds_circular.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_digital.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_digital_circular.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt_circular.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-mdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-xhdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Wearable/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/WatchFace/Wearable/res/layout/activity_digital_config.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/layout/color_picker_item.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/values/color.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/values/dimens.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/values/strings.xml create mode 100644 samples/browseable/WatchFace/Wearable/res/xml/watch_face.xml create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/AnalogWatchFaceService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CalendarWatchFaceService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CardBoundsWatchFaceService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceConfigListenerService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceUtil.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceWearableConfigActivity.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/Gles2ColoredTriangleList.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/SweepWatchFaceService.java create mode 100644 samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/TiltWatchFaceService.java create mode 100644 samples/browseable/WatchFace/_index.jd create mode 100755 samples/browseable/WatchViewStub/Application/res/drawable-hdpi/ic_launcher.png create mode 100755 samples/browseable/WatchViewStub/Application/res/drawable-mdpi/ic_launcher.png create mode 100755 samples/browseable/WatchViewStub/Application/res/drawable-xhdpi/ic_launcher.png create mode 100755 samples/browseable/WatchViewStub/Application/res/drawable-xxhdpi/ic_launcher.png create mode 100644 samples/browseable/WatchViewStub/Application/res/values-v21/base-colors.xml create mode 100644 samples/browseable/WatchViewStub/Application/res/values-v21/base-template-styles.xml delete mode 100644 samples/browseable/WatchViewStub/Application/res/values-v21/template-styles.xml diff --git a/samples/browseable/ElizaChat/Shared/AndroidManifest.xml b/samples/browseable/ActionBarCompat-Basic/res/values-v21/base-colors.xml similarity index 71% rename from samples/browseable/ElizaChat/Shared/AndroidManifest.xml rename to samples/browseable/ActionBarCompat-Basic/res/values-v21/base-colors.xml index dfbb0927d..34c9cd138 100644 --- a/samples/browseable/ElizaChat/Shared/AndroidManifest.xml +++ b/samples/browseable/ActionBarCompat-Basic/res/values-v21/base-colors.xml @@ -14,12 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> + - - - - - + diff --git a/samples/browseable/RecipeAssistant/Shared/AndroidManifest.xml b/samples/browseable/ActionBarCompat-Basic/res/values-v21/base-template-styles.xml similarity index 71% rename from samples/browseable/RecipeAssistant/Shared/AndroidManifest.xml rename to samples/browseable/ActionBarCompat-Basic/res/values-v21/base-template-styles.xml index 00c86930a..0b2948f7e 100644 --- a/samples/browseable/RecipeAssistant/Shared/AndroidManifest.xml +++ b/samples/browseable/ActionBarCompat-Basic/res/values-v21/base-template-styles.xml @@ -14,12 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. --> + - + + - - - - + diff --git a/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-colors.xml b/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-colors.xml new file mode 100644 index 000000000..34c9cd138 --- /dev/null +++ b/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-colors.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-template-styles.xml b/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/ActionBarCompat-ListPopupMenu/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-colors.xml b/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-colors.xml new file mode 100644 index 000000000..34c9cd138 --- /dev/null +++ b/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-colors.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-template-styles.xml b/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/ActionBarCompat-ShareActionProvider/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/ActionBarCompat-ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/MainActivity.java b/samples/browseable/ActionBarCompat-ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/MainActivity.java index b8cc900b5..545764cad 100644 --- a/samples/browseable/ActionBarCompat-ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/MainActivity.java +++ b/samples/browseable/ActionBarCompat-ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/MainActivity.java @@ -83,6 +83,10 @@ public boolean onCreateOptionsMenu(Menu menu) { // Now get the ShareActionProvider from the item mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem); + // Get the ViewPager's current item position and set its ShareIntent. + int currentViewPagerItem = ((ViewPager) findViewById(R.id.viewpager)).getCurrentItem(); + setShareIntent(currentViewPagerItem); + return super.onCreateOptionsMenu(menu); } // END_INCLUDE(get_sap) @@ -151,6 +155,19 @@ public Object instantiateItem(ViewGroup container, int position) { } }; + private void setShareIntent(int position) { + // BEGIN_INCLUDE(update_sap) + if (mShareActionProvider != null) { + // Get the currently selected item, and retrieve it's share intent + ContentItem item = mItems.get(position); + Intent shareIntent = item.getShareIntent(MainActivity.this); + + // Now update the ShareActionProvider with the new share intent + mShareActionProvider.setShareIntent(shareIntent); + } + // END_INCLUDE(update_sap) + } + /** * A OnPageChangeListener used to update the ShareActionProvider's share intent when a new item * is selected in the ViewPager. @@ -165,16 +182,7 @@ public void onPageScrolled(int position, float positionOffset, int positionOffse @Override public void onPageSelected(int position) { - // BEGIN_INCLUDE(update_sap) - if (mShareActionProvider != null) { - // Get the currently selected item, and retrieve it's share intent - ContentItem item = mItems.get(position); - Intent shareIntent = item.getShareIntent(MainActivity.this); - - // Now update the ShareActionProvider with the new share intent - mShareActionProvider.setShareIntent(shareIntent); - } - // END_INCLUDE(update_sap) + setShareIntent(position); } @Override diff --git a/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-colors.xml b/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-colors.xml new file mode 100644 index 000000000..34c9cd138 --- /dev/null +++ b/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-colors.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-template-styles.xml b/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/ActionBarCompat-Styled/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/ActivityInstrumentation/res/values-v21/base-colors.xml b/samples/browseable/ActivityInstrumentation/res/values-v21/base-colors.xml new file mode 100644 index 000000000..34c9cd138 --- /dev/null +++ b/samples/browseable/ActivityInstrumentation/res/values-v21/base-colors.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/samples/browseable/ActivityInstrumentation/res/values-v21/base-template-styles.xml b/samples/browseable/ActivityInstrumentation/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/ActivityInstrumentation/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/ActivityInstrumentation/res/values-v21/template-styles.xml b/samples/browseable/ActivityInstrumentation/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ActivityInstrumentation/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ActivitySceneTransitionBasic/res/values-v21/styles.xml b/samples/browseable/ActivitySceneTransitionBasic/res/values-v21/styles.xml index fd212b395..4fee48dd8 100644 --- a/samples/browseable/ActivitySceneTransitionBasic/res/values-v21/styles.xml +++ b/samples/browseable/ActivitySceneTransitionBasic/res/values-v21/styles.xml @@ -17,9 +17,6 @@ + + diff --git a/samples/browseable/AdapterTransition/res/values-v21/template-styles.xml b/samples/browseable/AdapterTransition/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AdapterTransition/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/AdvancedImmersiveMode/res/values-v21/template-styles.xml b/samples/browseable/AdvancedImmersiveMode/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AdvancedImmersiveMode/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/AgendaData/Application/res/values-v21/template-styles.xml b/samples/browseable/AgendaData/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AgendaData/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/AppRestrictionEnforcer/res/values-v21/template-styles.xml b/samples/browseable/AppRestrictionEnforcer/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AppRestrictionEnforcer/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/AppRestrictionSchema/res/values-v21/template-styles.xml b/samples/browseable/AppRestrictionSchema/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AppRestrictionSchema/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/AppRestrictions/res/values-v21/template-styles.xml b/samples/browseable/AppRestrictions/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/AppRestrictions/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicAccessibility/res/values-v21/template-styles.xml b/samples/browseable/BasicAccessibility/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicAccessibility/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicAndroidKeyStore/res/values-v21/template-styles.xml b/samples/browseable/BasicAndroidKeyStore/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicAndroidKeyStore/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicContactables/res/values-v21/template-styles.xml b/samples/browseable/BasicContactables/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicContactables/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicGestureDetect/res/values-v21/template-styles.xml b/samples/browseable/BasicGestureDetect/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicGestureDetect/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicImmersiveMode/res/values-v21/template-styles.xml b/samples/browseable/BasicImmersiveMode/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicImmersiveMode/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicManagedProfile/res/values-v21/template-styles.xml b/samples/browseable/BasicManagedProfile/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicManagedProfile/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicMediaDecoder/res/values-v21/template-styles.xml b/samples/browseable/BasicMediaDecoder/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicMediaDecoder/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicMediaRouter/res/values-v21/template-styles.xml b/samples/browseable/BasicMediaRouter/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicMediaRouter/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicMultitouch/res/values-v21/template-styles.xml b/samples/browseable/BasicMultitouch/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicMultitouch/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicNetworking/res/values-v21/template-styles.xml b/samples/browseable/BasicNetworking/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicNetworking/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicNotifications/res/values-v21/template-styles.xml b/samples/browseable/BasicNotifications/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicNotifications/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicRenderScript/res/values-v21/template-styles.xml b/samples/browseable/BasicRenderScript/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicRenderScript/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicSyncAdapter/res/values-v21/template-styles.xml b/samples/browseable/BasicSyncAdapter/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicSyncAdapter/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BasicTransition/res/values-v21/template-styles.xml b/samples/browseable/BasicTransition/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BasicTransition/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BatchStepSensor/res/values-v21/template-styles.xml b/samples/browseable/BatchStepSensor/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BatchStepSensor/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BluetoothChat/res/values-v21/template-styles.xml b/samples/browseable/BluetoothChat/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BluetoothChat/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BluetoothLeGatt/res/values-v21/template-styles.xml b/samples/browseable/BluetoothLeGatt/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BluetoothLeGatt/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/BorderlessButtons/res/values-v21/template-styles.xml b/samples/browseable/BorderlessButtons/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/BorderlessButtons/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Camera2Basic/res/values-v21/template-styles.xml b/samples/browseable/Camera2Basic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Camera2Basic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Camera2Video/res/values-v21/template-styles.xml b/samples/browseable/Camera2Video/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Camera2Video/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CardEmulation/res/values-v21/template-styles.xml b/samples/browseable/CardEmulation/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CardEmulation/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CardReader/res/values-v21/template-styles.xml b/samples/browseable/CardReader/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CardReader/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CardView/res/values-v21/template-styles.xml b/samples/browseable/CardView/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CardView/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ClippingBasic/res/values-v21/template-styles.xml b/samples/browseable/ClippingBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ClippingBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CustomChoiceList/res/values-v21/template-styles.xml b/samples/browseable/CustomChoiceList/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CustomChoiceList/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CustomNotifications/res/values-v21/template-styles.xml b/samples/browseable/CustomNotifications/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CustomNotifications/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/CustomTransition/res/values-v21/template-styles.xml b/samples/browseable/CustomTransition/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/CustomTransition/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DataLayer/Application/res/values-v21/template-styles.xml b/samples/browseable/DataLayer/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DataLayer/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DelayedConfirmation/Application/res/values-v21/template-styles.xml b/samples/browseable/DelayedConfirmation/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DelayedConfirmation/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DisplayingBitmaps/res/values-v21/template-styles.xml b/samples/browseable/DisplayingBitmaps/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DisplayingBitmaps/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DocumentCentricApps/res/values-v21/template-styles.xml b/samples/browseable/DocumentCentricApps/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DocumentCentricApps/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/template-styles.xml b/samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DocumentCentricRelinquishIdentity/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DoneBar/res/values-v21/template-styles.xml b/samples/browseable/DoneBar/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DoneBar/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/DrawableTinting/res/values-v21/template-styles.xml b/samples/browseable/DrawableTinting/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/DrawableTinting/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ElevationBasic/res/values-v21/template-styles.xml b/samples/browseable/ElevationBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ElevationBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ElevationDrag/res/values-v21/template-styles.xml b/samples/browseable/ElevationDrag/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ElevationDrag/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ElizaChat/Application/res/values-v21/template-styles.xml b/samples/browseable/ElizaChat/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ElizaChat/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/EmbeddedApp/Application/res/values-v21/template-styles.xml b/samples/browseable/EmbeddedApp/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/EmbeddedApp/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/FindMyPhone/Application/res/values-v21/template-styles.xml b/samples/browseable/FindMyPhone/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/FindMyPhone/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Flashlight/Application/res/values-v21/template-styles.xml b/samples/browseable/Flashlight/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Flashlight/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/FloatingActionButtonBasic/res/values-v21/template-styles.xml b/samples/browseable/FloatingActionButtonBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/FloatingActionButtonBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/FragmentTransition/res/values-v21/template-styles.xml b/samples/browseable/FragmentTransition/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/FragmentTransition/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Geofencing/Application/res/values-v21/template-styles.xml b/samples/browseable/Geofencing/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Geofencing/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/GridViewPager/Application/res/values-v21/template-styles.xml b/samples/browseable/GridViewPager/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/GridViewPager/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/HdrViewfinder/res/values-v21/template-styles.xml b/samples/browseable/HdrViewfinder/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/HdrViewfinder/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/HorizontalPaging/res/values-v21/template-styles.xml b/samples/browseable/HorizontalPaging/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/HorizontalPaging/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/ImmersiveMode/res/values-v21/template-styles.xml b/samples/browseable/ImmersiveMode/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/ImmersiveMode/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Interpolator/res/values-v21/template-styles.xml b/samples/browseable/Interpolator/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Interpolator/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/JobScheduler/res/values-v21/template-styles.xml b/samples/browseable/JobScheduler/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/JobScheduler/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/JumpingJack/Application/res/values-v21/template-styles.xml b/samples/browseable/JumpingJack/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/JumpingJack/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/LNotifications/res/values-v21/template-styles.xml b/samples/browseable/LNotifications/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/LNotifications/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/MediaEffects/res/values-v21/template-styles.xml b/samples/browseable/MediaEffects/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/MediaEffects/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/MediaRecorder/res/values-v21/template-styles.xml b/samples/browseable/MediaRecorder/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/MediaRecorder/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/MediaRouter/res/values-v21/template-styles.xml b/samples/browseable/MediaRouter/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/MediaRouter/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/NavigationDrawer/res/values-v21/template-styles.xml b/samples/browseable/NavigationDrawer/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/NavigationDrawer/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/NetworkConnect/res/values-v21/template-styles.xml b/samples/browseable/NetworkConnect/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/NetworkConnect/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Notifications/Application/res/values-v21/template-styles.xml b/samples/browseable/Notifications/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Notifications/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/PdfRendererBasic/res/values-v21/template-styles.xml b/samples/browseable/PdfRendererBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/PdfRendererBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Quiz/Application/res/values-v21/template-styles.xml b/samples/browseable/Quiz/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Quiz/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/RecipeAssistant/Application/res/values-v21/template-styles.xml b/samples/browseable/RecipeAssistant/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/RecipeAssistant/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/RecyclerView/res/values-v21/template-styles.xml b/samples/browseable/RecyclerView/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/RecyclerView/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/RenderScriptIntrinsic/res/values-v21/template-styles.xml b/samples/browseable/RenderScriptIntrinsic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/RenderScriptIntrinsic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/RepeatingAlarm/res/values-v21/template-styles.xml b/samples/browseable/RepeatingAlarm/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/RepeatingAlarm/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/RevealEffectBasic/res/values-v21/template-styles.xml b/samples/browseable/RevealEffectBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/RevealEffectBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SkeletonWearableApp/Application/res/values-v21/template-styles.xml b/samples/browseable/SkeletonWearableApp/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SkeletonWearableApp/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SlidingTabsBasic/res/values-v21/template-styles.xml b/samples/browseable/SlidingTabsBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SlidingTabsBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SlidingTabsColors/res/values-v21/template-styles.xml b/samples/browseable/SlidingTabsColors/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SlidingTabsColors/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SpeedTracker/Application/res/values/base-strings.xml b/samples/browseable/SpeedTracker/Application/res/values/base-strings.xml index 55a45f396..0d22a8789 100644 --- a/samples/browseable/SpeedTracker/Application/res/values/base-strings.xml +++ b/samples/browseable/SpeedTracker/Application/res/values/base-strings.xml @@ -20,14 +20,14 @@ + android:targetSdkVersion="21" /> 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 FV1nC*FJS-x delta 1381 zcmV-r1)BQTA@>T9BYy=xNklelk zlyC9`B@1d>F+kSM9ueN(#rHMjQg4m#d46&L_4tchEmyWt7kfp6EZhrL zcDfa z>jSgK0q1*Y2ZSeoh1M>-x(7-lYqhWLC-oJhISc^!==1pmvhqE&0YaR)F<3=zeyrlg z99Ll!hkv^kePZhW>{|sn__#jbY{utT0)!M@M=hZLXF2J^k54Mk)^ugnPtv?(h-p1I zw-B#5Cq|K+{8$N<4| z;F23^heR`ht+IKeDe*+uCj#` zn2oy_D&(~_BV=9eh!70i=^8BxuMSj`AL+6vjYDcKEf$0&3s?(MKH#{&i|#R@GDWp0_1j{HOfIxloG*v*#cuIgo!lO8jHs<56sm2~iQ3HbYV(Fyk`?T@QXkrvCpvtL# z36@UK>zQm(G|2K0pyJtXjH?vfnVHV zfkF+2IWU*%hy)N^Vheo_<__FA)}Ccw6X7~s4>_^}a~z}l0#seiI3T291XNgncYg#~ zp!bs@f~8~Sz$hTz<|rs9vtTA0cl=HgZ0gqz zC@36P5x4+c0WJae+)JBK*4CJ?kblDVYgz%xyg}tD=w=;Qj?DJrFtCF5Ygz%x#vPtw zSZqs7|C3V|gn_}jCTKj;0thwE=0u8YrNx}z#spmo>W~wpU(*7Jw_8kyLMCL$25n_P zs&U7J@-i}I`!yv%aIJl`yXF;xGB=yAb7cB8B|vBcL`x6(QeJjm(Hj^gKwh#pQOxIA zK!T@d0a-w54sI<-g9X`t3->^@9~SVykovHI{WQhIkDS<#n@|f1^l=l{;_T;f{*$mD nSQ2D43&;XeD;%u_3Hbd3IRj>PMDmDy00000NkvXXu0mjf8I*_9 diff --git a/samples/browseable/SpeedTracker/Wearable/res/drawable-mdpi/ic_launcher.png b/samples/browseable/SpeedTracker/Wearable/res/drawable-mdpi/ic_launcher.png index 25015af11adddaf58c6607fdf963a99eab796512..a102b79490aa92b8e71f734a9009771bdc5a976b 100644 GIT binary patch delta 2592 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 delta 1974 zcmV;n2TAybF2fIyBYy{qNklPB=J)w6g0-}Z+!Dvup{6nMB zXfy%JO+*Dz6eD;f8j%p>Py;rBf-RKzhcPk!VM4?xm?$8$MJQ)4D828yblY_vu%;~g z-puTqdGj7S`|tkd_nY~C=6G|wc?!s%Pz4mB(PeOu00dV834cHW5UhaU@UjKi1;D~( z3#T{~$5b?Gd?z^1)(-E1C4-K^(!xE3CrL6&)B@%&pPvz;gjA9^ls2~%aC_XDhw=_p z;q<@)$XT9KsVGVY&XN4zj{+WOE66Jtt*4DH09o^mSF53+p{WP=9W2rEqzT|=pYL!K z8_$CD;2HGHIe)PKz;S;{XaZQYe9>Y#;4-Q_9(WsdMPJbYSh2{%D7Lr(sV(qgT8jk08UShkF98tD187^oyQedtsXr83`&9$n0Ib@O z!XygF*+}>p(BpQ%8z-~CL%0ns0WfX>pPx;E%bk%#_3WjzW_UieRo6DJECG%-xQP5& z!ANKe*nfQ~363|9B-UZ`)GA1h9MHA@xFpRslQ6X)!T`{UKV?)mth>J!3yWqv!8$X+ zz;pm=pPzd<2};^V5EoBDBgF1m6%Z9Nq?@Mu=6EuW*sm1~O$DIV&gT9Q;sMtyP<;3R zY@3eVMzz(`kGE{x0jM)vRdkX`mR5}(h%m4;fYlRfVOCr>R+pB3C%khy3u|XZ14{!S>3URA?KJcCtpt_@ zuxEA|ggNos&!nrUR;>Np<^e_u`x@%=A0g=Ty)iZvr$bF|n30e|(^{$pkPf(B#q2ie z@_$EKH~@8$6&LO%dd?qSfNR}h@X?ucp|zJqaG?Oy<%L!E)njM4z6C9Aje;E)l3A2r zxDO!!)K$&7@tu$m;ieYgSi?xzTb4wf&Z-Hx15o#HU7>?F%a7Yi#EJBGQ#5>gc?{0X zR{wJWK)WMGqS(FE?F=uk^eIH_>)wm)l9wNNj0i*%qMA za8EWz+j^2kQX?z}pku%RYyPpnGP}cH>)1li_T86svAt*G~`v@W6I-%u(G2)%(4EA`5y3 z`7Z(n9f0lAE3x9MV9Yw|XgL6}VSfX#V@4J5IOng`?`yS$QZ!rNQkufGE3zDbSJRu| znUq^^!n1^s9o+|?JXB3B=4bz=LRnV?bvn`nmI9EI*$7XKZNDS$9~7lSZJ+UjSER=r z{Ry|RI1R4%^11rJG5}U&*TZ9poqj8h(FxL96Ki2cEdG$MR;@kNG6KH7IDeM3Qd8Mk z2EeYF@n?LoBLcoSmulFLY9YgTVj0%Vh z(LacLq%H;uDiWy#Abqoj)G3dnkiuKQljz*gV$9tSUV#qRx}dN!fk>~!h#RnV+EpT3 z8l&}SOln{-CV68D1@L%cJAW+A*1veeR~*s_l953d2gK-@G~B;10M913!YdigxU$~$ z|BWF9RvypRP4{woGd!1~|3Wu);9&`VzCId$xEg1~#s6uA0r+xSWk6>`)tq;tlM|~o zPEITv*8ua9I+%!~=j4z27}!@%HzxV>Cj6vXM)KmyHPRf@a2c!J3J8Z-B56rLiw0;PHe-{JrS5uVVzaeF+8d zA)1j+U@#+PAs7!Ifqy=ln$iVrm|P8$T*j9JcnHVJXL)Bhe0nyG+8uWQW6+Fr3x^pg zbxBP~pmv4t6=hOI;ts&9$3m)7b2KKMse7})4L~r}d|#fM&n3f!4zf*sZUAWCc;{Ft zO?O??5(PUilD$UD4S?yTwrM~KKrlE7Kmrh~fZ*`51xNsb6@L&MUbX-UK(GRW!_&6_ z`5`xU$O8G0+k%w~W;s316YO#kyq*+~GA}CxkAJ{17fIA>|j!-_+hgIdE*`s@Tz3N+vR diff --git a/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_black_24dp.png b/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_black_24dp.png deleted file mode 100644 index 0ec94b2382ceb99d7465b13dec5565b9d7fb72a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6uj-};uunK>+P-6d`$)tE)QQ#{+}NwuGhop9bGlE^ZADMpH2;}%Upoq%YNIoxti~H ze!BdZ52z6htYB7p`siZR&m2SMYFCN!BWr$(-urxAAn9AM@V(E^g_5rB*532{yyB5p z`W_YM<-Knh)ypK_{$tp(_Vat;ZRhv9PndDvf5OcB?h|I+_nR>LzT1R3@%|I$#=B3L zSMNJve!N=5ng6~UX4d;{m{qTGIM9oY$9yoyg`_h|d*T=}rQ{$uX#S9MFb9g{lWyVya}?Z`p{7WXE>f;W7VdgUw= zC#1L)a5(5NcJMh{FrIKINl~#{bXmZ!Bt=QeNSHU!s707p(Zy9FP;jZUMWCQp42Qa& o%Us2ik_Q#*0t{=**WA0r*|Ay2qOQtX1n4FPPgg&ebxsLQ0EC-fFaQ7m diff --git a/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_grey600_24dp.png b/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_grey600_24dp.png deleted file mode 100644 index c7e86f9dcf1dc4667d08729b1f37a57d103f6c40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 434 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%xcg6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g&? zz`&^G>EaktaqI1^vs{M^1Y93}Sr{ule~+Gs%b(L{?np~nHmVr0%Q6LPe2JuhSP=Eu6C6;>=Z!qcvwU zP5d>UukO2S*`yHv-A+K=Er_}~72EgYwwvE|rS^Zmrl-h?yX&!74Fd#lcY sePB-zopr09CG?$^ZZW diff --git a/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_white_24dp.png b/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_file_download_white_24dp.png deleted file mode 100644 index a57e72f7dc5ba9d61f0d676850045fa63b83dd01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 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 literal 0 HcmV?d00001 diff --git a/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_gps_saving_grey600_96dp.png b/samples/browseable/SpeedTracker/Wearable/res/drawable-xxhdpi/ic_gps_saving_grey600_96dp.png new file mode 100644 index 0000000000000000000000000000000000000000..7b3506b8344fa595ae41888665e520835492e91f GIT binary patch literal 5667 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 OprW8IUoC6#<^KR-0vCD! delta 3444 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 Lqas}`X&m%_;DPSE literal 5166 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 x-W)lO#bz)OjL`uL*CfU);;$YNJW0V - \ No newline at end of file + diff --git a/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/WearableMainActivity.java b/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/WearableMainActivity.java index 9610f227b..f3015bf87 100644 --- a/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/WearableMainActivity.java +++ b/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/WearableMainActivity.java @@ -336,8 +336,8 @@ protected void onResume() { private void updateRecordingIcon() { mSaveGpsLocation = LocationSettingActivity.getGpsRecordingStatusFromPreferences(this); - mSaveImageView.setImageResource(mSaveGpsLocation ? R.drawable.ic_file_download_googblue_24dp - : R.drawable.ic_file_download_grey600_24dp); + mSaveImageView.setImageResource(mSaveGpsLocation ? R.drawable.ic_gps_saving_grey600_96dp + : R.drawable.ic_gps_not_saving_grey600_96dp); } /** diff --git a/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/ui/SpeedPickerLayout.java b/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/ui/SpeedPickerLayout.java index 9fd882d9a..5796c1367 100644 --- a/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/ui/SpeedPickerLayout.java +++ b/samples/browseable/SpeedTracker/Wearable/src/com.example.android.wearable.speedtracker/ui/SpeedPickerLayout.java @@ -30,13 +30,13 @@ * A simple extension of the {@link android.widget.LinearLayout} to represent a single item in a * {@link android.support.wearable.view.WearableListView}. */ -public class SpeedPickerLayout extends LinearLayout implements WearableListView.Item { +public class SpeedPickerLayout extends LinearLayout + implements WearableListView.OnCenterProximityListener { private final float mFadedTextAlpha; private final int mFadedCircleColor; private final int mChosenCircleColor; private ImageView mCircle; - private float mScale; private TextView mName; public SpeedPickerLayout(Context context) { @@ -64,41 +64,16 @@ protected void onFinishInflate() { mName = (TextView) findViewById(R.id.name); } - // Provide scaling values for WearableListView animations @Override - public float getProximityMinValue() { - return 1f; - } - - @Override - public float getProximityMaxValue() { - return 1.6f; - } - - @Override - public float getCurrentProximityValue() { - return mScale; - } - - // Scale the icon for WearableListView animations - @Override - public void setScalingAnimatorValue(float scale) { - mScale = scale; - mCircle.setScaleX(scale); - mCircle.setScaleY(scale); - } - - // Change color of the icon, remove fading from the text - @Override - public void onScaleUpStart() { + public void onCenterPosition(boolean animate) { mName.setAlpha(1f); ((GradientDrawable) mCircle.getDrawable()).setColor(mChosenCircleColor); } - // Change the color of the icon, fade the text @Override - public void onScaleDownStart() { + public void onNonCenterPosition(boolean animate) { ((GradientDrawable) mCircle.getDrawable()).setColor(mFadedCircleColor); mName.setAlpha(mFadedTextAlpha); + } } diff --git a/samples/browseable/SpeedTracker/_index.jd b/samples/browseable/SpeedTracker/_index.jd index f16522bf3..298926f1f 100644 --- a/samples/browseable/SpeedTracker/_index.jd +++ b/samples/browseable/SpeedTracker/_index.jd @@ -4,14 +4,14 @@ sample.group=Wearable

-This sample uses the FusedLocation APIs of GMS on those -devices that have a hardware GPS built in. In those cases, -this sample provides a simple screen that shows the current -speed of the device on the watch. User can set a speed limit -and if the speed approaches that limit, it changes the color -to yellow and if it exceeds the limit, it turns red. User -can also enable recording of coordinates and when it pairs -back with the phone, this data will be synced with the phone +This sample uses the FusedLocation APIs of Google Play Services +on those devices that have a hardware GPS built in. In those +cases, this sample provides a simple screen that shows the +current speed of the device on the watch. User can set a speed +limit and if the speed approaches that limit, it changes the +color to yellow and if it exceeds the limit, it turns red. User +can also enable recording of coordinates and when it pairs back +with the phone, this data will be synced with the phone component of the app and user can see a track made of those coordinates on a map on the phone. diff --git a/samples/browseable/StorageClient/res/values-v21/base-colors.xml b/samples/browseable/StorageClient/res/values-v21/base-colors.xml new file mode 100644 index 000000000..34c9cd138 --- /dev/null +++ b/samples/browseable/StorageClient/res/values-v21/base-colors.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/samples/browseable/StorageClient/res/values-v21/base-template-styles.xml b/samples/browseable/StorageClient/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/StorageClient/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/StorageClient/res/values-v21/template-styles.xml b/samples/browseable/StorageClient/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/StorageClient/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/StorageProvider/res/values-v21/template-styles.xml b/samples/browseable/StorageProvider/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/StorageProvider/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/template-styles.xml b/samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SwipeRefreshLayoutBasic/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SwipeRefreshListFragment/res/values-v21/template-styles.xml b/samples/browseable/SwipeRefreshListFragment/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SwipeRefreshListFragment/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SwipeRefreshMultipleViews/res/values-v21/template-styles.xml b/samples/browseable/SwipeRefreshMultipleViews/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SwipeRefreshMultipleViews/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/SynchronizedNotifications/Application/res/values-v21/template-styles.xml b/samples/browseable/SynchronizedNotifications/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/SynchronizedNotifications/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/TextLinkify/res/values-v21/template-styles.xml b/samples/browseable/TextLinkify/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/TextLinkify/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/TextSwitcher/res/values-v21/template-styles.xml b/samples/browseable/TextSwitcher/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/TextSwitcher/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - + + diff --git a/samples/browseable/Timer/Application/res/values-v21/template-styles.xml b/samples/browseable/Timer/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/Timer/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - diff --git a/samples/browseable/ActionBarCompat-Basic/res/values-v21/template-styles.xml b/samples/browseable/WatchFace/Application/res/values-v11/template-styles.xml similarity index 83% rename from samples/browseable/ActionBarCompat-Basic/res/values-v21/template-styles.xml rename to samples/browseable/WatchFace/Application/res/values-v11/template-styles.xml index 134fcd9d3..8c1ea66f2 100644 --- a/samples/browseable/ActionBarCompat-Basic/res/values-v21/template-styles.xml +++ b/samples/browseable/WatchFace/Application/res/values-v11/template-styles.xml @@ -1,5 +1,5 @@ - + + diff --git a/samples/browseable/WatchFace/Application/res/values/base-strings.xml b/samples/browseable/WatchFace/Application/res/values/base-strings.xml new file mode 100644 index 000000000..5108f618e --- /dev/null +++ b/samples/browseable/WatchFace/Application/res/values/base-strings.xml @@ -0,0 +1,31 @@ + + + + WatchFace + + + + diff --git a/samples/browseable/WatchFace/Application/res/values/strings.xml b/samples/browseable/WatchFace/Application/res/values/strings.xml new file mode 100644 index 000000000..aacb108e5 --- /dev/null +++ b/samples/browseable/WatchFace/Application/res/values/strings.xml @@ -0,0 +1,45 @@ + + + + This is the config activity for the Analog and Card Bounds watch faces + Digital watch face configuration + Tilt watch face configuration + Background + Hours + Minutes + Seconds + + No wearable device is currently connected. + OK + + Black + Blue + Gray + Green + Navy + Red + White + + + @string/color_black + @string/color_blue + @string/color_gray + @string/color_green + @string/color_navy + @string/color_red + @string/color_white + + diff --git a/samples/browseable/ActionBarCompat-Styled/res/values-v21/template-styles.xml b/samples/browseable/WatchFace/Application/res/values/template-dimens.xml similarity index 52% rename from samples/browseable/ActionBarCompat-Styled/res/values-v21/template-styles.xml rename to samples/browseable/WatchFace/Application/res/values/template-dimens.xml index 134fcd9d3..39e710b5c 100644 --- a/samples/browseable/ActionBarCompat-Styled/res/values-v21/template-styles.xml +++ b/samples/browseable/WatchFace/Application/res/values/template-dimens.xml @@ -1,5 +1,5 @@ - + + + + diff --git a/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/AnalogAndCardBoundsWatchFaceConfigActivity.java b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/AnalogAndCardBoundsWatchFaceConfigActivity.java new file mode 100644 index 000000000..5943e6b13 --- /dev/null +++ b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/AnalogAndCardBoundsWatchFaceConfigActivity.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.app.Activity; +import android.content.ComponentName; +import android.os.Bundle; +import android.support.wearable.companion.WatchFaceCompanion; +import android.widget.TextView; + +public class AnalogAndCardBoundsWatchFaceConfigActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_analog_watch_face_config); + + ComponentName name = + getIntent().getParcelableExtra(WatchFaceCompanion.EXTRA_WATCH_FACE_COMPONENT); + TextView label = (TextView) findViewById(R.id.label); + label.setText(label.getText() + " (" + name.getClassName() + ")"); + } +} diff --git a/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/DigitalWatchFaceCompanionConfigActivity.java b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/DigitalWatchFaceCompanionConfigActivity.java new file mode 100644 index 000000000..b04f11ee4 --- /dev/null +++ b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/DigitalWatchFaceCompanionConfigActivity.java @@ -0,0 +1,217 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.app.Activity; +import android.app.AlertDialog; +import android.content.ComponentName; +import android.content.DialogInterface; +import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; +import android.support.wearable.companion.WatchFaceCompanion; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.Spinner; +import android.widget.TextView; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.wearable.DataApi; +import com.google.android.gms.wearable.DataItem; +import com.google.android.gms.wearable.DataMap; +import com.google.android.gms.wearable.DataMapItem; +import com.google.android.gms.wearable.Wearable; + +/** + * The phone-side config activity for {@code DigitalWatchFaceService}. Like the watch-side config + * activity ({@code DigitalWatchFaceWearableConfigActivity}), allows for setting the background + * color. Additionally, enables setting the color for hour, minute and second digits. + */ +public class DigitalWatchFaceCompanionConfigActivity extends Activity + implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, + ResultCallback { + private static final String TAG = "DigitalWatchFaceConfig"; + + // TODO: use the shared constants (needs covering all the samples with Gradle build model) + private static final String KEY_BACKGROUND_COLOR = "BACKGROUND_COLOR"; + private static final String KEY_HOURS_COLOR = "HOURS_COLOR"; + private static final String KEY_MINUTES_COLOR = "MINUTES_COLOR"; + private static final String KEY_SECONDS_COLOR = "SECONDS_COLOR"; + private static final String PATH_WITH_FEATURE = "/watch_face_config/Digital"; + + private GoogleApiClient mGoogleApiClient; + private String mPeerId; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_digital_watch_face_config); + + mPeerId = getIntent().getStringExtra(WatchFaceCompanion.EXTRA_PEER_ID); + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(Wearable.API) + .build(); + + ComponentName name = getIntent().getParcelableExtra( + WatchFaceCompanion.EXTRA_WATCH_FACE_COMPONENT); + TextView label = (TextView)findViewById(R.id.label); + label.setText(label.getText() + " (" + name.getClassName() + ")"); + } + + @Override + protected void onStart() { + super.onStart(); + mGoogleApiClient.connect(); + } + + @Override + protected void onStop() { + if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + } + super.onStop(); + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnected(Bundle connectionHint) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnected: " + connectionHint); + } + + if (mPeerId != null) { + Uri.Builder builder = new Uri.Builder(); + Uri uri = builder.scheme("wear").path(PATH_WITH_FEATURE).authority(mPeerId).build(); + Wearable.DataApi.getDataItem(mGoogleApiClient, uri).setResultCallback(this); + } else { + displayNoConnectedDeviceDialog(); + } + } + + @Override // ResultCallback + public void onResult(DataApi.DataItemResult dataItemResult) { + if (dataItemResult.getStatus().isSuccess() && dataItemResult.getDataItem() != null) { + DataItem configDataItem = dataItemResult.getDataItem(); + DataMapItem dataMapItem = DataMapItem.fromDataItem(configDataItem); + DataMap config = dataMapItem.getDataMap(); + setUpAllPickers(config); + } else { + // If DataItem with the current config can't be retrieved, select the default items on + // each picker. + setUpAllPickers(null); + } + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnectionSuspended(int cause) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionSuspended: " + cause); + } + } + + @Override // GoogleApiClient.OnConnectionFailedListener + public void onConnectionFailed(ConnectionResult result) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionFailed: " + result); + } + } + + private void displayNoConnectedDeviceDialog() { + AlertDialog.Builder builder = new AlertDialog.Builder(this); + String messageText = getResources().getString(R.string.title_no_device_connected); + String okText = getResources().getString(R.string.ok_no_device_connected); + builder.setMessage(messageText) + .setCancelable(false) + .setPositiveButton(okText, new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { } + }); + AlertDialog alert = builder.create(); + alert.show(); + } + + /** + * Sets up selected items for all pickers according to given {@code config} and sets up their + * item selection listeners. + * + * @param config the {@code DigitalWatchFaceService} config {@link DataMap}. If null, the + * default items are selected. + */ + private void setUpAllPickers(DataMap config) { + setUpColorPickerSelection(R.id.background, KEY_BACKGROUND_COLOR, config, + R.string.color_black); + setUpColorPickerSelection(R.id.hours, KEY_HOURS_COLOR, config, R.string.color_white); + setUpColorPickerSelection(R.id.minutes, KEY_MINUTES_COLOR, config, R.string.color_white); + setUpColorPickerSelection(R.id.seconds, KEY_SECONDS_COLOR, config, R.string.color_gray); + + setUpColorPickerListener(R.id.background, KEY_BACKGROUND_COLOR); + setUpColorPickerListener(R.id.hours, KEY_HOURS_COLOR); + setUpColorPickerListener(R.id.minutes, KEY_MINUTES_COLOR); + setUpColorPickerListener(R.id.seconds, KEY_SECONDS_COLOR); + } + + private void setUpColorPickerSelection(int spinnerId, final String configKey, DataMap config, + int defaultColorNameResId) { + String defaultColorName = getString(defaultColorNameResId); + int defaultColor = Color.parseColor(defaultColorName); + int color; + if (config != null) { + color = config.getInt(configKey, defaultColor); + } else { + color = defaultColor; + } + Spinner spinner = (Spinner) findViewById(spinnerId); + String[] colorNames = getResources().getStringArray(R.array.color_array); + for (int i = 0; i < colorNames.length; i++) { + if (Color.parseColor(colorNames[i]) == color) { + spinner.setSelection(i); + break; + } + } + } + + private void setUpColorPickerListener(int spinnerId, final String configKey) { + Spinner spinner = (Spinner) findViewById(spinnerId); + spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @Override + public void onItemSelected(AdapterView adapterView, View view, int pos, long id) { + final String colorName = (String) adapterView.getItemAtPosition(pos); + sendConfigUpdateMessage(configKey, Color.parseColor(colorName)); + } + + @Override + public void onNothingSelected(AdapterView adapterView) { } + }); + } + + private void sendConfigUpdateMessage(String configKey, int color) { + if (mPeerId != null) { + DataMap config = new DataMap(); + config.putInt(configKey, color); + byte[] rawData = config.toByteArray(); + Wearable.MessageApi.sendMessage(mGoogleApiClient, mPeerId, PATH_WITH_FEATURE, rawData); + + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Sent watch face config message: " + configKey + " -> " + + Integer.toHexString(color)); + } + } + } +} diff --git a/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/TiltWatchFaceConfigActivity.java b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/TiltWatchFaceConfigActivity.java new file mode 100644 index 000000000..303e72ea5 --- /dev/null +++ b/samples/browseable/WatchFace/Application/src/com.example.android.wearable.watchface/TiltWatchFaceConfigActivity.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.app.Activity; +import android.content.ComponentName; +import android.os.Bundle; +import android.support.wearable.companion.WatchFaceCompanion; +import android.widget.TextView; + +public class TiltWatchFaceConfigActivity extends Activity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_tilt_watch_face_config); + + ComponentName name = + getIntent().getParcelableExtra(WatchFaceCompanion.EXTRA_WATCH_FACE_COMPONENT); + TextView label = (TextView)findViewById(R.id.label); + label.setText(label.getText() + " (" + name.getClassName() + ")"); + } +} diff --git a/samples/browseable/WatchFace/Wearable/AndroidManifest.xml b/samples/browseable/WatchFace/Wearable/AndroidManifest.xml new file mode 100644 index 000000000..ee906b763 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/AndroidManifest.xml @@ -0,0 +1,205 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/bg.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..5199af2d80e64f424ae46ec36e7bf607dc8e323e GIT binary patch literal 61104 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⋘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 literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/ic_launcher.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..589f229d14a11db31931caf22c66ef8e5cbcb25d GIT binary patch literal 4584 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 literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_analog_circular.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_analog_circular.png new file mode 100644 index 0000000000000000000000000000000000000000..a3affe2135cf2678c401d9ca8c0356b85c5b5c00 GIT binary patch literal 89304 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

lV(IYLI0XHbgcWL{!Eq2U*BtUAg-- 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 NfS0E?qRa!!{0HCt-=F{h literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_calendar_circular.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_calendar_circular.png new file mode 100644 index 0000000000000000000000000000000000000000..cb1d27bacfc8389aadffa1c2fa1acfa59a6f5917 GIT binary patch literal 4572 zcmeI0X*65w8poq`O7$w$L5~hnF;ov}RZEpNt+9rhiJ2-=Zd9xp(k6B&lO_pQV8R%ph4*7FB_ zYn1HlW^D@*`~%~m-p|!CGEL&LpL~ zCodmvD2P4c*a$97JX-RwQ2DjXP_vG=CMEh2A_`BQAISFI#dM_`z9we}XJ?1uG?)Vw z3jIex{}6c-Apk1076yYF{@akjyMP8v3Yh(b5x6B+%dCK@cqVB+l-NR#YF}Df8llmu zIUG(hNuZ=#Slk|)FsPwG;mR5onLhx|nV?&1bTZ)_CnFVQYi+&wK}dRJx)a@m7?d)! zymg*T(sDZqx#w|8B>q%VPosN}NVR=~{_qp)zEtV)uV3G)`A?MG^c^d2Znk~(K=(Xlak8TH$@E4Q|uUeG}5_PxAd6&P6C+t(+j$QJK4 z2ves=He8HYyj1Plj#suBA2_XDSU(H2F3?>ON9!SErqy zpWim0>3HgRLg>Q4?@dij6;)Nnr%#{u@%A2G7|b0VA1~u@0#cHbJvzI{T&;NR0}kFB zxL0roJu)@*E=lt0(&BLO((-c0%&eODKWBTDY09TW2#r!*9g{6I-_i9Y@7sj zZYycYwy*Z`q{yMp4s15)|YiI|A3Z(dD6iu}!S*PXRK>CtcBDl#+AD7zA!;5AMbVPP%6 zYMnlwa8pgKbY|v}Kb`1ooCO`t(+CdX?}TphcnVuWr6*xalV87Xcq_s zqR5n_!|mYkvODOlMXW->PzQ=Dk!lYl-PU#+nEDb~bJg0wAi=@WF_iU1Zc9k!4?qIU z&zXcA&9Iu|(s$qKBphdLu&7HcmW7#FD%7Q;JpP!Z53McK=gE_y&!1nkwYB|9*zn-u z31ax#zqBaS^?B0h$Vf?DoeF@VTs}Nk;@!J0cJEG`$!JIN&6jBVf_t&w6ZYTib16c;Z5Lb&ri$36U zzJG}0q{8-tT%)$}lZ4>1s+yXouO57|v9@lVm~d!$+;^O}zq{IgOcL6fpa&dz6_M3;_Ai#H6*T=n`)sH?R$FoF!kXyxGi9 zYY4~_5_a9+W=iW74}WUWWVrqbIFW*B-hyH$={lcVBxbiCIh?VwvM`V zMLEaC#VP8XKHve_{+fk#VqEEEfAQ zP;kI#`LM1&ZyH?-u=C46w%0wKiIMi>HO|zzIS;JyS>Yzk%D{^|q}0GJq{-~k~}PcJ^8jU}&FY*FppZd*&-shq~} zoJB=NSQh&5EWb8=&zva9Ojmk(ZYb0Sc8} z)6TKHAvLOii~Lu2f*AYnH-Fd<(lyGKmVDy7ALVPIEM24dq3#<7duhiG3A^eW7;JJW zu&V0n!SNpR?wP-2y}O@_MsNsBYYU4a^UEcqtgAvhU!_v?M}gU$R4^?sF4jqZA&p#M z(YcRe8X3bP68WL*F+~Y%IpFz#YuI0Ce9_ljRCFH@Y>Cabg2UlsB#^8Q$ih6*L{9?} z0~%li#)7UTfe!so#vgNeR(qL-dr?3|=-J&k*n=MUscdSH7PcFn02?sU0f%(REYvcD z5+w?l_|69U?rBE?6n@Dg;)DIyBUC(k-)qvh_$ym=vSme7`Wdy8z<`~TlDe`iaY?SL zIAkxCiBjDWy-o9T#94A>H57vfNrbKW4!`XiHv_2SH)#}v<{y-3#kW!dM*Rlj$ybc7 z=DuHx6xi2g9L%6xOn0+N&Dcz0yp%tpL8+gE^T~0_oLtq4UFYsSRL7uH{advC$HCN+ zUA;S-`xONle&e)N%tiDmsZbz{m|tojok7$X%55@n`ax^LEIp<7D-SP=!$ zU?#e3dO%`WB#U>Rlp8opKb*%G|2PvE1rhC08A^UC1uO3G`-vL-X-~Gcdyp(0YhRb|xg((`<9ieW}Ycr}@0+#F6_rI+*R0=$iSB zh_Iw7d=A-mp%=2P5>c7mXa-DRWB1d}_Fx+HEZ#PmdUQ{}?tF`x`Ta3esb87)h0Vqg zA7jFu@mB+3*?c2@Z|sHndeY$oBdL2Zg9bz#cqS<@x8mv?*kB*g4rXiRwopfS)@>L! z+t;LE|EGd)S$cL*GjT*JSo*-i4srM_JXx}!N0Mi93uJkv=az^Q=WkDE!g*VeRdfdT z+sX45DThYIo|ldVAf)b#x^g44@&ghYsj@ftn`X%j#R zod8|b3LhGe6THLi`0Dj;*Z#S7ryUjJD8DEW=Tv(2IhdWdx?+9#zDxW3kBF-Z^FN%> z>FH$epdj;OXOuqw1ZAJOkp(G^GPoX<`VkSlK*V|e(EKRcmXf$>_bosj1{15#+m2A) z-j>(7G_FkB+na{H(SDbT+m>@AyLa6cxil~Q1Nd+wUIdRC=4G35loA3>1noJIg9?is zv3^ub;d=7@7Ar;Ko%9u?p#3V+yxfz-M9Y-Tn$50UeOQ+n&4kK!_9n5!o7|@;HN)*t`{r zx?s$@YO#I{!AV2THMQ^C{`+MWwn0qx{t@q?zC+izgXJgOny+K-R7^q1!iBAfP|)mp z9X$mT{(d<__&d9{E2>+pzLW7|W7lh9bs?3ncj7*F+rxv2#G zx0;HI;h~|lBSJzpR#qA7sXt0I)4ubr(<(|8M?5>N*0|yQnK!ejZly5WO4J6^XuXN9 znChUY(0!?M=NfWuQ7?C|;>b!ppD#@gyDI*)??q~+J1=*!Ky!@epc==PnkTBztrv(& zzsDcW-6kNhQ1KB_1?};X5y6PG!azX^H*sHnU2|ftF>9psZs0Pn+vI7taL{D4znnud z8|dX{+;@*;t5LnL^>kPsH@|{C@qKTb+fZ=pVvSSOtOEM* zncdo9FLalCXFuPM?k<$@{*jvD^5KC^;h@r5BhR+LqG|JndC}aJ76W8H6qibZ&zsjs zK;HXN1d@$Ib%S;=jJ+r-SXw%s&moZ-weYW3wgwSx?ocuFmq52df!AMf!uc#&mi2+{ zfQ383xaopwen{S6Go^2RZno~3J7e|G;cKK%n;-%3?}vonEB!zIufhKS1Md!mY(r@w VR)+=DfZsJBLp@X78f~}Oe*>xVE(rl?B$ixSR6tr9=`N*f5y_<_g(amW zmhN~T?tACXyfgQoJM+GO-JM|=cAhxTIltfce9o6ALPJf7l$e1S1OkyhS5|lh0)b(- zKZN+eH{nqmpMhVvZgS7H34xC4ePphJp8sAo1`)vOKNo_C8v!AYsUE% zE35hA!(X=(P!LwIfn$3uV*8ioE-*6wX9F+gsH|hp?s@(_=}3NLzB<_ADdg66*0O_T zKvJ-AjG%;vC1e$X=^$Yrewd>uVnm=Yj*&31yuvix?1M5RK9th71If|P;v!3$C`^aio1AVrD=Zq{7i{eRX|>0aHR*S8Ce&we}Co$4%~ftV?ZB2;#&uN;1-P{gN+-fN8F>!{<&D_Xve`|^k1_QWxq@# zcT9Va>a9!x%aRz3W6jMH%3d@pdI-x)fI0gP+Gd_S!-?D-28;m;EUA9pmt@74p27KpMUYLHGt{p`eeJ>oV z4r6DVo3@o>N>Y?7(#DDLz$(#y#IcZ&(a zU8&7fZ6FJWD>)wh>&^b#n$mdz@^}R~X(#=L?Pv^NL68PUn;_i*?cVif-&%k0iPVn@ zY*WDy+vGf}rY?T&$7R>v;Il5qz_|N?hE8~D={O%htt|P=P>`Y5ZZ_MH5s#b~kTa`M%&130Ju2h0bZDz| z=Z5LlR&0heWUxm5Ovuau&JrzI2xg;>Jt;ne-jIFO)qDfOEB+&l;tYm_jZs&Qbl?p*v3udS_Y)Nnd)>!Ah60}358}cv7hlroyQFJElTB z0Ka(bZ#)$PDH((co^0yDE9o@#2xn!@jB&zfl-fh9U z&vO0sK)V+m#*#z*FtOwF6^2woNtZ> zY(GLs%Gy4F`!zPxdb}%{5g3ifeC`fhwO)8D1M%M@p(m8qB?6}n^h39b(-lHh z;Dn!9NF~p5?d8SaD<}RkLEz~%YM0M%CSV0=<0>2+6Hk)!9%Z*Od_ihTJ*sFW{!Guw z=sF~!&eFfs4UrG)fpEr%HHpgO4HRVdOTMh<^lItE={0x6_KUsVnRPOU?2kT3(hRBj~oa?K3tJHxMVWD~)Faq`VyS-*i z^VLQsj=CgxYli4@Dzn$j))Ak@TiHYPNoNP)RBjQvI^nwdw1P$??+{`FvPvF_2)zCcxRId`#v z%gxpP@hldHQPjg&>eV)de0X1XG^@Hm&h!f*$jitUmnJKU%d2^`d#S-apEp!Q4f8(7 zpv?(zz>zLWOTBmU?f0#=%TGop!Q?oYI`ltNi<}v2odl!FdY284yg_Z<3ybL9n}F?i zLU1agDZT4Jbr#-0n6Y_i^q+yBH&nA_b{s5r1= zl6t0V#O%BX-;H$Y@kk4}R6^{E2)mme>N-3~jw~!*d_onZKUII3!gEUn+6cqH23W@lCwf$-MHB;F$&jURuglb{uRJ=R`atUYPOS;C=} zZ`rnWxFLk{*m)`N4z_P1yyZay|K}; z7hIrT(1Zz$YBA#DV=7ZQe`2kiAP$!~Q^4t|;WV0s3*o9U($(%m?$Hxx{dm zSe-c5OW8S3QLmQ{Za3G5B03e?LJxfE7#Nn_iVw5Mj+GUzC2e1Ii%^a`8@=Wtcf=%a z_E_tqV@a#Rz%Mg=kE_?tuZX~DPdJnK1d=XTBYI+5-QD*a8XGf8J}aCpe?@{vj3=8s zz^3Q1_Hl&xR_>iEFESzpLa~mRYVldQ>QCN( zQXx7!Ue=i3M9e6hxUv*&mBpveF<*f2dsh%^xT~hP% zs;P6sMoNx9=|NAguz?uIIGrqZ`Q>*%&8MW@wri^2HRnA`R2!@2RPt!E2L$lsWS+pW zp8YCAMP=ofjxY9N*jVgqJ}=l|8n;xB9pdn(@~}1x8WY)jGMnVM#4*xKdf6cZJyd(| z@fT3@K~Kx0Z)K|2!WlBAQSADyMu{48e!48{j&-F%#sMu`{~{Hwik5@PktzZS1>no$ zx@x8Tl5!{6+Lrp+{rAY~>O=3hL-;!l1gGbdR+D?@M;jiIeixQ(Kx&!>RJD#5B(Ljv zV%{)+$52na}py1bXd1DbxB822HhVUzo*)z>BQ+BJ>E<;P*ZJ;e}b_3uZJ-qzOlT8Zcn1J?R9TuH`U z7`s}hq@jk{{j&x)E6#EQT~93L@#vbiRfg*9>;>CMXABtfUJ_PqT+1_6E??ID*iC}& ze$r9qJAE3st`R#XGb4b-Yg-tRG0~S$Ew#RBs_rRxa@cwyk+N5!kjU^KkX@BaSy`tBE5#%XWpSEJyNcKLXjhOpg$w+c=(dK2H8X`~i=| zzm3%@LWuesp<_MxP?C&mlj<`mBP}mA;?JtwA!0dygPm)sK}wGq(AFjEq?vcl5DVbW(i0+3D^gHy__KTiXY|(yT%4 zSvfBRXlQ5(%gd#C2z@rMPUgE+1X@CD9)FZ&L-xkqw^;6pac-I|EGd!K(V;os#)QAk zK;V1My3?)pCwF}5m1w$}TYo=)hFJ3@cS}I0!SNX3O`h1UcNHyRDJcwu>=cB!aH~FQ z-$fEr)L4<0%k|ls#Q8!|d3jf=Q)@(QEY)LS;Uk2fj*iah*-$`KZLLUux&&R_oHq}U zwGs1V;0tYSZL@>b0k6GII?Y$Ff{L^X#LrKb?bEN}gp3r=Wxs;#Wq(a)+6c73{876g zXS7eptgT-#){VO!X=`u)D~yz}^4%o=pV~-DPDQi1W`tg~C6U~>VOgxn#6+24xR+!U z4bN+{tMem2gCr|`uZ_H<;faZ`dn$sVL9w8m(_A~XA0&SNI?kR2QiuGHAn0|$iZPOhus$5zT7_JbL`mT~)1WH_k?piX zcr@_w@o}%kP&y4m!%rIAA)TM-EY9{TN0|l*<12zoZk}|1y)DqQUcL$hX>xMb^%~EcyifvZh|!InmNT4~Ar- zfvQK`x&QZ_=>@}}1hzRy0#3#%{kgC2MZFRKjPJn!V(Lc9=UA37@YyF?tCm(g65540 zb?NpDDWA&s8zVs%Qe;eEy)xOYJ8Z3{i3X(;hi=R}O{REIu%0GLnoYj%5d)zb_)-h( zNrbNw?EEy|>=-+rNt}c@SY0e{+Id*`N`*^D*r48-ol89hiIae8nyvIDMExV`OQgW5Xgz;;`)GjLEas;=_F*n;92}m(VG3|q|G99W zEU4X#f{%|6vDwLRIZe)wwaHp$Kskc{5+G|^gzUxNtE^?W{CHCb-g}6O0!|uZv5tp+|d!i+i&##He$)y3&`P(8ed(LPM8y5k(A?CVF_;ax`@ztLYqC0FMs9Fb1 zwf{gAvjkfRFft-cPVy-96Y)kLo2PK`qF?CHJ75$aGdwdkW(MRl<|UU_!J8kowb|w6 zWHHLYQ05`!EU)q{dYs`pIK{rTF!;Bp)y3z^;fvwEil>5$W4D?DEKy*~&>dDD%ZHPF ztFES!BP`Xc!dY|{!(!_9`*;>Tn)Y^@u=)5b$IC!g{xrJtfR@J&9{&N9=u_wL*jUK< zx%b%QWDamoRaI5xyHvN8mzRgc_F5)Y)HyKn@s-)w*~PNo`3gPd%D&KSezKk3octEK z?lIMp?%nLXZ1hYhw5TO_Vt5!i8!!{8Ar|s3$&`fT_0z#;7Aag4j(VT;gu>9)reRNX z`vV>Ryyd%Zg!A*B8Sx#*Ws~`g_rLGYTa*q)#&STD*n3KGTm{Ij22w!w0I$ z#Gy*r-{4EeW&F4Z?Z>bM6ihLvDE4{2jUjcQo@}DsRz@4Pwvy7}(@)0T>>guWPBBtt z?K%RvjGt@>n9VF{yb&pkA8MoXpt~;K4dn$@uOJIDvM-tmsW5Nd4A?wkKCJ$i}P4yw_ z5?S=vApJ@%eF`$Epwl&W*J%$!w+9nQ95T2|3vkb0`pd9*ud|oxf5(^b*h1y2rdHaH za(T6wz`|neWZ+OplCcN{kN$np>`cEXTHb)p#?^P5*0p7 z;Hh~}9Fq?wbUU_yQ=twbuLvpsX&e3CNMPiCrf<;nw1JWDUMEb%{*NqHtwJv`fk8v` z-2`ucs%V92&-wythYQ4x_GA(UPScV%To50EnJ!8HBK_F1~* z$hruH><$aR1m(LF5ef@?UKCJ#4Q*{`hbcd!U#DU9^xe8YpK355D4UB$6w`5}(znlt z?nbEQo9hb-IqF0G*4ypoeaH={2!Ul#iS1~<`ScIltHuGjtXB2n``nqp221#m{hM3v z8!Qa4pX)pyQ#3N!*x9pwo+S8*^X6h2k`IrHENwlzLa>Z1c7&V5@cCN~NBpNuTA3xi zC{jh8)N~?=Yp6wly<(Qa1zd?EhVbR+m{5>@sNTDGJiuSPXk6brmKPD|aOo4?d&Mgs z=E3<^(y&?f(UFlLKysjrBG4SA=$%^JQDCQ~OL%4%7Zcai)O=9j0CY#0D-P&$-2D7q zmF69AU?ugZ2$Rs6`nt5mhXKKp7B(G@s0apJUk34ol8WTpW>-~FmX(!NI{39%Cy!Uw z*1~+}XyfA(f9|Ts+*h7HTAzJ@x2?lbqLUH1o%!dw{yQ)@7IOe3!Jho`%~+wPv2oY8o2w zm%P-`0`(h;AAy)Cf@o|cWBK--IA*?r4>j;9NKs_c<4H?-r&sv`L*rZvF*`;BymRkzIaqlW2lB@D+SZP z*Bu@ee*E|`NY<{u2ODtXbGe_?7UF=pWiQA2#jv!tyNk{+&v`#lT7IJsnb(H}Vt(h3 zGyIPAeJ?QcU4Xl=Up=3!lOwTHAFRVkAP9v3B+%K}xn=@0_B1T1dNk!&;U@eN&C1B0 zHg}1GGGF6(mZJ%h<);3*Guu?n1X4s7Vspq;2AddPKZS zhPMzGOWb`0YCXJHHXa#DLU$`0m|BP1NZh7h zTaViSWh-SMWx!u}nDBHIA%tzFtS(++#`Ed|Wl$oUU^pf)kCL>t$kUF1LTT2^G#{4t)d0h3} zYF8wqmJa7J11arxp5Bl$Y8Py??XqFwMvnK9AMY~GvbU4)M^fVS$ccmu%OI4Vq;NtQdL?Kc8$M|` zV=h-(KA2kVz}Ra^6`_EWZ~JC__*)cjuNc4C$B!TP#h3im0XD31TN@n1TOT?C>nDaD zZBB9mVhE%!b8~}>fKOM}B(6vD0i)do6a1l3pQYi)x40o710n0t?+#5JUz26oK$%0~ zHjk&b$2qhY^b$i?SFHi~-*zKA3VVdsxw70}?gb&Ir>9F3=j&ZK0niK6;Qr+niOC^mUI`RP5_tU0)9+3FvNq{lRb?ns8B3(% zfw)cxgVfA~$nL1v`{M?(uV!$d!1;$8qa@xB)%$|bB-8^j#+@x0Ps*jz zX5>LwJR}cNk2jH_EJOWaDOE(sL=m@lhYNUgK1uNC;_5@^8!5+=1YMK%DvNFnBO~Ba zS(9_tfB7~sIy8~TNA=;Lxy4Gpn8ueC<=A@L6zJEC`q`akwO?tG{rI)zx5YKAwGX7g znKTW!(${)E%w|<@=~-PNIZ2lv@SYBx6!k9mGbd<2)8IfnFbi`q$mC{oOM3jPP z_eRM zx=PneS-?VO00YGK-UW!Cvy~@`_$xpWOF+H>_n_;mpv4a-?E3E<3OO@iS{c6vbB%6^PH*S9|M7Q;uPI(8I-kz{oI+)VlDFVroU+6on(;R* zQvp4D@pNygXz`-)v4}`^VyibITF_dQ;_(P1x?&1TP(V3tDtRLCWr=oBPKYCr;W=<|Db!(^g}v$5@1RC^Rmg zWgQx1dBsT9pgh55xaRsEcFkzyj;)VRzpR@!rvQl8q#1S#zCf>Y84#Xa2qNL{@!0^# z=FQq*I#7Y*tts9X4Kkrto(xS_=_J%MkP#A1z+?Us4)v0Rc-jDe0){uQOvIaGltwiT@Kkv%h@<-&adR0c-~Nf|4xct3#R5hE6Rt^Q#y4 zvT=xDAYjsf?X;Yj7y%yJ?eq#%GI&V(0tzr-VR7-lePIBCzCLl|DsMfvdzmH{lSiBF zZ~a3(eJ-#6{`7DdV7XeC(EBH~v3hLJFfcN@ETF)?K%Q==T#gvzJXQ&y6rf9Jt%*=- z`kzAl<2%t53KWVyqJHX1dhPLMjZ|defg{t8%>&qjorAhZ5xeFY&W)z|Lynv_pW=h)>&CE_MVwN zv!B79b0U-#rI8T`5Wv8|kY!~gRKdW&MgD!@V1PRlafM~TKPXo*S#>zz&kxQl91M&M zOjbfv-7E7n%hykRFY9BILw4j%46b>EDiBY3HxB}56+_v!y%Jgdt@Z2}Vs-spr|hfU zL)fZGB-1(b`k8!R*LSb|G}lQp zG3q~S2j1NV2VAUtu9L17`+obrzFo1%!6NxbKOjq>%7k=74qC6nqiI>?0tJnjm3No- zy|QPmDwZ0+sQKq*a?6dJC{iP_@FgR1{IC7)RmKae$@l~h9wejxq`Ktzr@!DAr(w+g z+NTJqr43xP-oa)Hgb%4Z9*xgai3xC4p^ay_wv%g-6XWjNR*4}mn8!;wNghzq2kC+G zn{Y7UnF5^^plcBO+ion46^g1`?krme*)2{M7!xdCPX!hmn5f@35TnHqjr6v`n#dim zD<7NB_sJv`?IRq{XjRm83jwYI%|{-}vEH%=QFXvfvk?jo?FYL7Y8pGZkQ{mN!N2ZYyzpeqg=V!_ zf=MC|0gV$OJyd+Epp?@a71G7`Hw|ZCs}NUc$cJVvD+S9I->};E+A!NyXu>!Pl1xX4 zBBid!+b0*!!9E1h`bz@(7h zT3Z<6`kEQnAZL&wD@Q=C8K9eE=`Zag(}6fW;WtDzB)07NSmL)0gJ`R~aV9O;<#;&c z!VlQnqzOZjz#Cg&+>}hgHXzr;?_u$InphE{)?$iWs&G8U1Bj7vINRcfr0tggzZJCG ztHJSezkXnKC8HB0QnM$Kcf*!VvZ6i-O^M+tHh_hO*c6o8;&ctl;Ff%%pq!CF+#9+0 zUdEy>)&g+`A56j&NM1hsYG1D~@O+Q&LoYSt;^fcaqLJ zkz69;g8)j)){VgFoB9pSTA~hVTa!{(0X)VH3E)k~D$uIztdR>HuIu*Z%r4^ZoZs`Hon!=2 z#>LyHT1Q&GKtC^PVfx6$Z8p-xZ+2FWTDdx*S zJD4IeXcpWw|8l9w9BLn0(Qh=}A+Iqh*3U* zOLDA0G;9%`%yRjsYYjDfI8pI)TS+4R#;qUAhy-*UPZTGG`DrvxY$?hkqS6W+Y8TfG z`5M?Ss9TflFOAOYvp9SP+BJHQL#nQ7!j&U=#S7HmOgcKJlgi5wmYxdjYe!kxUOwqp z4&0}81JTV3|D6P)BX9|nvul{2>:wpH0_$SshF`J1d6^Fl$<$B{@ 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�(`)# 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 literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_digital.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_digital.png new file mode 100644 index 0000000000000000000000000000000000000000..4853a6454093ce1753f9597cad50ed5addc352f2 GIT binary patch literal 50993 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 literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt.png new file mode 100644 index 0000000000000000000000000000000000000000..aab5f18d617a51ac1e63cfa33216800d2cea567e GIT binary patch literal 5703 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 Il10$}0DK9I^#A|> literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt_circular.png b/samples/browseable/WatchFace/Wearable/res/drawable-hdpi/preview_tilt_circular.png new file mode 100644 index 0000000000000000000000000000000000000000..31d3a1f9479f485de9896d74ebdcffca05076372 GIT binary patch literal 9987 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 literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-mdpi/ic_launcher.png b/samples/browseable/WatchFace/Wearable/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..77dd5713925f0aac6262d62ba5385be43c5ae12d GIT binary patch literal 2757 zcmV;$3OeIk}t=aw7?lkdTCeX}L9&lHpnv+X+=$AVn%lMF{*T&WKfT+D;$^J1|3Q zWgHzYB9~fvfwZYuoD5Q#A`lQ#!cCDh3FZI^857t5C%KS=^uhw%vK5ptiC>ScU)cy#gTlLQbwtly!fZp$~%Pvs`YsXYJ$c=q~)B%Hx1mDZ^I0o>T13AoL?OZ+;(y8as!^3SfR$S&==j$Z_kOA55T0CIoOV5cn+!0F(f&Syq78w>1(v83jD%sutZN0lQ8{ z$Vu^xw7!k!mS+v2>|h97zO73~124f!GJ@Q_5_n)ABqS~G-wV?6QK2@d%gWs5emMctfQErf&vS@D(! zF(*i&btERY9=Oq=R(fJYwD7Gd_%h|)|kJU}| zVO6s)czA+A!yB+VBm?k1BzXT@X)*LPOR$g$T&V8|N=5;*P_T7CB~V=1BvPrcyuMZo zj7GpqLgxQ(GkC;M;hF1HUJnm^0d*kb59L}NFeze?%D8w36|e_BWDk4*0%$K7C`h34 z8VR5>3lgFtYkB{vk+C!{J%-jYf%8ltm|}JN2VE z90P?+;Df3rI>13}l#lFxKmyh`$_So-eDX44>17b$3av`Wvn{K&PNL@f6UOpMk@i=BfEEL=KDLbug4jr69)o{|$4jT3Issp68zlwlITr^Y zFkF4nh2j$;nj2h3H*DKm#u1<3~cqY?Q}obU|h;y?Dw=pXwg)>5UZY zYjHz#JrIH9J(2(yB!!5U=QSw-=tS;$UVSu~_OpE6sc7(6UV^_nh`s3)L;z+1TYurG zI9gL$L+6-))18^~~2ma0HCYnoV7zn6(H*Cw!a{?3CG$n=J{j7oZ{j0%aeRu+k zF$OS)ETnn?;GgC3vy(MG9+3K%&jhk-1&O*J1RyYU_owx+@Lm1B(l$#EY|crcx7qq{ zF#%2ccc)NKCenjhCGqU2c>3-GarDB8f9nK%J)k}>Aco+H+kprq?g9ZVhy@W{GNNtP zN#OWI4&v9Qj-a=%*3+9;-~p+9-x^>fpa$}y(ebp1J+SIHdqAX7uY4q6v1ZmFj^p)9 z9yXWI5D?(I%HBpw24o}&93R6S=xaG6=tONByw>`~TYz}H;RhVErI{aOs@uBx;oePWZne|FYiPxN!OO-^#()Hm zb?ee>a|uQL?kp4VHfAar6}+)r>ozZkg+m=Vjx@ujKD);LN-r z0E>5|8VU&z)<@>?^^8|)IQNO;+a5b~=+HUdY~|sS1n^-arL3%MTUuJ$S4~Cye?C}M zRrS~G?CgAoQN!boB!IV3i7QsD$jQpedN3G_Y%NPiM@K|-bo7$2u&~7D=H^nKE3w<{ zqN268w>uIN64vmmaB661*c2HV*@5|C>mb!r+_Mty}laii(OWz^LDScyV#@ zMFvcHd3g`<+;x54o|&0Bdj0zK2N`(Gv17*yHgDd%9o7uSaF7jv>%;SjDahY?PP69Z zey*KX#cp5Wr`)Y8(@>hA7tnlWQW8t-4ze=U+lVPWA1w=(&jy?gi0+OcEDXBigWzoTd2lpGKXi8?F9*CJUXHIE&c=%{e zgL`)G-o1vej&#;v@TGG0spb?)M~)m(gIEQG&LolLxT&+Vb8$^g%@xi{Q+Tc^SQiYG zK>W;^Gv8rrWtEqg=W>QY+Vq$HhOu?ewzRa+sZ*!2`8<48>~9GV4GkSVZQ8UyaV-4v z`0?Z4;ggWff?5VjAcC)oUIeuQH$ge~SAgWFTL2NCMExKF20TQdO-7Et#iKJQ^nB7l z3E+Hy#~L>?%iHqPEwG4Bq9&lkW4LY%TsNqyjOz`QK(L1SpPly~rHu!gx!mm&00000 LNkvXXu0mjfj66uW literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchFace/Wearable/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/WatchFace/Wearable/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fe34ebe13c1da13758ab3597cff544ea549621d9 GIT binary patch literal 6603 zcmV;+88qgJP)Q%@7!Yv7BhfiBzzlAP!DRx0 zXdot|=eS03GJ4zs1Oc^?O%gU)dI7qDZlE`M?)U25`ft6i`v1SX{_Z9{)H%gp>#M5o zyZ5{I-FjUlsnb)7B9PRgS3iAmb((+{HiFXxoF<@!5oqDdpZ0)Lk$`VjZJCjjltQ!W z)WY}IDlT7Fr%LPUYUd3dJ!qc&K=nLe%cgC2Wo2Y8ZWT{{iakU{Ma9H{L(lSHYZH)G zQc_Z!oSfY86ub9UaXTkZo-E7G&hADJQ_T-#6VR!ssOV6uc-m9+A#!qZI@7I{1`*J6 z-@bi&PSJaB6}Q!+M~`0gAbW!d$lJVm^B0+!nQ)WSQ-Tqo7*ITT@Zj%Jv%7-`=s`O! zpt(2Akf)>`b6u52jb})&0Xf+2oRh4NX9C%q9Pk}N(Wdqk zkfMJL{N}-pSOxeF=nnY+TVKc8&fc=; zo=dt@BQ^RGN>$N(+^p;SjMWoP>$7-O6@$WHJJucnOKTNw2~uMSkru99$y`ZWwU!}c z;bs|NJ96X@)g!Bo%FRe~bkKmR@0iV)O-TNV<5+fzj@PJt6;;NXjVTh)0LYOT@3JNj zQezNf577hxcmuwaA5DZHMat6d38P`mZrW+zc1!~DUtUK9IC>6gkictV04~dk+0POc z@eqd~ZT&)?bbO%m{p9LLeLAWi_UT|Sk0`sg8cB$GBCXkC;$v2PcSOCj>#(Y-t<_fR zkrk&g4JykF2;t+{!d;00$lBWBVMH90Wu!@ahKL(zXV=fp3r9e|qtU6=0=5X(aR9D%n1I1upm&N5XE9oK-tij9RcaMt$vfi)6r z^*$fqgSPFwWmq@@`u~1|BSFUUT&s_h00x>#l)>9xmSn&Keq=l#8pyHsX##c;0ksZr zEKRJ@4k?Bh8(2dO?{|Nr5Wv|LAG;%w1T@qW7*LP*_*lH1(t;Q%L9sxNwx1=a+GxFB z>c}3!mhb)=!r}qmbFLt$MG5c_<|98cHMOM(^7F$yCkBL>K0plEjTk`MZb^?PkOs(5 z5U}x(0&mzJ)&tID31Z37+8sws@X>$U(rsDdloVt@ey&Xf0ehSvTulUc^ZbbP*qtiw zMAh3af^EEUphXFg`p@9n>8qdo;23y7q6m0bXFL@efCUuk{lk zX(`F7M`oJp-7ZaaYMZLkP4{>}hqh`!hx9P&qtE^OkxI4o@CiyAm8v9@EPpD@35Rb9?R&)Qb%b$b?QA5AaJxb23uZg}GU3SmzAYB|TMTwn?FmTrCR zLx8+SC9$!x@TgirF#_HYEfZ>W1VDEFsb`kDCaZRQFjdJq6TzqtB#T+tSYWhUmZB6_K`ND$I2Zvkig5pn5(CL9-=`vK^Dhyl~P-_ zuG3Jwp$2+TtQpa@of_ROQ=LJQ_ifn;_1kX`s$EB&dQq#DAejY?%+6H57?Q1}XA1$a zbn5|i=tQjxF!v8YfL!J>MNln>NdV}w?BFgNf;zWNQFjjPss@n(K#HEDnsj!yHUvx{V6`D2Fc>!gbnYW0q$eDPfS_6s2$*6#00jIO z5diCRJwONH$g5BG0-FSx)v)F3cx*JEd$RUAuJv<60Lb~3Aiz_2Gi}9Fc4(Gbko(5U z&&s1%zAVN8%uzX6t^_dwsKd*8kQ<0K84lEv2noLH2?ltF1Q7?!x~zsu0<;GdmAgSa zOa_$jYG_lu4*&sEhf)k6MAyOtHkCLMWUQXkP?-VQsi{pspbQBzq!j%tB>|8i5VhbN zLx71Fr_}p^cnI(WTVyVlH`x1`0GKp9;3W`%AS|;UWBHySY*6=kA?CiRjATM)B!o{K zz%fh!%$^C5@>4JP(m4&;&o6F5zmQ=9G&nJ&hb`8x{;zX*6O2K?G>QS3)=?Jpq9MS| z^L;#lQ%}DP$dw?oATuDF5RMD?zyl~9#`LU_AeN|TH6ZS5M0+#FeGjx3nt;CYm87;x zli|b>2c+f8<`&@&FK^gRpKd(g%oFewYRxni3>Kt{2b=Q-)@%QQflisZR$GU|YHe zU}Q`d5%zwpCxn2Y0Bn=t7a#Z-&Tt@Sqv;*M1BQS#kf3i$RE>!N47$vI*y{bVpL(8P ztk{(z(>HKS6p$xcK`Dd@cnSp2y8(VVBMW%8%-E6?L<+a@-EG6e4NJ*m53pn=C>RF? zUTNJIk_S96+=&6G!Tf4tv91OA^#e5cCN?nGewmOb78sBtBt+r@zkHcGtQ%EC9S?Zw z>mv0Rbi`oMQDi76AWKqgg7$A&0-%~ z5CL2w(3TA{EUUJ+^D!(rZYHG9Q{(|ez`2eDp$a))dqCumFj$6U@RiCFtro=c};nAmHhO`Vyoq-UMZ5*`Xjx2#CCtH=uLSmB6znJUBepC15THAP;cgBhv|f@xTqt zdcQYg@_37}eq1Xw0l6=KrL!QJM%tsLZHcM3Zt6#@?>_(m=iv`WlDQ zd<5vGeMd>KEIl+LM|&csx$F0mb1W67D zQuc(gM8HfU0NYm*0Z)EaV6^WXu$9BDj&vX3XU2hbZa zNQ^AN8FOc=_Y1x@6G7z&?Ga1{Eh7nl6k?jaPI!PwLmAW{@NG%bq?qe)hpr?n0ohCd z1Fe4}WobLW+SV>(0x!b@9wh>>jvzdbvXCko9^%n_iwx}r(e%eK!F>VO8)Q1F!Ex^Y z;St@{h25Qw*uN72@BqKDM1GRwON`05WIBrD4umD3D+n+TZ|C>%N{&qedcreF0@~8J zAdJy`s-RGn9INq^9BeWi0%9{z&jSqT+5?PrX17bFT2!tclX`-PpF=^Id%`l4i5L86 zo^bHabHimpAb^9XtW^4?rhX$CWCq0h&*_q(W{?E*q)}?cG+KG-mILau!U|W080?7j zIOZK2ei3+$3oz(RKq~#A;Mm+ub?2b2svC{Q-bUxOQB(bm8#&takag?QXQ*y zq)1LK5#G(dYkq-PgHJo!r6s9;S?Ow6*9;mSnXW3TYZd;2X8GR^sWKWTD#2yq98HgS zk6h<+gRT3nMA1U&_>dj|0$g1;piAACL78R49!}^tyfBZ(hu+k;le)5Z2Q5XuQyh{L zlM`7W5(h(i{^z^H>a`uEYPT5|>VRH!v{=A=Q{>UN2R?Zw2?=G*>{fsI~ zb<1cFa1q6w^)wm-;A4W;JHO6?J)+Kz2Yy~6Enn_Ga#zSd)NcQq^^q75hbJ%zOd1#O zJS1uUJ8we%o32wo$n0kK0StD>VEZqoDDpstk?y#Ht-2ylRM$`P#d_Ao-f49E}kAR>4>u7za`AHQQ@7ma>A*^f;V2jkyU zfL*fXptgQYl7JxKr37&>wzD0M7eSWK1eZ?;=>b`b;Q{qul=}r{SK|#){8Ghz$zo9Q z!~)(XyaH{Hr!?_SLqHfGSibF$`ps4%fc_xQA;7Uzy(|df{sVt_y z4odL?@9~y6!AJWEAwXNVAVIJD#DrKRXn-}yk$B>6Gwt)f34^;53HWeVxCsGxF~xvN z{iy;k=$Zg4{q$^$0<_&{zHTwfMmZ&mjPRnV-um* zO&fgNMEVn=i9|x!>184S9-s*@jmd&ttary!f*4c}*dle++s!pNrA-I{4FT6<;RaaF zV(cI-iQr`>10$C)e&5Z28j=bbr17)%Kn0CGI_7*@3>NK@Ac8S_0rpETv9`w}Ly{yk zRe5(v4@iG;wJt?Cz!>Qe!1`^o31d+0cIs_6*Wm5={25P;z+a#0d}hpP#V-S5Qf%NQ zS!~Vm5MZ}cbqm^U%0P z5s*TSq^?}Ka>CdTixzr@hY&)M49F`H5>TfQ=SUV$_DdH1SxPfWG9{J`ksg~QNrG*i zypE6W*Y$I z-Si4AhrytshT9sCuY2va*KQv_e*B;5;qcLJd^^-*c=kHFpJy*ywrtWh*Ie_{)`&=R zKht~fz4z*^x8C{^U3U}B2aPl7+pw)0nt-o+U(l~#zjG!}o_qy;$lDn{)vMG(GM<0E3 zE`3uU9}QR4)$}E+efxIIojdnGXceFMb#K(ViSz{v7A$GkuAM%I$Wqg$O&d?gR0iBE z3@hUin)>wVlh4;Wc<|u9*|TRqLTvKBlGjrz5MG}<6KdLq)y#0Y! zdyJ&T0_?NTKAS_}ZzlQa1TX;P`t|Eq10cG|uW81Y#)CW{@6%5|-POK*dkx~TW5?8` zmtNY3j^7={15no({@ioV%^E#=^r)1S6m{an3CLY3kuaD%D2Ti!;3LvxOA(Ot_Svoy8#41JbLu#i78X2OeZitrrX+LV8;t;*4$tm;_St7&^8EA9 z&+pQuOWRudo-|0H|2OB?*Ijqr&zsl_e2Huk0$zRf)pPUn^C2OrMtanW6)WDDHEY&< zy3229#`pF8(s+J|#t?vK#s7~m^s&btn@)iLb9#C@dr-~Zy?ZaX`R1FyY*KUgX}l!} zNdDl14?fDx&Ak{|4+tnMEG)V0w%aBjK79BKx<_OQv4Ub_2*Bf~(cFt8C-V zu>|0BBp8DyOqg){-FMπ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 z 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 u6 + + + + + diff --git a/samples/browseable/WatchFace/Wearable/res/layout/color_picker_item.xml b/samples/browseable/WatchFace/Wearable/res/layout/color_picker_item.xml new file mode 100644 index 000000000..9b07e2aa6 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/res/layout/color_picker_item.xml @@ -0,0 +1,38 @@ + + + + + + + + \ No newline at end of file diff --git a/samples/browseable/WatchFace/Wearable/res/values/color.xml b/samples/browseable/WatchFace/Wearable/res/values/color.xml new file mode 100644 index 000000000..0da08ed8b --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/res/values/color.xml @@ -0,0 +1,23 @@ + + + + #aaaaa0 + #aaaaa0 + #ffffff + #959595 + #000000 + #424242 + diff --git a/samples/browseable/WatchFace/Wearable/res/values/dimens.xml b/samples/browseable/WatchFace/Wearable/res/values/dimens.xml new file mode 100644 index 000000000..8f04e56de --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/res/values/dimens.xml @@ -0,0 +1,26 @@ + + + + 40dp + 45dp + 25dp + 30dp + 15dp + 25dp + 90dp + 32dp + 12dp + diff --git a/samples/browseable/WatchFace/Wearable/res/values/strings.xml b/samples/browseable/WatchFace/Wearable/res/values/strings.xml new file mode 100644 index 000000000..e54591fd3 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/res/values/strings.xml @@ -0,0 +1,51 @@ + + + + WatchFace + Sample Tilt + Sample Analog + Sample Sweep + Sample Card Bounds + Sample Digital + Background color + Digital watch face configuration + AM + PM + Sample Calendar + + <br><br><br>You have <b>%1$d</b> meeting in the next 24 hours. + <br><br><br>You have <b>%1$d</b> meetings in the next 24 hours. + + + + Black + Blue + Gray + Green + Navy + Red + White + + + @string/color_black + @string/color_blue + @string/color_gray + @string/color_green + @string/color_navy + @string/color_red + @string/color_white + + diff --git a/samples/browseable/WatchFace/Wearable/res/xml/watch_face.xml b/samples/browseable/WatchFace/Wearable/res/xml/watch_face.xml new file mode 100644 index 000000000..aa2e34382 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/res/xml/watch_face.xml @@ -0,0 +1,16 @@ + + + diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/AnalogWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/AnalogWatchFaceService.java new file mode 100644 index 000000000..f0fb4f582 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/AnalogWatchFaceService.java @@ -0,0 +1,334 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.wearable.watchface.CanvasWatchFaceService; +import android.support.wearable.watchface.WatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.text.format.Time; +import android.util.Log; +import android.view.SurfaceHolder; + +import java.util.TimeZone; +import java.util.concurrent.TimeUnit; + +/** + * Sample analog watch face with a ticking second hand. In ambient mode, the second hand isn't + * shown. On devices with low-bit ambient mode, the hands are drawn without anti-aliasing in ambient + * mode. The watch face is drawn with less contrast in mute mode. + * + * {@link SweepWatchFaceService} is similar but has a sweep second hand. + */ +public class AnalogWatchFaceService extends CanvasWatchFaceService { + private static final String TAG = "AnalogWatchFaceService"; + + /** + * Update rate in milliseconds for interactive mode. We update once a second to advance the + * second hand. + */ + private static final long INTERACTIVE_UPDATE_RATE_MS = TimeUnit.SECONDS.toMillis(1); + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends CanvasWatchFaceService.Engine { + static final int MSG_UPDATE_TIME = 0; + + Paint mHourPaint; + Paint mMinutePaint; + Paint mSecondPaint; + Paint mTickPaint; + boolean mMute; + Time mTime; + + /** Handler to update the time once a second in interactive mode. */ + final Handler mUpdateTimeHandler = new Handler() { + @Override + public void handleMessage(Message message) { + switch (message.what) { + case MSG_UPDATE_TIME: + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "updating time"); + } + invalidate(); + if (shouldTimerBeRunning()) { + long timeMs = System.currentTimeMillis(); + long delayMs = INTERACTIVE_UPDATE_RATE_MS + - (timeMs % INTERACTIVE_UPDATE_RATE_MS); + mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs); + } + break; + } + } + }; + + final BroadcastReceiver mTimeZoneReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mTime.clear(intent.getStringExtra("time-zone")); + mTime.setToNow(); + } + }; + boolean mRegisteredTimeZoneReceiver = false; + + /** + * Whether the display supports fewer bits for each color in ambient mode. When true, we + * disable anti-aliasing in ambient mode. + */ + boolean mLowBitAmbient; + + Bitmap mBackgroundBitmap; + Bitmap mBackgroundScaledBitmap; + + @Override + public void onCreate(SurfaceHolder holder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(holder); + + setWatchFaceStyle(new WatchFaceStyle.Builder(AnalogWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setShowSystemUiTime(false) + .build()); + + Resources resources = AnalogWatchFaceService.this.getResources(); + Drawable backgroundDrawable = resources.getDrawable(R.drawable.bg); + mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap(); + + mHourPaint = new Paint(); + mHourPaint.setARGB(255, 200, 200, 200); + mHourPaint.setStrokeWidth(5.f); + mHourPaint.setAntiAlias(true); + mHourPaint.setStrokeCap(Paint.Cap.ROUND); + + mMinutePaint = new Paint(); + mMinutePaint.setARGB(255, 200, 200, 200); + mMinutePaint.setStrokeWidth(3.f); + mMinutePaint.setAntiAlias(true); + mMinutePaint.setStrokeCap(Paint.Cap.ROUND); + + mSecondPaint = new Paint(); + mSecondPaint.setARGB(255, 255, 0, 0); + mSecondPaint.setStrokeWidth(2.f); + mSecondPaint.setAntiAlias(true); + mSecondPaint.setStrokeCap(Paint.Cap.ROUND); + + mTickPaint = new Paint(); + mTickPaint.setARGB(100, 255, 255, 255); + mTickPaint.setStrokeWidth(2.f); + mTickPaint.setAntiAlias(true); + + mTime = new Time(); + } + + @Override + public void onDestroy() { + mUpdateTimeHandler.removeMessages(MSG_UPDATE_TIME); + super.onDestroy(); + } + + @Override + public void onPropertiesChanged(Bundle properties) { + super.onPropertiesChanged(properties); + mLowBitAmbient = properties.getBoolean(PROPERTY_LOW_BIT_AMBIENT, false); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onPropertiesChanged: low-bit ambient = " + mLowBitAmbient); + } + } + + @Override + public void onTimeTick() { + super.onTimeTick(); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onTimeTick: ambient = " + isInAmbientMode()); + } + invalidate(); + } + + @Override + public void onAmbientModeChanged(boolean inAmbientMode) { + super.onAmbientModeChanged(inAmbientMode); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onAmbientModeChanged: " + inAmbientMode); + } + if (mLowBitAmbient) { + boolean antiAlias = !inAmbientMode; + mHourPaint.setAntiAlias(antiAlias); + mMinutePaint.setAntiAlias(antiAlias); + mSecondPaint.setAntiAlias(antiAlias); + mTickPaint.setAntiAlias(antiAlias); + } + invalidate(); + + // Whether the timer should be running depends on whether we're in ambient mode (as well + // as whether we're visible), so we may need to start or stop the timer. + updateTimer(); + } + + @Override + public void onInterruptionFilterChanged(int interruptionFilter) { + super.onInterruptionFilterChanged(interruptionFilter); + boolean inMuteMode = (interruptionFilter == WatchFaceService.INTERRUPTION_FILTER_NONE); + if (mMute != inMuteMode) { + mMute = inMuteMode; + mHourPaint.setAlpha(inMuteMode ? 100 : 255); + mMinutePaint.setAlpha(inMuteMode ? 100 : 255); + mSecondPaint.setAlpha(inMuteMode ? 80 : 255); + invalidate(); + } + } + + @Override + public void onDraw(Canvas canvas, Rect bounds) { + mTime.setToNow(); + + int width = bounds.width(); + int height = bounds.height(); + + // Draw the background, scaled to fit. + if (mBackgroundScaledBitmap == null + || mBackgroundScaledBitmap.getWidth() != width + || mBackgroundScaledBitmap.getHeight() != height) { + mBackgroundScaledBitmap = Bitmap.createScaledBitmap(mBackgroundBitmap, + width, height, true /* filter */); + } + canvas.drawBitmap(mBackgroundScaledBitmap, 0, 0, null); + + // Find the center. Ignore the window insets so that, on round watches with a + // "chin", the watch face is centered on the entire screen, not just the usable + // portion. + float centerX = width / 2f; + float centerY = height / 2f; + + // Draw the ticks. + float innerTickRadius = centerX - 10; + float outerTickRadius = centerX; + for (int tickIndex = 0; tickIndex < 12; tickIndex++) { + float tickRot = (float) (tickIndex * Math.PI * 2 / 12); + float innerX = (float) Math.sin(tickRot) * innerTickRadius; + float innerY = (float) -Math.cos(tickRot) * innerTickRadius; + float outerX = (float) Math.sin(tickRot) * outerTickRadius; + float outerY = (float) -Math.cos(tickRot) * outerTickRadius; + canvas.drawLine(centerX + innerX, centerY + innerY, + centerX + outerX, centerY + outerY, mTickPaint); + } + + float secRot = mTime.second / 30f * (float) Math.PI; + int minutes = mTime.minute; + float minRot = minutes / 30f * (float) Math.PI; + float hrRot = ((mTime.hour + (minutes / 60f)) / 6f ) * (float) Math.PI; + + float secLength = centerX - 20; + float minLength = centerX - 40; + float hrLength = centerX - 80; + + if (!isInAmbientMode()) { + float secX = (float) Math.sin(secRot) * secLength; + float secY = (float) -Math.cos(secRot) * secLength; + canvas.drawLine(centerX, centerY, centerX + secX, centerY + secY, mSecondPaint); + } + + float minX = (float) Math.sin(minRot) * minLength; + float minY = (float) -Math.cos(minRot) * minLength; + canvas.drawLine(centerX, centerY, centerX + minX, centerY + minY, mMinutePaint); + + float hrX = (float) Math.sin(hrRot) * hrLength; + float hrY = (float) -Math.cos(hrRot) * hrLength; + canvas.drawLine(centerX, centerY, centerX + hrX, centerY + hrY, mHourPaint); + } + + @Override + public void onVisibilityChanged(boolean visible) { + super.onVisibilityChanged(visible); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onVisibilityChanged: " + visible); + } + + if (visible) { + registerReceiver(); + + // Update time zone in case it changed while we weren't visible. + mTime.clear(TimeZone.getDefault().getID()); + mTime.setToNow(); + } else { + unregisterReceiver(); + } + + // Whether the timer should be running depends on whether we're visible (as well as + // whether we're in ambient mode), so we may need to start or stop the timer. + updateTimer(); + } + + private void registerReceiver() { + if (mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = true; + IntentFilter filter = new IntentFilter(Intent.ACTION_TIMEZONE_CHANGED); + AnalogWatchFaceService.this.registerReceiver(mTimeZoneReceiver, filter); + } + + private void unregisterReceiver() { + if (!mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = false; + AnalogWatchFaceService.this.unregisterReceiver(mTimeZoneReceiver); + } + + /** + * Starts the {@link #mUpdateTimeHandler} timer if it should be running and isn't currently + * or stops it if it shouldn't be running but currently is. + */ + private void updateTimer() { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "updateTimer"); + } + mUpdateTimeHandler.removeMessages(MSG_UPDATE_TIME); + if (shouldTimerBeRunning()) { + mUpdateTimeHandler.sendEmptyMessage(MSG_UPDATE_TIME); + } + } + + /** + * Returns whether the {@link #mUpdateTimeHandler} timer should be running. The timer should + * only run when we're visible and in interactive mode. + */ + private boolean shouldTimerBeRunning() { + return isVisible() && !isInAmbientMode(); + } + + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CalendarWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CalendarWatchFaceService.java new file mode 100644 index 000000000..a8ab95568 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CalendarWatchFaceService.java @@ -0,0 +1,232 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.content.BroadcastReceiver; +import android.content.ContentUris; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.database.Cursor; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Rect; +import android.net.Uri; +import android.os.AsyncTask; +import android.os.Handler; +import android.os.Message; +import android.os.PowerManager; +import android.support.wearable.provider.WearableCalendarContract; +import android.support.wearable.watchface.CanvasWatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.text.DynamicLayout; +import android.text.Editable; +import android.text.Html; +import android.text.Layout; +import android.text.SpannableStringBuilder; +import android.text.TextPaint; +import android.text.format.DateUtils; +import android.util.Log; +import android.view.SurfaceHolder; + +/** + * Proof of concept sample watch face that demonstrates how a watch face can load calendar data. + */ +public class CalendarWatchFaceService extends CanvasWatchFaceService { + private static final String TAG = "CalendarWatchFace"; + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends CanvasWatchFaceService.Engine { + + static final int BACKGROUND_COLOR = Color.BLACK; + static final int FOREGROUND_COLOR = Color.WHITE; + static final int TEXT_SIZE = 25; + static final int MSG_LOAD_MEETINGS = 0; + + /** Editable string containing the text to draw with the number of meetings in bold. */ + final Editable mEditable = new SpannableStringBuilder(); + + /** Width specified when {@link #mLayout} was created. */ + int mLayoutWidth; + + /** Layout to wrap {@link #mEditable} onto multiple lines. */ + DynamicLayout mLayout; + + /** Paint used to draw text. */ + final TextPaint mTextPaint = new TextPaint(); + + int mNumMeetings; + + private AsyncTask mLoadMeetingsTask; + + /** Handler to load the meetings once a minute in interactive mode. */ + final Handler mLoadMeetingsHandler = new Handler() { + @Override + public void handleMessage(Message message) { + switch (message.what) { + case MSG_LOAD_MEETINGS: + cancelLoadMeetingTask(); + mLoadMeetingsTask = new LoadMeetingsTask(); + mLoadMeetingsTask.execute(); + break; + } + } + }; + + private boolean mIsReceiverRegistered; + + private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_PROVIDER_CHANGED.equals(intent.getAction()) + && WearableCalendarContract.CONTENT_URI.equals(intent.getData())) { + cancelLoadMeetingTask(); + mLoadMeetingsHandler.sendEmptyMessage(MSG_LOAD_MEETINGS); + } + } + }; + + @Override + public void onCreate(SurfaceHolder holder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(holder); + setWatchFaceStyle(new WatchFaceStyle.Builder(CalendarWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_VARIABLE) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setShowSystemUiTime(false) + .build()); + + mTextPaint.setColor(FOREGROUND_COLOR); + mTextPaint.setTextSize(TEXT_SIZE); + + mLoadMeetingsHandler.sendEmptyMessage(MSG_LOAD_MEETINGS); + } + + @Override + public void onDestroy() { + mLoadMeetingsHandler.removeMessages(MSG_LOAD_MEETINGS); + cancelLoadMeetingTask(); + super.onDestroy(); + } + + @Override + public void onDraw(Canvas canvas, Rect bounds) { + // Create or update mLayout if necessary. + if (mLayout == null || mLayoutWidth != bounds.width()) { + mLayoutWidth = bounds.width(); + mLayout = new DynamicLayout(mEditable, mTextPaint, mLayoutWidth, + Layout.Alignment.ALIGN_NORMAL, 1 /* spacingMult */, 0 /* spacingAdd */, + false /* includePad */); + } + + // Update the contents of mEditable. + mEditable.clear(); + mEditable.append(Html.fromHtml(getResources().getQuantityString( + R.plurals.calendar_meetings, mNumMeetings, mNumMeetings))); + + // Draw the text on a solid background. + canvas.drawColor(BACKGROUND_COLOR); + mLayout.draw(canvas); + } + + @Override + public void onVisibilityChanged(boolean visible) { + super.onVisibilityChanged(visible); + if (visible) { + IntentFilter filter = new IntentFilter(Intent.ACTION_PROVIDER_CHANGED); + filter.addDataScheme("content"); + filter.addDataAuthority(WearableCalendarContract.AUTHORITY, null); + registerReceiver(mBroadcastReceiver, filter); + mIsReceiverRegistered = true; + + mLoadMeetingsHandler.sendEmptyMessage(MSG_LOAD_MEETINGS); + } else { + if (mIsReceiverRegistered) { + unregisterReceiver(mBroadcastReceiver); + mIsReceiverRegistered = false; + } + mLoadMeetingsHandler.removeMessages(MSG_LOAD_MEETINGS); + } + } + + private void onMeetingsLoaded(Integer result) { + if (result != null) { + mNumMeetings = result; + invalidate(); + } + } + + private void cancelLoadMeetingTask() { + if (mLoadMeetingsTask != null) { + mLoadMeetingsTask.cancel(true); + } + } + + /** + * Asynchronous task to load the meetings from the content provider and report the number of + * meetings back via {@link #onMeetingsLoaded}. + */ + private class LoadMeetingsTask extends AsyncTask { + private PowerManager.WakeLock mWakeLock; + + @Override + protected Integer doInBackground(Void... voids) { + PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); + mWakeLock = powerManager.newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, "CalendarWatchFaceWakeLock"); + mWakeLock.acquire(); + + long begin = System.currentTimeMillis(); + Uri.Builder builder = + WearableCalendarContract.Instances.CONTENT_URI.buildUpon(); + ContentUris.appendId(builder, begin); + ContentUris.appendId(builder, begin + DateUtils.DAY_IN_MILLIS); + final Cursor cursor = getContentResolver().query(builder.build(), + null, null, null, null); + int numMeetings = cursor.getCount(); + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "Num meetings: " + numMeetings); + } + return numMeetings; + } + + @Override + protected void onPostExecute(Integer result) { + releaseWakeLock(); + onMeetingsLoaded(result); + } + + @Override + protected void onCancelled() { + releaseWakeLock(); + } + + private void releaseWakeLock() { + if (mWakeLock != null) { + mWakeLock.release(); + mWakeLock = null; + } + } + } + } +} \ No newline at end of file diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CardBoundsWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CardBoundsWatchFaceService.java new file mode 100644 index 000000000..359d7af07 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/CardBoundsWatchFaceService.java @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.Rect; +import android.support.wearable.watchface.CanvasWatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.util.Log; +import android.view.SurfaceHolder; + +/** + * Proof of concept sample watch face that demonstrates how a watch face can detect where the peek + * card is. This watch face draws a border around the area where the peeking card is. + */ +public class CardBoundsWatchFaceService extends CanvasWatchFaceService { + + private static final String TAG = "CardBoundsWatchFace"; + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends CanvasWatchFaceService.Engine { + + static final int BORDER_WIDTH_PX = 5; + + final Rect mCardBounds = new Rect(); + final Paint mPaint = new Paint(); + + @Override + public void onCreate(SurfaceHolder holder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(holder); + setWatchFaceStyle(new WatchFaceStyle.Builder(CardBoundsWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_VARIABLE) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setShowSystemUiTime(true) + .setPeekOpacityMode(WatchFaceStyle.PEEK_OPACITY_MODE_TRANSLUCENT) + .build()); + } + + @Override + public void onAmbientModeChanged(boolean inAmbientMode) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onAmbientModeChanged: " + inAmbientMode); + } + super.onAmbientModeChanged(inAmbientMode); + invalidate(); + } + + @Override + public void onPeekCardPositionUpdate(Rect bounds) { + super.onPeekCardPositionUpdate(bounds); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onPeekCardPositionUpdate: " + bounds); + } + super.onPeekCardPositionUpdate(bounds); + if (!bounds.equals(mCardBounds)) { + mCardBounds.set(bounds); + invalidate(); + } + } + + @Override + public void onDraw(Canvas canvas, Rect bounds) { + // Clear screen. + canvas.drawColor(isInAmbientMode() ? Color.BLACK : Color.BLUE); + + // Draw border around card in interactive mode. + if (!isInAmbientMode()) { + mPaint.setColor(Color.MAGENTA); + canvas.drawRect(mCardBounds.left - BORDER_WIDTH_PX, + mCardBounds.top - BORDER_WIDTH_PX, + mCardBounds.right + BORDER_WIDTH_PX, + mCardBounds.bottom + BORDER_WIDTH_PX, mPaint); + } + + // Fill area under card. + mPaint.setColor(isInAmbientMode() ? Color.RED : Color.GREEN); + canvas.drawRect(mCardBounds, mPaint); + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceConfigListenerService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceConfigListenerService.java new file mode 100644 index 000000000..725c51aa8 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceConfigListenerService.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.os.Bundle; +import android.util.Log; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.wearable.DataMap; +import com.google.android.gms.wearable.MessageEvent; +import com.google.android.gms.wearable.Wearable; +import com.google.android.gms.wearable.WearableListenerService; + +import java.util.concurrent.TimeUnit; + +/** + * A {@link WearableListenerService} listening for {@link DigitalWatchFaceService} config messages + * and updating the config {@link com.google.android.gms.wearable.DataItem} accordingly. + */ +public class DigitalWatchFaceConfigListenerService extends WearableListenerService + implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { + private static final String TAG = "DigitalListenerService"; + + private GoogleApiClient mGoogleApiClient; + + @Override // WearableListenerService + public void onMessageReceived(MessageEvent messageEvent) { + if (!messageEvent.getPath().equals(DigitalWatchFaceUtil.PATH_WITH_FEATURE)) { + return; + } + byte[] rawData = messageEvent.getData(); + // It's allowed that the message carries only some of the keys used in the config DataItem + // and skips the ones that we don't want to change. + DataMap configKeysToOverwrite = DataMap.fromByteArray(rawData); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Received watch face config message: " + configKeysToOverwrite); + } + + if (mGoogleApiClient == null) { + mGoogleApiClient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this) + .addOnConnectionFailedListener(this).addApi(Wearable.API).build(); + } + if (!mGoogleApiClient.isConnected()) { + ConnectionResult connectionResult = + mGoogleApiClient.blockingConnect(30, TimeUnit.SECONDS); + + if (!connectionResult.isSuccess()) { + Log.e(TAG, "Failed to connect to GoogleApiClient."); + return; + } + } + + DigitalWatchFaceUtil.overwriteKeysInConfigDataMap(mGoogleApiClient, configKeysToOverwrite); + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnected(Bundle connectionHint) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnected: " + connectionHint); + } + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnectionSuspended(int cause) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionSuspended: " + cause); + } + } + + @Override // GoogleApiClient.OnConnectionFailedListener + public void onConnectionFailed(ConnectionResult result) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionFailed: " + result); + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceService.java new file mode 100644 index 000000000..b8b1314b8 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceService.java @@ -0,0 +1,605 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Resources; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.Typeface; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.support.wearable.watchface.CanvasWatchFaceService; +import android.support.wearable.watchface.WatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.text.format.Time; +import android.util.Log; +import android.view.SurfaceHolder; +import android.view.WindowInsets; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.wearable.DataApi; +import com.google.android.gms.wearable.DataEvent; +import com.google.android.gms.wearable.DataEventBuffer; +import com.google.android.gms.wearable.DataItem; +import com.google.android.gms.wearable.DataMap; +import com.google.android.gms.wearable.DataMapItem; +import com.google.android.gms.wearable.Wearable; + +import java.util.TimeZone; +import java.util.concurrent.TimeUnit; + +/** + * Sample digital watch face with blinking colons and seconds. In ambient mode, the seconds are + * replaced with an AM/PM indicator and the colons don't blink. On devices with low-bit ambient + * mode, the text is drawn without anti-aliasing in ambient mode. On devices which require burn-in + * protection, the hours are drawn in normal rather than bold. The time is drawn with less contrast + * and without seconds in mute mode. + */ +public class DigitalWatchFaceService extends CanvasWatchFaceService { + private static final String TAG = "DigitalWatchFaceService"; + + private static final Typeface BOLD_TYPEFACE = + Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD); + private static final Typeface NORMAL_TYPEFACE = + Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL); + + /** + * Update rate in milliseconds for normal (not ambient and not mute) mode. We update twice + * a second to blink the colons. + */ + private static final long NORMAL_UPDATE_RATE_MS = 500; + + /** + * Update rate in milliseconds for mute mode. We update every minute, like in ambient mode. + */ + private static final long MUTE_UPDATE_RATE_MS = TimeUnit.MINUTES.toMillis(1); + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends CanvasWatchFaceService.Engine implements DataApi.DataListener, + GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { + static final String COLON_STRING = ":"; + + /** Alpha value for drawing time when in mute mode. */ + static final int MUTE_ALPHA = 100; + + /** Alpha value for drawing time when not in mute mode. */ + static final int NORMAL_ALPHA = 255; + + static final int MSG_UPDATE_TIME = 0; + + /** How often {@link #mUpdateTimeHandler} ticks in milliseconds. */ + long mInteractiveUpdateRateMs = NORMAL_UPDATE_RATE_MS; + + /** Handler to update the time periodically in interactive mode. */ + final Handler mUpdateTimeHandler = new Handler() { + @Override + public void handleMessage(Message message) { + switch (message.what) { + case MSG_UPDATE_TIME: + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "updating time"); + } + invalidate(); + if (shouldTimerBeRunning()) { + long timeMs = System.currentTimeMillis(); + long delayMs = + mInteractiveUpdateRateMs - (timeMs % mInteractiveUpdateRateMs); + mUpdateTimeHandler.sendEmptyMessageDelayed(MSG_UPDATE_TIME, delayMs); + } + break; + } + } + }; + + GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(DigitalWatchFaceService.this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(Wearable.API) + .build(); + + final BroadcastReceiver mTimeZoneReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mTime.clear(intent.getStringExtra("time-zone")); + mTime.setToNow(); + } + }; + boolean mRegisteredTimeZoneReceiver = false; + + Paint mBackgroundPaint; + Paint mHourPaint; + Paint mMinutePaint; + Paint mSecondPaint; + Paint mAmPmPaint; + Paint mColonPaint; + float mColonWidth; + boolean mMute; + Time mTime; + boolean mShouldDrawColons; + float mXOffset; + float mYOffset; + String mAmString; + String mPmString; + int mInteractiveBackgroundColor = + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_BACKGROUND; + int mInteractiveHourDigitsColor = + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_HOUR_DIGITS; + int mInteractiveMinuteDigitsColor = + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_MINUTE_DIGITS; + int mInteractiveSecondDigitsColor = + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_SECOND_DIGITS; + + /** + * Whether the display supports fewer bits for each color in ambient mode. When true, we + * disable anti-aliasing in ambient mode. + */ + boolean mLowBitAmbient; + + @Override + public void onCreate(SurfaceHolder holder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(holder); + + setWatchFaceStyle(new WatchFaceStyle.Builder(DigitalWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_VARIABLE) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setShowSystemUiTime(false) + .build()); + Resources resources = DigitalWatchFaceService.this.getResources(); + mYOffset = resources.getDimension(R.dimen.digital_y_offset); + mAmString = resources.getString(R.string.digital_am); + mPmString = resources.getString(R.string.digital_pm); + + mBackgroundPaint = new Paint(); + mBackgroundPaint.setColor(mInteractiveBackgroundColor); + mHourPaint = createTextPaint(mInteractiveHourDigitsColor, BOLD_TYPEFACE); + mMinutePaint = createTextPaint(mInteractiveMinuteDigitsColor); + mSecondPaint = createTextPaint(mInteractiveSecondDigitsColor); + mAmPmPaint = createTextPaint(resources.getColor(R.color.digital_am_pm)); + mColonPaint = createTextPaint(resources.getColor(R.color.digital_colons)); + + mTime = new Time(); + } + + @Override + public void onDestroy() { + mUpdateTimeHandler.removeMessages(MSG_UPDATE_TIME); + super.onDestroy(); + } + + private Paint createTextPaint(int defaultInteractiveColor) { + return createTextPaint(defaultInteractiveColor, NORMAL_TYPEFACE); + } + + private Paint createTextPaint(int defaultInteractiveColor, Typeface typeface) { + Paint paint = new Paint(); + paint.setColor(defaultInteractiveColor); + paint.setTypeface(typeface); + paint.setAntiAlias(true); + return paint; + } + + @Override + public void onVisibilityChanged(boolean visible) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onVisibilityChanged: " + visible); + } + super.onVisibilityChanged(visible); + + if (visible) { + mGoogleApiClient.connect(); + + registerReceiver(); + + // Update time zone in case it changed while we weren't visible. + mTime.clear(TimeZone.getDefault().getID()); + mTime.setToNow(); + } else { + unregisterReceiver(); + + if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { + Wearable.DataApi.removeListener(mGoogleApiClient, this); + mGoogleApiClient.disconnect(); + } + } + + // Whether the timer should be running depends on whether we're visible (as well as + // whether we're in ambient mode), so we may need to start or stop the timer. + updateTimer(); + } + + private void registerReceiver() { + if (mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = true; + IntentFilter filter = new IntentFilter(Intent.ACTION_TIMEZONE_CHANGED); + DigitalWatchFaceService.this.registerReceiver(mTimeZoneReceiver, filter); + } + + private void unregisterReceiver() { + if (!mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = false; + DigitalWatchFaceService.this.unregisterReceiver(mTimeZoneReceiver); + } + + @Override + public void onApplyWindowInsets(WindowInsets insets) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onApplyWindowInsets: " + (insets.isRound() ? "round" : "square")); + } + super.onApplyWindowInsets(insets); + + // Load resources that have alternate values for round watches. + Resources resources = DigitalWatchFaceService.this.getResources(); + boolean isRound = insets.isRound(); + mXOffset = resources.getDimension(isRound + ? R.dimen.digital_x_offset_round : R.dimen.digital_x_offset); + float textSize = resources.getDimension(isRound + ? R.dimen.digital_text_size_round : R.dimen.digital_text_size); + float amPmSize = resources.getDimension(isRound + ? R.dimen.digital_am_pm_size_round : R.dimen.digital_am_pm_size); + + mHourPaint.setTextSize(textSize); + mMinutePaint.setTextSize(textSize); + mSecondPaint.setTextSize(textSize); + mAmPmPaint.setTextSize(amPmSize); + mColonPaint.setTextSize(textSize); + + mColonWidth = mColonPaint.measureText(COLON_STRING); + } + + @Override + public void onPropertiesChanged(Bundle properties) { + super.onPropertiesChanged(properties); + + boolean burnInProtection = properties.getBoolean(PROPERTY_BURN_IN_PROTECTION, false); + mHourPaint.setTypeface(burnInProtection ? NORMAL_TYPEFACE : BOLD_TYPEFACE); + + mLowBitAmbient = properties.getBoolean(PROPERTY_LOW_BIT_AMBIENT, false); + + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onPropertiesChanged: burn-in protection = " + burnInProtection + + ", low-bit ambient = " + mLowBitAmbient); + } + } + + @Override + public void onTimeTick() { + super.onTimeTick(); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onTimeTick: ambient = " + isInAmbientMode()); + } + invalidate(); + } + + @Override + public void onAmbientModeChanged(boolean inAmbientMode) { + super.onAmbientModeChanged(inAmbientMode); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onAmbientModeChanged: " + inAmbientMode); + } + adjustPaintColorToCurrentMode(mBackgroundPaint, mInteractiveBackgroundColor, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_BACKGROUND); + adjustPaintColorToCurrentMode(mHourPaint, mInteractiveHourDigitsColor, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_HOUR_DIGITS); + adjustPaintColorToCurrentMode(mMinutePaint, mInteractiveMinuteDigitsColor, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_MINUTE_DIGITS); + // Actually, the seconds are not rendered in the ambient mode, so we could pass just any + // value as ambientColor here. + adjustPaintColorToCurrentMode(mSecondPaint, mInteractiveSecondDigitsColor, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_SECOND_DIGITS); + + if (mLowBitAmbient) { + boolean antiAlias = !inAmbientMode; + mHourPaint.setAntiAlias(antiAlias); + mMinutePaint.setAntiAlias(antiAlias); + mSecondPaint.setAntiAlias(antiAlias); + mAmPmPaint.setAntiAlias(antiAlias); + mColonPaint.setAntiAlias(antiAlias); + } + invalidate(); + + // Whether the timer should be running depends on whether we're in ambient mode (as well + // as whether we're visible), so we may need to start or stop the timer. + updateTimer(); + } + + private void adjustPaintColorToCurrentMode(Paint paint, int interactiveColor, + int ambientColor) { + paint.setColor(isInAmbientMode() ? ambientColor : interactiveColor); + } + + @Override + public void onInterruptionFilterChanged(int interruptionFilter) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onInterruptionFilterChanged: " + interruptionFilter); + } + super.onInterruptionFilterChanged(interruptionFilter); + + boolean inMuteMode = interruptionFilter == WatchFaceService.INTERRUPTION_FILTER_NONE; + // We only need to update once a minute in mute mode. + setInteractiveUpdateRateMs(inMuteMode ? MUTE_UPDATE_RATE_MS : NORMAL_UPDATE_RATE_MS); + + if (mMute != inMuteMode) { + mMute = inMuteMode; + int alpha = inMuteMode ? MUTE_ALPHA : NORMAL_ALPHA; + mHourPaint.setAlpha(alpha); + mMinutePaint.setAlpha(alpha); + mColonPaint.setAlpha(alpha); + mAmPmPaint.setAlpha(alpha); + invalidate(); + } + } + + public void setInteractiveUpdateRateMs(long updateRateMs) { + if (updateRateMs == mInteractiveUpdateRateMs) { + return; + } + mInteractiveUpdateRateMs = updateRateMs; + + // Stop and restart the timer so the new update rate takes effect immediately. + if (shouldTimerBeRunning()) { + updateTimer(); + } + } + + private void updatePaintIfInteractive(Paint paint, int interactiveColor) { + if (!isInAmbientMode() && paint != null) { + paint.setColor(interactiveColor); + } + } + + private void setInteractiveBackgroundColor(int color) { + mInteractiveBackgroundColor = color; + updatePaintIfInteractive(mBackgroundPaint, color); + } + + private void setInteractiveHourDigitsColor(int color) { + mInteractiveHourDigitsColor = color; + updatePaintIfInteractive(mHourPaint, color); + } + + private void setInteractiveMinuteDigitsColor(int color) { + mInteractiveMinuteDigitsColor = color; + updatePaintIfInteractive(mMinutePaint, color); + } + + private void setInteractiveSecondDigitsColor(int color) { + mInteractiveSecondDigitsColor = color; + updatePaintIfInteractive(mSecondPaint, color); + } + + private String formatTwoDigitNumber(int hour) { + return String.format("%02d", hour); + } + + private int convertTo12Hour(int hour) { + int result = hour % 12; + return (result == 0) ? 12 : result; + } + + private String getAmPmString(int hour) { + return (hour < 12) ? mAmString : mPmString; + } + + @Override + public void onDraw(Canvas canvas, Rect bounds) { + mTime.setToNow(); + + // Show colons for the first half of each second so the colons blink on when the time + // updates. + mShouldDrawColons = (System.currentTimeMillis() % 1000) < 500; + + // Draw the background. + canvas.drawRect(0, 0, bounds.width(), bounds.height(), mBackgroundPaint); + + // Draw the hours. + float x = mXOffset; + String hourString = String.valueOf(convertTo12Hour(mTime.hour)); + canvas.drawText(hourString, x, mYOffset, mHourPaint); + x += mHourPaint.measureText(hourString); + + // In ambient and mute modes, always draw the first colon. Otherwise, draw the + // first colon for the first half of each second. + if (isInAmbientMode() || mMute || mShouldDrawColons) { + canvas.drawText(COLON_STRING, x, mYOffset, mColonPaint); + } + x += mColonWidth; + + // Draw the minutes. + String minuteString = formatTwoDigitNumber(mTime.minute); + canvas.drawText(minuteString, x, mYOffset, mMinutePaint); + x += mMinutePaint.measureText(minuteString); + + // In ambient and mute modes, draw AM/PM. Otherwise, draw a second blinking + // colon followed by the seconds. + if (isInAmbientMode() || mMute) { + x += mColonWidth; + canvas.drawText(getAmPmString(mTime.hour), x, mYOffset, mAmPmPaint); + } else { + if (mShouldDrawColons) { + canvas.drawText(COLON_STRING, x, mYOffset, mColonPaint); + } + x += mColonWidth; + canvas.drawText(formatTwoDigitNumber(mTime.second), x, mYOffset, + mSecondPaint); + } + } + + /** + * Starts the {@link #mUpdateTimeHandler} timer if it should be running and isn't currently + * or stops it if it shouldn't be running but currently is. + */ + private void updateTimer() { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "updateTimer"); + } + mUpdateTimeHandler.removeMessages(MSG_UPDATE_TIME); + if (shouldTimerBeRunning()) { + mUpdateTimeHandler.sendEmptyMessage(MSG_UPDATE_TIME); + } + } + + /** + * Returns whether the {@link #mUpdateTimeHandler} timer should be running. The timer should + * only run when we're visible and in interactive mode. + */ + private boolean shouldTimerBeRunning() { + return isVisible() && !isInAmbientMode(); + } + + private void updateConfigDataItemAndUiOnStartup() { + DigitalWatchFaceUtil.fetchConfigDataMap(mGoogleApiClient, + new DigitalWatchFaceUtil.FetchConfigDataMapCallback() { + @Override + public void onConfigDataMapFetched(DataMap startupConfig) { + // If the DataItem hasn't been created yet or some keys are missing, + // use the default values. + setDefaultValuesForMissingConfigKeys(startupConfig); + DigitalWatchFaceUtil.putConfigDataItem(mGoogleApiClient, startupConfig); + + updateUiForConfigDataMap(startupConfig); + } + } + ); + } + + private void setDefaultValuesForMissingConfigKeys(DataMap config) { + addIntKeyIfMissing(config, DigitalWatchFaceUtil.KEY_BACKGROUND_COLOR, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_BACKGROUND); + addIntKeyIfMissing(config, DigitalWatchFaceUtil.KEY_HOURS_COLOR, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_HOUR_DIGITS); + addIntKeyIfMissing(config, DigitalWatchFaceUtil.KEY_MINUTES_COLOR, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_MINUTE_DIGITS); + addIntKeyIfMissing(config, DigitalWatchFaceUtil.KEY_SECONDS_COLOR, + DigitalWatchFaceUtil.COLOR_VALUE_DEFAULT_AND_AMBIENT_SECOND_DIGITS); + } + + private void addIntKeyIfMissing(DataMap config, String key, int color) { + if (!config.containsKey(key)) { + config.putInt(key, color); + } + } + + @Override // DataApi.DataListener + public void onDataChanged(DataEventBuffer dataEvents) { + try { + for (DataEvent dataEvent : dataEvents) { + if (dataEvent.getType() != DataEvent.TYPE_CHANGED) { + continue; + } + + DataItem dataItem = dataEvent.getDataItem(); + if (!dataItem.getUri().getPath().equals( + DigitalWatchFaceUtil.PATH_WITH_FEATURE)) { + continue; + } + + DataMapItem dataMapItem = DataMapItem.fromDataItem(dataItem); + DataMap config = dataMapItem.getDataMap(); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Config DataItem updated:" + config); + } + updateUiForConfigDataMap(config); + } + } finally { + dataEvents.close(); + } + } + + private void updateUiForConfigDataMap(final DataMap config) { + boolean uiUpdated = false; + for (String configKey : config.keySet()) { + if (!config.containsKey(configKey)) { + continue; + } + int color = config.getInt(configKey); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "Found watch face config key: " + configKey + " -> " + + Integer.toHexString(color)); + } + if (updateUiForKey(configKey, color)) { + uiUpdated = true; + } + } + if (uiUpdated) { + invalidate(); + } + } + + /** + * Updates the color of a UI item according to the given {@code configKey}. Does nothing if + * {@code configKey} isn't recognized. + * + * @return whether UI has been updated + */ + private boolean updateUiForKey(String configKey, int color) { + if (configKey.equals(DigitalWatchFaceUtil.KEY_BACKGROUND_COLOR)) { + setInteractiveBackgroundColor(color); + } else if (configKey.equals(DigitalWatchFaceUtil.KEY_HOURS_COLOR)) { + setInteractiveHourDigitsColor(color); + } else if (configKey.equals(DigitalWatchFaceUtil.KEY_MINUTES_COLOR)) { + setInteractiveMinuteDigitsColor(color); + } else if (configKey.equals(DigitalWatchFaceUtil.KEY_SECONDS_COLOR)) { + setInteractiveSecondDigitsColor(color); + } else { + Log.w(TAG, "Ignoring unknown config key: " + configKey); + return false; + } + return true; + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnected(Bundle connectionHint) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnected: " + connectionHint); + } + Wearable.DataApi.addListener(mGoogleApiClient, Engine.this); + updateConfigDataItemAndUiOnStartup(); + } + + @Override // GoogleApiClient.ConnectionCallbacks + public void onConnectionSuspended(int cause) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionSuspended: " + cause); + } + } + + @Override // GoogleApiClient.OnConnectionFailedListener + public void onConnectionFailed(ConnectionResult result) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionFailed: " + result); + } + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceUtil.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceUtil.java new file mode 100644 index 000000000..1c4af700b --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceUtil.java @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.graphics.Color; +import android.net.Uri; +import android.util.Log; + +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.ResultCallback; +import com.google.android.gms.wearable.DataApi; +import com.google.android.gms.wearable.DataItem; +import com.google.android.gms.wearable.DataMap; +import com.google.android.gms.wearable.DataMapItem; +import com.google.android.gms.wearable.NodeApi; +import com.google.android.gms.wearable.PutDataMapRequest; +import com.google.android.gms.wearable.Wearable; + +public final class DigitalWatchFaceUtil { + private static final String TAG = "DigitalWatchFaceUtil"; + + /** + * The {@link DataMap} key for {@link DigitalWatchFaceService} background color name. + * The color name must be a {@link String} recognized by {@link Color#parseColor}. + */ + public static final String KEY_BACKGROUND_COLOR = "BACKGROUND_COLOR"; + + /** + * The {@link DataMap} key for {@link DigitalWatchFaceService} hour digits color name. + * The color name must be a {@link String} recognized by {@link Color#parseColor}. + */ + public static final String KEY_HOURS_COLOR = "HOURS_COLOR"; + + /** + * The {@link DataMap} key for {@link DigitalWatchFaceService} minute digits color name. + * The color name must be a {@link String} recognized by {@link Color#parseColor}. + */ + public static final String KEY_MINUTES_COLOR = "MINUTES_COLOR"; + + /** + * The {@link DataMap} key for {@link DigitalWatchFaceService} second digits color name. + * The color name must be a {@link String} recognized by {@link Color#parseColor}. + */ + public static final String KEY_SECONDS_COLOR = "SECONDS_COLOR"; + + /** + * The path for the {@link DataItem} containing {@link DigitalWatchFaceService} configuration. + */ + public static final String PATH_WITH_FEATURE = "/watch_face_config/Digital"; + + /** + * Name of the default interactive mode background color and the ambient mode background color. + */ + public static final String COLOR_NAME_DEFAULT_AND_AMBIENT_BACKGROUND = "Black"; + public static final int COLOR_VALUE_DEFAULT_AND_AMBIENT_BACKGROUND = + parseColor(COLOR_NAME_DEFAULT_AND_AMBIENT_BACKGROUND); + + /** + * Name of the default interactive mode hour digits color and the ambient mode hour digits + * color. + */ + public static final String COLOR_NAME_DEFAULT_AND_AMBIENT_HOUR_DIGITS = "White"; + public static final int COLOR_VALUE_DEFAULT_AND_AMBIENT_HOUR_DIGITS = + parseColor(COLOR_NAME_DEFAULT_AND_AMBIENT_HOUR_DIGITS); + + /** + * Name of the default interactive mode minute digits color and the ambient mode minute digits + * color. + */ + public static final String COLOR_NAME_DEFAULT_AND_AMBIENT_MINUTE_DIGITS = "White"; + public static final int COLOR_VALUE_DEFAULT_AND_AMBIENT_MINUTE_DIGITS = + parseColor(COLOR_NAME_DEFAULT_AND_AMBIENT_MINUTE_DIGITS); + + /** + * Name of the default interactive mode second digits color and the ambient mode second digits + * color. + */ + public static final String COLOR_NAME_DEFAULT_AND_AMBIENT_SECOND_DIGITS = "Gray"; + public static final int COLOR_VALUE_DEFAULT_AND_AMBIENT_SECOND_DIGITS = + parseColor(COLOR_NAME_DEFAULT_AND_AMBIENT_SECOND_DIGITS); + + /** + * Callback interface to perform an action with the current config {@link DataMap} for + * {@link DigitalWatchFaceService}. + */ + public interface FetchConfigDataMapCallback { + /** + * Callback invoked with the current config {@link DataMap} for + * {@link DigitalWatchFaceService}. + */ + void onConfigDataMapFetched(DataMap config); + } + + private static int parseColor(String colorName) { + return Color.parseColor(colorName.toLowerCase()); + } + + /** + * Asynchronously fetches the current config {@link DataMap} for {@link DigitalWatchFaceService} + * and passes it to the given callback. + *

+ * If the current config {@link DataItem} doesn't exist, it isn't created and the callback + * receives an empty DataMap. + */ + public static void fetchConfigDataMap(final GoogleApiClient client, + final FetchConfigDataMapCallback callback) { + Wearable.NodeApi.getLocalNode(client).setResultCallback( + new ResultCallback() { + @Override + public void onResult(NodeApi.GetLocalNodeResult getLocalNodeResult) { + String localNode = getLocalNodeResult.getNode().getId(); + Uri uri = new Uri.Builder() + .scheme("wear") + .path(DigitalWatchFaceUtil.PATH_WITH_FEATURE) + .authority(localNode) + .build(); + Wearable.DataApi.getDataItem(client, uri) + .setResultCallback(new DataItemResultCallback(callback)); + } + } + ); + } + + /** + * Overwrites (or sets, if not present) the keys in the current config {@link DataItem} with + * the ones appearing in the given {@link DataMap}. If the config DataItem doesn't exist, + * it's created. + *

+ * It is allowed that only some of the keys used in the config DataItem appear in + * {@code configKeysToOverwrite}. The rest of the keys remains unmodified in this case. + */ + public static void overwriteKeysInConfigDataMap(final GoogleApiClient googleApiClient, + final DataMap configKeysToOverwrite) { + + DigitalWatchFaceUtil.fetchConfigDataMap(googleApiClient, + new FetchConfigDataMapCallback() { + @Override + public void onConfigDataMapFetched(DataMap currentConfig) { + DataMap overwrittenConfig = new DataMap(); + overwrittenConfig.putAll(currentConfig); + overwrittenConfig.putAll(configKeysToOverwrite); + DigitalWatchFaceUtil.putConfigDataItem(googleApiClient, overwrittenConfig); + } + } + ); + } + + /** + * Overwrites the current config {@link DataItem}'s {@link DataMap} with {@code newConfig}. + * If the config DataItem doesn't exist, it's created. + */ + public static void putConfigDataItem(GoogleApiClient googleApiClient, DataMap newConfig) { + PutDataMapRequest putDataMapRequest = PutDataMapRequest.create(PATH_WITH_FEATURE); + DataMap configToPut = putDataMapRequest.getDataMap(); + configToPut.putAll(newConfig); + Wearable.DataApi.putDataItem(googleApiClient, putDataMapRequest.asPutDataRequest()) + .setResultCallback(new ResultCallback() { + @Override + public void onResult(DataApi.DataItemResult dataItemResult) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "putDataItem result status: " + dataItemResult.getStatus()); + } + } + }); + } + + private static class DataItemResultCallback implements ResultCallback { + + private final FetchConfigDataMapCallback mCallback; + + public DataItemResultCallback(FetchConfigDataMapCallback callback) { + mCallback = callback; + } + + @Override + public void onResult(DataApi.DataItemResult dataItemResult) { + if (dataItemResult.getStatus().isSuccess()) { + if (dataItemResult.getDataItem() != null) { + DataItem configDataItem = dataItemResult.getDataItem(); + DataMapItem dataMapItem = DataMapItem.fromDataItem(configDataItem); + DataMap config = dataMapItem.getDataMap(); + mCallback.onConfigDataMapFetched(config); + } else { + mCallback.onConfigDataMapFetched(new DataMap()); + } + } + } + } + + private DigitalWatchFaceUtil() { } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceWearableConfigActivity.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceWearableConfigActivity.java new file mode 100644 index 000000000..4b309e6e2 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/DigitalWatchFaceWearableConfigActivity.java @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.animation.AnimatorSet; +import android.animation.ObjectAnimator; +import android.app.Activity; +import android.content.Context; +import android.graphics.Color; +import android.os.Bundle; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.support.wearable.view.BoxInsetLayout; +import android.support.wearable.view.CircledImageView; +import android.support.wearable.view.WearableListView; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsets; +import android.widget.LinearLayout; +import android.widget.TextView; + +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.wearable.DataMap; +import com.google.android.gms.wearable.Wearable; + +/** + * The watch-side config activity for {@link DigitalWatchFaceService}, which allows for setting the + * background color. + */ +public class DigitalWatchFaceWearableConfigActivity extends Activity implements + WearableListView.ClickListener, WearableListView.OnScrollListener { + private static final String TAG = "DigitalWatchFaceConfig"; + + private GoogleApiClient mGoogleApiClient; + private TextView mHeader; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_digital_config); + + mHeader = (TextView) findViewById(R.id.header); + WearableListView listView = (WearableListView) findViewById(R.id.color_picker); + BoxInsetLayout content = (BoxInsetLayout) findViewById(R.id.content); + // BoxInsetLayout adds padding by default on round devices. Add some on square devices. + content.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { + @Override + public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) { + if (!insets.isRound()) { + v.setPaddingRelative( + (int) getResources().getDimensionPixelSize(R.dimen.content_padding_start), + v.getPaddingTop(), + v.getPaddingEnd(), + v.getPaddingBottom()); + } + return v.onApplyWindowInsets(insets); + } + }); + + listView.setHasFixedSize(true); + listView.setClickListener(this); + listView.addOnScrollListener(this); + + String[] colors = getResources().getStringArray(R.array.color_array); + listView.setAdapter(new ColorListAdapter(colors)); + + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { + @Override + public void onConnected(Bundle connectionHint) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnected: " + connectionHint); + } + } + + @Override + public void onConnectionSuspended(int cause) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionSuspended: " + cause); + } + } + }) + .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { + @Override + public void onConnectionFailed(ConnectionResult result) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onConnectionFailed: " + result); + } + } + }) + .addApi(Wearable.API) + .build(); + } + + @Override + protected void onStart() { + super.onStart(); + mGoogleApiClient.connect(); + } + + @Override + protected void onStop() { + if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + } + super.onStop(); + } + + @Override // WearableListView.ClickListener + public void onClick(WearableListView.ViewHolder viewHolder) { + ColorItemViewHolder colorItemViewHolder = (ColorItemViewHolder) viewHolder; + updateConfigDataItem(colorItemViewHolder.mColorItem.getColor()); + finish(); + } + + @Override // WearableListView.ClickListener + public void onTopEmptyRegionClick() {} + + @Override // WearableListView.OnScrollListener + public void onScroll(int scroll) {} + + @Override // WearableListView.OnScrollListener + public void onAbsoluteScrollChange(int scroll) { + float newTranslation = Math.min(-scroll, 0); + mHeader.setTranslationY(newTranslation); + } + + @Override // WearableListView.OnScrollListener + public void onScrollStateChanged(int scrollState) {} + + @Override // WearableListView.OnScrollListener + public void onCentralPositionChanged(int centralPosition) {} + + private void updateConfigDataItem(final int backgroundColor) { + DataMap configKeysToOverwrite = new DataMap(); + configKeysToOverwrite.putInt(DigitalWatchFaceUtil.KEY_BACKGROUND_COLOR, + backgroundColor); + DigitalWatchFaceUtil.overwriteKeysInConfigDataMap(mGoogleApiClient, configKeysToOverwrite); + } + + private class ColorListAdapter extends WearableListView.Adapter { + private final String[] mColors; + + public ColorListAdapter(String[] colors) { + mColors = colors; + } + + @Override + public ColorItemViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + return new ColorItemViewHolder(new ColorItem(parent.getContext())); + } + + @Override + public void onBindViewHolder(WearableListView.ViewHolder holder, int position) { + ColorItemViewHolder colorItemViewHolder = (ColorItemViewHolder) holder; + String colorName = mColors[position]; + colorItemViewHolder.mColorItem.setColor(colorName); + + RecyclerView.LayoutParams layoutParams = + new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + int colorPickerItemMargin = (int) getResources() + .getDimension(R.dimen.digital_config_color_picker_item_margin); + // Add margins to first and last item to make it possible for user to tap on them. + if (position == 0) { + layoutParams.setMargins(0, colorPickerItemMargin, 0, 0); + } else if (position == mColors.length - 1) { + layoutParams.setMargins(0, 0, 0, colorPickerItemMargin); + } else { + layoutParams.setMargins(0, 0, 0, 0); + } + colorItemViewHolder.itemView.setLayoutParams(layoutParams); + } + + @Override + public int getItemCount() { + return mColors.length; + } + } + + /** The layout of a color item including image and label. */ + private static class ColorItem extends LinearLayout implements + WearableListView.OnCenterProximityListener { + /** The duration of the expand/shrink animation. */ + private static final int ANIMATION_DURATION_MS = 150; + /** The ratio for the size of a circle in shrink state. */ + private static final float SHRINK_CIRCLE_RATIO = .75f; + + private static final float SHRINK_LABEL_ALPHA = .5f; + private static final float EXPAND_LABEL_ALPHA = 1f; + + private final TextView mLabel; + private final CircledImageView mColor; + + private final float mExpandCircleRadius; + private final float mShrinkCircleRadius; + + private final ObjectAnimator mExpandCircleAnimator; + private final ObjectAnimator mExpandLabelAnimator; + private final AnimatorSet mExpandAnimator; + + private final ObjectAnimator mShrinkCircleAnimator; + private final ObjectAnimator mShrinkLabelAnimator; + private final AnimatorSet mShrinkAnimator; + + public ColorItem(Context context) { + super(context); + View.inflate(context, R.layout.color_picker_item, this); + + mLabel = (TextView) findViewById(R.id.label); + mColor = (CircledImageView) findViewById(R.id.color); + + mExpandCircleRadius = mColor.getCircleRadius(); + mShrinkCircleRadius = mExpandCircleRadius * SHRINK_CIRCLE_RATIO; + + mShrinkCircleAnimator = ObjectAnimator.ofFloat(mColor, "circleRadius", + mExpandCircleRadius, mShrinkCircleRadius); + mShrinkLabelAnimator = ObjectAnimator.ofFloat(mLabel, "alpha", + EXPAND_LABEL_ALPHA, SHRINK_LABEL_ALPHA); + mShrinkAnimator = new AnimatorSet().setDuration(ANIMATION_DURATION_MS); + mShrinkAnimator.playTogether(mShrinkCircleAnimator, mShrinkLabelAnimator); + + mExpandCircleAnimator = ObjectAnimator.ofFloat(mColor, "circleRadius", + mShrinkCircleRadius, mExpandCircleRadius); + mExpandLabelAnimator = ObjectAnimator.ofFloat(mLabel, "alpha", + SHRINK_LABEL_ALPHA, EXPAND_LABEL_ALPHA); + mExpandAnimator = new AnimatorSet().setDuration(ANIMATION_DURATION_MS); + mExpandAnimator.playTogether(mExpandCircleAnimator, mExpandLabelAnimator); + } + + @Override + public void onCenterPosition(boolean animate) { + if (animate) { + mShrinkAnimator.cancel(); + if (!mExpandAnimator.isRunning()) { + mExpandCircleAnimator.setFloatValues(mColor.getCircleRadius(), mExpandCircleRadius); + mExpandLabelAnimator.setFloatValues(mLabel.getAlpha(), EXPAND_LABEL_ALPHA); + mExpandAnimator.start(); + } + } else { + mExpandAnimator.cancel(); + mColor.setCircleRadius(mExpandCircleRadius); + mLabel.setAlpha(EXPAND_LABEL_ALPHA); + } + } + + @Override + public void onNonCenterPosition(boolean animate) { + if (animate) { + mExpandAnimator.cancel(); + if (!mShrinkAnimator.isRunning()) { + mShrinkCircleAnimator.setFloatValues(mColor.getCircleRadius(), mShrinkCircleRadius); + mShrinkLabelAnimator.setFloatValues(mLabel.getAlpha(), SHRINK_LABEL_ALPHA); + mShrinkAnimator.start(); + } + } else { + mShrinkAnimator.cancel(); + mColor.setCircleRadius(mShrinkCircleRadius); + mLabel.setAlpha(SHRINK_LABEL_ALPHA); + } + } + + private void setColor(String colorName) { + mLabel.setText(colorName); + mColor.setCircleColor(Color.parseColor(colorName)); + } + + private int getColor() { + return mColor.getDefaultCircleColor(); + } + } + + private static class ColorItemViewHolder extends WearableListView.ViewHolder { + private final ColorItem mColorItem; + + public ColorItemViewHolder(ColorItem colorItem) { + super(colorItem); + mColorItem = colorItem; + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/Gles2ColoredTriangleList.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/Gles2ColoredTriangleList.java new file mode 100644 index 000000000..2441c6591 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/Gles2ColoredTriangleList.java @@ -0,0 +1,278 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.FloatBuffer; + +import android.opengl.GLES20; +import android.opengl.GLU; +import android.opengl.GLUtils; +import android.util.Log; + +/** + * A list of triangles drawn in a single solid color using OpenGL ES 2.0. + */ +public class Gles2ColoredTriangleList { + private static final String TAG = "GlColoredTriangleList"; + + /** Whether to check for GL errors. This is slow, so not appropriate for production builds. */ + private static final boolean CHECK_GL_ERRORS = false; + + /** Number of coordinates per vertex in this array: one for each of x, y, and z. */ + private static final int COORDS_PER_VERTEX = 3; + + /** Number of bytes to store a float in GL. */ + public static final int BYTES_PER_FLOAT = 4; + + /** Number of bytes per vertex. */ + private static final int VERTEX_STRIDE = COORDS_PER_VERTEX * BYTES_PER_FLOAT; + + /** Triangles have three vertices. */ + private static final int VERTICE_PER_TRIANGLE = 3; + + /** + * Number of components in an OpenGL color. The components are:

    + *
  1. red + *
  2. green + *
  3. blue + *
  4. alpha + *
+ */ + private static final int NUM_COLOR_COMPONENTS = 4; + + /** Shaders to render this triangle list. */ + private final Program mProgram; + + /** The VBO containing the vertex coordinates. */ + private final FloatBuffer mVertexBuffer; + + /** + * Color of this triangle list represented as an array of floats in the range [0, 1] in RGBA + * order. + */ + private final float mColor[]; + + /** Number of coordinates in this triangle list. */ + private final int mNumCoords; + + /** + * Creates a Gles2ColoredTriangleList to draw a triangle list with the given vertices and color. + * + * @param program program for drawing triangles + * @param triangleCoords flat array of 3D coordinates of triangle vertices in counterclockwise + * order + * @param color color in RGBA order, each in the range [0, 1] + */ + public Gles2ColoredTriangleList(Program program, float[] triangleCoords, float[] color) { + if (triangleCoords.length % (VERTICE_PER_TRIANGLE * COORDS_PER_VERTEX) != 0) { + throw new IllegalArgumentException("must be multiple" + + " of VERTICE_PER_TRIANGLE * COORDS_PER_VERTEX coordinates"); + } + if (color.length != NUM_COLOR_COMPONENTS) { + throw new IllegalArgumentException("wrong number of color components"); + } + mProgram = program; + mColor = color; + + ByteBuffer bb = ByteBuffer.allocateDirect(triangleCoords.length * BYTES_PER_FLOAT); + + // Use the device hardware's native byte order. + bb.order(ByteOrder.nativeOrder()); + + // Create a FloatBuffer that wraps the ByteBuffer. + mVertexBuffer = bb.asFloatBuffer(); + + // Add the coordinates to the FloatBuffer. + mVertexBuffer.put(triangleCoords); + + // Go back to the start for reading. + mVertexBuffer.position(0); + + mNumCoords = triangleCoords.length / COORDS_PER_VERTEX; + } + + /** + * Draws this triangle list using OpenGL commands. + * + * @param mvpMatrix the Model View Project matrix to draw this triangle list + */ + public void draw(float[] mvpMatrix) { + // Pass the MVP matrix, vertex data, and color to OpenGL. + mProgram.bind(mvpMatrix, mVertexBuffer, mColor); + + // Draw the triangle list. + GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, mNumCoords); + if (CHECK_GL_ERRORS) checkGlError("glDrawArrays"); + } + + /** + * Checks if any of the GL calls since the last time this method was called set an error + * condition. Call this method immediately after calling a GL method. Pass the name of the GL + * operation. For example: + * + *
+     * mColorHandle = GLES20.glGetUniformLocation(mProgram, "uColor");
+     * MyGLRenderer.checkGlError("glGetUniformLocation");
+ * + * If the operation is not successful, the check throws an exception. + * + *

Note This is quite slow so it's best to use it sparingly in production builds. + * + * @param glOperation name of the OpenGL call to check + */ + private static void checkGlError(String glOperation) { + int error = GLES20.glGetError(); + if (error != GLES20.GL_NO_ERROR) { + String errorString = GLU.gluErrorString(error); + if (errorString == null) { + errorString = GLUtils.getEGLErrorString(error); + } + String message = glOperation + " caused GL error 0x" + Integer.toHexString(error) + + ": " + errorString; + Log.e(TAG, message); + throw new RuntimeException(message); + } + } + + /** + * Compiles an OpenGL shader. + * + * @param type {@link GLES20#GL_VERTEX_SHADER} or {@link GLES20#GL_FRAGMENT_SHADER} + * @param shaderCode string containing the shader source code + * @return ID for the shader + */ + private static int loadShader(int type, String shaderCode){ + // Create a vertex or fragment shader. + int shader = GLES20.glCreateShader(type); + if (CHECK_GL_ERRORS) checkGlError("glCreateShader"); + if (shader == 0) { + throw new IllegalStateException("glCreateShader failed"); + } + + // Add the source code to the shader and compile it. + GLES20.glShaderSource(shader, shaderCode); + if (CHECK_GL_ERRORS) checkGlError("glShaderSource"); + GLES20.glCompileShader(shader); + if (CHECK_GL_ERRORS) checkGlError("glCompileShader"); + + return shader; + } + + /** OpenGL shaders for drawing solid colored triangle lists. */ + public static class Program { + /** Trivial vertex shader that transforms the input vertex by the MVP matrix. */ + private static final String VERTEX_SHADER_CODE = "" + + "uniform mat4 uMvpMatrix;\n" + + "attribute vec4 aPosition;\n" + + "void main() {\n" + + " gl_Position = uMvpMatrix * aPosition;\n" + + "}\n"; + + /** Trivial fragment shader that draws with a fixed color. */ + private static final String FRAGMENT_SHADER_CODE = "" + + "precision mediump float;\n" + + "uniform vec4 uColor;\n" + + "void main() {\n" + + " gl_FragColor = uColor;\n" + + "}\n"; + + /** ID OpenGL uses to identify this program. */ + private final int mProgramId; + + /** Handle for uMvpMatrix uniform in vertex shader. */ + private final int mMvpMatrixHandle; + + /** Handle for aPosition attribute in vertex shader. */ + private final int mPositionHandle; + + /** Handle for uColor uniform in fragment shader. */ + private final int mColorHandle; + + /** + * Creates a program to draw triangle lists. For optimal drawing efficiency, one program + * should be used for all triangle lists being drawn. + */ + public Program() { + // Prepare shaders. + int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, VERTEX_SHADER_CODE); + int fragmentShader = loadShader(GLES20.GL_FRAGMENT_SHADER, FRAGMENT_SHADER_CODE); + + // Create empty OpenGL Program. + mProgramId = GLES20.glCreateProgram(); + if (CHECK_GL_ERRORS) checkGlError("glCreateProgram"); + if (mProgramId == 0) { + throw new IllegalStateException("glCreateProgram failed"); + } + + // Add the shaders to the program. + GLES20.glAttachShader(mProgramId, vertexShader); + if (CHECK_GL_ERRORS) checkGlError("glAttachShader"); + GLES20.glAttachShader(mProgramId, fragmentShader); + if (CHECK_GL_ERRORS) checkGlError("glAttachShader"); + + // Link the program so it can be executed. + GLES20.glLinkProgram(mProgramId); + if (CHECK_GL_ERRORS) checkGlError("glLinkProgram"); + + // Get a handle to the uMvpMatrix uniform in the vertex shader. + mMvpMatrixHandle = GLES20.glGetUniformLocation(mProgramId, "uMvpMatrix"); + if (CHECK_GL_ERRORS) checkGlError("glGetUniformLocation"); + + // Get a handle to the vertex shader's aPosition attribute. + mPositionHandle = GLES20.glGetAttribLocation(mProgramId, "aPosition"); + if (CHECK_GL_ERRORS) checkGlError("glGetAttribLocation"); + + // Enable vertex array (VBO). + GLES20.glEnableVertexAttribArray(mPositionHandle); + if (CHECK_GL_ERRORS) checkGlError("glEnableVertexAttribArray"); + + // Get a handle to fragment shader's uColor uniform. + mColorHandle = GLES20.glGetUniformLocation(mProgramId, "uColor"); + if (CHECK_GL_ERRORS) checkGlError("glGetUniformLocation"); + } + + /** + * Tells OpenGL to use this program. Call this method before drawing a sequence of + * triangle lists. + */ + public void use() { + GLES20.glUseProgram(mProgramId); + if (CHECK_GL_ERRORS) checkGlError("glUseProgram"); + } + + /** Sends the given MVP matrix, vertex data, and color to OpenGL. */ + public void bind(float[] mvpMatrix, FloatBuffer vertexBuffer, float[] color) { + // Pass the MVP matrix to OpenGL. + GLES20.glUniformMatrix4fv(mMvpMatrixHandle, 1 /* count */, false /* transpose */, + mvpMatrix, 0 /* offset */); + if (CHECK_GL_ERRORS) checkGlError("glUniformMatrix4fv"); + + // Pass the VBO with the triangle list's vertices to OpenGL. + GLES20.glEnableVertexAttribArray(mPositionHandle); + if (CHECK_GL_ERRORS) checkGlError("glEnableVertexAttribArray"); + GLES20.glVertexAttribPointer(mPositionHandle, COORDS_PER_VERTEX, GLES20.GL_FLOAT, + false /* normalized */, VERTEX_STRIDE, vertexBuffer); + if (CHECK_GL_ERRORS) checkGlError("glVertexAttribPointer"); + + // Pass the triangle list's color to OpenGL. + GLES20.glUniform4fv(mColorHandle, 1 /* count */, color, 0 /* offset */); + if (CHECK_GL_ERRORS) checkGlError("glUniform4fv"); + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/SweepWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/SweepWatchFaceService.java new file mode 100644 index 000000000..44e9569f5 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/SweepWatchFaceService.java @@ -0,0 +1,275 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.wearable.watchface.CanvasWatchFaceService; +import android.support.wearable.watchface.WatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.text.format.Time; +import android.util.Log; +import android.view.SurfaceHolder; + +import java.util.TimeZone; + +/** + * Sample analog watch face with a sweep second hand. In ambient mode, the second hand isn't shown. + * On devices with low-bit ambient mode, the hands are drawn without anti-aliasing in ambient mode. + * The watch face is drawn with less contrast in mute mode. + * + * {@link AnalogWatchFaceService} is similar but has a ticking second hand. + */ +public class SweepWatchFaceService extends CanvasWatchFaceService { + private static final String TAG = "SweepWatchFaceService"; + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends CanvasWatchFaceService.Engine { + Paint mHourPaint; + Paint mMinutePaint; + Paint mSecondPaint; + Paint mTickPaint; + boolean mMute; + Time mTime; + + final BroadcastReceiver mTimeZoneReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mTime.clear(intent.getStringExtra("time-zone")); + mTime.setToNow(); + } + }; + boolean mRegisteredTimeZoneReceiver = false; + + /** + * Whether the display supports fewer bits for each color in ambient mode. When true, we + * disable anti-aliasing in ambient mode. + */ + boolean mLowBitAmbient; + + Bitmap mBackgroundBitmap; + Bitmap mBackgroundScaledBitmap; + + @Override + public void onCreate(SurfaceHolder holder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(holder); + + setWatchFaceStyle(new WatchFaceStyle.Builder(SweepWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setShowSystemUiTime(false) + .build()); + + Resources resources = SweepWatchFaceService.this.getResources(); + Drawable backgroundDrawable = resources.getDrawable(R.drawable.bg); + mBackgroundBitmap = ((BitmapDrawable) backgroundDrawable).getBitmap(); + + mHourPaint = new Paint(); + mHourPaint.setARGB(255, 200, 200, 200); + mHourPaint.setStrokeWidth(5.f); + mHourPaint.setAntiAlias(true); + mHourPaint.setStrokeCap(Paint.Cap.ROUND); + + mMinutePaint = new Paint(); + mMinutePaint.setARGB(255, 200, 200, 200); + mMinutePaint.setStrokeWidth(3.f); + mMinutePaint.setAntiAlias(true); + mMinutePaint.setStrokeCap(Paint.Cap.ROUND); + + mSecondPaint = new Paint(); + mSecondPaint.setARGB(255, 255, 0, 0); + mSecondPaint.setStrokeWidth(2.f); + mSecondPaint.setAntiAlias(true); + mSecondPaint.setStrokeCap(Paint.Cap.ROUND); + + mTickPaint = new Paint(); + mTickPaint.setARGB(100, 255, 255, 255); + mTickPaint.setStrokeWidth(2.f); + mTickPaint.setAntiAlias(true); + + mTime = new Time(); + } + + @Override + public void onPropertiesChanged(Bundle properties) { + super.onPropertiesChanged(properties); + mLowBitAmbient = properties.getBoolean(PROPERTY_LOW_BIT_AMBIENT, false); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onPropertiesChanged: low-bit ambient = " + mLowBitAmbient); + } + } + + @Override + public void onTimeTick() { + super.onTimeTick(); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onTimeTick: ambient = " + isInAmbientMode()); + } + invalidate(); + } + + @Override + public void onAmbientModeChanged(boolean inAmbientMode) { + super.onAmbientModeChanged(inAmbientMode); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onAmbientModeChanged: " + inAmbientMode); + } + if (mLowBitAmbient) { + boolean antiAlias = !inAmbientMode; + mHourPaint.setAntiAlias(antiAlias); + mMinutePaint.setAntiAlias(antiAlias); + mSecondPaint.setAntiAlias(antiAlias); + mTickPaint.setAntiAlias(antiAlias); + } + invalidate(); + } + + @Override + public void onInterruptionFilterChanged(int interruptionFilter) { + super.onInterruptionFilterChanged(interruptionFilter); + boolean inMuteMode = (interruptionFilter == WatchFaceService.INTERRUPTION_FILTER_NONE); + if (mMute != inMuteMode) { + mMute = inMuteMode; + mHourPaint.setAlpha(inMuteMode ? 100 : 255); + mMinutePaint.setAlpha(inMuteMode ? 100 : 255); + mSecondPaint.setAlpha(inMuteMode ? 80 : 255); + invalidate(); + } + } + + @Override + public void onDraw(Canvas canvas, Rect bounds) { + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "onDraw"); + } + long now = System.currentTimeMillis(); + mTime.set(now); + int milliseconds = (int) (now % 1000); + + int width = bounds.width(); + int height = bounds.height(); + + // Draw the background, scaled to fit. + if (mBackgroundScaledBitmap == null + || mBackgroundScaledBitmap.getWidth() != width + || mBackgroundScaledBitmap.getHeight() != height) { + mBackgroundScaledBitmap = Bitmap.createScaledBitmap(mBackgroundBitmap, + width, height, true /* filter */); + } + canvas.drawBitmap(mBackgroundScaledBitmap, 0, 0, null); + + // Find the center. Ignore the window insets so that, on round watches with a + // "chin", the watch face is centered on the entire screen, not just the usable + // portion. + float centerX = width / 2f; + float centerY = height / 2f; + + // Draw the ticks. + float innerTickRadius = centerX - 10; + float outerTickRadius = centerX; + for (int tickIndex = 0; tickIndex < 12; tickIndex++) { + float tickRot = (float) (tickIndex * Math.PI * 2 / 12); + float innerX = (float) Math.sin(tickRot) * innerTickRadius; + float innerY = (float) -Math.cos(tickRot) * innerTickRadius; + float outerX = (float) Math.sin(tickRot) * outerTickRadius; + float outerY = (float) -Math.cos(tickRot) * outerTickRadius; + canvas.drawLine(centerX + innerX, centerY + innerY, + centerX + outerX, centerY + outerY, mTickPaint); + } + + float seconds = mTime.second + milliseconds / 1000f; + float secRot = seconds / 30f * (float) Math.PI; + int minutes = mTime.minute; + float minRot = minutes / 30f * (float) Math.PI; + float hrRot = ((mTime.hour + (minutes / 60f)) / 6f ) * (float) Math.PI; + + float secLength = centerX - 20; + float minLength = centerX - 40; + float hrLength = centerX - 80; + + if (!isInAmbientMode()) { + float secX = (float) Math.sin(secRot) * secLength; + float secY = (float) -Math.cos(secRot) * secLength; + canvas.drawLine(centerX, centerY, centerX + secX, centerY + secY, mSecondPaint); + } + + float minX = (float) Math.sin(minRot) * minLength; + float minY = (float) -Math.cos(minRot) * minLength; + canvas.drawLine(centerX, centerY, centerX + minX, centerY + minY, mMinutePaint); + + float hrX = (float) Math.sin(hrRot) * hrLength; + float hrY = (float) -Math.cos(hrRot) * hrLength; + canvas.drawLine(centerX, centerY, centerX + hrX, centerY + hrY, mHourPaint); + + // Draw every frame as long as we're visible and in interactive mode. + if (isVisible() && !isInAmbientMode()) { + invalidate(); + } + } + + @Override + public void onVisibilityChanged(boolean visible) { + super.onVisibilityChanged(visible); + + if (visible) { + registerReceiver(); + + // Update time zone in case it changed while we weren't visible. + mTime.clear(TimeZone.getDefault().getID()); + mTime.setToNow(); + + invalidate(); + } else { + unregisterReceiver(); + } + } + + private void registerReceiver() { + if (mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = true; + IntentFilter filter = new IntentFilter(Intent.ACTION_TIMEZONE_CHANGED); + SweepWatchFaceService.this.registerReceiver(mTimeZoneReceiver, filter); + } + + private void unregisterReceiver() { + if (!mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = false; + SweepWatchFaceService.this.unregisterReceiver(mTimeZoneReceiver); + } + } +} diff --git a/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/TiltWatchFaceService.java b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/TiltWatchFaceService.java new file mode 100644 index 000000000..6dd01b000 --- /dev/null +++ b/samples/browseable/WatchFace/Wearable/src/com.example.android.wearable.watchface/TiltWatchFaceService.java @@ -0,0 +1,478 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.android.wearable.watchface; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.opengl.GLES20; +import android.opengl.Matrix; +import android.support.wearable.watchface.Gles2WatchFaceService; +import android.support.wearable.watchface.WatchFaceStyle; +import android.text.format.Time; +import android.util.Log; +import android.view.Gravity; +import android.view.SurfaceHolder; + +import java.util.TimeZone; +import java.util.concurrent.TimeUnit; + +/** + * Sample watch face using OpenGL. The watch face is rendered using + * {@link Gles2ColoredTriangleList}s. The camera moves around in interactive mode and stops moving + * when the watch enters ambient mode. + */ +public class TiltWatchFaceService extends Gles2WatchFaceService { + + private static final String TAG = "TiltWatchFaceService"; + + /** Expected frame rate in interactive mode. */ + private static final long FPS = 60; + + /** How long each frame is displayed at expected frame rate. */ + private static final long FRAME_PERIOD_MS = TimeUnit.SECONDS.toMillis(1) / FPS; + + @Override + public Engine onCreateEngine() { + return new Engine(); + } + + private class Engine extends Gles2WatchFaceService.Engine { + /** Cycle time before the camera motion repeats. */ + private static final long CYCLE_PERIOD_SECONDS = 5; + + /** Number of camera angles to precompute. */ + private final int mNumCameraAngles = (int) (CYCLE_PERIOD_SECONDS * FPS); + + /** Projection transformation matrix. Converts from 3D to 2D. */ + private final float[] mProjectionMatrix = new float[16]; + + /** + * View transformation matrices to use in interactive mode. Converts from world to camera- + * relative coordinates. One matrix per camera position. + */ + private final float[][] mViewMatrices = new float[mNumCameraAngles][16]; + + /** The view transformation matrix to use in ambient mode */ + private final float[] mAmbientViewMatrix = new float[16]; + + /** + * Model transformation matrices. Converts from model-relative coordinates to world + * coordinates. One matrix per degree of rotation. + */ + private final float[][] mModelMatrices = new float[360][16]; + + /** + * Products of {@link #mViewMatrices} and {@link #mProjectionMatrix}. One matrix per camera + * position. + */ + private final float[][] mVpMatrices = new float[mNumCameraAngles][16]; + + /** The product of {@link #mAmbientViewMatrix} and {@link #mProjectionMatrix} */ + private final float[] mAmbientVpMatrix = new float[16]; + + /** + * Product of {@link #mModelMatrices}, {@link #mViewMatrices}, and + * {@link #mProjectionMatrix}. + */ + private final float[] mMvpMatrix = new float[16]; + + /** Triangles for the 4 major ticks. These are grouped together to speed up rendering. */ + private Gles2ColoredTriangleList mMajorTickTriangles; + + /** Triangles for the 8 minor ticks. These are grouped together to speed up rendering. */ + private Gles2ColoredTriangleList mMinorTickTriangles; + + /** Triangle for the second hand. */ + private Gles2ColoredTriangleList mSecondHandTriangle; + + /** Triangle for the minute hand. */ + private Gles2ColoredTriangleList mMinuteHandTriangle; + + /** Triangle for the hour hand. */ + private Gles2ColoredTriangleList mHourHandTriangle; + + private Time mTime = new Time(); + + /** Whether we've registered {@link #mTimeZoneReceiver}. */ + private boolean mRegisteredTimeZoneReceiver; + + private final BroadcastReceiver mTimeZoneReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + mTime.clear(intent.getStringExtra("time-zone")); + mTime.setToNow(); + } + }; + + @Override + public void onCreate(SurfaceHolder surfaceHolder) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onCreate"); + } + super.onCreate(surfaceHolder); + setWatchFaceStyle(new WatchFaceStyle.Builder(TiltWatchFaceService.this) + .setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT) + .setBackgroundVisibility(WatchFaceStyle.BACKGROUND_VISIBILITY_INTERRUPTIVE) + .setStatusBarGravity(Gravity.RIGHT | Gravity.TOP) + .setHotwordIndicatorGravity(Gravity.LEFT | Gravity.TOP) + .setShowSystemUiTime(false) + .build()); + } + + @Override + public void onGlContextCreated() { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onGlContextCreated"); + } + super.onGlContextCreated(); + + // Create program for drawing triangles. + Gles2ColoredTriangleList.Program triangleProgram = + new Gles2ColoredTriangleList.Program(); + + // We only draw triangles which all use the same program so we don't need to switch + // programs mid-frame. This means we can tell OpenGL to use this program only once + // rather than having to do so for each frame. This makes OpenGL draw faster. + triangleProgram.use(); + + // Create triangles for the ticks. + mMajorTickTriangles = createMajorTicks(triangleProgram); + mMinorTickTriangles = createMinorTicks(triangleProgram); + + // Create triangles for the hands. + mSecondHandTriangle = createHand( + triangleProgram, + 0.02f /* width */, + 1.0f /* height */, + new float[]{ + 1.0f /* red */, + 0.0f /* green */, + 0.0f /* blue */, + 1.0f /* alpha */ + } + ); + mMinuteHandTriangle = createHand( + triangleProgram, + 0.06f /* width */, + 0.8f /* height */, + new float[]{ + 0.7f /* red */, + 0.7f /* green */, + 0.7f /* blue */, + 1.0f /* alpha */ + } + ); + mHourHandTriangle = createHand( + triangleProgram, + 0.1f /* width */, + 0.5f /* height */, + new float[]{ + 0.9f /* red */, + 0.9f /* green */, + 0.9f /* blue */, + 1.0f /* alpha */ + } + ); + + // Precompute the clock angles. + for (int i = 0; i < mModelMatrices.length; ++i) { + Matrix.setRotateM(mModelMatrices[i], 0, i, 0, 0, 1); + } + + // Precompute the camera angles. + for (int i = 0; i < mNumCameraAngles; ++i) { + // Set the camera position (View matrix). When active, move the eye around to show + // off that this is 3D. + final float cameraAngle = (float) (((float) i) / mNumCameraAngles * 2 * Math.PI); + final float eyeX = (float) Math.cos(cameraAngle); + final float eyeY = (float) Math.sin(cameraAngle); + Matrix.setLookAtM(mViewMatrices[i], + 0, // dest index + eyeX, eyeY, -3, // eye + 0, 0, 0, // center + 0, 1, 0); // up vector + } + + Matrix.setLookAtM(mAmbientViewMatrix, + 0, // dest index + 0, 0, -3, // eye + 0, 0, 0, // center + 0, 1, 0); // up vector + } + + @Override + public void onGlSurfaceCreated(int width, int height) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onGlSurfaceCreated: " + width + " x " + height); + } + super.onGlSurfaceCreated(width, height); + + // Update the projection matrix based on the new aspect ratio. + final float aspectRatio = (float) width / height; + Matrix.frustumM(mProjectionMatrix, + 0 /* offset */, + -aspectRatio /* left */, + aspectRatio /* right */, + -1 /* bottom */, + 1 /* top */, + 2 /* near */, + 7 /* far */); + + // Precompute the products of Projection and View matrices for each camera angle. + for (int i = 0; i < mNumCameraAngles; ++i) { + Matrix.multiplyMM(mVpMatrices[i], 0, mProjectionMatrix, 0, mViewMatrices[i], 0); + } + + Matrix.multiplyMM(mAmbientVpMatrix, 0, mProjectionMatrix, 0, mAmbientViewMatrix, 0); + } + + /** + * Creates a triangle for a hand on the watch face. + * + * @param program program for drawing triangles + * @param width width of base of triangle + * @param length length of triangle + * @param color color in RGBA order, each in the range [0, 1] + */ + private Gles2ColoredTriangleList createHand(Gles2ColoredTriangleList.Program program, + float width, float length, float[] color) { + // Create the data for the VBO. + float[] triangleCoords = new float[]{ + // in counterclockwise order: + 0, length, 0, // top + -width / 2, 0, 0, // bottom left + width / 2, 0, 0 // bottom right + }; + return new Gles2ColoredTriangleList(program, triangleCoords, color); + } + + /** + * Creates a triangle list for the major ticks on the watch face. + * + * @param program program for drawing triangles + */ + private Gles2ColoredTriangleList createMajorTicks( + Gles2ColoredTriangleList.Program program) { + // Create the data for the VBO. + float[] trianglesCoords = new float[9 * 4]; + for (int i = 0; i < 4; i++) { + float[] triangleCoords = getMajorTickTriangleCoords(i); + System.arraycopy(triangleCoords, 0, trianglesCoords, i * 9, triangleCoords.length); + } + + return new Gles2ColoredTriangleList(program, trianglesCoords, + new float[]{ + 1.0f /* red */, + 1.0f /* green */, + 1.0f /* blue */, + 1.0f /* alpha */ + } + ); + } + + /** + * Creates a triangle list for the minor ticks on the watch face. + * + * @param program program for drawing triangles + */ + private Gles2ColoredTriangleList createMinorTicks( + Gles2ColoredTriangleList.Program program) { + // Create the data for the VBO. + float[] trianglesCoords = new float[9 * (12 - 4)]; + int index = 0; + for (int i = 0; i < 12; i++) { + if (i % 3 == 0) { + // This is where a major tick goes, so skip it. + continue; + } + float[] triangleCoords = getMinorTickTriangleCoords(i); + System.arraycopy(triangleCoords, 0, trianglesCoords, index, triangleCoords.length); + index += 9; + } + + return new Gles2ColoredTriangleList(program, trianglesCoords, + new float[]{ + 0.5f /* red */, + 0.5f /* green */, + 0.5f /* blue */, + 1.0f /* alpha */ + } + ); + } + + private float[] getMajorTickTriangleCoords(int index) { + return getTickTriangleCoords(0.03f /* width */, 0.09f /* length */, + index * 360 / 4 /* angleDegrees */); + } + + private float[] getMinorTickTriangleCoords(int index) { + return getTickTriangleCoords(0.02f /* width */, 0.06f /* length */, + index * 360 / 12 /* angleDegrees */); + } + + private float[] getTickTriangleCoords(float width, float length, int angleDegrees) { + // Create the data for the VBO. + float[] coords = new float[]{ + // in counterclockwise order: + 0, 1, 0, // top + width / 2, length + 1, 0, // bottom left + -width / 2, length + 1, 0 // bottom right + }; + + rotateCoords(coords, angleDegrees); + return coords; + } + + /** + * Destructively rotates the given coordinates in the XY plane about the origin by the given + * angle. + * + * @param coords flattened 3D coordinates + * @param angleDegrees angle in degrees clockwise when viewed from negative infinity on the + * Z axis + */ + private void rotateCoords(float[] coords, int angleDegrees) { + double angleRadians = Math.toRadians(angleDegrees); + double cos = Math.cos(angleRadians); + double sin = Math.sin(angleRadians); + for (int i = 0; i < coords.length; i += 3) { + float x = coords[i]; + float y = coords[i + 1]; + coords[i] = (float) (cos * x - sin * y); + coords[i + 1] = (float) (sin * x + cos * y); + } + } + + @Override + public void onAmbientModeChanged(boolean inAmbientMode) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onAmbientModeChanged: " + inAmbientMode); + } + super.onAmbientModeChanged(inAmbientMode); + invalidate(); + } + + @Override + public void onVisibilityChanged(boolean visible) { + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onVisibilityChanged: " + visible); + } + super.onVisibilityChanged(visible); + if (visible) { + registerReceiver(); + + // Update time zone in case it changed while we were detached. + mTime.clear(TimeZone.getDefault().getID()); + mTime.setToNow(); + + invalidate(); + } else { + unregisterReceiver(); + } + } + + private void registerReceiver() { + if (mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = true; + IntentFilter filter = new IntentFilter(Intent.ACTION_TIMEZONE_CHANGED); + TiltWatchFaceService.this.registerReceiver(mTimeZoneReceiver, filter); + } + + private void unregisterReceiver() { + if (!mRegisteredTimeZoneReceiver) { + return; + } + mRegisteredTimeZoneReceiver = false; + TiltWatchFaceService.this.unregisterReceiver(mTimeZoneReceiver); + } + + @Override + public void onTimeTick() { + super.onTimeTick(); + if (Log.isLoggable(TAG, Log.DEBUG)) { + Log.d(TAG, "onTimeTick: ambient = " + isInAmbientMode()); + } + invalidate(); + } + + @Override + public void onDraw() { + if (Log.isLoggable(TAG, Log.VERBOSE)) { + Log.v(TAG, "onDraw"); + } + super.onDraw(); + final float[] vpMatrix; + + // Draw background color and select the appropriate view projection matrix. The + // background should always be black in ambient mode. The view projection matrix used is + // overhead in ambient. In interactive mode, it's tilted depending on the current time. + if (isInAmbientMode()) { + GLES20.glClearColor(0, 0, 0, 1); + vpMatrix = mAmbientVpMatrix; + } else { + GLES20.glClearColor(0.5f, 0.2f, 0.2f, 1); + final int cameraIndex = + (int) ((System.currentTimeMillis() / FRAME_PERIOD_MS) % mNumCameraAngles); + vpMatrix = mVpMatrices[cameraIndex]; + } + GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT); + + // Compute angle indices for the three hands. + mTime.setToNow(); + final int secIndex = mTime.second * 360 / 60; + final int minIndex = mTime.minute * 360 / 60; + final int hoursIndex = (mTime.hour % 12) * 360 / 12 + mTime.minute * 360 / 60 / 12; + + // Draw triangles from back to front. Don't draw the second hand in ambient mode. + { + // Combine the model matrix with the projection and camera view. + Matrix.multiplyMM(mMvpMatrix, 0, vpMatrix, 0, mModelMatrices[hoursIndex], 0); + + // Draw the triangle. + mHourHandTriangle.draw(mMvpMatrix); + } + { + // Combine the model matrix with the projection and camera view. + Matrix.multiplyMM(mMvpMatrix, 0, vpMatrix, 0, mModelMatrices[minIndex], 0); + + // Draw the triangle. + mMinuteHandTriangle.draw(mMvpMatrix); + } + if (!isInAmbientMode()) { + // Combine the model matrix with the projection and camera view. + Matrix.multiplyMM(mMvpMatrix, 0, vpMatrix, 0, mModelMatrices[secIndex], 0); + + // Draw the triangle. + mSecondHandTriangle.draw(mMvpMatrix); + } + { + // Draw the major and minor ticks. + mMajorTickTriangles.draw(vpMatrix); + mMinorTickTriangles.draw(vpMatrix); + } + + // Draw every frame as long as we're visible and in interactive mode. + if (isVisible() && !isInAmbientMode()) { + invalidate(); + } + } + } +} diff --git a/samples/browseable/WatchFace/_index.jd b/samples/browseable/WatchFace/_index.jd new file mode 100644 index 000000000..fcba857b8 --- /dev/null +++ b/samples/browseable/WatchFace/_index.jd @@ -0,0 +1,12 @@ +page.tags="WatchFace" +sample.group=Wearable +@jd:body + +

+ +This sample demonstrates how to create watch faces for android wear and includes a phone app +and a wearable app. The wearable app has a variety of watch faces including analog, digital, +opengl, calendar, etc. It also includes a watch-side configuration example. The phone app +includes a phone-side configuration example. + +

diff --git a/samples/browseable/WatchViewStub/Application/AndroidManifest.xml b/samples/browseable/WatchViewStub/Application/AndroidManifest.xml index e98a62f12..b1b7103dc 100644 --- a/samples/browseable/WatchViewStub/Application/AndroidManifest.xml +++ b/samples/browseable/WatchViewStub/Application/AndroidManifest.xml @@ -18,10 +18,11 @@ - + diff --git a/samples/browseable/WatchViewStub/Application/res/drawable-hdpi/ic_launcher.png b/samples/browseable/WatchViewStub/Application/res/drawable-hdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..589f229d14a11db31931caf22c66ef8e5cbcb25d GIT binary patch literal 4584 zcmVP)NidaYOP^Du>Q3Mnd0whR8o)Qv52q7W4c_;n;XV2L^_hj$ou8F7vJG0q)_jULD z_W!-k*^P@`o%|ATUFGASz*Rt(P{>t4P5|Y8lA9RbHTuIKSJ03v(ezr|T8kPQYi>== zOf8Y^R}~a|xbVm(cZB=yD-n)tv!~Xxd2mYdH2U6xbt<6fs;a7Tm&?`VN(R){*47jg z6BA1es&zn#B{W^haAezi(?p+3bwEi+jvOfp4Gnc)$&i|wnmozL$?(CabU^X6B8BDz znnRLSz55F6FNppGxm;w6Z7i6U=I5Xwz76YG8*QU6avPS|hU1NM(D67AzRPn6<2G%a z&S6g2nI^dgn_B4)$)B}iz5FirX*IvQ_wUy2#w&6VDGq&M3uwTiN zJMX2B%`}(MTuAd-9Z(pph@rVF=A?BWe1*pIhKojWSo9g|&;%^858wfU0nh@YL&FbZ z9a_l25oF$44$k6ZvZ9r(ym7`3yx}x)ShB&i4r?)U7#xbR9iMRwhd@ifl`!!c>#z@g zuXz4#KcQ9iVy>cPgAT~LLdGHnWbdqzjR~fP1PeG)Q6Y+AusukF2o2G3mG#Z+L`|asz-+9y8YG-nz)@7wjQxe0I2fTS2_46MGdnYq zHr1*S`~n*Ia&C=Oi>f4DQBpOkdH@s9xLIN;Oc3UU&$F(NW2v!jZZemea15sWa~}4> zR~4+OrPWXcSCnBoSfbJ1Dw1k46eksl01SE3@Sbiqha7S!eJ=GhvWof^4nRUeL^D4t+{_GG$&V~>ZLDY4 z5UxPt#GXBPmhC6=YZB4TE|UG=06{?s?hrOLxhG4DbF<>wMz-Z>CHsaFJtO(DGHzLh z$g)Ic#cDZWlmvz^!PGCZ3!8FncXkaebIUz!)7R(N*}4{6hizobmNUPs3gS-OhYw1R zkKpPFBRS=KUBNyntug%*FGsYpgeQ^0#E?L$*G>u0?q+4Mm@Sp&6xJ*g;< zKz(mMs9mxcKorYJh+y+l;(4QAC@N=r&U!>Ks}{gU;waT4txQ#sksTX=)X(XpOeCCG z_e{ZA_W9Y`%NxazD0UNZqAZ^U`14m=MVo1PB1MhkOKg%nB6V{lTMJ`~D!QBBO6dbdo71 zmj(q9AZ&z!c9DrmU!~V!rt|hwpB;BvtX`{B^AeO=kn%D^sn+#+41gYilcs$(5TMV? zYE8eRLXzDX{!C0NNA*WYALb4Z6hepQ^aq8xibmWk=kI-L}RD2Zv!fikw6D@duyloG>Nou;lo;Z#8Y zB%P@*Gg1NR-5fVj6k9M1-P?>k2S8jwMy_LqcJW=B8Q&RZq%6&xNDuQA1fWm}2qvaR zF@IIQ)irA+kSC`(><=0s0NI(5X-;%?c8~yT3@PZ*8w@}w2R>6wOy)hhgEj$)o<`kK zs|jNUDd-WQ(AA`%U1uyGFx%g0Mv6S6&a%%ZEO@NNGf#o{xY`H#!36?OtS;%7*M}WFtPRuQPtCK#6#paP}Nvc z(4ygng4Pw%9ac?D0maQrW{Q%IfFRAyF5G7jASe_nTLnO8E?OfNGGU}`>S%_YdZfCF zrw@15Vb)gyvN0nswE&{nN9}_i+bfDKCO|N!wE%QRL@@=3USfcg+K(?w4h~958nGUL zq(YzGcZPkcnV8oQ4;^3&N0=WJtlOML|l#)p0P}o=6exO73;2pleh>Hb8Vot=CzZ z)KT`B0Q5IQ0e>tZ^_ChT@Za0Xy^C5zc&2A^`D*Tae6A3O^>sYc1OTGXk_MHIcV<^?uyp_6kys zOXXzehxB|1X~bjV2CR^PG!W{@hwhW~p`$XVfO@^W&&vntN>O3S&M)iX1Ow0?2@oKx zB0!&%T(s@pu!~@-f~?Bk>i)nw09q<;z>2(5_AwMBMo_uGQa%R)>g;_E6%_vx00pKV zX;!?CN2n_^F_JACk;p>-`?&y%95lu6*D z94qomxsx`0kbJm7c~HThvP6bn?i5g*3P_lmsuXol(17CI88(cDdEi9*M08>A9ktYXGUXFezv zfK)Il1RsuB`X9jS5*)-P^^4)1TBwl@&^XrN3-zqobTHlu(gESSgd;!UP>hfais?!t zCgHp{0cFg)C#zUPvoYeTclOI@CfCb?RtI(7DWD!N<{Li9Mjh${QSBd&vdj#_GfPQD zL%WBw@DRl%`-xn3p!hn~bJN$l<~DY)vW~5!5Pz<|$uuwhAuAP{-mfh?-*D>6`yDE% z`#%9lj6T>vvUAMR|41_e+@4)Sscv$!6oM4f1y7~9*pO~rSuDYGGF8y?L0?rhux5JH zrK+)&6%d?U>Ov_89Hr8ieyE+p)_MbEO(&sUa0;j!0g}E&_5|8>x~q=a+#k+Y@7kbs zsNFE2`1r^~igGadz^9#5%dI45>>*Qeqh4UsnG$k6W*JrAENhhuM zMoQ)A5$~c?Kv4up58pZ@9fVYq1S+>nFj7^2Awc7MM+Gh)+7knhPvn;Hr#mDxy*^V_ zqbf>u$SPE|zq{rEhYE^(o&YI%jc#uGHm}hNahwWD?HpT?(TCmQ5YWezX#Od;l%6na zuOPti@f0fsz0iC3aIO|JGl>%kPHP_-4%A-r{;Ef z92BFNn^cjEhN^^ASXP2)>>>Szd`_C1lrSr9Dk5sBrluCRDhQcQ>FXNijtxjbxK2F4 z92NTXw)18P=a2M?QBlz3lgg8b1( zAK?W${N6d5aeX|W&?7Cr!?cVyO*%Gpd5fmLefv(Jcd*#WlP8bebI(1~>6C|QuF*~% zwPwwl6`7ftv$5~qy?bAuH*eko+6Qmls1qX1;4NFWygHDk#>PfgTwMIYFMe3;FTwj$J4fc{rV-FH*bD}cEg)|x*bK+_N*~u z#>@er{QUf!haP%pF70~qZuRQbFLm$UJq#*3di3aH)2B~g<>UO{npLL*BBk`1I(2GcbaZq#GA*`!`}Q}M zEnD^^UEy(>@kXEBPKCE&lIG8!{~+CjB_Sap z2>Z=s%3~HST7+DtLt$TDYi9xqd;9IT|2JU3fJ{od*s){BiYTn#M?Z9kX8w|XCj-Li zkgHusH{vDoc|#BZPnEuD8)zysVW4m_k!v6rMb40^t=gtBYOQph2lK5cq zJ#|znOd}(*Ti^OiM~innr-WB#FO8S9Ox+K>a`j)n}sy4I1(SuEI{}{G!k7VFexY} z5Yv(uitE7f0F4O^Ls}3hU>pNegOacWSbu57_W~&3AN?`y*qI9YF||A3YyCgAQ4S1Z SZ-*BE0000Ik}t=aw7?lkdTCeX}L9&lHpnv+X+=$AVn%lMF{*T&WKfT+D;$^J1|3Q zWgHzYB9~fvfwZYuoD5Q#A`lQ#!cCDh3FZI^857t5C%KS=^uhw%vK5ptiC>ScU)cy#gTlLQbwtly!fZp$~%Pvs`YsXYJ$c=q~)B%Hx1mDZ^I0o>T13AoL?OZ+;(y8as!^3SfR$S&==j$Z_kOA55T0CIoOV5cn+!0F(f&Syq78w>1(v83jD%sutZN0lQ8{ z$Vu^xw7!k!mS+v2>|h97zO73~124f!GJ@Q_5_n)ABqS~G-wV?6QK2@d%gWs5emMctfQErf&vS@D(! zF(*i&btERY9=Oq=R(fJYwD7Gd_%h|)|kJU}| zVO6s)czA+A!yB+VBm?k1BzXT@X)*LPOR$g$T&V8|N=5;*P_T7CB~V=1BvPrcyuMZo zj7GpqLgxQ(GkC;M;hF1HUJnm^0d*kb59L}NFeze?%D8w36|e_BWDk4*0%$K7C`h34 z8VR5>3lgFtYkB{vk+C!{J%-jYf%8ltm|}JN2VE z90P?+;Df3rI>13}l#lFxKmyh`$_So-eDX44>17b$3av`Wvn{K&PNL@f6UOpMk@i=BfEEL=KDLbug4jr69)o{|$4jT3Issp68zlwlITr^Y zFkF4nh2j$;nj2h3H*DKm#u1<3~cqY?Q}obU|h;y?Dw=pXwg)>5UZY zYjHz#JrIH9J(2(yB!!5U=QSw-=tS;$UVSu~_OpE6sc7(6UV^_nh`s3)L;z+1TYurG zI9gL$L+6-))18^~~2ma0HCYnoV7zn6(H*Cw!a{?3CG$n=J{j7oZ{j0%aeRu+k zF$OS)ETnn?;GgC3vy(MG9+3K%&jhk-1&O*J1RyYU_owx+@Lm1B(l$#EY|crcx7qq{ zF#%2ccc)NKCenjhCGqU2c>3-GarDB8f9nK%J)k}>Aco+H+kprq?g9ZVhy@W{GNNtP zN#OWI4&v9Qj-a=%*3+9;-~p+9-x^>fpa$}y(ebp1J+SIHdqAX7uY4q6v1ZmFj^p)9 z9yXWI5D?(I%HBpw24o}&93R6S=xaG6=tONByw>`~TYz}H;RhVErI{aOs@uBx;oePWZne|FYiPxN!OO-^#()Hm zb?ee>a|uQL?kp4VHfAar6}+)r>ozZkg+m=Vjx@ujKD);LN-r z0E>5|8VU&z)<@>?^^8|)IQNO;+a5b~=+HUdY~|sS1n^-arL3%MTUuJ$S4~Cye?C}M zRrS~G?CgAoQN!boB!IV3i7QsD$jQpedN3G_Y%NPiM@K|-bo7$2u&~7D=H^nKE3w<{ zqN268w>uIN64vmmaB661*c2HV*@5|C>mb!r+_Mty}laii(OWz^LDScyV#@ zMFvcHd3g`<+;x54o|&0Bdj0zK2N`(Gv17*yHgDd%9o7uSaF7jv>%;SjDahY?PP69Z zey*KX#cp5Wr`)Y8(@>hA7tnlWQW8t-4ze=U+lVPWA1w=(&jy?gi0+OcEDXBigWzoTd2lpGKXi8?F9*CJUXHIE&c=%{e zgL`)G-o1vej&#;v@TGG0spb?)M~)m(gIEQG&LolLxT&+Vb8$^g%@xi{Q+Tc^SQiYG zK>W;^Gv8rrWtEqg=W>QY+Vq$HhOu?ewzRa+sZ*!2`8<48>~9GV4GkSVZQ8UyaV-4v z`0?Z4;ggWff?5VjAcC)oUIeuQH$ge~SAgWFTL2NCMExKF20TQdO-7Et#iKJQ^nB7l z3E+Hy#~L>?%iHqPEwG4Bq9&lkW4LY%TsNqyjOz`QK(L1SpPly~rHu!gx!mm&00000 LNkvXXu0mjfj66uW literal 0 HcmV?d00001 diff --git a/samples/browseable/WatchViewStub/Application/res/drawable-xhdpi/ic_launcher.png b/samples/browseable/WatchViewStub/Application/res/drawable-xhdpi/ic_launcher.png new file mode 100755 index 0000000000000000000000000000000000000000..fe34ebe13c1da13758ab3597cff544ea549621d9 GIT binary patch literal 6603 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π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 z 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 u6 + + + + + diff --git a/samples/browseable/WatchViewStub/Application/res/values-v21/base-template-styles.xml b/samples/browseable/WatchViewStub/Application/res/values-v21/base-template-styles.xml new file mode 100644 index 000000000..0b2948f7e --- /dev/null +++ b/samples/browseable/WatchViewStub/Application/res/values-v21/base-template-styles.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/samples/browseable/WatchViewStub/Application/res/values-v21/template-styles.xml b/samples/browseable/WatchViewStub/Application/res/values-v21/template-styles.xml deleted file mode 100644 index 134fcd9d3..000000000 --- a/samples/browseable/WatchViewStub/Application/res/values-v21/template-styles.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - -