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; + } + } +}