javaextensions/wma/mms/javasrc/com/nokia/mj/impl/mms/MMSInstallerPlugin.java
changeset 78 71ad690e91f5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/wma/mms/javasrc/com/nokia/mj/impl/mms/MMSInstallerPlugin.java	Mon Oct 04 11:29:25 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+package com.nokia.mj.impl.mms; 
+
+import com.nokia.mj.impl.utils.Logger;
+import com.nokia.mj.impl.rt.support.Jvm;
+import com.nokia.mj.impl.push.PushUtil;
+import com.nokia.mj.impl.push.PushUtil.PushRegInfo;
+import com.nokia.mj.impl.installer.jsrpluginnotifier.InstallerExtension;
+import com.nokia.mj.impl.installer.jsrpluginnotifier.InstallerExtensionInfo;
+
+public final class MMSInstallerPlugin implements InstallerExtension
+{
+    static
+    {
+        try
+        {
+            Jvm.loadSystemLibrary("javawmamms");
+        }
+        catch (Throwable Th)
+        {
+            Logger.ELOG(Logger.EWMA, "Loading WMA protocol failed", Th);
+        }
+    }
+  /**
+     * This method is called when installation has been done
+     * nearly completely (only committing changes is left).
+     * @param aInstallerExtensionInfo installation info
+     * @return true if installation can be finished
+     *              false if installation must be cancelled
+     */
+    public boolean install(InstallerExtensionInfo aInstallerExtensionInfo){
+        return true;
+    }
+
+    /**
+     * This method is called when uninstallation is starting
+     * (all information is still available in databases).
+     * @param aInstallerExtensionInfo uninstallation info
+     * @return true if uninstallation can be finished
+     *              false if uninstallation must be cancelled
+     */
+    public boolean uninstall(InstallerExtensionInfo aInstallerExtensionInfo){
+        PushRegInfo[] pushRegArray = PushUtil.getPushRegs(
+         aInstallerExtensionInfo.iStorageSession ,aInstallerExtensionInfo.iUid);
+         for(int i = 0;i < pushRegArray.length;i++)
+         {
+             String url =  pushRegArray[i].getUrl();
+             if (url.startsWith("mms://:"))
+             {
+                 int err = _unregisterFromMMSEngine(url.substring(7));
+                 if (0 != err)
+                    return false;
+             }
+         }
+         return true;
+    }
+
+    /**
+     * Called when installation has failed and will be rolled back.
+     * Called after install().
+     *
+     * @param aInstallerExtensionInfo installation info
+     */
+    public void rollbackInstall(InstallerExtensionInfo aInstallerExtensionInfo){
+    }
+
+    /**
+     * Called when uninstallation has failed and will be rolled back.
+     * Called after uninstall().
+     *
+     * @param aInstallerExtensionInfo installation info
+     */
+    public void rollbackUninstall(InstallerExtensionInfo aInstallerExtensionInfo){
+    }
+    
+    private native int _unregisterFromMMSEngine(String aUri);
+    
+}
\ No newline at end of file