public void onUpdate
(Context context, AppWidgetManager widget_manager,
int[] widget_ids
) { printIds("onUpdate", widget_ids);
for (int id : widget_ids) {
Intent intent = new Intent(context, LighterService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID , id);
// Use FLAG_UPDATE_CURRENT flag else the receiver can not get
// the extra data binded to the intent.
PendingIntent pending_intent = PendingIntent.getService(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
views.setOnClickPendingIntent(R.id.shortcut_img, pending_intent);
widget_manager.updateAppWidget(id, views);
}
Intent intent = getLighterIntent(context, AppWidgetManager.ACTION_APPWIDGET_UPDATE);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widget_ids);
context.startService(intent);
}
cHVibGljIHZvaWQgb25VcGRhdGUoQ29udGV4dCBjb250ZXh0LCBBcHBXaWRnZXRNYW5hZ2VyIHdpZGdldF9tYW5hZ2VyLCBpbnRbXSB3aWRnZXRfaWRzKSB7CiAgICAgICAgcHJpbnRJZHMoIm9uVXBkYXRlIiwgd2lkZ2V0X2lkcyk7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaWQgOiB3aWRnZXRfaWRzKSB7CiAgICAgICAgICAgICAgICBJbnRlbnQgaW50ZW50ID0gbmV3IEludGVudChjb250ZXh0LCBMaWdodGVyU2VydmljZS5jbGFzcyk7CiAgICAgICAgICAgICAgICBpbnRlbnQucHV0RXh0cmEoQXBwV2lkZ2V0TWFuYWdlci5FWFRSQV9BUFBXSURHRVRfSUQgLCBpZCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIC8vIFVzZSBGTEFHX1VQREFURV9DVVJSRU5UIGZsYWcgZWxzZSB0aGUgcmVjZWl2ZXIgY2FuIG5vdCBnZXQKICAgICAgICAgICAgICAgIC8vIHRoZSBleHRyYSBkYXRhIGJpbmRlZCB0byB0aGUgaW50ZW50LgogICAgICAgICAgICAgICAgUGVuZGluZ0ludGVudCBwZW5kaW5nX2ludGVudCA9IFBlbmRpbmdJbnRlbnQuZ2V0U2VydmljZShjb250ZXh0LCAwLCBpbnRlbnQsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlbmRpbmdJbnRlbnQuRkxBR19VUERBVEVfQ1VSUkVOVCk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIFJlbW90ZVZpZXdzIHZpZXdzID0gbmV3IFJlbW90ZVZpZXdzKGNvbnRleHQuZ2V0UGFja2FnZU5hbWUoKSwgUi5sYXlvdXQud2lkZ2V0X2xheW91dCk7CiAgICAgICAgICAgICAgICB2aWV3cy5zZXRPbkNsaWNrUGVuZGluZ0ludGVudChSLmlkLnNob3J0Y3V0X2ltZywgcGVuZGluZ19pbnRlbnQpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB3aWRnZXRfbWFuYWdlci51cGRhdGVBcHBXaWRnZXQoaWQsIHZpZXdzKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgSW50ZW50IGludGVudCA9IGdldExpZ2h0ZXJJbnRlbnQoY29udGV4dCwgQXBwV2lkZ2V0TWFuYWdlci5BQ1RJT05fQVBQV0lER0VUX1VQREFURSk7CiAgICAgICAgCiAgICAgICAgaW50ZW50LnB1dEV4dHJhKEFwcFdpZGdldE1hbmFnZXIuRVhUUkFfQVBQV0lER0VUX0lEUywgd2lkZ2V0X2lkcyk7CiAgICAgICAgY29udGV4dC5zdGFydFNlcnZpY2UoaW50ZW50KTsKfQo=