diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 87542d69704dd49212817f2c3fc5638d9cff6605..f33ed8e048638aa4d72ff4e162c1764cd598b93c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -3325,6 +3325,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/drawable-hdpi/ic_open_keychain.png b/res/drawable-hdpi/ic_open_keychain.png
new file mode 100644
index 0000000000000000000000000000000000000000..6133816d2210a76f7853874ff9f0dafe2fa05dae
Binary files /dev/null and b/res/drawable-hdpi/ic_open_keychain.png differ
diff --git a/res/drawable-mdpi/ic_open_keychain.png b/res/drawable-mdpi/ic_open_keychain.png
new file mode 100644
index 0000000000000000000000000000000000000000..d945a01deb319d38404eac1e3d489cb78cd908a0
Binary files /dev/null and b/res/drawable-mdpi/ic_open_keychain.png differ
diff --git a/res/drawable-xhdpi/ic_open_keychain.png b/res/drawable-xhdpi/ic_open_keychain.png
new file mode 100644
index 0000000000000000000000000000000000000000..825b18b38699cdba0a9d23bbda701899abd86c09
Binary files /dev/null and b/res/drawable-xhdpi/ic_open_keychain.png differ
diff --git a/res/drawable-xxhdpi/ic_open_keychain.png b/res/drawable-xxhdpi/ic_open_keychain.png
new file mode 100644
index 0000000000000000000000000000000000000000..4809acc3939d7882f57a6fe2e35591dd923a5056
Binary files /dev/null and b/res/drawable-xxhdpi/ic_open_keychain.png differ
diff --git a/res/drawable-xxxhdpi/ic_open_keychain.png b/res/drawable-xxxhdpi/ic_open_keychain.png
new file mode 100644
index 0000000000000000000000000000000000000000..fab324e93bde581cf46de52d9fa7367aaca7a492
Binary files /dev/null and b/res/drawable-xxxhdpi/ic_open_keychain.png differ
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4d54ad1f13cea43a6b44f7373e54e31fb6f1cc75..3dcdab5dcb38caf53c7fce8b667f9e02a200ae73 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -9057,4 +9057,5 @@
MicroG
+ OpenKeychain
diff --git a/res/xml/open_keychain_prefs.xml b/res/xml/open_keychain_prefs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9e2234458b4c87f6c65b60388eab10480bfdd7e1
--- /dev/null
+++ b/res/xml/open_keychain_prefs.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/src/com/android/settings/OpenKeychainSettings.java b/src/com/android/settings/OpenKeychainSettings.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ea0f56b9185ee0919f4849c36e554f63786fd5a
--- /dev/null
+++ b/src/com/android/settings/OpenKeychainSettings.java
@@ -0,0 +1,47 @@
+package com.android.settings;
+
+import android.os.Bundle;
+import android.content.Intent;
+import android.content.ComponentName;
+import android.app.Fragment;
+
+import android.app.Activity;
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+import com.android.settings.R;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import java.util.ArrayList;
+import java.util.List;
+
+public class OpenKeychainSettings extends Fragment {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ Intent intent = new Intent("android.intent.action.MAIN");
+ intent.setComponent(new ComponentName("org.sufficientlysecure.keychain", "org.sufficientlysecure.keychain.ui.MainActivity"));
+ startActivity(intent);
+
+ Activity activity = getActivity();
+
+ if (activity != null) {
+ activity.finish();
+ }
+ }
+
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.open_keychain_prefs;
+ result.add(sir);
+ return result;
+ }
+ };
+}
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index af4cf91b03847d7cada2fdf65301eb0bc40d6d74..8f32d3dc6b98391d755067467c9dec451fc61b78 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -172,6 +172,7 @@ public class Settings extends SettingsActivity {
public static class WifiAPITestActivity extends SettingsActivity { /* empty */ }
public static class WifiInfoActivity extends SettingsActivity { /* empty */ }
public static class MicroGActivity extends SettingsActivity { /* empty */ }
+ public static class OpenKeychainActivity extends SettingsActivity { /* empty */ }
public static class EnterprisePrivacySettingsActivity extends SettingsActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index b85a1946de791b70e8c41839095ae07d4677b256..31ac7252f3cea37f5e6005ee08ed5a5e0b22fd43 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -28,6 +28,7 @@ import com.android.settings.MasterClear;
import com.android.settings.PrivacySettings;
import com.android.settings.SecuritySettings;
import com.android.settings.MicroGSettings;
+import com.android.settings.OpenKeychainSettings;
import com.android.settings.Settings;
import com.android.settings.TestingSettings;
import com.android.settings.TetherSettings;
@@ -254,7 +255,8 @@ public class SettingsGateway {
LockscreenDashboardFragment.class.getName(),
BluetoothDeviceDetailsFragment.class.getName(),
DataUsageList.class.getName(),
- MicroGSettings.class.getName()
+ MicroGSettings.class.getName(),
+ OpenKeychainSettings.class.getName()
};
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 029a45ac12c23dd9b0129a9cde839eebc8bc5cf8..9f462663933cc4c70cae6c7f385905d85e5ec503 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -89,6 +89,7 @@ import com.android.settings.wifi.ConfigureWifiSettings;
import com.android.settings.wifi.SavedAccessPointsWifiSettings;
import com.android.settings.wifi.WifiSettings;
import com.android.settings.MicroGSettings;
+import com.android.settings.OpenKeychainSettings;
import java.util.Collection;
import java.util.HashMap;
@@ -218,6 +219,7 @@ public final class SearchIndexableResources {
NO_DATA_RES_ID,
R.drawable.ic_settings_storage);
addIndex(MicroGSettings.class, R.xml.micro_g_prefs, R.drawable.ic_microg_settings);
+ addIndex(OpenKeychainSettings.class, R.xml.open_keychain_prefs, R.drawable.ic_open_keychain);
}
private SearchIndexableResources() {