1
+ package com.example.proyectoandroidtdp.filtros
2
+
3
+ import android.text.InputFilter
4
+
5
+ class CreadorDeFiltros : CreadorDeFiltrosAbstracto {
6
+
7
+ override val filtroBinarioFraccionario: InputFilter ?
8
+ get() = InputFilter { source, start, end, _, _, _ ->
9
+ for (i in start until end) {
10
+ if (source[i] < ' .' || source[i] > ' 1' ) {
11
+ return @InputFilter " "
12
+ }
13
+ }
14
+ null
15
+ }
16
+ override val filtroBinarioFraccionarioSignado: InputFilter ?
17
+ get() = InputFilter { source, start, end, _, _, _ ->
18
+ for (i in start until end) {
19
+ if (source[i] < ' -' || source[i] > ' 1' ) {
20
+ return @InputFilter " "
21
+ }
22
+ }
23
+ null
24
+ }
25
+
26
+ override val filtroOctalFraccionario: InputFilter ?
27
+ get() = InputFilter { source, start, end, _, _, _ ->
28
+ for (i in start until end) {
29
+ if (source[i] < ' .' || source[i] > ' 7' ) {
30
+ return @InputFilter " "
31
+ }
32
+ }
33
+ null
34
+ }
35
+
36
+
37
+ override val filtroDecimalFraccionario: InputFilter ?
38
+ get() = InputFilter { source, start, end, _, _, _ ->
39
+ for (i in start until end) {
40
+ if (source[i] < ' .' || source[i] > ' 9' ) {
41
+ return @InputFilter " "
42
+ }
43
+ }
44
+ null
45
+ }
46
+
47
+
48
+ override val filtroHexaFraccionario: InputFilter ?
49
+ get() = InputFilter { source, start, end, _, _, _ ->
50
+ val sourceUpper = source.toString().toUpperCase()
51
+ for (i in start until end) {
52
+ if (! (sourceUpper[i] == ' .' || Character .isDigit(sourceUpper[i]) ||
53
+ sourceUpper[i] in ' A' .. ' F' ||
54
+ sourceUpper[i] in ' a' .. ' f' )) {
55
+ return @InputFilter " "
56
+ }
57
+ }
58
+ sourceUpper
59
+ }
60
+ override val filtroBinarioEntero: InputFilter ?
61
+ get() = InputFilter { source, start, end, _, _, _ ->
62
+ for (i in start until end) {
63
+ if (source[i] < ' 0' || source[i] > ' 1' ) {
64
+ return @InputFilter " "
65
+ }
66
+ }
67
+ null
68
+ }
69
+ override val filtroOctalEntero: InputFilter ?
70
+ get() = InputFilter { source, start, end, _, _, _ ->
71
+ for (i in start until end) {
72
+ if (source[i] < ' 0' || source[i] > ' 7' ) {
73
+ return @InputFilter " "
74
+ }
75
+ }
76
+ null
77
+ }
78
+ override val filtroDecimalEntero: InputFilter ?
79
+ get() = InputFilter { source, start, end, _, _, _ ->
80
+ for (i in start until end) {
81
+ if (source[i] < ' 0' || source[i] > ' 9' ) {
82
+ return @InputFilter " "
83
+ }
84
+ }
85
+ null
86
+ }
87
+ override val filtroHexaEntero: InputFilter ?
88
+ get() = InputFilter { source, start, end, _, _, _ ->
89
+ var sourceUpper = source.toString().toUpperCase()
90
+ for (i in start until end) {
91
+ if (! (Character .isDigit(sourceUpper[i]) ||
92
+ sourceUpper[i] in ' A' .. ' F' ||
93
+ sourceUpper[i] in ' a' .. ' f' )) {
94
+ return @InputFilter " "
95
+ }
96
+ }
97
+ source
98
+ }
99
+ }
0 commit comments