The source code

    /**
     * @class Ext.air.FileProvider
     * @extends Ext.state.Provider
     *
     * An Ext state provider implementation for Adobe AIR that stores state in the application
     * storage directory.
     *
     * @constructor
     * @param {Object} config
     */
    Ext.air.FileProvider = function(config){
        Ext.air.FileProvider.superclass.constructor.call(this);

    	this.defaultState = {
    		mainWindow : {
    			width:780,
    			height:580,
    			x:10,
    			y:10
    		}
    	};

        Ext.apply(this, config);
        this.state = this.readState();

    	var provider = this;
    	air.NativeApplication.nativeApplication.addEventListener('exiting', function(){
    		provider.saveState();
    	});
    };

    Ext.extend(Ext.air.FileProvider, Ext.state.Provider, {
    	/**
    	 * @cfg {String} file
    	 * The file name to use for the state file in the application storage directory
    	 */
    	file: 'extstate.data',

    	/**
    	 * @cfg {Object} defaultState
    	 * The default state if no state file can be found
    	 */
    	// private
        readState : function(){
    		var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);
    		if(!stateFile.exists){
    			return this.defaultState || {};
    		}

    		var stream = new air.FileStream();
    		stream.open(stateFile, air.FileMode.READ);

    		var stateData = stream.readObject();
    		stream.close();

    		return stateData || this.defaultState || {};
        },

        // private
        saveState : function(name, value){
            var stateFile = air.File.applicationStorageDirectory.resolvePath(this.file);
    		var stream = new air.FileStream();
    		stream.open(stateFile, air.FileMode.WRITE);
    		stream.writeObject(this.state);
    		stream.close();
        }
    });