1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

It has been 2 years now since I have joined AROMA Designs & Solutions, and I am proud to be the founder of a new Application Development Department which known as AROMA Systems ..

The Department is absolutely new to our world, it needs too much effort in order to evolve, but still, the very initial projects was nominated to Egypt Web Awards ..

Last Saturday I was invited to the Egypt Web Awards ceremony, and gladly we received 2 winning awards, a Golden award for graphicaroma.com in Advertising and Production category, and a Silver award for aromacreatives.com in Art and Design category ..

The beautiful part that the Golden website was my first project for the company, and was the key project for building a whole new department, it was the best event in my career so far ..

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

I had my older AIR 1.1 application which uses encrypted local store data for saving specific settings per user, today when the AIR runtime gets updated to version 1.5 my application turned to a total mess!
I’m using various classes in my simple application that might cause this issue as far as I thought, like loading CSS on runtime or loading conditional states and components depending on certain parameters retrieved at login ..
I spent a few hours hunting down what actually happened and at last I think I figured it out ..
The new AIR has 3 new features, encrypted local databases, Flash Player 10 capabilities and the new WebKit update, it seems that Adobe somehow has made a change regarding to how the AIR runtime read and write the encrypted local data, and a simple try and catch block of code just revealed the problem ..

The following example assumes that there is encrypted data stored using an older version of the application complied using AIR 1.1, and the application checks for a certain key for loading the perspective CSS file, since the new runtime may not able to read the older version of the encrypted data then it should throw an error, at this point I reset any previous saved data and load a default CSS file in order to bypass this issue when any client update to AIR 1.5

var skinBytes:ByteArray;
var styleEvent:IEventDispatcher;
try {
	skinBytes =  EncryptedLocalStore.getItem("skin");
	if (skinBytes != null) {
		styleEvent= StyleManager.loadStyleDeclarations("css/"+skinBytes.readUTFBytes(skinBytes.length)+".swf");
	} else {
		styleEvent = StyleManager.loadStyleDeclarations("css/black.swf");
	}
} catch(e:Error) {
	//Alert.show(e.message);
	EncryptedLocalStore.reset();
	styleEvent = StyleManager.loadStyleDeclarations("css/black.swf");
}

Well, this is not an intelligent solution at all, cause these saved data my be much more complicated and I should not force my user to have it all wiped out just for upgrading the runtime!
Anyway, I’m not sure if my conclusion about the encryption handling change between AIR 1.1 and 1.5, especially that Adobe didn’t mention anything regarding to this particular issue as fas as I know, but I thought that may be this help someone else experiencing the same problem when migrating his application to the new AIR runtime.