Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
312 commits
Select commit Hold shift + click to select a range
f860db3
optimize imports
Jul 13, 2023
91ba772
add redlands data
Jul 14, 2023
30714ac
FormTextField tests from test design.
Jul 14, 2023
b9b5aef
Merge pull request #43 from ArcGIS/sor10874/grey-hint
sorenoid Jul 14, 2023
8bf8b17
Merge branch 'feature-branches/forms' into sor10874/helper-text-updates
Jul 14, 2023
c9c3f77
Merge branch 'feature-branches/forms' into sor10874/helper-text-updates
Jul 14, 2023
ac5127c
Merge pull request #44 from ArcGIS/sor10874/helper-text-updates
sorenoid Jul 14, 2023
e154080
change names of some states.
Jul 14, 2023
0bfe1db
Update FormTextField.kt (#51)
kaushikrw Jul 15, 2023
6a73ea8
feedback
Jul 17, 2023
2146774
Merge branch 'feature-branches/forms' into sor10874/FormTextField-tests
Jul 17, 2023
3f46fc0
add context to FormTextField in test.
Jul 17, 2023
9fe922b
Merge pull request #55 from ArcGIS/sor10874/FormTextField-tests
sorenoid Jul 17, 2023
5420121
Merge branch 'feature-branches/forms' into sor10874/submit-feature
Jul 17, 2023
3cd2070
add back changes lost in merge.
Jul 17, 2023
79a41bf
Merge branch 'sor10874/submit-feature' into sor10874/layer-filtering-…
Jul 17, 2023
7dde718
formatting and semantics strings
Jul 18, 2023
4a34393
Merge branch 'sor10874/submit-feature' into sor10874/layer-filtering-…
Jul 18, 2023
5882946
remove unnecessary receiver
Jul 18, 2023
ee677df
feedback
Jul 20, 2023
552d272
make backing property have the same name
Jul 20, 2023
16c7017
Merge pull request #56 from ArcGIS/sor10874/submit-feature
sorenoid Jul 20, 2023
0bfd548
Merge branch 'feature-branches/forms' into sor10874/layer-filtering-l…
Jul 20, 2023
46dd937
Bottomsheet Improvements (#58)
kaushikrw Jul 20, 2023
bb349e1
DateTimeFormState
Jul 22, 2023
4c314c2
rename file to DateTimeFieldState
Jul 22, 2023
d22bdfc
remove currentValue property, other suggestions.
Jul 22, 2023
a90de02
Merge pull request #64 from ArcGIS/sor10874/DateTimeFieldState
sorenoid Jul 24, 2023
91058d3
consume core API in feature forms
Jul 26, 2023
41e3e72
prime the form value until expression evaluation is implemented.
Jul 26, 2023
fcd55bb
Date time picker for FeatureForms (#69)
kaushikrw Jul 27, 2023
46a2b12
hoisted states upto DateTimePickerState and removed visible behavior
kaushikrw Jul 27, 2023
a67e4e7
WIP
kaushikrw Jul 27, 2023
8a22545
added DateTime class
kaushikrw Jul 27, 2023
8292c71
added comments
kaushikrw Jul 27, 2023
afa5d02
Update DateTimePicker.kt
kaushikrw Jul 27, 2023
ba07083
Update DateTimePicker.kt
kaushikrw Jul 27, 2023
b2fb037
Use PlaceHolder for the hint.
Aug 1, 2023
62b4917
placeholder and read only text field reversions
Aug 1, 2023
f6a5437
only show date in field when the element's includeTime is false.
Aug 1, 2023
53b969a
Merge branch 'feature-branches/forms' into sor10874/layer-filtering-l…
Aug 2, 2023
60bb348
feedback and other gradle workarounds
Aug 2, 2023
92424de
DateTimePicker validation and state update (#78)
kaushikrw Aug 2, 2023
699a252
Merge pull request #62 from ArcGIS/sor10874/layer-filtering-lambda
sorenoid Aug 2, 2023
99ac830
Merge branch 'feature-branches/forms' into sor10874/include-time-form…
Aug 2, 2023
3036d87
conflict resolution fix
Aug 2, 2023
f8a9f06
Merge pull request #81 from ArcGIS/sor10874/include-time-formatting
sorenoid Aug 2, 2023
d974fc2
Merge branch 'feature-branches/forms' into sor10874/dtp-placeholder
Aug 2, 2023
f11a0b9
Merge pull request #79 from ArcGIS/sor10874/dtp-placeholder
sorenoid Aug 3, 2023
5aa9991
DateTimePicker landscape layout (#83)
kaushikrw Aug 3, 2023
375a733
Merge branch 'feature-branches/forms' into sor10874/consume-core
Aug 3, 2023
c5c9848
consume core
Aug 3, 2023
9c6abc8
print stack trace when core throws a sigbus
Aug 3, 2023
bd5ca3a
triage core issues
Aug 3, 2023
780500c
print stack trace when core throws a sigbus
Aug 3, 2023
3ce6c8f
don't change supprting text colors under any circumstances.
Aug 3, 2023
2acd26b
Merge pull request #80 from ArcGIS/sor10874/read-only-text-fields
sorenoid Aug 3, 2023
7813e30
Merge branch 'v.next' into feature-branches/forms
Aug 4, 2023
86098e4
run test from json data, not from service data
Aug 4, 2023
5b1a68c
update to latest core build
Aug 4, 2023
59eac24
Merge pull request #86 from ArcGIS/sor10874/remove-creds-from-test
sorenoid Aug 7, 2023
e095665
FormTextField description focus fix (#87)
kaushikrw Aug 7, 2023
85b8b67
add data. avoid expression names
Aug 8, 2023
c41ade1
avoid expression names
Aug 8, 2023
a0845aa
Merge branch 'feature-branches/forms' into sor10874/consume-core
Aug 8, 2023
d4da255
Form content clipping fix (#89)
kaushikrw Aug 9, 2023
c871fa2
remove preview that con no longer be doen without public serializatio…
Aug 16, 2023
7587ed3
Merge pull request #90 from Esri/sor10874/consume-core
sorenoid Aug 16, 2023
ee5e56a
add some remembers. not sure how to remember a State instance on a st…
Aug 22, 2023
4a86784
add saver for DateTimePickerState
Aug 24, 2023
127fad8
add saver for DateTimePickerState
Aug 24, 2023
973277e
remove logging
Aug 24, 2023
fcc8076
date time fixes wip
Aug 25, 2023
006865b
date time calcs all working correctly
Aug 25, 2023
af81018
remove print statements
Aug 25, 2023
a03d34b
doc, remove more print statements
Aug 25, 2023
ae0a0b0
better doc
Aug 25, 2023
8aa500b
eol at eof
Aug 25, 2023
ce5fed7
update textfield tests to use core API
Aug 28, 2023
c97ecf1
remove excess remembrance. refactor a bit for PR feedback.
Aug 29, 2023
7254fc8
Merge pull request #105 from Esri/sor10874/remember-saveable
sorenoid Aug 29, 2023
3e1551c
naming changes
Sep 1, 2023
eb0cdba
Merge branch 'feature-branches/forms' into sor10874/date-time-fixes
Sep 1, 2023
1cef49b
Merge pull request #106 from Esri/sor10874/date-time-fixes
sorenoid Sep 1, 2023
7b7314b
eol at eof
Sep 1, 2023
bf06d02
Merge pull request #109 from Esri/sor10874/forms-tests-core-compliance
sorenoid Sep 1, 2023
512a305
work around lack of recompose of the yearremove input for remembering…
Sep 1, 2023
c075be2
remove input for remembering the date time picker state. add a call t…
Sep 1, 2023
fe2f7bc
Merge remote-tracking branch 'origin/sor10874/now-freeze-fix' into so…
Sep 1, 2023
695a78d
fix issue with DateTimePicker state saver
Sep 1, 2023
cb343d9
address basic issue of enabling the OK button in a way that abides th…
Sep 6, 2023
1e1a6e1
fix min and max comparisons
Sep 6, 2023
08feee1
Update DateTimePicker.kt (#113)
kaushikrw Sep 6, 2023
43e9d03
init copy
kaushikrw Sep 6, 2023
78ee2d6
fixed compilation errors
kaushikrw Sep 6, 2023
ed53847
Featureforms micro-app update to cache portalitems (#107)
kaushikrw Sep 7, 2023
3b83209
Merge branch 'feature-branches/forms' into sor10874/now-freeze-fix
Sep 7, 2023
44600e8
remove commented out code
Sep 7, 2023
14596ef
Merge pull request #114 from Esri/sor10874/now-freeze-fix
sorenoid Sep 7, 2023
2b54c41
Merge branch 'feature-branches/forms' into sor10874/datetime-min-max
Sep 7, 2023
8e2875c
pick up latest SDK with mutable elements in the FeatureForm
Sep 7, 2023
4338945
moved imports
kaushikrw Sep 7, 2023
3caf98e
Merge branch 'feature-branches/forms' into kaushik/forms/time-picker
kaushikrw Sep 7, 2023
43b5f84
fixed timepicker bugs
kaushikrw Sep 7, 2023
22a2d60
added copyright
kaushikrw Sep 8, 2023
05975b4
Merge branch 'v.next' into kaushik/v.next_merge_update
kaushikrw Sep 8, 2023
92c0276
Merge pull request #122 from Esri/kaushik/v.next_merge_feature_forms
kaushikrw Sep 8, 2023
97a0d5b
Merge pull request #118 from Esri/sor10874/consume-core-3
sorenoid Sep 11, 2023
e55c9ab
move TimePickerState into the PickerContent. Remove call to datePicke…
Sep 11, 2023
584659f
remove unused code
Sep 11, 2023
6fd9f65
fix up last commit -- from the wrong source on my machine!
Sep 12, 2023
0c003ae
Merge pull request #116 from Esri/sor10874/datetime-min-max
sorenoid Sep 12, 2023
2bc30e3
Merge pull request #120 from Esri/kaushik/forms/time-picker
kaushikrw Sep 12, 2023
9abab47
subtract the offset to represent fake picker UTC, don't add it
Sep 12, 2023
9d8b968
picker dates is utc plus offset (not minus!). get the date millis aft…
Sep 13, 2023
6cc7739
erge branch 'feature-branches/forms' into sor10874/small-today-fix
Sep 13, 2023
ec0f6eb
fix now freeze (#123)
kaushikrw Sep 17, 2023
30a91ee
remove call to set date picker set selection, no longer needed.
Sep 18, 2023
31dd076
Merge branch 'feature-branches/forms' into sor10874/small-today-fix
Sep 18, 2023
75869cc
remove double counting
Sep 18, 2023
1e355ad
Merge pull request #124 from Esri/sor10874/small-today-fix
sorenoid Sep 19, 2023
635626f
wip with included build
Sep 19, 2023
2d59732
value, editable, and required events working for text fields.
Sep 19, 2023
047e2d6
dontuse a coroutine use a LaunchedEffect
Sep 19, 2023
2ed66b6
respect isRequired in TextFields!
Sep 19, 2023
3574726
Merge branch 'sor10874/required-text' into sor10874/consume-event-api
Sep 20, 2023
f96ea8a
required events support
Sep 20, 2023
4081342
note
Sep 20, 2023
7fa51f0
doc
Sep 20, 2023
d3b6c30
Merge pull request #125 from Esri/sor10874/required-text
sorenoid Sep 20, 2023
94d4ee2
Merge branch 'feature-branches/forms' into sor10874/consume-event-api
Sep 20, 2023
7c66dbf
date time expression support
Sep 21, 2023
06023a8
doc
Sep 21, 2023
b99e13c
add circular progress indicator
Sep 22, 2023
5fd826d
state flow combine
Sep 26, 2023
8614e1a
only evaluate expressions based on user edits to text fields, not due…
Sep 27, 2023
6b77b4a
text form changes to support use of combine
Sep 28, 2023
8b8b915
date time form element input type changes to support use of combine
Sep 28, 2023
ead7725
date time form element input type changes to support use of combine
Sep 28, 2023
ff0d79e
rollback versioning changes
Sep 28, 2023
dfad7cb
roll back unrelated code change
Sep 28, 2023
0b68862
remove redundant statefulness
Sep 28, 2023
8c8d63c
Merge pull request #126 from Esri/sor10874/consume-event-api
sorenoid Sep 28, 2023
dd73610
follow up to events API changes
Sep 28, 2023
82fd3f7
Merge pull request #129 from Esri/sor10874/consume-events-api-follow-up
sorenoid Sep 28, 2023
b6b1a8f
Merge branch 'v.next' into feature-branches/forms
Sep 28, 2023
07f49db
Forms combo box implementation (#127)
kaushikrw Sep 28, 2023
3f1a31b
Merge branch 'v.next' into feature-branches/forms
Sep 29, 2023
49ba865
Merge branch 'feature-branches/forms' of github.com:Esri/arcgis-maps-…
Sep 29, 2023
bcbbbc2
fix conflict resolution error
Sep 29, 2023
4c68afb
numeric text field support.
Sep 29, 2023
c3b1f99
fix conflict resolution error.
Oct 3, 2023
19014d3
remember to evaluate expressions
Oct 3, 2023
e0c4467
Form field states remember saveable (#131)
kaushikrw Oct 4, 2023
b0c0964
Merge pull request #132 from Esri/sor10874/fix-text-field-tests-2
sorenoid Oct 4, 2023
0692775
Merge branch 'feature-branches/forms' into sor10874/numeric-text-field
Oct 4, 2023
ba1ec4d
add domain, fieldType to BaseFieldProperties.
Oct 4, 2023
c14e96e
tests for numeric text box
Oct 5, 2023
c5927d5
self review
Oct 5, 2023
54ce572
change identifyLayer to identifyLayers (#137)
kaushikrw Oct 5, 2023
88f45f1
move fieldType and domain down to FormTextFieldState. get range from …
Oct 6, 2023
5c8ecb3
just use number keyboard for integers so negative numbers can be type…
Oct 6, 2023
9f70126
revert settings.gradle changes
Oct 6, 2023
b171853
Forms combo box required validation (#134)
kaushikrw Oct 6, 2023
1a6847f
hoist up the fieldType so the TextField is just handed a keyboard type.
Oct 6, 2023
87dc6cb
migrated to use standardbottomsheet instead of a scaffold (#135)
kaushikrw Oct 6, 2023
a29094e
updated sdk build to 4019 (#139)
kaushikrw Oct 6, 2023
d171636
use numeric keyboard in ComboBoxDialog filter when fieldType is numeric.
Oct 6, 2023
2552a79
filter out layers without forms in results of identify
Oct 7, 2023
4bf387e
simplify logic
Oct 9, 2023
ac0139d
Merge pull request #140 from Esri/sor10874/allow-no-forms-layers
sorenoid Oct 9, 2023
ccb0e20
Forms: DateTimeFieldState refactor (#133)
kaushikrw Oct 10, 2023
1f59bed
switch input support
Oct 11, 2023
ffd1b06
Merge branch 'feature-branches/forms' into sor10874/numeric-text-field
Oct 11, 2023
4d4cbf3
address feedback
Oct 11, 2023
598d6ec
drop the first isFocused StateFlow emission in the FormTextFieldState…
Oct 11, 2023
70791c2
Merge branch 'feature-branches/forms' into sor10874/switch
Oct 11, 2023
b6096ed
fall back to combo when the initial value doesn't match the on or off…
Oct 12, 2023
08e12d5
self review
Oct 12, 2023
623bc3a
rewrite validation for FormTextFields
Oct 13, 2023
6732bab
Forms : Refactor `ComboBoxFieldState` into `CodedValueFieldState` (#146)
kaushikrw Oct 13, 2023
a59bd3f
Merge branch 'feature-branches/forms' into sor10874/switch
Oct 13, 2023
696103c
Forms : Updated `ComboboxField` to display `CodedValue.name` (#148)
kaushikrw Oct 13, 2023
6c0b2e6
SwitchFieldState inherits from CodedValueFieldState
Oct 14, 2023
df93289
support error validation state in FormTextFieldState.Saver, rememember
Oct 14, 2023
8d76a01
Merge branch 'feature-branches/forms' into sor10874/numeric-text-field
Oct 15, 2023
64191d8
Merge branch 'feature-branches/forms' into sor10874/numeric-text-field
Oct 16, 2023
792fc6d
clean up, add runtime checks, comments.
Oct 16, 2023
1e80b21
further isolate error messaging and validation
Oct 16, 2023
f3d4ded
updated basetextfield label overflow and added preview (#150)
kaushikrw Oct 16, 2023
55ac7e4
Forms : introduce `RadioButtonInput` (#149)
kaushikrw Oct 16, 2023
6aa6300
Merge pull request #138 from Esri/sor10874/numeric-text-field
sorenoid Oct 16, 2023
7182bf7
Merge branch 'feature-branches/forms' into sor10874/switch
Oct 16, 2023
af57f34
conflict resolution
Oct 16, 2023
4541f08
fix collateral merge build breaker
Oct 17, 2023
7efe789
present the latest emitted value for a text field, regardless of edit…
Oct 17, 2023
f2fdf2f
allow switch to change when text field is tapped. remember if the swi…
Oct 17, 2023
b943468
Merge pull request #151 from Esri/sor10874/fix-build
sorenoid Oct 17, 2023
124d482
provide the Switch through the trailingIcon of the OutlinedTextField
Oct 17, 2023
7e27f4e
Merge pull request #144 from Esri/sor10874/switch
sorenoid Oct 17, 2023
0f81216
remove unnecessary open modifier
Oct 19, 2023
d939055
add try-catch to featureFormDefinition check (#155)
kaushikrw Oct 19, 2023
b113776
Merge pull request #157 from Esri/sor10874/remove-unnecessary-modifier
sorenoid Oct 19, 2023
ef10f69
drop first emitted value from properties.value in favor of the initia…
Oct 19, 2023
64c508b
Merge pull request #152 from Esri/sor10874/disappearing-edits
sorenoid Oct 20, 2023
bc1f9d3
Forms : Fix orientation changes for Dialogs (#156)
kaushikrw Oct 20, 2023
27645f3
Forms: `DateTimeField` changes (#161)
kaushikrw Oct 24, 2023
1f57e73
optimized expr eval ui (#169)
kaushikrw Oct 26, 2023
f9a0269
`Forms`: DateTimePicker defaults (#168)
kaushikrw Oct 26, 2023
3cad435
Update MapScreen.kt (#171)
kaushikrw Oct 26, 2023
3723391
removed FormElement dependency from FieldElement (#175)
kaushikrw Oct 27, 2023
9935042
consume update value (#162)
sorenoid Oct 30, 2023
e2b3713
update to rtc 4043 (#180)
sorenoid Oct 31, 2023
a091a65
`Forms`: Group Elements Support (#179)
kaushikrw Oct 31, 2023
78ea6c3
optimized state creation (#181)
kaushikrw Oct 31, 2023
1d67e28
update to build 4046 (#185)
kaushikrw Nov 3, 2023
2e4827c
use datetime raw value (#184)
sorenoid Nov 3, 2023
532765c
novaluelabel selection fix (#188)
kaushikrw Nov 3, 2023
53b8b98
searchable items map list screen (#189)
sorenoid Nov 7, 2023
2c5962e
bump sdk to 4056 (#196)
sorenoid Nov 8, 2023
a140a78
Forms: DatePickerDialog scaling (#198)
kaushikrw Nov 8, 2023
5a2b9b1
fix ff tests (#201)
sorenoid Nov 15, 2023
f1786d9
`Forms`: Micro-app add enterprise login (#204)
kaushikrw Nov 16, 2023
2b22e23
`Forms` : Microapp SideSheet support (#207)
kaushikrw Nov 17, 2023
397f18b
make values focusable (and copyable) when not editable (#200)
sorenoid Nov 17, 2023
09200a6
Forms: Add ComboBox tests (#141)
kaushikrw Nov 17, 2023
4d94e05
Add skeleton toolkit component and microapp
fpearson1111 Nov 23, 2023
8f243c3
Bump ArcGIS version
fpearson1111 Nov 23, 2023
6535f0d
Create basic microapp with feature for us to edit
fpearson1111 Nov 23, 2023
ccc7754
Use Apollo test map instead of temporary feature
fpearson1111 Nov 23, 2023
864499d
Formatting
fpearson1111 Nov 23, 2023
3e2a223
Add dependencies needed for project
fpearson1111 Nov 24, 2023
a5b106e
Add geometry editor field to map state
fpearson1111 Nov 24, 2023
faaba5c
Add FeatureEditor component which can be started
fpearson1111 Nov 24, 2023
398fcc0
Update app to use new editor component
fpearson1111 Nov 24, 2023
5028b79
Prevent editor from restarting while editing
fpearson1111 Nov 24, 2023
82aea35
ADd stop and discard functionality
fpearson1111 Nov 24, 2023
be35a73
Push geometry event updates into feature
fpearson1111 Nov 24, 2023
e7d535f
Use features symbology when editing it
fpearson1111 Nov 24, 2023
4fe919c
Absolutely wrestle with the UI
fpearson1111 Nov 27, 2023
4ae3f7c
Make toolbar hover again, give it a border
fpearson1111 Nov 27, 2023
9c1d43c
Swap button order and add icons
fpearson1111 Nov 28, 2023
3d9ba2b
Add dynamic icon for toggling attr. edits
fpearson1111 Nov 28, 2023
3c5c0b2
Only use custom symbols for point geometries
fpearson1111 Nov 28, 2023
846d22c
Add side-by-side Feature Editor view
fpearson1111 Nov 28, 2023
f0c4f6b
Re-evaluate form exprs. when geometry changes
fpearson1111 Nov 28, 2023
f0b40d6
Make buttons smaller
fpearson1111 Nov 29, 2023
601020c
Make geometry editor property public
fpearson1111 Nov 29, 2023
111d6d9
Add two-part toolbar with geometry buttons
fpearson1111 Nov 29, 2023
7826f7f
Feature Editor: Update geometry editor symbology (#289)
Luiy0 Jan 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,17 @@ plugins {
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.gradle.secrets) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kapt) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.hilt) apply false
}

allprojects{
// kapt compiler cannot figure out that it needs to target the same bytecode as kotlin and java compilers
// without this. Furthermore, KaptGenerateStubs is unresolved in module gradle.
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs::class).all {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
}
9 changes: 4 additions & 5 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=1g -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
Expand All @@ -39,6 +39,7 @@ kotlin.code.style=official
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
#android.enableBuildConfigAsBytecode=true
artifactoryUrl=https://olympus.esri.com/artifactory/arcgisruntime-snapshot-local
artifactoryGroupId=com.esri
artifactoryArtifactBaseId=arcgis-maps-kotlin-toolkit
Expand All @@ -53,7 +54,5 @@ buildNumber=0000-snapshot
ignoreBuildNumber=false
# these versions define the dependency of the ArcGIS Maps SDK for Kotlin dependency
# and are generally not overridden at the command line unless a special build is requested.
sdkVersionNumber=200.2.0
sdkBuildNumber=


sdkVersionNumber=200.3.0
sdkBuildNumber=4057
42 changes: 28 additions & 14 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,30 @@
androidGradlePlugin = "8.1.1"
androidxActivity = "1.5.1"
androidXBrowser = "1.5.0"
androidxCompose = "1.3.0"
androidxCompose = "1.5.4"
androidxComposeCompiler = "1.4.6"
androidxCore = "1.9.0"
androidxCoreTesting = "2.1.0"
androidxEspresso = "3.4.0"
androidxHiltNavigationCompose = "1.0.0"
androidxLifecycle = "2.3.1"
androidxLifecycleRuntimeCompose = "2.6.0-beta01"
androidxMaterialIcons = "1.4.3"
androidxTestExt = "1.1.2"
androidxViewmodelCompose = "2.6.1"
compileSdk = "33"
androidxWindow = "1.2.0"
coil = "2.4.0"
compileSdk = "34"
compose-material3 = "1.1.0"
compose-navigation = "2.7.5"
hilt = "2.44.2"
hiltExt = "1.0.0"
junit = "4.13.2"
kotlin = "1.8.20"
minSdk = "26"
ksp = "1.8.20-1.0.11"
kotlinxCoroutinesTest = "1.6.3"
kotlinxSerializationJson = "1.5.0"
minSdk = "26"
room = "2.5.2"
truth = "1.1.4"

[libraries]
Expand All @@ -28,29 +36,41 @@ androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref =
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidxCompose" }
androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "androidxCompose" }
androidx-compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "compose-material3" }
androidx-compose-navigation = { group = "androidx.navigation", name = "navigation-compose", version.ref = "compose-navigation" }
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics", version.ref = "androidxCompose" }
androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "androidxCompose" }
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "androidxCompose" }
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "androidxCompose" }
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest", version.ref = "androidxCompose" }
androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxViewmodelCompose" }
androidx-lifecycle-runtime-compose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycleRuntimeCompose"}
androidx-test-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExt" }
androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" }
androidx-window-core = { group = "androidx.window", name = "window-core", version.ref = "androidxWindow" }
androidx-window = { group = "androidx.window", name = "window", version.ref = "androidxWindow" }
coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
hilt-android-core = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" }
hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" }
hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hiltExt" }
hilt-ext-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "hiltExt" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin"}
kotlinx-serialization-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-core", version.ref = "kotlinxSerializationJson" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" }
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" }
androidx-material-icons = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "androidxMaterialIcons"}
room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" }
room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" }
room-ext = { group = "androidx.room", name = "room-ktx", version.ref = "room" }
truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }

[plugins]
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" }
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
gradle-secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version = "2.0.1"}
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }

[bundles]
core = [
Expand All @@ -76,12 +96,6 @@ debug = [
"androidx-compose-ui-test-manifest"
]

serialization = [
"kotlinx-serialization-core",
"kotlinx-serialization-json",
"kotlin-reflect"
]

unitTest = [
"junit",
"kotlinx-coroutines-test",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ fun MainScreen() {
// show a composable map using the mapViewModel
ComposableMap(
modifier = Modifier.fillMaxSize(),
mapInterface = mapViewModel
mapState = mapViewModel
) {
Row(modifier = Modifier
.height(IntrinsicSize.Max)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import com.arcgismaps.mapping.ArcGISMap
import com.arcgismaps.toolkit.composablemap.MapInsets
import com.arcgismaps.toolkit.composablemap.MapInterface
import com.arcgismaps.toolkit.composablemap.MapState

class MapViewModel(
arcGISMap: ArcGISMap,
mapInsets: MapInsets = MapInsets()
) : ViewModel(), MapInterface by MapInterface(arcGISMap, mapInsets)
) : ViewModel(), MapState by MapState(arcGISMap, mapInsets)

class MapViewModelFactory(
private val arcGISMap: ArcGISMap,
Expand Down
15 changes: 15 additions & 0 deletions microapps/FeatureEditorApp/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
1 change: 1 addition & 0 deletions microapps/FeatureEditorApp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Feature Editor MicroApp
1 change: 1 addition & 0 deletions microapps/FeatureEditorApp/app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
93 changes: 93 additions & 0 deletions microapps/FeatureEditorApp/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
/*
*
* Copyright 2023 Esri
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}

secrets {
defaultPropertiesFileName = "secrets.defaults.properties"
}

android {
namespace = "com.arcgismaps.toolkit.featureeditorapp"
compileSdk = libs.versions.compileSdk.get().toInt()

defaultConfig {
applicationId ="com.arcgismaps.toolkit.featureeditorapp"
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.compileSdk.get().toInt()
versionCode = 1
versionName = "1.0"

testInstrumentationRunner ="androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
release {
isMinifyEnabled = false
//proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"),("proguard-rules.pro"
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
@Suppress("UnstableApiUsage")
buildFeatures {
compose = true
buildConfig = true
}

composeOptions {
kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get()
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

//https://youtrack.jetbrains.com/issue/KTIJ-21063
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile::class).all {
kotlinOptions.freeCompilerArgs += "-Xcontext-receivers"
}

dependencies {
implementation(project(":featureeditor"))
implementation(project(":featureforms"))
implementation(project(":composable-map"))
implementation(arcgis.mapsSdk)
implementation(libs.bundles.composeCore)
implementation(libs.bundles.core)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.lifecycle.viewmodel.compose)
testImplementation(libs.bundles.unitTest)
androidTestImplementation(libs.bundles.composeTest)
debugImplementation(libs.bundles.debug)
}
21 changes: 21 additions & 0 deletions microapps/FeatureEditorApp/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
47 changes: 47 additions & 0 deletions microapps/FeatureEditorApp/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~
~ Copyright 2023 Esri
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
~
-->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.FeatureEditorApp"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.FeatureEditorApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
Loading