summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/camera/Camera.java3
-rw-r--r--src/com/android/camera/VideoCamera.java4
-rw-r--r--src/com/android/camera/panorama/Mosaic.java22
-rw-r--r--src/com/android/camera/panorama/MosaicFrameProcessor.java5
-rw-r--r--src/com/android/camera/ui/BasicSettingPopup.java12
-rw-r--r--src/com/android/camera/ui/IndicatorButton.java14
-rw-r--r--src/com/android/camera/ui/IndicatorControlBarContainer.java4
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