| Index: webrtc/examples/android/media_demo/src/org/webrtc/webrtcdemo/WebRTCDemo.java
|
| diff --git a/webrtc/examples/android/media_demo/src/org/webrtc/webrtcdemo/WebRTCDemo.java b/webrtc/examples/android/media_demo/src/org/webrtc/webrtcdemo/WebRTCDemo.java
|
| deleted file mode 100644
|
| index 3b972cf1268866166b73fef7a1bf4d3d9741c456..0000000000000000000000000000000000000000
|
| --- a/webrtc/examples/android/media_demo/src/org/webrtc/webrtcdemo/WebRTCDemo.java
|
| +++ /dev/null
|
| @@ -1,210 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license
|
| - * that can be found in the LICENSE file in the root of the source
|
| - * tree. An additional intellectual property rights grant can be found
|
| - * in the file PATENTS. All contributing project authors may
|
| - * be found in the AUTHORS file in the root of the source tree.
|
| - */
|
| -
|
| -package org.webrtc.webrtcdemo;
|
| -
|
| -import android.app.ActionBar.Tab;
|
| -import android.app.ActionBar.TabListener;
|
| -import android.app.ActionBar;
|
| -import android.app.Activity;
|
| -import android.app.Fragment;
|
| -import android.app.FragmentTransaction;
|
| -import android.content.pm.ActivityInfo;
|
| -import android.media.AudioManager;
|
| -import android.os.Bundle;
|
| -import android.os.Handler;
|
| -import android.view.KeyEvent;
|
| -import android.view.Menu;
|
| -import android.view.MenuInflater;
|
| -import android.view.MenuItem;
|
| -import android.view.WindowManager;
|
| -
|
| -public class WebRTCDemo extends Activity implements MenuStateProvider {
|
| -
|
| - // From http://developer.android.com/guide/topics/ui/actionbar.html
|
| - public static class TabListener<T extends Fragment>
|
| - implements ActionBar.TabListener {
|
| - private Fragment fragment;
|
| - private final Activity activity;
|
| - private final String tag;
|
| - private final Class<T> instance;
|
| - private final Bundle args;
|
| -
|
| - public TabListener(Activity activity, String tag, Class<T> clz) {
|
| - this(activity, tag, clz, null);
|
| - }
|
| -
|
| - public TabListener(Activity activity, String tag, Class<T> clz,
|
| - Bundle args) {
|
| - this.activity = activity;
|
| - this.tag = tag;
|
| - this.instance = clz;
|
| - this.args = args;
|
| - }
|
| -
|
| - public void onTabSelected(Tab tab, FragmentTransaction ft) {
|
| - // Check if the fragment is already initialized
|
| - if (fragment == null) {
|
| - // If not, instantiate and add it to the activity
|
| - fragment = Fragment.instantiate(activity, instance.getName(), args);
|
| - ft.add(android.R.id.content, fragment, tag);
|
| - } else {
|
| - // If it exists, simply attach it in order to show it
|
| - ft.attach(fragment);
|
| - }
|
| - }
|
| -
|
| - public void onTabUnselected(Tab tab, FragmentTransaction ft) {
|
| - if (fragment != null) {
|
| - // Detach the fragment, because another one is being attached
|
| - ft.detach(fragment);
|
| - }
|
| - }
|
| -
|
| - public void onTabReselected(Tab tab, FragmentTransaction ft) {
|
| - // User selected the already selected tab. Do nothing.
|
| - }
|
| - }
|
| -
|
| - private NativeWebRtcContextRegistry contextRegistry = null;
|
| - private MediaEngine mediaEngine = null;
|
| - private Handler handler;
|
| - public MediaEngine getEngine() { return mediaEngine; }
|
| -
|
| - @Override
|
| - public void onCreate(Bundle savedInstanceState) {
|
| - super.onCreate(savedInstanceState);
|
| -
|
| - // Global settings.
|
| - getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
| - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
| -
|
| - // State.
|
| - // Must be instantiated before MediaEngine.
|
| - contextRegistry = new NativeWebRtcContextRegistry();
|
| - contextRegistry.register(this);
|
| -
|
| - // Load all settings dictated in xml.
|
| - mediaEngine = new MediaEngine(this);
|
| - mediaEngine.setRemoteIp(getResources().getString(R.string.loopbackIp));
|
| -
|
| - mediaEngine.setAudio(getResources().getBoolean(
|
| - R.bool.audio_enabled_default));
|
| - mediaEngine.setAudioCodec(mediaEngine.getIsacIndex());
|
| - mediaEngine.setAudioRxPort(getResources().getInteger(
|
| - R.integer.aRxPortDefault));
|
| - mediaEngine.setAudioTxPort(getResources().getInteger(
|
| - R.integer.aTxPortDefault));
|
| - mediaEngine.setSpeaker(getResources().getBoolean(
|
| - R.bool.speaker_enabled_default));
|
| - mediaEngine.setDebuging(getResources().getBoolean(
|
| - R.bool.apm_debug_enabled_default));
|
| -
|
| - // Create action bar with all tabs.
|
| - ActionBar actionBar = getActionBar();
|
| - actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
|
| - actionBar.setDisplayShowTitleEnabled(false);
|
| -
|
| - Tab tab = actionBar.newTab()
|
| - .setText("Main")
|
| - .setTabListener(new TabListener<MainMenuFragment>(
|
| - this, "main", MainMenuFragment.class));
|
| - actionBar.addTab(tab);
|
| -
|
| - tab = actionBar.newTab()
|
| - .setText("Settings")
|
| - .setTabListener(new TabListener<SettingsMenuFragment>(
|
| - this, "Settings", SettingsMenuFragment.class));
|
| - actionBar.addTab(tab);
|
| -
|
| - tab = actionBar.newTab()
|
| - .setText("Audio")
|
| - .setTabListener(new TabListener<AudioMenuFragment>(
|
| - this, "Audio", AudioMenuFragment.class));
|
| - actionBar.addTab(tab);
|
| -
|
| - enableTimedStartStop();
|
| -
|
| - // Hint that voice call audio stream should be used for hardware volume
|
| - // controls.
|
| - setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
|
| - }
|
| -
|
| - @Override
|
| - public boolean onCreateOptionsMenu(Menu menu) {
|
| - MenuInflater inflater = getMenuInflater();
|
| - inflater.inflate(R.menu.main_activity_actions, menu);
|
| - return super.onCreateOptionsMenu(menu);
|
| - }
|
| -
|
| - @Override
|
| - public boolean onOptionsItemSelected(MenuItem item) {
|
| - // Handle presses on the action bar items
|
| - switch (item.getItemId()) {
|
| - case R.id.action_exit:
|
| - MainMenuFragment main = (MainMenuFragment)getFragmentManager()
|
| - .findFragmentByTag("main");
|
| - main.stopAll();
|
| - finish();
|
| - return true;
|
| - default:
|
| - return super.onOptionsItemSelected(item);
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onDestroy() {
|
| - disableTimedStartStop();
|
| - mediaEngine.dispose();
|
| - contextRegistry.unRegister();
|
| - super.onDestroy();
|
| - }
|
| -
|
| - @Override
|
| - public boolean onKeyDown(int keyCode, KeyEvent event) {
|
| - if (keyCode == KeyEvent.KEYCODE_BACK) {
|
| - // Prevent app from running in the background.
|
| - MainMenuFragment main = (MainMenuFragment)getFragmentManager()
|
| - .findFragmentByTag("main");
|
| - main.stopAll();
|
| - finish();
|
| - return true;
|
| - }
|
| - return super.onKeyDown(keyCode, event);
|
| - }
|
| -
|
| - private int getCallRestartPeriodicity() {
|
| - return getResources().getInteger(R.integer.call_restart_periodicity_ms);
|
| - }
|
| -
|
| - // Thread repeatedly calling start/stop.
|
| - void enableTimedStartStop() {
|
| - if (getCallRestartPeriodicity() > 0) {
|
| - // Periodicity == 0 <-> Disabled.
|
| - handler = new Handler();
|
| - handler.postDelayed(startOrStopCallback, getCallRestartPeriodicity());
|
| - }
|
| - }
|
| -
|
| - void disableTimedStartStop() {
|
| - if (handler != null) {
|
| - handler.removeCallbacks(startOrStopCallback);
|
| - }
|
| - }
|
| -
|
| - private Runnable startOrStopCallback = new Runnable() {
|
| - public void run() {
|
| - MainMenuFragment main = (MainMenuFragment)getFragmentManager()
|
| - .findFragmentByTag("main");
|
| - main.toggleStart();
|
| - handler.postDelayed(startOrStopCallback, getCallRestartPeriodicity());
|
| - }
|
| - };
|
| -}
|
|
|