<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: AIR: Encrypted local storage and Update framework</title>
	<atom:link href="http://corlan.org/2008/09/18/air-encrypted-local-storage-and-update-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://corlan.org/2008/09/18/air-encrypted-local-storage-and-update-framework/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=air-encrypted-local-storage-and-update-framework</link>
	<description>Flex, AIR and Rock&#38;Roll</description>
	<lastBuildDate>Thu, 09 Sep 2010 00:42:32 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Rostislav Siryk</title>
		<link>http://corlan.org/2008/09/18/air-encrypted-local-storage-and-update-framework/comment-page-1/#comment-1018</link>
		<dc:creator>Rostislav Siryk</dc:creator>
		<pubDate>Tue, 14 Oct 2008 16:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://corlan.org/?p=199#comment-1018</guid>
		<description>Thank you for the response, Mihai! 

Yes, we keep in mind that possibility, but strive to keep everything automatic where we can :)

In our particular case, we came to a solution, which works in my tests now (our QA will let me know better does it really work as requested).

So, our task is: detect the case when application is re-installed (installed after uninstall, the same version) and perform some actions, e.g. say to user: &quot;Welcome back!&quot; (actually, customer requested us to clean ELS in this case).

Solution is: to compare time of application install with application last run time.

In details:

1. At runtime, get app install time from applicationDirectory.modificationTime.

2. If ELS has variable &#039;lastRunTime&#039;, get it too and:

2.1 Compare these values. If last run time is less than application install time, than our app was reinstalled and we can do our special actions. Else, we run in normal mode.

This is the logic which can be unclear for someone who are going to maintain the code, but it seems to work :)

Thank you,
Rost</description>
		<content:encoded><![CDATA[<p>Thank you for the response, Mihai! </p>
<p>Yes, we keep in mind that possibility, but strive to keep everything automatic where we can :)</p>
<p>In our particular case, we came to a solution, which works in my tests now (our QA will let me know better does it really work as requested).</p>
<p>So, our task is: detect the case when application is re-installed (installed after uninstall, the same version) and perform some actions, e.g. say to user: &#8220;Welcome back!&#8221; (actually, customer requested us to clean ELS in this case).</p>
<p>Solution is: to compare time of application install with application last run time.</p>
<p>In details:</p>
<p>1. At runtime, get app install time from applicationDirectory.modificationTime.</p>
<p>2. If ELS has variable &#8216;lastRunTime&#8217;, get it too and:</p>
<p>2.1 Compare these values. If last run time is less than application install time, than our app was reinstalled and we can do our special actions. Else, we run in normal mode.</p>
<p>This is the logic which can be unclear for someone who are going to maintain the code, but it seems to work :)</p>
<p>Thank you,<br />
Rost</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mihai Corlan</title>
		<link>http://corlan.org/2008/09/18/air-encrypted-local-storage-and-update-framework/comment-page-1/#comment-1014</link>
		<dc:creator>Mihai Corlan</dc:creator>
		<pubDate>Tue, 14 Oct 2008 12:34:37 +0000</pubDate>
		<guid isPermaLink="false">http://corlan.org/?p=199#comment-1014</guid>
		<description>Yes Rost, this is a problem indeed. When you unistall an application the user data remain on the disk.

To your specific problem, for now I have only one solution. To create an uninstall procedure in the AIR application that does that: delete all the user data wrote by the application. And then the user uninstall the app from the disk. But this approach relies heavily on the user (he start the unistall in the AIR before he unistall the app from system).</description>
		<content:encoded><![CDATA[<p>Yes Rost, this is a problem indeed. When you unistall an application the user data remain on the disk.</p>
<p>To your specific problem, for now I have only one solution. To create an uninstall procedure in the AIR application that does that: delete all the user data wrote by the application. And then the user uninstall the app from the disk. But this approach relies heavily on the user (he start the unistall in the AIR before he unistall the app from system).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rostislav Siryk</title>
		<link>http://corlan.org/2008/09/18/air-encrypted-local-storage-and-update-framework/comment-page-1/#comment-1010</link>
		<dc:creator>Rostislav Siryk</dc:creator>
		<pubDate>Tue, 14 Oct 2008 11:44:24 +0000</pubDate>
		<guid isPermaLink="false">http://corlan.org/?p=199#comment-1010</guid>
		<description>Mihai, 

approach you propose seems to be really only one possible.

If I understood you correctly, update detection is performed in &#039;old version&#039; just when app checks for updates. So, app have a chance to detect the next installation.

But it has some limitations. If user just uninstalls the application using standard system tools and then installs new version again, application can&#039;t detect it by itself and so isn&#039;t able to make this trick with local storage.

It seems it is very hard to overcome such issues without having real install / uninstall events in the AIR framework. While there&#039;s no such events, developers should invent workarounds to detect such user actions by saving special version files in the application directory and then checking them each time application is run. What do you think, is this possible to have uninstall event in the future version of AIR Runtime?

Here&#039;s the another example, where such event is strongly needed: my customer asked me to clear user-sensitive data when AIR App is uninstalled. But there&#039;s no way to do it now...</description>
		<content:encoded><![CDATA[<p>Mihai, </p>
<p>approach you propose seems to be really only one possible.</p>
<p>If I understood you correctly, update detection is performed in &#8216;old version&#8217; just when app checks for updates. So, app have a chance to detect the next installation.</p>
<p>But it has some limitations. If user just uninstalls the application using standard system tools and then installs new version again, application can&#8217;t detect it by itself and so isn&#8217;t able to make this trick with local storage.</p>
<p>It seems it is very hard to overcome such issues without having real install / uninstall events in the AIR framework. While there&#8217;s no such events, developers should invent workarounds to detect such user actions by saving special version files in the application directory and then checking them each time application is run. What do you think, is this possible to have uninstall event in the future version of AIR Runtime?</p>
<p>Here&#8217;s the another example, where such event is strongly needed: my customer asked me to clear user-sensitive data when AIR App is uninstalled. But there&#8217;s no way to do it now&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
