private void startTimer() {
    Debug.c();
    if (mGameManager != null && !mGameManager.isGameFinished()) {
      // Game holds the timer
      // so need to start Game timer via GameManager
      mGameManager.startTimer();

      TimerTask timerTask =
          new TimerTask() {
            @Override
            public void run() {
              runOnUiThread(
                  new Runnable() {
                    @Override
                    public void run() {
                      updateTimeElapsed(mGameManager.getElapsedTime());
                    }
                  });
            }
          };

      mTimer = new Timer();

      mTimer.schedule(timerTask, 0, 1000);
    }
  }
 @Override
 public void onGameFinished() {
   Debug.c();
   stopTimer();
   Debug.showLong("Game Finished", this);
   showScoreActivity();
 }
 @Override
 protected void onResume() {
   super.onResume();
   Debug.c();
   if (mGameManager != null) {
     startTimer();
   }
 }
 private void stopTimer() {
   Debug.c();
   if (mGameManager != null && mTimer != null) {
     mGameManager.stopTimer();
     mTimer.cancel();
     mTimer = null;
   }
 }
 private void setupGame() {
   Debug.c();
   mGameManager = new GameManager(mBoardLayoutView, this);
 }