Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright 2013 Naver Business Platform Corp. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. /
 
 package com.handmark.pulltorefresh.configuration.xml;
 
 
 
 
PullToRefreshXmlConfiguration is an information set of PullToRefresh. It contains a list of indicator layouts and of loading layouts. An information set of PullToRefresh is converted from pulltorefresh.xml.
This Class is Singleton, and you MUST call init(android.content.Context) before using this class.

Author(s):
Wonjun Kim
 
 	
 	private static final String LOG_TAG = PullToRefreshXmlConfiguration.class.getName();

Singleton instance

Author(s):
Wonjun Kim
 
 	private static class InstanceHolder {
 		
 			return ;
 		}
 	} 
Parsed information from pulltorefresh.xml
 
 	private PullToRefreshNode node = null
Default pulltorefresh path id is got from R class.
 
 	private static final int XML_PATH_ID = ..;
flag whether it has called init(android.content.Context)
 
 	private boolean initialized = false;
Constructor
nothing to do
 
Get singleton instance

Returns:
PullToRefreshXmlConfiguration instance
 
 		return InstanceHolder.getInstance();
 	}
Initialize the instance before using.
Load 'res/xml/pulltorefresh.xml' in PullToRefresh library package and 'assets/pulltofresh.xml' in Android Project if it exists.
Combine information of 'res/xml/pulltorefresh.xml' and 'assets/pulltofresh.xml', and then save the information into the instance's fields.

NOTE: This method MUST be called before using!

Parameters:
context Context instance and not null
 
 	public void init(Context context) {
 		// If an initialization was happened already, skip.
 		if (  == true ) {
 			return;
 		}
 		Assert.notNull(context"Context");
 		// get resources
 		Resources resources = context.getResources();
 		// read the file
 		XmlPullParser parser = resources.getXml();
 		// parser the xml
 		XmlPullParserWrapper wrapper = new XmlPullParserWrapper(parser);
 		
 		try {
 			 = new PullToRefreshConfigXmlParser(wrapper).parse();
 
 			// load extended xml 
			XmlPullParser extendedXmlParser = ExtendedConfigXmlParserFactory.createParser(context);
			if ( extendedXmlParser != null) {
				XmlPullParserWrapper extendedXmlWrapper = new XmlPullParserWrapper(extendedXmlParser);
				// NOTE : if some exception is thrown from PullToRefreshConfigXmlParser, Loading extended xml will be skipped.
				PullToRefreshNode extendedNode = new PullToRefreshConfigXmlParser(extendedXmlWrapper).parse();
				.extendProperties(extendedNode);
			}
catch (XmlPullParserException e) {
			Log.d("It has failed to parse the xmlpullparser xml."e);
catch (IOException e) {
			Log.d("It has failed to parse the xmlpullparser xml.\n "e);
		}
		// Intialization can be done whether reading XML has failed or not! 
		 = true;
	}

Parameters:
layoutCode Layout name
Returns:
Layout Class name ( ex: com.handmark.pulltorefresh.library.internal.FlipLoadingLayout )
	public String getLoadingLayoutClazzName(String layoutCode) {
		if ( isNodeNull() ) {
			return null;
		}
		return .getLoadingLayoutClazzName(layoutCode);
	}

Parameters:
layoutCode Layout name
Returns:
Layout Class name ( ex: com.handmark.pulltorefresh.library.internal.DefaultLoadingLayout )
	public String getIndicatorLayoutClazzName(String layoutCode) {
		if ( isNodeNull() ) {
			return null;
		}
		return .getIndicatorLayoutClazzName(layoutCode);
	}

Parameters:
layoutCode Layout name
Returns:
Layout Class name ( ex: com.handmark.pulltorefresh.library.internal.DefaultGoogleStyleViewLayout )
		if ( isNodeNull() ) {
			return null;
		}
	}

Parameters:
layoutCode Layout name
Returns:
Layout Class name ( ex: com.handmark.pulltorefresh.library.internal.DefaultGoogleStyleProgressLayout )
		if ( isNodeNull() ) {
			return null;
		}
	}	

Returns:
true if node is null
	private boolean isNodeNull() {
		return  == null;
	}

Returns:
true if init(android.content.Context) method has not been called
	private boolean notInitialized() {
		return !;
	}

Returns:
throw an exception if init(android.content.Context) method has not been called
	private void assertInitialized() {
		if ( notInitialized() ) {
			throw new IllegalStateException(PullToRefreshXmlConfiguration.class.getName()+" has not initialized. Call init() method first.");
		}
	}
New to GrepCode? Check out our FAQ X