diff options
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.java | 37 |
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); + } +} |