From c6f38deb195f99c25ee97bf218f263372fec8ce6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=9E=AC=EC=84=B1=5BAjaxUI=5D=5BFE=ED=94=8C?= =?UTF-8?q?=EB=9E=AB=ED=8F=BC=5D?= Date: Wed, 12 Apr 2017 12:13:32 +0900 Subject: [PATCH] fix(flicking): Fix panel move by API Android 2.x The container element should have left css prop values as '0px', but in the case of non-touch by user it was dismissed by condition. Removing hammer event check condition fix the problem. Ref #485 Close #323 --- src/flicking.js | 2 +- test/unit/js/flicking.test.js | 38 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/flicking.js b/src/flicking.js index 0708df03..bf19213d 100644 --- a/src/flicking.js +++ b/src/flicking.js @@ -747,7 +747,7 @@ eg.module("flicking", ["jQuery", eg, window, document, eg.MovableCoord], functio panel.animating = true; - if (!customEvent.restoreCall && e.hammerEvent && + if (!customEvent.restoreCall && this._setPhaseValue("start", { depaPos: e.depaPos, destPos: e.destPos diff --git a/test/unit/js/flicking.test.js b/test/unit/js/flicking.test.js index 74803400..1814bdeb 100644 --- a/test/unit/js/flicking.test.js +++ b/test/unit/js/flicking.test.js @@ -1931,6 +1931,44 @@ QUnit.test("Workaround for buggy link highlighting on android 2.x", function(ass assert.ok(leftValue && parseInt(leftValue, 10) > 0, "Panel should be moved using left property instead of translate."); }); +QUnit.test("Android 2.x panel move by API", function(assert) { + var done = assert.async(); + + // Given + eg.hook.agent = function () { + return { + // GalaxyS:2.3.4 + "device": "GalaxyS:2.3.4", + "ua": "Mozilla/5.0 (Linux;U;Android 2.3.4;ko-kr;SHW-M110S Build/GINGERBREAD)AppleWebKit/533.1(KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", + "os": { + "name": "android", + "version": "2.3.4" + }, + "browser": { + "name": "default", + "version": "-1" + }, + "isHWAccelerable": false, + "isTransitional": false, + "_hasClickBug": false + }; + }; + eg.invoke("flicking",[null, eg]); + + // When + var inst = this.create("#mflick1"); + var $container = inst.$container; + + inst.next(300); + + assert.equal($container.css("left"), "0px", "During the panel move, container's left should be 0px."); + + setTimeout(function() { + assert.notEqual($container.css("left"), "0px", "After panel move container's left shouldn't be 0px."); + done(); + }, 500); +}); + QUnit.test("Check public methods return", function (assert) { var inst = this.create("#mflick1", { circular: true }); var instances = [