1f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling/* 2f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * Copyright (C) 2013 The Android Open Source Project 3f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * 4f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * Licensed under the Apache License, Version 2.0 (the "License"); 5f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * you may not use this file except in compliance with the License. 6f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * You may obtain a copy of the License at 7f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * 8f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * http://www.apache.org/licenses/LICENSE-2.0 9f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * 10f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * Unless required by applicable law or agreed to in writing, software 11f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * distributed under the License is distributed on an "AS IS" BASIS, 12f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * See the License for the specific language governing permissions and 14f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * limitations under the License. 15f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling */ 16f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling 17f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberlingpackage com.android.camera.data; 18f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling 19f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberlingimport android.content.Context; 20f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberlingimport android.net.Uri; 21f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling 228e963a5a6016d246184ed65906f9d103e92b17e2Sascha Haeberlingimport com.android.camera.util.PhotoSphereHelper; 23f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling 24f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling/** 25f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling * This class breaks out the off-thread panorama support. 26f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling */ 27f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberlingpublic class PanoramaMetadataLoader { 28f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling /** 297190c6a9018e95ff0c49642442c7a069e16a6a7aSascha Haeberling * Extracts panorama metadata from the item with the given URI and fills the 307190c6a9018e95ff0c49642442c7a069e16a6a7aSascha Haeberling * {@code metadata}. 31f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling */ 328e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger public static boolean loadPanoramaMetadata(final Context context, Uri contentUri, 338ee16b8a323ffa20e6fb1270d498ec445f64defcPaul Rohde Metadata metadata) { 348a2350a3d557465b53445685db0f9ac838cf90c5Angus Kong PhotoSphereHelper.PanoramaMetadata panoramaMetadata = 358ee16b8a323ffa20e6fb1270d498ec445f64defcPaul Rohde PhotoSphereHelper.getPanoramaMetadata(context, contentUri); 368e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger // Note: The use of '==' here is in purpose as this is a singleton that 378e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger // is returned if this is not a panorama, so pointer comparison works. 388e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger if (panoramaMetadata == null || panoramaMetadata == PhotoSphereHelper.NOT_PANORAMA) { 398e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger return false; 40f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling } 417190c6a9018e95ff0c49642442c7a069e16a6a7aSascha Haeberling 428e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger metadata.setPanorama(true); 438ee16b8a323ffa20e6fb1270d498ec445f64defcPaul Rohde metadata.setPanorama360(panoramaMetadata.mIsPanorama360); 448ee16b8a323ffa20e6fb1270d498ec445f64defcPaul Rohde metadata.setUsePanoramaViewer(panoramaMetadata.mUsePanoramaViewer); 458e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger 468e29072ca69229a25dc4a856e3635d131613f4caAlan Newberger return true; 47f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling } 48f1f5186f7d3fd8bf35009d9e65a43914c664d82bSascha Haeberling} 49