OSDN Git Service

d3b5a4e606689d8f9d3ae35f135274a60b48b863
[android-x86/packages-apps-Eleven.git] / src / com / cyanogenmod / eleven / recycler / RecycleHolder.java
1 /*
2  * Copyright (C) 2012 Andrew Neal
3  * Copyright (C) 2014 The CyanogenMod Project
4  * Licensed under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with the
6  * License. You may obtain a copy of the License at
7  * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
8  * or agreed to in writing, software distributed under the License is
9  * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
10  * KIND, either express or implied. See the License for the specific language
11  * governing permissions and limitations under the License.
12  */
13
14 package com.cyanogenmod.eleven.recycler;
15
16 import android.view.View;
17 import android.widget.AbsListView.RecyclerListener;
18
19 import com.cyanogenmod.eleven.cache.ImageWorker;
20 import com.cyanogenmod.eleven.ui.MusicHolder;
21
22 /**
23  * A @ {@link RecyclerListener} for {@link MusicHolder}'s views.
24  * 
25  * @author Andrew Neal (andrewdneal@gmail.com)
26  */
27 public class RecycleHolder implements RecyclerListener {
28
29     /**
30      * {@inheritDoc}
31      */
32     @Override
33     public void onMovedToScrapHeap(final View view) {
34         MusicHolder holder = (MusicHolder)view.getTag();
35         if (holder == null) {
36             holder = new MusicHolder(view);
37             view.setTag(holder);
38         }
39
40         // Release mImage's reference
41         if (holder.mImage.get() != null) {
42             ImageWorker.cancelWork(holder.mImage.get());
43             holder.mImage.get().setImageDrawable(null);
44             holder.mImage.get().setImageBitmap(null);
45         }
46
47         // Release mLineOne's reference
48         if (holder.mLineOne.get() != null) {
49             holder.mLineOne.get().setText(null);
50         }
51
52         // Release mLineTwo's reference
53         if (holder.mLineTwo.get() != null) {
54             holder.mLineTwo.get().setText(null);
55         }
56
57         // Stop the play pause button logic
58         if (holder.mPlayPauseProgressButton.get() != null) {
59             holder.mPlayPauseProgressButton.get().disableAndHide();
60         }
61     }
62
63 }