summaryrefslogtreecommitdiff
path: root/src/com/android/camera/CameraActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/CameraActivity.java')
-rwxr-xr-x[-rw-r--r--]src/com/android/camera/CameraActivity.java62
1 files changed, 36 insertions, 26 deletions
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index 6cf522dd9..6cca8da7f 100644..100755
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -170,6 +170,8 @@ public class CameraActivity extends Activity
private static final int HIDE_ACTION_BAR = 1;
private static final long SHOW_ACTION_BAR_TIMEOUT_MS = 3000;
+ private static final int SWITCH_SAVE_PATH = 2;
+
/** Permission request code */
private static final int PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION = 1;
@@ -256,8 +258,6 @@ public class CameraActivity extends Activity
private Intent mStandardShareIntent;
private ShareActionProvider mPanoramaShareActionProvider;
private Intent mPanoramaShareIntent;
- private LocalMediaObserver mLocalImagesObserver;
- private LocalMediaObserver mLocalVideosObserver;
private SettingsManager mSettingsManager;
private final int DEFAULT_SYSTEM_UI_VISIBILITY = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
@@ -353,6 +353,24 @@ public class CameraActivity extends Activity
}
};
+ // update the status of storage space when SD card status changed.
+ private BroadcastReceiver mSDcardMountedReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.d(TAG, "SDcard status changed, update storage space");
+ updateStorageSpaceAndHint();
+ }
+ };
+
+ private void registerSDcardMountedReceiver() {
+ // filter for SDcard status
+ IntentFilter filter = new IntentFilter(Intent.ACTION_MEDIA_MOUNTED);
+ filter.addAction(Intent.ACTION_MEDIA_SHARED);
+ filter.addAction(Intent.ACTION_MEDIA_UNMOUNTED);
+ filter.addDataScheme("file");
+ registerReceiver(mSDcardMountedReceiver, filter);
+ }
+
private class MainHandler extends Handler {
public MainHandler(Looper looper) {
super(looper);
@@ -363,6 +381,8 @@ public class CameraActivity extends Activity
if (msg.what == HIDE_ACTION_BAR) {
removeMessages(HIDE_ACTION_BAR);
CameraActivity.this.setSystemBarsVisibility(false);
+ }else if ( msg.what == SWITCH_SAVE_PATH ) {
+ mCurrentModule.onSwitchSavePath();
}
}
}
@@ -1689,16 +1709,6 @@ public class CameraActivity extends Activity
setupNfcBeamPush();
- mLocalImagesObserver = new LocalMediaObserver();
- mLocalVideosObserver = new LocalMediaObserver();
-
- getContentResolver().registerContentObserver(
- MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true,
- mLocalImagesObserver);
- getContentResolver().registerContentObserver(
- MediaStore.Video.Media.EXTERNAL_CONTENT_URI, true,
- mLocalVideosObserver);
-
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
mDeveloperMenuEnabled = prefs.getBoolean(CameraSettings.KEY_DEVELOPER_MENU, false);
@@ -1713,6 +1723,7 @@ public class CameraActivity extends Activity
int offset = lower * 7 / 100;
SETTING_LIST_WIDTH_1 = lower / 2 + offset;
SETTING_LIST_WIDTH_2 = lower / 2 - offset;
+ registerSDcardMountedReceiver();
mAutoTestEnabled = PersistUtil.isAutoTestEnabled();
@@ -1775,8 +1786,6 @@ public class CameraActivity extends Activity
mCurrentModule.onPauseAfterSuper();
mPaused = true;
- mLocalImagesObserver.setActivityPaused(true);
- mLocalVideosObserver.setActivityPaused(true);
}
@Override
@@ -1914,17 +1923,12 @@ public class CameraActivity extends Activity
// than the preview.
mResetToPreviewOnResume = true;
- if (mLocalVideosObserver.isMediaDataChangedDuringPause()
- || mLocalImagesObserver.isMediaDataChangedDuringPause()) {
- if (!mSecureCamera) {
- // If it's secure camera, requestLoad() should not be called
- // as it will load all the data.
- mDataAdapter.requestLoad(getContentResolver());
- mThumbnailDrawable = null;
- }
+ if (!mSecureCamera) {
+ // If it's secure camera, requestLoad() should not be called
+ // as it will load all the data.
+ mDataAdapter.requestLoad(getContentResolver());
+ mThumbnailDrawable = null;
}
- mLocalImagesObserver.setActivityPaused(false);
- mLocalVideosObserver.setActivityPaused(false);
if (PersistUtil.isTraceEnable())
Trace.endSection();
}
@@ -1980,8 +1984,7 @@ public class CameraActivity extends Activity
Log.d(TAG, "wake lock release");
}
if (mCursor != null) {
- getContentResolver().unregisterContentObserver(mLocalImagesObserver);
- getContentResolver().unregisterContentObserver(mLocalVideosObserver);
+ unregisterReceiver(mSDcardMountedReceiver);
mCursor.close();
mCursor=null;
@@ -2047,6 +2050,10 @@ public class CameraActivity extends Activity
protected long updateStorageSpace() {
synchronized (mStorageSpaceLock) {
mStorageSpaceBytes = Storage.getAvailableSpace();
+ if (Storage.switchSavePath()) {
+ mStorageSpaceBytes = Storage.getAvailableSpace();
+ mMainHandler.sendEmptyMessage(SWITCH_SAVE_PATH);
+ }
return mStorageSpaceBytes;
}
}
@@ -2059,6 +2066,9 @@ public class CameraActivity extends Activity
public void updateStorageSpaceAndHint() {
if (mIsStartup) {
+ if (!SDCard.instance().isWriteable()) {
+ Storage.setSaveSDCard(false);
+ }
mIsStartup = false;
}
updateStorageSpace();