Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
沉迷打码的小凳子
glide
提交
b0108222
G
glide
项目概览
沉迷打码的小凳子
/
glide
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
glide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b0108222
编写于
10月 11, 2014
作者:
S
Sam Judd
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow request builder re-use.
上级
4c0c22e7
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
131 addition
and
89 deletion
+131
-89
library/src/androidTest/java/com/bumptech/glide/BitmapTypeRequestTest.java
...idTest/java/com/bumptech/glide/BitmapTypeRequestTest.java
+5
-8
library/src/androidTest/java/com/bumptech/glide/DrawableTypeRequestTest.java
...Test/java/com/bumptech/glide/DrawableTypeRequestTest.java
+4
-6
library/src/androidTest/java/com/bumptech/glide/GenericRequestBuilderTest.java
...st/java/com/bumptech/glide/GenericRequestBuilderTest.java
+3
-3
library/src/androidTest/java/com/bumptech/glide/GenericTranscodeRequestTest.java
.../java/com/bumptech/glide/GenericTranscodeRequestTest.java
+3
-6
library/src/androidTest/java/com/bumptech/glide/GifTypeRequestTest.java
...droidTest/java/com/bumptech/glide/GifTypeRequestTest.java
+4
-7
library/src/androidTest/java/com/bumptech/glide/RequestManagerTest.java
...droidTest/java/com/bumptech/glide/RequestManagerTest.java
+13
-13
library/src/androidTest/java/com/bumptech/glide/tests/Util.java
...y/src/androidTest/java/com/bumptech/glide/tests/Util.java
+4
-0
library/src/main/java/com/bumptech/glide/BitmapRequestBuilder.java
...rc/main/java/com/bumptech/glide/BitmapRequestBuilder.java
+6
-0
library/src/main/java/com/bumptech/glide/BitmapTypeRequest.java
...y/src/main/java/com/bumptech/glide/BitmapTypeRequest.java
+1
-3
library/src/main/java/com/bumptech/glide/DrawableRequestBuilder.java
.../main/java/com/bumptech/glide/DrawableRequestBuilder.java
+8
-2
library/src/main/java/com/bumptech/glide/DrawableTypeRequest.java
...src/main/java/com/bumptech/glide/DrawableTypeRequest.java
+5
-5
library/src/main/java/com/bumptech/glide/GenericRequestBuilder.java
...c/main/java/com/bumptech/glide/GenericRequestBuilder.java
+32
-10
library/src/main/java/com/bumptech/glide/GenericTranscodeRequest.java
...main/java/com/bumptech/glide/GenericTranscodeRequest.java
+8
-9
library/src/main/java/com/bumptech/glide/GifRequestBuilder.java
...y/src/main/java/com/bumptech/glide/GifRequestBuilder.java
+6
-0
library/src/main/java/com/bumptech/glide/GifTypeRequest.java
library/src/main/java/com/bumptech/glide/GifTypeRequest.java
+2
-2
library/src/main/java/com/bumptech/glide/RequestManager.java
library/src/main/java/com/bumptech/glide/RequestManager.java
+27
-14
samples/giphy/src/main/java/com/bumptech/glide/samples/giphy/MainActivity.java
...n/java/com/bumptech/glide/samples/giphy/MainActivity.java
+0
-1
未找到文件。
library/src/androidTest/java/com/bumptech/glide/BitmapTypeRequestTest.java
浏览文件 @
b0108222
...
...
@@ -16,7 +16,6 @@ import org.robolectric.annotation.Config;
import
static
com
.
bumptech
.
glide
.
tests
.
Util
.
arg
;
import
static
org
.
mockito
.
Matchers
.
any
;
import
static
org
.
mockito
.
Matchers
.
anyObject
;
import
static
org
.
mockito
.
Matchers
.
eq
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
...
...
@@ -26,20 +25,18 @@ import static org.mockito.Mockito.when;
@Config
(
shadows
=
GlideShadowLooper
.
class
)
public
class
BitmapTypeRequestTest
{
private
RequestManager
.
OptionsApplier
optionsApplier
;
private
String
model
;
private
BitmapTypeRequest
request
;
@SuppressWarnings
(
"unchecked"
)
@Before
public
void
setUp
()
{
optionsApplier
=
mock
(
RequestManager
.
OptionsApplier
.
class
);
when
(
optionsApplier
.
apply
(
any
Object
(),
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
1
));
when
(
optionsApplier
.
apply
(
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
0
));
Glide
glide
=
mock
(
Glide
.
class
);
when
(
glide
.
buildTranscoder
(
any
(
Class
.
class
),
any
(
Class
.
class
))).
thenReturn
(
mock
(
ResourceTranscoder
.
class
));
when
(
glide
.
buildDataProvider
(
any
(
Class
.
class
),
any
(
Class
.
class
))).
thenReturn
(
mock
(
DataLoadProvider
.
class
));
model
=
"testModel"
;
GenericRequestBuilder
original
=
new
GenericRequestBuilder
(
Robolectric
.
application
,
model
,
GenericRequestBuilder
original
=
new
GenericRequestBuilder
(
Robolectric
.
application
,
Object
.
class
,
mock
(
LoadProvider
.
class
),
null
,
glide
,
null
,
null
);
request
=
new
BitmapTypeRequest
(
original
,
mock
(
ModelLoader
.
class
),
mock
(
ModelLoader
.
class
),
optionsApplier
);
}
...
...
@@ -52,19 +49,19 @@ public class BitmapTypeRequestTest {
@Test
public
void
testAppliesDefaultOptionsOnToBytes
()
{
BitmapRequestBuilder
builder
=
request
.
toBytes
();
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
@Test
public
void
testAppliesDefaultOptionsOnToBytesWithArgs
()
{
BitmapRequestBuilder
builder
=
request
.
toBytes
(
Bitmap
.
CompressFormat
.
PNG
,
2
);
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
@Test
public
void
testAppliesDefaultOptionsOnTranscode
()
{
ResourceTranscoder
<
Bitmap
,
Object
>
transcoder
=
mock
(
ResourceTranscoder
.
class
);
BitmapRequestBuilder
builder
=
request
.
transcode
(
transcoder
,
Object
.
class
);
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
}
\ No newline at end of file
library/src/androidTest/java/com/bumptech/glide/DrawableTypeRequestTest.java
浏览文件 @
b0108222
...
...
@@ -14,7 +14,6 @@ import org.robolectric.annotation.Config;
import
static
com
.
bumptech
.
glide
.
tests
.
Util
.
arg
;
import
static
org
.
mockito
.
Matchers
.
any
;
import
static
org
.
mockito
.
Matchers
.
anyObject
;
import
static
org
.
mockito
.
Matchers
.
eq
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
...
...
@@ -31,9 +30,8 @@ public class DrawableTypeRequestTest {
@Before
public
void
setUp
()
{
optionsApplier
=
mock
(
RequestManager
.
OptionsApplier
.
class
);
when
(
optionsApplier
.
apply
(
anyObject
(),
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
1
));
model
=
"testModel"
;
request
=
new
DrawableTypeRequest
<
String
>(
model
,
mock
(
ModelLoader
.
class
),
when
(
optionsApplier
.
apply
(
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
0
));
request
=
new
DrawableTypeRequest
<
String
>(
String
.
class
,
mock
(
ModelLoader
.
class
),
mock
(
ModelLoader
.
class
),
Robolectric
.
application
,
Glide
.
get
(
Robolectric
.
application
),
mock
(
RequestTracker
.
class
),
mock
(
Lifecycle
.
class
),
optionsApplier
);
}
...
...
@@ -46,12 +44,12 @@ public class DrawableTypeRequestTest {
@Test
public
void
testDefaultOptionsAreAppliedOnAsBitmap
()
{
BitmapTypeRequest
<
String
>
builder
=
request
.
asBitmap
();
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
@Test
public
void
testDefaultOptionsAreAppliedOnAsGif
()
{
GifTypeRequest
<
String
>
builder
=
request
.
asGif
();
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
}
\ No newline at end of file
library/src/androidTest/java/com/bumptech/glide/GenericRequestBuilderTest.java
浏览文件 @
b0108222
...
...
@@ -36,13 +36,13 @@ public class GenericRequestBuilderTest {
@Test
(
expected
=
NullPointerException
.
class
)
public
void
testThrowsIfContextIsNull
()
{
new
GenericRequestBuilder
(
null
,
new
Object
()
,
mock
(
LoadProvider
.
class
),
Object
.
class
,
mock
(
Glide
.
class
),
new
GenericRequestBuilder
(
null
,
Object
.
class
,
mock
(
LoadProvider
.
class
),
Object
.
class
,
mock
(
Glide
.
class
),
requestTracker
,
mock
(
Lifecycle
.
class
));
}
@Test
(
expected
=
NullPointerException
.
class
)
public
void
testThrowsIfNonNullModelAndNullLoadProvider
()
{
new
GenericRequestBuilder
(
Robolectric
.
application
,
new
Object
()
,
null
,
Object
.
class
,
mock
(
Glide
.
class
),
new
GenericRequestBuilder
(
Robolectric
.
application
,
Object
.
class
,
null
,
Object
.
class
,
mock
(
Glide
.
class
),
requestTracker
,
mock
(
Lifecycle
.
class
));
}
...
...
@@ -157,6 +157,6 @@ public class GenericRequestBuilderTest {
when
(
glide
.
buildImageViewTarget
(
any
(
ImageView
.
class
),
any
(
Class
.
class
))).
thenReturn
(
mock
(
Target
.
class
));
return
new
GenericRequestBuilder
(
Robolectric
.
application
,
null
,
null
,
Object
.
class
,
glide
,
requestTracker
,
mock
(
Lifecycle
.
class
));
mock
(
Lifecycle
.
class
))
.
load
(
null
)
;
}
}
library/src/androidTest/java/com/bumptech/glide/GenericTranscodeRequestTest.java
浏览文件 @
b0108222
...
...
@@ -15,7 +15,6 @@ import org.robolectric.annotation.Config;
import
static
com
.
bumptech
.
glide
.
tests
.
Util
.
arg
;
import
static
org
.
mockito
.
Matchers
.
any
;
import
static
org
.
mockito
.
Matchers
.
anyObject
;
import
static
org
.
mockito
.
Matchers
.
eq
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
...
...
@@ -25,17 +24,15 @@ import static org.mockito.Mockito.when;
@Config
(
shadows
=
GlideShadowLooper
.
class
)
public
class
GenericTranscodeRequestTest
{
private
RequestManager
.
OptionsApplier
optionsApplier
;
private
String
model
;
private
GenericTranscodeRequest
<
String
,
Object
,
Object
>
request
;
@SuppressWarnings
(
"unchecked"
)
@Before
public
void
setUp
()
{
optionsApplier
=
mock
(
RequestManager
.
OptionsApplier
.
class
);
when
(
optionsApplier
.
apply
(
anyObject
(),
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
1
));
model
=
"testModel"
;
when
(
optionsApplier
.
apply
(
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
0
));
request
=
new
GenericTranscodeRequest
<
String
,
Object
,
Object
>(
Robolectric
.
application
,
Glide
.
get
(
Robolectric
.
application
),
model
,
mock
(
ModelLoader
.
class
),
Object
.
class
,
Glide
.
get
(
Robolectric
.
application
),
String
.
class
,
mock
(
ModelLoader
.
class
),
Object
.
class
,
Object
.
class
,
mock
(
RequestTracker
.
class
),
mock
(
Lifecycle
.
class
),
optionsApplier
);
}
...
...
@@ -48,6 +45,6 @@ public class GenericTranscodeRequestTest {
public
void
testTranscodeAppliesDefaultOptions
()
{
ResourceTranscoder
<
Object
,
Object
>
transcoder
=
mock
(
ResourceTranscoder
.
class
);
GenericRequestBuilder
<
String
,
Object
,
Object
,
Object
>
builder
=
request
.
transcode
(
transcoder
,
Object
.
class
);
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
}
\ No newline at end of file
library/src/androidTest/java/com/bumptech/glide/GifTypeRequestTest.java
浏览文件 @
b0108222
...
...
@@ -18,7 +18,6 @@ import java.io.InputStream;
import
static
com
.
bumptech
.
glide
.
tests
.
Util
.
arg
;
import
static
org
.
mockito
.
Matchers
.
any
;
import
static
org
.
mockito
.
Matchers
.
anyObject
;
import
static
org
.
mockito
.
Matchers
.
eq
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
...
...
@@ -28,21 +27,19 @@ import static org.mockito.Mockito.when;
@Config
(
shadows
=
GlideShadowLooper
.
class
)
public
class
GifTypeRequestTest
{
private
RequestManager
.
OptionsApplier
optionsApplier
;
private
String
model
;
private
GifTypeRequest
<
String
>
request
;
@SuppressWarnings
(
"unchecked"
)
@Before
public
void
setUp
()
{
optionsApplier
=
mock
(
RequestManager
.
OptionsApplier
.
class
);
when
(
optionsApplier
.
apply
(
any
Object
(),
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
1
));
when
(
optionsApplier
.
apply
(
any
(
GenericRequestBuilder
.
class
))).
thenAnswer
(
arg
(
0
));
Glide
glide
=
mock
(
Glide
.
class
);
when
(
glide
.
buildTranscoder
(
any
(
Class
.
class
),
any
(
Class
.
class
))).
thenReturn
(
mock
(
ResourceTranscoder
.
class
));
when
(
glide
.
buildDataProvider
(
any
(
Class
.
class
),
any
(
Class
.
class
))).
thenReturn
(
mock
(
DataLoadProvider
.
class
));
model
=
"testModel"
;
GenericRequestBuilder
original
=
new
GenericRequestBuilder
(
Robolectric
.
application
,
model
,
GenericRequestBuilder
original
=
new
GenericRequestBuilder
(
Robolectric
.
application
,
String
.
class
,
mock
(
LoadProvider
.
class
),
null
,
glide
,
null
,
null
);
request
=
new
GifTypeRequest
<
String
>(
original
,
mock
(
ModelLoader
.
class
),
optionsApplier
);
}
...
...
@@ -57,12 +54,12 @@ public class GifTypeRequestTest {
ResourceTranscoder
<
GifDrawable
,
GifDrawable
>
transcoder
=
mock
(
ResourceTranscoder
.
class
);
GenericRequestBuilder
<
String
,
InputStream
,
GifDrawable
,
GifDrawable
>
builder
=
request
.
transcode
(
transcoder
,
GifDrawable
.
class
);
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
@Test
public
void
testToBytesApplesDefaultOptions
()
{
GenericRequestBuilder
<
String
,
InputStream
,
GifDrawable
,
byte
[]>
builder
=
request
.
toBytes
();
verify
(
optionsApplier
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
optionsApplier
).
apply
(
eq
(
builder
));
}
}
\ No newline at end of file
library/src/androidTest/java/com/bumptech/glide/RequestManagerTest.java
浏览文件 @
b0108222
...
...
@@ -77,7 +77,7 @@ public class RequestManagerTest {
.
load
(
model
)
.
as
(
Bitmap
.
class
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -87,7 +87,7 @@ public class RequestManagerTest {
DrawableTypeRequest
<
String
>
builder
=
manager
.
using
(
modelLoader
)
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -97,7 +97,7 @@ public class RequestManagerTest {
DrawableTypeRequest
<
byte
[]>
builder
=
manager
.
using
(
loader
)
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -107,21 +107,21 @@ public class RequestManagerTest {
DrawableTypeRequest
<
String
>
builder
=
manager
.
using
(
modelLoader
)
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
public
void
testAppliesDefaultOptionsToLoadString
()
{
String
model
=
"fake"
;
DrawableTypeRequest
<
String
>
builder
=
manager
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
public
void
testAppliesDefaultOptionsToLoadUri
()
{
Uri
uri
=
Uri
.
EMPTY
;
DrawableTypeRequest
<
Uri
>
builder
=
manager
.
load
(
uri
);
verify
(
options
).
apply
(
eq
(
uri
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -129,7 +129,7 @@ public class RequestManagerTest {
Uri
uri
=
Uri
.
EMPTY
;
DrawableTypeRequest
<
Uri
>
builder
=
manager
.
loadFromMediaStore
(
uri
,
"image/jpeg"
,
123L
,
0
);
verify
(
options
).
apply
(
eq
(
uri
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -137,7 +137,7 @@ public class RequestManagerTest {
int
id
=
123
;
DrawableTypeRequest
<
Integer
>
builder
=
manager
.
load
(
id
);
verify
(
options
).
apply
(
eq
(
id
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -148,7 +148,7 @@ public class RequestManagerTest {
Double
model
=
2.2
;
DrawableTypeRequest
<
Double
>
builder
=
manager
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
Glide
.
get
(
Robolectric
.
application
).
unregister
(
Double
.
class
,
InputStream
.
class
);
}
...
...
@@ -157,7 +157,7 @@ public class RequestManagerTest {
URL
url
=
new
URL
(
"http://www.google.com"
);
DrawableTypeRequest
<
URL
>
builder
=
manager
.
load
(
url
);
verify
(
options
).
apply
(
eq
(
url
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -165,7 +165,7 @@ public class RequestManagerTest {
byte
[]
model
=
new
byte
[]
{
1
,
2
,
4
};
DrawableTypeRequest
<
byte
[]>
builder
=
manager
.
load
(
model
,
"fakeId"
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -173,7 +173,7 @@ public class RequestManagerTest {
byte
[]
model
=
new
byte
[]
{
5
,
9
,
23
};
DrawableTypeRequest
<
byte
[]>
builder
=
manager
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
}
@Test
...
...
@@ -184,7 +184,7 @@ public class RequestManagerTest {
Float
model
=
23.2f
;
DrawableTypeRequest
<
Float
>
builder
=
manager
.
load
(
model
);
verify
(
options
).
apply
(
eq
(
model
),
eq
(
builder
));
verify
(
options
).
apply
(
eq
(
builder
));
Glide
.
get
(
Robolectric
.
application
).
unregister
(
Float
.
class
,
InputStream
.
class
);
}
...
...
library/src/androidTest/java/com/bumptech/glide/tests/Util.java
浏览文件 @
b0108222
...
...
@@ -62,6 +62,10 @@ public class Util {
@SuppressWarnings
(
"unchecked"
)
@Override
public
T
answer
(
InvocationOnMock
invocation
)
{
if
(
argumentIndex
>=
invocation
.
getArguments
().
length
)
{
throw
new
IllegalArgumentException
(
"Cannot invoke argument "
+
argumentIndex
+
" greater than arguments length "
+
invocation
.
getArguments
().
length
);
}
return
(
T
)
invocation
.
getArguments
()[
argumentIndex
];
}
};
...
...
library/src/main/java/com/bumptech/glide/BitmapRequestBuilder.java
浏览文件 @
b0108222
...
...
@@ -455,6 +455,12 @@ public class BitmapRequestBuilder<ModelType, TranscodeType>
return
this
;
}
@Override
public
BitmapRequestBuilder
<
ModelType
,
TranscodeType
>
load
(
ModelType
model
)
{
super
.
load
(
model
);
return
this
;
}
/**
* {@inheritDoc}
*
...
...
library/src/main/java/com/bumptech/glide/BitmapTypeRequest.java
浏览文件 @
b0108222
...
...
@@ -20,7 +20,6 @@ import java.io.InputStream;
* @param <ModelType> The type of model to load the {@link Bitmap} or transcoded class from.
*/
public
class
BitmapTypeRequest
<
ModelType
>
extends
BitmapRequestBuilder
<
ModelType
,
Bitmap
>
{
private
final
ModelType
model
;
private
final
ModelLoader
<
ModelType
,
InputStream
>
streamModelLoader
;
private
final
ModelLoader
<
ModelType
,
ParcelFileDescriptor
>
fileDescriptorModelLoader
;
private
final
Glide
glide
;
...
...
@@ -53,7 +52,6 @@ public class BitmapTypeRequest<ModelType> extends BitmapRequestBuilder<ModelType
Bitmap
.
class
,
other
);
this
.
streamModelLoader
=
streamModelLoader
;
this
.
fileDescriptorModelLoader
=
fileDescriptorModelLoader
;
this
.
model
=
other
.
model
;
this
.
glide
=
other
.
glide
;
this
.
optionsApplier
=
optionsApplier
;
}
...
...
@@ -68,7 +66,7 @@ public class BitmapTypeRequest<ModelType> extends BitmapRequestBuilder<ModelType
*/
public
<
R
>
BitmapRequestBuilder
<
ModelType
,
R
>
transcode
(
ResourceTranscoder
<
Bitmap
,
R
>
transcoder
,
Class
<
R
>
transcodeClass
)
{
return
optionsApplier
.
apply
(
model
,
new
BitmapRequestBuilder
<
ModelType
,
R
>(
return
optionsApplier
.
apply
(
new
BitmapRequestBuilder
<
ModelType
,
R
>(
buildProvider
(
glide
,
streamModelLoader
,
fileDescriptorModelLoader
,
transcodeClass
,
transcoder
),
transcodeClass
,
this
));
}
...
...
library/src/main/java/com/bumptech/glide/DrawableRequestBuilder.java
浏览文件 @
b0108222
...
...
@@ -41,10 +41,10 @@ public class DrawableRequestBuilder<ModelType>
extends
GenericRequestBuilder
<
ModelType
,
ImageVideoWrapper
,
GifBitmapWrapper
,
GlideDrawable
>
implements
BitmapOptions
,
DrawableOptions
{
DrawableRequestBuilder
(
Context
context
,
ModelType
model
,
DrawableRequestBuilder
(
Context
context
,
Class
<
ModelType
>
modelClass
,
LoadProvider
<
ModelType
,
ImageVideoWrapper
,
GifBitmapWrapper
,
GlideDrawable
>
loadProvider
,
Glide
glide
,
RequestTracker
requestTracker
,
Lifecycle
lifecycle
)
{
super
(
context
,
model
,
loadProvider
,
GlideDrawable
.
class
,
glide
,
requestTracker
,
lifecycle
);
super
(
context
,
model
Class
,
loadProvider
,
GlideDrawable
.
class
,
glide
,
requestTracker
,
lifecycle
);
// Default to animating.
crossFade
();
}
...
...
@@ -406,6 +406,12 @@ public class DrawableRequestBuilder<ModelType>
return
this
;
}
@Override
public
DrawableRequestBuilder
<
ModelType
>
load
(
ModelType
model
)
{
super
.
load
(
model
);
return
this
;
}
/**
* {@inheritDoc}
*
...
...
library/src/main/java/com/bumptech/glide/DrawableTypeRequest.java
浏览文件 @
b0108222
...
...
@@ -50,10 +50,10 @@ public class DrawableTypeRequest<ModelType> extends DrawableRequestBuilder<Model
return
new
FixedLoadProvider
<
A
,
ImageVideoWrapper
,
Z
,
R
>(
modelLoader
,
transcoder
,
dataLoadProvider
);
}
DrawableTypeRequest
(
ModelType
model
,
ModelLoader
<
ModelType
,
InputStream
>
streamModelLoader
,
DrawableTypeRequest
(
Class
<
ModelType
>
modelClass
,
ModelLoader
<
ModelType
,
InputStream
>
streamModelLoader
,
ModelLoader
<
ModelType
,
ParcelFileDescriptor
>
fileDescriptorModelLoader
,
Context
context
,
Glide
glide
,
RequestTracker
requestTracker
,
Lifecycle
lifecycle
,
RequestManager
.
OptionsApplier
optionsApplier
)
{
super
(
context
,
model
,
super
(
context
,
model
Class
,
buildProvider
(
glide
,
streamModelLoader
,
fileDescriptorModelLoader
,
GifBitmapWrapper
.
class
,
GlideDrawable
.
class
,
null
),
glide
,
requestTracker
,
lifecycle
);
...
...
@@ -68,7 +68,7 @@ public class DrawableTypeRequest<ModelType> extends DrawableRequestBuilder<Model
* @return A new request builder for loading a {@link android.graphics.Bitmap}
*/
public
BitmapTypeRequest
<
ModelType
>
asBitmap
()
{
return
optionsApplier
.
apply
(
model
,
new
BitmapTypeRequest
<
ModelType
>(
this
,
streamModelLoader
,
return
optionsApplier
.
apply
(
new
BitmapTypeRequest
<
ModelType
>(
this
,
streamModelLoader
,
fileDescriptorModelLoader
,
optionsApplier
));
}
...
...
@@ -85,7 +85,7 @@ public class DrawableTypeRequest<ModelType> extends DrawableRequestBuilder<Model
* @return A new request builder for loading a {@link com.bumptech.glide.load.resource.gif.GifDrawable}.
*/
public
GifTypeRequest
<
ModelType
>
asGif
()
{
return
optionsApplier
.
apply
(
model
,
new
GifTypeRequest
<
ModelType
>(
this
,
streamModelLoader
,
optionsApplier
));
return
optionsApplier
.
apply
(
new
GifTypeRequest
<
ModelType
>(
this
,
streamModelLoader
,
optionsApplier
));
}
/**
...
...
@@ -103,7 +103,7 @@ public class DrawableTypeRequest<ModelType> extends DrawableRequestBuilder<Model
}
private
GenericTranscodeRequest
<
ModelType
,
InputStream
,
File
>
getDownloadOnlyRequest
()
{
return
optionsApplier
.
apply
(
model
,
new
GenericTranscodeRequest
<
ModelType
,
InputStream
,
File
>(
File
.
class
,
this
,
return
optionsApplier
.
apply
(
new
GenericTranscodeRequest
<
ModelType
,
InputStream
,
File
>(
File
.
class
,
this
,
streamModelLoader
,
InputStream
.
class
,
File
.
class
,
optionsApplier
));
}
}
library/src/main/java/com/bumptech/glide/GenericRequestBuilder.java
浏览文件 @
b0108222
...
...
@@ -38,11 +38,6 @@ import java.io.File;
/**
* A generic class that can handle setting options and staring loads for generic resource types.
*
* <p>
* Warning - It is <em>not</em> safe to use this builder after calling <code>into()</code>, it may be pooled and
* reused.
* </p>
*
* @param <ModelType> The type of model representing the resource.
* @param <DataType> The data type that the resource {@link com.bumptech.glide.load.model.ModelLoader} will provide that
* can be decoded by the {@link com.bumptech.glide.load.ResourceDecoder}.
...
...
@@ -50,9 +45,9 @@ import java.io.File;
* @param <TranscodeType> The type of resource the decoded resource will be transcoded to.
*/
public
class
GenericRequestBuilder
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>
{
protected
final
Class
<
ModelType
>
modelClass
;
protected
final
Context
context
;
protected
final
Glide
glide
;
protected
final
ModelType
model
;
protected
final
Class
<
TranscodeType
>
transcodeClass
;
protected
final
RequestTracker
requestTracker
;
protected
final
Lifecycle
lifecycle
;
...
...
@@ -60,6 +55,10 @@ public class GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeT
private
Key
signature
=
EmptySignature
.
obtain
();
private
ModelType
model
;
// model may occasionally be null, so to enforce that load() was called, set a boolean rather than relying on model
// not to be null.
private
boolean
isModelSet
;
private
int
placeholderId
;
private
int
errorId
;
private
RequestListener
<
ModelType
,
TranscodeType
>
requestListener
;
...
...
@@ -79,18 +78,20 @@ public class GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeT
GenericRequestBuilder
(
LoadProvider
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>
loadProvider
,
Class
<
TranscodeType
>
transcodeClass
,
GenericRequestBuilder
<
ModelType
,
?,
?,
?>
other
)
{
this
(
other
.
context
,
other
.
model
,
loadProvider
,
transcodeClass
,
other
.
glide
,
other
.
requestTracker
,
this
(
other
.
context
,
other
.
model
Class
,
loadProvider
,
transcodeClass
,
other
.
glide
,
other
.
requestTracker
,
other
.
lifecycle
);
this
.
signature
=
other
.
signature
;
this
.
diskCacheStrategy
=
other
.
diskCacheStrategy
;
this
.
isCacheable
=
other
.
isCacheable
;
this
.
model
=
other
.
model
;
this
.
isModelSet
=
other
.
isModelSet
;
}
GenericRequestBuilder
(
Context
context
,
ModelType
model
,
GenericRequestBuilder
(
Context
context
,
Class
<
ModelType
>
modelClass
,
LoadProvider
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>
loadProvider
,
Class
<
TranscodeType
>
transcodeClass
,
Glide
glide
,
RequestTracker
requestTracker
,
Lifecycle
lifecycle
)
{
this
.
context
=
context
;
this
.
model
=
model
;
this
.
model
Class
=
modelClass
;
this
.
transcodeClass
=
transcodeClass
;
this
.
glide
=
glide
;
this
.
requestTracker
=
requestTracker
;
...
...
@@ -101,7 +102,7 @@ public class GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeT
if
(
context
==
null
)
{
throw
new
NullPointerException
(
"Context can't be null"
);
}
if
(
model
!=
null
&&
loadProvider
==
null
)
{
if
(
model
Class
!=
null
&&
loadProvider
==
null
)
{
throw
new
NullPointerException
(
"LoadProvider must not be null"
);
}
}
...
...
@@ -541,6 +542,24 @@ public class GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeT
return
this
;
}
/**
* Sets the specific model to load data for.
*
* <p>
* This method must be called at least once before {@link #into(com.bumptech.glide.request.target.Target)} is
* called.
* </p>
*
* @param model The model to load data for, or null.
* @return This request builder.
*/
public
GenericRequestBuilder
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>
load
(
ModelType
model
)
{
this
.
model
=
model
;
isModelSet
=
true
;
return
this
;
}
/**
* Set the target the resource will be loaded into.
*
...
...
@@ -554,6 +573,9 @@ public class GenericRequestBuilder<ModelType, DataType, ResourceType, TranscodeT
if
(
target
==
null
)
{
throw
new
IllegalArgumentException
(
"You must pass in a non null Target"
);
}
if
(!
isModelSet
)
{
throw
new
IllegalArgumentException
(
"You must first set a model (try #load())"
);
}
Request
previous
=
target
.
getRequest
();
...
...
library/src/main/java/com/bumptech/glide/GenericTranscodeRequest.java
浏览文件 @
b0108222
...
...
@@ -53,11 +53,11 @@ public class GenericTranscodeRequest<ModelType, DataType, ResourceType>
this
.
optionsApplier
=
optionsApplier
;
}
GenericTranscodeRequest
(
Context
context
,
Glide
glide
,
ModelType
model
,
ModelLoader
<
ModelType
,
DataType
>
modelLoader
,
Class
<
DataType
>
dataClass
,
Class
<
ResourceType
>
resourceClass
,
RequestTracker
requestTracker
,
Lifecycle
lifecycle
,
RequestManager
.
OptionsApplier
optionsApplier
)
{
super
(
context
,
model
,
build
(
glide
,
modelLoader
,
dataClass
,
resourceClass
,
UnitTranscoder
.<
ResourceType
>
get
())
,
resourceClass
,
glide
,
requestTracker
,
lifecycle
);
GenericTranscodeRequest
(
Context
context
,
Glide
glide
,
Class
<
ModelType
>
modelClass
,
ModelLoader
<
ModelType
,
DataType
>
modelLoader
,
Class
<
DataType
>
dataClass
,
Class
<
ResourceType
>
resourceClass
,
RequestTracker
requestTracker
,
Lifecycle
lifecycle
,
RequestManager
.
OptionsApplier
optionsApplier
)
{
super
(
context
,
model
Class
,
build
(
glide
,
modelLoader
,
dataClass
,
resourceClass
,
UnitTranscoder
.<
ResourceType
>
get
()),
resourceClass
,
glide
,
requestTracker
,
lifecycle
);
this
.
modelLoader
=
modelLoader
;
this
.
dataClass
=
dataClass
;
this
.
resourceClass
=
resourceClass
;
...
...
@@ -77,9 +77,8 @@ public class GenericTranscodeRequest<ModelType, DataType, ResourceType>
LoadProvider
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>
loadProvider
=
build
(
glide
,
modelLoader
,
dataClass
,
resourceClass
,
transcoder
);
return
optionsApplier
.
apply
(
model
,
new
GenericRequestBuilder
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>(
loadProvider
,
transcodeClass
,
this
));
return
optionsApplier
.
apply
(
new
GenericRequestBuilder
<
ModelType
,
DataType
,
ResourceType
,
TranscodeType
>(
loadProvider
,
transcodeClass
,
this
));
}
/**
...
...
@@ -101,7 +100,7 @@ public class GenericTranscodeRequest<ModelType, DataType, ResourceType>
DataLoadProvider
<
DataType
,
File
>
dataLoadProvider
=
glide
.
buildDataProvider
(
dataClass
,
File
.
class
);
FixedLoadProvider
<
ModelType
,
DataType
,
File
,
File
>
fixedLoadProvider
=
new
FixedLoadProvider
<
ModelType
,
DataType
,
File
,
File
>(
modelLoader
,
transcoder
,
dataLoadProvider
);
return
optionsApplier
.
apply
(
model
,
new
GenericRequestBuilder
<
ModelType
,
DataType
,
File
,
File
>(
fixedLoadProvider
,
return
optionsApplier
.
apply
(
new
GenericRequestBuilder
<
ModelType
,
DataType
,
File
,
File
>(
fixedLoadProvider
,
File
.
class
,
this
))
.
priority
(
Priority
.
LOW
)
.
diskCacheStrategy
(
DiskCacheStrategy
.
SOURCE
)
...
...
library/src/main/java/com/bumptech/glide/GifRequestBuilder.java
浏览文件 @
b0108222
...
...
@@ -397,6 +397,12 @@ public class GifRequestBuilder<ModelType>
return
this
;
}
@Override
public
GifRequestBuilder
<
ModelType
>
load
(
ModelType
model
)
{
super
.
load
(
model
);
return
this
;
}
@Override
void
applyFitCenter
()
{
fitCenter
();
...
...
library/src/main/java/com/bumptech/glide/GifTypeRequest.java
浏览文件 @
b0108222
...
...
@@ -62,8 +62,8 @@ public class GifTypeRequest<ModelType> extends GifRequestBuilder<ModelType> {
ResourceTranscoder
<
GifDrawable
,
R
>
transcoder
,
Class
<
R
>
transcodeClass
)
{
FixedLoadProvider
<
ModelType
,
InputStream
,
GifDrawable
,
R
>
provider
=
buildProvider
(
glide
,
streamModelLoader
,
transcodeClass
,
transcoder
);
return
optionsApplier
.
apply
(
model
,
new
GenericRequestBuilder
<
ModelType
,
InputStream
,
GifDrawable
,
R
>(
provider
,
transcodeClass
,
this
));
return
optionsApplier
.
apply
(
new
GenericRequestBuilder
<
ModelType
,
InputStream
,
GifDrawable
,
R
>(
provider
,
transcodeClass
,
this
));
}
/**
...
...
library/src/main/java/com/bumptech/glide/RequestManager.java
浏览文件 @
b0108222
...
...
@@ -85,11 +85,10 @@ public class RequestManager implements LifecycleListener {
/**
* Allows the implementor to apply some options to the given request.
*
* @param model The model that is being loaded.
* @param requestBuilder The request builder being used to construct the load.
* @param <T> The type of the model.
*/
<
T
>
void
apply
(
T
model
,
GenericRequestBuilder
<
T
,
?,
?,
?>
requestBuilder
);
<
T
>
void
apply
(
GenericRequestBuilder
<
T
,
?,
?,
?>
requestBuilder
);
}
/**
...
...
@@ -328,8 +327,9 @@ public class RequestManager implements LifecycleListener {
ModelLoader
<
Uri
,
ParcelFileDescriptor
>
fileDescriptorModelLoader
=
Glide
.
buildFileDescriptorModelLoader
(
uri
,
context
);
return
optionsApplier
.
apply
(
uri
,
new
DrawableTypeRequest
<
Uri
>(
uri
,
mediaStoreLoader
,
fileDescriptorModelLoader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
));
return
(
DrawableTypeRequest
<
Uri
>)
optionsApplier
.
apply
(
new
DrawableTypeRequest
<
Uri
>(
Uri
.
class
,
mediaStoreLoader
,
fileDescriptorModelLoader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
))
.
load
(
uri
);
}
/**
...
...
@@ -461,6 +461,7 @@ public class RequestManager implements LifecycleListener {
return
loadGeneric
(
model
);
}
@SuppressWarnings
(
"unchecked"
)
private
<
T
>
DrawableTypeRequest
<
T
>
loadGeneric
(
T
model
)
{
ModelLoader
<
T
,
InputStream
>
streamModelLoader
=
Glide
.
buildStreamModelLoader
(
model
,
context
);
ModelLoader
<
T
,
ParcelFileDescriptor
>
fileDescriptorModelLoader
=
...
...
@@ -470,8 +471,16 @@ public class RequestManager implements LifecycleListener {
+
" which there is a registered ModelLoader, if you are using a custom model, you must first call"
+
" Glide#register with a ModelLoaderFactory for your custom model class"
);
}
return
optionsApplier
.
apply
(
model
,
new
DrawableTypeRequest
<
T
>(
model
,
streamModelLoader
,
fileDescriptorModelLoader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
));
return
(
DrawableTypeRequest
<
T
>)
optionsApplier
.
apply
(
new
DrawableTypeRequest
<
T
>(
getSafeClass
(
model
),
streamModelLoader
,
fileDescriptorModelLoader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
))
.
load
(
model
);
}
@SuppressWarnings
(
"unchecked"
)
private
static
<
T
>
Class
<
T
>
getSafeClass
(
T
model
)
{
return
model
!=
null
?
(
Class
<
T
>)
model
.
getClass
()
:
null
;
}
/**
...
...
@@ -488,8 +497,9 @@ public class RequestManager implements LifecycleListener {
}
public
DrawableTypeRequest
<
T
>
load
(
T
model
)
{
return
optionsApplier
.
apply
(
model
,
new
DrawableTypeRequest
<
T
>(
model
,
null
,
loader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
));
return
(
DrawableTypeRequest
<
T
>)
optionsApplier
.
apply
(
new
DrawableTypeRequest
<
T
>(
getSafeClass
(
model
),
null
,
loader
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
))
.
load
(
model
);
}
}
...
...
@@ -507,8 +517,9 @@ public class RequestManager implements LifecycleListener {
}
public
DrawableTypeRequest
<
T
>
load
(
T
model
)
{
return
optionsApplier
.
apply
(
model
,
new
DrawableTypeRequest
<
T
>(
model
,
loader
,
null
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
));
return
(
DrawableTypeRequest
<
T
>)
optionsApplier
.
apply
(
new
DrawableTypeRequest
<
T
>(
getSafeClass
(
model
),
loader
,
null
,
context
,
glide
,
requestTracker
,
lifecycle
,
optionsApplier
))
.
load
(
model
);
}
}
...
...
@@ -559,17 +570,19 @@ public class RequestManager implements LifecycleListener {
* @return This request builder.
*/
public
<
Z
>
GenericTranscodeRequest
<
A
,
T
,
Z
>
as
(
Class
<
Z
>
resourceClass
)
{
return
optionsApplier
.
apply
(
model
,
new
GenericTranscodeRequest
<
A
,
T
,
Z
>(
context
,
glide
,
model
,
modelLoader
,
dataClass
,
resourceClass
,
requestTracker
,
lifecycle
,
optionsApplier
));
return
(
GenericTranscodeRequest
<
A
,
T
,
Z
>)
optionsApplier
.
apply
(
new
GenericTranscodeRequest
<
A
,
T
,
Z
>(
context
,
glide
,
getSafeClass
(
model
),
modelLoader
,
dataClass
,
resourceClass
,
requestTracker
,
lifecycle
,
optionsApplier
))
.
load
(
model
);
}
}
}
class
OptionsApplier
{
public
<
A
,
X
extends
GenericRequestBuilder
<
A
,
?,
?,
?>>
X
apply
(
A
model
,
X
builder
)
{
public
<
A
,
X
extends
GenericRequestBuilder
<
A
,
?,
?,
?>>
X
apply
(
X
builder
)
{
if
(
options
!=
null
)
{
options
.
apply
(
model
,
builder
);
options
.
apply
(
builder
);
}
return
builder
;
}
...
...
samples/giphy/src/main/java/com/bumptech/glide/samples/giphy/MainActivity.java
浏览文件 @
b0108222
...
...
@@ -16,7 +16,6 @@ import java.io.InputStream;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* The primary activity in the Giphy sample that allows users to view trending animated GIFs from Giphy's api.
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录