FP5: vibrator: Match stock behaviour

Change-Id: I05b15bba9aa67964abc3d72ec7c758fd5bb97d2f
diff --git a/vibrator/Vibrator.cpp b/vibrator/Vibrator.cpp
index 289fd7f..13f53a3 100644
--- a/vibrator/Vibrator.cpp
+++ b/vibrator/Vibrator.cpp
@@ -432,21 +432,54 @@
     char value[32];
     int ret;
 
-    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "state");
-    ret = write_value(file, "1");
+    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate_mode");
+    ret = write_value(file, "0");
     if (ret < 0)
        goto error;
 
-    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "duration");
-    snprintf(value, sizeof(value), "%u\n", timeoutMs);
-    ret = write_value(file, value);
-    if (ret < 0)
-       goto error;
+    if (timeoutMs <= 50) {
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "seq");
+        ret = write_value(file, "0x00 0x00");
+        if (ret < 0)
+            goto error;
 
-    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate");
-    ret = write_value(file, "1");
-    if (ret < 0)
-       goto error;
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "seq");
+        ret = write_value(file, "0x00 0x01");
+        if (ret < 0)
+            goto error;
+
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "loop");
+        ret = write_value(file, "0x00 0x00");
+        if (ret < 0)
+            goto error;
+
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "duration");
+        snprintf(value, sizeof(value), "%u\n", timeoutMs);
+        ret = write_value(file, value);
+        if (ret < 0)
+            goto error;
+
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "brightness");
+        ret = write_value(file, "1");
+        if (ret < 0)
+            goto error;
+    } else {
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "index");
+        ret = write_value(file, "4");
+        if (ret < 0)
+            goto error;
+
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "duration");
+        snprintf(value, sizeof(value), "%u\n", timeoutMs);
+        ret = write_value(file, value);
+        if (ret < 0)
+            goto error;
+
+        snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate");
+        ret = write_value(file, "1");
+        if (ret < 0)
+            goto error;
+    }
 
     return 0;
 
@@ -462,6 +495,17 @@
 
     snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "activate");
     ret = write_value(file, "0");
+    if (ret < 0)
+        return ret;
+
+    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "brightness");
+    ret = write_value(file, "0");
+    if (ret < 0)
+        return ret;
+
+    snprintf(file, sizeof(file), "%s/%s", LED_DEVICE, "index");
+    ret = write_value(file, "1");
+
     return ret;
 }