public abstract void add_card(IdCard card);
public abstract void remove_card(IdCard card);
- public abstract void update_card(IdCard card);
+ public abstract IdCard? update_card(IdCard card);
public abstract StoreType get_store_type();
public abstract LinkedList<IdCard> get_card_list();
}
card_list_changed();
}
- public void update_card(IdCard card) {
+ public IdCard update_card(IdCard card) {
+ IdCard retval;
if (!card.store_password)
password_table.CachePassword(card, store);
else
password_table.RemovePassword(card, store);
- store.update_card(card);
+ retval = store.update_card(card);
card_list_changed();
+ return retval;
}
public void remove_card(IdCard card) {
this.request_queue.push_tail (request);
}
- public void check_add_password(IdCard identity, IdentityRequest request, IdentityManagerModel model)
+ public IdCard check_add_password(IdCard identity, IdentityRequest request, IdentityManagerModel model)
{
+ IdCard retval = identity;
if ((identity.password == "") && !identity.IsNoIdentity())
{
var dialog = new AddPasswordDialog (identity, request);
case ResponseType.OK:
identity.password = dialog.password;
identity.store_password = dialog.remember;
- model.update_card(identity);
+ retval = model.update_card(identity);
break;
default:
identity = null;
dialog.destroy ();
}
+ return retval;
}
public void send_identity_cb (IdCard identity)
Idle.add(
() => {
if (view != null) {
- view.check_add_password(identity, request, model);
+ identity = view.check_add_password(identity, request, model);
}
request.return_identity (identity);
// The following occasionally causes the app to exit without sending the dbus
services[id_card.services.length] = this.service;
id_card.services = services;
- this.parent_app.model.update_card (id_card);
+ this.id_card = this.parent_app.model.update_card (id_card);
}
}
store_id_cards ();
}
- public void update_card(IdCard card) {
+ public IdCard? update_card(IdCard card) {
id_card_list.remove(card);
id_card_list.add(card);
store_id_cards ();
+ foreach (IdCard idcard in id_card_list)
+ if (idcard.display_name == card.display_name)
+ return idcard;
+ return null;
}
public void remove_card(IdCard card) {
store_id_cards ();
}
- public void update_card(IdCard card) {
+ public IdCard? update_card(IdCard card) {
id_card_list.remove(card);
id_card_list.add(card);
store_id_cards ();
+ foreach(IdCard idcard in id_card_list)
+ if (idcard.display_name == card.display_name)
+ return idcard;
+ return null;
}
public void remove_card(IdCard card) {