package bee.union.sdk;

import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;

import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;

public class UnionAppActivity extends UnityPlayerActivity {
    protected static final String LOG_TAG = "[bee-unity]";
    public static final String UNITY_CALL_BACK = "TYPHOON_SDK_CALL_BACK";

    public UnionAppActivity() {
    }

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }


    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return mUnityPlayer.injectEvent(event);
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return mUnityPlayer.injectEvent(event);
    }

    //TODO//播放视频广告
    public void showVideo() {
        log("showVideo...");
        invokeVideoSuccess();//TODO//触发成功，通知游戏端发货
        //invokeVideoFail("失败原因");//TODO//触发失败，通知游戏端失败原因
    }

    //TODO//播放插页广告
    public void showInters() {
        log("showInters...");
    }

    //TODO//播放banner
    public void showBanner() {
        log("showBanner...");
        //TODO//播放banner广告
    }

    //TODO//隐藏banner
    public void hideBanner() {
        log("hideBanner...");
        //TODO//播放banner广告
    }

    //TODO//事件上报
    public void trackEvent(String eventName, String data) {
        log("trackEvent... eventName = " + eventName + "data = " + data);
    }


    private void invokeVideoSuccess() {
        this.log("invokeVideoSuccess");
        this.sendMessageToUnity("OnVideoCallBack", "1");
    }

    private void invokeVideoFail(String error) {
        this.log("invokeVideoFail error = " + error);
        this.sendMessageToUnity("OnVideoCallBack", error);
    }


    public void sendMessageToUnity(String method, String data) {
        log("sendMessageToUnity," + data);
        UnityPlayer.UnitySendMessage(UNITY_CALL_BACK, method, data);
    }

    private void log(String arg) {
        Log.v(LOG_TAG, arg);
    }
}
