package de.reinhardt_karlheinz.pcc.android.plugins.remote_minecraft;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import de.reinhardt_karlheinz.pcc.android.pcc.aidl.IPCCPlugin;

public class PCCRemoteMinecraftService extends Service {
  private static final String LOGTAG = "PCC-REMOTE_MINECRAFT_SERVICE";

  private final IPCCPlugin.Stub pluginBinder = new IPCCPlugin.Stub() {

    @Override
    public String getName() throws RemoteException {
      // TODO Auto-generated method stub
      return "PCC-Remote Minecraft";
    }

    @Override
    public String getVersion() throws RemoteException {
      // TODO Auto-generated method stub
      return "0.0.7";
    }

    @Override
    public String getAuthor() throws RemoteException {
      // TODO Auto-generated method stub
      return "Michael, Nils, Karlheinz";
    }

    @Override
    public String getDescription() throws RemoteException {
      // TODO Auto-generated method stub
      return "Remote Control for the sandbox game Minecraft";
    }

    @Override
    public void onPluginStart() throws RemoteException {
      // TODO Auto-generated method stub
    }

    @Override
    public void onPluginClose() throws RemoteException {
      // TODO Auto-generated method stub

    }

    @Override
    public void onPluginShow() throws RemoteException {
      // TODO Auto-generated method stub
      Log.d(LOGTAG, "showing Remote Minecraft Activity");
      Intent remoteMinecraftActivity = new Intent(
          PCCRemoteMinecraftService.this, RemoteMinecraftActivity.class);
      remoteMinecraftActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
      startActivity(remoteMinecraftActivity);

    }

    @Override
    public void onPluginHide() throws RemoteException {
      // TODO Auto-generated method stub

    }

    @Override
    public void onConnectionEstablished() throws RemoteException {
      // TODO Auto-generated method stub

    }

    @Override
    public void onConnectionLost() throws RemoteException {
      // TODO Auto-generated method stub

    }

    @Override
    public void onMessageReceived(String msg) throws RemoteException {
      // TODO Auto-generated method stub

    }

    @Override
    public void onCommandReceived(String cmd) throws RemoteException {
      // TODO Auto-generated method stub

    }

  };

  @Override
  public void onCreate() {
    super.onCreate();
  }

  @Override
  public void onDestroy() {
    super.onDestroy();
  }

  @Override
  public IBinder onBind(Intent intent) {
    Log.d(LOGTAG, "returning plugin binder");// TODO remove
    // Return the interface
    return pluginBinder;
  }
}
