OSDN Git Service

Add an option to control native bridge
authorChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 1 Oct 2015 17:01:48 +0000 (01:01 +0800)
committerChih-Wei Huang <cwhuang@linux.org.tw>
Thu, 5 May 2016 10:07:22 +0000 (18:07 +0800)
AndroidManifest.xml
res/values-zh-rCN/strings.xml
res/values-zh-rHK/strings.xml
res/values-zh-rTW/strings.xml
res/values/strings.xml
res/xml/apps_compatibility_prefs.xml [new file with mode: 0644]
res/xml/dashboard_categories.xml
src/com/android/settings/AppsCompatibility.java [new file with mode: 0644]
src/com/android/settings/Settings.java
src/com/android/settings/SettingsActivity.java

index 3d538a1..76acedd 100644 (file)
                 android:value="true" />
         </activity>
 
+        <activity android:name="Settings$AppsCompatibilityActivity"
+                android:label="@string/apps_compatibility_title"
+                android:taskAffinity="">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                android:value="com.android.settings.AppsCompatibility" />
+            <meta-data android:name="com.android.settings.TOP_LEVEL_HEADER_ID"
+                android:resource="@id/apps_compatibility_settings" />
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                android:value="true" />
+        </activity>
+
         <activity android:name="Settings$MemorySettingsActivity"
                 android:label="@string/memory_settings_title"
                 android:taskAffinity="">
index 9524d24..2defc44 100644 (file)
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"要停止系统服务吗?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果停止此服务,您平板电脑上的某些功能也将随之停止工作,并在您将平板电脑关机然后再重新打开后才能使用。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果停止此服务,您手机上的某些功能也将随之停止工作,并在您将手机关机然后再重新打开后才能使用。"</string>
+    <string name="apps_compatibility_title">"应用兼容性"</string>
+    <string name="nativebridge_toggle_title">"兼容模式"</string>
+    <string name="nativebridge_toggle_summary">"可兼容於使用 arm 庫的应用"</string>
     <string name="language_settings" msgid="5292716747264442359">"语言和输入法"</string>
     <string name="language_keyboard_settings_title" msgid="243220021717425813">"语言和输入法"</string>
     <string name="language_settings_category" msgid="2288258489940617043">"语言设置"</string>
index a7b7408..8ad97a5 100644 (file)
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"停止系統服務?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果您停用這項服務,您平板電腦上的某些功能可能會停止正常運作,待您重新開機後才會恢復正常。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果您停用這項服務,您手機上的某些功能可能會停止正常運作,待您重新開機後才會恢復正常。"</string>
+    <string name="apps_compatibility_title">"應用程式相容性"</string>
+    <string name="nativebridge_toggle_title">"原生相容模式"</string>
+    <string name="nativebridge_toggle_summary">"可相容於使用 arm 原生函式庫的應用程式"</string>
     <string name="language_settings" msgid="5292716747264442359">"語言和輸入設定"</string>
     <string name="language_keyboard_settings_title" msgid="243220021717425813">"語言和輸入設定"</string>
     <string name="language_settings_category" msgid="2288258489940617043">"語言設定"</string>
index 13e2dd8..85214ee 100644 (file)
     <string name="runningservicedetails_stop_dlg_title" msgid="4253292537154337233">"停止系統服務?"</string>
     <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="3371302398335665793">"如果您停用這項服務,您的平板電腦上的某些功能可能無法正常運作,待您重新開機後才會恢復正常。"</string>
     <string name="runningservicedetails_stop_dlg_text" product="default" msgid="3920243762189484756">"如果您停用這項服務,您的手機上的某些功能可能無法正常運作,待您重新開機後才會恢復正常。"</string>
+    <string name="apps_compatibility_title">"應用程式相容性"</string>
+    <string name="nativebridge_toggle_title">"原生相容模式"</string>
+    <string name="nativebridge_toggle_summary">"可相容於使用 arm 原生函式庫的應用程式"</string>
     <string name="language_settings" msgid="5292716747264442359">"語言與輸入設定"</string>
     <string name="language_keyboard_settings_title" msgid="243220021717425813">"語言與輸入設定"</string>
     <string name="language_settings_category" msgid="2288258489940617043">"語言設定"</string>
