Skip to content

Commit

Permalink
Vibration: allow BoardConfig to disable vibration for a device.
Browse files Browse the repository at this point in the history
Change-Id: Ibd2f67391ce6d7774498839829e0de9391508781
  • Loading branch information
bigbiff authored and Dees-Troy committed Mar 18, 2019
1 parent 9220dba commit 3ed778a
Show file tree
Hide file tree
Showing 16 changed files with 73 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Android.mk
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,9 @@ endif
ifeq ($(TW_NO_EXFAT_FUSE), true)
LOCAL_CFLAGS += -DTW_NO_EXFAT_FUSE
endif
ifeq ($(TW_NO_HAPTICS), true)
LOCAL_CFLAGS += -DTW_NO_HAPTICS
endif
ifeq ($(TW_INCLUDE_JB_CRYPTO), true)
TW_INCLUDE_CRYPTO := true
endif
Expand Down
9 changes: 9 additions & 0 deletions data.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -587,9 +587,16 @@ void DataManager::SetDefaultValues()
mConst.SetValue("false", "0");

mConst.SetValue(TW_VERSION_VAR, TW_VERSION_STR);

#ifndef TW_NO_HAPTICS
mPersist.SetValue("tw_button_vibrate", "80");
mPersist.SetValue("tw_keyboard_vibrate", "40");
mPersist.SetValue("tw_action_vibrate", "160");
mConst.SetValue("tw_disable_haptics", "0");
#else
LOGINFO("TW_NO_HAPTICS := true\n");
mConst.SetValue("tw_disable_haptics", "1");
#endif

TWPartition *store = PartitionManager.Get_Default_Storage_Partition();
if (store)
Expand Down Expand Up @@ -1110,9 +1117,11 @@ string DataManager::GetSettingsStoragePath(void)

void DataManager::Vibrate(const string& varName)
{
#ifndef TW_NO_HAPTICS
int vib_value = 0;
GetValue(varName, vib_value);
if (vib_value) {
vibrate(vib_value);
}
#endif
}
Empty file modified data.hpp
100644 → 100755
Empty file.
4 changes: 4 additions & 0 deletions gui/action.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -516,8 +516,12 @@ void GUIAction::operation_end(const int operation_status)
blankTimer.resetTimerAndUnblank();
property_set("twrp.action_complete", "1");
time(&Stop);

#ifndef TW_NO_HAPTICS
if ((int) difftime(Stop, Start) > 10)
DataManager::Vibrate("tw_action_vibrate");
#endif

LOGINFO("operation_end - status=%d\n", operation_status);
}

