diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 7111332..cd6fcca 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -4875,7 +4875,7 @@
     }
 
     public void updatePackageState(ArrayList<PackageInstallInfo> installInfos) {
-        HashSet<String> completedPackages = new HashSet<>();
+        HashSet<String> completedPackages = new HashSet<String>();
 
         for (final PackageInstallInfo installInfo : installInfos) {
             mapOverItems(MAP_RECURSE, new ItemOperator() {
diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatV16.java b/src/com/android/launcher3/compat/PackageInstallerCompatV16.java
index 653a88c..6a2a02e 100644
--- a/src/com/android/launcher3/compat/PackageInstallerCompatV16.java
+++ b/src/com/android/launcher3/compat/PackageInstallerCompatV16.java
@@ -86,7 +86,7 @@
             return;
         }
         mReplayPending = false;
-        ArrayList<PackageInstallInfo> updates = new ArrayList<>();
+        ArrayList<PackageInstallInfo> updates = new ArrayList<PackageInstallInfo>();
         for (String packageName: mPrefs.getAll().keySet()) {
             final String json = mPrefs.getString(packageName, null);
             if (!TextUtils.isEmpty(json)) {
@@ -125,7 +125,7 @@
                 replayUpdates();
             } else {
                 LauncherAppState app = LauncherAppState.getInstanceNoCreate();
-                ArrayList<PackageInstallInfo> update = new ArrayList<>();
+                ArrayList<PackageInstallInfo> update = new ArrayList<PackageInstallInfo>();
                 update.add(installInfo);
                 sendUpdate(app, update);
             }
diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
index 7f6302f..26e1b7c 100644
--- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
+++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java
@@ -33,7 +33,7 @@
     private static final String TAG = "PackageInstallerCompatVL";
     private static final boolean DEBUG = false;
 
-    private final SparseArray<InstallSessionInfo> mPendingReplays = new SparseArray<>();
+    private final SparseArray<InstallSessionInfo> mPendingReplays = new SparseArray<InstallSessionInfo>();
     private final PackageInstaller mInstaller;
 
     private boolean mResumed;
@@ -97,7 +97,7 @@
             return;
         }
 
-        ArrayList<PackageInstallInfo> updates = new ArrayList<>();
+        ArrayList<PackageInstallInfo> updates = new ArrayList<PackageInstallInfo>();
         if (newInfo != null) {
             updates.add(newInfo);
         }
