DynamicUtilWriter.kt revision 11df39c91611b9ff2d7c87a9a9829251a015bccf
1package android.databinding.tool.writer;
2
3class DynamicUtilWriter() {
4    public fun write(targetSdk : kotlin.Int) : KCode = kcode("package android.databinding;") {
5        nl("")
6        nl("import android.os.Build.VERSION;")
7        nl("import android.os.Build.VERSION_CODES;")
8        nl("")
9        block("public class DynamicUtil") {
10            nl("@SuppressWarnings(\"deprecation\")")
11            block("public static int getColorFromResource(final android.view.View root, final int resourceId)") {
12                if (targetSdk >= 23) {
13                    block("if (VERSION.SDK_INT >= VERSION_CODES.M)") {
14                        nl("return root.getContext().getColor(resourceId);")
15                    }
16                }
17                nl("return root.getResources().getColor(resourceId);")
18            }
19
20            block("public static boolean parse(String str, boolean fallback)") {
21                block("if (str == null)") {
22                    nl("return fallback;");
23                }
24                nl("return Boolean.parseBoolean(str);")
25            }
26            block("public static byte parse(String str, byte fallback)") {
27                block("try") {
28                    nl("return Byte.parseByte(str);")
29                }
30                block("catch (NumberFormatException e)") {
31                    nl("return fallback;")
32                }
33            }
34            block("public static short parse(String str, short fallback)") {
35                block("try") {
36                    nl("return Short.parseShort(str);")
37                }
38                block("catch (NumberFormatException e)") {
39                    nl("return fallback;")
40                }
41            }
42            block("public static int parse(String str, int fallback)") {
43                block("try") {
44                    nl("return Integer.parseInt(str);")
45                }
46                block("catch (NumberFormatException e)") {
47                    nl("return fallback;")
48                }
49            }
50            block("public static long parse(String str, long fallback)") {
51                block("try") {
52                    nl("return Long.parseLong(str);")
53                }
54                block("catch (NumberFormatException e)") {
55                    nl("return fallback;")
56                }
57            }
58            block("public static float parse(String str, float fallback)") {
59                block("try") {
60                    nl("return Float.parseFloat(str);")
61                }
62                block("catch (NumberFormatException e)") {
63                    nl("return fallback;")
64                }
65            }
66            block("public static double parse(String str, double fallback)") {
67                block("try") {
68                    nl("return Double.parseDouble(str);")
69                }
70                block("catch (NumberFormatException e)") {
71                    nl("return fallback;")
72                }
73            }
74            block("public static char parse(String str, char fallback)") {
75                block ("if (str == null || str.isEmpty())") {
76                    nl("return fallback;")
77                }
78                nl("return str.charAt(0);")
79            }
80        }
81   }
82}