Skip to content

Commit

Permalink
merged with feature branch
Browse files Browse the repository at this point in the history
  • Loading branch information
prupani-7 committed Dec 15, 2023
2 parents 88f6d01 + 2eb7d79 commit ce6bb37
Show file tree
Hide file tree
Showing 17 changed files with 72 additions and 378 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Overview

ArcGIS Maps SDK for Kotlin v200.3.0 samples. The `main` branch of this repository contains sample app modules for the latest available version of the [ArcGIS Maps SDK Android Kotlin](https://developers.arcgis.com/kotlin/). Samples released under older versions can be found through the [git tags](https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/tags). Please read our [wiki](https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/wiki) for help with working with this repository.
ArcGIS Maps SDK for Kotlin v200.4.0 samples. The `main` branch of this repository contains sample app modules for the latest available version of the [ArcGIS Maps SDK Android Kotlin](https://developers.arcgis.com/kotlin/). Samples released under older versions can be found through the [git tags](https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/tags). Please read our [wiki](https://github.com/Esri/arcgis-maps-sdk-kotlin-samples/wiki) for help with working with this repository.

## Prerequisites

Expand Down
3 changes: 3 additions & 0 deletions display-composable-mapview/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,7 @@ dependencies {
implementation "androidx.compose.ui:ui-tooling"
implementation "androidx.compose.ui:ui-tooling-preview"
implementation project(path: ':samples-lib')
// Toolkit dependencies
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:$arcgisToolkitVersion"))
implementation('com.esri:arcgis-maps-kotlin-toolkit-geo-compose')
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,26 +19,20 @@ package com.esri.arcgismaps.sample.displaycomposablemapview
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import com.arcgismaps.ApiKey
import com.arcgismaps.ArcGISEnvironment
import com.arcgismaps.mapping.ArcGISMap
import com.arcgismaps.mapping.BasemapStyle
import com.arcgismaps.mapping.Viewpoint
import com.arcgismaps.toolkit.geocompose.MapView
import com.esri.arcgismaps.sample.sampleslib.theme.SampleAppTheme

class MainActivity : ComponentActivity() {

private val viewpointAmerica = Viewpoint(39.8, -98.6, 10e7)
private val viewpointAsia = Viewpoint(39.8, 98.6, 10e7)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// authentication with an API key or named user is
Expand All @@ -47,27 +41,12 @@ class MainActivity : ComponentActivity() {

setContent {
SampleAppTheme {
Column(
// create a map with a navigation night basemap style
val map = ArcGISMap(BasemapStyle.ArcGISNavigationNight)
MapView(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
// a mutable/immutable state is computed by remember to store its value during
// initial composition, and updates the composition on the state value change
var viewpoint by remember { mutableStateOf(viewpointAmerica) }
val map by remember { mutableStateOf(ArcGISMap(BasemapStyle.ArcGISNavigationNight)) }

// Composable function that wraps the MapView
MapViewWithCompose(
arcGISMap = map,
viewpoint = viewpoint,
// lambda to retrieve the MapView's onSingleTapConfirmed
onSingleTap = {
// swap between America and Asia viewpoints
viewpoint =
if (viewpoint == viewpointAmerica) viewpointAsia else viewpointAmerica
}
)
}
arcGISMap = map
)
}
}
}
Expand Down

This file was deleted.

6 changes: 3 additions & 3 deletions show-magnifier/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,13 @@ Tap and hold on the map to show a magnifier, then drag across the map to move th

* ArcGISMap
* MapView
* MapView.interactionOptions.allowMagnifierToPan
* MapView.interactionOptions.isMagnifierEnabled

## Additional information

This sample only works on a device with a touch screen. The magnifier will not appear via a mouse click.
This sample uses the GeoCompose Toolkit module to be able to implement a Composable MapView.
It only works on a device with a touch screen. The magnifier will not appear via a mouse click.

## Tags

magnify, map, zoom
geocompose, magnify, map, toolkit, zoom
5 changes: 2 additions & 3 deletions show-magnifier/README.metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,24 @@
"show-magnifier.png"
],
"keywords": [
"geocompose",
"magnify",
"map",
"toolkit",
"zoom",
"ArcGISMap",
"MapView",
"MapView.interactionOptions.allowMagnifierToPan",
"MapView.interactionOptions.isMagnifierEnabled"
],
"language": "kotlin",
"redirect_from": "",
"relevant_apis": [
"ArcGISMap",
"MapView",
"MapView.interactionOptions.allowMagnifierToPan",
"MapView.interactionOptions.isMagnifierEnabled"
],
"snippets": [
"src/main/java/com/esri/arcgismaps/sample/showmagnifier/MainActivity.kt",
"src/main/java/com/esri/arcgismaps/sample/showmagnifier/components/ComposeMapView.kt",
"src/main/java/com/esri/arcgismaps/sample/showmagnifier/components/MapViewModel.kt",
"src/main/java/com/esri/arcgismaps/sample/showmagnifier/screens/MainScreen.kt"
],
Expand Down
3 changes: 3 additions & 0 deletions show-magnifier/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,7 @@ dependencies {
implementation "androidx.compose.ui:ui-tooling"
implementation "androidx.compose.ui:ui-tooling-preview"
implementation project(path: ':samples-lib')
// Toolkit dependencies
implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:$arcgisToolkitVersion"))
implementation('com.esri:arcgis-maps-kotlin-toolkit-geo-compose')
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,7 @@ class MainActivity : ComponentActivity() {
color = MaterialTheme.colorScheme.background
) {
MainScreen(
sampleName = getString(R.string.app_name),
application = application
sampleName = getString(R.string.app_name)
)
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,42 +1 @@
/* 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.
*
*/

package com.esri.arcgismaps.sample.showmagnifier.components

import android.app.Application
import androidx.lifecycle.AndroidViewModel
import com.arcgismaps.mapping.ArcGISMap
import com.arcgismaps.mapping.BasemapStyle
import com.arcgismaps.mapping.Viewpoint
import com.arcgismaps.mapping.view.MapViewInteractionOptions

class MapViewModel(application: Application) : AndroidViewModel(application) {
// get an instance of the MapView state
val mapViewState = MapViewState()
}

/**
* Class that represents the MapView's current state
*/
class MapViewState {
val arcGISMap: ArcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic)
val viewpoint: Viewpoint = Viewpoint(34.056295, -117.195800, 1000000.0)
// setting `isMagnifierEnabled` property to true. `allowMagnifierToPan` by default is true
val interactionOptions: MapViewInteractionOptions = MapViewInteractionOptions(
isMagnifierEnabled = true
)
}

Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,37 @@
package com.esri.arcgismaps.sample.showmagnifier.screens

import android.app.Application
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.arcgismaps.mapping.ArcGISMap
import com.arcgismaps.mapping.BasemapStyle
import com.arcgismaps.mapping.Viewpoint
import com.arcgismaps.mapping.view.MapViewInteractionOptions
import com.arcgismaps.toolkit.geocompose.MapView
import com.arcgismaps.toolkit.geocompose.MapViewpointOperation
import com.esri.arcgismaps.sample.sampleslib.components.SampleTopAppBar
import com.esri.arcgismaps.sample.showmagnifier.components.ComposeMapView
import com.esri.arcgismaps.sample.showmagnifier.components.MapViewModel

/**
* Main screen layout for the sample app
*/
@Composable
fun MainScreen(sampleName: String, application: Application) {
// create a ViewModel to handle MapView interactions
var mapViewModel = MapViewModel(application)
fun MainScreen(sampleName: String) {
// Create an ArcGISMap and Viewpoint
val arcGISMap = ArcGISMap(BasemapStyle.ArcGISTopographic)
val californiaViewpoint = Viewpoint(34.056295, -117.195800, 1000000.0)

Scaffold(
topBar = { SampleTopAppBar(title = sampleName) },
content = {
Column(modifier = Modifier.fillMaxSize().padding(it)) {
// composable function that wraps the MapView
ComposeMapView(
modifier = Modifier.fillMaxSize().weight(1f),
mapViewModel = mapViewModel,
)
}
MapView(
modifier = Modifier.fillMaxSize().padding(it),
arcGISMap = arcGISMap,
viewpointOperation = MapViewpointOperation.Set(viewpoint = californiaViewpoint),
mapViewInteractionOptions = MapViewInteractionOptions(isMagnifierEnabled = true)
)
}
)
}
Binary file modified tools/NewModuleScript.jar
Binary file not shown.
Loading

0 comments on commit ce6bb37

Please sign in to comment.