diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/Camera.java | 3 | ||||
-rw-r--r-- | src/com/android/camera/VideoCamera.java | 4 | ||||
-rw-r--r-- | src/com/android/camera/panorama/Mosaic.java | 22 | ||||
-rw-r--r-- | src/com/android/camera/panorama/MosaicFrameProcessor.java | 5 | ||||
-rw-r--r-- | src/com/android/camera/ui/BasicSettingPopup.java | 12 | ||||
-rw-r--r-- | src/com/android/camera/ui/IndicatorButton.java | 14 | ||||
-rw-r--r-- | src/com/android/camera/ui/IndicatorControlBarContainer.java | 4 |
7 files changed, 49 insertions, 15 deletions
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 1274a72..26d4497 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -49,7 +49,6 @@ import android.os.Message; import android.os.MessageQueue; import android.os.SystemClock; import android.provider.MediaStore; -import android.provider.Settings; import android.util.Log; import android.view.GestureDetector; import android.view.Gravity; @@ -62,7 +61,6 @@ import android.view.OrientationEventListener; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; -import android.view.Window; import android.view.WindowManager; import android.view.animation.AnimationUtils; import android.widget.TextView; @@ -952,6 +950,7 @@ public class Camera extends ActivityBase implements FocusManager.Listener, mIndicatorControlContainer.initialize(this, mPreferenceGroup, mParameters.isZoomSupported(), SETTING_KEYS, OTHER_SETTING_KEYS); + updateSceneModeUI(); mIndicatorControlContainer.setListener(this); } diff --git a/src/com/android/camera/VideoCamera.java b/src/com/android/camera/VideoCamera.java index f100d28..39d3298 100644 --- a/src/com/android/camera/VideoCamera.java +++ b/src/com/android/camera/VideoCamera.java @@ -444,7 +444,9 @@ public class VideoCamera extends ActivityBase private void loadCameraPreferences() { CameraSettings settings = new CameraSettings(this, mParameters, mCameraId, CameraHolder.instance().getCameraInfo()); - mPreferenceGroup = settings.getPreferenceGroup(R.xml.video_preferences); + // Remove the video quality preference setting when the quality is given in the intent. + mPreferenceGroup = filterPreferenceScreenByIntent( + settings.getPreferenceGroup(R.xml.video_preferences)); } private boolean collapseCameraControls() { diff --git a/src/com/android/camera/panorama/Mosaic.java b/src/com/android/camera/panorama/Mosaic.java index b586aad..9ad2c64 100644 --- a/src/com/android/camera/panorama/Mosaic.java +++ b/src/com/android/camera/panorama/Mosaic.java @@ -68,6 +68,21 @@ public class Mosaic { public static final int BLENDTYPE_HORIZONTAL =3; /** + * This strip type will use the default thin strips where the strips are + * spaced according to the image capture rate. + */ + public static final int STRIPTYPE_THIN = 0; + + /** + * This strip type will use wider strips for blending. The strip separation + * is controlled by a threshold on the native side. Since the strips are + * wider, there is an additional cross-fade blending step to make the seam + * boundaries smoother. Since this mode uses lesser image frames, it is + * computationally more efficient than the thin strip mode. + */ + public static final int STRIPTYPE_WIDE = 1; + + /** * Return flags returned by createMosaic() are one of the following. */ public static final int MOSAIC_RET_OK = 1; @@ -128,6 +143,13 @@ public class Mosaic { public native void setBlendingType(int type); /** + * Set the type of strips to use for blending. + * @param type the blending strip type to use {STRIPTYPE_THIN, + * STRIPTYPE_WIDE}. + */ + public native void setStripType(int type); + + /** * Tell the native layer to create the final mosaic after all the input frame * data have been collected. * The case of generating high-resolution mosaic may take dozens of seconds to finish. diff --git a/src/com/android/camera/panorama/MosaicFrameProcessor.java b/src/com/android/camera/panorama/MosaicFrameProcessor.java index dde4a22..54fc7b8 100644 --- a/src/com/android/camera/panorama/MosaicFrameProcessor.java +++ b/src/com/android/camera/panorama/MosaicFrameProcessor.java @@ -84,6 +84,7 @@ public class MosaicFrameProcessor { public void initialize() { setupMosaicer(mPreviewWidth, mPreviewHeight, mPreviewBufferSize); + setStripType(Mosaic.STRIPTYPE_WIDE); reset(); } @@ -92,6 +93,10 @@ public class MosaicFrameProcessor { mMosaicer.freeMosaicMemory(); } + public void setStripType(int type) { + mMosaicer.setStripType(type); + } + private void setupMosaicer(int previewWidth, int previewHeight, int bufSize) { Log.v(TAG, "setupMosaicer w, h=" + previewWidth + ',' + previewHeight + ',' + bufSize); mMosaicer.allocateMosaicMemory(previewWidth, previewHeight); diff --git a/src/com/android/camera/ui/BasicSettingPopup.java b/src/com/android/camera/ui/BasicSettingPopup.java index aca88ca..9220c3b 100644 --- a/src/com/android/camera/ui/BasicSettingPopup.java +++ b/src/com/android/camera/ui/BasicSettingPopup.java @@ -23,8 +23,8 @@ import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.View; +import android.widget.AbsListView; import android.widget.AdapterView; -import android.widget.ListView; import android.widget.SimpleAdapter; import java.util.ArrayList; @@ -47,7 +47,7 @@ public class BasicSettingPopup extends AbstractSettingPopup implements super(context, attrs); } - public void initialize(IconListPreference preference) { + public void initialize(IconListPreference preference, int settingItemLayoutId) { mPreference = preference; Context context = getContext(); CharSequence[] entries = mPreference.getEntries(); @@ -69,11 +69,11 @@ public class BasicSettingPopup extends AbstractSettingPopup implements listItem.add(map); } SimpleAdapter listItemAdapter = new SimpleAdapter(context, listItem, - R.layout.setting_item, + settingItemLayoutId, new String[] {"text", "image"}, new int[] {R.id.text, R.id.image}); - ((ListView) mSettingList).setAdapter(listItemAdapter); - ((ListView) mSettingList).setOnItemClickListener(this); + ((AbsListView) mSettingList).setAdapter(listItemAdapter); + ((AbsListView) mSettingList).setOnItemClickListener(this); reloadPreference(); } @@ -82,7 +82,7 @@ public class BasicSettingPopup extends AbstractSettingPopup implements public void reloadPreference() { int index = mPreference.findIndexOfValue(mPreference.getValue()); if (index != -1) { - ((ListView) mSettingList).setItemChecked(index, true); + ((AbsListView) mSettingList).setItemChecked(index, true); } else { Log.e(TAG, "Invalid preference value."); mPreference.print(); diff --git a/src/com/android/camera/ui/IndicatorButton.java b/src/com/android/camera/ui/IndicatorButton.java index 880a650..7948f7c 100644 --- a/src/com/android/camera/ui/IndicatorButton.java +++ b/src/com/android/camera/ui/IndicatorButton.java @@ -16,6 +16,7 @@ package com.android.camera.ui; +import com.android.camera.CameraSettings; import com.android.camera.IconListPreference; import com.android.camera.R; @@ -102,10 +103,17 @@ public class IndicatorButton extends AbstractIndicatorButton implements BasicSet Context.LAYOUT_INFLATER_SERVICE); ViewGroup root = (ViewGroup) getRootView().findViewById(R.id.frame_layout); - BasicSettingPopup popup = (BasicSettingPopup) inflater.inflate( - R.layout.basic_setting_popup, root, false); + BasicSettingPopup popup; + if (CameraSettings.KEY_VIDEO_EFFECT.equals(getKey())) { + popup = (BasicSettingPopup) inflater.inflate( + R.layout.effect_setting_popup, root, false); + popup.initialize(mPreference, R.layout.effect_setting_item); + } else { + popup = (BasicSettingPopup) inflater.inflate( + R.layout.basic_setting_popup, root, false); + popup.initialize(mPreference, R.layout.setting_item); + } popup.setSettingChangedListener(this); - popup.initialize(mPreference); root.addView(popup); mPopup = popup; } diff --git a/src/com/android/camera/ui/IndicatorControlBarContainer.java b/src/com/android/camera/ui/IndicatorControlBarContainer.java index 9c01e01..cc35d59 100644 --- a/src/com/android/camera/ui/IndicatorControlBarContainer.java +++ b/src/com/android/camera/ui/IndicatorControlBarContainer.java @@ -154,9 +154,7 @@ public class IndicatorControlBarContainer extends IndicatorControlContainer @Override public void overrideSettings(final String ... keyvalues) { - if (mSecondLevelIndicatorControlBar.getVisibility() == View.VISIBLE) { - mSecondLevelIndicatorControlBar.overrideSettings(keyvalues); - } + mSecondLevelIndicatorControlBar.overrideSettings(keyvalues); } @Override |