diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index bd27f75..1cbe904 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -1823,8 +1823,9 @@
         }
 
         if (message != null) {
+            Log.w(TAG, "Storage warning: " + message);
             if (mStorageHint == null) {
-                mStorageHint = OnScreenHint.makeText(mAppContext, message);
+                mStorageHint = OnScreenHint.makeText(CameraActivity.this, message);
             } else {
                 mStorageHint.setText(message);
             }
@@ -1832,7 +1833,7 @@
         } else if (mStorageHint != null) {
             mStorageHint.cancel();
             mStorageHint = null;
-        }
+       }
     }
 
     protected void setResultEx(int resultCode) {
diff --git a/src/com/android/camera/OnScreenHint.java b/src/com/android/camera/OnScreenHint.java
index b6bb71f..edc877b 100644
--- a/src/com/android/camera/OnScreenHint.java
+++ b/src/com/android/camera/OnScreenHint.java
@@ -16,6 +16,7 @@
 
 package com.android.camera;
 
+import android.app.Activity;
 import android.content.Context;
 import android.graphics.PixelFormat;
 import android.os.Handler;
@@ -62,9 +63,9 @@
      *                 {@link android.app.Application} or
      *                 {@link android.app.Activity} object.
      */
-    private OnScreenHint(Context context) {
-        mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
-        mY = context.getResources().getDimensionPixelSize(
+    private OnScreenHint(Activity activity) {
+        mWM = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
+        mY = activity.getResources().getDimensionPixelSize(
                 R.dimen.hint_y_offset);
 
         mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
@@ -103,11 +104,11 @@
      * @param text     The text to show.  Can be formatted text.
      *
      */
-    public static OnScreenHint makeText(Context context, CharSequence text) {
-        OnScreenHint result = new OnScreenHint(context);
+    public static OnScreenHint makeText(Activity activity, CharSequence text) {
+        OnScreenHint result = new OnScreenHint(activity);
 
         LayoutInflater inflate =
-                (LayoutInflater) context.getSystemService(
+                (LayoutInflater) activity.getSystemService(
                 Context.LAYOUT_INFLATER_SERVICE);
         View v = inflate.inflate(R.layout.on_screen_hint, null);
         TextView tv = (TextView) v.findViewById(R.id.message);
@@ -188,4 +189,3 @@
         }
     };
 }
-
