diff options
Diffstat (limited to 'src/com/android/camera/ui/GpsIndicator.java')
-rw-r--r-- | src/com/android/camera/ui/GpsIndicator.java | 43 |
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); + } +} |