Merge "Add haptic feedback" into android-4.4

This commit is contained in:
Dees Troy
2014-02-07 19:38:55 +01:00
committed by Gerrit Code Review
10 changed files with 70 additions and 2 deletions
+10 -1
View File
@@ -55,7 +55,7 @@ extern "C"
#include "twcommon.h"
#include "data.h"
#include "gui/pages.h"
#include "minuitwrp/minui.h"
void gui_notifyVarChange(const char *name, const char* value);
}
@@ -583,6 +583,7 @@ void DataManager::SetDefaultValues()
mConstValues.insert(make_pair(TW_VERSION_VAR, TW_VERSION_STR));
mValues.insert(make_pair("tw_storage_path", make_pair("/", 1)));
mValues.insert(make_pair("tw_vibrate", make_pair("80", 1)));
#ifdef TW_FORCE_CPUINFO_FOR_DEVICE_ID
printf("TW_FORCE_CPUINFO_FOR_DEVICE_ID := true\n");
@@ -1240,3 +1241,11 @@ extern "C" void DataManager_ReadSettingsFile(void)
{
return DataManager::ReadSettingsFile();
}
void DataManager::Vibrate(const string varName)
{
int vib_value = 0;
GetValue(varName, vib_value);
if (vib_value) {
vibrate(vib_value);
}
}
+1
View File
@@ -55,6 +55,7 @@ public:
static void DumpValues();
static void update_tz_environment_variables();
static void Vibrate(const string varName);
static void SetBackupFolder();
static void SetDefaultValues();
static void Output_Version(void); // Outputs the version to a file in the TWRP folder
+6
View File
@@ -314,6 +314,7 @@ void* GUIAction::thread_start(void *cookie)
void GUIAction::operation_start(const string operation_name)
{
time(&Start);
DataManager::SetValue(TW_ACTION_BUSY, 1);
DataManager::SetValue("ui_progress", 0);
DataManager::SetValue("tw_operation", operation_name);
@@ -323,6 +324,7 @@ void GUIAction::operation_start(const string operation_name)
void GUIAction::operation_end(const int operation_status, const int simulate)
{
time_t Stop;
int simulate_fail;
DataManager::SetValue("ui_progress", 100);
if (simulate) {
@@ -344,6 +346,9 @@ void GUIAction::operation_end(const int operation_status, const int simulate)
#ifndef TW_NO_SCREEN_TIMEOUT
blankTimer.resetTimerAndUnblank();
#endif
time(&Stop);
if ((int) difftime(Stop, Start) > 10)
DataManager::Vibrate("tw_vibrate");
}
int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
@@ -920,6 +925,7 @@ int GUIAction::doAction(Action action, int isThreaded /* = 0 */)
else {
operation_end(1, simulate);
return -1;
}
DataManager::SetValue(TW_BACKUP_NAME, "(Auto Generate)");
} else if (arg == "restore") {
+2
View File
@@ -30,6 +30,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#include "../data.hpp"
#include <string>
@@ -280,6 +281,7 @@ int GUIButton::NotifyTouch(TOUCH_STATE state, int x, int y)
} else {
if (last_state == 0) {
last_state = 1;
DataManager::Vibrate("tw_vibrate");
if (mButtonLabel != NULL)
mButtonLabel->isHighlighted = true;
if (mButtonImg != NULL)
+40 -1
View File
@@ -2456,7 +2456,16 @@
</object>
<object type="button">
<placement x="%col_center_x%" y="%row4_y%" />
<highlight color="%highlight_color%" />
<placement x="%col2_x%" y="%row4_y%" />
<font resource="font" color="%button_text_color%" />
<text>Vibration Duration</text>
<image resource="main_button" />
<action function="page">Vibrate</action>
</object>
<object type="button">
<placement x="%col_x%" y="%row4_y%" />
<font resource="font" color="%button_text_color%" />
<text>Restore Defaults</text>
<image resource="main_button" />
@@ -2663,6 +2672,36 @@
<object type="template" name="footer" />
</page>
<page name="Vibrate">
<object type="template" name="header" />
<object type="text" color="%text_color%">
<font resource="font" />
<placement x="%center_x%" y="%row1_header_y%" placement="5" />
<text>Vibration Settings :</text>
</object>
<object type="slidervalue">
<placement x="col1_x" y="%row4_text_y%" w="%slidervalue_w%" />
<font resource="font" color="%text_color%" />
<text>Vibration Value : </text>
<data variable="tw_vibrate" min="0" max="300" />
<colors line="%slidervalue_line_clr%" slider="%slidervalue_slider_clr%" />
</object>
<object type="action">
<touch key="home" />
<action function="page">main</action>
</object>
<object type="action">
<touch key="back" />
<action function="page">settings</action>
</object>
<object type="template" name="footer" />
</page>
<page name="advanced">
<object type="template" name="header" />
+3
View File
@@ -30,6 +30,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#include "../data.hpp"
#include <string>
@@ -388,6 +389,7 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
switch (state)
{
case TOUCH_START:
DataManager::Vibrate("tw_vibrate");
if (GetSelection(x, y) == 0) {
startSelection = -1;
was_held = 0;
@@ -419,6 +421,7 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
if (highlightRenderCount != 0)
mRendered = false;
highlightRenderCount = 0;
DataManager::Vibrate("tw_vibrate");
startSelection = 0;
}
break;
+2
View File
@@ -25,6 +25,7 @@
#include <vector>
#include <string>
#include <map>
#include <time.h>
extern "C" {
#ifdef HAVE_SELINUX
@@ -285,6 +286,7 @@ protected:
void operation_start(const string operation_name);
void operation_end(const int operation_status, const int simulate);
static void* command_thread(void *cookie);
time_t Start;
};
class GUIConsole : public RenderObject, public ActionObject
+2
View File
@@ -15,6 +15,7 @@
#include <time.h>
#include <unistd.h>
#include <stdlib.h>
#include "../data.hpp"
#include <string>
@@ -153,6 +154,7 @@ int GUISlider::NotifyTouch(TOUCH_STATE state, int x, int y)
break;
case TOUCH_RELEASE:
DataManager::Vibrate("tw_button_vibrate");
if (!dragging)
return 0;
+2
View File
@@ -106,6 +106,8 @@ int vibrate(int timeout_ms)
int fd;
int ret;
if (timeout_ms > 10000) timeout_ms = 1000;
fd = open(VIBRATOR_TIMEOUT_FILE, O_WRONLY);
if (fd < 0)
return -1;
+2
View File
@@ -70,4 +70,6 @@ int ev_wait(int timeout);
void ev_dispatch(void);
int ev_get_input(int fd, short revents, struct input_event *ev);
int vibrate(int timeout_ms);
#endif