Presentación Sevibus Wear

15
SeviBus Wear Grupo 4

Transcript of Presentación Sevibus Wear

Page 1: Presentación Sevibus Wear

SeviBus Wear

Grupo 4

Page 2: Presentación Sevibus Wear

Índice

Idea

Demo

Cómo se hace

TO-DO

Page 3: Presentación Sevibus Wear

Idea

Page 4: Presentación Sevibus Wear
Page 5: Presentación Sevibus Wear

Demo

Page 6: Presentación Sevibus Wear

Cómo se hace

Page 7: Presentación Sevibus Wear

Disparador

private void sendNotification() { // cargo las líneas de las llegadas ArrayMap<Linea, Llegada> llegadasMapa = new ArrayMap<>(); for (int i = 0; i < mLlegadas.size(); i++) { int id = mLlegadas.keyAt(i); Linea linea = getDBHelper().getDaoLinea().queryForId(id); llegadasMapa.put(linea, mLlegadas.get(id)); } // Envía la notificación WearManager.sendWearNotification(getActivity(), llegadasMapa, mParada); }

1

Page 8: Presentación Sevibus Wear

Notificación I

NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();for (int i = 0; i < llegadasMapa.size(); i++) { Linea linea = llegadasMapa.keyAt(i); Llegada llegada = llegadasMapa.valueAt(i); if (llegada != null && llegada.getBus1() != null) { inboxStyle.addLine(String.format("Línea %s - %d min", linea.getNumero(), llegada.getBus1().getTiempo())); }} !NotificationCompat.Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(context.getResources(), R.drawable.bg_wear)) .setContentTitle(String.format("Llegadas parada %s", parada.getNumero())) .setContentText("Próximas llegadas SeviBus") .setPriority(NotificationCompat.PRIORITY_LOW) .setStyle(inboxStyle);

2

Page 9: Presentación Sevibus Wear

Notificación II

PendingIntent intent = PendingIntent.getBroadcast(context, 666, new Intent(WearReceiver.ACTION_5_MINUTES) .putExtra(WearReceiver.EXTRA_PARADA, parada.getNumero()) .putExtra(WearReceiver.EXTRA_MILLIS, 1 * 60 * 1000), 0);Notification notification = new WearableNotifications.Builder(builder) .setMinPriority() .addAction(new WearableNotifications.Action.Builder(R.drawable.ic_action_actualizar, "En 5 minutos", intent).build()) .build(); NotificationManagerCompat.from(context).notify(0, notification);

2

Page 10: Presentación Sevibus Wear

Para más tarde

public class WearReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { long checkInMilliseconds = intent.getIntExtra(EXTRA_MILLIS, 0); int paradaId = intent.getIntExtra(EXTRA_PARADA, 0); PendingIntent checkIntent = PendingIntent.getService(context, 777, new Intent(WearIntentService.ACTION_CHECK_WEAR).putExtra(EXTRA_PARADA, paradaId), PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); am.setExact(AlarmManager.ELAPSED_REALTIME, checkInMilliseconds, checkIntent); NotificationManagerCompat.from(context).cancelAll(); } }

3

Page 11: Presentación Sevibus Wear

Repetir

public class WearIntentService extends IntentService { @Override protected void onHandleIntent(Intent intent) { int paradaId = intent.getIntExtra(WearReceiver.EXTRA_PARADA, 0); Parada parada = getParada(paradaId); List<Linea> linea = getLineas(parada); ArrayMap<Linea, Llegada> llegadas; // Obtiene las llegadas de la parada // ... // Manda la notificacion WearManager.sendWearNotification(this, llegadas, parada); }}

4

Page 12: Presentación Sevibus Wear

To-Do

Page 13: Presentación Sevibus Wear

To-DoFavoritas cercanas

Page 14: Presentación Sevibus Wear

To-DoFavoritas cercanas

Comandos de voz

Page 15: Presentación Sevibus Wear

+Sergio Rodríguez +Rafa Vázquez