javauis/nokiauiapi_qt/javasrc/com/nokia/mid/ui/GlobalIndicators.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:  Public interface of the GlobalIndicator 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.mid.ui;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    19
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    20
import com.nokia.mj.impl.nokiauiapi.GlobalIndicatorsImpl;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    21
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    22
/**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    23
 * The <code>GlobalIndicators</code> is a class to handle the device global
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    24
 * indicators. Global indicators are small icons that appear to the device
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    25
 * status indicator area indicating for example the arrival of a new email or
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    26
 * chat message. These indicators remain in the status indicator area even if
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    27
 * the midlet is closed but rebooting the device will remove them, so the
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    28
 * indicators are not fully persistent.<P>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    29
 *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    30
 * These global indicators are common and also used by the native applications.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    31
 * This means that at any time it is possible for any application to turn an
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    32
 * indicator on or off. For that reason it is good practice to query the state
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    33
 * of the indicator before setting the value.<P>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    34
 *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    35
 * There are also other indicators besides these <code>MAIL_INDICATOR</code> or
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    36
 * <code>CHAT_INDICATOR</code> defined in this API. GlobalIndicators API allows
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    37
 * to access those indicators too but the exact values of both the indicator and
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    38
 * its value need to be given as accurate integer parameters (as some of those
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    39
 * more complex indicators support a larger range of input parameters than just
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    40
 * <code>INDICATOR_HIDE</code> or <code>INDICATOR_SHOW</code>).<P>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    41
 *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    42
 * Example of API usage:<P>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    43
 * <code>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    44
 * int retVal = GlobalIndicators.getGlobalIndicator(<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    45
 * &nbsp;&nbsp;&nbsp;&nbsp;GlobalIndicators.MAIL_INDICATOR);<P>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    46
 * if(retVal != GlobalIndicators.INDICATOR_SHOW)<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    47
 * &nbsp;&nbsp;&nbsp;&nbsp;{<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    48
 * &nbsp;&nbsp;&nbsp;&nbsp;retVal = GlobalIndicators.setGlobalIndicator(<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    49
 * &nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp;GlobalIndicators.MAIL_INDICATOR,<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    50
 * &nbsp;&nbsp;&nbsp;&nbsp&nbsp;&nbsp;&nbsp;&nbsp;GlobalIndicators.INDICATOR_SHOW);<BR>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    51
 * &nbsp;&nbsp;&nbsp;&nbsp;}
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    52
 * </code>
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    53
 */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    54
public final class GlobalIndicators
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
    private static GlobalIndicatorsImpl sInstance;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    58
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    59
    static
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    60
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    61
        sInstance = GlobalIndicatorsImpl.getInstance();
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    62
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    63
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    64
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    65
     * A constant for email indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    66
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    67
    public static final int MAIL_INDICATOR = 274;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    68
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    69
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    70
     * A constant for chat message indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    71
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    72
    public static final int CHAT_INDICATOR = 260;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    73
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    74
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    75
     * A constant for indicator's default value uninitialized.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    76
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    77
    public static final int INDICATOR_UNINITIALIZED = 0;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    78
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    79
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    80
     * A constant for indicator's value when the indicator is hidden.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    81
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    82
    public static final int INDICATOR_HIDE = 1;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    83
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    84
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    85
     * A constant for indicator's value when the indicator is displayed.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    86
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    87
    public static final int INDICATOR_SHOW = 2;
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    88
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    89
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    90
     * Private constructor.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    91
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    92
    private GlobalIndicators()
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    93
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    94
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    95
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    96
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    97
     * Sets the value of the given global indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    98
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
    99
     * @param indicator <code>MAIL_INDICATOR</code>,
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   100
     * <code>CHAT_INDICATOR</code> or a specific other indicator given as
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   101
     * an integer.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   102
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   103
     * @param value the value to set: <code>INDICATOR_SHOW</code>,
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   104
     * <code>INDICATOR_HIDE</code> or a specific other value given as
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   105
     * an integer.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   106
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   107
     * @return the value that is currently set for the indicator:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   108
     * <code>INDICATOR_UNINITIALIZED</code>, <code>INDICATOR_SHOW</code> or
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   109
     * <code>INDICATOR_HIDE</code>. For the other specific indicators the
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   110
     * return value is the integer value that is set for that indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   111
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   112
     * @throws GlobalIndicatorsException if the given indicator or the
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   113
     * given value is not supported, or there occurs an error while trying to
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   114
     * access the indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   115
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   116
    public static int setGlobalIndicator(int indicator, int value)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   117
    throws GlobalIndicatorsException
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   118
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   119
        return sInstance.setGlobalIndicator(indicator, value);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   120
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   121
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   122
    /**
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   123
     * Gets the value of the given global indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   124
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   125
     * @param indicator <code>MAIL_INDICATOR</code>,
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   126
     * <code>CHAT_INDICATOR</code> or a specific other indicator given as
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   127
     * an integer.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   128
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   129
     * @return the value that is currently set for the indicator:
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   130
     * <code>INDICATOR_UNINITIALIZED</code>, <code>INDICATOR_SHOW</code> or
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   131
     * <code>INDICATOR_HIDE</code>. For the other specific indicators the
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   132
     * return value is the integer value that is currently set for that
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   133
     * indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   134
     *
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   135
     * @throws GlobalIndicatorsException if there occurs an error while trying
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   136
     * to access the indicator.
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   137
     */
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   138
    public static int getGlobalIndicator(int indicator)
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   139
    throws GlobalIndicatorsException
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   140
    {
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   141
        return sInstance.getGlobalIndicator(indicator);
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   142
    }
71ad690e91f5 v2.2.17_1
hgs
parents:
diff changeset
   143
}