summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gallerycommon/src/com/android/gallery3d/common/ApiHelper.java4
-rw-r--r--src/com/android/camera/CameraActivity.java29
-rw-r--r--src/com/android/gallery3d/filtershow/FilterShowActivity.java3
-rw-r--r--src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java1
-rw-r--r--src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java64
-rw-r--r--src/com/android/gallery3d/filtershow/presets/ImagePreset.java1
-rw-r--r--src/com/android/gallery3d/filtershow/ui/ImageCurves.java1
-rw-r--r--src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java19
8 files changed, 75 insertions, 47 deletions
diff --git a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
index 56adcb1e9..4200ec75e 100644
--- a/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
+++ b/gallerycommon/src/com/android/gallery3d/common/ApiHelper.java
@@ -22,6 +22,7 @@ import android.hardware.Camera;
import android.os.Build;
import android.provider.MediaStore.MediaColumns;
import android.view.View;
+import android.view.WindowManager;
import java.lang.reflect.Field;
@@ -179,6 +180,9 @@ public class ApiHelper {
public static final boolean HAS_GLES20_REQUIRED =
Build.VERSION.SDK_INT >= VERSION_CODES.HONEYCOMB;
+ public static final boolean HAS_ROTATION_ANIMATION =
+ hasField(WindowManager.LayoutParams.class, "rotationAnimation");
+
public static int getIntFieldIfExists(Class<?> klass, String fieldName,
Class<?> obj, int defaultVal) {
try {
diff --git a/src/com/android/camera/CameraActivity.java b/src/com/android/camera/CameraActivity.java
index a207b2b71..b5ff0114c 100644
--- a/src/com/android/camera/CameraActivity.java
+++ b/src/com/android/camera/CameraActivity.java
@@ -19,8 +19,8 @@ package com.android.camera;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
-import android.content.Context;
import android.content.ComponentName;
+import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.ActivityInfo;
@@ -30,13 +30,14 @@ import android.os.Bundle;
import android.os.IBinder;
import android.provider.MediaStore;
import android.provider.Settings;
-import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.OrientationEventListener;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
+import android.view.WindowManager;
import android.widget.FrameLayout;
import com.android.camera.ui.CameraSwitcher;
@@ -62,6 +63,7 @@ public class CameraActivity extends ActivityBase
private int mCurrentModuleIndex;
private MotionEvent mDown;
private boolean mAutoRotateScreen;
+ private int mHeightOrWidth = -1;
private MyOrientationEventListener mOrientationListener;
// The degrees of the device rotated clockwise from its natural orientation.
@@ -299,6 +301,15 @@ public class CameraActivity extends ActivityBase
super.onConfigurationChanged(config);
ViewGroup appRoot = (ViewGroup) findViewById(R.id.content);
+ boolean landscape = (config.orientation == Configuration.ORIENTATION_LANDSCAPE);
+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) appRoot.getLayoutParams();
+ if (landscape) {
+ lp.rightMargin = getResources().getDimensionPixelSize(R.dimen.margin_systemui_offset);
+ } else {
+ lp.rightMargin = 0;
+ }
+ appRoot.setLayoutParams(lp);
+
// remove old switcher, shutter and shutter icon
View cameraControlsView = findViewById(R.id.camera_shutter_switcher);
appRoot.removeView(cameraControlsView);
@@ -362,9 +373,23 @@ public class CameraActivity extends ActivityBase
hideUI();
}
super.onFullScreenChanged(full);
+ if (ApiHelper.HAS_ROTATION_ANIMATION) {
+ setRotationAnimation(full);
+ }
mCurrentModule.onFullScreenChanged(full);
}
+ private void setRotationAnimation(boolean fullscreen) {
+ int rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_ROTATE;
+ if (fullscreen) {
+ rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
+ }
+ Window win = getWindow();
+ WindowManager.LayoutParams winParams = win.getAttributes();
+ winParams.rotationAnimation = rotationAnimation;
+ win.setAttributes(winParams);
+ }
+
@Override
protected void onStop() {
super.onStop();
diff --git a/src/com/android/gallery3d/filtershow/FilterShowActivity.java b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
index fd30ac080..92aed8425 100644
--- a/src/com/android/gallery3d/filtershow/FilterShowActivity.java
+++ b/src/com/android/gallery3d/filtershow/FilterShowActivity.java
@@ -521,9 +521,12 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
if (mLoadBitmapTask != null) {
mLoadBitmapTask.cancel(false);
}
+ // TODO: Using singletons is a bad design choice for many of these
+ // due static reference leaks and in general. Please refactor.
MasterImage.reset();
FilteringPipeline.reset();
ImageFilter.resetStatics();
+ FiltersManager.reset();
super.onDestroy();
}
diff --git a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
index 0e735bfa9..9c6415bc9 100644
--- a/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
+++ b/src/com/android/gallery3d/filtershow/cache/FilteringPipeline.java
@@ -22,7 +22,6 @@ import android.os.Process;
import android.support.v8.renderscript.*;
import android.util.Log;
-import com.android.gallery3d.filtershow.filters.BaseFiltersManager;
import com.android.gallery3d.filtershow.filters.FiltersManager;
import com.android.gallery3d.filtershow.filters.ImageFilterRS;
import com.android.gallery3d.filtershow.imageshow.GeometryMetadata;
diff --git a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
index 377bd2b6f..4dbf91a33 100644
--- a/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
+++ b/src/com/android/gallery3d/filtershow/filters/BaseFiltersManager.java
@@ -13,49 +13,37 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package com.android.gallery3d.filtershow.filters;
-import com.android.gallery3d.filtershow.cache.ImageLoader;
-
import java.util.HashMap;
+import java.util.Map;
import java.util.Vector;
-public class BaseFiltersManager {
-
- private static final String LOGTAG = "BaseFiltersManager";
- private static HashMap<Class, ImageFilter> mFilters = new HashMap<Class, ImageFilter>();
-
- protected BaseFiltersManager() {
- Vector<ImageFilter> filters = new Vector<ImageFilter>();
- addFilters(filters);
- for (ImageFilter filter : filters) {
- mFilters.put(filter.getClass(), filter);
- }
- }
+public abstract class BaseFiltersManager {
+ protected HashMap<Class, ImageFilter> mFilters = null;
- protected void addFilters(Vector<ImageFilter> filters) {
- filters.add(new ImageFilterTinyPlanet());
- filters.add(new ImageFilterRedEye());
- filters.add(new ImageFilterWBalance());
- filters.add(new ImageFilterExposure());
- filters.add(new ImageFilterVignette());
- filters.add(new ImageFilterContrast());
- filters.add(new ImageFilterShadows());
- filters.add(new ImageFilterHighlights());
- filters.add(new ImageFilterVibrance());
- filters.add(new ImageFilterSharpen());
- filters.add(new ImageFilterCurves());
- filters.add(new ImageFilterDraw());
- filters.add(new ImageFilterHue());
- filters.add(new ImageFilterSaturated());
- filters.add(new ImageFilterBwFilter());
- filters.add(new ImageFilterNegative());
- filters.add(new ImageFilterEdge());
- filters.add(new ImageFilterKMeans());
- filters.add(new ImageFilterFx());
- filters.add(new ImageFilterBorder());
- filters.add(new ImageFilterParametricBorder());
+ protected void addFilters(Map<Class, ImageFilter> filters) {
+ filters.put(ImageFilterTinyPlanet.class, new ImageFilterTinyPlanet());
+ filters.put(ImageFilterRedEye.class, new ImageFilterRedEye());
+ filters.put(ImageFilterWBalance.class, new ImageFilterWBalance());
+ filters.put(ImageFilterExposure.class, new ImageFilterExposure());
+ filters.put(ImageFilterVignette.class, new ImageFilterVignette());
+ filters.put(ImageFilterContrast.class, new ImageFilterContrast());
+ filters.put(ImageFilterShadows.class, new ImageFilterShadows());
+ filters.put(ImageFilterHighlights.class, new ImageFilterHighlights());
+ filters.put(ImageFilterVibrance.class, new ImageFilterVibrance());
+ filters.put(ImageFilterSharpen.class, new ImageFilterSharpen());
+ filters.put(ImageFilterCurves.class, new ImageFilterCurves());
+ filters.put(ImageFilterDraw.class, new ImageFilterDraw());
+ filters.put(ImageFilterHue.class, new ImageFilterHue());
+ filters.put(ImageFilterSaturated.class, new ImageFilterSaturated());
+ filters.put(ImageFilterBwFilter.class, new ImageFilterBwFilter());
+ filters.put(ImageFilterNegative.class, new ImageFilterNegative());
+ filters.put(ImageFilterEdge.class, new ImageFilterEdge());
+ filters.put(ImageFilterKMeans.class, new ImageFilterKMeans());
+ filters.put(ImageFilterFx.class, new ImageFilterFx());
+ filters.put(ImageFilterBorder.class, new ImageFilterBorder());
+ filters.put(ImageFilterParametricBorder.class, new ImageFilterParametricBorder());
}
public ImageFilter getFilter(Class c) {
@@ -79,7 +67,7 @@ public class BaseFiltersManager {
}
public void addLooks(Vector<FilterRepresentation> representations) {
- // subclass can add representations
+ // Override
}
public void addEffects(Vector<FilterRepresentation> representations) {
diff --git a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
index 752f72dcb..15fa8ca1a 100644
--- a/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
+++ b/src/com/android/gallery3d/filtershow/presets/ImagePreset.java
@@ -22,7 +22,6 @@ import android.util.Log;
import com.android.gallery3d.filtershow.ImageStateAdapter;
import com.android.gallery3d.filtershow.cache.ImageLoader;
-import com.android.gallery3d.filtershow.filters.BaseFiltersManager;
import com.android.gallery3d.filtershow.filters.FilterRepresentation;
import com.android.gallery3d.filtershow.filters.FiltersManager;
import com.android.gallery3d.filtershow.filters.ImageFilter;
diff --git a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
index e54c83eff..3e52f5ee5 100644
--- a/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
+++ b/src/com/android/gallery3d/filtershow/ui/ImageCurves.java
@@ -35,7 +35,6 @@ import android.widget.PopupMenu;
import com.android.gallery3d.R;
import com.android.gallery3d.filtershow.editors.EditorCurves;
-import com.android.gallery3d.filtershow.filters.BaseFiltersManager;
import com.android.gallery3d.filtershow.filters.FilterCurvesRepresentation;
import com.android.gallery3d.filtershow.filters.FiltersManager;
import com.android.gallery3d.filtershow.filters.ImageFilterCurves;
diff --git a/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java b/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
index 988cf2d81..b05b54670 100644
--- a/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
+++ b/src_pd/com/android/gallery3d/filtershow/filters/FiltersManager.java
@@ -16,13 +16,24 @@
package com.android.gallery3d.filtershow.filters;
+import java.util.HashMap;
+
public class FiltersManager extends BaseFiltersManager {
- private static FiltersManager gInstance = null;
+ private static FiltersManager sInstance = null;
+
+ protected FiltersManager() {
+ mFilters = new HashMap<Class, ImageFilter>();
+ addFilters(mFilters);
+ }
public static FiltersManager getManager() {
- if (gInstance == null) {
- gInstance = new FiltersManager();
+ if (sInstance == null) {
+ sInstance = new FiltersManager();
}
- return gInstance;
+ return sInstance;
+ }
+
+ public static void reset() {
+ sInstance = null;
}
}