package net.miz_hi.smileessence.command.status.impl; import android.text.TextUtils; import net.miz_hi.smileessence.Client; import net.miz_hi.smileessence.command.IConfirmable; import net.miz_hi.smileessence.command.IHideable; import net.miz_hi.smileessence.command.status.StatusCommand; import net.miz_hi.smileessence.model.status.tweet.TweetModel; import net.miz_hi.smileessence.notification.Notificator; import net.miz_hi.smileessence.preference.EnumPreferenceKey; import net.miz_hi.smileessence.task.impl.RetweetTask; import net.miz_hi.smileessence.task.impl.TweetTask; import twitter4j.StatusUpdate; import java.util.Calendar; import java.util.Locale; public class StatusCommandProduce extends StatusCommand implements IHideable, IConfirmable { public StatusCommandProduce(TweetModel status) { super(status); } @Override public String getName() { return "今日のおもしろツイートです"; } @Override public void workOnUiThread() { String lastProduce = Client.getPreferenceValue(EnumPreferenceKey.LAST_PRODUCE_DATE); Calendar today = Calendar.getInstance(Locale.getDefault()); String todayStr = String.format("%02d%02d", today.get(Calendar.MONTH) + 1, today.get(Calendar.DATE)); System.out.println(todayStr); System.out.println(lastProduce); if (TextUtils.isEmpty(lastProduce) || !lastProduce.equals(todayStr)) { Client.putPreferenceValue(EnumPreferenceKey.LAST_PRODUCE_DATE, todayStr); new TweetTask(new StatusUpdate("今日のおもしろツイートです")) { @Override public void onPostExecute(Boolean result) { if (result) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } status.favorite(); new RetweetTask(status.statusId) { @Override public void onPostExecute(Boolean result) { if (result) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } new TweetTask(new StatusUpdate("以上です")).callAsync(); } else { new TweetTask(new StatusUpdate("紹介失敗しました")).callAsync(); } } }.callAsync(); } else { Notificator.alert("失敗しました"); } } }.callAsync(); } else { Notificator.alert("今日はすでに認定済みです"); } } @Override public boolean getDefaultVisibility() { return !status.getOriginal().user.isProtected && !status.getOriginal().getUser().isMe(); } }