1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057 |
- .class public Landroid/support/v4/content/FileProvider;
- .super Landroid/content/ContentProvider;
- .source "FileProvider.java"
- # annotations
- .annotation system Ldalvik/annotation/MemberClasses;
- value = {
- Landroid/support/v4/content/FileProvider$SimplePathStrategy;,
- Landroid/support/v4/content/FileProvider$PathStrategy;
- }
- .end annotation
- # static fields
- .field private static final ATTR_NAME:Ljava/lang/String; = "name"
- .field private static final ATTR_PATH:Ljava/lang/String; = "path"
- .field private static final COLUMNS:[Ljava/lang/String;
- .field private static final DEVICE_ROOT:Ljava/io/File;
- .field private static final META_DATA_FILE_PROVIDER_PATHS:Ljava/lang/String; = "android.support.FILE_PROVIDER_PATHS"
- .field private static final TAG_CACHE_PATH:Ljava/lang/String; = "cache-path"
- .field private static final TAG_EXTERNAL:Ljava/lang/String; = "external-path"
- .field private static final TAG_FILES_PATH:Ljava/lang/String; = "files-path"
- .field private static final TAG_ROOT_PATH:Ljava/lang/String; = "root-path"
- .field private static sCache:Ljava/util/HashMap;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Ljava/util/HashMap",
- "<",
- "Ljava/lang/String;",
- "Landroid/support/v4/content/FileProvider$PathStrategy;",
- ">;"
- }
- .end annotation
- .end field
- # instance fields
- .field private mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- # direct methods
- .method static constructor <clinit>()V
- .locals 3
- .prologue
- .line 303
- const/4 v0, 0x2
- new-array v0, v0, [Ljava/lang/String;
- const/4 v1, 0x0
- const-string v2, "_display_name"
- aput-object v2, v0, v1
- const/4 v1, 0x1
- const-string v2, "_size"
- aput-object v2, v0, v1
- sput-object v0, Landroid/support/v4/content/FileProvider;->COLUMNS:[Ljava/lang/String;
- .line 317
- new-instance v0, Ljava/io/File;
- const-string v1, "/"
- invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
- sput-object v0, Landroid/support/v4/content/FileProvider;->DEVICE_ROOT:Ljava/io/File;
- .line 320
- new-instance v0, Ljava/util/HashMap;
- invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
- sput-object v0, Landroid/support/v4/content/FileProvider;->sCache:Ljava/util/HashMap;
- return-void
- .end method
- .method public constructor <init>()V
- .locals 0
- .prologue
- .line 302
- invoke-direct {p0}, Landroid/content/ContentProvider;-><init>()V
- .line 630
- return-void
- .end method
- .method private static varargs buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
- .locals 6
- .param p0, "base" # Ljava/io/File;
- .param p1, "segments" # [Ljava/lang/String;
- .prologue
- .line 753
- move-object v1, p0
- .line 754
- .local v1, "cur":Ljava/io/File;
- move-object v0, p1
- .local v0, "arr$":[Ljava/lang/String;
- array-length v4, v0
- .local v4, "len$":I
- const/4 v3, 0x0
- .local v3, "i$":I
- move-object v2, v1
- .end local v1 # "cur":Ljava/io/File;
- .local v2, "cur":Ljava/io/File;
- :goto_0
- if-ge v3, v4, :cond_0
- aget-object v5, v0, v3
- .line 755
- .local v5, "segment":Ljava/lang/String;
- if-eqz v5, :cond_1
- .line 756
- new-instance v1, Ljava/io/File;
- invoke-direct {v1, v2, v5}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
- .line 754
- .end local v2 # "cur":Ljava/io/File;
- .restart local v1 # "cur":Ljava/io/File;
- :goto_1
- add-int/lit8 v3, v3, 0x1
- move-object v2, v1
- .end local v1 # "cur":Ljava/io/File;
- .restart local v2 # "cur":Ljava/io/File;
- goto :goto_0
- .line 759
- .end local v5 # "segment":Ljava/lang/String;
- :cond_0
- return-object v2
- .restart local v5 # "segment":Ljava/lang/String;
- :cond_1
- move-object v1, v2
- .end local v2 # "cur":Ljava/io/File;
- .restart local v1 # "cur":Ljava/io/File;
- goto :goto_1
- .end method
- .method private static copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
- .locals 2
- .param p0, "original" # [Ljava/lang/Object;
- .param p1, "newLength" # I
- .prologue
- const/4 v1, 0x0
- .line 769
- new-array v0, p1, [Ljava/lang/Object;
- .line 770
- .local v0, "result":[Ljava/lang/Object;
- invoke-static {p0, v1, v0, v1, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
- .line 771
- return-object v0
- .end method
- .method private static copyOf([Ljava/lang/String;I)[Ljava/lang/String;
- .locals 2
- .param p0, "original" # [Ljava/lang/String;
- .param p1, "newLength" # I
- .prologue
- const/4 v1, 0x0
- .line 763
- new-array v0, p1, [Ljava/lang/String;
- .line 764
- .local v0, "result":[Ljava/lang/String;
- invoke-static {p0, v1, v0, v1, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
- .line 765
- return-object v0
- .end method
- .method private static getPathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroid/support/v4/content/FileProvider$PathStrategy;
- .locals 5
- .param p0, "context" # Landroid/content/Context;
- .param p1, "authority" # Ljava/lang/String;
- .prologue
- .line 530
- sget-object v3, Landroid/support/v4/content/FileProvider;->sCache:Ljava/util/HashMap;
- monitor-enter v3
- .line 531
- :try_start_0
- sget-object v2, Landroid/support/v4/content/FileProvider;->sCache:Ljava/util/HashMap;
- invoke-virtual {v2, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
- move-result-object v1
- check-cast v1, Landroid/support/v4/content/FileProvider$PathStrategy;
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- .line 532
- .local v1, "strat":Landroid/support/v4/content/FileProvider$PathStrategy;
- if-nez v1, :cond_0
- .line 534
- :try_start_1
- invoke-static {p0, p1}, Landroid/support/v4/content/FileProvider;->parsePathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroid/support/v4/content/FileProvider$PathStrategy;
- :try_end_1
- .catch Ljava/io/IOException; {:try_start_1 .. :try_end_1} :catch_0
- .catch Lorg/xmlpull/v1/XmlPullParserException; {:try_start_1 .. :try_end_1} :catch_1
- .catchall {:try_start_1 .. :try_end_1} :catchall_0
- move-result-object v1
- .line 542
- :try_start_2
- sget-object v2, Landroid/support/v4/content/FileProvider;->sCache:Ljava/util/HashMap;
- invoke-virtual {v2, p1, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
- .line 544
- :cond_0
- monitor-exit v3
- .line 545
- return-object v1
- .line 535
- :catch_0
- move-exception v0
- .line 536
- .local v0, "e":Ljava/io/IOException;
- new-instance v2, Ljava/lang/IllegalArgumentException;
- const-string v4, "Failed to parse android.support.FILE_PROVIDER_PATHS meta-data"
- invoke-direct {v2, v4, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
- throw v2
- .line 544
- .end local v0 # "e":Ljava/io/IOException;
- .end local v1 # "strat":Landroid/support/v4/content/FileProvider$PathStrategy;
- :catchall_0
- move-exception v2
- monitor-exit v3
- :try_end_2
- .catchall {:try_start_2 .. :try_end_2} :catchall_0
- throw v2
- .line 538
- .restart local v1 # "strat":Landroid/support/v4/content/FileProvider$PathStrategy;
- :catch_1
- move-exception v0
- .line 539
- .local v0, "e":Lorg/xmlpull/v1/XmlPullParserException;
- :try_start_3
- new-instance v2, Ljava/lang/IllegalArgumentException;
- const-string v4, "Failed to parse android.support.FILE_PROVIDER_PATHS meta-data"
- invoke-direct {v2, v4, v0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
- throw v2
- :try_end_3
- .catchall {:try_start_3 .. :try_end_3} :catchall_0
- .end method
- .method public static getUriForFile(Landroid/content/Context;Ljava/lang/String;Ljava/io/File;)Landroid/net/Uri;
- .locals 2
- .param p0, "context" # Landroid/content/Context;
- .param p1, "authority" # Ljava/lang/String;
- .param p2, "file" # Ljava/io/File;
- .prologue
- .line 376
- invoke-static {p0, p1}, Landroid/support/v4/content/FileProvider;->getPathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroid/support/v4/content/FileProvider$PathStrategy;
- move-result-object v0
- .line 377
- .local v0, "strategy":Landroid/support/v4/content/FileProvider$PathStrategy;
- invoke-interface {v0, p2}, Landroid/support/v4/content/FileProvider$PathStrategy;->getUriForFile(Ljava/io/File;)Landroid/net/Uri;
- move-result-object v1
- return-object v1
- .end method
- .method private static modeToMode(Ljava/lang/String;)I
- .locals 4
- .param p0, "mode" # Ljava/lang/String;
- .prologue
- .line 729
- const-string v1, "r"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-eqz v1, :cond_0
- .line 730
- const/high16 v0, 0x10000000
- .line 749
- .local v0, "modeBits":I
- :goto_0
- return v0
- .line 731
- .end local v0 # "modeBits":I
- :cond_0
- const-string v1, "w"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-nez v1, :cond_1
- const-string v1, "wt"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-eqz v1, :cond_2
- .line 732
- :cond_1
- const/high16 v0, 0x2c000000
- .restart local v0 # "modeBits":I
- goto :goto_0
- .line 735
- .end local v0 # "modeBits":I
- :cond_2
- const-string v1, "wa"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-eqz v1, :cond_3
- .line 736
- const/high16 v0, 0x2a000000
- .restart local v0 # "modeBits":I
- goto :goto_0
- .line 739
- .end local v0 # "modeBits":I
- :cond_3
- const-string v1, "rw"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-eqz v1, :cond_4
- .line 740
- const/high16 v0, 0x38000000
- .restart local v0 # "modeBits":I
- goto :goto_0
- .line 742
- .end local v0 # "modeBits":I
- :cond_4
- const-string v1, "rwt"
- invoke-virtual {v1, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v1
- if-eqz v1, :cond_5
- .line 743
- const/high16 v0, 0x3c000000 # 0.0078125f
- .restart local v0 # "modeBits":I
- goto :goto_0
- .line 747
- .end local v0 # "modeBits":I
- :cond_5
- new-instance v1, Ljava/lang/IllegalArgumentException;
- new-instance v2, Ljava/lang/StringBuilder;
- invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
- const-string v3, "Invalid mode: "
- invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v2
- invoke-virtual {v2, p0}, 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-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
- throw v1
- .end method
- .method private static parsePathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroid/support/v4/content/FileProvider$PathStrategy;
- .locals 13
- .param p0, "context" # Landroid/content/Context;
- .param p1, "authority" # Ljava/lang/String;
- .annotation system Ldalvik/annotation/Throws;
- value = {
- Ljava/io/IOException;,
- Lorg/xmlpull/v1/XmlPullParserException;
- }
- .end annotation
- .prologue
- const/4 v12, 0x0
- const/4 v11, 0x0
- const/4 v10, 0x1
- .line 556
- new-instance v4, Landroid/support/v4/content/FileProvider$SimplePathStrategy;
- invoke-direct {v4, p1}, Landroid/support/v4/content/FileProvider$SimplePathStrategy;-><init>(Ljava/lang/String;)V
- .line 558
- .local v4, "strat":Landroid/support/v4/content/FileProvider$SimplePathStrategy;
- invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
- move-result-object v8
- const/16 v9, 0x80
- invoke-virtual {v8, p1, v9}, Landroid/content/pm/PackageManager;->resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;
- move-result-object v1
- .line 560
- .local v1, "info":Landroid/content/pm/ProviderInfo;
- invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
- move-result-object v8
- const-string v9, "android.support.FILE_PROVIDER_PATHS"
- invoke-virtual {v1, v8, v9}, Landroid/content/pm/ProviderInfo;->loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;
- move-result-object v0
- .line 562
- .local v0, "in":Landroid/content/res/XmlResourceParser;
- if-nez v0, :cond_0
- .line 563
- new-instance v8, Ljava/lang/IllegalArgumentException;
- const-string v9, "Missing android.support.FILE_PROVIDER_PATHS meta-data"
- invoke-direct {v8, v9}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
- throw v8
- .line 568
- :cond_0
- :goto_0
- invoke-interface {v0}, Landroid/content/res/XmlResourceParser;->next()I
- move-result v7
- .local v7, "type":I
- if-eq v7, v10, :cond_5
- .line 569
- const/4 v8, 0x2
- if-ne v7, v8, :cond_0
- .line 570
- invoke-interface {v0}, Landroid/content/res/XmlResourceParser;->getName()Ljava/lang/String;
- move-result-object v5
- .line 572
- .local v5, "tag":Ljava/lang/String;
- const-string v8, "name"
- invoke-interface {v0, v12, v8}, Landroid/content/res/XmlResourceParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
- move-result-object v2
- .line 573
- .local v2, "name":Ljava/lang/String;
- const-string v8, "path"
- invoke-interface {v0, v12, v8}, Landroid/content/res/XmlResourceParser;->getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
- move-result-object v3
- .line 575
- .local v3, "path":Ljava/lang/String;
- const/4 v6, 0x0
- .line 576
- .local v6, "target":Ljava/io/File;
- const-string v8, "root-path"
- invoke-virtual {v8, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v8
- if-eqz v8, :cond_2
- .line 577
- sget-object v8, Landroid/support/v4/content/FileProvider;->DEVICE_ROOT:Ljava/io/File;
- new-array v9, v10, [Ljava/lang/String;
- aput-object v3, v9, v11
- invoke-static {v8, v9}, Landroid/support/v4/content/FileProvider;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
- move-result-object v6
- .line 586
- :cond_1
- :goto_1
- if-eqz v6, :cond_0
- .line 587
- invoke-virtual {v4, v2, v6}, Landroid/support/v4/content/FileProvider$SimplePathStrategy;->addRoot(Ljava/lang/String;Ljava/io/File;)V
- goto :goto_0
- .line 578
- :cond_2
- const-string v8, "files-path"
- invoke-virtual {v8, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v8
- if-eqz v8, :cond_3
- .line 579
- invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
- move-result-object v8
- new-array v9, v10, [Ljava/lang/String;
- aput-object v3, v9, v11
- invoke-static {v8, v9}, Landroid/support/v4/content/FileProvider;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
- move-result-object v6
- goto :goto_1
- .line 580
- :cond_3
- const-string v8, "cache-path"
- invoke-virtual {v8, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v8
- if-eqz v8, :cond_4
- .line 581
- invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
- move-result-object v8
- new-array v9, v10, [Ljava/lang/String;
- aput-object v3, v9, v11
- invoke-static {v8, v9}, Landroid/support/v4/content/FileProvider;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
- move-result-object v6
- goto :goto_1
- .line 582
- :cond_4
- const-string v8, "external-path"
- invoke-virtual {v8, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v8
- if-eqz v8, :cond_1
- .line 583
- invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
- move-result-object v8
- new-array v9, v10, [Ljava/lang/String;
- aput-object v3, v9, v11
- invoke-static {v8, v9}, Landroid/support/v4/content/FileProvider;->buildPath(Ljava/io/File;[Ljava/lang/String;)Ljava/io/File;
- move-result-object v6
- goto :goto_1
- .line 592
- .end local v2 # "name":Ljava/lang/String;
- .end local v3 # "path":Ljava/lang/String;
- .end local v5 # "tag":Ljava/lang/String;
- .end local v6 # "target":Ljava/io/File;
- :cond_5
- return-object v4
- .end method
- # virtual methods
- .method public attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
- .locals 2
- .param p1, "context" # Landroid/content/Context;
- .param p2, "info" # Landroid/content/pm/ProviderInfo;
- .prologue
- .line 342
- invoke-super {p0, p1, p2}, Landroid/content/ContentProvider;->attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V
- .line 345
- iget-boolean v0, p2, Landroid/content/pm/ProviderInfo;->exported:Z
- if-eqz v0, :cond_0
- .line 346
- new-instance v0, Ljava/lang/SecurityException;
- const-string v1, "Provider must not be exported"
- invoke-direct {v0, v1}, Ljava/lang/SecurityException;-><init>(Ljava/lang/String;)V
- throw v0
- .line 348
- :cond_0
- iget-boolean v0, p2, Landroid/content/pm/ProviderInfo;->grantUriPermissions:Z
- if-nez v0, :cond_1
- .line 349
- new-instance v0, Ljava/lang/SecurityException;
- const-string v1, "Provider must grant uri permissions"
- invoke-direct {v0, v1}, Ljava/lang/SecurityException;-><init>(Ljava/lang/String;)V
- throw v0
- .line 352
- :cond_1
- iget-object v0, p2, Landroid/content/pm/ProviderInfo;->authority:Ljava/lang/String;
- invoke-static {p1, v0}, Landroid/support/v4/content/FileProvider;->getPathStrategy(Landroid/content/Context;Ljava/lang/String;)Landroid/support/v4/content/FileProvider$PathStrategy;
- move-result-object v0
- iput-object v0, p0, Landroid/support/v4/content/FileProvider;->mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- .line 353
- return-void
- .end method
- .method public delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
- .locals 2
- .param p1, "uri" # Landroid/net/Uri;
- .param p2, "selection" # Ljava/lang/String;
- .param p3, "selectionArgs" # [Ljava/lang/String;
- .prologue
- .line 497
- iget-object v1, p0, Landroid/support/v4/content/FileProvider;->mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- invoke-interface {v1, p1}, Landroid/support/v4/content/FileProvider$PathStrategy;->getFileForUri(Landroid/net/Uri;)Ljava/io/File;
- move-result-object v0
- .line 498
- .local v0, "file":Ljava/io/File;
- invoke-virtual {v0}, Ljava/io/File;->delete()Z
- move-result v1
- if-eqz v1, :cond_0
- const/4 v1, 0x1
- :goto_0
- return v1
- :cond_0
- const/4 v1, 0x0
- goto :goto_0
- .end method
- .method public getType(Landroid/net/Uri;)Ljava/lang/String;
- .locals 6
- .param p1, "uri" # Landroid/net/Uri;
- .prologue
- .line 451
- iget-object v4, p0, Landroid/support/v4/content/FileProvider;->mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- invoke-interface {v4, p1}, Landroid/support/v4/content/FileProvider$PathStrategy;->getFileForUri(Landroid/net/Uri;)Ljava/io/File;
- move-result-object v1
- .line 453
- .local v1, "file":Ljava/io/File;
- invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
- move-result-object v4
- const/16 v5, 0x2e
- invoke-virtual {v4, v5}, Ljava/lang/String;->lastIndexOf(I)I
- move-result v2
- .line 454
- .local v2, "lastDot":I
- if-ltz v2, :cond_0
- .line 455
- invoke-virtual {v1}, Ljava/io/File;->getName()Ljava/lang/String;
- move-result-object v4
- add-int/lit8 v5, v2, 0x1
- invoke-virtual {v4, v5}, Ljava/lang/String;->substring(I)Ljava/lang/String;
- move-result-object v0
- .line 456
- .local v0, "extension":Ljava/lang/String;
- invoke-static {}, Landroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
- move-result-object v4
- invoke-virtual {v4, v0}, Landroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
- move-result-object v3
- .line 457
- .local v3, "mime":Ljava/lang/String;
- if-eqz v3, :cond_0
- .line 462
- .end local v0 # "extension":Ljava/lang/String;
- .end local v3 # "mime":Ljava/lang/String;
- :goto_0
- return-object v3
- :cond_0
- const-string v3, "application/octet-stream"
- goto :goto_0
- .end method
- .method public insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;
- .locals 2
- .param p1, "uri" # Landroid/net/Uri;
- .param p2, "values" # Landroid/content/ContentValues;
- .prologue
- .line 471
- new-instance v0, Ljava/lang/UnsupportedOperationException;
- const-string v1, "No external inserts"
- invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
- throw v0
- .end method
- .method public onCreate()Z
- .locals 1
- .prologue
- .line 330
- const/4 v0, 0x1
- return v0
- .end method
- .method public openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
- .locals 3
- .param p1, "uri" # Landroid/net/Uri;
- .param p2, "mode" # Ljava/lang/String;
- .annotation system Ldalvik/annotation/Throws;
- value = {
- Ljava/io/FileNotFoundException;
- }
- .end annotation
- .prologue
- .line 519
- iget-object v2, p0, Landroid/support/v4/content/FileProvider;->mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- invoke-interface {v2, p1}, Landroid/support/v4/content/FileProvider$PathStrategy;->getFileForUri(Landroid/net/Uri;)Ljava/io/File;
- move-result-object v0
- .line 520
- .local v0, "file":Ljava/io/File;
- invoke-static {p2}, Landroid/support/v4/content/FileProvider;->modeToMode(Ljava/lang/String;)I
- move-result v1
- .line 521
- .local v1, "fileMode":I
- invoke-static {v0, v1}, Landroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
- move-result-object v2
- return-object v2
- .end method
- .method public query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
- .locals 12
- .param p1, "uri" # Landroid/net/Uri;
- .param p2, "projection" # [Ljava/lang/String;
- .param p3, "selection" # Ljava/lang/String;
- .param p4, "selectionArgs" # [Ljava/lang/String;
- .param p5, "sortOrder" # Ljava/lang/String;
- .prologue
- .line 412
- iget-object v10, p0, Landroid/support/v4/content/FileProvider;->mStrategy:Landroid/support/v4/content/FileProvider$PathStrategy;
- invoke-interface {v10, p1}, Landroid/support/v4/content/FileProvider$PathStrategy;->getFileForUri(Landroid/net/Uri;)Ljava/io/File;
- move-result-object v4
- .line 414
- .local v4, "file":Ljava/io/File;
- if-nez p2, :cond_0
- .line 415
- sget-object p2, Landroid/support/v4/content/FileProvider;->COLUMNS:[Ljava/lang/String;
- .line 418
- :cond_0
- array-length v10, p2
- new-array v2, v10, [Ljava/lang/String;
- .line 419
- .local v2, "cols":[Ljava/lang/String;
- array-length v10, p2
- new-array v9, v10, [Ljava/lang/Object;
- .line 420
- .local v9, "values":[Ljava/lang/Object;
- const/4 v5, 0x0
- .line 421
- .local v5, "i":I
- move-object v0, p2
- .local v0, "arr$":[Ljava/lang/String;
- array-length v8, v0
- .local v8, "len$":I
- const/4 v7, 0x0
- .local v7, "i$":I
- move v6, v5
- .end local v5 # "i":I
- .local v6, "i":I
- :goto_0
- if-ge v7, v8, :cond_2
- aget-object v1, v0, v7
- .line 422
- .local v1, "col":Ljava/lang/String;
- const-string v10, "_display_name"
- invoke-virtual {v10, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v10
- if-eqz v10, :cond_1
- .line 423
- const-string v10, "_display_name"
- aput-object v10, v2, v6
- .line 424
- add-int/lit8 v5, v6, 0x1
- .end local v6 # "i":I
- .restart local v5 # "i":I
- invoke-virtual {v4}, Ljava/io/File;->getName()Ljava/lang/String;
- move-result-object v10
- aput-object v10, v9, v6
- .line 421
- :goto_1
- add-int/lit8 v7, v7, 0x1
- move v6, v5
- .end local v5 # "i":I
- .restart local v6 # "i":I
- goto :goto_0
- .line 425
- :cond_1
- const-string v10, "_size"
- invoke-virtual {v10, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
- move-result v10
- if-eqz v10, :cond_3
- .line 426
- const-string v10, "_size"
- aput-object v10, v2, v6
- .line 427
- add-int/lit8 v5, v6, 0x1
- .end local v6 # "i":I
- .restart local v5 # "i":I
- invoke-virtual {v4}, Ljava/io/File;->length()J
- move-result-wide v10
- invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
- move-result-object v10
- aput-object v10, v9, v6
- goto :goto_1
- .line 431
- .end local v1 # "col":Ljava/lang/String;
- .end local v5 # "i":I
- .restart local v6 # "i":I
- :cond_2
- invoke-static {v2, v6}, Landroid/support/v4/content/FileProvider;->copyOf([Ljava/lang/String;I)[Ljava/lang/String;
- move-result-object v2
- .line 432
- invoke-static {v9, v6}, Landroid/support/v4/content/FileProvider;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
- move-result-object v9
- .line 434
- new-instance v3, Landroid/database/MatrixCursor;
- const/4 v10, 0x1
- invoke-direct {v3, v2, v10}, Landroid/database/MatrixCursor;-><init>([Ljava/lang/String;I)V
- .line 435
- .local v3, "cursor":Landroid/database/MatrixCursor;
- invoke-virtual {v3, v9}, Landroid/database/MatrixCursor;->addRow([Ljava/lang/Object;)V
- .line 436
- return-object v3
- .end local v3 # "cursor":Landroid/database/MatrixCursor;
- .restart local v1 # "col":Ljava/lang/String;
- :cond_3
- move v5, v6
- .end local v6 # "i":I
- .restart local v5 # "i":I
- goto :goto_1
- .end method
- .method public update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I
- .locals 2
- .param p1, "uri" # Landroid/net/Uri;
- .param p2, "values" # Landroid/content/ContentValues;
- .param p3, "selection" # Ljava/lang/String;
- .param p4, "selectionArgs" # [Ljava/lang/String;
- .prologue
- .line 480
- new-instance v0, Ljava/lang/UnsupportedOperationException;
- const-string v1, "No external updates"
- invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
- throw v0
- .end method
|