summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/ui/GpsIndicator.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/ui/GpsIndicator.java')
-rw-r--r--src/com/android/camera/ui/GpsIndicator.java43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/com/android/camera/ui/GpsIndicator.java b/src/com/android/camera/ui/GpsIndicator.java
new file mode 100644
index 0000000..27fe0a1
--- /dev/null
+++ b/src/com/android/camera/ui/GpsIndicator.java
@@ -0,0 +1,43 @@
+package com.android.camera.ui;
+
+import android.content.Context;
+
+import com.android.camera.IconListPreference;
+import com.android.camera.R;
+
+public class GpsIndicator extends BasicIndicator {
+
+ private static final int GPS_ON_INDEX = 1;
+
+ private ResourceTexture mNoSignalIcon;
+ private boolean mHasSignal = false;
+
+ public GpsIndicator(IconListPreference preference) {
+ super(preference);
+ }
+
+ @Override
+ protected ResourceTexture getIcon() {
+ if (mIndex == GPS_ON_INDEX && !mHasSignal) {
+ if (mNoSignalIcon == null) {
+ Context context = getGLRootView().getContext();
+ mNoSignalIcon = new ResourceTexture(
+ context, R.drawable.ic_viewfinder_gps_no_signal);
+ }
+ return mNoSignalIcon;
+ }
+ return super.getIcon();
+ }
+
+ public void setHasSignal(boolean hasSignal) {
+ if (mHasSignal == hasSignal) return;
+ mHasSignal = hasSignal;
+ invalidate();
+ }
+
+ @Override
+ protected void onPreferenceChanged(int newIndex) {
+ mHasSignal = false;
+ super.onPreferenceChanged(newIndex);
+ }
+}