blob: 78cd7347c0794be8b95a3f2597240537a4785826 [file]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.domokit.sky.shell;
import android.content.Context;
import android.util.Log;
import org.chromium.base.JNINamespace;
import org.chromium.base.ResourceExtractor;
/**
* A class to intialize the native code.
**/
@JNINamespace("sky::shell")
public class SkyMain {
private static final String TAG = "SkyMain";
/**
* A guard flag for calling nativeInit() only once.
**/
private static boolean sInitialized = false;
/**
* Initializes the native system.
**/
static void ensureInitialized(Context applicationContext) {
if (sInitialized)
return;
try {
ResourceExtractor resourceExtractor = ResourceExtractor.get(applicationContext);
resourceExtractor.startExtractingResources();
resourceExtractor.waitForCompletion();
nativeInit(applicationContext);
sInitialized = true;
} catch (Exception e) {
Log.e(TAG, "SkyMain initialization failed.", e);
throw new RuntimeException(e);
}
}
private static native void nativeInit(Context context);
}