ADD week 5
This commit is contained in:
		
							
								
								
									
										239
									
								
								02-Easy5/E5/sources/androidx/loader/content/Loader.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								02-Easy5/E5/sources/androidx/loader/content/Loader.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,239 @@ | ||||
| package androidx.loader.content; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.database.ContentObserver; | ||||
| import android.os.Handler; | ||||
| import androidx.core.util.DebugUtils; | ||||
| import java.io.FileDescriptor; | ||||
| import java.io.PrintWriter; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class Loader<D> { | ||||
|     Context mContext; | ||||
|     int mId; | ||||
|     OnLoadCompleteListener<D> mListener; | ||||
|     OnLoadCanceledListener<D> mOnLoadCanceledListener; | ||||
|     boolean mStarted = false; | ||||
|     boolean mAbandoned = false; | ||||
|     boolean mReset = true; | ||||
|     boolean mContentChanged = false; | ||||
|     boolean mProcessingChange = false; | ||||
|  | ||||
|     public interface OnLoadCanceledListener<D> { | ||||
|         void onLoadCanceled(Loader<D> loader); | ||||
|     } | ||||
|  | ||||
|     public interface OnLoadCompleteListener<D> { | ||||
|         void onLoadComplete(Loader<D> loader, D d); | ||||
|     } | ||||
|  | ||||
|     public void commitContentChanged() { | ||||
|         this.mProcessingChange = false; | ||||
|     } | ||||
|  | ||||
|     public Context getContext() { | ||||
|         return this.mContext; | ||||
|     } | ||||
|  | ||||
|     public int getId() { | ||||
|         return this.mId; | ||||
|     } | ||||
|  | ||||
|     public boolean isAbandoned() { | ||||
|         return this.mAbandoned; | ||||
|     } | ||||
|  | ||||
|     public boolean isReset() { | ||||
|         return this.mReset; | ||||
|     } | ||||
|  | ||||
|     public boolean isStarted() { | ||||
|         return this.mStarted; | ||||
|     } | ||||
|  | ||||
|     protected void onAbandon() { | ||||
|     } | ||||
|  | ||||
|     protected boolean onCancelLoad() { | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     protected void onForceLoad() { | ||||
|     } | ||||
|  | ||||
|     protected void onReset() { | ||||
|     } | ||||
|  | ||||
|     protected void onStartLoading() { | ||||
|     } | ||||
|  | ||||
|     protected void onStopLoading() { | ||||
|     } | ||||
|  | ||||
|     public boolean takeContentChanged() { | ||||
|         boolean z = this.mContentChanged; | ||||
|         this.mContentChanged = false; | ||||
|         this.mProcessingChange |= z; | ||||
|         return z; | ||||
|     } | ||||
|  | ||||
|     public final class ForceLoadContentObserver extends ContentObserver { | ||||
|         @Override // android.database.ContentObserver | ||||
|         public boolean deliverSelfNotifications() { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         public ForceLoadContentObserver() { | ||||
|             super(new Handler()); | ||||
|         } | ||||
|  | ||||
|         @Override // android.database.ContentObserver | ||||
|         public void onChange(boolean z) { | ||||
|             Loader.this.onContentChanged(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public Loader(Context context) { | ||||
|         this.mContext = context.getApplicationContext(); | ||||
|     } | ||||
|  | ||||
|     public void deliverResult(D d) { | ||||
|         OnLoadCompleteListener<D> onLoadCompleteListener = this.mListener; | ||||
|         if (onLoadCompleteListener != null) { | ||||
|             onLoadCompleteListener.onLoadComplete(this, d); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void deliverCancellation() { | ||||
|         OnLoadCanceledListener<D> onLoadCanceledListener = this.mOnLoadCanceledListener; | ||||
|         if (onLoadCanceledListener != null) { | ||||
|             onLoadCanceledListener.onLoadCanceled(this); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void registerListener(int i, OnLoadCompleteListener<D> onLoadCompleteListener) { | ||||
|         if (this.mListener != null) { | ||||
|             throw new IllegalStateException("There is already a listener registered"); | ||||
|         } | ||||
|         this.mListener = onLoadCompleteListener; | ||||
|         this.mId = i; | ||||
|     } | ||||
|  | ||||
|     public void unregisterListener(OnLoadCompleteListener<D> onLoadCompleteListener) { | ||||
|         OnLoadCompleteListener<D> onLoadCompleteListener2 = this.mListener; | ||||
|         if (onLoadCompleteListener2 == null) { | ||||
|             throw new IllegalStateException("No listener register"); | ||||
|         } | ||||
|         if (onLoadCompleteListener2 != onLoadCompleteListener) { | ||||
|             throw new IllegalArgumentException("Attempting to unregister the wrong listener"); | ||||
|         } | ||||
|         this.mListener = null; | ||||
|     } | ||||
|  | ||||
|     public void registerOnLoadCanceledListener(OnLoadCanceledListener<D> onLoadCanceledListener) { | ||||
|         if (this.mOnLoadCanceledListener != null) { | ||||
|             throw new IllegalStateException("There is already a listener registered"); | ||||
|         } | ||||
|         this.mOnLoadCanceledListener = onLoadCanceledListener; | ||||
|     } | ||||
|  | ||||
|     public void unregisterOnLoadCanceledListener(OnLoadCanceledListener<D> onLoadCanceledListener) { | ||||
|         OnLoadCanceledListener<D> onLoadCanceledListener2 = this.mOnLoadCanceledListener; | ||||
|         if (onLoadCanceledListener2 == null) { | ||||
|             throw new IllegalStateException("No listener register"); | ||||
|         } | ||||
|         if (onLoadCanceledListener2 != onLoadCanceledListener) { | ||||
|             throw new IllegalArgumentException("Attempting to unregister the wrong listener"); | ||||
|         } | ||||
|         this.mOnLoadCanceledListener = null; | ||||
|     } | ||||
|  | ||||
|     public final void startLoading() { | ||||
|         this.mStarted = true; | ||||
|         this.mReset = false; | ||||
|         this.mAbandoned = false; | ||||
|         onStartLoading(); | ||||
|     } | ||||
|  | ||||
|     public boolean cancelLoad() { | ||||
|         return onCancelLoad(); | ||||
|     } | ||||
|  | ||||
|     public void forceLoad() { | ||||
|         onForceLoad(); | ||||
|     } | ||||
|  | ||||
|     public void stopLoading() { | ||||
|         this.mStarted = false; | ||||
|         onStopLoading(); | ||||
|     } | ||||
|  | ||||
|     public void abandon() { | ||||
|         this.mAbandoned = true; | ||||
|         onAbandon(); | ||||
|     } | ||||
|  | ||||
|     public void reset() { | ||||
|         onReset(); | ||||
|         this.mReset = true; | ||||
|         this.mStarted = false; | ||||
|         this.mAbandoned = false; | ||||
|         this.mContentChanged = false; | ||||
|         this.mProcessingChange = false; | ||||
|     } | ||||
|  | ||||
|     public void rollbackContentChanged() { | ||||
|         if (this.mProcessingChange) { | ||||
|             onContentChanged(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void onContentChanged() { | ||||
|         if (this.mStarted) { | ||||
|             forceLoad(); | ||||
|         } else { | ||||
|             this.mContentChanged = true; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public String dataToString(D d) { | ||||
|         StringBuilder sb = new StringBuilder(64); | ||||
|         DebugUtils.buildShortClassTag(d, sb); | ||||
|         sb.append("}"); | ||||
|         return sb.toString(); | ||||
|     } | ||||
|  | ||||
|     public String toString() { | ||||
|         StringBuilder sb = new StringBuilder(64); | ||||
|         DebugUtils.buildShortClassTag(this, sb); | ||||
|         sb.append(" id="); | ||||
|         sb.append(this.mId); | ||||
|         sb.append("}"); | ||||
|         return sb.toString(); | ||||
|     } | ||||
|  | ||||
|     @Deprecated | ||||
|     public void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr) { | ||||
|         printWriter.print(str); | ||||
|         printWriter.print("mId="); | ||||
|         printWriter.print(this.mId); | ||||
|         printWriter.print(" mListener="); | ||||
|         printWriter.println(this.mListener); | ||||
|         if (this.mStarted || this.mContentChanged || this.mProcessingChange) { | ||||
|             printWriter.print(str); | ||||
|             printWriter.print("mStarted="); | ||||
|             printWriter.print(this.mStarted); | ||||
|             printWriter.print(" mContentChanged="); | ||||
|             printWriter.print(this.mContentChanged); | ||||
|             printWriter.print(" mProcessingChange="); | ||||
|             printWriter.println(this.mProcessingChange); | ||||
|         } | ||||
|         if (this.mAbandoned || this.mReset) { | ||||
|             printWriter.print(str); | ||||
|             printWriter.print("mAbandoned="); | ||||
|             printWriter.print(this.mAbandoned); | ||||
|             printWriter.print(" mReset="); | ||||
|             printWriter.println(this.mReset); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user