AppRTCDemoActivity: Add a config CheckBox for enabling/disabling CPU overuse adaptation. (re-land)

This CL was incorrectly reverted in r7647 by the libjingle sync bot.

TBR=kjellander@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/32489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7717 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrika@webrtc.org 2014-11-18 13:22:28 +00:00
parent c56814fb2d
commit 2176db343c
5 changed files with 37 additions and 8 deletions

View File

@ -6,6 +6,7 @@
<item>VGA (640 x 480)</item>
<item>QVGA (320 x 240)</item>
</string-array>
<string-array name="videoResolutionsValues">
<item>Default</item>
<item>1280 x 720</item>
@ -18,5 +19,4 @@
<item>30 fps</item>
<item>15 fps</item>
</string-array>
</resources>

View File

@ -29,19 +29,23 @@
<string name="pref_url_key">url_preference</string>
<string name="pref_url_title">Connection URL:</string>
<string name="pref_url_summary">AppRTC connection server URL.</string>
<string name="pref_url_dlg">Enter AppRTC connection server URL.</string>
<string name="pref_url_default">https://apprtc.appspot.com</string>
<string name="pref_resolution_key">resolution_preference</string>
<string name="pref_resolution_title">Video resolution.</string>
<string name="pref_resolution_summary">Video resolution.</string>
<string name="pref_resolution_dlg">Enter AppRTC local video resolution.</string>
<string name="pref_resolution_default">Default</string>
<string name="pref_fps_key">fps_preference</string>
<string name="pref_fps_title">Camera fps.</string>
<string name="pref_fps_summary">Camera fps.</string>
<string name="pref_fps_dlg">Enter local camera fps.</string>
<string name="pref_fps_default">Default</string>
<string name="pref_cpu_usage_detection_key">cpu_usage_detection</string>
<string name="pref_cpu_usage_detection_title">CPU overuse detection.</string>
<string name="pref_cpu_usage_detection_dlg">Adapt transmission to CPU status.</string>
<string name="pref_cpu_usage_detection_default">true</string>
<string name="pref_cpu_usage_detection_on">Enabled</string>
<string name="pref_cpu_usage_detection_off">Disabled</string>
</resources>

View File

@ -3,14 +3,12 @@
<EditTextPreference
android:key="@string/pref_url_key"
android:title="@string/pref_url_title"
android:summary="@string/pref_url_summary"
android:defaultValue="@string/pref_url_default"
android:inputType="textWebEmailAddress"
android:dialogTitle="@string/pref_url_dlg" />
<ListPreference
android:key="@string/pref_resolution_key"
android:title="@string/pref_resolution_title"
android:summary="@string/pref_resolution_summary"
android:defaultValue="@string/pref_resolution_default"
android:dialogTitle="@string/pref_resolution_dlg"
android:entries="@array/videoResolutions"
@ -18,9 +16,14 @@
<ListPreference
android:key="@string/pref_fps_key"
android:title="@string/pref_fps_title"
android:summary="@string/pref_fps_summary"
android:defaultValue="@string/pref_fps_default"
android:dialogTitle="@string/pref_fps_dlg"
android:entries="@array/cameraFps"
android:entryValues="@array/cameraFps" />
</PreferenceScreen>
<CheckBoxPreference
android:key="@string/pref_cpu_usage_detection_key"
android:title="@string/pref_cpu_usage_detection_title"
android:dialogTitle="@string/pref_cpu_usage_detection_dlg"
android:defaultValue="@string/pref_cpu_usage_detection_default" />
</PreferenceScreen>

View File

@ -73,6 +73,7 @@ public class ConnectActivity extends Activity {
private String keyprefUrl;
private String keyprefResolution;
private String keyprefFps;
private String keyprefCpuUsageDetection;
private String keyprefRoom;
private String keyprefRoomList;
private ArrayList<String> roomList;
@ -88,6 +89,7 @@ public class ConnectActivity extends Activity {
keyprefUrl = getString(R.string.pref_url_key);
keyprefResolution = getString(R.string.pref_resolution_key);
keyprefFps = getString(R.string.pref_fps_key);
keyprefCpuUsageDetection = getString(R.string.pref_cpu_usage_detection_key);
keyprefRoom = getString(R.string.pref_room_key);
keyprefRoomList = getString(R.string.pref_room_list_key);
@ -252,6 +254,14 @@ public class ConnectActivity extends Activity {
url += "&hd=true";
}
}
// Test if CpuOveruseDetection should be disabled. By default is on.
boolean cpuOveruseDetection = sharedPref.getBoolean(
keyprefCpuUsageDetection,
Boolean.valueOf(
getString(R.string.pref_cpu_usage_detection_default)));
if (!cpuOveruseDetection) {
url += "&googCpuOveruseDetection=false";
}
// TODO(kjellander): Add support for custom parameters to the URL.
connectToRoom(url);
}

View File

@ -39,6 +39,7 @@ public class SettingsActivity extends Activity
private String keyprefUrl;
private String keyprefResolution;
private String keyprefFps;
private String keyprefCpuUsageDetection;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -46,6 +47,7 @@ public class SettingsActivity extends Activity
keyprefUrl = getString(R.string.pref_url_key);
keyprefResolution = getString(R.string.pref_resolution_key);
keyprefFps = getString(R.string.pref_fps_key);
keyprefCpuUsageDetection = getString(R.string.pref_cpu_usage_detection_key);
// Display the fragment as the main content.
settingsFragment = new SettingsFragment();
@ -64,6 +66,7 @@ public class SettingsActivity extends Activity
updateSummary(sharedPreferences, keyprefUrl);
updateSummary(sharedPreferences, keyprefResolution);
updateSummary(sharedPreferences, keyprefFps);
updateSummaryB(sharedPreferences, keyprefCpuUsageDetection);
}
@Override
@ -80,6 +83,8 @@ public class SettingsActivity extends Activity
if (key.equals(keyprefUrl) || key.equals(keyprefResolution) ||
key.equals(keyprefFps)) {
updateSummary(sharedPreferences, key);
} else if (key.equals(keyprefCpuUsageDetection)) {
updateSummaryB(sharedPreferences, key);
}
}
@ -89,4 +94,11 @@ public class SettingsActivity extends Activity
updatedPref.setSummary(sharedPreferences.getString(key, ""));
}
private void updateSummaryB(SharedPreferences sharedPreferences, String key) {
Preference updatedPref = settingsFragment.findPreference(key);
updatedPref.setSummary(sharedPreferences.getBoolean(key, true)
? getString(R.string.pref_cpu_usage_detection_on)
: getString(R.string.pref_cpu_usage_detection_off));
}
}