diff --git a/ApiDemos/java/app/src/gms/java/com/example/mapdemo/StreetViewPanoramaEventsDemoActivity.java b/ApiDemos/java/app/src/gms/java/com/example/mapdemo/StreetViewPanoramaEventsDemoActivity.java
index f967d24b..17ffa6e0 100755
--- a/ApiDemos/java/app/src/gms/java/com/example/mapdemo/StreetViewPanoramaEventsDemoActivity.java
+++ b/ApiDemos/java/app/src/gms/java/com/example/mapdemo/StreetViewPanoramaEventsDemoActivity.java
@@ -15,7 +15,12 @@
package com.example.mapdemo;
-import com.google.android.gms.maps.OnStreetViewPanoramaReadyCallback;
+import android.graphics.Point;
+import android.os.Bundle;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+
import com.google.android.gms.maps.StreetViewPanorama;
import com.google.android.gms.maps.StreetViewPanorama.OnStreetViewPanoramaCameraChangeListener;
import com.google.android.gms.maps.StreetViewPanorama.OnStreetViewPanoramaChangeListener;
@@ -27,12 +32,6 @@ import com.google.android.gms.maps.model.StreetViewPanoramaCamera;
import com.google.android.gms.maps.model.StreetViewPanoramaLocation;
import com.google.android.gms.maps.model.StreetViewPanoramaOrientation;
-import android.graphics.Point;
-import android.os.Bundle;
-import android.widget.TextView;
-
-import androidx.appcompat.app.AppCompatActivity;
-
/**
* This shows how to listen to some {@link StreetViewPanorama} events.
*/
@@ -43,56 +42,53 @@ public class StreetViewPanoramaEventsDemoActivity extends AppCompatActivity
// George St, Sydney
private static final LatLng SYDNEY = new LatLng(-33.87365, 151.20689);
- private StreetViewPanorama mStreetViewPanorama;
+ private StreetViewPanorama streetViewPanorama;
- private TextView mPanoChangeTimesTextView;
+ private TextView panoChangeTimesTextView;
- private TextView mPanoCameraChangeTextView;
+ private TextView panoCameraChangeTextView;
- private TextView mPanoClickTextView;
+ private TextView panoClickTextView;
- private TextView mPanoLongClickTextView;
+ private TextView panoLongClickTextView;
- private int mPanoChangeTimes = 0;
+ private int panoChangeTimes = 0;
- private int mPanoCameraChangeTimes = 0;
+ private int panoCameraChangeTimes = 0;
- private int mPanoClickTimes = 0;
+ private int panoClickTimes = 0;
- private int mPanoLongClickTimes = 0;
+ private int panoLongClickTimes = 0;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.street_view_panorama_events_demo);
- mPanoChangeTimesTextView = (TextView) findViewById(R.id.change_pano);
- mPanoCameraChangeTextView = (TextView) findViewById(R.id.change_camera);
- mPanoClickTextView = (TextView) findViewById(R.id.click_pano);
- mPanoLongClickTextView = (TextView) findViewById(R.id.long_click_pano);
+ panoChangeTimesTextView = findViewById(R.id.change_pano);
+ panoCameraChangeTextView = findViewById(R.id.change_camera);
+ panoClickTextView = findViewById(R.id.click_pano);
+ panoLongClickTextView = findViewById(R.id.long_click_pano);
SupportStreetViewPanoramaFragment streetViewPanoramaFragment =
(SupportStreetViewPanoramaFragment)
getSupportFragmentManager().findFragmentById(R.id.streetviewpanorama);
streetViewPanoramaFragment.getStreetViewPanoramaAsync(
- new OnStreetViewPanoramaReadyCallback() {
- @Override
- public void onStreetViewPanoramaReady(StreetViewPanorama panorama) {
- mStreetViewPanorama = panorama;
- mStreetViewPanorama.setOnStreetViewPanoramaChangeListener(
- StreetViewPanoramaEventsDemoActivity.this);
- mStreetViewPanorama.setOnStreetViewPanoramaCameraChangeListener(
- StreetViewPanoramaEventsDemoActivity.this);
- mStreetViewPanorama.setOnStreetViewPanoramaClickListener(
- StreetViewPanoramaEventsDemoActivity.this);
- mStreetViewPanorama.setOnStreetViewPanoramaLongClickListener(
- StreetViewPanoramaEventsDemoActivity.this);
+ panorama -> {
+ streetViewPanorama = panorama;
+ streetViewPanorama.setOnStreetViewPanoramaChangeListener(
+ StreetViewPanoramaEventsDemoActivity.this);
+ streetViewPanorama.setOnStreetViewPanoramaCameraChangeListener(
+ StreetViewPanoramaEventsDemoActivity.this);
+ streetViewPanorama.setOnStreetViewPanoramaClickListener(
+ StreetViewPanoramaEventsDemoActivity.this);
+ streetViewPanorama.setOnStreetViewPanoramaLongClickListener(
+ StreetViewPanoramaEventsDemoActivity.this);
- // Only set the panorama to SYDNEY on startup (when no panoramas have been
- // loaded which is when the savedInstanceState is null).
- if (savedInstanceState == null) {
- mStreetViewPanorama.setPosition(SYDNEY);
- }
+ // Only set the panorama to SYDNEY on startup (when no panoramas have been
+ // loaded which is when the savedInstanceState is null).
+ if (savedInstanceState == null) {
+ streetViewPanorama.setPosition(SYDNEY);
}
});
}
@@ -100,37 +96,37 @@ public class StreetViewPanoramaEventsDemoActivity extends AppCompatActivity
@Override
public void onStreetViewPanoramaChange(StreetViewPanoramaLocation location) {
if (location != null) {
- mPanoChangeTimesTextView.setText("Times panorama changed=" + ++mPanoChangeTimes);
+ panoChangeTimesTextView.setText("Times panorama changed=" + ++panoChangeTimes);
}
}
@Override
public void onStreetViewPanoramaCameraChange(StreetViewPanoramaCamera camera) {
- mPanoCameraChangeTextView.setText("Times camera changed=" + ++mPanoCameraChangeTimes);
+ panoCameraChangeTextView.setText("Times camera changed=" + ++panoCameraChangeTimes);
}
@Override
public void onStreetViewPanoramaClick(StreetViewPanoramaOrientation orientation) {
- Point point = mStreetViewPanorama.orientationToPoint(orientation);
+ Point point = streetViewPanorama.orientationToPoint(orientation);
if (point != null) {
- mPanoClickTimes++;
- mPanoClickTextView.setText(
- "Times clicked=" + mPanoClickTimes + " : " + point.toString());
- mStreetViewPanorama.animateTo(
+ panoClickTimes++;
+ panoClickTextView.setText(
+ "Times clicked=" + panoClickTimes + " : " + point.toString());
+ streetViewPanorama.animateTo(
new StreetViewPanoramaCamera.Builder()
.orientation(orientation)
- .zoom(mStreetViewPanorama.getPanoramaCamera().zoom)
+ .zoom(streetViewPanorama.getPanoramaCamera().zoom)
.build(), 1000);
}
}
@Override
public void onStreetViewPanoramaLongClick(StreetViewPanoramaOrientation orientation) {
- Point point = mStreetViewPanorama.orientationToPoint(orientation);
+ Point point = streetViewPanorama.orientationToPoint(orientation);
if (point != null) {
- mPanoLongClickTimes++;
- mPanoLongClickTextView.setText(
- "Times long clicked=" + mPanoLongClickTimes + " : " + point.toString());
+ panoLongClickTimes++;
+ panoLongClickTextView.setText(
+ "Times long clicked=" + panoLongClickTimes + " : " + point.toString());
}
}
}
diff --git a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt
index 1048cab1..05c29c24 100644
--- a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt
+++ b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/DemoDetailsList.kt
@@ -57,6 +57,10 @@ class DemoDetailsList {
R.string.street_view_panorama_options_demo_label,
R.string.street_view_panorama_options_demo_details,
StreetViewPanoramaOptionsDemoActivity::class.java),
+ DemoDetails(
+ R.string.street_view_panorama_events_demo_label,
+ R.string.street_view_panorama_events_demo_details,
+ StreetViewPanoramaEventsDemoActivity::class.java),
DemoDetails(R.string.tags_demo_label, R.string.tags_demo_details,
TagsDemoActivity::class.java),
DemoDetails(R.string.ui_settings_demo_label, R.string.ui_settings_demo_details,
diff --git a/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/StreetViewPanoramaEventsDemoActivity.kt b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/StreetViewPanoramaEventsDemoActivity.kt
new file mode 100644
index 00000000..6815eaf9
--- /dev/null
+++ b/ApiDemos/kotlin/app/src/gms/java/com/example/kotlindemos/StreetViewPanoramaEventsDemoActivity.kt
@@ -0,0 +1,111 @@
+// Copyright 2020 Google LLC
+//
+// 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.example.kotlindemos
+
+import android.os.Bundle
+import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import com.google.android.gms.maps.StreetViewPanorama
+import com.google.android.gms.maps.StreetViewPanorama.*
+import com.google.android.gms.maps.SupportStreetViewPanoramaFragment
+import com.google.android.gms.maps.model.LatLng
+import com.google.android.gms.maps.model.StreetViewPanoramaCamera
+import com.google.android.gms.maps.model.StreetViewPanoramaLocation
+import com.google.android.gms.maps.model.StreetViewPanoramaOrientation
+
+/**
+ * This shows how to listen to some [StreetViewPanorama] events.
+ */
+class StreetViewPanoramaEventsDemoActivity : AppCompatActivity(),
+ OnStreetViewPanoramaChangeListener, OnStreetViewPanoramaCameraChangeListener,
+ OnStreetViewPanoramaClickListener, OnStreetViewPanoramaLongClickListener {
+
+ private lateinit var streetViewPanorama: StreetViewPanorama
+ private lateinit var panoChangeTimesTextView: TextView
+ private lateinit var panoCameraChangeTextView: TextView
+ private lateinit var panoClickTextView: TextView
+ private lateinit var panoLongClickTextView: TextView
+
+ private var panoChangeTimes = 0
+ private var panoCameraChangeTimes = 0
+ private var panoClickTimes = 0
+ private var panoLongClickTimes = 0
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.street_view_panorama_events_demo)
+
+ panoChangeTimesTextView = findViewById(R.id.change_pano)
+ panoCameraChangeTextView = findViewById(R.id.change_camera)
+ panoClickTextView = findViewById(R.id.click_pano)
+ panoLongClickTextView = findViewById(R.id.long_click_pano)
+
+ val streetViewPanoramaFragment =
+ supportFragmentManager.findFragmentById(R.id.streetviewpanorama) as SupportStreetViewPanoramaFragment?
+ streetViewPanoramaFragment?.getStreetViewPanoramaAsync { panorama: StreetViewPanorama ->
+ streetViewPanorama = panorama
+ streetViewPanorama.setOnStreetViewPanoramaChangeListener(
+ this@StreetViewPanoramaEventsDemoActivity
+ )
+ streetViewPanorama.setOnStreetViewPanoramaCameraChangeListener(
+ this@StreetViewPanoramaEventsDemoActivity
+ )
+ streetViewPanorama.setOnStreetViewPanoramaClickListener(
+ this@StreetViewPanoramaEventsDemoActivity
+ )
+ streetViewPanorama.setOnStreetViewPanoramaLongClickListener(
+ this@StreetViewPanoramaEventsDemoActivity
+ )
+
+ // Only set the panorama to SYDNEY on startup (when no panoramas have been
+ // loaded which is when the savedInstanceState is null).
+ savedInstanceState ?: streetViewPanorama.setPosition(SYDNEY)
+ }
+ }
+
+ override fun onStreetViewPanoramaChange(location: StreetViewPanoramaLocation) {
+ panoChangeTimesTextView.text = "Times panorama changed=" + ++panoChangeTimes
+ }
+
+ override fun onStreetViewPanoramaCameraChange(camera: StreetViewPanoramaCamera) {
+ panoCameraChangeTextView.text = "Times camera changed=" + ++panoCameraChangeTimes
+ }
+
+ override fun onStreetViewPanoramaClick(orientation: StreetViewPanoramaOrientation) {
+ val point = streetViewPanorama.orientationToPoint(orientation)
+ point?.let {
+ panoClickTimes++
+ panoClickTextView.text = "Times clicked=$panoClickTimes : $point"
+ streetViewPanorama.animateTo(
+ StreetViewPanoramaCamera.Builder()
+ .orientation(orientation)
+ .zoom(streetViewPanorama.panoramaCamera.zoom)
+ .build(), 1000
+ )
+ }
+ }
+
+ override fun onStreetViewPanoramaLongClick(orientation: StreetViewPanoramaOrientation) {
+ val point = streetViewPanorama.orientationToPoint(orientation)
+ if (point != null) {
+ panoLongClickTimes++
+ panoLongClickTextView.text = "Times long clicked=$panoLongClickTimes : $point"
+ }
+ }
+
+ companion object {
+ // George St, Sydney
+ private val SYDNEY = LatLng(-33.87365, 151.20689)
+ }
+}
\ No newline at end of file
diff --git a/ApiDemos/kotlin/app/src/gms/res/layout/street_view_panorama_events_demo.xml b/ApiDemos/kotlin/app/src/gms/res/layout/street_view_panorama_events_demo.xml
new file mode 100644
index 00000000..2251e277
--- /dev/null
+++ b/ApiDemos/kotlin/app/src/gms/res/layout/street_view_panorama_events_demo.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ApiDemos/kotlin/app/src/main/AndroidManifest.xml b/ApiDemos/kotlin/app/src/main/AndroidManifest.xml
index 8e910e8b..173ba5ca 100644
--- a/ApiDemos/kotlin/app/src/main/AndroidManifest.xml
+++ b/ApiDemos/kotlin/app/src/main/AndroidManifest.xml
@@ -60,6 +60,7 @@
+
\ No newline at end of file
diff --git a/ApiDemos/kotlin/app/src/main/res/values/strings.xml b/ApiDemos/kotlin/app/src/main/res/values/strings.xml
index 30b04d9e..7226860c 100644
--- a/ApiDemos/kotlin/app/src/main/res/values/strings.xml
+++ b/ApiDemos/kotlin/app/src/main/res/values/strings.xml
@@ -160,6 +160,14 @@
Panning Gestures
Streetnames
+
+ Street View Panorama Events
+ Standard Street View Panorama with event handling.
+ navigate to another panorama
+ pan camera
+ tap screen
+ long press screen
+
Tags
Demonstrates how to get and set tags on API objects.