mobilemessaging/unieditor/smsplugin/src/UniSMSUtils.cpp
changeset 79 2981cb3aa489
parent 0 72b543305e3a
equal deleted inserted replaced
25:84d9eb65b26f 79:2981cb3aa489
       
     1 /*
       
     2 * Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  
       
    15 *      Multiple line query dialog
       
    16 *
       
    17 */
       
    18 
       
    19  
       
    20 
       
    21 // INCLUDE FILES
       
    22 #include <commonphoneparser.h>		// Common phone number validity checker
       
    23 #include <aknnotewrappers.h>
       
    24 #include <StringLoader.h>           // StringLoader
       
    25 #include "UniSmsUtils.h"
       
    26 #include <data_caging_path_literals.hrh> 
       
    27 #include <bautils.h>  //BaflUtils::NearestLanguageFile
       
    28 #include <UniSmsPluginD.rsg>                    // resouce identifiers
       
    29 #include <layoutmetadata.cdl.h>
       
    30 
       
    31 _LIT(KUniSmsPluginResourceFile,     	"UniSmsPluginD.rsc");
       
    32 
       
    33 // ---------------------------------------------------------
       
    34 // C++ default constructor
       
    35 // ---------------------------------------------------------
       
    36 CUniSmsEMultilineQueryDialog::CUniSmsEMultilineQueryDialog( TBool aEmailDlg, TTone aTone )
       
    37     : CAknMultiLineDataQueryDialog( aTone ), iEmailDlg( aEmailDlg )
       
    38     {
       
    39     }
       
    40 
       
    41 // ---------------------------------------------------------
       
    42 // Destructor.
       
    43 // ---------------------------------------------------------
       
    44 CUniSmsEMultilineQueryDialog::~CUniSmsEMultilineQueryDialog()
       
    45     {
       
    46     if ( iResourceFile )
       
    47         {
       
    48         iEikonEnv->DeleteResourceFile( iResourceFile );
       
    49         }
       
    50     }
       
    51 
       
    52 // ---------------------------------------------------------
       
    53 // Two-phased constructor.
       
    54 // ---------------------------------------------------------
       
    55 CUniSmsEMultilineQueryDialog* CUniSmsEMultilineQueryDialog::NewL( 
       
    56 	TDes& aText1, 
       
    57 	TDes& aText2, 
       
    58 	TBool aEmailDlg, 
       
    59 	TTone aTone )
       
    60     {
       
    61     CUniSmsEMultilineQueryDialog* self 
       
    62         = new (ELeave) CUniSmsEMultilineQueryDialog( aEmailDlg, aTone );
       
    63     CleanupStack::PushL( self );
       
    64                 
       
    65     self->SetDataL( aText1, aText2 );
       
    66                 
       
    67     CleanupStack::Pop( self );
       
    68     return self;
       
    69     }
       
    70 
       
    71 // ---------------------------------------------------------
       
    72 // CUniSmsEMultilineQueryDialog::SetInitialCurrentLine
       
    73 // ---------------------------------------------------------
       
    74 void CUniSmsEMultilineQueryDialog::SetInitialCurrentLine()
       
    75     { 
       
    76     TRAP_IGNORE( TryToChangeLineL() );
       
    77     }
       
    78 
       
    79 // ---------------------------------------------------------
       
    80 // CUniSmsEMultilineQueryDialog::TryToChangeLineL
       
    81 // ---------------------------------------------------------
       
    82 void CUniSmsEMultilineQueryDialog::TryToChangeLineL()
       
    83     {
       
    84     ActivateFirstPageL();
       
    85     TryChangeFocusToL( iEmailDlg ? EMultilineFirstLine : EMultilineSecondLine );
       
    86     
       
    87     if ( !Layout_Meta_Data::IsLandscapeOrientation() )
       
    88     	{
       
    89     	TryChangeFocusToL( iEmailDlg ? EMultilineFirstLine : EMultilineSecondLine );
       
    90     	}
       
    91     else
       
    92         {
       
    93         TryChangeFocusToL( EMultilineFirstLine );
       
    94         // Show the ok key
       
    95         UpdateLeftSoftKeyL();
       
    96         } 
       
    97     }
       
    98 
       
    99 // ----------------------------------------------------
       
   100 // CUniSmsEMultilineQueryDialog::OkToExitL
       
   101 // ----------------------------------------------------
       
   102 TBool CUniSmsEMultilineQueryDialog::OkToExitL(
       
   103     TInt aButtonId )
       
   104     {
       
   105     // Fetch the iSecondText from the control
       
   106     TInt returnValue = CAknMultiLineDataQueryDialog::OkToExitL( aButtonId );
       
   107     TPtr* addrPtr = &SecondData(TPtr(0,0));
       
   108     AknTextUtils::ConvertDigitsTo( *addrPtr, EDigitTypeWestern );
       
   109 
       
   110 	if( returnValue )
       
   111 		{
       
   112 	    // Check that the phonenumber is ok
       
   113 		if ( CommonPhoneParser::IsValidPhoneNumber( 
       
   114             *addrPtr, CommonPhoneParser::ESMSNumber ) )
       
   115 			{
       
   116 			return ETrue;
       
   117 			}
       
   118 		else 
       
   119 	        {
       
   120         	// If not; show note, be sure focus is in correct line and don't exit
       
   121 	        CAknInformationNote* note = new ( ELeave ) CAknInformationNote(); 
       
   122 	        HBufC* text = StringLoader::LoadLC( R_QTN_INFO_INVALID_NUMBER, iCoeEnv );
       
   123 	        note->ExecuteLD( *text );
       
   124 	        CleanupStack::PopAndDestroy( text );
       
   125     	    }
       
   126 		}
       
   127    	else  if ( !Layout_Meta_Data::IsLandscapeOrientation() )
       
   128         {
       
   129         TRAP_IGNORE( TryChangeFocusToL( EMultilineSecondLine ));	
       
   130         }
       
   131     else
       
   132         {
       
   133         // Show the ok key
       
   134         TRAP_IGNORE( UpdateLeftSoftKeyL() );
       
   135         }
       
   136                 
       
   137     return EFalse;
       
   138     }
       
   139 
       
   140 // ----------------------------------------------------
       
   141 // CUniSmsEMultilineQueryDialog::ExecuteLD
       
   142 // ----------------------------------------------------
       
   143 TInt CUniSmsEMultilineQueryDialog::ExecuteLD( TInt aResourceId )
       
   144     {
       
   145     TInt ret;
       
   146     TParse parse;
       
   147     parse.Set( KUniSmsPluginResourceFile, &KDC_RESOURCE_FILES_DIR, NULL ); 
       
   148     TFileName fileName( parse.FullName() );
       
   149     BaflUtils::NearestLanguageFile( iCoeEnv->FsSession(), fileName );
       
   150     iResourceFile = iEikonEnv->AddResourceFileL( fileName );
       
   151     ret = CAknMultiLineDataQueryDialog::ExecuteLD( aResourceId );
       
   152     
       
   153     return ret;
       
   154     }
       
   155 
       
   156 
       
   157 //  End of File  
       
   158