[Title]INST : remove conflict packages
authorshihyun.kim <shihyun.kim@samsung.com>
Mon, 11 Mar 2013 11:32:28 +0000 (20:32 +0900)
committershihyun.kim <shihyun.kim@samsung.com>
Mon, 11 Mar 2013 11:32:28 +0000 (20:32 +0900)
[Desc.]
* Remove conflict packages when you install.
[Issue]

InstallManager_java/src/org/tizen/installmanager/core/InstallManager.java
InstallManager_java/src/org/tizen/installmanager/pkg/lib/PackageManager.java

index dfc3a2c..bc88c9a 100644 (file)
@@ -789,6 +789,7 @@ public class InstallManager {
                PackageSet conflictPackages = packageManager
                                .getConflictPackagesInUpdate(installableMetaPkgs);
                Log.log("Remove conflict packages => " + conflictPackages);
+               System.out.println(conflictPackages);
 
                if (monitor != null) {
                        monitor.setProgressTitle("Remove Conflict Packages");
index b03c26f..7ed9417 100644 (file)
@@ -832,7 +832,10 @@ public abstract class PackageManager {
         */
        public PackageSet getConflictPackagesInUpdate(PackageSet packageSet) {
                PackageSet conflicts = getConflictPackages(packageSet);
-               return intersect(conflicts, installedPackages);
+               
+               conflicts.addAll(reverseDep(conflicts));
+               
+               return intersect(installedPackages, conflicts);
        }
        
        // Methods for remove process
@@ -981,6 +984,16 @@ public abstract class PackageManager {
                return reverseSet(dep);
        }
        
+       private PackageSet reverseDep(PackageSet packages) {
+               PackageSet reversePackages = new PackageSet();
+               
+               for (Package pkg : packages) {
+                       reversePackages.addAll(reverseDep(pkg));
+               }
+               
+               return reversePackages;
+       }
+       
        /**
         * Need reverse depends when remove.
         * @param p