/* * Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com> * All Rights Reserved. */ package me.zhanghai.android.douya.broadcast.content; import android.content.Context; import me.zhanghai.android.douya.R; import me.zhanghai.android.douya.content.ResourceWriterManager; import me.zhanghai.android.douya.network.api.info.apiv2.Broadcast; import me.zhanghai.android.douya.util.ToastUtils; public class LikeBroadcastManager extends ResourceWriterManager<LikeBroadcastWriter> { private static class InstanceHolder { public static final LikeBroadcastManager VALUE = new LikeBroadcastManager(); } public static LikeBroadcastManager getInstance() { return InstanceHolder.VALUE; } /** * @deprecated Use {@link #write(Broadcast, boolean, Context)} instead. */ public void write(long broadcastId, boolean like, Context context) { add(new LikeBroadcastWriter(broadcastId, like, this), context); } public boolean write(Broadcast broadcast, boolean like, Context context) { if (shouldWrite(broadcast, context)) { add(new LikeBroadcastWriter(broadcast, like, this), context); return true; } else { return false; } } private boolean shouldWrite(Broadcast broadcast, Context context) { if (broadcast.isAuthorOneself(context)) { ToastUtils.show(R.string.broadcast_like_error_cannot_like_oneself, context); return false; } else { return true; } } public boolean isWriting(long broadcastId) { return findWriter(broadcastId) != null; } public boolean isWritingLike(long broadcastId) { LikeBroadcastWriter writer = findWriter(broadcastId); return writer != null && writer.isLike(); } private LikeBroadcastWriter findWriter(long broadcastId) { for (LikeBroadcastWriter writer : getWriters()) { if (writer.getBroadcastId() == broadcastId) { return writer; } } return null; } }