--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/appsupport_plat/restore_factory_settings_api/inc/rfsHandler.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,190 @@
+/*
+* Copyright (c) 2002-2009 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:
+*
+* This class provides UI for RFS activation. The process can be canceled
+* from any active object's RunL() while the RFS queries are on the screen.
+* (By deleting the object or using Cancel() method)
+*
+*/
+
+
+#ifndef RFS_HANDLER_H
+#define RFS_HANDLER_H
+
+// INCLUDES
+
+#include <e32std.h>
+#include <etel.h>
+#include <etelmm.h>
+
+// CONSTANTS
+
+// Rfs level
+
+enum TRfsType
+ {
+ ERfsNormal = 0,
+ ERfsDeep = 1
+ };
+
+// FORWARD DECLARATIONS
+
+class CAknQueryDialog;
+class CAknInformationNote;
+class CEikonEnv;
+class CSecurityHandler;
+class CRfsSecurityHandler;
+class CRfsPdpObserver;
+
+// CLASS DECLARATION
+
+/**
+* This class provides a method to activate the rfs process including all UI.
+* (notes etc.)
+*/
+class CRfsHandler : public CBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Constructor doesn't allocate any resources.
+ */
+ IMPORT_C CRfsHandler();
+
+ /**
+ * Destructor also calls Cancel()
+ */
+ IMPORT_C ~CRfsHandler();
+
+ public: // New functions
+
+ /**
+ * Activates the RFS process. Returns when the user either canceled RFS
+ * or confirmed it, in which case the phone will be rebooted.
+ *
+ * While the queries are on the screen, the active scheduler is running,
+ * allowing the operation to be canceled.
+ *
+ * In RFS process:
+ *
+ * Security code is asked and confirmation query is shown
+ * (order depending on the parameter aAskSecurityCodeFirst).
+ * If the correct security code is entered and the confirmation query
+ * approved, the phone is rebooted with RFS reason.
+ *
+ * @param aMode - rfs level
+ * @param aAskSecurityCodeFirst - If true, the security code is asked
+ * first and the confirmation query shown after that. If false,
+ * confirmation query is shown first.
+ *
+ * Method leaves if the initialisations can't be done (problems in ETel
+ * connection or memory allocations)
+ */
+ IMPORT_C void ActivateRfsL( TRfsType aMode,
+ TBool aAskSecurityCodeFirst = EFalse );
+
+
+ /**
+ * Cancels the RFS process.
+ * Deletes the RFS notes/queries from the screen.
+ *
+ * This can be called from an active object's RunL() while
+ * ActivateRfsL() is being executed.
+ *
+ * Multiple cancel calls have no effect.
+ */
+ IMPORT_C void Cancel();
+
+ private: // new functions
+
+ /**
+ * Loads the resources needed for the confirmation query.
+ *
+ * @return resource file offset
+ */
+ void LoadResourceL();
+
+ /**
+ * Sets the default language code in HAL.
+ * This must be done before rebooting the phone for deep level RFS.
+ */
+ void SetDefaultLanguage() const;
+
+ /**
+ * Shows the RFS confirmation query.
+ *
+ * @param aThisDestroyed ETrue, if the RFS handler object was destroyed, otherwise EFalse.
+ * @param aType Represents RFS reason Normal or Deep.
+ * @return ETrue, if user selected 'YES' as an option at the confirmation query dialog
+ * otherwise EFalse.
+ * @leave leaves with one of the system wide error.
+ */
+ TBool AskConfirmationL( const TBool& aThisDestroyed, TRfsType aType );
+
+ /**
+ * Cleans up the mess, by calling Cancel().
+ */
+ static void DoCleanup( TAny* aAny );
+
+ /**
+ * Checks for calls or data sessions and warns if active
+ *
+ * @return ETrue if there are active connection, EFalse otherwise
+ */
+ TBool CheckConnectionsL();
+
+ /**
+ * Checks if 2G or 3G connection is active
+ *
+ * @return ETrue if 2G is active or EFalse if 3G
+ */
+ TBool IsGprs() const;
+
+ private: // Data
+
+ // resource file
+ TInt iResourceFileOffset;
+
+ // UIKON environment
+ CEikonEnv* iEnv;
+
+ // flags
+ TInt iFlags;
+
+ // confirmation query
+ CAknQueryDialog* iQuery;
+
+ // for security code query when using SecUI
+ CSecurityHandler* iSecurityHandler;
+
+ RTelServer iTelServer;
+ RMobilePhone iPhone;
+
+ // pointer to a stack variable in ActivateRfsL()
+ TBool* iDestroyedPtr;
+
+ // for security code query when using Security Engine
+ CRfsSecurityHandler* iSecHandler;
+
+ TBool iAlwaysOnlineConnectionClosed;
+
+ private: // friend classes
+
+ friend class CRfsQueryDialog;
+ };
+
+#endif // RFS_HANDLER_H
+
+// End of File