Skip to content

Commit 01ce496

Browse files
puneet-pdxSoren Rothsorenoidhud10837eri9000
authored
200.6.0 Release - merge v.next into main (#680)
* enable the publication of artifacts which include the build number in the version. * bump version * add lambda to authenticator * add util methods * add lambda to DialogAuthenticator * cherry pick to v.next (#103) * use launchCustomTabs in OAuthUserSignInActivity * fix issue with pressing cancel button * Merge pull request #104 from Esri/sorenoid/update-auth-readme use updated name of the auth dependency in README * reinstate onWindowFocusChanged in OAuthUserSignInActivity * use didLaunch logic in OAuthAuthenticator for lambda scenario as well * rm context receivers * remove ontopresumedactivitychanged * Trigger onFacilityChanged along with the levelChanged when selectedLevelId is programmatically updated (#111) * reorganize OAuthAuthenticator * update readme * Don't suggest singleInstance * add doc to method * eof newline * move composable to activity scope * mv viewmodel definition to class level * mv Authenticator definition to setContent block * pass vm as argument to auth app * fix readme numbering * add note about redirect uri * update doc for new param * simplify side effect * Address pr comments * rename Extensions file * rework OAuthAuthenticator to move launcher * update readme * Deletes WebView's session if `preferPrivateWebBrowserSession` is enabled (#119) * added geo composable map * Update gradle * Delete SceneComposable.kt * Revert "Delete SceneComposable.kt" This reverts commit 5f9b41ee2ba73ca97f4c937f079239a791ae4d68. * upgrades to match the API's gradle versions so we can easily include the API as a composite build. Also clears some false warnings in gradle files * renamed to module geo-compose * fixes for displaying FloorFilter facilitySelector when Sites are not present in the map (#153) * Create t9nmanifest.txt (#167) * removed module and microapp (#208) * Update gradle.properties (#211) * Update build.gradle.kts (#212) * updates client id and redirect Uri (#216) * Take out build numbers for publishing (#219) * update dependency section of readme for 200.3.0 (#220) * Improve WebView Display (#213) * Update gradle.properties (#238) * Update dependency versions (#235) * kdoc project to doc the released toolkit components. (#284) * kdoc project to doc the released toolkit components. * add dependencies on the dependencies of the released projects. * Update kdoc/build.gradle.kts Co-authored-by: Erick Lopez Solis <[email protected]> --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * Add version to API ref (#314) * Feature branches/geo compose (#355) * Implements setting and modifying a map/layers (#136) * changes to display a map * remove unnecessary line * add viewmodel to the micro app * Revert "add viewmodel to the micro app" This reverts commit cfc6b0b39aff5cb79d5ef191e6cdd5634415925f. * address code review feedback * remove unused imports * add overlay support (#143) * add overlay support * add doc * remove the fillmaxsize modifier * remove MapState * add viewpointChangedLambda (#159) * add viewpointChangedLambda * address code review feedback * Support LocationDisplay (#160) * add location display micro app * add location permissions * add support for location display * screen to start/stop a location display * fix typo * show error message if location display fails to start * add AppBar and auto pan mode options * fix type of key * improve doc * add readme * adjust screen shot size * adjust screen shot size * set MapView properties in the update callback * use by remember for mutable state * set error message when LDS fails to start when toggling switch * fix doc references to composable Map * Compose Map InteractionOptions (#163) * Rename - Compose MapView (#165) * Compose MapView: Geometry editor (#170) * Compose MapView: SelectionProperties (#173) * add support for WrapAroundMode (#176) * Compose MapView: ViewLabelProperties (#174) * add implementation for gesture events (#172) * add implementation for gesture events * update SDK dependency add Events exposed on GeoView * address code review comment * address code review comments * refactor mapView.viewpointChanged * Compose Map - graphics overlay (#166) * moved GraphicsOverlaysUpdater (#183) * added grid & backgroundGrid impl (#192) * Draw Status (#186) * Geometry editor micro-app (#178) * added invoke (#197) * Update MapView doc pattern (#191) * add support for attribution text (#187) * add support for attribution text * combine attribution bar properties/events in a state object * refactor mapview parameter list * update collect lambda * Update doc * update doc * Add spatialreference changed callback (#193) * invoke currentOnInteractingChanged with initial value of isInteracting * add callback to mapview * rm initial value calls * change ?.let calls to ?.invoke * move parameter above onInteractingChanged * move launch statement above onInteracitngChanged * MapView Rotation & Scale (#195) * Add inset support (#182) * add mapview inset app * add app to settings.gradle * WIP * update formatting * address code review comments * update setViewInset values * add readme * Update README.md * add doc * address code review feedback * rename mapinsets to insets * rename mapinsets * update doc * address code review comments * Add mapview proxy (#190) * create MapViewOperator class * add param to MapView composable * add locationToScreen and doc * more doc * refactor MapView composable to remove unnecessary code * move mapoperator mapview setting to own disposable effect * don't use synchronize for operations * Eof newline * make MapViewOperator derive from a new GeoViewOperator * eof newline * return null if nan from locationToScreen * add copyrights * fix doc * fix doc * rename operator to proxy * rm overlay param again * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/GeoViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapView.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Apply doc fixes from code review Co-authored-by: Puneet Prakash <[email protected]> * mv param below geometry editor * fix doc line length * fix param doc * fix param doc --------- Co-authored-by: Gunther Heppner <[email protected]> Co-authored-by: Puneet Prakash <[email protected]> * update the copyright to the apache License (#203) * add support for onNavigationChanged (#199) * add support for onNavigationChanged * add doc * MapView TimeExtent (#194) * Support for setting Viewpoint on MapView (#202) * support for ViewpointOperation - initial commit * MapViewpointOperation - prototyping * implement await() on MapViewpointOperation, remove onCompleted callbacks * renaming * add execute extension for remaining operations * rename Bounding to SetBoundingGeometry * add set bookmark * add remaining operations to when statement * make execute an abstract fun on MapViewpointOperation * Add set viewpoint app * fix typo * add dependency to microapp on geocompose * add simple app to set viewpoint with different options * add progress indicator to demonstrate await pattern * extract bookmark to remembered val * make abstract fun an extension fun instead * add doc * add readme to microapp * eof newline * fix readme title * rever locationdisplayapp changes * update screenshot * update readme wording * use a simple list instead of reflection * add doc to MainScreen * add dash to project app name * naming and doc changes * mv onViewpointChanged parameter * change dfeautl animate duration to 0.25 * update microapp module namw --------- Co-authored-by: Hudson Miears <[email protected]> * Refactor mapview insets app (#206) * update all since tags in geo-compose module (#227) * Geo-compose: add identify methods and microapp (#223) * add methods to geoviewproxy * rename identifyLayer and identifyGraphicsOverlay to identify as overloads * add prototype app * fix recursive bug * refactor app to separate subcomponents * make one source of truth for geoview in geoviewproxy * make one source of truth for geoview in geoviewproxy * mv business logic to view model class * update doc * add doc to microapp * add top bar * add readme and screenshot * adjust readme description * adjust string resources and error messages * modify identify method to be cancellable and consolidate logic * adjust bottom sheet to only expand to half screen height and move map viewpoint * rename EventDetails -> IdentifyDetails * nullGEoViewErrorMessage no longer uses a getter * rework caching of mapview in proxy to match previous implementation * change doc DIPS -> Dp * fix tolerance parameter types -> Dp * use nullable maximumResults to match swift * sanitize max results * rm yield * add doc enhancements * extract maximum results fun * clamp 0 values for maximumResults * rm throws doc * adjust insets on bottom sheet state change * rm insets behavior * fix doc references * fix doc 200.4.0 * update screenshot * rename className prop * make details height a const * Rename MapView-related microapps to have MapView prefix (#226) * Rename MapView-related microapps to have MapView prefix * Rename all other instances with mapview prefix * rename names in readmes * rename files * rename test directories * add onUnitsPerDipChanged callback lambda (#232) * Add exportImage fun to GeoViewProxy (#233) * Add exportImage fun to GeoViewProxy * update doc * update doc * add isWrapAroundEnabled property to GeoViewProxy (#231) * add isWrapAroundEnabled property to GeoViewProxy * update @since * add doc * Geo-compose: add basic SceneView function (#230) * add SceneView function * eof newline * fix doc and copyright * don't use fully qualified sceneview * added compose BOM (#237) * add ViewPointState (#234) * add ViewPointState * address code review feedback * update doc * Hud10837/layer view state (#228) * add methods to geoviewproxy * rename identifyLayer and identifyGraphicsOverlay to identify as overloads * add prototype app * fix recursive bug * refactor app to separate subcomponents * make one source of truth for geoview in geoviewproxy * make one source of truth for geoview in geoviewproxy * mv business logic to view model class * update doc * add doc to microapp * add top bar * add readme and screenshot * adjust readme description * adjust string resources and error messages * modify identify method to be cancellable and consolidate logic * adjust bottom sheet to only expand to half screen height and move map viewpoint * rename EventDetails -> IdentifyDetails * nullGEoViewErrorMessage no longer uses a getter * rework caching of mapview in proxy to match previous implementation * change doc DIPS -> Dp * fix tolerance parameter types -> Dp * use nullable maximumResults to match swift * sanitize max results * rm yield * add doc enhancements * extract maximum results fun * clamp 0 values for maximumResults * rm throws doc * adjust insets on bottom sheet state change * add layerviewstatechanged callback * add getLayerViewState * move getLayerViewState * mv param position and fix identify mainscreen * SceneView: add sceneview gesture events (#241) * add SceneView function * eof newline * fix doc and copyright * add gesture events * fix param doc" * SceneView: create SceneViewProxy (#246) * create initial SceneViewProxy class * add disposal logic to proxy class * add sceneViewProxy to SceneView * add copyright * SceneView: graphics overlays (#245) * extract graphicsoverlayupdater * eof newline * SceneView: add scene viewpoint operation (#240) * create SceneViewpointOperation * add operation to sceneview * add all operations for sceneview * add doc * eof newline * eof newline * Don't use named params on viewpoint updater * use kotlinx cancellation exception * add copyright * use duration in viewpoint operations * doc * rename durationSeconds and fix microapp * Update feature branch with v.next (#243) * add navigationchanged to sceneview (#248) * SceneView: add ViewLabelProperties (#249) * add viewlabelproperties to sceneview' * fix doc --------- Co-authored-by: Gunther Heppner <[email protected]> * SceneView: attribution (#247) * mv AttributionStateHandler function to AttributionState.kt * add attributionState param to SceneView * add @since tag --------- Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt (#253) Co-authored-by: Gunther Heppner <[email protected]> * shared the ViewpointChangedState with SceneView (#261) * SceneView TimeExtent (#260) * shared the ViewpointChangedState with SceneView * review update * merge with the feature branch * SceneView spatial reference changed (#258) * add spatial ref changed support * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * shared the ViewpointChangedState with SceneView --------- Co-authored-by: Puneet Prakash <[email protected]> * shared the ViewpointChangedState with SceneView (#257) * add layerViewStateChanged to SceneView (#262) * The view property needs to be assigned in ViewProxy class (#264) * add cameraController oaram to sceneview (#265) * add onDrawStatusChanged to SceneView (#266) * add FieldOfView (#270) * SceneView: add sunLighting and sunTime (#275) * add sunLighting and sunTime * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * SceneView current viewpoint camera (#256) * add getCurrentViewpointCamera in proxy * expose the currentViewpoint property * impls current view camera * adds a space for lambda * merged with feature branch. * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * add atmosphereEffect (#278) * Add funs for screen coordinate conversion (#272) * Add funs for screen coordinate conversion * update doc * update doc for SceneView Suntime and SunLighting (#282) * SceneView: AnalysisOverlayCollection (#269) * create AnalysisOverlayCollection * mv factory for graphics overlay collection * add analysis to scene view * eof newlines * add doc * Fix doc that mentions graphics overlays Co-authored-by: Puneet Prakash <[email protected]> * mv factory function to SceneView file * address doc comments * mv updater to SceneView file * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * Add space effects on the scene view (#281) * add space effects on scene view * update the comment * SceneView: ambient light color (#279) * add sceneview ambientLightColor param * fix doc * rm full stop * SceneView: add manual rendering funs to SceneViewProxy (#280) * add manual rendering funs to SceneViewProxy * Fix doc * fix doc * SceneView: ImageOverlays (#274) * add ImageOverlayCollection and property * mv factory function to SceneView file * fix doc comments * mv updater to sceneview.kt * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * use data object for Cleared event * use data object for cleared even tin AnalysisOverlayCollection * use data object for cleared event in GraphicsOverlayCollection --------- Co-authored-by: Puneet Prakash <[email protected]> * SceneView: lighting options microapp (#286) * add sceneview ambientLightColor param * add space effects on scene view * update the comment * fix doc * create lighting options microapp base * set up dropdown menu * add sun time options * add lighting mode options * add Ambient light color options * add atmosphere effect options * add space effect options * change viewpoint and fix sun time picker * clean up code * use sliders instead of textfields for rgb colors * add doc * add readme and screenshot * eof newline * add doc to components * add missing imports * Add doc DropdownMenuAlertDialog * add missing copyright headers * add doc RgbaSlider * add remaining doc * Update microapps/SceneViewLightingOptionsApp/README.md Co-authored-by: Gunther Heppner <[email protected]> --------- Co-authored-by: Changan Shi <[email protected]> Co-authored-by: Gunther Heppner <[email protected]> * bumping sdk to 4122 (#300) Co-authored-by: Soren Roth <[email protected]> * add maven publishing to geo-compose (#301) Co-authored-by: Soren Roth <[email protected]> * Scene view camera controller app (#288) * init implementation for camera controller * add gitignore * adds comments and remove view model. * update the doc and png image * update the comment * add the extra space line * update the screenshot * review update * update the 2023 comment * update the comment * review update * v next merge to geo compose (#303) * change name of Licesne file in preparation for migration to Esri * revert change to license file name * remove extra license file * Update README.md images (#102) * holder commit * Update README.md update link * upload screenshot image * add images to the micro app * Update README.md * Update README.md * use updated name of the auth dependency in README * Create t9nmanifest.txt (#167) * removed module and microapp (#208) * Update gradle.properties (#211) * Update build.gradle.kts (#212) * updates client id and redirect Uri (#216) * Take out build numbers for publishing (#219) * update dependency section of readme for 200.3.0 (#220) * Improve WebView Display (#213) * Update gradle.properties (#238) * Update dependency versions (#235) * kdoc project to doc the released toolkit components. (#284) * kdoc project to doc the released toolkit components. * add dependencies on the dependencies of the released projects. * Update kdoc/build.gradle.kts Co-authored-by: Erick Lopez Solis <[email protected]> --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * add kdoc project! --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Puneet Prakash <[email protected]> Co-authored-by: Rama Chintapalli <[email protected]> Co-authored-by: Shubham Sharma <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> Co-authored-by: Gunther Heppner <[email protected]> Co-authored-by: hud10837 <[email protected]> * Micro app - sceneview viewpoint navigation (#291) * add micro app * update doc * add readme, screenshot. Remove use of spinner * update readme * update doc * update readme * update screenshot * update image, add new location remove unused imports * Geo-Compose: Add module README (#294) * add readme and screenshot to geo-compose module * use table for screenshot * reduce screenshot size * reduce screenshot size * reduce screenshot size * increase screenshot size * reduce screenshot size * Deprecate composable-map (#293) * changes for authentication and compass app * update floorfilter micro app * deprecate composable map * update deprecated annotation * add deprecation annotation to public components * update template-app to use geo-compose module * remove unused import reformat code * Add missing doc to geo-compose classes (#307) * added attribution bar changes (#309) * Geo-compose: Remove ViewpointChangedEvent (#310) * modify mapview with new params * modify sceneview with new params * delete viewpointchangedstate * Geo-compose: Remove ViewpointOperations (#316) * rm MapViewpointOperation * rm SceneViewpointOperation * add mapviewproxy methods * add sceneviewproxy methods * update mapview set viewpoint app * refactor sceneview setviewpointapp * refactor mapview setviewpointapp to match structure of sceneview app * update readmes * rm progress indicator from sceneview app * address pr comments * address pr comments * Compose doc improvements (#315) * Add @Stable annotation #319 * Update SceneViewCameraController app to use SceneViewProxy (#325) * Update SceneViewCameraController app to use SceneViewProxy setViewPointCameraAnimated function * update floorFilterApp * Merge v.next into feature-branches/geo-compose (#327) * change name of Licesne file in preparation for migration to Esri * revert change to license file name * remove extra license file * Update README.md images (#102) * holder commit * Update README.md update link * upload screenshot image * add images to the micro app * Update README.md * Update README.md * use updated name of the auth dependency in README * Create t9nmanifest.txt (#167) * removed module and microapp (#208) * Update gradle.properties (#211) * Update build.gradle.kts (#212) * updates client id and redirect Uri (#216) * Take out build numbers for publishing (#219) * update dependency section of readme for 200.3.0 (#220) * Improve WebView Display (#213) * Update gradle.properties (#238) * Update dependency versions (#235) * kdoc project to doc the released toolkit components. (#284) * kdoc project to doc the released toolkit components. * add dependencies on the dependencies of the released projects. * Update kdoc/build.gradle.kts Co-authored-by: Erick Lopez Solis <[email protected]> --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * Add version to API ref (#314) --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Rama Chintapalli <[email protected]> Co-authored-by: Shubham Sharma <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> Co-authored-by: Gunther Heppner <[email protected]> Co-authored-by: hud10837 <[email protected]> * Revisit GraphicsOverlayCollection, AnalysisOverlayCollection and ImageOverlayCollection (#320) * Remove GraphicsOverlaysCollection and its usage Add parameter to MapView to take graphicsOverlays as List * update mapView and SceneView to use arrays for image overlays and analysis overlays update micro app * update geometry editor micro app * remove all graphics overlays, rather than just clear graphics * Update param type to List * remove comma * update doc * update micro app * remember emptylist() * use it instead of mapView * use it instead of sceneView * use it instead of sceneView * use it instead of sceneView --------- Co-authored-by: Gunther Heppner <[email protected]> * modify compass microapp to use mapViewProxy for viewpoints (#337) * Composable MapView/SceneView: remember default parameters (#330) * add remember to default parameters in mapview * add remember to default parameters in sceneview * add circular progress indicator to sceneview setviewpoint microapp * fix lighting options app * use defaults for sceneview * add mapviewdefaults * add doc * Update map and scene parameters to be non-nullable (#331) * SceneView: analysis overlay microapp (#306) * add readme and screenshot to geo-compose module * create microapp module * add prototype version * clean up implementation * add readme * update screenshot * revert screenshot for GeoCompose * update GraphicOverlays and AnalysisOverlay to use latest implementation * update ReadMe * fix typo * add description doc for MainScreen() --------- Co-authored-by: Puneet Prakash <[email protected]> * Composable GeoViews: Viewpoint Persistence (#343) * prototype persistence enum * move viewpoint related code to separate function * ensure persistence type changes are monitored * persist camera for sceneview * initialize sceneview with default matrix * add doc * always set persisted viewpoint even when null * use when statement * mv visible area changed invocation * rename viewpoint persistence * permit nullable persisted camera on sceneview * Rename viewpoint persistence and make it sealed class with overwritten equals and hashcode. This is needed in case we want to add some property to the class later on. * simplify getting current viewpoint and setting to persisted viewpoint * normalize point on save * only normalize viewpoint if sr is pannable or geographic' git push * use mapviewdefaults for default viewpoint persistence value * use normalized geometry as point or polygon depending on viewpoint type * persist non normalized viewpoint if normalized viewpoint is null * rename value from restore in sceneview * add explanatory comments * refactor extension fun mapview.getviewpointbypersistence * Add comments * fix template app still using viewpoint operation * use expression syntax * add viewpoint persistence doc * mv parameter higher * rm cast to polygon for bounding geometry on restoration * factor out normalize function * use early return style for readability' * rename viewpointtopersist -> normalizedviewpoint * use expression syntax for hashcode and equals * convert tryNormalizeViewpoint to extension fun on Viewpoint --------- Co-authored-by: Puneet Prakash <[email protected]> Co-authored-by: Gunther Heppner <[email protected]> Co-authored-by: Shubham Sharma <[email protected]> Co-authored-by: Changan Shi <[email protected]> Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Rama Chintapalli <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * merge feature branches/forms -> v.next (#360) * only show date in field when the element's includeTime is false. * feedback and other gradle workarounds * DateTimePicker validation and state update (#78) * hoisted states upto DateTimePickerState and removed visible behavior * added DateTime class * conflict resolution fix * DateTimePicker landscape layout (#83) * consume core * print stack trace when core throws a sigbus * triage core issues * print stack trace when core throws a sigbus * don't change supprting text colors under any circumstances. * run test from json data, not from service data * update to latest core build * FormTextField description focus fix (#87) * add data. avoid expression names * avoid expression names * Form content clipping fix (#89) * added measure and placement constraints for the bottomsheetscaffold * removed transparent top bar :( * remove preview that con no longer be doen without public serialization support. fix some things that broke through merges remove serialization dependency * add some remembers. not sure how to remember a State instance on a state object across pause/resume * add saver for DateTimePickerState * add saver for DateTimePickerState * remove logging * date time fixes wip * date time calcs all working correctly * remove print statements * doc, remove more print statements * better doc * eol at eof * update textfield tests to use core API * remove excess remembrance. refactor a bit for PR feedback. * naming changes * eol at eof * work around lack of recompose of the yearremove input for remembering the date time picker state. add a call to dateTimePickerState.setSelection so that even though the state object is remembered, the selection is re-set on recompose. * remove input for remembering the date time picker state. add a call to dateTimePickerState.setSelection so that even though the state object is remembered, the selection is re-set on recompose. * fix issue with DateTimePicker state saver * address basic issue of enabling the OK button in a way that abides the min and max datetimes * fix min and max comparisons * Update DateTimePicker.kt (#113) * init copy * fixed compilation errors * Featureforms micro-app update to cache portalitems (#107) * Working fetching portals from remote * added icons for portal access type * added room database * working room database for portal cache * moved first fetch into viewmodel * refactored repository-domain structure * updated content visibility once loaded * working update * revert unchanged files * fixed thumbnail loading * added comments * updated fetching portalitems based on their itemid from local cache * added new public webmap and added enabled state to refresh dropdown menu * PR feedback * FeatureformsApp : add thumbnails cache (#110) * added thumbnail caching * updated access info from thumbnails to text * removed itemrepository and moved responsibility into PortalItemRepository * added comments * moved coil dependency to root level * Update PortalItemRepository.kt * added mutex to local cache map * fix return@withContext usage * remove commented out code * pick up latest SDK with mutable elements in the FeatureForm * moved imports * fixed timepicker bugs * added copyright * move TimePickerState into the PickerContent. Remove call to datePicker.setSelection. Remove now and today state object methods. * remove unused code * fix up last commit -- from the wrong source on my machine! * subtract the offset to represent fake picker UTC, don't add it * picker dates is utc plus offset (not minus!). get the date millis after the addition so the timezone doesn't affect the times derived from the millis. * fix now freeze (#123) * remove call to set date picker set selection, no longer needed. * remove double counting * wip with included build * value, editable, and required events working for text fields. * dontuse a coroutine use a LaunchedEffect * respect isRequired in TextFields! * required events support * note * doc * date time expression support * doc * add circular progress indicator * state flow combine * only evaluate expressions based on user edits to text fields, not due to changes from the evaluation of expressions. * text form changes to support use of combine * date time form element input type changes to support use of combine * date time form element input type changes to support use of combine * rollback versioning changes * roll back unrelated code change * remove redundant statefulness * follow up to events API changes * Forms combo box implementation (#127) * init prototype * added bottomsheet for combobox * Update FormTextFieldState.kt * refactored basefieldstate * updated basetextfield * moved combobox to use basetextfield and updated basetextfield * added description * changed combobox bottomsheet to dialog * added clear icon * added no value validation and row * optimized imports * added comments and copyright * Update FormElements.kt * updated basefieldstate to work with expressions * added more comments * combobox expressions update * Update ComboBoxFieldState.kt * fixed text field validation * using codedvalues from api * updated validation for textfield * changed basefieldstate to be a simple class * update string resource * add remembersaveable to comboboxdialog * fix conflict resolution error * numeric text field support. * fix conflict resolution error. * remember to evaluate expressions * Form field states remember saveable (#131) * init refactor * textareainput show done button even if field is empty * introduced classes to wrap common parameters * Update FormElements.kt * working remembersaveable * added remembersaveable outside lazycolumn * added id for formfieldelement * optimized imports * undo changes * optimized more imports * updated field element to not remember datetimefieldstate * updated unique id calc for fieldformelement * mark comboboxfieldstate as stable * add domain, fieldType to BaseFieldProperties. * tests for numeric text box * self review * change identifyLayer to identifyLayers (#137) * move fieldType and domain down to FormTextFieldState. get range from the feature table. * just use number keyboard for integers so negative numbers can be typed by the user. * revert settings.gradle changes * Forms combo box required validation (#134) * added required expression support * added validation on "clear" * hoist up the fieldType so the TextField is just handed a keyboard type. * migrated to use standardbottomsheet instead of a scaffold (#135) * updated sdk build to 4019 (#139) * use numeric keyboard in ComboBoxDialog filter when fieldType is numeric. * filter out layers without forms in results of identify * simplify logic * Forms: DateTimeFieldState refactor (#133) * init refactor * textareainput show done button even if field is empty * introduced classes to wrap common parameters * Update FormElements.kt * working remembersaveable * added remembersaveable outside lazycolumn * added id for formfieldelement * optimized imports * undo changes * optimized more imports * updated field element to not remember datetimefieldstate * migrated DateTimeFieldState to use BaseFieldState * added saver to DateTimeFieldState * update doc * switch input support * address feedback * drop the first isFocused StateFlow emission in the FormTextFieldState init block. * fall back to combo when the initial value doesn't match the on or off coded value. * self review * rewrite validation for FormTextFields * Forms : Refactor `ComboBoxFieldState` into `CodedValueFieldState` (#146) * refactor comboboxfieldstate into codedvaluefieldstate * Update CodedValueFieldState.kt * refactored list of codedvalues to be list of strings * changed comboboxdialog to show codedvalue.name * Forms : Updated `ComboboxField` to display `CodedValue.name` (#148) * updated comboboxfield to display codedvalue.name * optimized imports * SwitchFieldState inherits from CodedValueFieldState * support error validation state in FormTextFieldState.Saver, rememember * clean up, add runtime checks, comments. * further isolate error messaging and validation * updated basetextfield label overflow and added preview (#150) * Forms : introduce `RadioButtonInput` (#149) * init radiobutton field type impl * added no value row handing * added default color support for radio button * refactor comboboxfieldstate into codedvaluefieldstate * Update CodedValueFieldState.kt * refactored list of codedvalues to be list of strings * radiobuttonfieldstate subclasses codedvaluefieldstate * updated merge conflicts * fixed fallback behavior * extracted params from RadioButtonField to support preview * PR feedback * conflict resolution * fix collateral merge build breaker * present the latest emitted value for a text field, regardless of editability. * allow switch to change when text field is tapped. remember if the switch is falling back to a combo. * provide the Switch through the trailingIcon of the OutlinedTextField * remove unnecessary open modifier * add try-catch to featureFormDefinition check (#155) * drop first emitted value from properties.value in favor of the initial value. This preserves edits on config change even if the field is no longer editable. * Forms : Fix orientation changes for Dialogs (#156) * added custom dialog type * updated dialog for ComboBoxField * updated dialog name * added doc * add dialog request callback to switch fallback * Forms: `DateTimeField` changes (#161) * moved to BaseFieldState * added required validation * optimized expr eval ui (#169) * `Forms`: DateTimePicker defaults (#168) * moved to BaseFieldState * added required validation * updated default datetimepicker logic * Update MapScreen.kt (#171) * removed FormElement dependency from FieldElement (#175) * consume update value (#162) * provide a StateFlow for the formattedValue property * update to 4036 SDK * remove release signing logic * Use updateValue to set the attribute value. * Cast the value to the appropriate type before calling updateValue. * fix fallback logic. accept Instant as a supported type for a FieldType of type DateTime. * make the input type of radio a String and base logic around the name of the coded value. * use name instead of code as the value for all elements which use a CodedValueFieldState. * log a warning when applying edits fails * change name of formattedFlow. show a toast when edits cannot be applied --------- Co-authored-by: Soren Roth <[email protected]> * update to rtc 4043 (#180) Co-authored-by: Soren Roth <[email protected]> * `Forms`: Group Elements Support (#179) * optimized state creation (#181) * update to build 4046 (#185) * use datetime raw value (#184) * expect a formatted value to be UTC * make BaseFieldState generic * make DateTimeFieldState vary with Instant? make DateTimeField work with Instant, not Long. * only support date time text field value changes that clear the text. * PR review suggestions * fuse usage of formattedValue and value into one type safe generic function --------- Co-authored-by: Soren Roth <[email protected]> * novaluelabel selection fix (#188) * searchable items map list screen (#189) * make maps searchable by title or item id * hoist search text to the map list view model * filter field consistency between horizontal and vertical layout. rounded corners. --------- Co-authored-by: Soren Roth <[email protected]> * bump sdk to 4056 (#196) Co-authored-by: Soren Roth <[email protected]> * Forms: DatePickerDialog scaling (#198) * fix ff tests (#201) * update tests for type safe value flow * remove unnecessary modifier --------- Co-authored-by: Soren Roth <[email protected]> * `Forms`: Micro-app add enterprise login (#204) * `Forms` : Microapp SideSheet support (#207) * make values focusable (and copyable) when not editable (#200) * make values focusable (and copyable) when isEditable = false. * organize color defaults for BaseTextField --------- Co-authored-by: Soren Roth <[email protected]> * Forms: Add ComboBox tests (#141) * `Forms` : GroupElements fixes (#210) * `Forms` microapp : Add network credential store (#215) * `Forms`: GroupElement tests (#214) * `forms:` extract commit transaction to microapp (#209) * extract commit support from public toolkit featureform component. * move commitEdits into MapViewModel --------- Co-authored-by: Soren Roth <[email protected]> * `Forms`: Microapp add login url recent history (#222) * `Forms`: Combo Box Dialog sizing (#225) * `Forms`: Microapp optimizations (#239) * removed refresh action * added parallel item loading * removed redundant code * introduced AsyncImage and removed dependency on coil * updated asyncimage params * removed thumbnail loading from portal item repository and from the database * added comments * removed coroutinescope dependency for portal item repo * added remember for imageloader * Update PortalItemRepository.kt * `Forms`: Common base state (#252) * added FormElementState * updated state reading * updated saver type * refactored and removed feature form state (#250) * validation via the SDK (#267) * expect a formatted value to be UTC * make BaseFieldState generic * make DateTimeFieldState vary with Instant? make DateTimeField work with Instant, not Long. * first pass at consuming core validation errors * factor out Validation States to a common file * remove merge detritus * update SDK. * cleanup * remove unused import. simplify syntax. --------- Co-authored-by: Soren Roth <[email protected]> * `Forms`: Refactored Dialog Mechanism (#254) * `Forms`: Iterable collection of states (#263) * fix renamed method calls (#271) * fix test compilation errors (#273) Co-authored-by: Soren Roth <[email protected]> * `Forms`: Refactor Validation (#276) * `Forms`: Fix failing tests (#283) * `Forms:` date time UI tests (#277) * date time picker interrogation * fix test compilation errors * date time tests * comments * remove debugging code --------- Co-authored-by: Soren Roth <[email protected]> * `Forms`: Refactored state flow based Impl into compose state based (#287) * `Forms` : Added discardEdits API and UI (#295) * `Forms`: Submit Form Validation (#292) * bumping sdk to 4122 (#299) Co-authored-by: Soren Roth <[email protected]> * `Forms`: Select Feature (#298) * merge v next (#302) * Update dependency versions (#235) * kdoc project to doc the released toolkit components. (#284) * kdoc project to doc the released toolkit components. * add dependencies on the dependencies of the released projects. * Update kdoc/build.gradle.kts Co-authored-by: Erick Lopez Solis <[email protected]> --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * add back compose navigation and use compose bom in ff app --------- Co-authored-by: hud10837 <[email protected]> Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * fix up versions. * make FormElementState internal (#304) * `Forms`: Update readme (#305) * `Forms` : Update disabled fields style (#308) * incorporate breaking API change GroupElement.formElements -> GroupElement.elements (#311) Co-authored-by: Soren Roth <[email protected]> * `Forms`: Attachments API (#313) * added mock api * Update AttachmentFormElement.kt * added check for creating bitmaps * updated with latest api design * Update evaluation expression loading animation (#322) * reverted to outlinedtextfield (#323) * `Forms` Fork date picker (#321) * attachment UI functional prototype (#317) * basic attachment element view * AttachmentDetails view * static design complete * use passed in modifier for top level card * ship it * add a choose file button. add cloud icon * add editable state to header * rename file * share interaction source between thumnail and details * remove unused code * set thumbnail image aspect ratio to 1.0f * code review UI changes * minor style sizing * remove hardcoded prototype composable call --------- Co-authored-by: Soren Roth <[email protected]> * Add version to API ref (#314) (#328) Co-authored-by: Shubham Sharma <[email protected]> * `Forms` : Consume latest sdk (#324) * feature form recomposition when a new Feature is selected (#326) * support changing selected feature without showin discard edits dialog * add dialog when selecting new Feature. * remove comment * feedback --------- Co-authored-by: Soren Roth <[email protected]> * remove experimental softwarekeyboardcontroller (#335) * `Forms`: Consume `validationErrors` stateflow (#338) * pick up SDK 4159 (#340) Co-authored-by: Soren Roth <[email protected]> * `Forms`: Add basic theming support (#339) * updated tests and removed clear icon for combo fields (#342) * make Attachment prototypes internal for release. (#344) Co-authored-by: Soren Roth <[email protected]> * `Forms` : Read only fields re-design (#346) * `Forms`: bump sdk to 4167 (#347) * `Forms` : Revert map state (#348) * `Forms` api backwards compatibility validation (#345) * add api file and bcv support * ignore ComposableSingleton classes * update api file * add todo --------- Co-authored-by: Soren Roth <[email protected]> * create an internal subpackage containing all non public packages. (#350) Co-authored-by: Soren Roth <[email protected]> * replace clear button on required date time fields (#351) * replace clear button from required date time fields with date time picker dialog button * just use the edit calendar icon. --------- Co-authored-by: Soren Roth <[email protected]> * `Forms` : add radio and switch tests (#352) * added radio and switch tests * added comments * remove old view model test from app project. * update since version of the public FeatureForm composable method. * add copyrights * remove kapt from featureforms app * move ksp plugin to end of list * Create README.md * Add files via upload * Update README.md --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Kaushik Meesala <[email protected]> Co-authored-by: Kaushik Meesala <[email protected]> Co-authored-by: hud10837 <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> Co-authored-by: Puneet Prakash <[email protected]> Co-authored-by: Shubham Sharma <[email protected]> * don't normalize viewpoints before persisting (#357) * Implements setting and modifying a map/layers (#136) * changes to display a map * remove unnecessary line * add viewmodel to the micro app * Revert "add viewmodel to the micro app" This reverts commit cfc6b0b39aff5cb79d5ef191e6cdd5634415925f. * address code review feedback * remove unused imports * add overlay support (#143) * add overlay support * add doc * remove the fillmaxsize modifier * remove MapState * add viewpointChangedLambda (#159) * add viewpointChangedLambda * address code review feedback * Support LocationDisplay (#160) * add location display micro app * add location permissions * add support for location display * screen to start/stop a location display * fix typo * show error message if location display fails to start * add AppBar and auto pan mode options * fix type of key * improve doc * add readme * adjust screen shot size * adjust screen shot size * set MapView properties in the update callback * use by remember for mutable state * set error message when LDS fails to start when toggling switch * fix doc references to composable Map * Compose Map InteractionOptions (#163) * Rename - Compose MapView (#165) * Compose MapView: Geometry editor (#170) * Compose MapView: SelectionProperties (#173) * add support for WrapAroundMode (#176) * Compose MapView: ViewLabelProperties (#174) * add implementation for gesture events (#172) * add implementation for gesture events * update SDK dependency add Events exposed on GeoView * address code review comment * address code review comments * refactor mapView.viewpointChanged * Compose Map - graphics overlay (#166) * moved GraphicsOverlaysUpdater (#183) * added grid & backgroundGrid impl (#192) * Draw Status (#186) * Geometry editor micro-app (#178) * added invoke (#197) * Update MapView doc pattern (#191) * add support for attribution text (#187) * add support for attribution text * combine attribution bar properties/events in a state object * refactor mapview parameter list * update collect lambda * Update doc * update doc * Add spatialreference changed callback (#193) * invoke currentOnInteractingChanged with initial value of isInteracting * add callback to mapview * rm initial value calls * change ?.let calls to ?.invoke * move parameter above onInteractingChanged * move launch statement above onInteracitngChanged * MapView Rotation & Scale (#195) * Add inset support (#182) * add mapview inset app * add app to settings.gradle * WIP * update formatting * address code review comments * update setViewInset values * add readme * Update README.md * add doc * address code review feedback * rename mapinsets to insets * rename mapinsets * update doc * address code review comments * Add mapview proxy (#190) * create MapViewOperator class * add param to MapView composable * add locationToScreen and doc * more doc * refactor MapView composable to remove unnecessary code * move mapoperator mapview setting to own disposable effect * don't use synchronize for operations * Eof newline * make MapViewOperator derive from a new GeoViewOperator * eof newline * return null if nan from locationToScreen * add copyrights * fix doc * fix doc * rename operator to proxy * rm overlay param again * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/GeoViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapView.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/MapViewProxy.kt Co-authored-by: Gunther Heppner <[email protected]> * Apply doc fixes from code review Co-authored-by: Puneet Prakash <[email protected]> * mv param below geometry editor * fix doc line length * fix param doc * fix param doc --------- Co-authored-by: Gunther Heppner <[email protected]> Co-authored-by: Puneet Prakash <[email protected]> * update the copyright to the apache License (#203) * add support for onNavigationChanged (#199) * add support for onNavigationChanged * add doc * MapView TimeExtent (#194) * Support for setting Viewpoint on MapView (#202) * support for ViewpointOperation - initial commit * MapViewpointOperation - prototyping * implement await() on MapViewpointOperation, remove onCompleted callbacks * renaming * add execute extension for remaining operations * rename Bounding to SetBoundingGeometry * add set bookmark * add remaining operations to when statement * make execute an abstract fun on MapViewpointOperation * Add set viewpoint app * fix typo * add dependency to microapp on geocompose * add simple app to set viewpoint with different options * add progress indicator to demonstrate await pattern * extract bookmark to remembered val * make abstract fun an extension fun instead * add doc * add readme to microapp * eof newline * fix readme title * rever locationdisplayapp changes * update screenshot * update readme wording * use a simple list instead of reflection * add doc to MainScreen * add dash to project app name * naming and doc changes * mv onViewpointChanged parameter * change dfeautl animate duration to 0.25 * update microapp module namw --------- Co-authored-by: Hudson Miears <[email protected]> * Refactor mapview insets app (#206) * update all since tags in geo-compose module (#227) * Geo-compose: add identify methods and microapp (#223) * add methods to geoviewproxy * rename identifyLayer and identifyGraphicsOverlay to identify as overloads * add prototype app * fix recursive bug * refactor app to separate subcomponents * make one source of truth for geoview in geoviewproxy * make one source of truth for geoview in geoviewproxy * mv business logic to view model class * update doc * add doc to microapp * add top bar * add readme and screenshot * adjust readme description * adjust string resources and error messages * modify identify method to be cancellable and consolidate logic * adjust bottom sheet to only expand to half screen height and move map viewpoint * rename EventDetails -> IdentifyDetails * nullGEoViewErrorMessage no longer uses a getter * rework caching of mapview in proxy to match previous implementation * change doc DIPS -> Dp * fix tolerance parameter types -> Dp * use nullable maximumResults to match swift * sanitize max results * rm yield * add doc enhancements * extract maximum results fun * clamp 0 values for maximumResults * rm throws doc * adjust insets on bottom sheet state change * rm insets behavior * fix doc references * fix doc 200.4.0 * update screenshot * rename className prop * make details height a const * Rename MapView-related microapps to have MapView prefix (#226) * Rename MapView-related microapps to have MapView prefix * Rename all other instances with mapview prefix * rename names in readmes * rename files * rename test directories * add onUnitsPerDipChanged callback lambda (#232) * Add exportImage fun to GeoViewProxy (#233) * Add exportImage fun to GeoViewProxy * update doc * update doc * add isWrapAroundEnabled property to GeoViewProxy (#231) * add isWrapAroundEnabled property to GeoViewProxy * update @since * add doc * Geo-compose: add basic SceneView function (#230) * add SceneView function * eof newline * fix doc and copyright * don't use fully qualified sceneview * added compose BOM (#237) * add ViewPointState (#234) * add ViewPointState * address code review feedback * update doc * Hud10837/layer view state (#228) * add methods to geoviewproxy * rename identifyLayer and identifyGraphicsOverlay to identify as overloads * add prototype app * fix recursive bug * refactor app to separate subcomponents * make one source of truth for geoview in geoviewproxy * make one source of truth for geoview in geoviewproxy * mv business logic to view model class * update doc * add doc to microapp * add top bar * add readme and screenshot * adjust readme description * adjust string resources and error messages * modify identify method to be cancellable and consolidate logic * adjust bottom sheet to only expand to half screen height and move map viewpoint * rename EventDetails -> IdentifyDetails * nullGEoViewErrorMessage no longer uses a getter * rework caching of mapview in proxy to match previous implementation * change doc DIPS -> Dp * fix tolerance parameter types -> Dp * use nullable maximumResults to match swift * sanitize max results * rm yield * add doc enhancements * extract maximum results fun * clamp 0 values for maximumResults * rm throws doc * adjust insets on bottom sheet state change * add layerviewstatechanged callback * add getLayerViewState * move getLayerViewState * mv param position and fix identify mainscreen * SceneView: add sceneview gesture events (#241) * add SceneView function * eof newline * fix doc and copyright * add gesture events * fix param doc" * SceneView: create SceneViewProxy (#246) * create initial SceneViewProxy class * add disposal logic to proxy class * add sceneViewProxy to SceneView * add copyright * SceneView: graphics overlays (#245) * extract graphicsoverlayupdater * eof newline * SceneView: add scene viewpoint operation (#240) * create SceneViewpointOperation * add operation to sceneview * add all operations for sceneview * add doc * eof newline * eof newline * Don't use named params on viewpoint updater * use kotlinx cancellation exception * add copyright * use duration in viewpoint operations * doc * rename durationSeconds and fix microapp * Update feature branch with v.next (#243) * add navigationchanged to sceneview (#248) * SceneView: add ViewLabelProperties (#249) * add viewlabelproperties to sceneview' * fix doc --------- Co-authored-by: Gunther Heppner <[email protected]> * SceneView: attribution (#247) * mv AttributionStateHandler function to AttributionState.kt * add attributionState param to SceneView * add @since tag --------- Co-authored-by: Gunther Heppner <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt (#253) Co-authored-by: Gunther Heppner <[email protected]> * shared the ViewpointChangedState with SceneView (#261) * SceneView TimeExtent (#260) * shared the ViewpointChangedState with SceneView * review update * merge with the feature branch * SceneView spatial reference changed (#258) * add spatial ref changed support * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * shared the ViewpointChangedState with SceneView --------- Co-authored-by: Puneet Prakash <[email protected]> * shared the ViewpointChangedState with SceneView (#257) * add layerViewStateChanged to SceneView (#262) * The view property needs to be assigned in ViewProxy class (#264) * add cameraController oaram to sceneview (#265) * add onDrawStatusChanged to SceneView (#266) * add FieldOfView (#270) * SceneView: add sunLighting and sunTime (#275) * add sunLighting and sunTime * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * SceneView current viewpoint camera (#256) * add getCurrentViewpointCamera in proxy * expose the currentViewpoint property * impls current view camera * adds a space for lambda * merged with feature branch. * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * add atmosphereEffect (#278) * Add funs for screen coordinate conversion (#272) * Add funs for screen coordinate conversion * update doc * update doc for SceneView Suntime and SunLighting (#282) * SceneView: AnalysisOverlayCollection (#269) * create AnalysisOverlayCollection * mv factory for graphics overlay collection * add analysis to scene view * eof newlines * add doc * Fix doc that mentions graphics overlays Co-authored-by: Puneet Prakash <[email protected]> * mv factory function to SceneView file * address doc comments * mv updater to SceneView file * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> --------- Co-authored-by: Puneet Prakash <[email protected]> * Add space effects on the scene view (#281) * add space effects on scene view * update the comment * SceneView: ambient light color (#279) * add sceneview ambientLightColor param * fix doc * rm full stop * SceneView: add manual rendering funs to SceneViewProxy (#280) * add manual rendering funs to SceneViewProxy * Fix doc * fix doc * SceneView: ImageOverlays (#274) * add ImageOverlayCollection and property * mv factory function to SceneView file * fix doc comments * mv updater to sceneview.kt * Update toolkit/geo-compose/src/main/java/com/arcgismaps/toolkit/geocompose/SceneView.kt Co-authored-by: Puneet Prakash <[email protected]> * use data object for Cleared event * use data object for cleared even tin AnalysisOverlayCollection * use data object for cleared event in GraphicsOverlayCollection --------- Co-authored-by: Puneet Prakash <[email protected]> * SceneView: lighting options microapp (#286) * add sceneview ambientLightColor param * add space effects on scene view * update the comment * fix doc * create lighting options microapp base * set up dropdown menu * add sun time options * add lighting mode options * add Ambient light color options * add atmosphere effect options * add space effect options * change viewpoint and fix sun time picker * clean up code * use sliders instead of textfields for rgb colors * add doc * add readme and screenshot * eof newline * add doc to components * add missing imports * Add doc DropdownMenuAlertDialog * add missing copyright headers * add doc RgbaSlider * add remaining doc * Update microapps/SceneViewLightingOptionsApp/README.md Co-authored-by: Gunther Heppner <[email protected]> --------- Co-authored-by: Changan Shi <[email protected]> Co-authored-by: Gunther Heppner <[email protected]> * bumping sdk to 4122 (#300) Co-authored-by: Soren Roth <[email protected]> * add maven publishing to geo-compose (#301) Co-authored-by: Soren Roth <[email protected]> * Scene view camera controller app (#288) * init implementation for camera controller * add gitignore * adds comments and remove view model. * update the doc and png image * update the comment * add the extra space line * update the screenshot * review update * update the 2023 comment * update the comment * review update * v next merge to geo compose (#303) * change name of Licesne file in preparation for migration to Esri * revert change to license file name * remove extra license file * Update README.md images (#102) * holder commit * Update README.md update link * upload screenshot image * add images to the micro app * Update README.md * Update README.md * use updated name of the auth dependency in README * Create t9nmanifest.txt (#167) * removed module and microapp (#208) * Update gradle.properties (#211) * Update build.gradle.kts (#212) * updates client id and redirect Uri (#216) * Take out build numbers for publishing (#219) * update dependency section of readme for 200.3.0 (#220) * Improve WebView Display (#213) * Update gradle.properties (#238) * Update dependency versions (#235) * kdoc project to doc the released toolkit components. (#284) * kdoc project to doc the released toolkit components. * add dependencies on the dependencies of the released projects. * Update kdoc/build.gradle.kts Co-authored-by: Erick Lopez Solis <[email protected]> --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> * add kdoc project! --------- Co-authored-by: Soren Roth <[email protected]> Co-authored-by: Puneet Prakash <[email protected]> Co-authored-by: Rama Chintapalli <[email protected]> Co-authored-by: Shubham Sharma <[email protected]> Co-authored-by: Erick Lopez Solis <[email protected]> Co-authored-b…
1 parent 0e54056 commit 01ce496

File tree

388 files changed

+23278
-1276
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

388 files changed

+23278
-1276
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ proguard/
2323
.classpath
2424
bin/
2525
gen/
26-
/.settings
26+
.settings/
2727
.vscode/
2828

2929
# OS generated files #

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ The ArcGIS Maps SDK for Kotlin Toolkit contains components that will simplify yo
1111
* **[GeoView-Compose](toolkit/geoview-compose)** - Compose wrappers for the MapView and SceneView.
1212
* **[Callout](toolkit/geoview-compose#display-a-callout)** - Draws a callout on the GeoView to display Composable content.
1313
* **[Popup](toolkit/popup)** - View field values of features in a layer using the Popup API.
14+
* **[UtilityNetworkTrace](toolkit/utilitynetworks)** - Configure, run, and visualize UtilityNetworkTraces on a composable MapView.
15+
* **[Augmented Reality](toolkit/ar)** - Provides components to "augment" the physical world with virtual content.
1416

1517
## API Reference
1618

@@ -43,12 +45,15 @@ repositories {
4345
The *ArcGIS Maps SDK for Kotlin Toolkit* is released with a "bill of materials" (`BOM`). The releasable BOM is versioned and represents a set of versions of the toolkit components which are compatible with one another. You may specify dependencies as follows
4446

4547
```
46-
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:200.5.0"))
48+
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:200.6.0"))
4749
implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")
4850
implementation("com.esri:arcgis-maps-kotlin-toolkit-compass")
51+
implementation("com.esri:arcgis-maps-kotlin-toolkit-featureforms")
4952
implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
5053
implementation("com.esri:arcgis-maps-kotlin-toolkit-indoors")
5154
implementation("com.esri:arcgis-maps-kotlin-toolkit-popup")
55+
implementation("com.esri:arcgis-maps-kotlin-toolkit-utilitynetworks")
56+
implementation("com.esri:arcgis-maps-kotlin-toolkit-ar")
5257
```
5358

5459
The template and TemplateApp modules are for bootstrapping new modules.

bom/build.gradle.kts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ val artifactoryUsername: String by project
3131
val artifactoryPassword: String by project
3232
val versionNumber: String by project
3333
val buildNumber: String by project
34-
val ignoreBuildNumber: String by project
35-
val artifactVersion: String = if (ignoreBuildNumber == "true") {
34+
val finalBuild: Boolean = (project.properties["finalBuild"] ?: "false")
35+
.run { this == "true" }
36+
val artifactVersion: String = if (finalBuild) {
3637
versionNumber
3738
} else {
3839
"$versionNumber-$buildNumber"

build.gradle.kts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ plugins {
2828
alias(libs.plugins.kotlin.serialization) apply false
2929
alias(libs.plugins.dokka) apply false
3030
alias(libs.plugins.gmazzo.test.aggregation)
31+
alias(libs.plugins.compose.compiler) apply false
3132
}
3233

3334
buildscript {
@@ -38,6 +39,38 @@ buildscript {
3839
// before any dependent subproject uses its symbols to configure a dokka task.
3940
classpath(libs.dokka.versioning)
4041
}
42+
val finalBuild: Boolean = (project.properties["finalBuild"] ?: "false")
43+
.run { this == "true" }
44+
45+
if (finalBuild) {
46+
check(project.hasProperty("versionNumber"))
47+
project.logger.info("release candidate build requested version ${project.properties["versionNumber"]}")
48+
} else if (!project.hasProperty("versionNumber") && !project.hasProperty("buildNum")) {
49+
// both version number and build number must be set
50+
java.util.Properties().run {
51+
try {
52+
File(project.projectDir, "../buildnum/buildnum.txt")
53+
.reader()
54+
.use {
55+
load(it)
56+
}
57+
this["BUILDVER"]?.let {
58+
project.extra.set("versionNumber", it)
59+
}
60+
this["BUILDNUM"]?.let {
61+
project.extra.set("buildNumber", it)
62+
}
63+
check(project.hasProperty("versionNumber"))
64+
check(project.hasProperty("buildNumber"))
65+
project.logger.info("version and build number set from buildnum.txt to ${project.properties["versionNumber"]}-${project.properties["buildNumber"]}")
66+
} catch (t: Throwable) {
67+
// The buildnum file is not there. ignore it and log a warning.
68+
project.logger.warn("the buildnum.txt file is missing or not readable")
69+
project.extra.set("versionNumber", "0.0.0")
70+
project.extra.set("buildNumber", "SNAPSHOT")
71+
}
72+
}
73+
}
4174
}
4275

4376
// Path to the centralized folder in root directory where test reports for connected tests end up
@@ -60,6 +93,7 @@ testAggregation {
6093
"microapps-lib",
6194
"template",
6295
"template-app",
96+
"utility-network-trace-app",
6397
"composable-map").forEach {
6498
this.modules.include(project(":$it"))
6599
}
@@ -77,3 +111,4 @@ fun getModulesExcept(vararg modulesToExclude: String): List<String> =
77111
}
78112
.filter { !modulesToExclude.contains(it) } // exclude specified modules
79113
}
114+

buildSrc/src/main/kotlin/deploy/ArtifactPublisher.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ package deploy
2121
import org.gradle.api.Plugin
2222
import org.gradle.api.Project
2323
import org.gradle.api.publish.PublishingExtension
24-
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
25-
import org.gradle.kotlin.dsl.*
2624
import org.gradle.api.publish.maven.MavenPublication
25+
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin
2726
import org.gradle.configurationcache.extensions.capitalized
27+
import org.gradle.kotlin.dsl.configure
28+
import org.gradle.kotlin.dsl.get
29+
import org.gradle.kotlin.dsl.provideDelegate
2830
import java.net.URI
2931

3032
/**
@@ -45,9 +47,10 @@ class ArtifactPublisher : Plugin<Project> {
4547
val artifactoryUsername: String by project
4648
val artifactoryPassword: String by project
4749
val versionNumber: String by project
48-
val ignoreBuildNumber: String by project
50+
val finalBuild: Boolean = (project.properties["finalBuild"] ?: "false")
51+
.run { this == "true" }
4952
val buildNumber: String by project
50-
val artifactVersion: String = if (ignoreBuildNumber == "true") {
53+
val artifactVersion: String = if (finalBuild) {
5154
versionNumber
5255
} else {
5356
"$versionNumber-$buildNumber"

ci/publish.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ function _check_options_and_set_variables() {
6969

7070
function _publish() {
7171
_log "Publish the release build to artifactory"
72-
if ! ${apps_path}/arcgis-maps-sdk-kotlin-toolkit/ci/run_gradle_task.sh -v -t publish -x "-PartifactoryUsername=${ARTIFACTORY_USR} -PartifactoryPassword=${ARTIFACTORY_PSW} -PversionNumber=${BUILDVER} -PbuildNumber=${BUILDNUM}" ; then
72+
73+
if ! ${apps_path}/arcgis-maps-sdk-kotlin-toolkit/ci/run_gradle_task.sh -t publish -x "-PartifactoryUsername=${ARTIFACTORY_USR} -PartifactoryPassword=${ARTIFACTORY_PSW} -PversionNumber=${BUILDVER} -PbuildNumber=${BUILDNUM} -PfinalBuild=${FINAL_BUILD}" ; then
7374
echo "error: Running the publish gradle task failed"
7475
exit 1
7576
fi

ci/run_gradle_task.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ function _run_gradle_task() {
7777
if [ "${verbose}" == "true" ]; then
7878
gradle_flags+="--info "
7979
fi
80-
80+
8181
if ! ./gradlew ${gradle_flags} ${task} ${extra_gradle_flags}; then
8282
echo
8383
echo "error: Something went wrong when running gradle"

gradle.properties

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,10 @@ artifactoryGroupId=com.esri
4444
artifactoryArtifactBaseId=arcgis-maps-kotlin-toolkit
4545
artifactoryUsername=""
4646
artifactoryPassword=""
47-
# these numbers will define the artifact version on artifactory
48-
# and are overridden by the jenkins command line in the daily build
49-
versionNumber=200.5.0
50-
buildNumber=0000-snapshot
51-
#set this flag to `true` to ignore the build number when publishing. This
52-
# will publish an artifact with a build number like "..:200.2.0" as opposed to "...:200.2.0-3963
53-
ignoreBuildNumber=true
54-
# these versions define the dependency of the ArcGIS Maps SDK for Kotlin dependency
55-
# and are generally not overridden at the command line unless a special build is requested.
56-
sdkVersionNumber=200.5.0
47+
48+
# These versions define the dependency of the ArcGIS Maps SDK for Kotlin dependency
49+
# when building the toolkit locally, typically from Android Studio. When building the toolkit
50+
# with CI, these versions are obtained from command line provided properties, see sdkVersionNumber
51+
# in settings.gradle.kts.
52+
sdkVersionNumber=200.6.0
5753
sdkBuildNumber=

gradle/libs.versions.toml

Lines changed: 39 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,50 @@ activityCompose = "1.8.2"
33
androidGradlePlugin = "8.3.2"
44
androidXBrowser = "1.8.0"
55
coilBOM = "2.5.0"
6-
composeBOM = "2024.04.01"
6+
composeBOM = "2024.10.00"
7+
androidxCamera = "1.4.0-rc02"
78
androidxComposeCompiler = "1.5.12"
89
androidxCore = "1.13.0"
910
androidxEspresso = "3.5.1"
1011
androidxHiltNavigationCompose = "1.2.0"
1112
androidxLifecycle = "2.7.0"
1213
androidxMaterialIcons = "1.6.6"
1314
androidxTestExt = "1.1.5"
15+
androidXTestRunner = "1.6.2"
16+
androidXTestRules = "1.6.1"
1417
androidxWindow = "1.2.0"
1518
binaryCompatibilityValidator = "0.14.0"
1619
compileSdk = "34"
1720
compose-navigation = "2.7.7"
21+
commonMark = "0.22.0"
1822
dokka = "1.9.20"
1923
hilt = "2.49"
2024
hiltExt = "1.2.0"
2125
junit = "4.13.2"
22-
kotlin = "1.9.23"
23-
ksp = "1.9.23-1.0.20"
26+
kotlin = "2.0.20"
27+
ksp = "2.0.20-1.0.24"
2428
media3Exoplayer = "1.3.1"
2529
minSdk = "26"
30+
mlkitBarcodeScanning = "17.3.0"
2631
kotlinxCoroutinesTest = "1.8.0"
2732
kotlinxSerializationJson = "1.6.3"
2833
mockkAndroid = "1.13.10"
2934
room = "2.6.1"
3035
truth = "1.4.2"
3136
uiautomator = "2.3.0"
37+
arcore = "1.45.0"
3238

3339
[libraries]
3440
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose"}
3541
androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidXBrowser"}
42+
androidx-camera-core = { group = "androidx.camera", name = "camera-core", version.ref = "androidxCamera" }
43+
androidx-camera-camera2 = { group = "androidx.camera", name = "camera-camera2", version.ref = "androidxCamera" }
44+
androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "androidxCamera" }
45+
androidx-camera-view = { group = "androidx.camera", name = "camera-view", version.ref = "androidxCamera" }
3646
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" }
3747
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBOM" }
3848
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" }
3949
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui"}
40-
androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime"}
4150
androidx-compose-material3 = { module = "androidx.compose.material3:material3"}
4251
androidx-compose-navigation = { group = "androidx.navigation", name = "navigation-compose", version.ref = "compose-navigation" }
4352
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics"}
@@ -56,13 +65,18 @@ androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "medi
5665
androidx-media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "media3Exoplayer" }
5766
androidx-test-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExt" }
5867
androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" }
68+
androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidXTestRunner" }
69+
androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidXTestRules" }
5970
androidx-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" }
6071
androidx-window = { group = "androidx.window", name = "window", version.ref = "androidxWindow" }
6172
androidx-window-core = { group = "androidx.window", name = "window-core", version.ref = "androidxWindow" }
73+
mlkit-barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "mlkitBarcodeScanning" }
6274
coil-bom = { group = "io.coil-kt", name = "coil-bom", version.ref = "coilBOM" }
6375
coil = { group = "io.coil-kt", name = "coil" }
6476
coil-base = { group = "io.coil-kt", name = "coil-base" }
6577
coil-compose = { group = "io.coil-kt", name = "coil-compose" }
78+
commonmark = { group = "org.commonmark", name = "commonmark", version.ref="commonMark" }
79+
commonmark-strikethrough = { group = "org.commonmark", name = "commonmark-ext-gfm-strikethrough", version.ref="commonMark" }
6680
hilt-android-core = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
6781
hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }
6882
hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hiltExt" }
@@ -78,6 +92,7 @@ room-compiler = { group = "androidx.room", name = "room-compiler", version.ref =
7892
room-ext = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
7993
truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
8094
dokka-versioning = { group = "org.jetbrains.dokka", name = "versioning-plugin", version.ref = "dokka" }
95+
arcore = { group = "com.google.ar", name = "core", version.ref = "arcore" }
8196

8297
[plugins]
8398
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
@@ -89,13 +104,26 @@ kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
89104
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
90105
gradle-secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version = "2.0.1"}
91106
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
107+
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
92108
gmazzo-test-aggregation = { id = "io.github.gmazzo.test.aggregation.results", version = "2.2.0" }
93109

94110
[bundles]
111+
camerax = [
112+
"androidx-camera-core",
113+
"androidx-camera-camera2",
114+
"androidx-camera-lifecycle",
115+
"androidx-camera-view"
116+
]
117+
95118
core = [
96119
"androidx-core-ktx"
97120
]
98121

122+
commonmark = [
123+
"commonmark",
124+
"commonmark-strikethrough"
125+
]
126+
99127
composeCore = [
100128
"androidx-compose-material3",
101129
"androidx-compose-ui",
@@ -107,22 +135,22 @@ composeCore = [
107135
composeTest = [
108136
"androidx-test-ext",
109137
"androidx-test-espresso-core",
110-
"androidx-compose-ui-test"
138+
"androidx-compose-ui-test",
139+
"truth"
111140
]
112141

113142
debug = [
114143
"androidx-compose-ui-tooling",
115144
"androidx-compose-ui-test-manifest"
116145
]
117146

118-
serialization = [
119-
"kotlinx-serialization-core",
120-
"kotlinx-serialization-json",
121-
"kotlin-reflect"
122-
]
123-
124147
unitTest = [
125148
"junit",
126149
"kotlinx-coroutines-test",
127150
"truth"
128151
]
152+
153+
androidXTest = [
154+
"androidx-test-runner",
155+
"androidx-test-rules"
156+
]

kdoc/build.gradle.kts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,6 @@ plugins {
2323
}
2424

2525
val versionNumber: String by project
26-
val buildNumber: String by project
27-
val ignoreBuildNumber: String by project
28-
val artifactVersion: String = if (ignoreBuildNumber == "true") {
29-
versionNumber
30-
} else {
31-
"$versionNumber-$buildNumber"
32-
}
3326

3427
// make this project get evaluated after all the other projects
3528
// so that we can be sure the logic to determine released components

0 commit comments

Comments
 (0)