// ---------------------------------------------------------------------------
// CAknBatteryStrength::HandleResourceChange
// ---------------------------------------------------------------------------
//
void CAknBatteryStrength::HandleResourceChange( TInt aType )
    {
    if ( aType==KEikDynamicLayoutVariantSwitch ||
         aType == KEikColorResourceChange ||
         aType == KAknsMessageSkinChange)
        {
        DeleteBitmaps(); // SizeChanged reloads needed bitmaps
        SizeChanged();

        if ( aType == KEikDynamicLayoutVariantSwitch )
            {
            SetBatteryLevel( iBatteryLevel ); // refreshes battery level offsets
            }

        DrawDeferred();
        }
    }
Exemplo n.º 2
0
void KeyScan_DetBattery(void)
{
#if (KEYSCAN_POWEROFF_DET == ENABLE)

    UINT32  ui_battery_level =0;
    static UINT32   uiDetLowBattery = 0;
    static UINT32   ui_Battery_val[] = {BATTERY_FULL,BATTERY_MED,BATTERY_LOW,BATTERY_EMPTY,BATTERY_EXHAUSTED};
    
   // if (KeyScan_IsFlashCharging() || KeyScan_IsUSBPlug())
       // return;
    //debug_err(("KeyScan_IsUSBPlug : %d\r\n",KeyScan_IsUSBPlug()));
    if((usb_StateChange())||(GPIOMap_GetAcc12V()==TRUE))
    {
	switch(uiBatteryLvl)
	{
		case VOLDET_BATTERY_LVL_3:
			uiBatteryLvl = VOLDET_BATTERY_LVL_1;
			break;
		case VOLDET_BATTERY_LVL_1:
			uiBatteryLvl = VOLDET_BATTERY_LVL_2;			
			break;			
		case VOLDET_BATTERY_LVL_2:
			uiBatteryLvl = VOLDET_BATTERY_LVL_3;
			break;		
		default:
			uiBatteryLvl = VOLDET_BATTERY_LVL_1;
			break;			
	}
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
		return;
    }
    else
    {
    	uiBatteryLvl = VolDet_GetBatteryLevel();
      ui_battery_level = GetBatteryLevel();		
    }
    //debug_err(("battery level: new %d, old %d\n\r",uiBatteryLvl,ui_battery_level));
    switch(ui_battery_level)
    {
    case BATTERY_FULL:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_3)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_MED:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_2)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_LOW:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_1)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_EMPTY:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_0)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_EXHAUSTED:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_EMPTY)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    }

    if (uiBatteryLvl == VOLDET_BATTERY_LVL_EMPTY)
    {
        uiDetLowBattery++;
        if (uiDetLowBattery >= 2)   // if continuously detect battery low over 2 sec
        {
            debug_err(("*********KeyScan_DetBattery: Empty battery!!!\r\n"));
            KeyScan_PlaySound(PLAYSOUND_SOUND_KEY_OTHERS);
            TimerDelayMs(500);
            FlowWrnBatteryEmpty_Open();
            TimerDelayMs(2000);
            KeyScan_PoweroffFlow();
        }
    }
    else
    {
        uiDetLowBattery = 0;
    }
#endif //KEYSCAN_POWEROFF_DET
}
// ---------------------------------------------------------------------------
// CAknBatteryStrength::SizeChanged
// ---------------------------------------------------------------------------
//
void CAknBatteryStrength::SizeChanged()
    {
    TSize size( Size() );

    if ( AknStatuspaneUtils::StaconPaneActive() )
        {
        TRAP_IGNORE( LoadStaconBitmapsL() );
        if ( iStaconLeftSideBatteryIndicatorBitmap )
            {
            AknIconUtils::SetSize(
                iStaconLeftSideBatteryIndicatorBitmap,
                size,
                EAspectRatioPreservedAndUnusedSpaceRemoved );
            }

        if ( iStaconRightSideBatteryIndicatorBitmap )
            {
            AknIconUtils::SetSize(
                iStaconRightSideBatteryIndicatorBitmap,
                size,
                EAspectRatioPreservedAndUnusedSpaceRemoved );
            }

        iLastStaconSize = size;
        }
    else if ( AknStatuspaneUtils::FlatLayoutActive() )
        {
        TRAP_IGNORE( LoadFlatBitmapsL() );
        if ( iFlatBatteryIndicatorBitmap )
            {
            AknIconUtils::SetSize( iFlatBatteryIndicatorBitmap,
                                   size,
                                   EAspectRatioNotPreserved );
            }

        iLastFlatSize = size;
        }
    else if ( AknStatuspaneUtils::ExtendedLayoutActive() )
        {
        TRAP_IGNORE( LoadDefaultBitmapsL() );
        if ( iDefaultBatteryIndicatorBitmap )
            {
            AknIconUtils::SetSize( iDefaultBatteryIndicatorBitmap,
                                   size,
                                   EAspectRatioNotPreserved );
            }

        iLastDefaultSize = size;
        }
    else
        {
        TRAP_IGNORE( LoadDefaultBitmapsL() );
        if ( iDefaultBatteryIndicatorBitmap )
            {
            AknIconUtils::SetSize( iDefaultBatteryIndicatorBitmap, size );
            }
        iLastDefaultSize = size;
        }

    SetBatteryLevel( iBatteryLevel ); // refreshes battery level offsets
    AknsUtils::RegisterControlPosition( this );
    }
