Presentación Sevibus Wear
-
Upload
rafael-vazquez-sanchez -
Category
Software
-
view
156 -
download
0
Transcript of Presentación Sevibus Wear
SeviBus Wear
Grupo 4
Índice
Idea
Demo
Cómo se hace
TO-DO
Idea
Demo
Cómo se hace
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
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
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
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
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
To-Do
To-DoFavoritas cercanas
To-DoFavoritas cercanas
Comandos de voz
+Sergio Rodríguez +Rafa Vázquez