package org.envirocar.app.services.obd; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import org.envirocar.app.R; import org.envirocar.app.services.SystemStartupService; /** * TODO JavaDoc * * @author dewall */ public enum OBDServiceState implements OBDServiceStateContent { NO_CAR_SELECTED { @Override public int getTitle() { return R.string.notification_no_car_title; } @Override public int getSubText() { return R.string.notification_no_car_description; } @Override public int getIcon() { return super.getIcon(); } }, NO_OBD_SELECTED { @Override public int getTitle() { return R.string.notification_no_obd_title; } @Override public int getSubText() { return R.string.notification_no_obd_description; } @Override public int getIcon() { return super.getIcon(); } }, UNCONNECTED { @Override public int getTitle() { return R.string.notification_unconnected_title; } @Override public int getSubText() { return R.string.notification_unconnected_description; } @Override public int getIcon() { return R.drawable.av_stop; } @Override public OBDNotificationActionHolder getAction(Context context) { return new OBDNotificationActionHolder( R.drawable.ic_bluetooth_searching_white_24dp, R.string.notification_unconnected_action, getPendingIntent(SystemStartupService.ACTION_START_BT_DISCOVERY, context)); } }, DISCOVERING { @Override public int getTitle() { return R.string.notification_discovering_title; } @Override public int getSubText() { return R.string.notification_discovering_description; } @Override public int getIcon() { return R.drawable.ic_bluetooth_searching_white_24dp; } @Override public OBDNotificationActionHolder getAction(Context context) { return new OBDNotificationActionHolder( R.drawable.ic_close_white_24dp, R.string.notification_discovering_action, getPendingIntent(SystemStartupService.ACTION_STOP_BT_DISCOVERY, context)); } }, CONNECTING { @Override public int getTitle() { return R.string.notification_connecting_title; } @Override public int getSubText() { return R.string.notification_connecting_description; } @Override public int getIcon() { return R.drawable.ic_bluetooth_searching_white_24dp; } }, CONNECTED { @Override public int getTitle() { return R.string.notification_connected_title; } @Override public int getSubText() { return R.string.notification_connected_description; } @Override public int getIcon() { return R.drawable.ic_play_arrow_black_24dp; } @Override public OBDNotificationActionHolder getAction(Context context) { return new OBDNotificationActionHolder( R.drawable.ic_close_white_24dp, R.string.notification_connected_action, getPendingIntent(SystemStartupService.ACTION_STOP_TRACK_RECORDING, context)); } }, STOPPING { @Override public int getTitle() { return R.string.notification_stopping_title; } @Override public int getSubText() { return R.string.notification_stopping_description; } @Override public int getIcon() { return R.drawable.ic_bluetooth_disabled_black_24dp; } }; @Override public int getTitle() { return 0; } @Override public int getSubText() { return 0; } @Override public int getIcon() { return R.drawable.ic_bluetooth_black_24dp; } @Override public OBDNotificationActionHolder getAction(Context context) { return null; } protected PendingIntent getPendingIntent(String broadcastAction, Context context) { Intent intent = new Intent(broadcastAction); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 2, intent, PendingIntent.FLAG_UPDATE_CURRENT); return pendingIntent; } }