@Override
 MessageEditorData executeAsync(MyAccount maIn, long msgId) {
   MyAccount ma =
       MyContextHolder.get()
           .persistentAccounts()
           .fromUserId(MyQuery.msgIdToLongColumnValue(MyDatabase.Msg.SENDER_ID, msgId));
   CommandData commandData = CommandData.updateStatus(ma.getAccountName(), msgId);
   MyServiceManager.sendManualForegroundCommand(commandData);
   return null;
 }
 @Override
 public void onReceive(CommandData commandData, MyServiceEvent event) {
   if (event != MyServiceEvent.AFTER_EXECUTING_COMMAND) {
     return;
   }
   final String method = "onReceive";
   switch (commandData.getCommand()) {
     case AUTOMATIC_UPDATE:
     case FETCH_TIMELINE:
       if (mParams.mTimelineType != commandData.getTimelineType()) {
         break;
       }
     case GET_STATUS:
     case SEARCH_MESSAGE:
       if (commandData.getResult().getDownloadedCount() > 0) {
         if (MyLog.isVerboseEnabled()) {
           logV(method, "Content changed, " + commandData.toString());
         }
         onContentChanged();
       }
       break;
     case CREATE_FAVORITE:
     case DESTROY_FAVORITE:
     case DESTROY_REBLOG:
     case DESTROY_STATUS:
     case FETCH_ATTACHMENT:
     case FETCH_AVATAR:
     case REBLOG:
     case UPDATE_STATUS:
       if (!commandData.getResult().hasError()) {
         if (MyLog.isVerboseEnabled()) {
           logV(method, "Content changed, " + commandData.toString());
         }
         onContentChanged();
       }
       break;
     default:
       break;
   }
 }