javauis/nokiauiapi_qt/javasrc/com/nokia/mj/impl/nokiauiapi/GlobalIndicatorsImpl.java
author hgs
Mon, 04 Oct 2010 11:29:25 +0300
changeset 78 71ad690e91f5
permissions -rw-r--r--
v2.2.17_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
78
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     1
/*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     3
* All rights reserved.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     8
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
     9
* Initial Contributors:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    11
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    12
* Contributors:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    13
*
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    14
* Description:  Implementation class of GlobalIndicators API.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    15
 *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    16
*/
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    17
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    18
package com.nokia.mj.impl.nokiauiapi;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    19
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    20
import com.nokia.mid.ui.GlobalIndicators;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    21
import com.nokia.mid.ui.GlobalIndicatorsException;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    22
import com.nokia.mj.impl.utils.OsErrorMessage;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    23
import com.nokia.mj.impl.rt.support.ApplicationInfo;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    24
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    25
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    26
public class GlobalIndicatorsImpl
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    27
{
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    28
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    29
    // Static instance, can be got with getInstace method
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    30
    private static GlobalIndicatorsImpl sGlobalIndicator;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    31
    // Static block of the class.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    32
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    33
    static
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    34
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    35
//        com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javaglobalindicators");
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    36
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    37
        // This is called when class is loaded for the first time
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    38
        sGlobalIndicator = new GlobalIndicatorsImpl();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    39
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    40
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    41
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    42
     * This private constructor can be called only from static block.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    43
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    44
    private GlobalIndicatorsImpl()
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    45
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    46
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    47
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    48
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    49
     * Return GlobalIndicatorsImpl instance
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    50
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    51
    public static GlobalIndicatorsImpl getInstance()
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    52
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    53
        return sGlobalIndicator;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    54
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    55
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    56
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    57
     * See class GlobalIndicators for comments
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    58
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    59
    public int setGlobalIndicator(int aIndicator, int aValue)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    60
    throws GlobalIndicatorsException
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    61
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    62
        int ret;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    63
        String protectionDomain = ApplicationInfo.getInstance().getProtectionDomain();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    64
        if (protectionDomain == null)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    65
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    66
            throw new GlobalIndicatorsException(
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    67
                "Failed to set global indicator for unidentified domain");
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    68
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    69
        else
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    70
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    71
            // For mail and chat indicators only show and hide are supported
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    72
            if (((aIndicator == GlobalIndicators.MAIL_INDICATOR) ||
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    73
                    (aIndicator == GlobalIndicators.CHAT_INDICATOR)) &&
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    74
                    ((aValue != GlobalIndicators.INDICATOR_SHOW) &&
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    75
                     (aValue != GlobalIndicators.INDICATOR_HIDE)))
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    76
            {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    77
                throw new GlobalIndicatorsException(
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    78
                    "Value is not supported for global indicator");
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    79
            }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    80
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    81
            //int ret = _setGlobalIndicator( aIndicator, aValue );
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    82
            ret = 0;//_setGlobalIndicator(aIndicator, aValue);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    83
            if (ret < OsErrorMessage.SUCCESS)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    84
            {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    85
                throw new GlobalIndicatorsException(
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    86
                    "Failed to set global indicator", ret);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    87
            }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    88
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    89
        return ret;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    90
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    91
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    92
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    93
     * See class GlobalIndicators for comments
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    94
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    95
    public int getGlobalIndicator(int aIndicator)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    96
    throws GlobalIndicatorsException
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    97
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    98
        int ret = 0;//_getGlobalIndicator(aIndicator);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    99
        if (ret < OsErrorMessage.SUCCESS)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   100
        {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   101
            throw new GlobalIndicatorsException(
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   102
                "Failed to get global indicator value", ret);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   103
        }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   104
        return ret;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   105
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   106
   
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   107
}