public void setWakeLock(){
		Window window = getWindow();
		if(window != null){
			window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
			AppLogs.d("!!Scanner", "wakelock set");
		}
	}
	@Override
	protected void onPause() {
		super.onPause();
		mealBreakTimeCounter = TimerUtility.getTimerUtilityInstance().getTimerObjectFromContainer(IAppConstants.TimerManagerConstants.TIMER_UTILITY_MEALBREAK_TIME);
		if(mealBreakTimeCounter != null) {
			if(mealBreakTimeCounter.isMealBreakRegistered()) {
				mealBreakTimeCounter.unregisterMealBreakCounterCallback();
			}
		}
		
		if(!isNoDetsroyTimerOnPause() && !isScanningDialogActivated){
			AppLogs.d("!!Scanner", "flags: " + isNoDetsroyTimerOnPause() + ", " + isScanningDialogActivated);
			DataWedgePresenter.getDataWedgePresenterInstance(this).resetTimers(this);
		}
	}
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(mIsScannerEnabled) {
			switch(keyCode)
			{
			case KeyEvent.KEYCODE_SOFT_LEFT:
				//	    		Log.d(TAG, "KeyEvent");
				//	    		mPresenter.enableDataWedgeScanner(NavigationDrawerSliderActivity.this);
				DataWedgePresenter.getDataWedgePresenterInstance(this).enableDataWedgeScanner(this, isContinuousScanReqd(), this);
				return true;
			case KeyEvent.KEYCODE_BACK:
				AppLogs.d("!!Timerout", "back key pressed");
				break;
			}
		}
	    return super.onKeyDown(keyCode, event);
	}
	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.timer_layout://Layout made clickable to increase click area.
		case R.id.menu_header_time_tracker:
			if(AppUtility.getAppUtilityInstance().isConnectionEstablished()) {
				AppUtility.getAppUtilityInstance().printTimerLogs();
				Intent timerDrawerIntent = new Intent(this, TimeDrawerActivity.class);
				timerDrawerIntent.putExtra(IAppConstants.IS_APP_ON_PAUSE_STATE, false);
				timerDrawerIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
				
				Object setResult =  v.getTag(R.id.menu_header_time_tracker);
				
				if(setResult != null && (setResult instanceof Integer)) {
					int requestCode = Integer.parseInt(setResult.toString());
					if ((requestCode&0xffff0000) == 0) {
						timerDrawerIntent.putExtra(IAppConstants.StoreVisitSummary.EXTRA_NOTIFY_REFRESH, requestCode );
						startActivityForResult(timerDrawerIntent, requestCode);
					} else {
						startActivity(timerDrawerIntent);
					}
				} else {
					startActivity(timerDrawerIntent);
				}
			}else {
				AppLogs.d("NavigationDrawerSliderActivity", " connection not established!!");
			}
			break;

		case R.id.tv_header_subtitle: //Set click listener to subtitle to increase clickable area.
		case R.id.ll_header_clickable_menubar:
			if (button.getVisibility() == View.VISIBLE) {
				if (isToggle) {
					final ListPopupWindow mPopupMenuWindow = new ListPopupWindow(
							this);
					mPopupMenuWindow.setAnchorView(v);
					mPopupMenuWindow.setHeight(406);
					mPopupMenuWindow.setWidth(325);
					mPopupMenuWindow.getListView();
					mPopupMenuWindow.setBackgroundDrawable(getResources()
							.getDrawable(R.drawable.bg_popover_function_nine));
					if (menuItems != null) {
						menuAdapter = new FunctionMenuAdapter(this, menuItems,
								txtHeaderTypeface);
					}
					mPopupMenuWindow.setAdapter(menuAdapter);
					mPopupMenuWindow.setVerticalOffset(15);
					mPopupMenuWindow.setHorizontalOffset(-19);
					mPopupMenuWindow
							.setOnItemClickListener(new OnItemClickListener() {

								@Override
								public void onItemClick(AdapterView<?> parent,
										View view, int position, long arg3) {
									//TODO: Call through Presenter. Currently, the "this" instance is of HomeScreenActivity, hence making local method call.
									/*mPresenter.*/OnClickSelectedItem(menuItems
											.get(position).toString());
									mPopupMenuWindow.dismiss();
									isToggle = !isToggle;
								}
							});
					mPopupMenuWindow.show();
				}
				isToggle = !isToggle;
			}
			break;
		}
	}