112 lines
3.5 KiB
Java
112 lines
3.5 KiB
Java
package code.name.monkey.retromusic;
|
|
|
|
import android.content.Intent;
|
|
import android.os.Build;
|
|
import android.support.annotation.NonNull;
|
|
import android.support.multidex.MultiDexApplication;
|
|
|
|
import com.anjlab.android.iab.v3.BillingProcessor;
|
|
import com.anjlab.android.iab.v3.TransactionDetails;
|
|
|
|
import code.name.monkey.appthemehelper.ThemeStore;
|
|
import code.name.monkey.retromusic.appshortcuts.DynamicShortcutManager;
|
|
import code.name.monkey.retromusic.ui.activities.ErrorHandlerActivity;
|
|
import uk.co.chrisjenx.calligraphy.CalligraphyConfig;
|
|
|
|
public class RetroApplication extends MultiDexApplication {
|
|
|
|
public static final String PRO_VERSION_PRODUCT_ID = "pro_version";
|
|
|
|
private static RetroApplication app;
|
|
|
|
private BillingProcessor billingProcessor;
|
|
|
|
public static RetroApplication getInstance() {
|
|
return app;
|
|
}
|
|
|
|
public static boolean isProVersion() {
|
|
return BuildConfig.DEBUG || app.billingProcessor.isPurchased(PRO_VERSION_PRODUCT_ID);
|
|
}
|
|
|
|
public static void deleteAppData() {
|
|
try {
|
|
// clearing app data
|
|
String packageName = app.getPackageName();
|
|
Runtime runtime = Runtime.getRuntime();
|
|
runtime.exec("pm clear " + packageName);
|
|
|
|
System.exit(0);
|
|
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onCreate() {
|
|
super.onCreate();
|
|
app = this;
|
|
|
|
|
|
// default theme
|
|
if (!ThemeStore.isConfigured(this, 1)) {
|
|
ThemeStore.editTheme(this)
|
|
.accentColorRes(R.color.md_green_A200)
|
|
.commit();
|
|
}
|
|
|
|
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
|
|
.setDefaultFontPath("fonts/circular_std_book.otf")
|
|
.setFontAttrId(R.attr.fontPath)
|
|
.build()
|
|
);
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
|
new DynamicShortcutManager(this).initDynamicShortcuts();
|
|
}
|
|
|
|
// automatically restores purchases
|
|
billingProcessor = new BillingProcessor(this, BuildConfig.GOOGLE_PLAY_LICENSE_KEY,
|
|
new BillingProcessor.IBillingHandler() {
|
|
@Override
|
|
public void onProductPurchased(@NonNull String productId, TransactionDetails details) {
|
|
}
|
|
|
|
@Override
|
|
public void onPurchaseHistoryRestored() {
|
|
//Toast.makeText(App.this, R.string.restored_previous_purchase_please_restart, Toast.LENGTH_LONG).show();
|
|
}
|
|
|
|
@Override
|
|
public void onBillingError(int errorCode, Throwable error) {
|
|
}
|
|
|
|
@Override
|
|
public void onBillingInitialized() {
|
|
}
|
|
});
|
|
}
|
|
|
|
private void setupErrorHandler() {
|
|
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
|
|
@Override
|
|
public void uncaughtException(Thread thread, Throwable throwable) {
|
|
handleUncaughtException(thread, throwable);
|
|
}
|
|
});
|
|
}
|
|
|
|
private void handleUncaughtException(Thread thread, Throwable throwable) {
|
|
throwable.printStackTrace();
|
|
//Intent intent = new Intent(this, ErrorHandlerActivity.class);
|
|
//intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
//startActivity(intent);
|
|
}
|
|
|
|
@Override
|
|
public void onTerminate() {
|
|
super.onTerminate();
|
|
billingProcessor.release();
|
|
}
|
|
}
|