public static void updateFromMessage(StatusMessage s, Message m) { Bundle b = m.getData(); if (b.containsKey(SSID_KEY) && b.getString(SSID_KEY) != null && b.getString(SSID_KEY).length() > 1) if (!b.equals(s.getSSID())) s.setSSID(b.getString(SSID_KEY)); if (b.containsKey(STATUS_KEY) && b.getString(STATUS_KEY) != null && b.getString(STATUS_KEY).length() > 1) if (!b.equals(s.getStatus())) s.setStatus(b.getString(STATUS_KEY)); if (b.containsKey(SIGNAL_KEY) && b.getInt(SIGNAL_KEY) != s.getSignal()) s.setSignal(b.getInt(SIGNAL_KEY)); if (b.containsKey(SHOW_KEY) && b.getInt(SHOW_KEY) != 0) if (b.getInt(SHOW_KEY) != s.getShow()) s.setShow(b.getInt(SHOW_KEY)); if (b.containsKey(LINK_KEY)) { String ls = b.getString(LINK_KEY); if (ls != null && !ls.contains(MB)) s.setLinkSpeed(ls.concat(MB)); } }
@Override public void handleMessage(Message message) { /* * handle new scanresult * asynchronously (to avoid ANR) */ switch (message.what) { case REFRESH: if (self.get().getActivity() != null) self.get().refresh(); break; case STATUS_MESSAGE: /* * Change status text */ if (message == null) return; if (!message.getData().isEmpty() && self.get()._views != null) self.get()._views.setStatus(StatusMessage.fromMessage(message).getStatus()); break; } }
@Override public void vaddStatNotif(final Context ctxt, final StatusMessage in) { StatusMessage m = validateStrings(in); if (m.getShow() != 1) { vcancel(ctxt, STAT_TAG, NotifUtil.STATNOTIFID); return; } if (NotifUtil.ssidStatus == NotifUtil.SSID_STATUS_UNMANAGED) { m.setStatus( new StringBuilder(ctxt.getString(R.string.unmanaged)).append(m.getStatus()).toString()); } NotificationCompat.Builder statbuilder = new NotificationCompat.Builder(ctxt); Intent intent = new Intent(ctxt, WifiFixerActivity.class) .setAction(Intent.ACTION_MAIN) .setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); statbuilder.setContentIntent(PendingIntent.getActivity(ctxt, 0, intent, 0)); statbuilder.setOnlyAlertOnce(true); statbuilder.setOngoing(true); statbuilder.setWhen(0); statbuilder.setPriority(NotificationCompat.PRIORITY_MIN); statbuilder.setSmallIcon(getIconfromSignal(m.getSignal(), ICON_SET_SMALL)); statbuilder.setLargeIcon( BitmapFactory.decodeResource( ctxt.getResources(), getIconfromSignal(m.getSignal(), ICON_SET_LARGE))); statbuilder.setContentText(m.getStatus()); statbuilder.setSubText(ctxt.getString(R.string.network_status)); statbuilder.setContentTitle(m.getSSID()); /* * Fire the notification */ notify(ctxt, NotifUtil.STATNOTIFID, STAT_TAG, statbuilder.build()); }
public static StatusMessage fromIntent(Intent i) { StatusMessage s = new StatusMessage(); s.status = i.getBundleExtra(StatusDispatcher.STATUS_DATA_KEY); return s; }