--- a/locationmanager/locationtrail/inc/clocationrecord.h Wed Sep 15 12:40:59 2010 +0300
+++ b/locationmanager/locationtrail/inc/clocationrecord.h Wed Oct 13 15:02:02 2010 +0300
@@ -22,11 +22,6 @@
#include <e32property.h>
#include <lbs.h>
-
-#include <etel.h>
-#include <etelmm.h>
-#include <geotagobserver.h>
-
#include "rlocationtrail.h"
#include "locationdatatype.h"
#include "cnetworkinfo.h"
@@ -42,16 +37,6 @@
#include "mdequery.h"
#include "locationremappingao.h"
-#ifdef LOC_GEOTAGGING_CELLID
-#include "cgeoconverter.h"
-#endif
-
-#ifdef LOC_REVERSEGEOCODE
-#include <geotagger.h>
-#include "ctagcreator.h"
-#include <reversegeocoderplugin.h>
-#endif
-
typedef RLocationTrail::TTrailState TLocTrailState;
class CTelephony;
@@ -70,22 +55,11 @@
* This method is used to notify about location trail state changes.
*/
virtual void LocationTrailStateChange() = 0;
-
- /**
- * This method is used to fetch the current location
- * @param aSatelliteInfo The satellite information
- * @param aNetworkInfo The network informatiom
- * @param aError ErrCode if any
- */
+
virtual void CurrentLocation( const TPositionSatelliteInfo& aSatelliteInfo,
const CTelephony::TNetworkInfoV1& aNetworkInfo,
const TInt aError ) = 0;
-
-
- /**
- * This method is used to notify about GPS signal quality changes.
- * @param aSatelliteInfo The satellite information
- */
+
virtual void GPSSignalQualityChanged( const TPositionSatelliteInfo& aSatelliteInfo ) = 0;
/**
@@ -112,21 +86,6 @@
TLocTrailState iTrailState; // Trail state for this item.
};
-/**
-* Location snap shot item class.
-*/
-class TLocationSnapshotItem
- {
- public:
- TLocationData iLocationData; // Location info & network info
- TItemId iObjectId; // current media object id.
- TItemId iLocationId;
- TUint iFlag; //indicator for various scenarios
-#ifdef LOC_REVERSEGEOCODE
- TItemId iCountryTagId;
- TItemId iCityTagId;
-#endif
- };
class MLocationAddObserver
{
public:
@@ -148,21 +107,14 @@
public MNetworkInfoObserver,
public MPositionInfoObserver,
public MMdEQueryObserver
-#ifdef LOC_GEOTAGGING_CELLID
- ,public MGeoConverterObserver
-#endif
-#ifdef LOC_REVERSEGEOCODE
- ,public MReverseGeocodeObserver
-#endif
{
public:
/**
* 2-phased constructor.
- * @param aGeoTaggerObserver The observer that is notified after geotagging
* @since S60 3.1
*/
- IMPORT_C static CLocationRecord* NewL(MGeoTaggerObserver& aGeoTaggerObserver, RMobilePhone& aPhone);
-
+ IMPORT_C static CLocationRecord* NewL();
+
/**
* C++ destructor.
* @since S60 3.1
@@ -243,178 +195,66 @@
/**
* Set observer (TrackLog) for notifying new locations in location trail
- * @param aObserver, An observer for location changes
*/
IMPORT_C void SetAddObserver( MLocationAddObserver* aObserver );
-
-
- /**
- * Update network information
- *
- */
+
static TInt UpdateNetworkInfo( TAny* aAny );
-
- /*
- * creates a location object from the given location data and objectId
- * @param aLocationData the location data
- * @param aObjectId the object Id
- */
IMPORT_C void CreateLocationObjectL( const TLocationData& aLocationData,
const TUint& aObjectId );
-
-
- /**
- * Handle the photos taken by phone camera.
- * @param aObjectId Object id
- */
+
IMPORT_C void LocationSnapshotL( const TUint& aObjectId );
-
- /**
- * Creates a location object with given location data
- * @param aLocationData The location data
- * @return The locationId
- */
+
TItemId DoCreateLocationL( const TLocationData& aLocationData );
-
- /**
- * Creates a "contains" relation for the given ObjectId and LocationId and adds it to the iMdeSession
- * @param aObjectId Object id
- * @param aLocationId location id
- * @return item id
- */
+
TItemId CreateRelationL( const TUint& aObjectId, const TUint& aLocationId );
- /**
- * Sets the CMdESession for tagcreation
- * @param aSession The CMdESession object
- */
+
IMPORT_C void SetMdeSession( CMdESession* aSession );
- /**
- * Sets the current location trail state to Stop
- */
IMPORT_C void SetStateToStopping();
- /**
- * returns the timevalue of the CMdEObject corresponding to a given ObjectId
- * @param aObjectId the objectId
- * @return the timevalue associated with given object
- */
TTime GetMdeObjectTimeL( TItemId aObjectId );
-
- /**
- * Checks if Remapping is needed
- * @return Boolean to indicate if remapping is needed or not
- */
+
IMPORT_C TBool RemappingNeeded();
-
-
+
IMPORT_C TBool IsLowBattery();
- /**
- * Checks if geotagging is in progress
- * @return Boolean to indicate if geotagging is in progress
- */
- IMPORT_C TBool TaggingInProgress();
-
-
- /**
- * Initiates geotagging
- * @param aConnectionOption connection option,silent or not
- * @return Etrue if geotagging is started
- */
- IMPORT_C TBool StartGeoTagging(const TConnectionOption aConnectionOption);
-
- /**
- * Cancels the geotagging
- */
- IMPORT_C void CancelGeoTagging();
-
public: // from MNetworkInfoObserver.
/**
*
- * NetworkInfo
- * This method is used for setting the network cell id to the
* @since S60 3.1
- * @param aNetworkInfo N/W info
- * @param aError Error code
+ * @param
+ * @return
*/
void NetworkInfo( const CTelephony::TNetworkInfoV1 &aNetworkInfo, TInt aError );
-
- /**
- * Get mobile phone object for network info object
- * @return mobile phone object
- */
- RMobilePhone& GetMobilePhone4NwInfo();
public: // from MPositionInfoObserver
/**
- * This method is used for setting the position info to the
- * location trail.
+ *
* @since S60 3.1
- * @param aPositionInfo the position information
- * @param aError Captures the errcode if any
+ * @param
+ * @return
*/
void Position( const TPositionInfo& aPositionInfo, const TInt aError );
public: // From MMdEQueryObserver
- /**
- * Handle query new results
- * @param aQuery Query object
- * @param aFirstNewItemIndex new item index
- * @param aNewItemCount item count
- */
void HandleQueryNewResults(CMdEQuery& aQuery, TInt aFirstNewItemIndex,
TInt aNewItemCount);
-
-
- /*
- * This method is called when any of the location/image/tag query is completed
- * @param aQuery The Query type
- * @param aError Indicates if the query was completed successfully or with any err
- *
- */
+
void HandleQueryCompleted(CMdEQuery& aQuery, TInt aError);
-
-#ifdef LOC_GEOTAGGING_CELLID
-public: // MGeoConverterObserver
- /**
- * This method is used for notifying completion of geotagging
- * @param aError error code
- * @param aPosition position (lat/lon) for the correcponding n/w info
- */
- void ConversionCompletedL( const TInt aError, TLocality& aPosition );
-
- /**
- * This method is used to handle the conversion error
- * @param aError the error code
- */
- void HandleConversionError(TInt aError);
-#endif
-public:
-
- /*
- * Get registrer network country code
- *
- * @return current register n/w info
- */
- IMPORT_C RMobilePhone::TMobilePhoneNetworkInfoV2& GetCurrentRegisteredNw();
-
-
-private:
+private:
/**
* Stores the location info into the array.
- * @param aSatelliteInfo Satellite information
*/
- void StoreLocation( const TPositionSatelliteInfo& aSatelliteInfo );
+ void StoreLocation( /*const TPosition& aPosition, const TCourse& aCourse,*/
+ const TPositionSatelliteInfo& aSatelliteInfo );
/**
* Changes the current state. New state is published in P&S and
* possible observer is notified.
- * @param aState The location trail state that is to be set
*/
void SetCurrentState( TLocTrailState aState );
@@ -422,18 +262,15 @@
* Returns the requested location via callback method, if the location
* is valid. Otherwise new location value is requested until the value
* is succesful, or the time out limit has been reached.
- * @param aSatelliteInfo The satelliteInfo object
- * @param aError Indicates any error in handling the location request
*
*/
void HandleLocationRequest( const TPositionSatelliteInfo& aSatelliteInfo /*TLocality& aPosition*/,
const TInt aError );
/**
* C++ constructor.
- * @param aGeoTaggerObserver The observer that is to be notified when geotagging completes
*/
- CLocationRecord(MGeoTaggerObserver& aGeoTaggerObserver, RMobilePhone& aPhone);
-
+ CLocationRecord();
+
/**
* 2nd phase constructor.
*/
@@ -445,157 +282,12 @@
* @param aValue, Read value
*/
void ReadCenRepValueL(TInt aKey, TInt& aValue);
-
- /**
- * Validates the lat lon values recieved
- * @param aSatelliteInfo The satelliteInfo object
- * @return ETrue if the lat=lon are valid
- */
+
TBool CheckGPSFix( const TPositionSatelliteInfo& aSatelliteInfo );
-
-
- /**
- * Starts the network info timer
- */
+
void StartTimerL();
-
- /**
- * Fetches the location info from the db
- */
-
- void FindLocationFromDBL();
-
-
- /**
- * Find location entry
- * @param aQuery query type for the tag
- * @param aLocationId Location Id
- */
- void FindAnyLocationMatchesL( CMdEQuery& aQuery, TUint& aLocationId );
-
- /**
- * Remaps the location objects when GPS is available
- * @param aGPSInfoAvailable Boolean value to indicate if GPS is available
- */
- void RemapObjectsL( TBool aGPSInfoAvailable );
-
- /**
- * Check any location object already exists with same network info
- */
- void FindLocationWithSameNetInfoL();
-
- /**
- * Initialises the location object definitions
- */
- void InitialiseL();
-
- /**
- * handle network location related query on complete
- * @param aQuery the query type
- */
- void HandleNetLocationQueryL( CMdEQuery& aQuery );
-
-
- /**
- * handle the location query on location query complete
- * @param aQuery the query type
- */
- void HandleLocationQueryL( CMdEQuery& aQuery );
-
- /**
- * Callback method on geotagging complete
- */
- void GeoTaggingCompleted();
-
-#ifdef LOC_REVERSEGEOCODE
- /**
- * Get any imagefor this location object
- * @param aLocID, location object Id
- */
- void GetRelatedImageL( TItemId aLocID );
-
- /**
- * Get tags for this image
- * @param aImageID, image object Id
- */
- void GetTagsL( TItemId aImageID );
-
- /**
- * handle the tag query on complete
- * @param aQuery the query type
- */
- void HandleTagQueryL( CMdEQuery& aQuery );
-
-
- // MReverseGeocodeObserver
- //from reverse-geocode observer
- /*
- * Call back method from reverse geo coder with address details like country, city..
- * @param aErrorcode Indicates any error in Reverse geocoding
- * aAddressInfo address info
- */
- void ReverseGeocodeComplete( TInt& aErrorcode, MAddressInfo& aAddressInfo );
-
- /*
- * Get registrer network country code
- *
- * @return current register n/w info
- */
- RMobilePhone::TMobilePhoneNetworkInfoV2& GetCurrentRegisterNw();
-
- /*
- * UE is registered to home network?
- *
- * @return ETrue if UE is registered at home network else EFalse
- */
- TBool IsRegisteredAtHomeNetwork();
-
-
- /*
- * Get home network country code
- * @param aHomeNwInfoAvailableFlag ETrue if home n/w info available else EFalse
- * @return user home n/w info
- */
- const RMobilePhone::TMobilePhoneNetworkInfoV1&
- GetHomeNetworkInfo(TBool& aHomeNwInfoAvailableFlag);
-
- /**
- * Find country & city tags id
- * @param aQuery query type for the tag
- * @param aCountryTagId country tag Id
- * @param aCityTagId city tag Id
- */
- void FindCountryAndCityTagL( CMdEQuery& aQuery, TItemId& aCountryTagId, TItemId& aCityTagId );
-
-#endif // LOC_REVERSEGEOCODE
-
- /**
- * Handle n/w related information on taken photograph
- *
- */
- void NetworkInfoSnapshotL();
-
- /**
- * Find location from DB within the non leaving method
- */
- void HandleFindLocationFromDB();
-
- /**
- * handle MDS query failure sceenario
- */
- void HandleQueryFailure();
-
-
private:
- enum TRemapState
- {
- ERemapProgressNone = 0x00,
- ERemapRevGeoCodeInProgress,
- ERemapRevGeoCodePending,
- ERemapNwGeoConverterInProgress,
- ERemapNwGeoConverterPending
- };
/**
* A session to Metadata Engine for creating and manipulating location objects.
*/
@@ -617,7 +309,7 @@
* An array to collect location values.
* Own.
*/
- RPointerArray<TLocationTrailItem> iTrail;
+ RArray<TLocationTrailItem> iTrail;
/**
* P&S key property.
@@ -629,7 +321,7 @@
* Active class to get network information.
* Own.
*/
- CNetworkInfo* iNetworkInfoChangeListener;
+ CNetworkInfo* iNetworkInfo;
/**
* Active class to get position information.
@@ -665,10 +357,14 @@
TBool iRequestCurrentLoc;
TBool iTrailStarted;
+ TUint iLastNumberOfSatellitesUsed;
+ TReal32 iLastHDOP;
+ TReal32 iLastVDOP;
TBool iLastGPSFixState;
TInt iLocationDelta;
TLocationData iLastLocation;
+ TItemId iLastLocationId;
TItemId iObjectId;
TLocationData iLocationData;
@@ -677,82 +373,6 @@
* This query object is used to find existing locations
*/
CMdEObjectQuery* iLocationQuery;
-
-
- /**
- * Net location query
- */
- CMdEObjectQuery* iNetLocationQuery;
-
-
- TRemapState iRemapState;
-
-
- /**
- * Database definitions.
- */
- CMdENamespaceDef* iNamespaceDef;
- CMdEObjectDef* iLocationObjectDef;
- CMdEPropertyDef* iLatitudeDef;
- CMdEPropertyDef* iLongitudeDef;
- CMdEPropertyDef* iAltitudeDef;
-
- /**
- * An array to collect downloaded object
- * and its location details.
- */
- RPointerArray<TLocationSnapshotItem> iMediaItems;
-
- TLocationSnapshotItem iLastMediaItem;
-
- TInt iMediaHandlingFlag;
- RMobilePhone& iPhone;
-
- /*
- * Flag to track GPS data availability to update camera location icon.
- */
- TBool iGpsDataAvailableFlag;
-
- MGeoTaggerObserver& iGeoTaggerObserver;
-
-#ifdef LOC_GEOTAGGING_CELLID
- /*
- * Geo converter
- */
- CGeoConverter* iGeoConverter;
- TBool iConvertRetry;
-#endif
-
-#ifdef LOC_REVERSEGEOCODE
-
- TConnectionOption iConnectionOption;
-
- /**
- * query object for getting an image/video object
- */
- CMdERelationQuery* iImageQuery;
- /**
- * query object for getting country and city tags
- */
- CMdERelationQuery* iTagQuery;
- TLocationSnapshotItem iLastLocationItem;
- RPointerArray<TLocationSnapshotItem> iLocationItems;
- /**
- * to create/attach tags
- */
- CTagCreator *iTagCreator;
- /*
- * Flag to track last reverse geocode failure sceenario
- */
- TBool iLastReverseGeocodeFails;
-
- /*
- * Reverse geo coder plugin object
- */
- CReverseGeoCoderPlugin* iRevGeocoderPlugin;
-
-#endif
-
};
#endif // C_CLOCATIONRECORD_H