aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java
diff options
context:
space:
mode:
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java')
-rw-r--r--v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java
new file mode 100644
index 000000000..69235d577
--- /dev/null
+++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPasswordTransformationMethod.java
@@ -0,0 +1,37 @@
+package com.xtremelabs.robolectric.shadows;
+
+import android.graphics.Rect;
+import android.text.method.PasswordTransformationMethod;
+import android.text.method.TransformationMethod;
+import android.view.View;
+import com.xtremelabs.robolectric.internal.Implementation;
+import com.xtremelabs.robolectric.internal.Implements;
+
+@Implements(PasswordTransformationMethod.class)
+public class ShadowPasswordTransformationMethod implements TransformationMethod {
+
+ private static ShadowPasswordTransformationMethod transformationMethod;
+
+ @Implementation
+ public CharSequence getTransformation(CharSequence charSequence, View view) {
+ if(isEmpty(charSequence)) {
+ return "";
+ }
+ return String.format(String.format("%%0%dd", charSequence.length()), 0).replace("0", "\u2022");
+ }
+
+ @Implementation
+ public static ShadowPasswordTransformationMethod getInstance() {
+ if(transformationMethod == null){
+ transformationMethod = new ShadowPasswordTransformationMethod();
+ }
+ return transformationMethod;
+ }
+
+ @Implementation @Override
+ public void onFocusChanged(View view, CharSequence charSequence, boolean b, int i, Rect rect) { }
+
+ private boolean isEmpty(CharSequence value) {
+ return (value == null || value.length() == 0);
+ }
+}