emotionhero/app/src/main/java/com/rubenvandeven/emotionhero/AppContext.java

61 lines
2.1 KiB
Java

package com.rubenvandeven.emotionhero;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.PowerManager;
/**
* For kioskmode only!
* See http://www.andreas-schrade.de/2015/02/16/android-tutorial-how-to-create-a-kiosk-mode-in-android/
*/
@ReportsCrashes(
buildConfigClass=BuildConfig.class,
formUri="http://crashes.rubenvandeven.com/api",
formUriBasicAuthLogin="com.rubenvandeven.emotion_hero.kiosk",
formUriBasicAuthPassword="4fkpp89Q+VKdbVj3VIbBFKTT",
mode=ReportingInteractionMode.TOAST,
resToastText=R.string.crash_toast_text)
public class AppContext extends Application {
private AppContext instance;
private PowerManager.WakeLock wakeLock;
private OnScreenOffReceiver onScreenOffReceiver;
@Override
public void onCreate() {
super.onCreate();
instance = this;
if (!ACRA.isACRASenderServiceProcess()) {
registerKioskModeScreenOffReceiver();
startKioskService();
}
}
private void registerKioskModeScreenOffReceiver() {
// register screen off receiver
final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
onScreenOffReceiver = new OnScreenOffReceiver();
registerReceiver(onScreenOffReceiver, filter);
}
protected void attachBaseContext(Context paramContext)
{
super.attachBaseContext(paramContext);
ACRA.init(this, new ConfigurationBuilder(this).setReportField(ReportField.USER_COMMENT, false), true);
}
public PowerManager.WakeLock getWakeLock() {
if(wakeLock == null) {
// lazy loading: first call, create wakeLock via PowerManager.
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "wakeup");
}
return wakeLock;
}
private void startKioskService() {
startService(new Intent(this, KioskService.class));
}
}