status(su, "Fetched albums");
status(su, StatusUpdate.LEVEL_BACKGROUND, "Fetched albums");
		private void list20() throws IOException, ModuleException {			// setup the protocol parameters			NVPair form_data[] = {				new NVPair("cmd", "fetch-albums"),				new NVPair("protocol_version", PROTOCOL_VERSION )			};			Log.log(Log.TRACE, MODULE, "fetchAlbums parameters: " + Arrays.asList(form_data));			// load and validate the response			Properties p = requestResponse( form_data );			if ( p.getProperty( "status" ).equals(GR_STAT_SUCCESS) ) {				ArrayList mAlbumList = new ArrayList();				// parse and store the data				int albumCount = Integer.parseInt( p.getProperty( "album_count" ) );//	System.err.println( "### albumCount = " + albumCount );				HashMap ref2parKey = new HashMap();				HashMap ref2album = new HashMap();				for ( int i = 1; i < albumCount + 1; i++ ) {					Album a = new Album();					String nameKey = "album.name." + i;					String titleKey = "album.title." + i;					String parentKey = "album.parent." + i;					String permsAddKey = "album.perms.add." + i;					String permsWriteKey = "album.perms.write." + i;					String permsDelItemKey = "album.perms.del_item." + i;					String permsDelAlbKey = "album.perms.del_alb." + i;					String permsCreateSubKey = "album.perms.create_sub." + i;					String infoExtraFieldsKey = "album.info.extrafields." + i;					a.setCanAdd( isTrue( p.getProperty( permsAddKey ) ) );					a.setCanWrite( isTrue( p.getProperty( permsWriteKey ) ) );					a.setCanDeleteFrom( isTrue( p.getProperty( permsDelItemKey ) ) );					a.setCanDeleteThisAlbum( isTrue( p.getProperty( permsDelAlbKey ) ) );					a.setCanCreateSubAlbum( isTrue( p.getProperty( permsCreateSubKey ) ) );					a.setExtraFieldsString( p.getProperty( infoExtraFieldsKey ) );					a.setName( p.getProperty( nameKey ) );					a.setTitle( p.getProperty( titleKey ) );					a.setGallery( g );					mAlbumList.add( a );					// map album ref nums to albums					ref2album.put( "" + i, a );					// map album refs to parent refs					String parentRefS = p.getProperty( parentKey );					int parentRef = Integer.parseInt( parentRefS );					if ( parentRef != 0 ) {						ref2parKey.put( "" + i, parentRefS );					}				}				// link albums to parents				for ( int i = 1; i < albumCount + 1; i++ ) {					String parentKey = (String)ref2parKey.get( "" + i );					if ( parentKey != null ) {						Album a = (Album)ref2album.get( "" + i );						if ( a == null ) {						}						Album pa = (Album)ref2album.get( parentKey );						a.setParentAlbum( pa );					}				}				status(su, "Fetched albums");				g.setAlbumList(mAlbumList);			} else {				error(su, "Error: " + p.getProperty( "status_text" ));			}		}