Exemplo n.º 4
0
void KeyScan_DetBattery(void)
{
#if (KEYSCAN_POWEROFF_DET == ENABLE)

    UINT32  ui_battery_level;
    static UINT32   uiDetLowBattery = 0;
    static UINT32   ui_Battery_val[] = {BATTERY_FULL,BATTERY_MED,BATTERY_LOW,BATTERY_EMPTY,BATTERY_EXHAUSTED, BATTERY_CHARGE};

    // don't monitor battery as flash light charging
    //if (KeyScan_IsFlashCharging())
       // return;
    if (KeyScan_IsUSBPower())
    {
        uiBatteryLvl = VOLDET_BATTERY_LVL_CHARGE;
        ui_battery_level = BATTERY_CHARGE;
        SetBatteryLevel(BATTERY_CHARGE);
        Ux_PostEvent(NVTEVT_BATTERY, 0);
    }else
    {
        uiBatteryLvl = VolDet_GetBatteryLevel();
        ui_battery_level = GetBatteryLevel();
        Ux_PostEvent(NVTEVT_BATTERY, 0);		
    }

    switch(ui_battery_level)
    {
    case BATTERY_CHARGE:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_CHARGE)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_FULL:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_3)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_MED:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_2)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_LOW:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_1)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_EMPTY:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_0)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    case BATTERY_EXHAUSTED:
        if(uiBatteryLvl != VOLDET_BATTERY_LVL_EMPTY)
        {
            SetBatteryLevel(ui_Battery_val[uiBatteryLvl]);
            Ux_PostEvent(NVTEVT_BATTERY, 0);
        }
        break;
    }

    if (uiBatteryLvl == VOLDET_BATTERY_LVL_EMPTY)
    {
        uiDetLowBattery++;
        if (uiDetLowBattery >= 3)   // if continuously detect battery low over 3 times
        {
            VControl    *pCurrnetWnd;

            //#NT#2011/08/09#KS Hung -begin
            switch(Primary_GetCurrentMode())
            {
            case PRIMARY_MODE_MOVIE:
                switch (FlowMovie_GetMovDataState())
                {
                case MOV_ST_REC:
                case MOV_ST_REC | MOV_ST_ZOOM:
                    FlowMovie_StopRec();
                    break;
                }
                break;
            case PRIMARY_MODE_PLAYBACK:
                switch (FlowPB_GetPlbDataState())
                {
                case PLB_ST_PLAY_MOV:
                case PLB_ST_PAUSE_MOV:
                    Ux_SendEvent(&UIPlayObjCtrl,NVTEVT_MOVSTOP,0);
                    break;
                }
                break;
            }

            Ux_GetFocusedWindow(&pCurrnetWnd);
            if (strncmp(pCurrnetWnd->Name,"UIFlowWndWrnMsg",15) != 0)
            {
                KeyScan_SetKeyMask(KEYSCAN_KEYMODE_PRESS, FLGKEY_KEY_MASK_NULL);
                KeyScan_SetKeyMask(KEYSCAN_KEYMODE_RELEASE, FLGKEY_KEY_MASK_NULL);
                KeyScan_SetKeyMask(KEYSCAN_KEYMODE_CONTINUE, FLGKEY_KEY_MASK_NULL);
                Ux_OpenWindow(&UIFlowWndWrnMsgCtrl,2,UIFlowWndWrnMsg_StatusTXT_Msg_STRID_BATTERY_LOW, FLOWWRNMSG_TIMER_2SEC*5);
            }
            //#NT#2011/08/09#KS Hung -end
        }
    }
    else
    {
        uiDetLowBattery = 0;
    }
#endif //KEYSCAN_POWEROFF_DET
}