@@ -51,6 +51,8 @@ public class MultiStateLayout extends FrameLayout {
5151 private int mLoadingResId ;
5252 private int mNetworkErrorResId ;
5353
54+ private LayoutInflater mInflater ;
55+
5456 @ IntDef ({State .CONTENT , State .EMPTY , State .LOADING , State .ERROR , State .NETWORK_ERROR })
5557 @ Retention (RetentionPolicy .SOURCE )
5658 public @interface State {
@@ -89,6 +91,8 @@ private void init(AttributeSet attrs) {
8991 mLoadingResId = ta .getResourceId (R .styleable .MultiStateLayout_loading_layout , getCommonLayoutResIdByState (State .LOADING ));
9092 mNetworkErrorResId = ta .getResourceId (R .styleable .MultiStateLayout_network_error_layout , getCommonLayoutResIdByState (State .NETWORK_ERROR ));
9193 ta .recycle ();
94+
95+ mInflater = LayoutInflater .from (getContext ());
9296 }
9397
9498 @ Override
@@ -131,6 +135,7 @@ public void setState(@State int state) {
131135 *
132136 * @param resId layout
133137 */
138+ @ SuppressWarnings ("unused" )
134139 public void setEmptyView (@ LayoutRes int resId ) {
135140 if (null != mEmptyView ) {
136141 removeView (mEmptyView );
@@ -144,6 +149,7 @@ public void setEmptyView(@LayoutRes int resId) {
144149 *
145150 * @param emptyView view
146151 */
152+ @ SuppressWarnings ("unused" )
147153 public void setEmptyView (View emptyView ) {
148154 removeView (mEmptyView );
149155 mEmptyView = emptyView ;
@@ -156,10 +162,11 @@ public void setEmptyView(View emptyView) {
156162 *
157163 * @return view
158164 */
165+ @ SuppressWarnings ("unused" )
159166 public View getEmptyView () {
160167 if (null == mEmptyView ) {
161168 if (mEmptyResId > -1 ) {
162- mEmptyView = LayoutInflater . from ( getContext ()) .inflate (mEmptyResId , this , false );
169+ mEmptyView = mInflater .inflate (mEmptyResId , this , false );
163170 addView (mEmptyView , mEmptyView .getLayoutParams ());
164171 mEmptyView .setVisibility (GONE );
165172 }
@@ -172,6 +179,7 @@ public View getEmptyView() {
172179 *
173180 * @param resId layout
174181 */
182+ @ SuppressWarnings ("unused" )
175183 public void setLoadingView (@ LayoutRes int resId ) {
176184 if (null != mLoadingView ) {
177185 removeView (mLoadingView );
@@ -185,6 +193,7 @@ public void setLoadingView(@LayoutRes int resId) {
185193 *
186194 * @param loadingView view
187195 */
196+ @ SuppressWarnings ("unused" )
188197 public void setLoadingView (View loadingView ) {
189198 removeView (mLoadingView );
190199 mLoadingView = loadingView ;
@@ -197,10 +206,11 @@ public void setLoadingView(View loadingView) {
197206 *
198207 * @return view
199208 */
209+ @ SuppressWarnings ("unused" )
200210 public View getLoadingView () {
201211 if (null == mLoadingView ) {
202212 if (mLoadingResId > -1 ) {
203- mLoadingView = LayoutInflater . from ( getContext ()) .inflate (mLoadingResId , this , false );
213+ mLoadingView = mInflater .inflate (mLoadingResId , this , false );
204214 addView (mLoadingView , mLoadingView .getLayoutParams ());
205215 mLoadingView .setVisibility (GONE );
206216 }
@@ -213,6 +223,7 @@ public View getLoadingView() {
213223 *
214224 * @param resId layout
215225 */
226+ @ SuppressWarnings ("unused" )
216227 public void setErrorView (@ LayoutRes int resId ) {
217228 if (null != mErrorView ) {
218229 removeView (mErrorView );
@@ -226,6 +237,7 @@ public void setErrorView(@LayoutRes int resId) {
226237 *
227238 * @param errorView view
228239 */
240+ @ SuppressWarnings ("unused" )
229241 public void setErrorView (View errorView ) {
230242 removeView (mErrorView );
231243 mErrorView = errorView ;
@@ -238,10 +250,11 @@ public void setErrorView(View errorView) {
238250 *
239251 * @return view
240252 */
253+ @ SuppressWarnings ("unused" )
241254 public View getErrorView () {
242255 if (null == mErrorView ) {
243256 if (mErrorResId > -1 ) {
244- mErrorView = LayoutInflater . from ( getContext ()) .inflate (mErrorResId , this , false );
257+ mErrorView = mInflater .inflate (mErrorResId , this , false );
245258 addView (mErrorView , mErrorView .getLayoutParams ());
246259 mErrorView .setVisibility (GONE );
247260 }
@@ -254,6 +267,7 @@ public View getErrorView() {
254267 *
255268 * @param resId layout
256269 */
270+ @ SuppressWarnings ("unused" )
257271 public void setNetworkErrorView (@ LayoutRes int resId ) {
258272 if (null != mNetworkErrorView ) {
259273 removeView (mNetworkErrorView );
@@ -267,6 +281,7 @@ public void setNetworkErrorView(@LayoutRes int resId) {
267281 *
268282 * @param networkErrorView view
269283 */
284+ @ SuppressWarnings ("unused" )
270285 public void setNetworkErrorView (View networkErrorView ) {
271286 removeView (mNetworkErrorView );
272287 mNetworkErrorView = networkErrorView ;
@@ -279,10 +294,11 @@ public void setNetworkErrorView(View networkErrorView) {
279294 *
280295 * @return view
281296 */
297+ @ SuppressWarnings ("unused" )
282298 public View getNetworkErrorView () {
283299 if (null == mNetworkErrorView ) {
284300 if (mNetworkErrorResId > -1 ) {
285- mNetworkErrorView = LayoutInflater . from ( getContext ()) .inflate (mNetworkErrorResId , this , false );
301+ mNetworkErrorView = mInflater .inflate (mNetworkErrorResId , this , false );
286302 addView (mNetworkErrorView , mNetworkErrorView .getLayoutParams ());
287303 mNetworkErrorView .setVisibility (GONE );
288304 }
@@ -363,11 +379,13 @@ private void showContentView() {
363379 */
364380 private void showEmptyView () {
365381 if (null == mEmptyView && mEmptyResId > -1 ) {
366- mEmptyView = LayoutInflater . from ( getContext ()) .inflate (mEmptyResId , this , false );
382+ mEmptyView = mInflater .inflate (mEmptyResId , this , false );
367383 addView (mEmptyView , mEmptyView .getLayoutParams ());
368384 }
369385 if (null != mEmptyView ) {
370386 mEmptyView .setVisibility (VISIBLE );
387+ } else {
388+ throw new NullPointerException ("Expect to have an empty view." );
371389 }
372390 }
373391
@@ -376,11 +394,13 @@ private void showEmptyView() {
376394 */
377395 private void showLoadingView () {
378396 if (null == mLoadingView && mLoadingResId > -1 ) {
379- mLoadingView = LayoutInflater . from ( getContext ()) .inflate (mLoadingResId , this , false );
397+ mLoadingView = mInflater .inflate (mLoadingResId , this , false );
380398 addView (mLoadingView , mLoadingView .getLayoutParams ());
381399 }
382400 if (null != mLoadingView ) {
383401 mLoadingView .setVisibility (VISIBLE );
402+ } else {
403+ throw new NullPointerException ("Expect to have an loading view." );
384404 }
385405 }
386406
@@ -389,11 +409,13 @@ private void showLoadingView() {
389409 */
390410 private void showErrorView () {
391411 if (null == mErrorView && mErrorResId > -1 ) {
392- mErrorView = LayoutInflater . from ( getContext ()) .inflate (mErrorResId , this , false );
412+ mErrorView = mInflater .inflate (mErrorResId , this , false );
393413 addView (mErrorView , mErrorView .getLayoutParams ());
394414 }
395415 if (null != mErrorView ) {
396416 mErrorView .setVisibility (VISIBLE );
417+ } else {
418+ throw new NullPointerException ("Expect to have one error view." );
397419 }
398420 }
399421
@@ -402,11 +424,13 @@ private void showErrorView() {
402424 */
403425 private void showNetworkErrorView () {
404426 if (null == mNetworkErrorView && mNetworkErrorResId > -1 ) {
405- mNetworkErrorView = LayoutInflater . from ( getContext ()) .inflate (mNetworkErrorResId , this , false );
427+ mNetworkErrorView = mInflater .inflate (mNetworkErrorResId , this , false );
406428 addView (mNetworkErrorView , mNetworkErrorView .getLayoutParams ());
407429 }
408430 if (null != mNetworkErrorView ) {
409431 mNetworkErrorView .setVisibility (VISIBLE );
432+ } else {
433+ throw new NullPointerException ("Expect to have one network error view." );
410434 }
411435 }
412436
0 commit comments