diff --git a/src/com/android/keepass/Database.java b/src/com/android/keepass/Database.java index a27ce3d0b..30612d022 100644 --- a/src/com/android/keepass/Database.java +++ b/src/com/android/keepass/Database.java @@ -34,6 +34,7 @@ import org.phoneid.keepassj2me.ImporterV3; import org.phoneid.keepassj2me.PwEntry; import org.phoneid.keepassj2me.PwGroup; import org.phoneid.keepassj2me.PwManager; +import org.phoneid.keepassj2me.Types; import com.android.keepass.keepasslib.InvalidKeyFileException; import com.android.keepass.keepasslib.PwManagerOutput; @@ -136,7 +137,7 @@ public class Database { for (int i = 0; i < childEntries.size(); i++ ) { PwEntry cur = childEntries.elementAt(i); - gEntries.put(UUID.nameUUIDFromBytes(cur.uuid), new WeakReference(cur)); + gEntries.put(Types.bytestoUUID(cur.uuid), new WeakReference(cur)); } for (int i = 0; i < childGroups.size(); i++ ) { diff --git a/src/com/android/keepass/EntryActivity.java b/src/com/android/keepass/EntryActivity.java index a7b2d120a..bb7a468a6 100644 --- a/src/com/android/keepass/EntryActivity.java +++ b/src/com/android/keepass/EntryActivity.java @@ -26,6 +26,7 @@ import java.util.TimerTask; import java.util.UUID; import org.phoneid.keepassj2me.PwEntry; +import org.phoneid.keepassj2me.Types; import android.app.Activity; import android.content.Context; @@ -72,7 +73,7 @@ public class EntryActivity extends LockingActivity { setResult(KeePass.EXIT_NORMAL); Intent i = getIntent(); - UUID uuid = UUID.nameUUIDFromBytes(i.getByteArrayExtra(KEY_ENTRY)); + UUID uuid = Types.bytestoUUID(i.getByteArrayExtra(KEY_ENTRY)); mPos = i.getIntExtra(KEY_REFRESH_POS, -1); assert(uuid != null); diff --git a/src/com/android/keepass/EntryEditActivity.java b/src/com/android/keepass/EntryEditActivity.java index 1c58c1176..149660da6 100644 --- a/src/com/android/keepass/EntryEditActivity.java +++ b/src/com/android/keepass/EntryEditActivity.java @@ -25,6 +25,7 @@ import java.util.UUID; import org.phoneid.keepassj2me.PwEntry; import org.phoneid.keepassj2me.PwGroup; +import org.phoneid.keepassj2me.Types; import android.app.Activity; import android.app.ProgressDialog; @@ -84,7 +85,7 @@ public class EntryEditActivity extends LockingActivity { mIsNew = true; } else { - UUID uuid = UUID.nameUUIDFromBytes(uuidBytes); + UUID uuid = Types.bytestoUUID(uuidBytes); assert(uuid != null); mEntry = Database.gEntries.get(uuid).get(); diff --git a/src/com/android/keepass/PasswordActivity.java b/src/com/android/keepass/PasswordActivity.java index aabc25773..a97a6a48d 100644 --- a/src/com/android/keepass/PasswordActivity.java +++ b/src/com/android/keepass/PasswordActivity.java @@ -158,11 +158,6 @@ public class PasswordActivity extends Activity { Thread bkgLoad = new Thread(new BackgroundLoad(fileName, pass, key)); bkgLoad.start(); - /* - Database.LoadData(fileName, pass, key); - saveFileData(fileName, key); - GroupActivity.Launch(mAct, null); - */ } } @@ -260,7 +255,7 @@ public class PasswordActivity extends Activity { @Override public void run() { try { - Database.LoadData(mFileName, mPass, mKey); + Database.LoadData(PasswordActivity.this, mFileName, mPass, mKey); saveFileData(mFileName, mKey); uiHandler.post(new AfterLoad()); diff --git a/src/org/phoneid/keepassj2me/PwGroup.java b/src/org/phoneid/keepassj2me/PwGroup.java index 60c88b9c7..741c18270 100644 --- a/src/org/phoneid/keepassj2me/PwGroup.java +++ b/src/org/phoneid/keepassj2me/PwGroup.java @@ -42,7 +42,7 @@ import java.util.Vector; */ public class PwGroup { public PwGroup() { - } + } public String toString() { return name; diff --git a/src/org/phoneid/keepassj2me/Types.java b/src/org/phoneid/keepassj2me/Types.java index 50388b1dd..8825d19a7 100644 --- a/src/org/phoneid/keepassj2me/Types.java +++ b/src/org/phoneid/keepassj2me/Types.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.io.OutputStream; import java.util.Calendar; import java.util.Date; +import java.util.UUID; /** * Tools for slicing and dicing Java and KeePass data types. @@ -258,5 +259,21 @@ public class Types { return length; } - + + public static UUID bytestoUUID(byte[] buf) { + + long msb = 0; + for (int i = 0; i < 8; i++) { + msb = (msb << 8) | (buf[i] & 0xff); + } + + long lsb = 0; + for (int i = 8; i < 16; i++) { + lsb = (lsb << 8) | (buf[i] & 0xff); + } + + return new UUID(msb, lsb); + + } + }