Beta.java 10.8 KB
package com.crashlytics.android.beta;

import android.annotation.TargetApi;
import android.app.Application;
import android.content.Context;
import android.os.Build.VERSION;
import android.text.TextUtils;
import io.fabric.sdk.android.Fabric;
import io.fabric.sdk.android.Kit;
import io.fabric.sdk.android.Logger;
import io.fabric.sdk.android.services.cache.MemoryValueCache;
import io.fabric.sdk.android.services.common.CommonUtils;
import io.fabric.sdk.android.services.common.DeviceIdentifierProvider;
import io.fabric.sdk.android.services.common.IdManager;
import io.fabric.sdk.android.services.common.IdManager.DeviceIdentifierType;
import io.fabric.sdk.android.services.common.SystemCurrentTimeProvider;
import io.fabric.sdk.android.services.network.DefaultHttpRequestFactory;
import io.fabric.sdk.android.services.persistence.PreferenceStoreImpl;
import io.fabric.sdk.android.services.settings.BetaSettingsData;
import io.fabric.sdk.android.services.settings.Settings;
import io.fabric.sdk.android.services.settings.SettingsData;
import java.util.HashMap;
import java.util.Map;

public class Beta
  extends Kit<Boolean>
  implements DeviceIdentifierProvider
{
  private static final String CRASHLYTICS_API_ENDPOINT = "com.crashlytics.ApiEndpoint";
  private static final String CRASHLYTICS_BUILD_PROPERTIES = "crashlytics-build.properties";
  static final String NO_DEVICE_TOKEN = "";
  public static final String TAG = "Beta";
  private final MemoryValueCache<String> deviceTokenCache = new MemoryValueCache();
  private final DeviceTokenLoader deviceTokenLoader = new DeviceTokenLoader();
  private UpdatesController updatesController;
  
  private String getBetaDeviceToken(Context paramContext, String paramString)
  {
    try
    {
      paramContext = (String)this.deviceTokenCache.get(paramContext, this.deviceTokenLoader);
      bool = "".equals(paramContext);
      if (bool) {
        paramContext = null;
      }
    }
    catch (Exception paramContext)
    {
      for (;;)
      {
        StringBuilder localStringBuilder;
        Fabric.getLogger().e("Beta", "Failed to load the Beta device token", paramContext);
        paramContext = null;
        continue;
        boolean bool = false;
      }
    }
    paramString = Fabric.getLogger();
    localStringBuilder = new StringBuilder("Beta device token present: ");
    if (!TextUtils.isEmpty(paramContext))
    {
      bool = true;
      paramString.d("Beta", bool);
      return paramContext;
    }
  }
  
  private BetaSettingsData getBetaSettingsData()
  {
    SettingsData localSettingsData = Settings.getInstance().awaitSettingsData();
    if (localSettingsData != null) {
      return localSettingsData.betaSettingsData;
    }
    return null;
  }
  
  public static Beta getInstance()
  {
    return (Beta)Fabric.getKit(Beta.class);
  }
  
  /* Error */
  private BuildProperties loadBuildProperties(Context paramContext)
  {
    // Byte code:
    //   0: aload_1
    //   1: invokevirtual 128	android/content/Context:getAssets	()Landroid/content/res/AssetManager;
    //   4: ldc 14
    //   6: invokevirtual 134	android/content/res/AssetManager:open	(Ljava/lang/String;)Ljava/io/InputStream;
    //   9: astore_2
    //   10: aload_2
    //   11: ifnull +201 -> 212
    //   14: aload_2
    //   15: astore_3
    //   16: aload_2
    //   17: invokestatic 140	com/crashlytics/android/beta/BuildProperties:fromPropertiesStream	(Ljava/io/InputStream;)Lcom/crashlytics/android/beta/BuildProperties;
    //   20: astore_1
    //   21: aload_2
    //   22: astore_3
    //   23: invokestatic 62	io/fabric/sdk/android/Fabric:getLogger	()Lio/fabric/sdk/android/Logger;
    //   26: ldc 20
    //   28: new 64	java/lang/StringBuilder
    //   31: dup
    //   32: invokespecial 141	java/lang/StringBuilder:<init>	()V
    //   35: aload_1
    //   36: getfield 144	com/crashlytics/android/beta/BuildProperties:packageName	Ljava/lang/String;
    //   39: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   42: ldc -107
    //   44: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   47: aload_1
    //   48: getfield 152	com/crashlytics/android/beta/BuildProperties:versionName	Ljava/lang/String;
    //   51: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   54: ldc -102
    //   56: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   59: aload_1
    //   60: getfield 157	com/crashlytics/android/beta/BuildProperties:versionCode	Ljava/lang/String;
    //   63: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   66: ldc -97
    //   68: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   71: aload_1
    //   72: getfield 162	com/crashlytics/android/beta/BuildProperties:buildId	Ljava/lang/String;
    //   75: invokevirtual 147	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
    //   78: invokevirtual 83	java/lang/StringBuilder:toString	()Ljava/lang/String;
    //   81: invokeinterface 89 3 0
    //   86: aload_1
    //   87: astore_3
    //   88: aload_2
    //   89: ifnull +9 -> 98
    //   92: aload_2
    //   93: invokevirtual 167	java/io/InputStream:close	()V
    //   96: aload_1
    //   97: astore_3
    //   98: aload_3
    //   99: areturn
    //   100: astore_2
    //   101: invokestatic 62	io/fabric/sdk/android/Fabric:getLogger	()Lio/fabric/sdk/android/Logger;
    //   104: ldc 20
    //   106: ldc -87
    //   108: aload_2
    //   109: invokeinterface 95 4 0
    //   114: aload_1
    //   115: areturn
    //   116: astore 4
    //   118: aconst_null
    //   119: astore_2
    //   120: aconst_null
    //   121: astore_1
    //   122: aload_2
    //   123: astore_3
    //   124: invokestatic 62	io/fabric/sdk/android/Fabric:getLogger	()Lio/fabric/sdk/android/Logger;
    //   127: ldc 20
    //   129: ldc -85
    //   131: aload 4
    //   133: invokeinterface 95 4 0
    //   138: aload_1
    //   139: astore_3
    //   140: aload_2
    //   141: ifnull -43 -> 98
    //   144: aload_2
    //   145: invokevirtual 167	java/io/InputStream:close	()V
    //   148: aload_1
    //   149: areturn
    //   150: astore_2
    //   151: invokestatic 62	io/fabric/sdk/android/Fabric:getLogger	()Lio/fabric/sdk/android/Logger;
    //   154: ldc 20
    //   156: ldc -87
    //   158: aload_2
    //   159: invokeinterface 95 4 0
    //   164: aload_1
    //   165: areturn
    //   166: astore_1
    //   167: aconst_null
    //   168: astore_3
    //   169: aload_3
    //   170: ifnull +7 -> 177
    //   173: aload_3
    //   174: invokevirtual 167	java/io/InputStream:close	()V
    //   177: aload_1
    //   178: athrow
    //   179: astore_2
    //   180: invokestatic 62	io/fabric/sdk/android/Fabric:getLogger	()Lio/fabric/sdk/android/Logger;
    //   183: ldc 20
    //   185: ldc -87
    //   187: aload_2
    //   188: invokeinterface 95 4 0
    //   193: goto -16 -> 177
    //   196: astore_1
    //   197: goto -28 -> 169
    //   200: astore 4
    //   202: aconst_null
    //   203: astore_1
    //   204: goto -82 -> 122
    //   207: astore 4
    //   209: goto -87 -> 122
    //   212: aconst_null
    //   213: astore_1
    //   214: goto -128 -> 86
    // Local variable table:
    //   start	length	slot	name	signature
    //   0	217	0	this	Beta
    //   0	217	1	paramContext	Context
    //   9	84	2	localInputStream	java.io.InputStream
    //   100	9	2	localIOException1	java.io.IOException
    //   119	26	2	localObject1	Object
    //   150	9	2	localIOException2	java.io.IOException
    //   179	9	2	localIOException3	java.io.IOException
    //   15	159	3	localObject2	Object
    //   116	16	4	localException1	Exception
    //   200	1	4	localException2	Exception
    //   207	1	4	localException3	Exception
    // Exception table:
    //   from	to	target	type
    //   92	96	100	java/io/IOException
    //   0	10	116	java/lang/Exception
    //   144	148	150	java/io/IOException
    //   0	10	166	finally
    //   173	177	179	java/io/IOException
    //   16	21	196	finally
    //   23	86	196	finally
    //   124	138	196	finally
    //   16	21	200	java/lang/Exception
    //   23	86	207	java/lang/Exception
  }
  
  boolean canCheckForUpdates(BetaSettingsData paramBetaSettingsData, BuildProperties paramBuildProperties)
  {
    return (paramBetaSettingsData != null) && (!TextUtils.isEmpty(paramBetaSettingsData.updateUrl)) && (paramBuildProperties != null);
  }
  
  @TargetApi(14)
  UpdatesController createUpdatesController(int paramInt, Application paramApplication)
  {
    if (paramInt >= 14) {
      return new ActivityLifecycleCheckForUpdatesController(getFabric().getActivityLifecycleManager(), getFabric().getExecutorService());
    }
    return new ImmediateCheckForUpdatesController();
  }
  
  protected Boolean doInBackground()
  {
    Fabric.getLogger().d("Beta", "Beta kit initializing...");
    Context localContext = getContext();
    IdManager localIdManager = getIdManager();
    if (TextUtils.isEmpty(getBetaDeviceToken(localContext, localIdManager.getInstallerPackageName())))
    {
      Fabric.getLogger().d("Beta", "A Beta device token was not found for this app");
      return Boolean.valueOf(false);
    }
    Fabric.getLogger().d("Beta", "Beta device token is present, checking for app updates.");
    BetaSettingsData localBetaSettingsData = getBetaSettingsData();
    BuildProperties localBuildProperties = loadBuildProperties(localContext);
    if (canCheckForUpdates(localBetaSettingsData, localBuildProperties)) {
      this.updatesController.initialize(localContext, this, localIdManager, localBetaSettingsData, localBuildProperties, new PreferenceStoreImpl(this), new SystemCurrentTimeProvider(), new DefaultHttpRequestFactory(Fabric.getLogger()));
    }
    return Boolean.valueOf(true);
  }
  
  public Map<IdManager.DeviceIdentifierType, String> getDeviceIdentifiers()
  {
    String str = getIdManager().getInstallerPackageName();
    str = getBetaDeviceToken(getContext(), str);
    HashMap localHashMap = new HashMap();
    if (!TextUtils.isEmpty(str)) {
      localHashMap.put(IdManager.DeviceIdentifierType.FONT_TOKEN, str);
    }
    return localHashMap;
  }
  
  public String getIdentifier()
  {
    return "com.crashlytics.sdk.android:beta";
  }
  
  String getOverridenSpiEndpoint()
  {
    return CommonUtils.getStringsFileValue(getContext(), "com.crashlytics.ApiEndpoint");
  }
  
  public String getVersion()
  {
    return "1.2.3.167";
  }
  
  @TargetApi(14)
  protected boolean onPreExecute()
  {
    Application localApplication = (Application)getContext().getApplicationContext();
    this.updatesController = createUpdatesController(Build.VERSION.SDK_INT, localApplication);
    return true;
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/crashlytics/android/beta/Beta.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */