diff --git a/android/phoenix/AndroidManifest.xml b/android/phoenix/AndroidManifest.xml
index 7d4f2e7cba..b9d2f1061e 100644
--- a/android/phoenix/AndroidManifest.xml
+++ b/android/phoenix/AndroidManifest.xml
@@ -38,6 +38,7 @@
+
diff --git a/android/phoenix/res/layout/coremanager_list_item.xml b/android/phoenix/res/layout/coremanager_list_item.xml
new file mode 100644
index 0000000000..ab4c4bbb0e
--- /dev/null
+++ b/android/phoenix/res/layout/coremanager_list_item.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/phoenix/res/layout/coremanager_listview_layout.xml b/android/phoenix/res/layout/coremanager_listview_layout.xml
new file mode 100644
index 0000000000..5583543704
--- /dev/null
+++ b/android/phoenix/res/layout/coremanager_listview_layout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/android/phoenix/res/layout/coremanager_viewpager.xml b/android/phoenix/res/layout/coremanager_viewpager.xml
new file mode 100644
index 0000000000..3e5a774d2d
--- /dev/null
+++ b/android/phoenix/res/layout/coremanager_viewpager.xml
@@ -0,0 +1,5 @@
+
diff --git a/android/phoenix/res/values/strings.xml b/android/phoenix/res/values/strings.xml
index 825fb2ed0e..790c2f15bb 100644
--- a/android/phoenix/res/values/strings.xml
+++ b/android/phoenix/res/values/strings.xml
@@ -16,6 +16,7 @@
Load Core
Load Game
Load Game (History)
+ Manage Cores
Settings
Help
About
@@ -23,6 +24,10 @@
Select Libretro core
+
+ Installed Cores
+ Downloadable Cores
+
Refresh rate calibration
Touch the screen with your fingers for more accurate measurements.
@@ -148,6 +153,8 @@
General
+ Core Management
+ Manage Cores
Configuration style
Global configuration
Enable global settings for all cores. Leave disabled if you want per-core settings.
diff --git a/android/phoenix/res/xml/general_preferences.xml b/android/phoenix/res/xml/general_preferences.xml
index a562c37673..a2bd6c60f6 100644
--- a/android/phoenix/res/xml/general_preferences.xml
+++ b/android/phoenix/res/xml/general_preferences.xml
@@ -1,6 +1,16 @@
+
+
+
+
+
+
+
items = new ArrayList();
+
+ // TODO: Populate list adapter.
+
+ // Set the list adapter.
+ final InstalledCoresAdapter adapter = new InstalledCoresAdapter(getActivity(), R.layout.coremanager_list_item, items);
+ setListAdapter(adapter);
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
+ {
+ // Inflate the layout for this ListFragment.
+ View parentView = inflater.inflate(R.layout.coremanager_listview_layout, container, false);
+
+ return parentView.findViewById(android.R.id.list);
+ }
+
+ /**
+ * The {@link ArrayAdapter} that backs this InstalledCoresFragment.
+ */
+ private final class InstalledCoresAdapter extends ArrayAdapter
+ {
+ private final Context context;
+ private final int resourceId;
+ private final List items;
+
+ /**
+ * Constructor
+ *
+ * @param context The current {@link Context}.
+ * @param resourceId The resource ID for a layout file containing a layout to use when instantiating views.
+ * @param objects The items to represent in the {@link ListView}.
+ */
+ public InstalledCoresAdapter(Context context, int resourceId, List items)
+ {
+ super(context, resourceId, items);
+
+ this.context = context;
+ this.resourceId = resourceId;
+ this.items = items;
+ }
+
+ @Override
+ public CoreManagerListItem getItem(int i)
+ {
+ return items.get(i);
+ }
+
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent)
+ {
+ if (convertView == null)
+ {
+ LayoutInflater vi = LayoutInflater.from(context);
+ convertView = vi.inflate(resourceId, parent, false);
+ }
+
+ final CoreManagerListItem item = items.get(position);
+ if (item != null)
+ {
+ TextView title = (TextView) convertView.findViewById(R.id.CoreManagerListItemTitle);
+ TextView subtitle = (TextView) convertView.findViewById(R.id.CoreManagerListItemSubTitle);
+ ImageView icon = (ImageView) convertView.findViewById(R.id.CoreManagerListItemIcon);
+
+ if (title != null)
+ {
+ title.setText(item.getName());
+ }
+
+ if (subtitle != null)
+ {
+ subtitle.setText(item.getSubtitle());
+ }
+
+ if (icon != null)
+ {
+ // TODO: Set core icon.
+ }
+ }
+
+ return convertView;
+ }
+ }
+}