Hi I am developing a more complex app with sony sw2 I would like to show in the context menu an icon or another depending on with data arrives from Push notification, is there is any way to change the icon from the ExtensionServie?
Now the layout is defined in the RegistrationInformation class doing this
public ContentValues getSourceRegistrationConfiguration(String extensionSpecificId) {
ContentValues sourceValues = null;
String iconSource1 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_30x30_message_notification);
String iconSource2 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_message_notification);
String iconBw = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_black_white_message_notification);
String textToSpeech = mContext.getString(R.string.text_to_speech);
sourceValues = new ContentValues();
sourceValues.put(Notification.SourceColumns.ENABLED, true);
sourceValues.put(Notification.SourceColumns.ICON_URI_1, iconSource1);
sourceValues.put(Notification.SourceColumns.ICON_URI_2, iconSource2);
sourceValues.put(Notification.SourceColumns.ICON_URI_BLACK_WHITE, iconBw);
sourceValues.put(Notification.SourceColumns.UPDATE_TIME, System.currentTimeMillis());
sourceValues.put(Notification.SourceColumns.NAME, mContext.getString(R.string.source_name));
sourceValues.put(Notification.SourceColumns.EXTENSION_SPECIFIC_ID, extensionSpecificId);
sourceValues.put(Notification.SourceColumns.PACKAGE_NAME, mContext.getPackageName());
sourceValues.put(Notification.SourceColumns.TEXT_TO_SPEECH, textToSpeech);
sourceValues.put(Notification.SourceColumns.ACTION_1,
mContext.getString(R.string.action_event_1));
sourceValues.put(Notification.SourceColumns.ACTION_2,
mContext.getString(R.string.action_event_2));
sourceValues.put(Notification.SourceColumns.ACTION_3,
mContext.getString(R.string.action_event_3));
System.out.println("DRAWING");
System.out.println("DRAWING");
System.out.println("DRAWING");
System.out.println("DRAWING");
System.out.println("DRAWING");
sourceValues.put(Notification.SourceColumns.ACTION_ICON_1,
ExtensionUtils.getUriString(mContext, R.drawable.actions_1));
sourceValues.put(Notification.SourceColumns.ACTION_ICON_2,
ExtensionUtils.getUriString(mContext, R.drawable.actions_2));
sourceValues.put(Notification.SourceColumns.ACTION_ICON_3,
ExtensionUtils.getUriString(mContext, R.drawable.actions_3));
return sourceValues;
}
Is there any way to change that:
sourceValues.put(Notification.SourceColumns.ACTION_ICON_1,
ExtensionUtils.getUriString(mContext, R.drawable.actions_1));
sourceValues.put(Notification.SourceColumns.ACTION_ICON_2,
ExtensionUtils.getUriString(mContext, R.drawable.actions_2));
sourceValues.put(Notification.SourceColumns.ACTION_ICON_3,
ExtensionUtils.getUriString(mContext, R.drawable.actions_3));
to something like:
public ContentValues getSourceRegistrationConfiguration(
Boolean incident) {
System.out.println("K: register! "+incident.toString());
ContentValues sourceValues = null;
if (incident) {
System.out.println("CASE incident");
String iconSource1 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_30x30_message_notification);
String iconSource2 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_message_notification);
String iconBw = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_black_white_message_notification);
String textToSpeech = mContext.getString(R.string.text_to_speech);
sourceValues = new ContentValues();
sourceValues.put(Notification.SourceColumns.ENABLED, true);
sourceValues
.put(Notification.SourceColumns.ICON_URI_1, iconSource1);
sourceValues
.put(Notification.SourceColumns.ICON_URI_2, iconSource2);
sourceValues.put(Notification.SourceColumns.ICON_URI_BLACK_WHITE,
iconBw);
sourceValues.put(Notification.SourceColumns.UPDATE_TIME,
System.currentTimeMillis());
sourceValues.put(Notification.SourceColumns.NAME,
mContext.getString(R.string.source_name));
sourceValues.put(Notification.SourceColumns.EXTENSION_SPECIFIC_ID,
SampleExtensionService.EXTENSION_SPECIFIC_ID);
sourceValues.put(Notification.SourceColumns.PACKAGE_NAME,
mContext.getPackageName());
sourceValues.put(Notification.SourceColumns.TEXT_TO_SPEECH,
textToSpeech);
sourceValues.put(Notification.SourceColumns.ACTION_1,
mContext.getString(R.string.action_event_1));
sourceValues.put(Notification.SourceColumns.ACTION_2,
mContext.getString(R.string.action_event_2));
sourceValues.put(Notification.SourceColumns.ACTION_3,
mContext.getString(R.string.action_event_3));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_1,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_1));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_2,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_2));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_3,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_3));
} else {
System.out.println("CASE Contract");
String iconSource1 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_30x30_message_notification);
String iconSource2 = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_message_notification);
String iconBw = ExtensionUtils.getUriString(mContext,
R.drawable.icn_18x18_black_white_message_notification);
String textToSpeech = mContext.getString(R.string.text_to_speech);
sourceValues = new ContentValues();
sourceValues.put(Notification.SourceColumns.ENABLED, true);
sourceValues
.put(Notification.SourceColumns.ICON_URI_1, iconSource1);
sourceValues
.put(Notification.SourceColumns.ICON_URI_2, iconSource2);
sourceValues.put(Notification.SourceColumns.ICON_URI_BLACK_WHITE,
iconBw);
sourceValues.put(Notification.SourceColumns.UPDATE_TIME,
System.currentTimeMillis());
sourceValues.put(Notification.SourceColumns.NAME,
mContext.getString(R.string.source_name));
sourceValues.put(Notification.SourceColumns.EXTENSION_SPECIFIC_ID,
SampleExtensionService.EXTENSION_SPECIFIC_ID);
sourceValues.put(Notification.SourceColumns.PACKAGE_NAME,
mContext.getPackageName());
sourceValues.put(Notification.SourceColumns.TEXT_TO_SPEECH,
textToSpeech);
sourceValues.put(Notification.SourceColumns.ACTION_1,
mContext.getString(R.string.action_event_1));
sourceValues.put(Notification.SourceColumns.ACTION_2,
mContext.getString(R.string.action_event_2));
sourceValues.put(Notification.SourceColumns.ACTION_3,
mContext.getString(R.string.action_event_3));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_1,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_3));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_2,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_4));
sourceValues
.put(Notification.SourceColumns.ACTION_ICON_3,
ExtensionUtils.getUriString(mContext,
R.drawable.actions_5));
}
return sourceValues;
}
I think once the UI is drawed you cannot change it, because although that code is called the ui never change correctly, am I wrong?