diff options
author | Wu-cheng Li <wuchengli@google.com> | 2011-09-07 15:34:17 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2011-09-08 02:50:09 +0800 |
commit | a93a4d60eacee4e12471b45f8691c14114e113a4 (patch) | |
tree | 8d924a9924c8238d2d74238c73d94710f2bd3aee /src/com/android/camera/LocationManager.java | |
parent | 03e53d81e5d64542fba64565962b9c0049525f71 (diff) | |
download | LegacyCamera-a93a4d60eacee4e12471b45f8691c14114e113a4.zip LegacyCamera-a93a4d60eacee4e12471b45f8691c14114e113a4.tar.gz LegacyCamera-a93a4d60eacee4e12471b45f8691c14114e113a4.tar.bz2 |
Set rotation and gps in video snapshot.
bug:5187868
Change-Id: I1092e3d37dba78073b42aa9107e7cc326d67decc
Diffstat (limited to 'src/com/android/camera/LocationManager.java')
-rw-r--r-- | src/com/android/camera/LocationManager.java | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/src/com/android/camera/LocationManager.java b/src/com/android/camera/LocationManager.java index 56bd812..fcf21b6 100644 --- a/src/com/android/camera/LocationManager.java +++ b/src/com/android/camera/LocationManager.java @@ -48,8 +48,30 @@ public class LocationManager { mListener = listener; } - public void startReceivingLocationUpdates() { - mRecordLocation = true; + public Location getCurrentLocation() { + if (!mRecordLocation) return null; + + // go in best to worst order + for (int i = 0; i < mLocationListeners.length; i++) { + Location l = mLocationListeners[i].current(); + if (l != null) return l; + } + Log.d(TAG, "No location received yet."); + return null; + } + + public void recordLocation(boolean recordLocation) { + if (mRecordLocation != recordLocation) { + mRecordLocation = recordLocation; + if (recordLocation) { + startReceivingLocationUpdates(); + } else { + stopReceivingLocationUpdates(); + } + } + } + + private void startReceivingLocationUpdates() { if (mLocationManager == null) { mLocationManager = (android.location.LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE); @@ -72,7 +94,7 @@ public class LocationManager { 1000, 0F, mLocationListeners[0]); - mListener.showGpsOnScreenIndicator(false); + if (mListener != null) mListener.showGpsOnScreenIndicator(false); } catch (SecurityException ex) { Log.i(TAG, "fail to request location update, ignore", ex); } catch (IllegalArgumentException ex) { @@ -82,8 +104,7 @@ public class LocationManager { } } - public void stopReceivingLocationUpdates() { - mRecordLocation = false; + private void stopReceivingLocationUpdates() { if (mLocationManager != null) { for (int i = 0; i < mLocationListeners.length; i++) { try { @@ -94,17 +115,7 @@ public class LocationManager { } Log.d(TAG, "stopReceivingLocationUpdates"); } - mListener.hideGpsOnScreenIndicator(); - } - - public Location getCurrentLocation() { - // go in best to worst order - for (int i = 0; i < mLocationListeners.length; i++) { - Location l = mLocationListeners[i].current(); - if (l != null) return l; - } - Log.d(TAG, "No location received yet."); - return null; + if (mListener != null) mListener.hideGpsOnScreenIndicator(); } private class LocationListener @@ -127,7 +138,7 @@ public class LocationManager { } // If GPS is available before start camera, we won't get status // update so update GPS indicator when we receive data. - if (mRecordLocation && + if (mListener != null && mRecordLocation && android.location.LocationManager.GPS_PROVIDER.equals(mProvider)) { mListener.showGpsOnScreenIndicator(true); } @@ -154,7 +165,7 @@ public class LocationManager { case LocationProvider.OUT_OF_SERVICE: case LocationProvider.TEMPORARILY_UNAVAILABLE: { mValid = false; - if (mRecordLocation && + if (mListener != null && mRecordLocation && android.location.LocationManager.GPS_PROVIDER.equals(provider)) { mListener.showGpsOnScreenIndicator(false); } |