|
|
@@ -12,45 +12,53 @@ import java.util.HashMap;
|
|
12
|
12
|
import java.util.Map;
|
|
13
|
13
|
|
|
14
|
14
|
class AppInfoModule extends ReactContextBaseJavaModule {
|
|
15
|
|
- /**
|
|
16
|
|
- * React Native module name.
|
|
17
|
|
- */
|
|
18
|
|
- private static final String MODULE_NAME = "AppInfo";
|
|
19
|
|
-
|
|
20
|
15
|
public AppInfoModule(ReactApplicationContext reactContext) {
|
|
21
|
16
|
super(reactContext);
|
|
22
|
17
|
}
|
|
23
|
18
|
|
|
24
|
19
|
/**
|
|
25
|
|
- * Gets a mapping with the constants this module is exporting.
|
|
|
20
|
+ * Gets a <tt>Map</tt> of constants this module exports to JS. Supports JSON
|
|
|
21
|
+ * types.
|
|
26
|
22
|
*
|
|
27
|
|
- * @return a {@link Map} mapping the constants to be exported with their
|
|
28
|
|
- * values.
|
|
|
23
|
+ * @return a {@link Map} of constants this module exports to JS
|
|
29
|
24
|
*/
|
|
30
|
25
|
@Override
|
|
31
|
26
|
public Map<String, Object> getConstants() {
|
|
32
|
|
- Map<String, Object> constants = new HashMap<>();
|
|
33
|
27
|
Context context = getReactApplicationContext();
|
|
34
|
|
- PackageManager pm = context.getPackageManager();
|
|
35
|
|
- ApplicationInfo appInfo;
|
|
|
28
|
+ PackageManager packageManager = context.getPackageManager();
|
|
|
29
|
+ ApplicationInfo applicationInfo;
|
|
36
|
30
|
PackageInfo packageInfo;
|
|
37
|
31
|
|
|
38
|
32
|
try {
|
|
39
|
|
- appInfo = pm.getApplicationInfo(context.getPackageName(), 0);
|
|
40
|
|
- packageInfo = pm.getPackageInfo(context.getPackageName(), 0);
|
|
|
33
|
+ String packageName = context.getPackageName();
|
|
|
34
|
+
|
|
|
35
|
+ applicationInfo
|
|
|
36
|
+ = packageManager.getApplicationInfo(packageName, 0);
|
|
|
37
|
+ packageInfo = packageManager.getPackageInfo(packageName, 0);
|
|
41
|
38
|
} catch (PackageManager.NameNotFoundException e) {
|
|
42
|
|
- constants.put("name", "");
|
|
43
|
|
- constants.put("version", "");
|
|
44
|
|
- return constants;
|
|
|
39
|
+ applicationInfo = null;
|
|
|
40
|
+ packageInfo = null;
|
|
45
|
41
|
}
|
|
46
|
42
|
|
|
47
|
|
- constants.put("name", pm.getApplicationLabel(appInfo));
|
|
48
|
|
- constants.put("version", packageInfo.versionName);
|
|
|
43
|
+ Map<String, Object> constants = new HashMap<>();
|
|
|
44
|
+
|
|
|
45
|
+ constants.put(
|
|
|
46
|
+ "name",
|
|
|
47
|
+ applicationInfo == null
|
|
|
48
|
+ ? ""
|
|
|
49
|
+ : packageManager.getApplicationLabel(applicationInfo));
|
|
|
50
|
+ constants.put(
|
|
|
51
|
+ "version",
|
|
|
52
|
+ packageInfo == null ? "" : packageInfo.versionName);
|
|
|
53
|
+
|
|
49
|
54
|
return constants;
|
|
50
|
55
|
}
|
|
51
|
56
|
|
|
|
57
|
+ /**
|
|
|
58
|
+ * {@inheritDoc}
|
|
|
59
|
+ */
|
|
52
|
60
|
@Override
|
|
53
|
61
|
public String getName() {
|
|
54
|
|
- return MODULE_NAME;
|
|
|
62
|
+ return "AppInfo";
|
|
55
|
63
|
}
|
|
56
|
64
|
}
|