Use haptic feedback instead of vibration in swipe action.

This commit is contained in:
Alex Ning 2020-10-30 09:04:07 +08:00
parent b4fa21be08
commit 4d1668d0a8
4 changed files with 15 additions and 52 deletions

View File

@ -12,7 +12,6 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="22" />

View File

@ -9,9 +9,9 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.DisplayMetrics;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@ -441,14 +441,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
if (dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundLeft.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {
@ -466,14 +460,8 @@ public class ViewPostDetailActivity extends BaseActivity implements FlairBottomS
if (-dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundRight.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {

View File

@ -10,8 +10,8 @@ import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.view.HapticFeedbackConstants;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -192,14 +192,8 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
if (dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundLeft.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {
@ -217,14 +211,8 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
if (-dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundRight.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {

View File

@ -14,9 +14,9 @@ import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.DisplayMetrics;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
@ -735,14 +735,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
if (dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundLeft.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {
@ -760,14 +754,8 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
if (-dX > (itemView.getRight() - itemView.getLeft()) * swipeActionThreshold) {
if (!exceedThreshold) {
exceedThreshold = true;
if (vibrateWhenActionTriggered && v != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
v.vibrate(VibrationEffect.createOneShot(10, 255));
} else {
//deprecated in API 26
v.vibrate(10);
}
}
viewHolder.itemView.setHapticFeedbackEnabled(true);
viewHolder.itemView.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
}
backgroundRight.setBounds(0, itemView.getTop(), itemView.getRight(), itemView.getBottom());
} else {