Expand Down
3 changes: 3 additions & 0 deletions gui/button.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,10 @@ int GUIButton::NotifyTouch(TOUCH_STATE state, int x, int y)
} else {
if (last_state == 0) {
last_state = 1;

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif
if (mButtonLabel != NULL)
mButtonLabel->isHighlighted = true;
if (mButtonImg != NULL)
Expand Down
3 changes: 3 additions & 0 deletions gui/checkbox.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@ int GUICheckbox::NotifyTouch(TOUCH_STATE state, int x __unused, int y __unused)
lastState = (lastState == 0) ? 1 : 0;
DataManager::SetValue(mVarName, lastState);

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

}
return 0;
}
Expand Down
8 changes: 8 additions & 0 deletions gui/keyboard.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,11 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
bool repeatKey = false;
Layout& lay = layouts[currentLayout - 1];
if (state == TOUCH_RELEASE && was_held == 0) {

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_keyboard_vibrate");
#endif

if (key.layout > 0) {
// Switch layouts
if (lay.is_caps && key.layout == lay.revert_layout && !CapsLockOn) {
Expand Down Expand Up @@ -593,7 +597,11 @@ int GUIKeyboard::NotifyTouch(TOUCH_STATE state, int x, int y)
was_held = 1;
if (key.longpresskey > 0) {
// Long Press Key

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_keyboard_vibrate");
#endif

PageManager::NotifyCharInput(key.longpresskey);
}
else
Expand Down
8 changes: 8 additions & 0 deletions gui/patternpassword.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,11 @@ int GUIPatternPassword::NotifyTouch(TOUCH_STATE state, int x, int y)
mTrackingTouch = true;
ResetActiveDots();
ConnectDot(dot_idx);

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

mCurLineX = x;
mCurLineY = y;
mNeedRender = true;
Expand All @@ -386,7 +390,11 @@ int GUIPatternPassword::NotifyTouch(TOUCH_STATE state, int x, int y)
{
ConnectIntermediateDots(dot_idx);
ConnectDot(dot_idx);

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

}

mCurLineX = x;
Expand Down
3 changes: 3 additions & 0 deletions gui/scrolllist.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -508,7 +508,10 @@ int GUIScrollList::NotifyTouch(TOUCH_STATE state, int x, int y)
NotifySelect(selectedItem);
mUpdate = 1;

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

selectedItem = NO_ITEM;
} else {
// Start kinetic scrolling
Expand Down
4 changes: 4 additions & 0 deletions gui/slider.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,11 @@ int GUISlider::NotifyTouch(TOUCH_STATE state, int x, int y)
return 0;

if (sCurTouchX >= mRenderX + mRenderW - sTouchW) {

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

sAction->doActions();
}

Expand Down
4 changes: 4 additions & 0 deletions gui/terminal.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,11 @@ class TerminalEngine
switch (ch)
{
case 7: // BEL

#ifndef TW_NO_HAPTICS
DataManager::Vibrate("tw_button_vibrate");
#endif

break;
case 8: // BS
left();
Expand Down
9 changes: 9 additions & 0 deletions gui/theme/common/landscape.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3166,19 +3166,28 @@
<placement x="%tab5_col4_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/>
</fill>

<text style="text_m">
<condition var1="tw_disable_haptics" var2="1"/>
<placement x="col1_x_left" y="%row4_y%" w="%content_width%"/>
<text>{@vibration_disabled=Vibration Disabled for Device}</text>
</text>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="col1_x_left" y="%row4_y%" w="%content_width%"/>
<text>{@button_vibration=Button Vibration:}</text>
<data variable="tw_button_vibrate" min="0" max="300"/>
</slidervalue>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="col1_x_left" y="%row9_y%" w="%content_width%"/>
<text>{@kb_vibration=Keyboard Vibration:}</text>
<data variable="tw_keyboard_vibrate" min="0" max="300"/>
</slidervalue>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="col1_x_left" y="%row14_y%" w="%content_width%"/>
<text>{@act_vibration=Action Vibration:}</text>
<data variable="tw_action_vibrate" min="0" max="500"/>
Expand Down
1 change: 1 addition & 0 deletions gui/theme/common/languages/en.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@
<string name="settings_tz_btn">Time Zone</string>
<string name="settings_screen_btn">Screen</string>
<string name="settings_screen_bright_btn">Screen Brightness</string>
<string name="vibration_disabled">Vibration is disabled for this device</string>
<string name="settings_vibration_btn">Vibration</string>
<string name="settings_language_btn">Language</string>
<string name="time_zone_hdr">Time Zone</string>
Expand Down
9 changes: 9 additions & 0 deletions gui/theme/common/portrait.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3329,19 +3329,28 @@
<placement x="%tab5_col4_x%" y="%row_tab_y%" w="%tab5_width%" h="%tab_indicator_height%"/>
</fill>

<text style="text_m">
<condition var1="tw_disable_haptics" var2="1"/>
<placement x="%indent%" y="%row4_y%"/>
<text>{@vibration_disabled=Vibration Disabled for Device}</text>
</text>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="indent" y="%row4_y%" w="%content_width%"/>
<text>{@button_vibration=Button Vibration:}</text>
<data variable="tw_button_vibrate" min="0" max="300"/>
</slidervalue>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="indent" y="%row9_y%" w="%content_width%"/>
<text>{@kb_vibration=Keyboard Vibration:}</text>
<data variable="tw_keyboard_vibrate" min="0" max="300"/>
</slidervalue>

<slidervalue>
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="indent" y="%row14_y%" w="%content_width%"/>
<text>{@act_vibration=Action Vibration:}</text>
<data variable="tw_action_vibrate" min="0" max="500"/>
Expand Down
1 change: 1 addition & 0 deletions gui/theme/common/watch.xml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3518,6 +3518,7 @@
</button>

<button style="main_button">
<condition var1="tw_disable_haptics" var2="0"/>
<placement x="%col1_x_right%" y="%row6_y%"/>
<text>{@settings_vibration_btn=Vibration}</text>
<action function="page">settings_vibration</action>
Expand Down
4 changes: 4 additions & 0 deletions minuitwrp/events.cpp
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ int write_to_file(const std::string& fn, const std::string& line) {
return -1;
}

#ifndef TW_NO_HAPTICS
int vibrate(int timeout_ms)
{
if (timeout_ms > 10000) timeout_ms = 1000;
Expand All @@ -135,6 +136,7 @@ int vibrate(int timeout_ms)

return 0;
}
#endif

/* Returns empty tokens */
static char *vk_strtok_r(char *str, const char *delim, char **save_str)
Expand Down Expand Up @@ -722,7 +724,9 @@ static int vk_modify(struct ev *e, struct input_event *ev)

last_virt_key = e->vks[i].scancode;

#ifndef TW_NO_HAPTICS
vibrate(VIBRATOR_TIME_MS);
#endif

// Mark that all further movement until lift is discard,
// and make sure we don't come back into this area
Expand Down

0 comments on commit 3ed778a

Please sign in to comment.