As I have a need for freezing versions of a tiny app (my file explorer) I wrote an AndroidScript app to do this for me.
It currently has the specific app detail hard-coded but it would be really simple to extend it to work with any app that is made up of only text files.
An spk of the app is at http://hudl.sgarman.net/public/spk/version.spk
The code looks like:
var srceName = "xplorer"; var destStem = "SJGexplorer_"; var minVersion = 3; var appsPath = "/sdcard/AndroidScript"; var srcePath; var destName; var destPath; //saves current version of app //only currently works with app in one file //Called when application is started. function OnStart() { if( destStem == "" ) destStem = srceName + "_"; //Create a layout with objects vertically centered. lay = app.CreateLayout( "linear", "FillXY" ); //Create a text label and add it to layout. txt = app.CreateText( "Freeze latest version" ); txt.SetTextSize( 32 ); lay.AddChild( txt ); //Add layout to app. app.AddLayout( lay ); //make sure source app exists srcePath = appsPath + "/" + srceName; if( ! app.FolderExists(srcePath) ){ alert( srcePath + " does not exist" ); app.Exit(); } //get next available destination app name; destName = nextAvailable( appsPath, destStem ); destPath = appsPath + "/" + destName; //check if user wants to continue var quest = "Copy " + srceName + " to " + destName + "?"; var yesNo = app.CreateYesNoDialog( quest ); yesNo.SetOnTouch( yesNo_OnTouch ); } function nextAvailable( path, stem ){ //get next available app name var filename for (i = minVersion; i < 1000; i++) { filename = stem + ("00" + i ).slice (-3) if( ! app.FolderExists ( path + "/" + filename ) ) return( filename ); } //no number available return undefined } function yesNo_OnTouch( result ){ if( result=="Yes" ) doCopy(); else app.Exit(); }
No comments:
Post a Comment