• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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