From 376eb52450ffdc3d4580b405fc049144395c407f Mon Sep 17 00:00:00 2001
From: Ken Wakasa <kwakasa@google.com>
Date: Fri, 30 Mar 2012 18:47:24 +0900
Subject: [PATCH] Move VibratorCompatWrapper to VibratorUtils.

bug: 6129704

Change-Id: Ib63f1ed2d610e27e14957cf8805ef884cae6adf6
---
 .../latin/AudioAndHapticFeedbackManager.java  | 10 +++----
 .../android/inputmethod/latin/Settings.java   |  8 ++---
 .../inputmethod/latin/SettingsValues.java     |  4 +--
 .../VibratorUtils.java}                       | 29 +++++++++----------
 4 files changed, 25 insertions(+), 26 deletions(-)
 rename java/src/com/android/inputmethod/{compat/VibratorCompatWrapper.java => latin/VibratorUtils.java} (56%)

diff --git a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
index 9c5ccc76ba..55664d4110 100644
--- a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
+++ b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java
@@ -21,8 +21,8 @@ import android.media.AudioManager;
 import android.view.HapticFeedbackConstants;
 import android.view.View;
 
-import com.android.inputmethod.compat.VibratorCompatWrapper;
 import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.VibratorUtils;
 
 /**
  * This class gathers audio feedback and haptic feedback functions.
@@ -33,13 +33,13 @@ import com.android.inputmethod.keyboard.Keyboard;
 public class AudioAndHapticFeedbackManager {
     final private SettingsValues mSettingsValues;
     final private AudioManager mAudioManager;
-    final private VibratorCompatWrapper mVibrator;
+    final private VibratorUtils mVibratorUtils;
     private boolean mSoundOn;
 
     public AudioAndHapticFeedbackManager(final LatinIME latinIme,
             final SettingsValues settingsValues) {
         mSettingsValues = settingsValues;
-        mVibrator = VibratorCompatWrapper.getInstance(latinIme);
+        mVibratorUtils = VibratorUtils.getInstance(latinIme);
         mAudioManager = (AudioManager) latinIme.getSystemService(Context.AUDIO_SERVICE);
         mSoundOn = reevaluateIfSoundIsOn();
     }
@@ -93,8 +93,8 @@ public class AudioAndHapticFeedbackManager {
                         HapticFeedbackConstants.KEYBOARD_TAP,
                         HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
             }
-        } else if (mVibrator != null) {
-            mVibrator.vibrate(mSettingsValues.mKeypressVibrationDuration);
+        } else if (mVibratorUtils != null) {
+            mVibratorUtils.vibrate(mSettingsValues.mKeypressVibrationDuration);
         }
     }
 
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 650dcdc68a..fd61292df8 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -44,7 +44,7 @@ import android.widget.TextView;
 
 import com.android.inputmethod.compat.CompatUtils;
 import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
-import com.android.inputmethod.compat.VibratorCompatWrapper;
+import com.android.inputmethod.latin.VibratorUtils;
 import com.android.inputmethod.latin.define.ProductionFlag;
 import com.android.inputmethodcommon.InputMethodSettingsActivity;
 
@@ -179,7 +179,7 @@ public class Settings extends InputMethodSettingsActivity
             generalSettings.removePreference(mVoicePreference);
         }
 
-        if (!VibratorCompatWrapper.getInstance(context).hasVibrator()) {
+        if (!VibratorUtils.getInstance(context).hasVibrator()) {
             generalSettings.removePreference(findPreference(PREF_VIBRATE_ON));
         }
 
@@ -358,7 +358,7 @@ public class Settings extends InputMethodSettingsActivity
     private void refreshEnablingsOfKeypressSoundAndVibrationSettings(
             SharedPreferences sp, Resources res) {
         if (mKeypressVibrationDurationSettingsPref != null) {
-            final boolean hasVibrator = VibratorCompatWrapper.getInstance(this).hasVibrator();
+            final boolean hasVibrator = VibratorUtils.getInstance(this).hasVibrator();
             final boolean vibrateOn = hasVibrator && sp.getBoolean(Settings.PREF_VIBRATE_ON,
                     res.getBoolean(R.bool.config_default_vibration_enabled));
             mKeypressVibrationDurationSettingsPref.setEnabled(vibrateOn);
@@ -421,7 +421,7 @@ public class Settings extends InputMethodSettingsActivity
             @Override
             public void onStopTrackingTouch(SeekBar arg0) {
                 final int tempMs = arg0.getProgress();
-                VibratorCompatWrapper.getInstance(context).vibrate(tempMs);
+                VibratorUtils.getInstance(context).vibrate(tempMs);
             }
         });
         sb.setProgress(currentMs);
diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index c1335fdfe2..0ad685bdb2 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -23,8 +23,8 @@ import android.util.Log;
 import android.view.inputmethod.EditorInfo;
 
 import com.android.inputmethod.compat.InputTypeCompatUtils;
-import com.android.inputmethod.compat.VibratorCompatWrapper;
 import com.android.inputmethod.keyboard.internal.KeySpecParser;
+import com.android.inputmethod.latin.VibratorUtils;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -187,7 +187,7 @@ public class SettingsValues {
 
     private static boolean isVibrateOn(final Context context, final SharedPreferences prefs,
             final Resources res) {
-        final boolean hasVibrator = VibratorCompatWrapper.getInstance(context).hasVibrator();
+        final boolean hasVibrator = VibratorUtils.getInstance(context).hasVibrator();
         return hasVibrator && prefs.getBoolean(Settings.PREF_VIBRATE_ON,
                 res.getBoolean(R.bool.config_default_vibration_enabled));
     }
diff --git a/java/src/com/android/inputmethod/compat/VibratorCompatWrapper.java b/java/src/com/android/inputmethod/latin/VibratorUtils.java
similarity index 56%
rename from java/src/com/android/inputmethod/compat/VibratorCompatWrapper.java
rename to java/src/com/android/inputmethod/latin/VibratorUtils.java
index 2fb8b87106..33ffdd9c9a 100644
--- a/java/src/com/android/inputmethod/compat/VibratorCompatWrapper.java
+++ b/java/src/com/android/inputmethod/latin/VibratorUtils.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 The Android Open Source Project
+ * Copyright (C) 2012 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -14,38 +14,37 @@
  * limitations under the License.
  */
 
