package com.simplecity.amp_library.ui.activities;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.util.Log;
import android.view.KeyEvent;
import com.google.android.libraries.cast.companionlibrary.cast.VideoCastManager;
import com.google.android.libraries.cast.companionlibrary.cast.callbacks.VideoCastConsumer;
import com.google.android.libraries.cast.companionlibrary.cast.callbacks.VideoCastConsumerImpl;
import com.simplecity.amp_library.ShuttleApplication;
import com.simplecity.amp_library.utils.ShuttleUtils;
public abstract class BaseCastActivity extends BaseActivity {
private static final String TAG = "BaseCastActivity";
public VideoCastManager mCastManager;
private VideoCastConsumer mCastConsumer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (ShuttleUtils.isUpgraded()) {
mCastManager = VideoCastManager.getInstance();
}
mCastConsumer = new VideoCastConsumerImpl() {
@Override
public void onConnectionSuspended(int cause) {
Log.d(TAG, "onConnectionSuspended() was called with cause: " + cause);
//Todo: Show toast
}
@Override
public void onConnectivityRecovered() {
//Todo: Show toast
}
};
if (mCastManager != null) {
mCastManager.reconnectSessionIfPossible();
}
}
@Override
protected void onPause() {
if (mCastManager != null) {
mCastManager.removeVideoCastConsumer(mCastConsumer);
}
super.onPause();
}
@Override
public void onResume() {
super.onResume();
if (ShuttleUtils.isUpgraded()) {
mCastManager = VideoCastManager.getInstance();
mCastManager.addVideoCastConsumer(mCastConsumer);
}
}
@Override
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
if (mCastManager != null) {
return mCastManager.onDispatchVolumeKeyEvent(event, ShuttleApplication.VOLUME_INCREMENT)
|| super.dispatchKeyEvent(event);
}
return super.dispatchKeyEvent(event);
}
}