From f40669b90a0e3acd49bf2d3a7f889e0d89c24a95 Mon Sep 17 00:00:00 2001 From: Angus Kong Date: Fri, 24 Aug 2012 19:30:08 +0800 Subject: Invoke LightCycle viewer for panoramas. 1. Add SUPPORT_PANORAMA_VIEW to supported operations. 2. Add helper methods in LightCycleHelper: a. checks if the image file is a panorama. b. invokes the panorama view activity. bug:6912297 Change-Id: I7909e49632cad02a795943a113bca6aec17df9dd --- .../android/gallery3d/common/LightCycleHelper.java | 32 +++++++++++++++++----- 1 file changed, 25 insertions(+), 7 deletions(-) (limited to 'gallerycommon/src') diff --git a/gallerycommon/src/com/android/gallery3d/common/LightCycleHelper.java b/gallerycommon/src/com/android/gallery3d/common/LightCycleHelper.java index f8df29dd4..c4fb61a52 100644 --- a/gallerycommon/src/com/android/gallery3d/common/LightCycleHelper.java +++ b/gallerycommon/src/com/android/gallery3d/common/LightCycleHelper.java @@ -16,18 +16,21 @@ package com.android.gallery3d.common; +import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.net.Uri; public class LightCycleHelper { + public static final String EXTRA_OUTPUT_DIR = "output_dir"; + private static final String PANORAMA_FILENAME_PREFIX = "panorama_"; public static final String LIGHTCYCLE_PACKAGE = "com.google.android.apps.lightcycle"; public static final String LIGHTCYCLE_CAPTURE_CLASS = "com.google.android.apps.lightcycle.PanoramaCaptureActivity"; - public static final String LIGHTCYCLE_VIEW_CLASS = + private static final String LIGHTCYCLE_VIEW_CLASS = "com.google.android.apps.lightcycle.PanoramaViewActivity"; - public static final String EXTRA_OUTPUT_DIR = "output_dir"; private static boolean sUpdated; private static boolean sHasViewActivity; @@ -45,35 +48,50 @@ public class LightCycleHelper { sHasCaptureActivity = hasLightCycleActivity(pm, LIGHTCYCLE_CAPTURE_CLASS); } - public synchronized static boolean hasLightCycleView(PackageManager pm) { + public static synchronized boolean hasLightCycleView(PackageManager pm) { if (!sUpdated) { update(pm); } return sHasViewActivity; } - public synchronized static boolean hasLightCycleCapture(PackageManager pm) { + public static synchronized boolean hasLightCycleCapture(PackageManager pm) { if (!sUpdated) { update(pm); } return sHasCaptureActivity; } - public synchronized static void onPackageAdded(Context context, String packageName) { + public static synchronized void onPackageAdded(Context context, String packageName) { if (LIGHTCYCLE_PACKAGE.equals(packageName)) { update(context.getPackageManager()); } } - public synchronized static void onPackageRemoved(Context context, String packageName) { + public static synchronized void onPackageRemoved(Context context, String packageName) { if (LIGHTCYCLE_PACKAGE.equals(packageName)) { update(context.getPackageManager()); } } - public synchronized static void onPackageChanged(Context context, String packageName) { + public static synchronized void onPackageChanged(Context context, String packageName) { if (LIGHTCYCLE_PACKAGE.equals(packageName)) { update(context.getPackageManager()); } } + + public static void viewPanorama(Activity activity, Uri uri, String type) { + try { + Intent intent = new Intent(Intent.ACTION_VIEW) + .setDataAndType(uri, type) + .setClassName(LIGHTCYCLE_PACKAGE, LIGHTCYCLE_VIEW_CLASS); + activity.startActivity(intent); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + public static boolean isPanorama(String filename) { + return filename.startsWith(PANORAMA_FILENAME_PREFIX); + } } -- cgit v1.2.3