.class Lren/yale/android/cachewebviewlib/ResourseInputStream; .super Ljava/io/InputStream; .source "ResourseInputStream.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lren/yale/android/cachewebviewlib/ResourseInputStream$IWriteFinish; } .end annotation # instance fields .field private mCurrenReadLength:I .field private mEditorContent:Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor; .field private mEncode:Ljava/lang/String; .field private mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; .field private mInnerInputStream:Ljava/io/InputStream; .field private mLruCache:Landroid/util/LruCache; .field private mOutputStream:Ljava/io/OutputStream; .field private mOutputStreamAllProperty:Ljava/io/OutputStream; .field private mOutputStreamProperty:Ljava/io/OutputStream; .field private mRamArray:Ljava/io/ByteArrayOutputStream; .field private mStaticRes:Lren/yale/android/cachewebviewlib/StaticRes; .field private mUrl:Ljava/lang/String; # direct methods .method public constructor (Ljava/lang/String;Ljava/io/InputStream;Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;Lren/yale/android/cachewebviewlib/HttpCache;Landroid/util/LruCache;Lren/yale/android/cachewebviewlib/StaticRes;)V .locals 1 .line 41 invoke-direct {p0}, Ljava/io/InputStream;->()V const-string v0, "" .line 29 iput-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; .line 42 iput-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; .line 43 iput-object p2, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; .line 44 iput-object p4, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; .line 45 iput-object p3, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEditorContent:Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor; .line 46 iput-object p5, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mLruCache:Landroid/util/LruCache; .line 47 iput-object p6, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mStaticRes:Lren/yale/android/cachewebviewlib/StaticRes; .line 48 invoke-direct {p0, p3}, Lren/yale/android/cachewebviewlib/ResourseInputStream;->getStream(Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;)V return-void .end method .method private getStream(Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;)V .locals 1 if-nez p1, :cond_0 return-void .line 76 :cond_0 :try_start_0 sget-object v0, Lren/yale/android/cachewebviewlib/CacheIndexType;->CONTENT:Lren/yale/android/cachewebviewlib/CacheIndexType; invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/CacheIndexType;->ordinal()I move-result v0 invoke-virtual {p1, v0}, Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;->newOutputStream(I)Ljava/io/OutputStream; move-result-object v0 iput-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStream:Ljava/io/OutputStream; .line 77 sget-object v0, Lren/yale/android/cachewebviewlib/CacheIndexType;->PROPERTY:Lren/yale/android/cachewebviewlib/CacheIndexType; invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/CacheIndexType;->ordinal()I move-result v0 invoke-virtual {p1, v0}, Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;->newOutputStream(I)Ljava/io/OutputStream; move-result-object v0 iput-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamProperty:Ljava/io/OutputStream; .line 78 sget-object v0, Lren/yale/android/cachewebviewlib/CacheIndexType;->ALL_PROPERTY:Lren/yale/android/cachewebviewlib/CacheIndexType; invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/CacheIndexType;->ordinal()I move-result v0 invoke-virtual {p1, v0}, Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;->newOutputStream(I)Ljava/io/OutputStream; move-result-object p1 iput-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamAllProperty:Ljava/io/OutputStream; :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception p1 .line 80 invoke-virtual {p1}, Ljava/io/IOException;->printStackTrace()V .line 82 :goto_0 iget-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Landroid/webkit/MimeTypeMap;->getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 .line 83 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mStaticRes:Lren/yale/android/cachewebviewlib/StaticRes; invoke-virtual {v0, p1}, Lren/yale/android/cachewebviewlib/StaticRes;->canRamCache(Ljava/lang/String;)Z move-result p1 if-eqz p1, :cond_1 .line 84 new-instance p1, Ljava/io/ByteArrayOutputStream; invoke-direct {p1}, Ljava/io/ByteArrayOutputStream;->()V iput-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mRamArray:Ljava/io/ByteArrayOutputStream; :cond_1 return-void .end method .method private writeStream([BII)V .locals 2 .line 95 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStream:Ljava/io/OutputStream; if-nez v0, :cond_0 return-void :cond_0 if-lez p3, :cond_1 .line 99 iget v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mCurrenReadLength:I add-int/2addr v1, p3 iput v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mCurrenReadLength:I .line 101 :try_start_0 invoke-virtual {v0, p1, p2, p3}, Ljava/io/OutputStream;->write([BII)V :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 goto :goto_0 :catch_0 move-exception v0 .line 103 invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V .line 105 :goto_0 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mRamArray:Ljava/io/ByteArrayOutputStream; if-eqz v0, :cond_1 .line 106 invoke-virtual {v0, p1, p2, p3}, Ljava/io/ByteArrayOutputStream;->write([BII)V :cond_1 return-void .end method # virtual methods .method public available()I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 125 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0}, Ljava/io/InputStream;->available()I move-result v0 return v0 .end method .method public close()V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 130 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0}, Ljava/io/InputStream;->close()V .line 132 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStream:Ljava/io/OutputStream; if-eqz v0, :cond_1 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamProperty:Ljava/io/OutputStream; if-eqz v0, :cond_1 .line 133 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; iget-object v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEncode:Ljava/lang/String; invoke-virtual {v0, v1}, Lren/yale/android/cachewebviewlib/HttpCache;->setEncode(Ljava/lang/String;)V .line 134 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/HttpCache;->getCacheFlagString()Ljava/lang/String; move-result-object v0 .line 135 iget-object v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; invoke-virtual {v1}, Lren/yale/android/cachewebviewlib/HttpCache;->getResponseHeader()Ljava/util/HashMap; move-result-object v1 invoke-static {v1}, Lren/yale/android/cachewebviewlib/utils/JsonWrapper;->map2Str(Ljava/util/Map;)Ljava/lang/String; move-result-object v1 .line 136 iget-object v2, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mRamArray:Ljava/io/ByteArrayOutputStream; if-eqz v2, :cond_0 .line 138 :try_start_0 new-instance v2, Lren/yale/android/cachewebviewlib/bean/RamObject; invoke-direct {v2}, Lren/yale/android/cachewebviewlib/bean/RamObject;->()V .line 139 iget-object v3, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mRamArray:Ljava/io/ByteArrayOutputStream; invoke-virtual {v3}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B move-result-object v3 .line 140 new-instance v4, Ljava/io/ByteArrayInputStream; invoke-direct {v4, v3}, Ljava/io/ByteArrayInputStream;->([B)V invoke-virtual {v2, v4}, Lren/yale/android/cachewebviewlib/bean/RamObject;->setStream(Ljava/io/InputStream;)V .line 141 invoke-virtual {v2, v0}, Lren/yale/android/cachewebviewlib/bean/RamObject;->setHttpFlag(Ljava/lang/String;)V .line 142 iget-object v4, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; invoke-virtual {v4}, Lren/yale/android/cachewebviewlib/HttpCache;->getResponseHeader()Ljava/util/HashMap; move-result-object v4 invoke-virtual {v2, v4}, Lren/yale/android/cachewebviewlib/bean/RamObject;->setHeaderMap(Ljava/util/HashMap;)V .line 143 array-length v3, v3 invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B move-result-object v4 array-length v4, v4 add-int/2addr v3, v4 invoke-virtual {v2, v3}, Lren/yale/android/cachewebviewlib/bean/RamObject;->setInputStreamSize(I)V .line 144 iget-object v3, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mLruCache:Landroid/util/LruCache; iget-object v4, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; invoke-static {v4}, Lren/yale/android/cachewebviewlib/WebViewCache;->getKey(Ljava/lang/String;)Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4, v2}, Landroid/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; .line 145 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "ram cached " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 iget-object v3, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-static {v2}, Lren/yale/android/cachewebviewlib/CacheWebViewLog;->d(Ljava/lang/String;)V :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .line 150 :catch_0 :cond_0 iget-object v2, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStream:Ljava/io/OutputStream; invoke-virtual {v2}, Ljava/io/OutputStream;->flush()V .line 151 iget-object v2, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamAllProperty:Ljava/io/OutputStream; invoke-virtual {v1}, Ljava/lang/String;->getBytes()[B move-result-object v1 invoke-virtual {v2, v1}, Ljava/io/OutputStream;->write([B)V .line 152 iget-object v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamAllProperty:Ljava/io/OutputStream; invoke-virtual {v1}, Ljava/io/OutputStream;->flush()V .line 153 iget-object v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamProperty:Ljava/io/OutputStream; invoke-virtual {v0}, Ljava/lang/String;->getBytes()[B move-result-object v0 invoke-virtual {v1, v0}, Ljava/io/OutputStream;->write([B)V .line 154 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamProperty:Ljava/io/OutputStream; invoke-virtual {v0}, Ljava/io/OutputStream;->flush()V .line 155 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEditorContent:Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor; invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;->commit()V .line 156 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamProperty:Ljava/io/OutputStream; invoke-virtual {v0}, Ljava/io/OutputStream;->close()V .line 157 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStream:Ljava/io/OutputStream; invoke-virtual {v0}, Ljava/io/OutputStream;->close()V .line 158 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mOutputStreamAllProperty:Ljava/io/OutputStream; invoke-virtual {v0}, Ljava/io/OutputStream;->close()V .line 159 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "disk cached " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mUrl:Ljava/lang/String; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-static {v0}, Lren/yale/android/cachewebviewlib/CacheWebViewLog;->d(Ljava/lang/String;)V goto :goto_0 .line 160 :cond_1 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEditorContent:Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor; if-eqz v0, :cond_2 .line 161 invoke-virtual {v0}, Lren/yale/android/cachewebviewlib/disklru/DiskLruCache$Editor;->abort()V :cond_2 :goto_0 return-void .end method .method public getEncode()Ljava/lang/String; .locals 1 .line 52 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEncode:Ljava/lang/String; return-object v0 .end method .method public getHttpCache()Lren/yale/android/cachewebviewlib/HttpCache; .locals 1 .line 68 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mHttpCache:Lren/yale/android/cachewebviewlib/HttpCache; return-object v0 .end method .method public getInnerInputStream()Ljava/io/InputStream; .locals 1 .line 64 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; return-object v0 .end method .method public declared-synchronized mark(I)V .locals 1 monitor-enter p0 .line 167 :try_start_0 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0, p1}, Ljava/io/InputStream;->mark(I)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 168 monitor-exit p0 return-void :catchall_0 move-exception p1 monitor-exit p0 throw p1 .end method .method public markSupported()Z .locals 1 .line 177 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0}, Ljava/io/InputStream;->markSupported()Z move-result v0 return v0 .end method .method public read()I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 182 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0}, Ljava/io/InputStream;->read()I move-result v0 return v0 .end method .method public read([B)I .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 90 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0, p1}, Ljava/io/InputStream;->read([B)I move-result v0 const/4 v1, 0x0 .line 91 invoke-direct {p0, p1, v1, v0}, Lren/yale/android/cachewebviewlib/ResourseInputStream;->writeStream([BII)V return v0 .end method .method public read([BII)I .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 114 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0, p1, p2, p3}, Ljava/io/InputStream;->read([BII)I move-result p3 .line 115 invoke-direct {p0, p1, p2, p3}, Lren/yale/android/cachewebviewlib/ResourseInputStream;->writeStream([BII)V return p3 .end method .method public declared-synchronized reset()V .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 172 :try_start_0 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0}, Ljava/io/InputStream;->reset()V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 173 monitor-exit p0 return-void :catchall_0 move-exception v0 monitor-exit p0 throw v0 .end method .method public setEncode(Ljava/lang/String;)V .locals 0 .line 56 iput-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mEncode:Ljava/lang/String; return-void .end method .method public setInnerInputStream(Ljava/io/InputStream;)V .locals 0 .line 60 iput-object p1, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; return-void .end method .method public skip(J)J .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 120 iget-object v0, p0, Lren/yale/android/cachewebviewlib/ResourseInputStream;->mInnerInputStream:Ljava/io/InputStream; invoke-virtual {v0, p1, p2}, Ljava/io/InputStream;->skip(J)J move-result-wide p1 return-wide p1 .end method