index aced42e..ddddab1 100644 (file)
         features of your phone may stop working correctly until you power it off
         and then on again.</string>
 
+    <!-- Apps compatibility settings -->
+    <string name="apps_compatibility_title">Apps compatibility</string>
+    <string name="nativebridge_toggle_title">Enable native bridge</string>
+    <string name="nativebridge_toggle_summary">To support apps with arm native libraries</string>
+
     <!-- Language Settings --> <skip />
     <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings realted to locale and text -->
     <string name="language_settings">Language &amp; input</string>
diff --git a/res/xml/apps_compatibility_prefs.xml b/res/xml/apps_compatibility_prefs.xml
new file mode 100644 (file)
index 0000000..f29f1b9
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2015 The Android-x86 Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+                  xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
+        android:title="@string/apps_compatibility_title">
+
+    <SwitchPreference android:key="toggle_nb"
+        android:title="@string/nativebridge_toggle_title"
+        android:summary="@string/nativebridge_toggle_summary"
+        android:persistent="false" />
+
+</PreferenceScreen>
index d437dcf..f46a820 100644 (file)
                 android:icon="@drawable/ic_settings_applications"
                 />
 
+        <!-- Apps Compatibility -->
+        <dashboard-tile
+                android:id="@+id/apps_compatibility_settings"
+                android:title="@string/apps_compatibility_title"
+                android:fragment="com.android.settings.AppsCompatibility"
+                android:icon="@drawable/ic_settings_applications"
+                />
+
         <!-- Storage -->
         <dashboard-tile
                 android:id="@+id/storage_settings"
diff --git a/src/com/android/settings/AppsCompatibility.java b/src/com/android/settings/AppsCompatibility.java
new file mode 100644 (file)
index 0000000..edd7080
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2015 The Android-x86 Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings;
+
+import android.os.Bundle;
+import android.os.SystemProperties;
+import android.preference.Preference;
+import android.preference.PreferenceScreen;
+import android.preference.SwitchPreference;
+import com.android.internal.logging.MetricsLogger;
+
+public class AppsCompatibility extends SettingsPreferenceFragment {
+
+    private SwitchPreference mNativeBridgePreference;
+
+    private static final String KEY_TOGGLE_NB = "toggle_nb";
+    private static final String PROPERTY_NATIVEBRIDGE = "persist.sys.nativebridge";
+
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+
+        addPreferencesFromResource(R.xml.apps_compatibility_prefs);
+        mNativeBridgePreference = (SwitchPreference) findPreference(KEY_TOGGLE_NB);
+        mNativeBridgePreference.setChecked(SystemProperties.getBoolean(PROPERTY_NATIVEBRIDGE, false));
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
+        if (preference == mNativeBridgePreference) {
+            SystemProperties.set(PROPERTY_NATIVEBRIDGE, mNativeBridgePreference.isChecked() ? "1" : "0");
+        }
+        return super.onPreferenceTreeClick(preferenceScreen, preference);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsLogger.APPLICATION;
+    }
+}
index 7b94d79..afd55cb 100644 (file)
@@ -48,6 +48,7 @@ public class Settings extends SettingsActivity {
     public static class DisplaySettingsActivity extends SettingsActivity { /* empty */ }
     public static class DeviceInfoSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ApplicationSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class AppsCompatibilityActivity extends SettingsActivity { /* empty */ }
     public static class ManageApplicationsActivity extends SettingsActivity { /* empty */ }
     public static class ManageAssistActivity extends SettingsActivity { /* empty */ }
     public static class AllApplicationsActivity extends SettingsActivity { /* empty */ }
index 8edec09..01b027a 100644 (file)
@@ -264,6 +264,7 @@ public class SettingsActivity extends Activity
             R.id.display_settings,
             R.id.storage_settings,
             R.id.application_settings,
+            R.id.apps_compatibility_settings,
             R.id.battery_settings,
             R.id.personal_section,
             R.id.location_settings,
@@ -301,6 +302,7 @@ public class SettingsActivity extends Activity
             DisplaySettings.class.getName(),
             DeviceInfoSettings.class.getName(),
             ManageApplications.class.getName(),
+            AppsCompatibility.class.getName(),
             ManageAssist.class.getName(),
             ProcessStatsUi.class.getName(),
             NotificationStation.class.getName(),