-package com.android.inputmethod.compat;
+package com.android.inputmethod.latin;
 
 import android.content.Context;
 import android.os.Vibrator;
 
-import java.lang.reflect.Method;
-
-public class VibratorCompatWrapper {
-    private static final Method METHOD_hasVibrator = CompatUtils.getMethod(Vibrator.class,
-            "hasVibrator");
-
-    private static final VibratorCompatWrapper sInstance = new VibratorCompatWrapper();
+public class VibratorUtils {
+    private static final VibratorUtils sInstance = new VibratorUtils();
     private Vibrator mVibrator;
 
-    private VibratorCompatWrapper() {
+    private VibratorUtils() {
+        // This utility class is not publicly instantiable.
     }
 
-    public static VibratorCompatWrapper getInstance(Context context) {
+    public static VibratorUtils getInstance(Context context) {
         if (sInstance.mVibrator == null) {
-            sInstance.mVibrator =
-                    (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+            sInstance.mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
         }
         return sInstance;
     }
 
     public boolean hasVibrator() {
-        if (mVibrator == null)
+        if (mVibrator == null) {
             return false;
-        return (Boolean) CompatUtils.invoke(mVibrator, true, METHOD_hasVibrator);
+        }
+        return mVibrator.hasVibrator();
     }
 
     public void vibrate(long milliseconds) {
+        if (mVibrator == null) {
+            return;
+        }
         mVibrator.vibrate(milliseconds);
     }
 }
-- 
GitLab