1 package com.xtremelabs.robolectric.shadows; 2 3 import android.graphics.Rect; 4 import android.text.method.PasswordTransformationMethod; 5 import android.text.method.TransformationMethod; 6 import android.view.View; 7 import com.xtremelabs.robolectric.internal.Implementation; 8 import com.xtremelabs.robolectric.internal.Implements; 9 10 @Implements(PasswordTransformationMethod.class) 11 public class ShadowPasswordTransformationMethod implements TransformationMethod { 12 13 private static ShadowPasswordTransformationMethod transformationMethod; 14 15 @Implementation getTransformation(CharSequence charSequence, View view)16 public CharSequence getTransformation(CharSequence charSequence, View view) { 17 if(isEmpty(charSequence)) { 18 return ""; 19 } 20 return String.format(String.format("%%0%dd", charSequence.length()), 0).replace("0", "\u2022"); 21 } 22 23 @Implementation getInstance()24 public static ShadowPasswordTransformationMethod getInstance() { 25 if(transformationMethod == null){ 26 transformationMethod = new ShadowPasswordTransformationMethod(); 27 } 28 return transformationMethod; 29 } 30 31 @Implementation @Override onFocusChanged(View view, CharSequence charSequence, boolean b, int i, Rect rect)32 public void onFocusChanged(View view, CharSequence charSequence, boolean b, int i, Rect rect) { } 33 isEmpty(CharSequence value)34 private boolean isEmpty(CharSequence value) { 35 return (value == null || value.length() == 0); 36 } 37 } 38