change android test app folder name
Review URL: http://webrtc-codereview.appspot.com/37003 git-svn-id: http://webrtc.googlecode.com/svn/trunk@65 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
eedf6e1e0e
commit
d2f3b7ea3d
@ -57,5 +57,5 @@ include $(MY_WEBRTC_ROOT_PATH)/android-webrtc.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/modules/audio_processing/main/test/process_test/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/voice_engine/main/test/ui_linux_test/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/voice_engine/main/test/auto_test/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/video_engine/main/test/AutoTest/Android/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/video_engine/main/test/AndroidTest/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/video_engine/main/test/AutoTest/android/Android.mk
|
||||
#include $(MY_WEBRTC_ROOT_PATH)/video_engine/main/test/android_test/Android.mk
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,35 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="Audio Settings"></TextView>
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
<TextView android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_width="wrap_content" android:text="@string/codecType"></TextView>
|
||||
<Spinner android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/spVoiceCodecType"></Spinner>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/aTxPort"></TextView>
|
||||
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/etATxPort" ></EditText>
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/aRxPort"></TextView>
|
||||
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/etARxPort" ></EditText>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbSpeaker" android:text="@string/speaker"></CheckBox>
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbAutoGainControl" android:text="@string/AutoGainControl"></CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbAECM" android:text="@string/AECM"></CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout03" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbNoiseSuppression" android:text="@string/NoiseSuppression"></CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:layout_gravity="right"
|
||||
android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvTitle" android:textStyle="bold" android:textSize="24dip" android:text="@string/gSettings"></TextView>
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbVideoReceive" android:text="@string/enableVideoReceive"></CheckBox>
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbVideoSend" android:text="@string/enableVideoSend"></CheckBox>
|
||||
</LinearLayout>
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbVoice" android:text="@string/enableVoice"></CheckBox>
|
||||
|
||||
<TextView android:id="@+id/TextView02" android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" android:text="@string/remoteIp"></TextView>
|
||||
<EditText android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/etRemoteIp" ></EditText>
|
||||
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbLoopback" android:text="@string/loopback"></CheckBox>
|
||||
</LinearLayout>
|
@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
>
|
||||
|
||||
|
||||
<SurfaceView android:id="@+id/svLocal" android:layout_width="wrap_content" android:layout_height="wrap_content"></SurfaceView><ImageView android:id="@+id/ivPreview" android:layout_height="fill_parent" android:layout_width="fill_parent"></ImageView>
|
||||
|
||||
</LinearLayout>
|
@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="Stats"></TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvLocalIp"
|
||||
android:textStyle="bold"></TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvFrameRateI"
|
||||
android:textStyle="bold"></TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvBitRateI"
|
||||
android:textStyle="bold"></TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvPacketLoss"
|
||||
android:textStyle="bold"></TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvFrameRateO"
|
||||
android:textStyle="bold"></TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/tvBitRateO"
|
||||
android:textStyle="bold"></TextView>
|
||||
</LinearLayout>
|
@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@android:id/tabhost"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<TabWidget
|
||||
android:id="@android:id/tabs"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<FrameLayout
|
||||
android:id="@android:id/tabcontent"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<include android:id="@+id/tab_video" layout="@layout/both" />
|
||||
<include android:id="@+id/tab_config" layout="@layout/main" />
|
||||
<include android:id="@+id/tab_vconfig" layout="@layout/vconfig" />
|
||||
<include android:id="@+id/tab_aconfig" layout="@layout/aconfig" />
|
||||
<include android:id="@+id/tab_stats" layout="@layout/stats" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</TabHost>
|
@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="@string/vSettings"></TextView>
|
||||
<TextView android:id="@+id/TextView03" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/codecType"></TextView>
|
||||
<Spinner android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent" android:id="@+id/spCodecType"></Spinner>
|
||||
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvCodecSize" android:text="@string/codecSize"></TextView>
|
||||
<Spinner android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/spCodecSize"></Spinner>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/vTxPort"></TextView>
|
||||
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/etVTxPort" ></EditText>
|
||||
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/vRxPort"></TextView>
|
||||
<EditText android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/etVRxPort" ></EditText>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout03" android:layout_height="wrap_content" android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/cbNack" android:text="@string/nack"></CheckBox>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
@ -1,23 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" package="org.webrtc.vieautotest">
|
||||
<application android:label="@string/app_name" android:debuggable="true" android:icon="@drawable/logo">
|
||||
<activity android:label="@string/app_name" android:name="ViEAutotest">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
|
||||
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
</manifest>
|
@ -1,150 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2011 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.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <android/log.h>
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "org_webrtc_vieautotest_vie_autotest.h"
|
||||
|
||||
#include "vie_autotest_android.h"
|
||||
|
||||
#define WEBRTC_LOG_TAG "*WEBRTCN*"
|
||||
|
||||
// VideoEngine data struct
|
||||
typedef struct
|
||||
{
|
||||
JavaVM* jvm;
|
||||
} VideoEngineData;
|
||||
|
||||
// Global variables
|
||||
JavaVM* webrtcGlobalVM;
|
||||
|
||||
// Global variables visible in this file
|
||||
static VideoEngineData vieData;
|
||||
|
||||
// "Local" functions (i.e. not Java accessible)
|
||||
#define WEBRTC_TRACE_MAX_MESSAGE_SIZE 1024
|
||||
|
||||
static bool GetSubAPIs(VideoEngineData& vieData);
|
||||
static bool ReleaseSubAPIs(VideoEngineData& vieData);
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// General functions
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
/////////////////////////////////////////////
|
||||
// JNI_OnLoad
|
||||
jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/)
|
||||
{
|
||||
if (!vm)
|
||||
{
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"JNI_OnLoad did not receive a valid VM pointer");
|
||||
return -1;
|
||||
}
|
||||
|
||||
JNIEnv* env;
|
||||
if (JNI_OK != vm->GetEnv(reinterpret_cast<void**> (&env), JNI_VERSION_1_4))
|
||||
{
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"JNI_OnLoad could not get JNI env");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Init ViE data
|
||||
vieData.jvm = vm;
|
||||
|
||||
return JNI_VERSION_1_4;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: org_webrtc_vieautotest_ViEAutotest
|
||||
* Method: RunTest
|
||||
* Signature: (IILandroid/opengl/GLSurfaceView;Landroid/opengl/GLSurfaceView;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_opengl_GLSurfaceView_2Landroid_opengl_GLSurfaceView_2(
|
||||
JNIEnv* env,
|
||||
jobject context,
|
||||
jint testType,
|
||||
jint subtestType,
|
||||
jobject glView1,
|
||||
jobject glView2)
|
||||
|
||||
{
|
||||
int numErrors = -1;
|
||||
numErrors = ViEAutoTestAndroid::RunAutotest(testType, subtestType, glView1,
|
||||
glView2, vieData.jvm, env,
|
||||
context);
|
||||
return numErrors;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: org_webrtc_vieautotest_ViEAutotest
|
||||
* Method: RunTest
|
||||
* Signature: (IILandroid/view/SurfaceView;Landroid/view/SurfaceView;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_view_SurfaceView_2Landroid_view_SurfaceView_2(
|
||||
JNIEnv* env,
|
||||
jobject context,
|
||||
jint testType,
|
||||
jint subtestType,
|
||||
jobject surfaceHolder1,
|
||||
jobject surfaceHolder2)
|
||||
{
|
||||
int numErrors = -1;
|
||||
numErrors = ViEAutoTestAndroid::RunAutotest(testType, subtestType,
|
||||
surfaceHolder1, surfaceHolder2,
|
||||
vieData.jvm, env, context);
|
||||
return numErrors;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//local function
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
bool GetSubAPIs(VideoEngineData& vieData)
|
||||
{
|
||||
bool retVal = true;
|
||||
//vieData.base = ViEBase::GetInterface(vieData.vie);
|
||||
//if (vieData.base == NULL)
|
||||
{
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"Could not get Base API");
|
||||
retVal = false;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
bool ReleaseSubAPIs(VideoEngineData& vieData)
|
||||
{
|
||||
bool releaseOk = true;
|
||||
//if (vieData.base)
|
||||
{
|
||||
//if (vieData.base->Release() != 0)
|
||||
if (false)
|
||||
{
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"Release base sub-API failed");
|
||||
releaseOk = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
//vieData.base = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return releaseOk;
|
||||
}
|
||||
|
@ -1,64 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout
|
||||
android:id="@+id/RemoteView"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_weight="1">
|
||||
<!-- log instead of video
|
||||
<ImageView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/logo" /> -->
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/LocalView"
|
||||
android:layout_width="120dip"
|
||||
android:layout_height="120dip"
|
||||
android:layout_weight="1">
|
||||
<!-- <ImageView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/logo" /> -->
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true">
|
||||
<Spinner
|
||||
android:id="@+id/testSpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:prompt="@string/SpinnerTitle"
|
||||
/>
|
||||
<Spinner
|
||||
android:id="@+id/subtestSpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:prompt="@string/SpinnerSubtest"
|
||||
/>
|
||||
<Button
|
||||
android:text="@string/run_button"
|
||||
android:id="@+id/Button01"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</Button>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</FrameLayout>
|
26
video_engine/main/test/AutoTest/android/AndroidManifest.xml
Normal file
26
video_engine/main/test/AutoTest/android/AndroidManifest.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" package="org.webrtc.vieautotest">
|
||||
<application android:label="@string/app_name"
|
||||
android:debuggable="true"
|
||||
android:icon="@drawable/logo">
|
||||
<activity android:label="@string/app_name"
|
||||
android:name="ViEAutotest">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
|
||||
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
</manifest>
|
@ -24,8 +24,9 @@ extern "C" {
|
||||
* Method: RunTest
|
||||
* Signature: (IILandroid/view/SurfaceView;Landroid/view/SurfaceView;)I
|
||||
*/
|
||||
JNIEXPORT jint JNICALL Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_view_SurfaceView_2Landroid_view_SurfaceView_2
|
||||
(JNIEnv *, jobject, jint, jint, jobject, jobject);
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_view_SurfaceView_2Landroid_view_SurfaceView_2
|
||||
(JNIEnv *, jobject, jint, jint, jobject, jobject);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
137
video_engine/main/test/AutoTest/android/jni/vie_autotest_jni.cc
Normal file
137
video_engine/main/test/AutoTest/android/jni/vie_autotest_jni.cc
Normal file
@ -0,0 +1,137 @@
|
||||
/*
|
||||
* Copyright (c) 2011 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.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <android/log.h>
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "org_webrtc_vieautotest_vie_autotest.h"
|
||||
|
||||
#include "vie_autotest_android.h"
|
||||
|
||||
#define WEBRTC_LOG_TAG "*WEBRTCN*"
|
||||
|
||||
// VideoEngine data struct
|
||||
typedef struct
|
||||
{
|
||||
JavaVM* jvm;
|
||||
} VideoEngineData;
|
||||
|
||||
// Global variables
|
||||
JavaVM* webrtcGlobalVM;
|
||||
|
||||
// Global variables visible in this file
|
||||
static VideoEngineData vieData;
|
||||
|
||||
// "Local" functions (i.e. not Java accessible)
|
||||
#define WEBRTC_TRACE_MAX_MESSAGE_SIZE 1024
|
||||
|
||||
static bool GetSubAPIs(VideoEngineData& vieData);
|
||||
static bool ReleaseSubAPIs(VideoEngineData& vieData);
|
||||
|
||||
//
|
||||
// General functions
|
||||
//
|
||||
|
||||
// JNI_OnLoad
|
||||
jint JNI_OnLoad(JavaVM* vm, void* /*reserved*/) {
|
||||
if (!vm) {
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"JNI_OnLoad did not receive a valid VM pointer");
|
||||
return -1;
|
||||
}
|
||||
|
||||
JNIEnv* env;
|
||||
if (JNI_OK != vm->GetEnv(reinterpret_cast<void**> (&env),
|
||||
JNI_VERSION_1_4)) {
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"JNI_OnLoad could not get JNI env");
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Init ViE data
|
||||
vieData.jvm = vm;
|
||||
|
||||
return JNI_VERSION_1_4;
|
||||
}
|
||||
|
||||
// Class: org_webrtc_vieautotest_ViEAutotest
|
||||
// Method: RunTest
|
||||
// Signature: (IILandroid/opengl/GLSurfaceView;Landroid/opengl/GLSurfaceView;)I
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_opengl_GLSurfaceView_2Landroid_opengl_GLSurfaceView_2(
|
||||
JNIEnv* env,
|
||||
jobject context,
|
||||
jint testType,
|
||||
jint subtestType,
|
||||
jobject glView1,
|
||||
jobject glView2)
|
||||
{
|
||||
int numErrors = -1;
|
||||
numErrors = ViEAutoTestAndroid::RunAutotest(testType, subtestType, glView1,
|
||||
glView2, vieData.jvm, env,
|
||||
context);
|
||||
return numErrors;
|
||||
}
|
||||
|
||||
// Class: org_webrtc_vieautotest_ViEAutotest
|
||||
// Method: RunTest
|
||||
// Signature: (IILandroid/view/SurfaceView;Landroid/view/SurfaceView;)I
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_org_webrtc_vieautotest_ViEAutotest_RunTest__IILandroid_view_SurfaceView_2Landroid_view_SurfaceView_2(
|
||||
JNIEnv* env,
|
||||
jobject context,
|
||||
jint testType,
|
||||
jint subtestType,
|
||||
jobject surfaceHolder1,
|
||||
jobject surfaceHolder2)
|
||||
{
|
||||
int numErrors = -1;
|
||||
numErrors = ViEAutoTestAndroid::RunAutotest(testType, subtestType,
|
||||
surfaceHolder1, surfaceHolder2,
|
||||
vieData.jvm, env, context);
|
||||
return numErrors;
|
||||
}
|
||||
|
||||
//
|
||||
//local function
|
||||
//
|
||||
|
||||
bool GetSubAPIs(VideoEngineData& vieData) {
|
||||
bool retVal = true;
|
||||
//vieData.base = ViEBase::GetInterface(vieData.vie);
|
||||
//if (vieData.base == NULL)
|
||||
{
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"Could not get Base API");
|
||||
retVal = false;
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
|
||||
bool ReleaseSubAPIs(VideoEngineData& vieData) {
|
||||
bool releaseOk = true;
|
||||
//if (vieData.base)
|
||||
{
|
||||
//if (vieData.base->Release() != 0)
|
||||
if (false) {
|
||||
__android_log_write(ANDROID_LOG_ERROR, WEBRTC_LOG_TAG,
|
||||
"Release base sub-API failed");
|
||||
releaseOk = false;
|
||||
}
|
||||
else {
|
||||
//vieData.base = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return releaseOk;
|
||||
}
|
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 409 B |
64
video_engine/main/test/AutoTest/android/res/layout/main.xml
Normal file
64
video_engine/main/test/AutoTest/android/res/layout/main.xml
Normal file
@ -0,0 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<RelativeLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout
|
||||
android:id="@+id/RemoteView"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_weight="1">
|
||||
<!-- log instead of video
|
||||
<ImageView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/logo" /> -->
|
||||
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/LocalView"
|
||||
android:layout_width="120dip"
|
||||
android:layout_height="120dip"
|
||||
android:layout_weight="1">
|
||||
<!-- <ImageView
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@drawable/logo" /> -->
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true">
|
||||
<Spinner
|
||||
android:id="@+id/testSpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:prompt="@string/SpinnerTitle"
|
||||
/>
|
||||
<Spinner
|
||||
android:id="@+id/subtestSpinner"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:prompt="@string/SpinnerSubtest"
|
||||
/>
|
||||
<Button
|
||||
android:text="@string/run_button"
|
||||
android:id="@+id/Button01"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</Button>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
</RelativeLayout>
|
||||
</FrameLayout>
|
@ -1,7 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:versionCode="1" package="org.webrtc.videoengineapp" android:versionName="1.07">
|
||||
<application android:icon="@drawable/logo" android:label="@string/app_name" android:debuggable="true">
|
||||
<application android:icon="@drawable/logo"
|
||||
android:label="@string/app_name"
|
||||
android:debuggable="true">
|
||||
<activity android:name=".ViEAndroidDemo"
|
||||
android:label="@string/app_name"
|
||||
android:configChanges="keyboardHidden|orientation"
|
1564
video_engine/main/test/android_test/jni/vie_android_java_api.cc
Normal file
1564
video_engine/main/test/android_test/jni/vie_android_java_api.cc
Normal file
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
81
video_engine/main/test/android_test/res/layout/aconfig.xml
Normal file
81
video_engine/main/test/android_test/res/layout/aconfig.xml
Normal file
@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="Audio Settings"></TextView>
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
<TextView android:id="@+id/TextView01"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/codecType">
|
||||
</TextView>
|
||||
<Spinner android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/spVoiceCodecType">
|
||||
</Spinner>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/aTxPort">
|
||||
</TextView>
|
||||
<EditText android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/etATxPort">
|
||||
</EditText>
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/aRxPort">
|
||||
</TextView>
|
||||
<EditText android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/etARxPort" >
|
||||
</EditText>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbSpeaker"
|
||||
android:text="@string/speaker">
|
||||
</CheckBox>
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbAutoGainControl"
|
||||
android:text="@string/AutoGainControl">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbAECM"
|
||||
android:text="@string/AECM">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout03"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbNoiseSuppression"
|
||||
android:text="@string/NoiseSuppression">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
54
video_engine/main/test/android_test/res/layout/main.xml
Normal file
54
video_engine/main/test/android_test/res/layout/main.xml
Normal file
@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:layout_gravity="right"
|
||||
android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tvTitle"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="@string/gSettings">
|
||||
</TextView>
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
<LinearLayout android:id="@+id/LinearLayout02"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbVideoReceive"
|
||||
android:text="@string/enableVideoReceive">
|
||||
</CheckBox>
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbVideoSend"
|
||||
android:text="@string/enableVideoSend">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
||||
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbVoice"
|
||||
android:text="@string/enableVoice">
|
||||
</CheckBox>
|
||||
|
||||
<TextView android:id="@+id/TextView02"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/remoteIp">
|
||||
</TextView>
|
||||
<EditText android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/etRemoteIp" >
|
||||
</EditText>
|
||||
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbLoopback"
|
||||
android:text="@string/loopback">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
17
video_engine/main/test/android_test/res/layout/send.xml
Normal file
17
video_engine/main/test/android_test/res/layout/send.xml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
|
||||
|
||||
<SurfaceView android:id="@+id/svLocal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</SurfaceView>
|
||||
<ImageView android:id="@+id/ivPreview"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_width="fill_parent">
|
||||
</ImageView>
|
||||
|
||||
</LinearLayout>
|
59
video_engine/main/test/android_test/res/layout/stats.xml
Normal file
59
video_engine/main/test/android_test/res/layout/stats.xml
Normal file
@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="Stats">
|
||||
</TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvLocalIp"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvFrameRateI"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvBitRateI"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvPacketLoss"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvFrameRateO"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/tvBitRateO"
|
||||
android:textStyle="bold">
|
||||
</TextView>
|
||||
</LinearLayout>
|
25
video_engine/main/test/android_test/res/layout/tabhost.xml
Normal file
25
video_engine/main/test/android_test/res/layout/tabhost.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@android:id/tabhost"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<TabWidget
|
||||
android:id="@android:id/tabs"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
<FrameLayout
|
||||
android:id="@android:id/tabcontent"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent">
|
||||
<include android:id="@+id/tab_video" layout="@layout/both" />
|
||||
<include android:id="@+id/tab_config" layout="@layout/main" />
|
||||
<include android:id="@+id/tab_vconfig" layout="@layout/vconfig" />
|
||||
<include android:id="@+id/tab_aconfig" layout="@layout/aconfig" />
|
||||
<include android:id="@+id/tab_stats" layout="@layout/stats" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
</TabHost>
|
67
video_engine/main/test/android_test/res/layout/vconfig.xml
Normal file
67
video_engine/main/test/android_test/res/layout/vconfig.xml
Normal file
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent" android:orientation="vertical"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textStyle="bold"
|
||||
android:textSize="24dip"
|
||||
android:text="@string/vSettings">
|
||||
</TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView03"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
</TextView>
|
||||
|
||||
<TextView android:id="@+id/TextView01"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/codecType">
|
||||
</TextView>
|
||||
<Spinner android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/spCodecType">
|
||||
</Spinner>
|
||||
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/tvCodecSize"
|
||||
android:text="@string/codecSize">
|
||||
</TextView>
|
||||
<Spinner android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent"
|
||||
android:id="@+id/spCodecSize">
|
||||
</Spinner>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout02"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/vTxPort">
|
||||
</TextView>
|
||||
<EditText android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/etVTxPort" >
|
||||
</EditText>
|
||||
<TextView android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/vRxPort">
|
||||
</TextView>
|
||||
<EditText android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/etVRxPort" >
|
||||
</EditText>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/LinearLayout03"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="fill_parent">
|
||||
<CheckBox android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/cbNack"
|
||||
android:text="@string/nack">
|
||||
</CheckBox>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
Loading…
x
Reference in New Issue
Block a user