hunk.code_window:   public void onCreate() {
       super.onCreate();
       if (!BuildConfig.DEBUG) {
         Fabric.with(this, new Crashlytics());
       }
       sApplication = this;
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit:       try {
           String versionName = Constants.getVersionName(this);
           Crashlytics.setString("exp_client_version", versionName);
         } catch (Throwable e) {
           EXL.e(TAG, e.toString());
         }
  
hunk.file_path: android/app/src/main/java/host/exp/exponent/ExponentApplication.java
hunk.type: add
file: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   * @providesModule getDevServer
   * @flow
   */
  'use strict';
  
  const {SourceCode} = require('NativeModules');
  
  let _cachedDevServerURL: ?string;
  const FALLBACK = 'http://localhost:8081/';
  
  type DevServerInfo = {
    url: string;
    bundleLoadedFromServer: boolean;
  };
  
  /**
   * Many RN development tools rely on the development server (packager) running
   * @return URL to packager with trailing slash
   */
  function getDevServer(): DevServerInfo {
    if (_cachedDevServerURL === undefined) {
      const match = SourceCode.scriptURL && SourceCode.scriptURL.match(/^https?:\/\/.*?\//);
      _cachedDevServerURL = match ? match[0] : null;
    }
  
    return {
      url: _cachedDevServerURL || FALLBACK,
      bundleLoadedFromServer: _cachedDevServerURL !== null,
    };
  }
  
  module.exports = getDevServer;
  