@Override
  public void onResume() {
    // If not onResume directly after onCreate reset locale
    if (!mOnResumeDirectlyAfterOnCreate) {
      Log.d(MainActivity.class.getName(), "Set locale again in onResume");
      setLocale();
    }

    // Set date and time and start timer
    setDateAndTime();
    startTimer();

    super.onResume();
  }
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // Get settings provider
    mSettings = SettingsProvider.getInstance(this);

    // Check language
    Log.d(MainActivity.class.getName(), "Set locale in onCreate");
    setLocale();

    // Set flag indicating we are in oncreate
    mOnResumeDirectlyAfterOnCreate = true;

    // Now go on
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainactivity);

    // Check if observer have to be started
    if (mSettings.getBackgroundObserverEnabled()) {
      // Start foreground service
      Intent startIntent = new Intent(this, ForeGroundService.class);
      startIntent.setAction(ForeGroundService.FOREGROUNDSERVICE_START);
      startService(startIntent);
    }

    // Get base linear layout
    mMainLayout = (LinearLayout) findViewById(R.id.linearLayoutMain);

    // Check if background image have to be set
    WallpaperSelectDialog selectDialog = new WallpaperSelectDialog(this);
    selectDialog.setWallpaper(false);

    // Get linear layout for semi-transparent background
    mSemiTransparentLayout =
        (LinearLayout) findViewById(R.id.linearLayoutSemiTransparentBackground);

    // Get clock and date
    mTextViewClock = (TextView) findViewById(R.id.textViewClock);
    mTextViewDate = (TextView) findViewById(R.id.textViewDate);

    // Get ListView
    mListView = (ListView) findViewById(R.id.listView);

    // Handle item click listener
    mListView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.d(
                MainActivity.class.getName(), "OnItemClickListener: clicked position " + position);
            handleLeftBarItemSelection(parent, view, position, id);
          }
        });

    // Handle item selected changes
    mListView.setOnItemSelectedListener(
        new AdapterView.OnItemSelectedListener() {
          @Override
          public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            Log.d(
                MainActivity.class.getName(),
                "OnItemSelectedListener: selected position " + position);
            handleLeftBarItemSelection(parent, view, position, id);
          }

          @Override
          public void onNothingSelected(AdapterView<?> parent) {}
        });

    // Set adapter
    LeftBarItemsListAdapter actAdapter = new LeftBarItemsListAdapter(this);
    mListView.setAdapter(actAdapter);

    // Focus first item
    mListView
        .getViewTreeObserver()
        .addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {
              @Override
              public void onGlobalLayout() {
                try {
                  // Remove listener
                  mListView.getViewTreeObserver().removeOnGlobalLayoutListener(this);

                  // Check if first icon have to be selected
                  mListView.requestFocusFromTouch();
                  mListView.setSelection(0);
                } catch (Exception e) {
                  StringWriter errors = new StringWriter();
                  e.printStackTrace(new PrintWriter(errors));
                  String errorReason = errors.toString();
                  Log.d(
                      MainActivity.class.getName(),
                      "Failed to focus first left bar list item: \n" + errorReason);
                }
              }
            });

    // Check if left bar shall be hided
    mLeftBar = (LinearLayout) findViewById(R.id.leftbar);
  }