Chromium Code Reviews| Index: webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java |
| diff --git a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java |
| index 56d915f00adbf8b94d4e7ec7391d85ad6e974e41..b17775d71860c2949b2e2c1bc7ea5c3bff12a923 100644 |
| --- a/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java |
| +++ b/webrtc/examples/androidapp/src/org/appspot/apprtc/ConnectActivity.java |
| @@ -149,8 +149,12 @@ public class ConnectActivity extends Activity { |
| CallActivity.EXTRA_LOOPBACK, false); |
| int runTimeMs = intent.getIntExtra( |
| CallActivity.EXTRA_RUNTIME, 0); |
| + boolean overrideInput = intent.getBooleanExtra( |
| + CallActivity.EXTRA_LOOPBACK, false); |
| + boolean useValuesFromIntent = intent.getBooleanExtra( |
| + CallActivity.EXTRA_USE_VALUES_FROM_INTENT, false); |
| String room = sharedPref.getString(keyprefRoom, ""); |
| - connectToRoom(room, true, loopback, runTimeMs); |
| + connectToRoom(room, true, loopback, useValuesFromIntent, runTimeMs); |
| } |
| } |
| @@ -195,7 +199,7 @@ public class ConnectActivity extends Activity { |
| startActivity(intent); |
| return true; |
| } else if (item.getItemId() == R.id.action_loopback) { |
| - connectToRoom(null, false, true, 0); |
| + connectToRoom(null, false, true, false, 0); |
| return true; |
| } else { |
| return super.onOptionsItemSelected(item); |
| @@ -250,8 +254,43 @@ public class ConnectActivity extends Activity { |
| } |
| } |
| + /** |
| + * Get a value from the shared preference or from the intent, if it does not |
| + * exist the default is used. |
| + */ |
| + private String sharedPrefGetString(int attributeId, String intentName, |
| + int defaultId, boolean useFromIntent) { |
| + String defaultValue = getString(defaultId); |
| + if (useFromIntent) { |
| + String value = getIntent().getStringExtra(intentName); |
| + if (value != null) { |
| + return value; |
| + } |
| + return defaultValue; |
| + } else { |
| + String attributeName = getString(attributeId); |
| + return sharedPref.getString(attributeName, defaultValue); |
| + } |
| + } |
| + |
| + /** |
| + * Get a value from the shared preference or from the intent, if it does not |
| + * exist the default is used. |
| + */ |
| + private boolean sharedPrefGetBoolean(int attributeId, String intentName, |
| + int defaultId, boolean useFromIntent) { |
| + boolean defaultValue = Boolean.valueOf(getString(defaultId)); |
| + if (useFromIntent) { |
| + return getIntent().getBooleanExtra(intentName, defaultValue); |
| + } else { |
| + String attributeName = getString(attributeId); |
| + return sharedPref.getBoolean(attributeName, defaultValue); |
| + } |
| + } |
| + |
| private void connectToRoom( |
| - String roomId, boolean commandLineRun, boolean loopback, int runTimeMs) { |
| + String roomId, boolean commandLineRun, boolean loopback, |
| + boolean useValuesFromIntent, int runTimeMs) { |
| this.commandLineRun = commandLineRun; |
| // roomId is random for loopback. |
| @@ -264,66 +303,99 @@ public class ConnectActivity extends Activity { |
| getString(R.string.pref_room_server_url_default)); |
| // Video call enabled flag. |
| - boolean videoCallEnabled = sharedPref.getBoolean(keyprefVideoCallEnabled, |
| - Boolean.valueOf(getString(R.string.pref_videocall_default))); |
| + boolean videoCallEnabled = sharedPrefGetBoolean( |
| + R.string.pref_videocall_key, |
| + CallActivity.EXTRA_VIDEO_CALL, |
| + R.string.pref_videocall_default, |
| + useValuesFromIntent); |
| // Use Camera2 option. |
| - boolean useCamera2 = sharedPref.getBoolean(keyprefCamera2, |
| - Boolean.valueOf(getString(R.string.pref_camera2_default))); |
| + boolean useCamera2 = sharedPrefGetBoolean( |
| + R.string.pref_camera2_key, |
| + CallActivity.EXTRA_CAMERA2, |
| + R.string.pref_camera2_default, |
| + useValuesFromIntent); |
| // Get default codecs. |
| - String videoCodec = sharedPref.getString(keyprefVideoCodec, |
| - getString(R.string.pref_videocodec_default)); |
| - String audioCodec = sharedPref.getString(keyprefAudioCodec, |
| - getString(R.string.pref_audiocodec_default)); |
| + String videoCodec = sharedPrefGetString( |
| + R.string.pref_videocodec_key, |
| + CallActivity.EXTRA_VIDEOCODEC, |
| + R.string.pref_videocodec_default, |
| + useValuesFromIntent); |
| + String audioCodec = sharedPrefGetString( |
| + R.string.pref_audiocodec_key, |
| + CallActivity.EXTRA_AUDIOCODEC, |
| + R.string.pref_audiocodec_default, |
| + useValuesFromIntent); |
| // Check HW codec flag. |
| - boolean hwCodec = sharedPref.getBoolean(keyprefHwCodecAcceleration, |
| - Boolean.valueOf(getString(R.string.pref_hwcodec_default))); |
| + boolean hwCodec = sharedPrefGetBoolean( |
| + R.string.pref_hwcodec_key, |
| + CallActivity.EXTRA_HWCODEC_ENABLED, |
| + R.string.pref_hwcodec_default, |
| + useValuesFromIntent); |
| // Check Capture to texture. |
| - boolean captureToTexture = sharedPref.getBoolean(keyprefCaptureToTexture, |
| - Boolean.valueOf(getString(R.string.pref_capturetotexture_default))); |
| + boolean captureToTexture = sharedPrefGetBoolean( |
| + R.string.pref_capturetotexture_key, |
| + CallActivity.EXTRA_CAPTURETOTEXTURE_ENABLED, |
| + R.string.pref_capturetotexture_default, |
| + useValuesFromIntent); |
| // Check Disable Audio Processing flag. |
| - boolean noAudioProcessing = sharedPref.getBoolean( |
| - keyprefNoAudioProcessingPipeline, |
| - Boolean.valueOf(getString(R.string.pref_noaudioprocessing_default))); |
| + boolean noAudioProcessing = sharedPrefGetBoolean( |
| + R.string.pref_noaudioprocessing_key, |
| + CallActivity.EXTRA_NOAUDIOPROCESSING_ENABLED, |
| + R.string.pref_noaudioprocessing_default, |
| + useValuesFromIntent); |
| // Check Disable Audio Processing flag. |
| - boolean aecDump = sharedPref.getBoolean( |
| - keyprefAecDump, |
| - Boolean.valueOf(getString(R.string.pref_aecdump_default))); |
| + boolean aecDump = sharedPrefGetBoolean( |
| + R.string.pref_aecdump_key, |
| + CallActivity.EXTRA_AECDUMP_ENABLED, |
| + R.string.pref_aecdump_default, |
| + useValuesFromIntent); |
| // Check OpenSL ES enabled flag. |
| - boolean useOpenSLES = sharedPref.getBoolean( |
| - keyprefOpenSLES, |
| - Boolean.valueOf(getString(R.string.pref_opensles_default))); |
| + boolean useOpenSLES = sharedPrefGetBoolean( |
| + R.string.pref_opensles_key, |
| + CallActivity.EXTRA_OPENSLES_ENABLED, |
| + R.string.pref_opensles_default, |
| + useValuesFromIntent); |
| // Check Disable built-in AEC flag. |
| - boolean disableBuiltInAEC = sharedPref.getBoolean( |
| - keyprefDisableBuiltInAec, |
| - Boolean.valueOf(getString(R.string.pref_disable_built_in_aec_default))); |
| + boolean disableBuiltInAEC = sharedPrefGetBoolean( |
| + R.string.pref_disable_built_in_aec_key, |
| + CallActivity.EXTRA_DISABLE_BUILT_IN_AEC, |
| + R.string.pref_disable_built_in_aec_default, |
| + useValuesFromIntent); |
| // Check Disable built-in AGC flag. |
| - boolean disableBuiltInAGC = sharedPref.getBoolean( |
| - keyprefDisableBuiltInAgc, |
| - Boolean.valueOf(getString(R.string.pref_disable_built_in_agc_default))); |
| + boolean disableBuiltInAGC = sharedPrefGetBoolean( |
| + R.string.pref_disable_built_in_agc_key, |
| + CallActivity.EXTRA_DISABLE_BUILT_IN_AGC, |
| + R.string.pref_disable_built_in_agc_default, |
| + useValuesFromIntent); |
| // Check Disable built-in NS flag. |
| - boolean disableBuiltInNS = sharedPref.getBoolean( |
| - keyprefDisableBuiltInNs, |
| - Boolean.valueOf(getString(R.string.pref_disable_built_in_ns_default))); |
| + boolean disableBuiltInNS = sharedPrefGetBoolean( |
| + R.string.pref_disable_built_in_ns_key, |
| + CallActivity.EXTRA_DISABLE_BUILT_IN_NS, |
| + R.string.pref_disable_built_in_ns_default, |
| + useValuesFromIntent); |
| // Check Enable level control. |
| - boolean enableLevelControl = sharedPref.getBoolean( |
| - keyprefEnableLevelControl, |
| - Boolean.valueOf(getString(R.string.pref_enable_level_control_key))); |
| + boolean enableLevelControl = sharedPrefGetBoolean( |
| + R.string.pref_enable_level_control_key, |
| + CallActivity.EXTRA_ENABLE_LEVEL_CONTROL, |
| + R.string.pref_enable_level_control_key, |
| + useValuesFromIntent); |
| // Get video resolution from settings. |
| int videoWidth = 0; |
| int videoHeight = 0; |
| - String resolution = sharedPref.getString(keyprefResolution, |
| + String resolution = sharedPref.getString( |
|
sakal
2016/10/05 13:28:41
Resolution is still always get from the settings,
mandermo
2016/10/07 11:33:41
Did misstake. Added so it can be provided on comma
|
| + keyprefResolution, |
| getString(R.string.pref_resolution_default)); |
| String[] dimensions = resolution.split("[ x]+"); |
| if (dimensions.length == 2) { |
| @@ -339,48 +411,73 @@ public class ConnectActivity extends Activity { |
| // Get camera fps from settings. |
| int cameraFps = 0; |
| - String fps = sharedPref.getString(keyprefFps, |
| - getString(R.string.pref_fps_default)); |
| - String[] fpsValues = fps.split("[ x]+"); |
| - if (fpsValues.length == 2) { |
| - try { |
| - cameraFps = Integer.parseInt(fpsValues[0]); |
| - } catch (NumberFormatException e) { |
| - Log.e(TAG, "Wrong camera fps setting: " + fps); |
| + if (useValuesFromIntent) { |
| + cameraFps = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_FPS, 0); |
| + } |
| + if (!useValuesFromIntent || cameraFps == 0) { |
|
sakal
2016/10/05 13:28:41
!useValuesFromIntent is not needed here
mandermo
2016/10/07 11:33:41
Done.
|
| + String fps = sharedPref.getString(keyprefFps, |
| + getString(R.string.pref_fps_default)); |
| + String[] fpsValues = fps.split("[ x]+"); |
| + if (fpsValues.length == 2) { |
| + try { |
| + cameraFps = Integer.parseInt(fpsValues[0]); |
| + } catch (NumberFormatException e) { |
| + Log.e(TAG, "Wrong camera fps setting: " + fps); |
| + } |
| } |
| } |
| // Check capture quality slider flag. |
| - boolean captureQualitySlider = sharedPref.getBoolean(keyprefCaptureQualitySlider, |
| - Boolean.valueOf(getString(R.string.pref_capturequalityslider_default))); |
| + boolean captureQualitySlider = sharedPrefGetBoolean( |
| + R.string.pref_capturequalityslider_key, |
| + CallActivity.EXTRA_VIDEO_CAPTUREQUALITYSLIDER_ENABLED, |
| + R.string.pref_capturequalityslider_default, |
| + useValuesFromIntent); |
| // Get video and audio start bitrate. |
| int videoStartBitrate = 0; |
| - String bitrateTypeDefault = getString( |
| - R.string.pref_maxvideobitrate_default); |
| - String bitrateType = sharedPref.getString( |
| - keyprefVideoBitrateType, bitrateTypeDefault); |
| - if (!bitrateType.equals(bitrateTypeDefault)) { |
| - String bitrateValue = sharedPref.getString(keyprefVideoBitrateValue, |
| - getString(R.string.pref_maxvideobitratevalue_default)); |
| - videoStartBitrate = Integer.parseInt(bitrateValue); |
| + if (useValuesFromIntent) { |
| + videoStartBitrate = getIntent().getIntExtra(CallActivity.EXTRA_VIDEO_BITRATE, 0); |
| } |
| + if (videoStartBitrate == 0) { |
| + String bitrateTypeDefault = getString( |
| + R.string.pref_maxvideobitrate_default); |
| + String bitrateType = sharedPref.getString( |
| + keyprefVideoBitrateType, bitrateTypeDefault); |
| + if (!bitrateType.equals(bitrateTypeDefault)) { |
| + String bitrateValue = sharedPref.getString(keyprefVideoBitrateValue, |
| + getString(R.string.pref_maxvideobitratevalue_default)); |
| + videoStartBitrate = Integer.parseInt(bitrateValue); |
| + } |
| + } |
| + |
| int audioStartBitrate = 0; |
| - bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_default); |
| - bitrateType = sharedPref.getString( |
| - keyprefAudioBitrateType, bitrateTypeDefault); |
| - if (!bitrateType.equals(bitrateTypeDefault)) { |
| - String bitrateValue = sharedPref.getString(keyprefAudioBitrateValue, |
| - getString(R.string.pref_startaudiobitratevalue_default)); |
| - audioStartBitrate = Integer.parseInt(bitrateValue); |
| + if (useValuesFromIntent) { |
| + audioStartBitrate = getIntent().getIntExtra(CallActivity.EXTRA_AUDIO_BITRATE, 0); |
| + } |
| + if (audioStartBitrate == 0) { |
| + String bitrateTypeDefault = getString(R.string.pref_startaudiobitrate_default); |
| + String bitrateType = sharedPref.getString( |
| + keyprefAudioBitrateType, bitrateTypeDefault); |
| + if (!bitrateType.equals(bitrateTypeDefault)) { |
| + String bitrateValue = sharedPref.getString(keyprefAudioBitrateValue, |
| + getString(R.string.pref_startaudiobitratevalue_default)); |
| + audioStartBitrate = Integer.parseInt(bitrateValue); |
| + } |
| } |
| // Check statistics display option. |
| - boolean displayHud = sharedPref.getBoolean(keyprefDisplayHud, |
| - Boolean.valueOf(getString(R.string.pref_displayhud_default))); |
| - |
| - boolean tracing = sharedPref.getBoolean( |
| - keyprefTracing, Boolean.valueOf(getString(R.string.pref_tracing_default))); |
| + boolean displayHud = sharedPrefGetBoolean( |
| + R.string.pref_displayhud_key, |
| + CallActivity.EXTRA_DISPLAY_HUD, |
| + R.string.pref_displayhud_default, |
| + useValuesFromIntent); |
| + |
| + boolean tracing = sharedPrefGetBoolean( |
| + R.string.pref_tracing_key, |
| + CallActivity.EXTRA_TRACING, |
| + R.string.pref_tracing_default, |
| + useValuesFromIntent); |
| // Start AppRTCDemo activity. |
| Log.d(TAG, "Connecting to room " + roomId + " at URL " + roomUrl); |
| @@ -416,6 +513,38 @@ public class ConnectActivity extends Activity { |
| intent.putExtra(CallActivity.EXTRA_CMDLINE, commandLineRun); |
| intent.putExtra(CallActivity.EXTRA_RUNTIME, runTimeMs); |
| + if (useValuesFromIntent) { |
| + if (getIntent().hasExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA)) { |
| + String videoFileAsCamera = getIntent().getStringExtra( |
| + CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA); |
| + intent.putExtra(CallActivity.EXTRA_VIDEO_FILE_AS_CAMERA, |
| + videoFileAsCamera); |
| + } |
| + |
| + if (getIntent().hasExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE)) { |
| + String saveRemoteVideoToFile = getIntent().getStringExtra( |
| + CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE); |
| + intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE, |
| + saveRemoteVideoToFile); |
| + } |
| + |
| + if (getIntent().hasExtra( |
| + CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH)) { |
| + int videoOutWidth = getIntent().getIntExtra( |
| + CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH, 0); |
| + intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_WIDTH, |
| + videoOutWidth); |
| + } |
| + |
| + if (getIntent().hasExtra( |
| + CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT)) { |
| + int videoOutHeight = getIntent().getIntExtra( |
| + CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT, 0); |
| + intent.putExtra(CallActivity.EXTRA_SAVE_REMOTE_VIDEO_TO_FILE_HEIGHT, |
| + videoOutHeight); |
| + } |
| + } |
| + |
| startActivityForResult(intent, CONNECTION_REQUEST); |
| } |
| } |
| @@ -442,7 +571,7 @@ public class ConnectActivity extends Activity { |
| @Override |
| public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { |
| String roomId = ((TextView) view).getText().toString(); |
| - connectToRoom(roomId, false, false, 0); |
| + connectToRoom(roomId, false, false, false, 0); |
| } |
| }; |
| @@ -460,7 +589,7 @@ public class ConnectActivity extends Activity { |
| private final OnClickListener connectListener = new OnClickListener() { |
| @Override |
| public void onClick(View view) { |
| - connectToRoom(roomEditText.getText().toString(), false, false, 0); |
| + connectToRoom(roomEditText.getText().toString(), false, false, false, 0); |
| } |
| }; |
| } |