diff --git a/README.md b/README.md index c0edf29..55a3e93 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,51 @@ # Dual Screen Experience Example -This repo contains a sample Android application for Microsoft Surface Duo. It demonstrates [dual-screen controls](https://docs.microsoft.com/dual-screen/android/api-reference/dualscreen-library/) and [user interface patterns](https://docs.microsoft.com/dual-screen/introduction#dual-screen-app-patterns). +The application provides developers and designers with real world, working examples of how to make +use of the dual-screen/foldable form factor in different ways. It enables an end-to-end experience +using a prescribed user scenario, centered around the needs of a travelling salesperson who visits +various fictitious stores which are interested in buying the salesperson’s fictitious products. +It helps the salesperson select and navigate to multiple predetermined customer locations in a city, +assist the salesperson's tasks in various ways during the visit to each potential client, and create +a report of each visit. + +When spanned across the folding feature, a Developer Mode option appears in the toolbar which shows +more details regarding each screen - the code behind it, the [user interface patterns](https://docs.microsoft.com/dual-screen/introduction#dual-screen-app-patterns) +it implements and the [dual-screen controls](https://docs.microsoft.com/dual-screen/android/api-reference/dualscreen-library/) it uses. ![Dual Screen Experience Example build](https://github.com/microsoft/surface-duo-dual-screen-experience-example/workflows/Dual%20Screen%20Experience%20Example%20build/badge.svg) +## Install from Google Play Store + +If you want to try out the released version, you can find it here: + +[![Google Play Badge](google_play_badge.png)](https://aka.ms/DualScreenExperiencePlayStore) + ## Getting Started To learn how to load your app on the Surface Duo emulator, see the [documentation](https://docs.microsoft.com/dual-screen/android), and follow [the blog](https://devblogs.microsoft.com/surface-duo). +## Screenshots + +![Catalog dual portrait](screenshots/dual_portrait_catalog.png) + +![Product Customize dual portrait](screenshots/dual_portrait_product_customize.png) + +![Order dual portrait](screenshots/dual_portrait_order.png) + +![Developer Mode dual portrait](screenshots/dual_portrait_dev_mode.png) + ## Related links - [SDK open-source code](https://github.com/microsoft/surface-duo-sdk) - [SDK samples (Kotlin)](https://github.com/microsoft/surface-duo-sdk-samples-kotlin) - [SDK samples (Java)](https://github.com/microsoft/surface-duo-sdk-samples) - [App samples](https://github.com/microsoft/surface-duo-app-samples) +- [Jetpack Window Manager samples](https://github.com/microsoft/surface-duo-window-manager-samples) - [Jetpack Compose samples](https://github.com/microsoft/surface-duo-compose-samples) - [Unity samples](https://github.com/microsoft/surface-duo-sdk-unity-samples) - [Xamarin samples](https://github.com/microsoft/surface-duo-sdk-xamarin-samples) - [Flutter samples](https://github.com/microsoft/surface-duo-sdk-samples-flutter) - [React Native samples](https://github.com/microsoft/react-native-dualscreen) -- Web samples are coming soon ## Contributing @@ -40,6 +66,7 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft’s Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general). Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies. ## License + Copyright (c) Microsoft Corporation. MIT License diff --git a/app/build.gradle b/app/build.gradle index 328cb22..5340a9d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -51,8 +51,8 @@ android { proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } - releaseEmulator { - applicationIdSuffix ".emulator" + emulator { + applicationIdSuffix ".appEmulator" minifyEnabled true shrinkResources true debuggable false @@ -117,7 +117,7 @@ dependencies { debugImplementation googleDependencies.mapsKtx releaseImplementation googleDependencies.maps releaseImplementation googleDependencies.mapsKtx - releaseEmulatorImplementation microsoftDependencies.bingMaps + emulatorImplementation microsoftDependencies.bingMaps implementation microsoftDependencies.bottomNavBar implementation microsoftDependencies.recyclerView diff --git a/app/src/debug/res/mipmap-hdpi/ic_launcher.png b/app/src/debug/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..e49f7d8 Binary files /dev/null and b/app/src/debug/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..3d32867 Binary files /dev/null and b/app/src/debug/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/debug/res/mipmap-ldpi/ic_launcher.png b/app/src/debug/res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 0000000..d6be536 Binary files /dev/null and b/app/src/debug/res/mipmap-ldpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-ldpi/ic_launcher_round.png b/app/src/debug/res/mipmap-ldpi/ic_launcher_round.png new file mode 100644 index 0000000..f4f7738 Binary files /dev/null and b/app/src/debug/res/mipmap-ldpi/ic_launcher_round.png differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_launcher.png b/app/src/debug/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..cc64cab Binary files /dev/null and b/app/src/debug/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..be25355 Binary files /dev/null and b/app/src/debug/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..38d88ef Binary files /dev/null and b/app/src/debug/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..d346dea Binary files /dev/null and b/app/src/debug/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..ed2e0a6 Binary files /dev/null and b/app/src/debug/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..c342c9a Binary files /dev/null and b/app/src/debug/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..1da6ec6 Binary files /dev/null and b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..9209813 Binary files /dev/null and b/app/src/debug/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/releaseEmulator/assets/licenses/NOTICE.html b/app/src/emulator/assets/licenses/NOTICE.html similarity index 100% rename from app/src/releaseEmulator/assets/licenses/NOTICE.html rename to app/src/emulator/assets/licenses/NOTICE.html diff --git a/app/src/releaseEmulator/assets/licenses/licenses.json b/app/src/emulator/assets/licenses/licenses.json similarity index 100% rename from app/src/releaseEmulator/assets/licenses/licenses.json rename to app/src/emulator/assets/licenses/licenses.json diff --git a/app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/di/MapModule.kt b/app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/di/MapModule.kt similarity index 100% rename from app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/di/MapModule.kt rename to app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/di/MapModule.kt diff --git a/app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapController.kt b/app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapController.kt similarity index 100% rename from app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapController.kt rename to app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapController.kt diff --git a/app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapUtils.kt b/app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapUtils.kt similarity index 100% rename from app/src/releaseEmulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapUtils.kt rename to app/src/emulator/java/com/microsoft/device/samples/dualscreenexperience/presentation/store/map/BingMapUtils.kt diff --git a/app/src/emulator/res/mipmap-hdpi/ic_launcher.png b/app/src/emulator/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..dac26ee Binary files /dev/null and b/app/src/emulator/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-hdpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000..154ec63 Binary files /dev/null and b/app/src/emulator/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/emulator/res/mipmap-ldpi/ic_launcher.png b/app/src/emulator/res/mipmap-ldpi/ic_launcher.png new file mode 100644 index 0000000..98ce585 Binary files /dev/null and b/app/src/emulator/res/mipmap-ldpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-ldpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-ldpi/ic_launcher_round.png new file mode 100644 index 0000000..52416fd Binary files /dev/null and b/app/src/emulator/res/mipmap-ldpi/ic_launcher_round.png differ diff --git a/app/src/emulator/res/mipmap-mdpi/ic_launcher.png b/app/src/emulator/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..3402bcc Binary files /dev/null and b/app/src/emulator/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-mdpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000..d330f5e Binary files /dev/null and b/app/src/emulator/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/emulator/res/mipmap-xhdpi/ic_launcher.png b/app/src/emulator/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..d0062cd Binary files /dev/null and b/app/src/emulator/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000..c7c493d Binary files /dev/null and b/app/src/emulator/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/emulator/res/mipmap-xxhdpi/ic_launcher.png b/app/src/emulator/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..770958a Binary files /dev/null and b/app/src/emulator/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..725685d Binary files /dev/null and b/app/src/emulator/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..6210609 Binary files /dev/null and b/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000..f77064f Binary files /dev/null and b/app/src/emulator/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/release/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to app/src/release/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/release/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to app/src/release/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/release/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.png rename to app/src/release/res/mipmap-hdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/release/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to app/src/release/res/mipmap-hdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-ldpi/ic_launcher.png b/app/src/release/res/mipmap-ldpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-ldpi/ic_launcher.png rename to app/src/release/res/mipmap-ldpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-ldpi/ic_launcher_round.png b/app/src/release/res/mipmap-ldpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-ldpi/ic_launcher_round.png rename to app/src/release/res/mipmap-ldpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/release/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.png rename to app/src/release/res/mipmap-mdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/release/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to app/src/release/res/mipmap-mdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/release/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to app/src/release/res/mipmap-xhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/release/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to app/src/release/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/release/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to app/src/release/res/mipmap-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/release/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to app/src/release/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/release/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to app/src/release/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/release/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to app/src/release/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/google_play_badge.png b/google_play_badge.png new file mode 100644 index 0000000..8180d43 Binary files /dev/null and b/google_play_badge.png differ diff --git a/screenshots/dual_portrait_catalog.png b/screenshots/dual_portrait_catalog.png new file mode 100644 index 0000000..8107bac Binary files /dev/null and b/screenshots/dual_portrait_catalog.png differ diff --git a/screenshots/dual_portrait_dev_mode.png b/screenshots/dual_portrait_dev_mode.png new file mode 100644 index 0000000..68334c4 Binary files /dev/null and b/screenshots/dual_portrait_dev_mode.png differ diff --git a/screenshots/dual_portrait_order.png b/screenshots/dual_portrait_order.png new file mode 100644 index 0000000..a642d2d Binary files /dev/null and b/screenshots/dual_portrait_order.png differ diff --git a/screenshots/dual_portrait_product_customize.png b/screenshots/dual_portrait_product_customize.png new file mode 100644 index 0000000..75d1cc7 Binary files /dev/null and b/screenshots/dual_portrait_product_customize.png differ