@Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.navigation_drawer_layout);

    checkUser();

    initNavigationDrawer();

    ObservableScrollView observableScrollView =
        (ObservableScrollView) findViewById(R.id.cameras_scroll_view);
    observableScrollView.setScrollViewCallbacks(this);

    setUpActionButtons();

    initDataCollectionObjects();

    activity = this;

    /**
     * Use Handler here because we want the title bar/menu get loaded first. When the app starts, it
     * will load cameras to grid view twice: 1. Load cameras that saved locally without image
     * (disabled load image from cache because it blocks UI.) 2. When camera list returned from
     * Evercam, show them on screen with thumbnails, then request for snapshots in background
     * separately.
     *
     * <p>TODO: Check is it really necessary to keep the post delay handler here See if refresh icon
     * stop animating or not.
     */
    new Handler()
        .postDelayed(
            new Runnable() {
              @Override
              public void run() {
                /**
                 * Sometimes Evercam returns the list less than 0.1 sec? so check it's returned or
                 * not before the first load to avoid loading it twice.
                 */
                io.evercam.androidapp.custom.FlowLayout camsLineView =
                    (io.evercam.androidapp.custom.FlowLayout)
                        CamerasActivity.this.findViewById(R.id.cameras_flow_layout);
                if (!(camsLineView.getChildCount() > 0)) {
                  addAllCameraViews(false, false);
                  if (camsLineView.getChildCount() > 0
                      && databaseLoadTime == 0
                      && startTime != null) {
                    databaseLoadTime = Commons.calculateTimeDifferenceFrom(startTime);
                  }
                }
              }
            },
            1);

    // Start loading camera list after menu created(because need the menu
    // showing as animation)
    new CamerasCheckInternetTask(CamerasActivity.this, InternetCheckType.START)
        .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  }
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Fabric.with(this, new Crashlytics());

    setContentView(R.layout.main_activity_layout);

    launch();
  }