[Galaxy S II Themes and Apps] D4rKn3sSyS:
Hello guys.

I was recently messing out multiwaveview source, just to see what cool things could I add to my ROM.

It was very easy to notice, that we have there the method that makes lockscreen vibrate, on touch.

So let's stop talking and more modding.

Go to your source tree, and search for

frameworks/base/core/java/com/android/internal/widget/multiwaveview/MultiWaveView.java

With search option (I use gedit, so CTRL+F), look for setVibrateEnabled.

There are plenty of options for removing vibration, the one I use, is setting a boolean to false on constructor method.

public MultiWaveView(Context context, AttributeSet attrs) {
super(context, attrs);
Resources res = context.getResources();

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MultiWaveView);
mOuterRadius = a.getDimension(R.styleable.MultiWaveView_outerRadius, mOuterRadius);
mHorizontalOffset = a.getDimension(R.styleable.MultiWaveView_horizontalOffset,
mHorizontalOffset);
mVerticalOffset = a.getDimension(R.styleable.MultiWaveView_verticalOffset,
mVerticalOffset);
mHitRadius = a.getDimension(R.styleable.MultiWaveView_hitRadius, mHitRadius);
mSnapMargin = a.getDimension(R.styleable.MultiWaveView_snapMargin, mSnapMargin);
mVibrationDuration = a.getInt(R.styleable.MultiWaveView_vibrationDuration,
mVibrationDuration);
mFeedbackCount = a.getInt(R.styleable.MultiWaveView_feedbackCount,
mFeedbackCount);
mHandleDrawable = new TargetDrawable(res,
a.getDrawable(R.styleable.MultiWaveView_handleDrawable));
mTapRadius = mHandleDrawable.getWidth()/2;
mOuterRing = new TargetDrawable(res, a.getDrawable(R.styleable.MultiWaveView_waveDrawable));

// Read chevron animation drawables
final int chevrons[] = { R.styleable.MultiWaveView_leftChevronDrawable,
R.styleable.MultiWaveView_rightChevronDrawable,
R.styleable.MultiWaveView_topChevronDrawable,
R.styleable.MultiWaveView_bottomChevronDrawable
};
for (int chevron : chevrons) {
Drawable chevronDrawable = a.getDrawable(chevron);
for (int i = 0; i < mFeedbackCount; i++) {
mChevronDrawables.add(
chevronDrawable != null ? new TargetDrawable(res, chevronDrawable) : null);
}
}

// Read array of target drawables
TypedValue outValue = new TypedValue();
if (a.getValue(R.styleable.MultiWaveView_targetDrawables, outValue)) {
internalSetTargetResources(outValue.resourceId);
}
if (mTargetDrawables == null || mTargetDrawables.size() == 0) {
throw new IllegalStateException("Must specify at least one target drawable");
}

// Read array of target descriptions
if (a.getValue(R.styleable.MultiWaveView_targetDescriptions, outValue)) {
final int resourceId = outValue.resourceId;
if (resourceId == 0) {
throw new IllegalStateException("Must specify target descriptions");
}
setTargetDescriptionsResourceId(resourceId);
}

// Read array of direction descriptions
if (a.getValue(R.styleable.MultiWaveView_directionDescriptions, outValue)) {
final int resourceId = outValue.resourceId;
if (resourceId == 0) {
throw new IllegalStateException("Must specify direction descriptions");
}
setDirectionDescriptionsResourceId(resourceId);
}

a.recycle();
[COLOR="Red"][B]setVibrateEnabled(false);[/B][/COLOR]
}

But you can also set the method to always return null (or just deleting method and all it's usage, not recommended though if you want to come back some time)

public void setVibrateEnabled(boolean enabled) {
mVibrator = null;
}

Compile, and voilà, no more damn haptic feedback on lockscreen :cool:

TOO Hard for you :(?, use ParanoidAndroid, and enjoy of this and some other mods, click my signature ;).