[Dialogs] - handling Back button in dialogs
authorAndrzej Popowski <a.popowski@samsung.com>
Tue, 10 Nov 2015 13:25:08 +0000 (14:25 +0100)
committerAndrzej Popowski <a.popowski@samsung.com>
Tue, 10 Nov 2015 14:02:20 +0000 (15:02 +0100)
Change-Id: I06f404cef5bf6db2d756c1cf99dd16b3f362deff
Signed-off-by: Andrzej Popowski <a.popowski@samsung.com>
src/dialog/cordova_dialog_api.js

index 0de4429..eb2730f 100755 (executable)
@@ -61,6 +61,7 @@ var popup = (function () {
   var overlay;
   var popup;
   var dismissCallback;
+  var tizenHwKeyListener = null;
 
   function isPopupVisible() {
     if (box) {
@@ -70,6 +71,15 @@ var popup = (function () {
     }
   }
 
+  function tizenHwKeyFunc(evt) {
+    if (evt.keyName === "back") {
+      evt.stopImmediatePropagation();
+      if (dismissCallback) {
+        dismissCallback();
+      }
+    }
+  }
+
   function showPopup() {
     box.style.display = 'block';
   }
@@ -84,6 +94,12 @@ var popup = (function () {
       if (prompt) {
         text = d.getElementById(inputId).value;
       }
+
+      if (tizenHwKeyListener) {
+        window.removeEventListener('tizenhwkey', tizenHwKeyListener, true);
+        tizenHwKeyListener = null;
+      }
+
       hidePopup();
       callback(id, text);
     }
@@ -275,6 +291,11 @@ var popup = (function () {
       e.addEventListener('click', createCloseCallback(callback, i + 1, options.prompt), false);
     }
 
+    if (!tizenHwKeyListener) {
+      tizenHwKeyListener = tizenHwKeyFunc;
+      window.addEventListener('tizenhwkey', tizenHwKeyListener, true);
+    }
+
     // show popup
     showPopup();
   }