Add ref watching to postlinkable

I hope I'm doing this right
filtering
Floens 10 years ago
parent 784272e9e7
commit 24f4e4d833
  1. 8
      Clover/app/src/main/java/org/floens/chan/ChanApplication.java
  2. 22
      Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java

@ -27,6 +27,7 @@ import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.leakcanary.RefWatcher;
import org.floens.chan.chan.ChanUrls;
import org.floens.chan.core.manager.BoardManager;
@ -64,6 +65,7 @@ public class ChanApplication extends Application {
private static ReplyManager replyManager;
private static DatabaseManager databaseManager;
private static FileCache fileCache;
private static RefWatcher refWatcher;
private String userAgent;
private int activityForegroundCounter = 0;
@ -105,10 +107,13 @@ public class ChanApplication extends Application {
return fileCache;
}
public static RefWatcher getRefWatcher() {
return refWatcher;
}
@Override
public void onCreate() {
super.onCreate();
LeakCanary.install(this);
// Force the overflow button to show, even on devices that have a
// physical button.
@ -123,6 +128,7 @@ public class ChanApplication extends Application {
}
if (ChanBuild.DEVELOPER_MODE) {
refWatcher = LeakCanary.install(this);
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder().detectAll().penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll().penaltyLog().build());
}

@ -21,15 +21,22 @@ import android.content.Context;
import android.os.Parcelable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.SpannedString;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.squareup.leakcanary.RefWatcher;
import org.floens.chan.ChanApplication;
import org.floens.chan.ChanBuild;
import org.floens.chan.R;
import org.floens.chan.core.model.ChanThread;
import org.floens.chan.core.model.Pin;
import org.floens.chan.core.model.Post;
import org.floens.chan.core.model.PostImage;
import org.floens.chan.core.model.PostLinkable;
import org.floens.chan.ui.adapter.PostAdapter;
import org.floens.chan.ui.cell.ThreadStatusCell;
import org.floens.chan.ui.view.PostView;
@ -127,6 +134,21 @@ public class ThreadListLayout extends LinearLayout {
}
public void cleanup() {
if (ChanBuild.DEVELOPER_MODE) {
Pin pin = ChanApplication.getWatchManager().findPinByLoadable(showingThread.loadable);
if (pin == null) {
for (Post post : showingThread.posts) {
if (post.comment instanceof SpannedString) {
SpannedString commentSpannable = (SpannedString) post.comment;
PostLinkable[] linkables = commentSpannable.getSpans(0, commentSpannable.length(), PostLinkable.class);
for (PostLinkable linkable : linkables) {
ChanApplication.getRefWatcher().watch(linkable, linkable.key + " " + linkable.value);
}
}
}
}
}
postAdapter.cleanup();
showingThread = null;
}

Loading…
Cancel
Save