private void importIdentity( boolean ownIdentity, String identityID, String requestURI, String insertURI, String nickname) { synchronized (mFreetalk.getTaskManager()) { synchronized (db.lock()) { try { Logger.normal(this, "Importing identity from WoT: " + requestURI); final WoTIdentity id = ownIdentity ? new WoTOwnIdentity( identityID, new FreenetURI(requestURI), new FreenetURI(insertURI), nickname) : new WoTIdentity(identityID, new FreenetURI(requestURI), nickname); id.initializeTransient(mFreetalk); id.storeWithoutCommit(); onNewIdentityAdded(id); if (ownIdentity) onNewOwnIdentityAdded((WoTOwnIdentity) id); id.checkedCommit(this); } catch (Exception e) { Persistent.checkedRollbackAndThrow(db, this, new RuntimeException(e)); } } } }
public synchronized WoTOwnIdentity createOwnIdentity( String newNickname, boolean publishesTrustList, boolean publishesIntroductionPuzzles, boolean autoSubscribeToNewBoards, boolean displayImages) throws Exception { Logger.normal(this, "Creating new own identity via FCP, nickname: " + newNickname); SimpleFieldSet params = new SimpleFieldSet(true); params.putOverwrite("Message", "CreateIdentity"); params.putOverwrite("Nickname", newNickname); params.putOverwrite("PublishTrustList", publishesTrustList ? "true" : "false"); params.putOverwrite( "PublishIntroductionPuzzles", publishesIntroductionPuzzles ? "true" : "false"); params.putOverwrite("Context", Freetalk.WOT_CONTEXT); PluginTalkerBlocking.Result result = sendFCPMessageBlocking(params, null, "IdentityCreated"); WoTOwnIdentity identity = new WoTOwnIdentity( result.params.get("ID"), new FreenetURI(result.params.get("RequestURI")), new FreenetURI(result.params.get("InsertURI")), newNickname, autoSubscribeToNewBoards, displayImages); identity.initializeTransient(mFreetalk); Logger.normal(this, "Created WoTOwnidentity via FCP, now storing... " + identity); synchronized (mFreetalk.getTaskManager()) { // Required by onNewOwnidentityAdded synchronized (db.lock()) { try { identity.initializeTransient(mFreetalk); identity.storeWithoutCommit(); onNewOwnIdentityAdded(identity); identity.checkedCommit(this); Logger.normal(this, "Stored new WoTOwnIdentity " + identity); } catch (RuntimeException e) { Persistent.checkedRollbackAndThrow(db, this, e); } } } return identity; }
private synchronized void deleteIdentity( WoTIdentity identity, MessageManager messageManager, PersistentTaskManager taskManager) { identity.initializeTransient(mFreetalk); beforeIdentityDeletion(identity); if (identity instanceof WoTOwnIdentity) beforeOwnIdentityDeletion((WoTOwnIdentity) identity); synchronized (identity) { synchronized (db.lock()) { try { identity.deleteWithoutCommit(); Logger.normal(this, "Identity deleted: " + identity); identity.checkedCommit(this); } catch (RuntimeException e) { Persistent.checkedRollbackAndThrow(db, this, e); } } } mShortestUniqueNicknameCacheNeedsUpdate = true; }