NTP-29477 | Blacklisted app optimisation (#1063)
This commit is contained in:
@@ -21,6 +21,7 @@ import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.navi.alfred.AlfredManager;
|
||||
import com.navi.pulse.PulseManager;
|
||||
@@ -111,30 +112,25 @@ public class DeviceUtilsModule extends ReactContextBaseJavaModule {
|
||||
try {
|
||||
PackageManager packageManager = RNContext.getPackageManager();
|
||||
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
|
||||
List<ApplicationInfo> packages = packageManager.getInstalledApplications(PackageManager.GET_META_DATA);
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
for (PackageInfo packageInfo : installedPackages) {
|
||||
|
||||
final PackageManager pm = RNContext.getApplicationContext().getPackageManager();
|
||||
ApplicationInfo appsInstalled;
|
||||
try {
|
||||
appsInstalled = pm.getApplicationInfo( packageInfo.packageName, 0);
|
||||
} catch (final PackageManager.NameNotFoundException e) {
|
||||
appsInstalled = null;
|
||||
}
|
||||
final String applicationName = (String) (appsInstalled != null ? pm.getApplicationLabel(appsInstalled) : "(unknown)");
|
||||
|
||||
JSONObject mainObject = new JSONObject();
|
||||
JSONObject appDetails = new JSONObject();
|
||||
appDetails.put("appName",packageInfo.applicationInfo.processName);
|
||||
appDetails.put("firstInstallTime", packageInfo.firstInstallTime);
|
||||
appDetails.put("lastUpdateTime", packageInfo.lastUpdateTime);
|
||||
appDetails.put("applicationName", applicationName);
|
||||
appDetails.put("applicationIcon",getAppIcon(packageInfo.packageName));
|
||||
mainObject.put("packageName", packageInfo.packageName);
|
||||
mainObject.put("appDetails", appDetails);
|
||||
try {
|
||||
ApplicationInfo appInfo = packageInfo.applicationInfo;
|
||||
String applicationName = (String) packageManager.getApplicationLabel(appInfo);
|
||||
appDetails.put("appName", appInfo.processName);
|
||||
appDetails.put("firstInstallTime", packageInfo.firstInstallTime);
|
||||
appDetails.put("lastUpdateTime", packageInfo.lastUpdateTime);
|
||||
appDetails.put("applicationName", applicationName != null ? applicationName : "(unknown)");
|
||||
appDetails.put("applicationIcon", getAppIcon(packageInfo.packageName));
|
||||
mainObject.put("packageName", packageInfo.packageName);
|
||||
mainObject.put("appDetails", appDetails);
|
||||
|
||||
jsonArray.put(mainObject);
|
||||
jsonArray.put(mainObject);
|
||||
} catch (Exception e) {
|
||||
Log.e("getAllInstalledApp", "Error processing package: " + packageInfo.packageName, e);
|
||||
}
|
||||
}
|
||||
promise.resolve(jsonArray.toString());
|
||||
} catch (Exception err) {
|
||||
@@ -163,7 +159,43 @@ public class DeviceUtilsModule extends ReactContextBaseJavaModule {
|
||||
promise.reject(err);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ReactMethod
|
||||
public void getBlacklistedApps(ReadableMap blacklistedAppsMap, Promise promise) {
|
||||
try {
|
||||
PackageManager packageManager = RNContext.getPackageManager();
|
||||
List<PackageInfo> installedPackages = packageManager.getInstalledPackages(0);
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
|
||||
for (PackageInfo packageInfo : installedPackages) {
|
||||
// Skip system apps
|
||||
if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String packageName = packageInfo.packageName;
|
||||
if (blacklistedAppsMap.hasKey(packageName)) {
|
||||
JSONObject appDetails = new JSONObject();
|
||||
try {
|
||||
String applicationName = (String) packageManager.getApplicationLabel(packageInfo.applicationInfo);
|
||||
appDetails.put("packageName", packageName);
|
||||
appDetails.put("applicationName", applicationName != null ? applicationName : "(unknown)");
|
||||
appDetails.put("applicationIcon", getAppIcon(packageName));
|
||||
|
||||
jsonArray.put(appDetails);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
promise.reject("ERROR", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
promise.resolve(jsonArray.toString());
|
||||
} catch (Exception err) {
|
||||
err.printStackTrace();
|
||||
promise.reject("ERROR", err.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void sendBottomSheetOpenSignal(Boolean isBottomSheetOpen) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user