* save slider state when configuration changes occurs
* update sample apps color to light blue
* update sample apps top bar and status bar color to light blue
* not show top bar on the bottom screen in dual-landscape mode
* update screenshots
* change icons color
* Diary sample baseline added to compose-samples
* Updated main README table
* README for Diary app updated
* all Android Studio warnings cleared
* Fixed all warnings within Android studio
* Ran ktlint script
* Deleted unused component
* Placeholder for Editor and forced light mode on app due to calendarView
* updated suggested changes in PR #98
* required changes for PR #98
* Row removed, weight adjusted
* ktlint updated
* Hardcoded string updated to use stringResource
* string hardcoded again as there's an issue with pulling data from stringResource
* Theme and other fixes for PR #98
* changes to theme and comment removed
* stringResource issue fixed
* screenshots added
* updated style for text
* project settings gradle file updated
* Added videochatapp to main repo, going to remove forked pr for this project
* Style fixing and refactoring
* Lintin'
* Move StyledPlayerView directly inside AndroidView
* Help pass modifiers to reduce box usage + code cleanup
* Fixed build breaking issue
* infoprovider must be availible globally, else it doesnt get updated properly
* Move Player into VideoPage and reserve currentPostion as a state
* Reserve the fullScreen as a state
* Removed comments
* localization
* Removed infoprovider
Co-authored-by: Kristen Halper <khalper@microsoft.com>
Co-authored-by: Joy Liu <joyliu1@microsoft.com>
* Create DragAndDrop sample
* Add DragTarget and DropTarget
* Building UI
* Update DragContainer and DropContainer
* Implement text drag and drop
* Introduce DragData and MimiType
* Update system bar color
* Fix the draggable size
* Build UI in the single-pane mode
* Add floating button to reset the UI
* Add highlight interaction when dragging
* Update dependencies
* Add UI test case
* Address comments
* Re-introduce the project
* Update README
* Code clean-up
* Update screenshot to gif
* Update app icon
* Remove DS_Store and log
* Added calculator
* Formatting
* Update README.md
* Update README.md
* Added top bar styling
* Added README and screenshots
* Scaled imaged down
* Update README.md
* Completed all Kristen comments, added copyright as well to top
* Lintin'
* Added unit tests, major calculations refactor
* moved tests to test file
* Changed calculator name to DyAdd, added its screenshot to readme, fixed modulus crash, added testing for div by 0 for div and mod
* Forgot to display the icon in README
* Added app logo, and changed official name
* Update TwoPaneLayout version
* Update samples to use new TwoPaneScope methods
* Update nav rail sample to use TwoPaneLayoutNav
* Update UI tests with test scope classes
* Fix ItemDetailView tests in nav rail sample
* Remove unused values
* Remove logging and clean up back press logic
* Update to WindowState alpha02
* Update usages of "foldOccludes" to "foldIsOccluding"
* Update usages of "foldBounds" to "foldBoundsDp"
* Update usages of windowWidth/Height to include dp
* Update "isFoldHorizontal" usage to "foldIsHorizontal"
* Update foldablePaneWidth usage in DualView sample
* Remove unused properties/functions in TwoPage
* Update performGesture to performTouchInput
* Update foldablePaneWidth and foldSize usage in TwoPage
* Make sure isSeparating is true in tests that have folding features
* Fix TwoPage calculation and add comments
* Update app structure
* Remove the size restriction when comparing the image in TestUtils
* Adding test cases into ExtendedCanvas
* Remove unnecessary dependencies
* Address the comments
* Return false when the image size is different
* Add test dependencies
* Add stateless version of app composable
* Rename theme
* Add string helper method that accepts formatting arguments
* Fix DualView modifier bug for narrow widths
* Add unfold methods to TestUtils
* Update image content descriptions to include unique id
* Add custom semantics property to content drawer
* Add tests for detail view
* Add tests for gallery view
* Add pane sync tests
* Add nav component tests
* Fix ktlint issues
* Remove unfold method until we can test it
* Address PR comments
* Add more nav component tests
* Add assertion to dual landscape test
* Add test dependencies and blank test class
* Use string resources and material theme colors instead of hardcoded values
* Rename home package to view
* Add foldablePaneWidth getter to WindowState
Since both TwoPage and DualView need to calculate "viewWidth"
* Replace viewmodel with state variables
* Add stateless versions of main app to other samples
Will do it for remaining samples after their project structure is updated
* Clean up RestaurantView
Simplify clean up composables
* Clean up MapView and rename theme
* Add basic top bar test
* Add more top bar tests
* Add default values to WindowState constructor
* Update Compose Gallery tests to work on all devices/orientations
* Update Companion Pane tests to work on all devices/orientations
* Update social links in repo README
* Add theme to top bar tests
* Update dark theme to match compose theming
* Add restaurant list tests
* Add map image tests
* Clean up zoom tests
* Add comments and move helper classes to TestUtils
* Update window state usage in ComposeGallery tests
* Remove drag/zoom tests
* Add test to check that icons switch between views
* Remove test used to save screenshots
* Fix ktlint issues
* Pass isDualScreen through to RestaurantView
* Update package structure
* Update data flow to follow Compose best practices
* Clean up theming
* Split up home page file
* Clean up effects panel code
* Add UI tests to Companion Pane
* Fix rebasing errors
* Simplify ComposeGallery tests
Since we're already simulating fold updates through the activity, there's no need to manually pass in values about large screen / foldable info
* Remove redundant freeze rotation calls
Orientation is freezed automatically in set orientation calls
* Add test case for orientation change
Single screen case left out due to UiDevice limitations (it's recommended to keep one orientation throughout the whole test case)
* Create window-info module
* Update build.gradle settings
* Add helper classes
* Update ComposeGallery to use module
* Update to wm beta04 and twopanelayout alpha10
* Update Compose Gallery tests to follow new app structure
* Rename module and classes
* Update NavigationRail sample to use module
* Add window mode (~device posture) to window state
* Update companion pane to use module
* Fix module manifest formatting
* Update dual view to use module
* Update list detail to use module
* Update two page to use module
* Refactor WindowState properties
* Expose additional fold info in WindowState
fold state, isSeparating, and occlusion type
* Rename module to window state
* Rename package to windowstate
* Update large screen logic to only include expanded size class
* Add tests for window state module
* Remove FoldingFeature dependency in WindowState
* Remove redundant JWM dependencies
* Update ComposeGallery tests to use new fold state enum
* Remove unnecessary JWM imports from ComposeGallery tests
* Create foldable test module
* Move test helpers to new module
* Fix dependency/config errors
* Clean up build.gradle files
* Rename module to TestUtils
* Remove unnecessary android tag
* Update ComposeGallery code structure
* Add basic UI test for top bar icons
* Update top app bar test to test smaller composables
* Update helper functions and add synchronization test
* Update helper methods
* Add new sync test ~wip
* Reformat state handling again
* Remember lazy list state and add icon click test
* Reset app state at the end of full app tests
* Fix rebasing errors
* Add window manager test dependencies
* Use TestWindowLayoutInfo to simulate hinge - wip
still transitioning between swipes & simulating the hinge
- haven't figured out how to "unspan" successfully (force empty display features list)
- spanning swipes aren't enough with the rulechain, now have to swipe & simulate the fold
- can change "USE_SWIPE_GESTURE" in pane sync test to switch between the two approaches
* Move getString to testing helper
* Refactor app structure
Replace viewmodel with, pass in states instead of WindowLayoutInfo to compose app
* Finish switch to TestWindowLayoutInfo
* Make sure selection is remembered between orientation changes
* Update TwoPaneLayout mode
* Add test that simulates horizontal fold
* Clean up nav rail dependencies
* Update project dependencies
* Update compose version in readme
* Update to wm beta03
* Update window manager version in readme
* Remove TwoPaneLayout project
Moved to new repo: https://github.com/microsoft/surface-duo-compose-sdk
* Move ComposeSamples info to repo readme
* Move samples from ComposeSamples to base directory
* Delete unused ComposeSamples directory
* Update sample links
* Update project structure in CI
* Remove TwoPaneLayout ymls
* Remove app samples repo link
* Create initial project
* Set up basic code structure
* Add custom theme colors
* Add basic gallery implementation
* Add more data and set up basic navigation
things to work on next:
- navigating between pane 1 & 2 in single screen mode
- making gallery & item views hinge aware (and possibly navigation rail? could have two rails for each pane so icons get split between the two)
- add bottom navigation to pane 2 when in single screen mode
* Add copyright
* update nav logic (~wip)
made choice not to show nav for single screen pane 2 (follow example of jetsnack sample and have it be like a temporary pop up away from the gallery)
-
things left to fix:
- nav controller should be at higher level so state is remember between spans/rotations
- rendering under hinge
* Refactor package name
* Update compose version
* Add id field to Image model
* Update item view to item detail view
simplify top bar logic for pane2 + break up itemdetailview composable into smaller parts
* Update navigation routes
based on some of the Jetsnack nav logic (replace Gallery data class with GallerySections enum class, hoist onClick/showItemView methods)
* fix for navigation state saving
a littleee hacky may need to revisit to fix vewmodelstore error eventually
* Remove viewmodel and cleanup code
track image data with a "remembered" field instead, break up navigation.kt into two files (navigation.kt + appcomponents.kt), add header comments!
* Finish refactor of package name
* Add montserrat font family
* Add placeholder images
* Update placeholder image/message with new designs
* Add roboto font family
* Update nav icon text style
* Add theme colors
* Add highlight graphic for selected icons
* Add dark theme colors (wip) and set status bar colors
* Add icons (todo: fix spacing)
* Replace placeholder pngs with vector assets
* Add image selector border
* Add nature images
* Reformat top app bar to match design (todo: fix spacing)
* Update lake icon
* Add app icon
* Change gallery view and top bar spacing
* Decrease placeholder image sizes
* Adjust spacing
* Decrease rock icon size
* Update dark mode color usage
* Add item detail view icons
* Update item detail view to match design
* Code cleanup
* Add drawer pill
* Update back arrow for better contrast
* Move custom top bars to separate component files
* Adjust when navigation state is checked
* Move custom nav controls to separate component files
* Fix bug where placeholder image appears in pane 1
* add padding to top of nav rail
* Move content drawer to separate component file and add hinge awareness
* Code cleanup for ItemDetailView
also fixed scroll issue with contentdrawer
* Make conditions box scrollable
* Update placeholder images with transparent shadows
* Update image model to reflect design
* fixup
* Update support for other foldables/large screens
* Add animations
resource for future: https://kaustubhpatange.medium.com/navigating-with-animations-in-jetpack-compose-5655820dedb8
* Add in unique plant data
* Add in unique bird data
* don't abbreviate measurements
* Add unique animal data
* Add unique lake and rock data
* convert to metric units
* Only show relevant icons and add elevation
* Fix compilation error
* Remove unnecessary box from Pane 2
* Update gradle version
* Move twopanelayout navigation to home page
* Code cleanup
* Fix system back press handling in detail view
* Add draft of readme
* Add more screenshots
* Address PR comments and set up icon parsing for galleries
* Add screenshots to readme
* Update compose version
Didn't update navigation version because twopanelayout still uses the old navigation version as well
* Rename condition to fact
* Code cleanup/documentation
* Add in final fact icons
* Update lakes fact icon
* Support dark mode
* Show single page in dual landscape mode
* Adjust padding so second page doesn't go off screen
first pane (when measured in layout) extends past end of screen to the middle of the hinge, so padding can be halved
* Only check isHingeHorizontal when spanned
* Use TwoPaneLayout in Companion Pane sample
* Add new screenshots and adjust padding
* Move import tip to getting started section
* Move tip to ComposeSamples readme and update dependencies
* Remove unnecessary Modifier parameters
* Update material theme
* Begin migration to TwoPaneLayout
* Move TopAppBar inside TwoPaneLayout
* Add navigation options to app bar
* Address PR comments
Adjust when top bar is visual, rearrange crossfade hierarchy
* Make app bar visible even when rotated
* Navigate to picture on click when unspanned
* Update readme with screenshots and features
* Resize screenshots for readme
* Update ListDetail with TwoPaneLayout
* Update DecorativeBox
* Update dependencies
* Update with TwoPaneLayout
* Clean up
* Update for dual-landscape
* Update DualView to two-slot API