package com.kaltura.testapp; import android.content.pm.ActivityInfo; import android.content.res.Configuration; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import com.kaltura.playersdk.KPPlayerConfig; import com.kaltura.playersdk.PlayerViewController; import com.kaltura.playersdk.events.KPEventListener; import com.kaltura.playersdk.events.KPlayerState; import com.kaltura.playersdk.types.KPError; public class MainActivity extends AppCompatActivity implements PlayerFragment.OnFragmentInteractionListener, View.OnClickListener { private PlayerFragment mPlayerFragment; private PlayerViewController mPlayer; private Button mPreloadButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); Button button = (Button)findViewById(R.id.button); button.setOnClickListener(this); button = (Button)findViewById(R.id.button2); button.setOnClickListener(this); mPreloadButton = (Button)findViewById(R.id.button3); mPreloadButton.setOnClickListener(this); } private void updateButtons(int visibility) { findViewById(R.id.button2).setVisibility(visibility); findViewById(R.id.button).setVisibility(visibility); mPreloadButton.setVisibility(visibility); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override protected void onPause() { super.onPause(); if (mPlayerFragment != null && !isFinishing()) { mPlayerFragment.killPlayer(); mPlayerFragment = null; findViewById(R.id.button).setVisibility(View.VISIBLE); } } @Override public void onFragmentInteraction(Uri uri) { Log.d("URI", uri.toString()); } @Override public void onBackPressed() { if (getFragmentManager().getBackStackEntryCount() > 0) { mPlayerFragment.pausePlayer(); getFragmentManager().popBackStack(); findViewById(R.id.button).setVisibility(View.VISIBLE); } else if (mPlayer != null) { mPlayer.setVisibility(View.INVISIBLE); mPlayer.sendNotification("doPause", null); updateButtons(View.VISIBLE); } else { super.onBackPressed(); } } @Override public void onClick(View v) { if (v.getId() == R.id.button) { v.setVisibility(View.INVISIBLE); findViewById(R.id.button2).setVisibility(View.INVISIBLE); boolean isPlayer = false; if (mPlayerFragment == null) { mPlayerFragment = new PlayerFragment(); isPlayer = true; } getFragmentManager().beginTransaction() .setCustomAnimations(R.animator.slide_up, R.animator.slide_down) .add(R.id.fragment_container, mPlayerFragment) .addToBackStack(mPlayerFragment.getClass().getName()) .commit(); if (!isPlayer) { mPlayerFragment.resumePlayer(); } // if Preload clicked } else if (v.getId() == R.id.button3) { // when the vidoe is ready to play show the player and start playing if (!mPreloadButton.getText().equals("Preload Player")) { // updateButtons(View.INVISIBLE); mPlayer.setVisibility(View.VISIBLE); mPlayer.sendNotification("doPlay", null); // start loading the player while is hidden } else if (mPreloadButton.getText().equals("Preload Player")) { mPreloadButton.setText("Loading Player.."); if (mPlayer == null) { mPlayer = (PlayerViewController) findViewById(R.id.player); final KPPlayerConfig config = new KPPlayerConfig("http://kgit.html5video.org/tags/v2.44.rc5/mwEmbedFrame.php", "32855491", "1424501"); config.setEntryId("1_32865911"); mPlayer.loadPlayerIntoActivity(this); mPlayer.initWithConfiguration(config); mPlayer.addEventListener(new KPEventListener() { @Override public void onKPlayerStateChanged(PlayerViewController playerViewController, KPlayerState state) { if (state == KPlayerState.READY) { mPreloadButton.setText("Ready To Play"); } } @Override public void onKPlayerError(PlayerViewController playerViewController, KPError error) { } @Override public void onKPlayerPlayheadUpdate(PlayerViewController playerViewController, float currentTime) { } @Override public void onKPlayerFullScreenToggeled(PlayerViewController playerViewController, boolean isFullscrenn) { } }); } } } else { KPPlayerConfig config = new KPPlayerConfig("http://kgit.html5video.org/tags/v2.40.rc8", "26698911", "1831271"); config.setEntryId("1_1fncksnw"); if (mPlayer != null) { mPlayer.changeMedia("0_vs3e2h32"); // Intent intent = new Intent(this, OfflineActivity.class); // startActivity(intent); } } } }