javauis/nokiauiapi_qt/inc/CSoftNotification.h
author hgs
Fri, 29 Oct 2010 11:49:32 +0300
changeset 87 1627c337e51e
parent 78 71ad690e91f5
permissions -rw-r--r--
v2.2.21_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     1
/*******************************************************************************
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     2
 * Copyright (c) 2009, 2010 Nokia Corporation and/or its subsidiary(-ies).
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     3
 * All rights reserved. This program and the accompanying materials
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     4
 * are made available under the terms of the Eclipse Public License v1.0
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     5
 * which accompanies this distribution, and is available at
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     6
 * http://www.eclipse.org/legal/epl-v10.html
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     7
 *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     8
 * Contributors:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
     9
 *     Nokia Corporation - initial implementation
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    10
 *******************************************************************************/
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    11
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    12
#ifndef CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    13
#define CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    14
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    15
#include <e32base.h>
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    16
#include <jni.h>
87
1627c337e51e v2.2.21_1
hgs
parents: 78
diff changeset
    17
#include <hbindicatorsymbian.h>
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    18
#include <HbDeviceNotificationDialogsymbian.h>
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    19
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    20
NONSHARABLE_CLASS(CSoftNotification) : public CBase,
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    21
        MHbIndicatorSymbianObserver, MHbDeviceNotificationDialogObserver
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    22
    {
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    23
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    24
  
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    25
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    26
     * Static constructor
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    27
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    28
    static CSoftNotification* NewL(TInt aAppId, TInt aNotificationId);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    29
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    30
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    31
     * Destructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    32
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    33
    virtual ~CSoftNotification();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    34
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    35
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    36
    // From MHbIndicatorSymbianObserver
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    37
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    38
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    39
     * Dynamic soft notification was activated by user.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    40
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    41
    void IndicatorUserActivated(const TDesC &aType,
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    42
            CHbSymbianVariantMap &aData);
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    43
    
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    44
    /**
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    45
     * Notification dialog is touched by the user.
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    46
     *
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    47
     * @param aDialog Notification dialog
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    48
     */
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    49
    void NotificationDialogActivated(const CHbDeviceNotificationDialogSymbian* aDialog);
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    50
    
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    51
    /**
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    52
     * Notification dialog is closed.
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    53
     *
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    54
     * @param aDialog Notification dialog
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    55
     * @param aCompletionCode Notification dialog completion code
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    56
     */
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
    57
    void NotificationDialogClosed(const CHbDeviceNotificationDialogSymbian* aDialog, TInt aCompletionCode);
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    58
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    59
public:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    60
    // New functions
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    61
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    62
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    63
     * Add a custom soft notification. 
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    64
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    65
    bool ShowSoftNotificationL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    66
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    67
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    68
     * Cancels custom soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    69
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    70
    void RemoveSoftNotificationL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    71
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    72
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    73
     * Set a text for a soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    74
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    75
     * @param aSingularText singular text for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    76
     * @param aPluralText plural text for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    77
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    78
    void SetTextL(const TDesC& aPrimaryText, const TDesC& aSecondaryText);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    79
    
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    80
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    81
     * Set an image path for a soft notification.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    82
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    83
     * @param aImagePath image path for soft notification
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    84
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    85
    void SetImagePathL(const TDesC& aImagePath);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    86
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    87
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    88
     * Returns the notification id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    89
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    90
     * @return notification id
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    91
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    92
    TInt Id();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    93
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    94
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    95
     * Set Java peer observer instance for event callbacks.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    96
     * Note: the observer has to be a global weak reference.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    97
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    98
     * @param aPeer Java peer observer
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
    99
     * @param aMethodId Callback method identifier.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   100
     * @param aJniEnv JNI environment
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   101
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   102
    void SetPeerObserver(jobject aPeer, jmethodID aMethodId, JNIEnv* aJniEnv);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   103
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   104
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   105
    // Constructors
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   106
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   107
     * C++ constructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   108
     *
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   109
     * @param aAppId View activation application id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   110
     * @param aNotificationId Notification id.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   111
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   112
    CSoftNotification(TInt aAppId, TInt aNotificationId);
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   113
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   114
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   115
     * 2nd phase constructor.
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   116
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   117
    void ConstructL();
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   118
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   119
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   120
    // New methods
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   121
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   122
    /**
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   123
     * Set assigned member data to custom notification parameters
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   124
     *
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   125
     * @return aParam custom soft notification params to fill
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   126
     */
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   127
    CHbSymbianVariant* NotificationParamsL();
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   128
    
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   129
    /**
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   130
     * Storing softnotification to database
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   131
     */
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   132
    void AddorUpdateSoftNotificationToStorage();
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   133
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   134
private:
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   135
    // Data
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   136
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   137
    CHbIndicatorSymbian* iIndicator;
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   138
    CHbDeviceNotificationDialogSymbian* iNotificationDialog; 
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   139
    TUid iMidletId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   140
    TInt iNotificationId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   141
    HBufC* iPrimaryText;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   142
    HBufC* iSecondaryText;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   143
    HBufC* iImagePath;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   144
    jobject iPeer;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   145
    jmethodID iMethodId;
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   146
    JNIEnv* iJniEnv;
78
71ad690e91f5 v2.2.17_1
hgs
parents: 72
diff changeset
   147
    bool iIsNoteExist;
72
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   148
    };
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   149
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   150
#endif // CSOFTNOTIFICATION_H
1f0034e370aa v2.2.15_1
hgs
parents:
diff changeset
   151