package jp.mixi.triaina.webview.bridges;

import com.google.inject.Inject;

import android.os.Vibrator;
import jp.mixi.triaina.commons.utils.ArrayUtils;
import jp.mixi.triaina.webview.annotation.Bridge;
import jp.mixi.triaina.webview.entity.device.VibratorVibrateParams;

public class VibratorBridge implements BridgeObject {
	@Inject
	private Vibrator mVibrator;

	@Bridge("system.vibrator.vibrate")
	public void doVibrate(VibratorVibrateParams params) {
		Integer r = params.getRepeat();
		if (r == null)
			mVibrator.vibrate(params.getMsec());
		else
			mVibrator.vibrate(ArrayUtils.convert(params.getPattern()), r == null ? -1 : r.intValue());
	}

	@Bridge("system.vibrator.cancel")
	public void doCancel() {
		mVibrator.cancel();
	}

	@Override
	public void onResume() {
	}

	@Override
	public void onPause() {
		doCancel();
	}

	@Override
	public void onDestroy() {
	}
}

@@ -323,17 +323,20 @@
 t %7B%0A
-%09
+    
 @Inject%0A
 %09pri
@@ -331,17 +331,20 @@
 @Inject%0A
-%09
+    
 private 
@@ -364,17 +364,52 @@
 rator;%0A%0A
-%09
+    private boolean mIsEnable;%0A%0A    
 @Bridge(
@@ -435,17 +435,20 @@
 brate%22)%0A
-%09
+    
 public v
@@ -493,18 +493,51 @@
 rams) %7B%0A
-%09%09
+        mIsEnable = true;%0A%0A        
 Integer 
@@ -560,18 +560,24 @@
 peat();%0A
-%09%09
+        
 if (r ==
@@ -583,19 +583,28 @@
 = null)%0A
-%09%09%09
+            
 mVibrato
@@ -636,18 +636,33 @@
 ));%0A
-%09%09else%0A%09%09%09
+        else%0A            
 mVib
@@ -748,21 +748,27 @@
 lue());%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 @Bridge(
@@ -793,17 +793,20 @@
 ancel%22)%0A
-%09
+    
 public v
@@ -826,35 +826,117 @@
 ) %7B%0A
-%09%09mVibrator.cancel();%0A%09%7D%0A%0A%09
+        if (mIsEnable) %7B%0A            mVibrator.cancel();%0A            mIsEnable = false;%0A        %7D%0A    %7D%0A%0A    
 @Ove
@@ -933,33 +933,36 @@
 %0A%0A    @Override%0A
-%09
+    
 public void onRe
@@ -970,21 +970,27 @@
 ume() %7B%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 @Overrid
@@ -983,33 +983,36 @@
 %0A%0A    @Override%0A
-%09
+    
 public void onPa
@@ -1023,10 +1023,16 @@
 ) %7B%0A
-%09%09
+        
 doCa
@@ -1043,13 +1043,19 @@
 ();%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 @Ove
@@ -1060,17 +1060,20 @@
 verride%0A
-%09
+    
 public v
@@ -1094,9 +1094,12 @@
 ) %7B%0A
-%09
+    
 %7D%0A%7D%0A

Fix a issue that requires a android.permission.VIBRATE