rotary: remove some delays when rotating
authorGiWoong Kim <giwoong.kim@samsung.com>
Mon, 1 Jun 2015 12:34:00 +0000 (21:34 +0900)
committerGiWoong Kim <giwoong.kim@samsung.com>
Mon, 1 Jun 2015 12:52:24 +0000 (21:52 +0900)
Change-Id: I420f20c280e015ca32f45ec966474f38dc98d00d
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/GeneralPurposeSkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ISkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileRotarySkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/ProfileSpecificSkinComposer.java
tizen/src/skin/client/src/org/tizen/emulator/skin/layout/Rotary.java
tizen/src/skin/client/src/org/tizen/emulator/skin/util/SkinUtil.java

index 67578d95334cfd3bc8fac24b1ba87ebd0a8864a3..566329925e63b1b9d112a360daad854d3eb0369c 100644 (file)
@@ -199,7 +199,7 @@ public class GeneralPurposeSkinComposer implements ISkinComposer {
        }
 
        @Override
-       public void arrangeSkin(int scale, short rotationId) {
+       public void arrangeSkin(final int scale, final short rotationId) {
                //TODO: eject the calculation from UI thread
 
                /* calculate display bounds */
index e12684372db1402befc78c7ebbcd794311e14b96..8b1dade5a94da7aa5583eccd9ac0b487d8cb3d8e 100644 (file)
@@ -38,7 +38,7 @@ public interface ISkinComposer {
        public abstract void composeInternal(DisplayCanvas DisplayCanvas,
                        int x, int y, int scale, short rotationId);
 
-       public abstract void arrangeSkin(int scale, short rotationId);
+       public abstract void arrangeSkin(final int scale, final short rotationId);
        public abstract void updateSkin();
 
        public abstract Rectangle adjustDisplayGeometry(
index 226d1ee9f12ef115f64d2090383b3bce8c04b842..76f4c4afe75ec53eb817212bef49561b276a661d 100644 (file)
@@ -54,23 +54,23 @@ public class ProfileRotarySkinComposer extends ProfileSpecificSkinComposer {
        }
 
        @Override
-       public void arrangeSkin(int scale, short rotationId) {
+       public void arrangeSkin(final int scale, final short rotationId) {
                super.arrangeSkin(scale, rotationId);
 
-               rotary.arrange(scale, rotationId);
-
                shell.getDisplay().syncExec(new Runnable() {
                        @Override
                        public void run() {
                                logger.info("arrange a rotary");
 
-                               Image rotaryImage = rotary.getImage();
+                               rotary.arrange(scale, rotationId);
+
+                               final Image rotaryImage = rotary.getImage();
                                if (rotaryImage != null) {
                                        final int rotaryW = rotaryImage.getImageData().width;
                                        final int rotaryH = rotaryImage.getImageData().height;
 
                                        /* calculate rotary bounds */
-                                       Rectangle displayBounds = currentState.getDisplayBounds();
+                                       final Rectangle displayBounds = currentState.getDisplayBounds();
                                        final int offsetX = (rotaryW - displayBounds.width) / 2;
                                        final int offsetY = (rotaryH - displayBounds.height) / 2;
                                        rotary.setBounds(
@@ -82,7 +82,6 @@ public class ProfileRotarySkinComposer extends ProfileSpecificSkinComposer {
                                        Region displayRegion = displayCanvas.getRegion();
                                        displayRegion.translate(offsetX, offsetY);
                                        rotaryRegion.subtract(displayRegion);
-                                       displayRegion.translate(-offsetX, -offsetY);
 
                                        rotary.setRegion(rotaryRegion);
                                } else {
index 9f8b78f4058c396ad22e7176989947945813c068..d9b49c755c35d3ca8d80ffd97cc4a105a96ef84b 100644 (file)
@@ -179,7 +179,7 @@ public class ProfileSpecificSkinComposer implements ISkinComposer {
        }
 
        @Override
-       public void arrangeSkin(int scale, short rotationId) {
+       public void arrangeSkin(final int scale, final short rotationId) {
                //TODO: eject the calculation from UI thread
 
                /* calculate display bounds */
index e57766df6a0d8d40370233ee310a941aa18e94b8..47363e344d67683218384b858f1dbdb76082742e 100644 (file)
@@ -92,24 +92,19 @@ public class Rotary extends Canvas {
        public void arrange(final int scale, final short rotationId) {
                logger.info("scale : " + scale + ", rotate : " + rotationId);
 
-               parent.getDisplay().syncExec(new Runnable() {
-                       @Override
-                       public void run() {
-                               if (image != null) {
-                                       image.dispose();
-                                       image = null;
-                               }
-
-                               Image imageRotary = imageRegistry.getSkinImage(
-                                               rotationId, SkinImageType.DISPLAY_ROTARY_IMAGE);
-                               if (imageRotary != null) {
-                                       image = SkinUtil.createScaledImage(
-                                                       parent.getDisplay(), imageRotary, rotationId, scale);
-                               }
-
-                               redraw();
-                       }
-               });
+               if (image != null) {
+                       image.dispose();
+                       image = null;
+               }
+
+               final Image imageRotary = imageRegistry.getSkinImage(
+                               rotationId, SkinImageType.DISPLAY_ROTARY_IMAGE);
+               if (imageRotary != null) {
+                       image = SkinUtil.createScaledImage(
+                                       parent.getDisplay(), imageRotary, rotationId, scale);
+               }
+
+               redraw();
        }
 
        private void addListeners() {
index 8b05b6c64219193e59802f9a2a1e31d3fd9a2eb5..99f2e120bdd322cb64298adbb4ed423ac089de4f 100644 (file)
@@ -297,8 +297,8 @@ public class SkinUtil {
                }
 
                ImageData imageData = image.getImageData();
-               int width = imageData.width;
-               int height = imageData.height;
+               final int width = imageData.width;
+               final int height = imageData.height;
 
                Region region = new Region();
                region.add(new Rectangle(0, 0, width, height));
@@ -323,8 +323,8 @@ public class SkinUtil {
                }
 
                ImageData imageData = image.getImageData();
-               int right = left + width;
-               int bottom = top + height;
+               final int right = left + width;
+               final int bottom = top + height;
 
                Region region = shell.getRegion();
                if (region == null) {
@@ -376,13 +376,13 @@ public class SkinUtil {
                        return null;
                }
 
-               ImageData imageDataSrc = imageOrigin.getImageData();
+               final ImageData imageDataSrc = imageOrigin.getImageData();
                ImageData imageDataDst = (ImageData) imageDataSrc.clone();
 
                float convertedScale = convertScale(scale);
 
-               int width = (int) (imageDataSrc.width * convertedScale);
-               int height = (int) (imageDataSrc.height * convertedScale);
+               final int width = (int) (imageDataSrc.width * convertedScale);
+               final int height = (int) (imageDataSrc.height * convertedScale);
                imageDataDst = imageDataDst.scaledTo(width, height);
 
                return new Image(display, imageDataDst);