Skip to content

Commit 53a536d

Browse files
puneet-pdxhud10837sorenoideri9000shubham7109
authored
200.8.0 Release - merge v.next into main (#960)
* 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-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 * up…
1 parent 063f96f commit 53a536d

File tree

529 files changed

+24034
-3200
lines changed

Some content is hidden

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

529 files changed

+24034
-3200
lines changed

README.md

Lines changed: 41 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,23 @@ The ArcGIS Maps SDK for Kotlin Toolkit contains components that will simplify yo
44

55
## Toolkit Components
66

7+
* **[Augmented Reality](toolkit/ar)** - Provides components to "augment" the physical world with virtual content.
8+
* **[FlyoverSceneView](toolkit/ar#flyoversceneview)** - Allows you to explore a scene using your device as a window into the virtual world.
9+
* **[TableTopSceneView](toolkit/ar#tabletopsceneview)** - Allows you to anchor scene content to a physical surface, as if it were a 3D-printed model.
10+
* **[WorldScaleSceneView](toolkit/ar#worldscalesceneview)** - Allows you to integrate scene content with the real world features like streets and buildings.
711
* **[Authenticator](toolkit/authentication)** - Displays a user interface when network and ArcGIS authentication challenges occur.
812
* **[Basemap Gallery](toolkit/basemapgallery)** - Provides a control for selecting basemaps
913
* **[Compass](toolkit/compass)** - Shows a compass direction when the map is rotated. Auto-hides when the map points north.
1014
* **[FeatureForms](toolkit/featureforms)** - Provides a UI for editing feature attributes.
1115
* **[FloorFilter](toolkit/indoors)** - Allows filtering of floor plan data in a geo view by a site, a facility in the site, or a floor in the facility.
1216
* **[GeoView-Compose](toolkit/geoview-compose)** - Compose wrappers for the MapView and SceneView.
1317
* **[Callout](toolkit/geoview-compose#display-a-callout)** - Draws a callout on the GeoView to display Composable content.
18+
* **[OverviewMap](toolkit/geoview-compose#display-an-overviewmap)** - Displays the visible extent of a GeoView in a small "inset" map.
1419
* **[Legend](toolkit/legend)** - Displays a legend for a map or a scene.
20+
* **[OfflineMapAreas](toolkit/offline)** - Allows you to take a web map offline by downloading map areas ahead-of-time or on-demand.
1521
* **[Popup](toolkit/popup)** - View field values of features in a layer using the Popup API.
1622
* **[Scalebar](toolkit/scalebar)** - Displays current scale reference.
1723
* **[UtilityNetworkTrace](toolkit/utilitynetworks)** - Configure, run, and visualize UtilityNetworkTraces on a composable MapView.
18-
* **[Augmented Reality](toolkit/ar)** - Provides components to "augment" the physical world with virtual content.
1924

2025
## API Reference
2126

@@ -48,13 +53,14 @@ repositories {
4853
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
4954

5055
```
51-
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:200.7.0"))
56+
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:200.8.0"))
5257
implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")
5358
implementation("com.esri:arcgis-maps-kotlin-toolkit-basemapgallery")
5459
implementation("com.esri:arcgis-maps-kotlin-toolkit-compass")
5560
implementation("com.esri:arcgis-maps-kotlin-toolkit-featureforms")
5661
implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
5762
implementation("com.esri:arcgis-maps-kotlin-toolkit-legend")
63+
implementation("com.esri:arcgis-maps-kotlin-toolkit-offline")
5864
implementation("com.esri:arcgis-maps-kotlin-toolkit-indoors")
5965
implementation("com.esri:arcgis-maps-kotlin-toolkit-popup")
6066
implementation("com.esri:arcgis-maps-kotlin-toolkit-scalebar")
@@ -66,6 +72,38 @@ The template and TemplateApp modules are for bootstrapping new modules.
6672

6773
Please see the [package structure](doc/general/developer_setup.md#package-structure) documentation for more details.
6874

75+
## Accessing Esri location services
76+
77+
Some toolkit components may require access to Esri location services, including basemaps, routing,
78+
and geocoding, which requires authentication using either an API Key or an ArcGIS identity. The
79+
toolkit code is set up to easily use an API key.
80+
81+
### API key
82+
83+
A long-lived access token that gives your application access to ArcGIS location services. Go to
84+
the [Create an API key](https://links.esri.com/create-an-api-key) tutorial to obtain a new API key
85+
access token. Ensure that the following privileges are enabled:
86+
87+
* **Location services** > **Basemaps**
88+
* **Location services** > **Geocoding**
89+
* **Location services** > **Routing**
90+
91+
The components in this repository have been structured to use an access token, set once.
92+
Set your access token in the `local.properties` in the same folder as the
93+
`secrets.defaults.properties` as shown below.
94+
95+
```gradle
96+
API_KEY=YOUR_ACCESS_TOKEN
97+
```
98+
99+
### ArcGIS identity
100+
101+
An ArcGIS named user account that is a member of an organization in ArcGIS Online or ArcGIS
102+
Enterprise can be used as an alternative to API keys. Most toolkit micro apps don't make use of
103+
named user authentication.
104+
See [User authentication](https://developers.arcgis.com/kotlin/security-and-authentication/#user-authentication)
105+
for more information.
106+
69107
## Issues
70108

71109
Find a bug or want to request a new feature enhancement? Please let us know by [submitting an issue](https://github.com/Esri/arcgis-maps-sdk-kotlin-toolkit/issues/new).
@@ -132,7 +170,7 @@ The test reports for connected tests can be located under `arcgis-maps-sdk-kotli
132170

133171
## Licensing
134172

135-
Copyright 2019-2022 Esri
173+
Copyright 2019-2025 Esri
136174

137175
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
138176

build.gradle.kts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,28 @@ buildscript {
3939
// before any dependent subproject uses its symbols to configure a dokka task.
4040
classpath(libs.dokka.versioning)
4141
}
42+
val localProperties = java.util.Properties().apply {
43+
val localPropertiesFile = file("local.properties")
44+
if (localPropertiesFile.exists()) {
45+
load(localPropertiesFile.inputStream())
46+
}
47+
}
48+
// Find these in properties passed through command line or read from local.properties and
49+
// set them as project properties
50+
val artifactoryUrl: String? = project.findProperty("artifactoryUrl") as String?
51+
?: localProperties.getProperty("artifactoryUrl")
52+
?: "https://esri.jfrog.io/artifactory/arcgis"
53+
val artifactoryUsername: String? = project.findProperty("artifactoryUsername") as String?
54+
?: localProperties.getProperty("artifactoryUsername")
55+
?: ""
56+
val artifactoryPassword: String? = project.findProperty("artifactoryPassword") as String?
57+
?: localProperties.getProperty("artifactoryPassword")
58+
?: ""
59+
60+
project.extra.set("artifactoryUrl", artifactoryUrl)
61+
project.extra.set("artifactoryUsername", artifactoryUsername)
62+
project.extra.set("artifactoryPassword", artifactoryPassword)
63+
4264
val finalBuild: Boolean = (project.properties["finalBuild"] ?: "false")
4365
.run { this == "true" }
4466

ci/publish.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ function _display_help_dialog() {
2727
echo " and publishes the build to artifactory. It will build the"
2828
echo " artifacts if any build dependency is not up to date"
2929
echo
30-
echo " This script requires the ARTIFACTORY_USR and ARTIFACTORY_PSW "
31-
echo " environment variables to be set to the artifactory username"
32-
echo " and encrypted password"
30+
echo " This script requires the ARTIFACTORY_URL, ARTIFACTORY_USR,"
31+
echo " and ARTIFACTORY_PSW environment variables to be set to the"
32+
echo " Artifactory url, username and encrypted password"
3333
echo
3434
echo " -h Displays this help dialog."
3535
echo " Optional"
@@ -46,6 +46,11 @@ function _display_help() {
4646
}
4747

4848
function _check_options_and_set_variables() {
49+
if [ -z "${ARTIFACTORY_URL}" ]; then
50+
echo "error: ARTIFACTORY_URL is empty but publishing is being requested"
51+
exit 1
52+
fi
53+
4954
if [ -z "${ARTIFACTORY_USR}" ]; then
5055
echo "error: ARTIFACTORY_USR is empty but publishing is being requested"
5156
exit 1
@@ -70,7 +75,7 @@ function _check_options_and_set_variables() {
7075
function _publish() {
7176
_log "Publish the release build to artifactory"
7277

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
78+
if ! ${apps_path}/arcgis-maps-sdk-kotlin-toolkit/ci/run_gradle_task.sh -t publish -x "-PartifactoryUrl=${ARTIFACTORY_URL} -PartifactoryUsername=${ARTIFACTORY_USR} -PartifactoryPassword=${ARTIFACTORY_PSW} -PversionNumber=${BUILDVER} -PbuildNumber=${BUILDNUM} -PfinalBuild=${FINAL_BUILD}" ; then
7479
echo "error: Running the publish gradle task failed"
7580
exit 1
7681
fi

gradle.properties

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,8 @@ kotlin.code.style=official
3939
# resources declared in the library itself and none from the library's dependencies,
4040
# thereby reducing the size of the R class for that library
4141
android.nonTransitiveRClass=true
42-
artifactoryUrl=https://olympus.esri.com/artifactory/arcgisruntime-snapshot-local
4342
artifactoryGroupId=com.esri
4443
artifactoryArtifactBaseId=arcgis-maps-kotlin-toolkit
45-
artifactoryUsername=""
46-
artifactoryPassword=""
4744

4845
# These versions define the dependency of the ArcGIS Maps SDK for Kotlin dependency
4946
# when building the toolkit locally, typically from Android Studio.
@@ -52,4 +49,4 @@ artifactoryPassword=""
5249
# sdkBuildNumber=4446
5350
# When building the toolkit with CI, these versions are obtained from command line provided properties,
5451
# see sdkVersionNumber in settings.gradle.kts.
55-
sdkVersionNumber=200.7.0
52+
sdkVersionNumber=200.8.0

gradle/libs.versions.toml

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
11
[versions]
2-
activityCompose = "1.9.3"
3-
androidGradlePlugin = "8.7.3"
2+
activityCompose = "1.10.1"
3+
androidGradlePlugin = "8.9.2"
44
androidXBrowser = "1.8.0"
55
coilBOM = "2.5.0"
6-
composeBOM = "2024.11.00"
6+
composeBOM = "2025.04.01"
77
androidxCamera = "1.4.2"
88
androidxComposeCompiler = "1.5.12"
9-
androidxCore = "1.15.0"
9+
androidxCore = "1.16.0"
1010
androidxEspresso = "3.6.1"
1111
androidxHiltNavigationCompose = "1.2.0"
12-
androidxLifecycle = "2.8.7"
13-
androidxMaterialIcons = "1.7.5"
12+
androidxMaterialIcons = "1.7.8"
1413
androidxTestExt = "1.2.1"
1514
androidXTestRunner = "1.6.2"
1615
androidXTestRules = "1.6.1"
1716
androidxWindow = "1.3.0"
17+
workVersion = "2.10.0"
1818
binaryCompatibilityValidator = "0.17.0"
19-
compileSdk = "35"
20-
compose-navigation = "2.8.4"
19+
compileSdk = "36"
20+
compose-navigation = "2.8.9"
2121
commonMark = "0.22.0"
2222
dokka = "2.0.0"
2323
hilt = "2.55"
2424
hiltExt = "1.2.0"
2525
junit = "4.13.2"
26-
kotlin = "2.1.0"
27-
ksp = "2.1.0-1.0.29"
28-
media3Exoplayer = "1.5.0"
29-
minSdk = "26"
26+
kotlin = "2.1.20"
27+
ksp = "2.1.20-1.0.32"
28+
media3Exoplayer = "1.6.1"
29+
minSdk = "28"
3030
mlkitBarcodeScanning = "17.3.0"
3131
kotlinxCoroutinesTest = "1.8.0"
3232
kotlinxSerializationJson = "1.8.0"
33-
mockkAndroid = "1.13.12"
34-
room = "2.6.1"
33+
mockkAndroid = "1.14.0"
34+
room = "2.7.0"
3535
truth = "1.4.4"
3636
uiautomator = "2.3.0"
37-
arcore = "1.47.0"
37+
arcore = "1.48.0"
3838
playServicesLocation = "21.3.0"
39+
gmazzo = "2.4.4"
40+
gradleSecrets = "2.0.1"
3941

4042
[libraries]
4143
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose"}
@@ -57,7 +59,6 @@ androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "u
5759
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest"}
5860
androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util"}
5961
androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }
60-
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
6162
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose"}
6263
androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose"}
6364
androidx-material-icons = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "androidxMaterialIcons"}
@@ -71,6 +72,7 @@ androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "
7172
androidx-uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" }
7273
androidx-window = { group = "androidx.window", name = "window", version.ref = "androidxWindow" }
7374
androidx-window-core = { group = "androidx.window", name = "window-core", version.ref = "androidxWindow" }
75+
androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "workVersion" }
7476
mlkit-barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "mlkitBarcodeScanning" }
7577
coil-bom = { group = "io.coil-kt", name = "coil-bom", version.ref = "coilBOM" }
7678
coil = { group = "io.coil-kt", name = "coil" }
@@ -104,10 +106,10 @@ dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
104106
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
105107
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
106108
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
107-
gradle-secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version = "2.0.1"}
109+
gradle-secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "gradleSecrets"}
108110
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
109111
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
110-
gmazzo-test-aggregation = { id = "io.github.gmazzo.test.aggregation.results", version = "2.2.0" }
112+
gmazzo-test-aggregation = { id = "io.github.gmazzo.test.aggregation.results", version.ref = "gmazzo" }
111113

112114
[bundles]
113115
camerax = [

gradle/wrapper/gradle-wrapper.jar

-19.7 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
# See the License for the specific language governing permissions and
1616
# limitations under the License.
1717
#
18+
# SPDX-License-Identifier: Apache-2.0
19+
#
1820

1921
##############################################################################
2022
#
@@ -55,7 +57,7 @@
5557
# Darwin, MinGW, and NonStop.
5658
#
5759
# (3) This script is generated from the Groovy template
58-
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
60+
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
5961
# within the Gradle project.
6062
#
6163
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,7 +86,7 @@ done
8486
# shellcheck disable=SC2034
8587
APP_BASE_NAME=${0##*/}
8688
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87-
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
89+
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
8890

8991
# Use the maximum available, or set MAX_FD != -1 to use that value.
9092
MAX_FD=maximum

gradlew.bat

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
@rem See the License for the specific language governing permissions and
1414
@rem limitations under the License.
1515
@rem
16+
@rem SPDX-License-Identifier: Apache-2.0
17+
@rem
1618

1719
@if "%DEBUG%"=="" @echo off
1820
@rem ##########################################################################
@@ -43,11 +45,11 @@ set JAVA_EXE=java.exe
4345
%JAVA_EXE% -version >NUL 2>&1
4446
if %ERRORLEVEL% equ 0 goto execute
4547

46-
echo.
47-
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
48-
echo.
49-
echo Please set the JAVA_HOME variable in your environment to match the
50-
echo location of your Java installation.
48+
echo. 1>&2
49+
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
50+
echo. 1>&2
51+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
52+
echo location of your Java installation. 1>&2
5153

5254
goto fail
5355

@@ -57,11 +59,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe
5759

5860
if exist "%JAVA_EXE%" goto execute
5961

60-
echo.
61-
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
62-
echo.
63-
echo Please set the JAVA_HOME variable in your environment to match the
64-
echo location of your Java installation.
62+
echo. 1>&2
63+
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
64+
echo. 1>&2
65+
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
66+
echo location of your Java installation. 1>&2
6567

6668
goto fail
6769

microapps/ArFlyoverApp/.gitignore

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
*.iml
2+
.gradle
3+
/local.properties
4+
/.idea/caches
5+
/.idea/libraries
6+
/.idea/modules.xml
7+
/.idea/workspace.xml
8+
/.idea/navEditor.xml
9+
/.idea/assetWizardSettings.xml
10+
.DS_Store
11+
/build
12+
/captures
13+
.externalNativeBuild
14+
.cxx
15+
local.properties

0 commit comments

Comments
 (0)