Added a H264 availability check.
This commit is contained in:
parent
5d8a9f2ff3
commit
f47bde3df2
@ -18,7 +18,10 @@ import android.os.Bundle;
|
|||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceActivity;
|
import android.preference.PreferenceActivity;
|
||||||
|
import android.preference.PreferenceManager;
|
||||||
|
import android.preference.PreferenceScreen;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
import com.freerdp.freerdpcore.R;
|
import com.freerdp.freerdpcore.R;
|
||||||
import com.freerdp.freerdpcore.application.GlobalApp;
|
import com.freerdp.freerdpcore.application.GlobalApp;
|
||||||
@ -26,6 +29,7 @@ import com.freerdp.freerdpcore.domain.BookmarkBase;
|
|||||||
import com.freerdp.freerdpcore.domain.ConnectionReference;
|
import com.freerdp.freerdpcore.domain.ConnectionReference;
|
||||||
import com.freerdp.freerdpcore.domain.ManualBookmark;
|
import com.freerdp.freerdpcore.domain.ManualBookmark;
|
||||||
import com.freerdp.freerdpcore.services.BookmarkBaseGateway;
|
import com.freerdp.freerdpcore.services.BookmarkBaseGateway;
|
||||||
|
import com.freerdp.freerdpcore.services.LibFreeRDP;
|
||||||
import com.freerdp.freerdpcore.utils.RDPFileParser;
|
import com.freerdp.freerdpcore.utils.RDPFileParser;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -55,14 +59,15 @@ public class BookmarkActivity extends PreferenceActivity implements
|
|||||||
private static boolean settings_changed = false;
|
private static boolean settings_changed = false;
|
||||||
private static boolean new_bookmark = false;
|
private static boolean new_bookmark = false;
|
||||||
private int current_preferences;
|
private int current_preferences;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
|
||||||
|
PreferenceManager mgr = getPreferenceManager();
|
||||||
// init shared preferences for activity
|
// init shared preferences for activity
|
||||||
getPreferenceManager().setSharedPreferencesName("TEMP");
|
mgr.setSharedPreferencesName("TEMP");
|
||||||
getPreferenceManager().setSharedPreferencesMode(MODE_PRIVATE);
|
mgr.setSharedPreferencesMode(MODE_PRIVATE);
|
||||||
|
|
||||||
if (bookmark == null) {
|
if (bookmark == null) {
|
||||||
// if we have a bookmark id set in the extras we are in edit mode
|
// if we have a bookmark id set in the extras we are in edit mode
|
||||||
@ -112,15 +117,15 @@ public class BookmarkActivity extends PreferenceActivity implements
|
|||||||
// hide gateway settings if we edit a non-manual bookmark
|
// hide gateway settings if we edit a non-manual bookmark
|
||||||
if (current_preferences == PREFERENCES_ADVANCED
|
if (current_preferences == PREFERENCES_ADVANCED
|
||||||
&& bookmark.getType() != ManualBookmark.TYPE_MANUAL) {
|
&& bookmark.getType() != ManualBookmark.TYPE_MANUAL) {
|
||||||
getPreferenceScreen().removePreference(
|
PreferenceScreen screen = getPreferenceScreen();
|
||||||
findPreference("bookmark.enable_gateway"));
|
screen.removePreference(findPreference("bookmark.enable_gateway"));
|
||||||
getPreferenceScreen().removePreference(
|
screen.removePreference(findPreference("bookmark.gateway"));
|
||||||
findPreference("bookmark.gateway"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateH264Preferences();
|
||||||
|
|
||||||
// update preferences from bookmark
|
// update preferences from bookmark
|
||||||
bookmark.writeToSharedPreferences(getPreferenceManager()
|
bookmark.writeToSharedPreferences(mgr.getSharedPreferences());
|
||||||
.getSharedPreferences());
|
|
||||||
|
|
||||||
// no settings changed yet
|
// no settings changed yet
|
||||||
settings_changed = false;
|
settings_changed = false;
|
||||||
@ -168,15 +173,34 @@ public class BookmarkActivity extends PreferenceActivity implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
// update UI with bookmark data
|
// update UI with bookmark data
|
||||||
SharedPreferences spref = getPreferenceManager().getSharedPreferences();
|
SharedPreferences spref = mgr.getSharedPreferences();
|
||||||
initSettings(spref);
|
initSettings(spref);
|
||||||
|
|
||||||
// register for preferences changed notification
|
// register for preferences changed notification
|
||||||
getPreferenceManager().getSharedPreferences()
|
mgr.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
|
||||||
.registerOnSharedPreferenceChangeListener(this);
|
|
||||||
|
|
||||||
// set the correct component names in our preferencescreen settings
|
// set the correct component names in our preferencescreen settings
|
||||||
setIntentComponentNames();
|
setIntentComponentNames();
|
||||||
|
|
||||||
|
updateH264Preferences();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateH264Preferences() {
|
||||||
|
if (!LibFreeRDP.hasH264Support()) {
|
||||||
|
final int preferenceIdList[] = {
|
||||||
|
R.string.preference_key_h264,
|
||||||
|
R.string.preference_key_h264_3g
|
||||||
|
};
|
||||||
|
|
||||||
|
PreferenceManager mgr = getPreferenceManager();
|
||||||
|
for (int id : preferenceIdList) {
|
||||||
|
final String key = getString(id);
|
||||||
|
Preference preference = mgr.findPreference(key);
|
||||||
|
if (preference != null) {
|
||||||
|
preference.setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateBookmarkFromFile(ManualBookmark bookmark,
|
private void updateBookmarkFromFile(ManualBookmark bookmark,
|
||||||
@ -672,5 +696,4 @@ public class BookmarkActivity extends PreferenceActivity implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -26,10 +26,12 @@ import java.util.ArrayList;
|
|||||||
public class LibFreeRDP {
|
public class LibFreeRDP {
|
||||||
private static final String TAG = "LibFreeRDP";
|
private static final String TAG = "LibFreeRDP";
|
||||||
private static EventListener listener;
|
private static EventListener listener;
|
||||||
|
private static boolean mHasH264 = true;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
|
final String h264 = "openh264";
|
||||||
final String[] libraries = {
|
final String[] libraries = {
|
||||||
"openh264", "freerdp-openssl", "jpeg", "winpr2",
|
h264, "freerdp-openssl", "jpeg", "winpr2",
|
||||||
"freerdp2", "freerdp-client2", "freerdp-android2"};
|
"freerdp2", "freerdp-client2", "freerdp-android2"};
|
||||||
final String LD_PATH = System.getProperty("java.library.path");
|
final String LD_PATH = System.getProperty("java.library.path");
|
||||||
|
|
||||||
@ -39,10 +41,17 @@ public class LibFreeRDP {
|
|||||||
System.loadLibrary(lib);
|
System.loadLibrary(lib);
|
||||||
} catch (UnsatisfiedLinkError e) {
|
} catch (UnsatisfiedLinkError e) {
|
||||||
Log.e(TAG, "Failed to load library " + lib + ": " + e.toString());
|
Log.e(TAG, "Failed to load library " + lib + ": " + e.toString());
|
||||||
|
if (lib.equals(h264)) {
|
||||||
|
mHasH264 = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean hasH264Support() {
|
||||||
|
return mHasH264;
|
||||||
|
}
|
||||||
|
|
||||||
private static native String freerdp_get_jni_version();
|
private static native String freerdp_get_jni_version();
|
||||||
|
|
||||||
private static native String freerdp_get_version();
|
private static native String freerdp_get_version();
|
||||||
@ -118,7 +127,7 @@ public class LibFreeRDP {
|
|||||||
|
|
||||||
final String clientName = ApplicationSettingsActivity.getClientName(context);
|
final String clientName = ApplicationSettingsActivity.getClientName(context);
|
||||||
if (!clientName.isEmpty()) {
|
if (!clientName.isEmpty()) {
|
||||||
args.add("/client-hostname:\""+clientName+"\"");
|
args.add("/client-hostname:\"" + clientName + "\"");
|
||||||
}
|
}
|
||||||
String certName = "";
|
String certName = "";
|
||||||
if (bookmark.getType() != BookmarkBase.TYPE_MANUAL) {
|
if (bookmark.getType() != BookmarkBase.TYPE_MANUAL) {
|
||||||
@ -260,7 +269,7 @@ public class LibFreeRDP {
|
|||||||
|
|
||||||
final String clientName = ApplicationSettingsActivity.getClientName(context);
|
final String clientName = ApplicationSettingsActivity.getClientName(context);
|
||||||
if (!clientName.isEmpty()) {
|
if (!clientName.isEmpty()) {
|
||||||
args.add("/client-hostname:\""+clientName+"\"");
|
args.add("/client-hostname:\"" + clientName + "\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse hostname and port. Set to 'v' argument
|
// Parse hostname and port. Set to 'v' argument
|
||||||
|
@ -318,4 +318,6 @@
|
|||||||
<string name="pref_ringtone_silent">Silent</string>
|
<string name="pref_ringtone_silent">Silent</string>
|
||||||
|
|
||||||
<string name="pref_title_vibrate">Vibrate</string>
|
<string name="pref_title_vibrate">Vibrate</string>
|
||||||
|
<string name="preference_key_h264_3g" translatable="false">bookmark.perf_gfx_h264</string>
|
||||||
|
<string name="preference_key_h264" translatable="false">bookmark.perf_gfx_h264</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
android:title="@string/settings_perf_gfx" />
|
android:title="@string/settings_perf_gfx" />
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:dependency="bookmark.perf_gfx"
|
android:dependency="bookmark.perf_gfx"
|
||||||
android:key="bookmark.perf_gfx_h264"
|
android:key="@string/preference_key_h264"
|
||||||
android:title="@string/settings_perf_gfx_h264" />
|
android:title="@string/settings_perf_gfx_h264" />
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="bookmark.perf_wallpaper"
|
android:key="bookmark.perf_wallpaper"
|
||||||
|
@ -13,6 +13,13 @@
|
|||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="bookmark.perf_remotefx_3g"
|
android:key="bookmark.perf_remotefx_3g"
|
||||||
android:title="@string/settings_perf_remotefx" />
|
android:title="@string/settings_perf_remotefx" />
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:key="bookmark.perf_gfx_3g"
|
||||||
|
android:title="@string/settings_perf_gfx" />
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:dependency="bookmark.perf_gfx_3g"
|
||||||
|
android:key="@string/preference_key_h264_3g"
|
||||||
|
android:title="@string/settings_perf_gfx_h264" />
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:key="bookmark.perf_wallpaper_3g"
|
android:key="bookmark.perf_wallpaper_3g"
|
||||||
android:title="@string/settings_perf_wallpaper" />
|
android:title="@string/settings_perf_wallpaper" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user