|  |  |  | @ -8,6 +8,10 @@ | 
			
		
	
		
			
				
					|  |  |  |  |  */ | 
			
		
	
		
			
				
					|  |  |  |  | package io.legado.app.lib.icu4j; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.ParcelFileDescriptor; | 
			
		
	
		
			
				
					|  |  |  |  | import android.system.OsConstants; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import androidx.annotation.NonNull; | 
			
		
	
		
			
				
					|  |  |  |  | import androidx.annotation.Nullable; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import java.io.IOException; | 
			
		
	
	
		
			
				
					|  |  |  | @ -88,13 +92,25 @@ public class CharsetDetector { | 
			
		
	
		
			
				
					|  |  |  |  |      * @return This CharsetDetector | 
			
		
	
		
			
				
					|  |  |  |  |      * @stable ICU 3.4 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     public CharsetDetector setText(byte[] in) { | 
			
		
	
		
			
				
					|  |  |  |  |     public CharsetDetector setText(@NonNull byte[] in) { | 
			
		
	
		
			
				
					|  |  |  |  |         fRawInput = in; | 
			
		
	
		
			
				
					|  |  |  |  |         fRawLength = in.length; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         return this; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public CharsetDetector setText(@NonNull ParcelFileDescriptor pfd) { | 
			
		
	
		
			
				
					|  |  |  |  |         fRawInput = new byte[kBufSize]; | 
			
		
	
		
			
				
					|  |  |  |  |         try { | 
			
		
	
		
			
				
					|  |  |  |  |             android.system.Os.lseek(pfd.getFileDescriptor(), 0, OsConstants.SEEK_SET); | 
			
		
	
		
			
				
					|  |  |  |  |             fRawLength = android.system.Os.read(pfd.getFileDescriptor(), fRawInput, 0, fRawInput.length); | 
			
		
	
		
			
				
					|  |  |  |  |             android.system.Os.lseek(pfd.getFileDescriptor(), 0, OsConstants.SEEK_SET); | 
			
		
	
		
			
				
					|  |  |  |  |         } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |  |             throw new RuntimeException(e); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         return this; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private static final int kBufSize = 8000; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
	
		
			
				
					|  |  |  | @ -111,7 +127,7 @@ public class CharsetDetector { | 
			
		
	
		
			
				
					|  |  |  |  |      * @stable ICU 3.4 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     public CharsetDetector setText(InputStream in) throws IOException { | 
			
		
	
		
			
				
					|  |  |  |  |     public CharsetDetector setText(@NonNull InputStream in) throws IOException { | 
			
		
	
		
			
				
					|  |  |  |  |         fInputStream = in; | 
			
		
	
		
			
				
					|  |  |  |  |         fInputStream.mark(kBufSize); | 
			
		
	
		
			
				
					|  |  |  |  |         fRawInput = new byte[kBufSize];   // Always make a new buffer because the
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |