Skip to content

Commit 413cf4d

Browse files
committed
1
1 parent b8465d6 commit 413cf4d

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/com/cantalou/skin/CacheKeyAndIdManager.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public final class CacheKeyAndIdManager {
6161
/**
6262
* 资源管理对象
6363
*/
64-
private SkinManager skinManager = SkinManager.getInstance();
64+
private SkinManager skinManager ;
6565

6666
private static class InstanceHolder {
6767
static final CacheKeyAndIdManager INSTANCE = new CacheKeyAndIdManager();
@@ -88,6 +88,9 @@ public synchronized void registerDrawable(int id) {
8888
return;
8989
}
9090

91+
if(skinManager == null){
92+
skinManager = SkinManager.getInstance();
93+
}
9194
Resources defaultResources = skinManager.getDefaultResources();
9295
Log.v("register drawable {} 0x{}", defaultResources.getResourceName(id), Integer.toHexString(id));
9396

@@ -122,7 +125,9 @@ public synchronized void registerColorStateList(int id) {
122125
Log.d("Had registered id:{}, ignore", id);
123126
return;
124127
}
125-
128+
if(skinManager == null){
129+
skinManager = SkinManager.getInstance();
130+
}
126131
Resources defaultResources = skinManager.getDefaultResources();
127132
Log.v("register ColorStateList {} 0x{}", defaultResources.getResourceName(id), Integer.toHexString(id));
128133

@@ -147,7 +152,9 @@ private synchronized void handleMenuInflate(int id) {
147152
if ((SkinProxyResources.APP_ID_MASK & id) != SkinProxyResources.APP_ID_MASK) {
148153
return;
149154
}
150-
155+
if(skinManager == null){
156+
skinManager = SkinManager.getInstance();
157+
}
151158
ArrayList<Activity> activitys = skinManager.getActivitys();
152159
int size = activitys.size();
153160
if (size == 0) {
@@ -214,7 +221,9 @@ public synchronized void registerLayout(int id) {
214221
if (handledDrawableId.contains(id)) {
215222
return;
216223
}
217-
224+
if(skinManager == null){
225+
skinManager = SkinManager.getInstance();
226+
}
218227
Resources defaultResources = skinManager.getDefaultResources();
219228
Log.v("register layout {} 0x{}", defaultResources.getResourceName(id), Integer.toHexString(id));
220229
handledDrawableId.put(id);

src/com/cantalou/skin/SkinManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public class SkinManager {
123123
/**
124124
* 资源缓存key和资源id管理对象
125125
*/
126-
private CacheKeyAndIdManager cacheKeyAndIdManager = CacheKeyAndIdManager.getInstance();
126+
private CacheKeyAndIdManager cacheKeyAndIdManager;
127127

128128
ArrayDeque<Runnable> serialTasks = new ArrayDeque<Runnable>() {
129129
Runnable mActive;
@@ -160,6 +160,7 @@ private static class InstanceHolder {
160160
}
161161

162162
private SkinManager() {
163+
cacheKeyAndIdManager = CacheKeyAndIdManager.getInstance();
163164
}
164165

165166
public static com.cantalou.skin.SkinManager getInstance() {
@@ -461,7 +462,7 @@ private void onResourcesChange(View v) {
461462
((AbstractHolder) tag).reloadAttr(v, v.getContext().getResources());
462463
} else {
463464
AbstractHolder ah = ViewFactory.getHolder(v.getClass().getName());
464-
if(ah != null){
465+
if (ah != null) {
465466
ah.reloadAttr(v, v.getContext().getResources());
466467
}
467468
}

0 commit comments

Comments
 (0)