(Android) Remove some more no longer used files

This commit is contained in:
twinaphex 2015-07-07 20:09:13 +02:00
parent c0a7d10ec0
commit c06defe102
11 changed files with 1 additions and 999 deletions

View File

@ -1,107 +0,0 @@
package com.retroarch.browser;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.retroarch.R;
import com.retroarch.browser.mainmenu.MainMenuActivity;
import com.retroarch.browser.preferences.util.UserPreferences;
/**
* {@link ListFragment} subclass that displays the list
* of selectable cores for emulating games.
*/
public final class CoreSelection extends DialogFragment
{
private IconAdapter<ModuleWrapper> adapter;
/**
* Creates a statically instantiated instance of CoreSelection.
*
* @return a statically instantiated instance of CoreSelection.
*/
public static CoreSelection newInstance()
{
return new CoreSelection();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the ListView we're using.
final ListView coreList = (ListView) inflater.inflate(R.layout.line_list, container, false);
coreList.setOnItemClickListener(onClickListener);
// Set the title of the dialog
getDialog().setTitle(R.string.select_libretro_core);
final String cpuInfo = UserPreferences.readCPUInfo();
final boolean cpuIsNeon = cpuInfo.contains("neon");
// Populate the list
final List<ModuleWrapper> cores = new ArrayList<ModuleWrapper>();
final File[] libs = new File(getActivity().getApplicationInfo().dataDir, "cores").listFiles();
for (final File lib : libs) {
String libName = lib.getName();
// Never append a NEON lib if we don't have NEON.
if (libName.contains("neon") && !cpuIsNeon)
continue;
// If we have a NEON version with NEON capable CPU,
// never append a non-NEON version.
if (cpuIsNeon && !libName.contains("neon"))
{
boolean hasNeonVersion = false;
for (final File lib_ : libs)
{
String otherName = lib_.getName();
String baseName = libName.replace(".so", "");
if (otherName.contains("neon") && otherName.startsWith(baseName))
{
hasNeonVersion = true;
break;
}
}
if (hasNeonVersion)
continue;
}
cores.add(new ModuleWrapper(getActivity(), lib));
}
// Sort the list of cores alphabetically
Collections.sort(cores);
// Initialize the IconAdapter with the list of cores.
adapter = new IconAdapter<ModuleWrapper>(getActivity(), R.layout.line_list_item, cores);
coreList.setAdapter(adapter);
return coreList;
}
private final OnItemClickListener onClickListener = new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> listView, View view, int position, long id)
{
final ModuleWrapper item = adapter.getItem(position);
((MainMenuActivity)getActivity()).setModule(item.getUnderlyingFile().getAbsolutePath(), item.getText());
UserPreferences.updateConfigFile(getActivity());
dismiss();
}
};
}

View File

@ -1,129 +0,0 @@
package com.retroarch.browser;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import com.retroarch.R;
import com.retroarch.browser.preferences.util.UserPreferences;
import android.app.Activity;
import android.content.SharedPreferences;
import android.opengl.GLES20;
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;
import android.widget.Toast;
/**
* {@link Activity} subclass that provides the functionality
* for the refresh rate testing for device displays.
*/
public final class DisplayRefreshRateTest extends Activity {
private class Renderer implements GLSurfaceView.Renderer {
private static final String TAG = "GLESRenderer";
private static final double WARMUP_SECONDS = 2.0;
private static final double TEST_SECONDS = 10.0;
// Test states
private static final int STATE_START = 0;
private static final int STATE_WARMUP = 1;
private static final int STATE_TEST = 2;
private static final int STATE_DONE = 3;
private static final int STATE_DEAD = 4;
private int mState = STATE_START;
private double mStartTime = 0.0;
private int mNumFrames = 0;
private Activity activity;
public Renderer(Activity activity) {
this.activity = activity;
}
private void setFPSSetting(double fps) {
SharedPreferences prefs = UserPreferences.getPreferences(DisplayRefreshRateTest.this);
SharedPreferences.Editor edit = prefs.edit();
edit.putString("video_refresh_rate", Double.toString(fps));
edit.apply();
}
@Override
public void onDrawFrame(GL10 gl) {
double t = System.nanoTime() * 1.0e-9;
switch (mState) {
case STATE_START:
mStartTime = t;
mState = STATE_WARMUP;
break;
case STATE_WARMUP:
if ((t - mStartTime) >= WARMUP_SECONDS) {
mStartTime = t;
mNumFrames = 0;
mState = STATE_TEST;
}
break;
case STATE_TEST:
mNumFrames++;
double elapsed = t - mStartTime;
if (elapsed >= TEST_SECONDS) {
double fps = (double)mNumFrames / elapsed;
Log.i(TAG, "Measured FPS to: " + fps);
setFPSSetting(fps);
mState = STATE_DONE;
}
break;
case STATE_DONE:
activity.runOnUiThread(new Runnable() {
public void run() {
finish();
}
});
mState = STATE_DEAD;
break;
case STATE_DEAD:
break;
}
float luma = (float)Math.sin((double)mNumFrames * 0.10);
luma *= 0.2f;
luma += 0.5f;
GLES20.glClearColor(luma, luma, luma, 1.0f);
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
// TODO Auto-generated method stub
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
// TODO Auto-generated method stub
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, R.string.touch_screen_with_fingers, Toast.LENGTH_LONG).show();
final GLSurfaceView surfaceView = new GLSurfaceView(this);
surfaceView.setEGLContextClientVersion(2);
surfaceView.setRenderer(new Renderer(this));
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setTitle(R.string.refresh_rate_calibration);
setContentView(surfaceView);
}
@Override
protected void onDestroy() {
SharedPreferences prefs = UserPreferences.getPreferences(this);
String fps = prefs.getString("video_refresh_rate", "ERROR");
Toast.makeText(this, String.format(getString(R.string.refresh_rate_measured_to), fps), Toast.LENGTH_LONG).show();
super.onDestroy();
}
}

View File

@ -1,346 +0,0 @@
package com.retroarch.browser.dirfragment;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.Settings;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.retroarch.R;
import com.retroarch.browser.FileWrapper;
import com.retroarch.browser.IconAdapter;
import com.retroarch.browser.ModuleWrapper;
import com.retroarch.browser.mainmenu.MainMenuFragment;
import com.retroarch.browser.preferences.util.UserPreferences;
import com.retroarch.browser.retroactivity.RetroActivityFuture;
import com.retroarch.browser.retroactivity.RetroActivityPast;
/**
* {@link DirectoryFragment} that implements core autodetect.
* <p>
* Basically, how it works is the user selects a file.
* Then, we iterate over all the cores and check what their supported extensions are.
* Then, if any cores contain the supported extension, they are added to a list and
* displayed to the user to choose from.
* <p>
* The only exception is if only one core matches the extension of the chosen file.
* In this case, we just attempt to launch the core with that file directly.
*/
// TODO: This is ugly as hell. Clean this up sometime.
// For example, maybe breaking this out into two fragments
// to handle the behavior would be better. One for browsing,
// one for handling the list of selectable cores.
public final class DetectCoreDirectoryFragment extends DirectoryFragment
{
private ListView backingListView = null;
private boolean inFileBrowser = true;
private ArrayList<String> supportedCorePaths = new ArrayList<String>();
/**
* Retrieves a new instance of a DetectCoreDirectoryFragment
* with a title specified by the given resource ID.
*
* @param titleResId String resource ID for the title
* of this DetectCoreDirectoryFragment.
*
* @return A new instance of a DetectCoreDirectoryFragment.
*/
public static DetectCoreDirectoryFragment newInstance(int titleResId)
{
final DetectCoreDirectoryFragment dFrag = new DetectCoreDirectoryFragment();
final Bundle bundle = new Bundle();
bundle.putInt("titleResId", titleResId);
dFrag.setArguments(bundle);
return dFrag;
}
/**
* Returns everything after the last . of the given file name or path.
*/
private static String getFileExt(String filePath)
{
int i = filePath.lastIndexOf('.');
if (i >= 0)
return filePath.substring(i+1).toLowerCase();
return ""; // No extension
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
backingListView = (ListView) inflater.inflate(R.layout.line_list, container, false);
backingListView.setOnItemClickListener(onItemClickListener);
// Get whether or not we were in the file browser prior to recreation.
if (savedInstanceState != null)
{
inFileBrowser = savedInstanceState.getBoolean("inFileBrowser");
if (inFileBrowser)
backStack = savedInstanceState.getParcelableArrayList("BACKSTACK");
}
// Set the dialog title.
if (inFileBrowser)
getDialog().setTitle(getArguments().getInt("titleResId"));
else
getDialog().setTitle(R.string.multiple_cores_detected);
// If we're in the file browser, reinitialize the file list adapter.
if (savedInstanceState == null || inFileBrowser)
{
// Setup the list
adapter = new IconAdapter<FileWrapper>(getActivity(), R.layout.line_list_item);
backingListView.setAdapter(adapter);
}
if (inFileBrowser)
{
if (backStack == null || backStack.isEmpty())
{
backStack = new ArrayList<BackStackItem>();
String startPath = (startDirectory == null || startDirectory.isEmpty()) ? Environment
.getExternalStorageDirectory().getPath() : startDirectory;
backStack.add(new BackStackItem(startPath, false));
}
wrapFiles();
}
else // Rebuild the core adapter.
{
supportedCorePaths = savedInstanceState.getStringArrayList("coreFilePaths");
CoreSelectionAdapter adapter = new CoreSelectionAdapter(getActivity(), android.R.layout.simple_list_item_2);
for (String path : supportedCorePaths)
{
ModuleWrapper mw = new ModuleWrapper(getActivity(), path);
adapter.add(new CoreItem(mw.getInternalName(), mw.getEmulatedSystemName()));
}
backingListView.setAdapter(adapter);
}
return backingListView;
}
@Override
public void onSaveInstanceState(Bundle outState)
{
// Save whether or not we're in core selection or the file browser.
outState.putBoolean("inFileBrowser", inFileBrowser);
if (!inFileBrowser)
outState.putStringArrayList("coreFilePaths", supportedCorePaths);
}
private File chosenFile = null;
private final OnItemClickListener onItemClickListener = new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
final FileWrapper item = adapter.getItem(position);
if (inFileBrowser && item.isParentItem() && backStack.get(backStack.size() - 1).parentIsBack)
{
backStack.remove(backStack.size() - 1);
wrapFiles();
return;
}
final File selected = item.isParentItem() ? listedDirectory.getParentFile() : item.getFile();
if (inFileBrowser && selected.isDirectory())
{
Log.d("DirectoryFrag", "Is Directory.");
backStack.add(new BackStackItem(selected.getAbsolutePath(), !item.isParentItem()));
wrapFiles();
return;
}
else if (inFileBrowser && selected.isFile())
{
String filePath = selected.getAbsolutePath();
chosenFile = selected;
// Attempt to get the file extension.
String fileExt = getFileExt(filePath);
if (fileExt.equals("zip"))
{
try
{
ZipFile zipFile = new ZipFile(chosenFile);
Enumeration<? extends ZipEntry> entries = zipFile.entries();
// Try to handle the case of small text files bundles with content.
long largestEntry = Long.MIN_VALUE;
while (entries.hasMoreElements())
{
ZipEntry zipEntry = entries.nextElement();
if (zipEntry.getCompressedSize() >= largestEntry)
{
largestEntry = zipEntry.getCompressedSize();
fileExt = getFileExt(zipEntry.getName());
}
}
zipFile.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
// Enumerate the cores and check for the extension
File coreDir = new File(getActivity().getApplicationInfo().dataDir + File.separator + "cores");
File[] coreFiles = coreDir.listFiles();
List<ModuleWrapper>supportedCores = new ArrayList<ModuleWrapper>();
for (File core : coreFiles)
{
ModuleWrapper mw = new ModuleWrapper(getActivity(), core);
if (mw.getSupportedExtensions().contains(fileExt))
{
supportedCores.add(mw);
supportedCorePaths.add(mw.getUnderlyingFile().getAbsolutePath());
}
}
// Display a toast if no cores are detected.
if (supportedCores.isEmpty())
{
Toast.makeText(getActivity(), R.string.no_cores_detected, Toast.LENGTH_SHORT).show();
}
// If only one core is supported, launch the content directly.
else if (supportedCores.size() == 1)
{
launchCore(selected.getPath(), supportedCores.get(0).getUnderlyingFile().getPath());
}
// Otherwise build the list for the user to choose from.
else if (supportedCores.size() > 1)
{
// Not in the file browser any more.
inFileBrowser = false;
// Modify the title to notify of multiple cores.
getDialog().setTitle(R.string.multiple_cores_detected);
// Add all the cores to the adapter and swap it with the one in the ListView.
final CoreSelectionAdapter csa = new CoreSelectionAdapter(getActivity(), android.R.layout.simple_list_item_2);
for (ModuleWrapper core : supportedCores)
{
csa.add(new CoreItem(core.getInternalName(), core.getEmulatedSystemName()));
}
backingListView.setAdapter(csa);
}
}
else // Selection made
{
launchCore(chosenFile.getPath(), DetectCoreDirectoryFragment.this.supportedCorePaths.get(position));
}
}
};
private void launchCore(String contentPath, String corePath)
{
Intent retro;
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB))
retro = new Intent(getActivity(), RetroActivityFuture.class);
else
retro = new Intent(getActivity(), RetroActivityPast.class);
UserPreferences.updateConfigFile(getActivity());
MainMenuFragment.startRetroActivity(
retro,
contentPath,
corePath,
UserPreferences.getDefaultConfigPath(getActivity()),
Settings.Secure.getString(getActivity().getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD),
getActivity().getApplicationInfo().dataDir);
startActivity(retro);
dismiss();
}
// Used to represent data in the ListView after the user chooses an item.
private static final class CoreItem
{
public final String Title;
public final String Subtitle;
public CoreItem(String title, String subtitle)
{
this.Title = title;
this.Subtitle = subtitle;
}
}
// Adapter that the ListView is flipped to after choosing a file to launch.
private static final class CoreSelectionAdapter extends ArrayAdapter<CoreItem>
{
private final int resourceId;
/**
* Constructor
*
* @param context The current {@link Context}.
* @param resourceId The resource ID for a layout file.
*/
public CoreSelectionAdapter(Context context, int resourceId)
{
super(context, resourceId);
this.resourceId = resourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
if (convertView == null)
{
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(resourceId, parent, false);
}
final CoreItem core = getItem(position);
if (core != null)
{
final TextView title = (TextView) convertView.findViewById(android.R.id.text1);
final TextView subtitle = (TextView) convertView.findViewById(android.R.id.text2);
if (title != null)
title.setText(core.Title);
if (subtitle != null)
subtitle.setText(core.Subtitle);
}
return convertView;
}
}
}

View File

@ -1,115 +0,0 @@
package com.retroarch.browser.preferences;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import com.retroarch.R;
import com.retroarch.browser.preferences.fragments.AudioPreferenceFragment;
import com.retroarch.browser.preferences.fragments.GeneralPreferenceFragment;
import com.retroarch.browser.preferences.fragments.InputPreferenceFragment;
import com.retroarch.browser.preferences.fragments.PathPreferenceFragment;
import com.retroarch.browser.preferences.fragments.VideoPreferenceFragment;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import com.retroarch.browser.preferences.util.UserPreferences;
/**
* {@link ActionBarActivity} responsible for handling all of the {@link PreferenceListFragment}s.
* <p>
* This class can be considered the central activity for the settings, as this class
* provides the backbone for the {@link ViewPager} that handles all of the fragments being used.
*/
public final class PreferenceActivity extends ActionBarActivity implements OnSharedPreferenceChangeListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Set the ViewPager.
setContentView(R.layout.preference_viewpager);
// Initialize the ViewPager.
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new PreferencesAdapter(getSupportFragmentManager()));
// Register the preference change listener.
final SharedPreferences sPrefs = PreferenceManager.getDefaultSharedPreferences(this);
sPrefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
// Update the config file immediately when a preference has changed.
UserPreferences.updateConfigFile(this);
}
/**
* The {@link FragmentPagerAdapter} that will back
* the view pager of this {@link PreferenceActivity}.
*/
private final class PreferencesAdapter extends FragmentPagerAdapter
{
private final String[] pageTitles = {
getString(R.string.general_options),
getString(R.string.audio_options),
getString(R.string.input_options),
getString(R.string.video_options),
getString(R.string.path_options)
};
/**
* Constructor
*
* @param fm the {@link FragmentManager} for this adapter.
*/
public PreferencesAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public Fragment getItem(int fragmentId)
{
switch (fragmentId)
{
case 0:
return new GeneralPreferenceFragment();
case 1:
return new AudioPreferenceFragment();
case 2:
return new InputPreferenceFragment();
case 3:
return new VideoPreferenceFragment();
case 4:
return new PathPreferenceFragment();
default: // Should never happen
return null;
}
}
@Override
public CharSequence getPageTitle(int position)
{
return pageTitles[position];
}
@Override
public int getCount()
{
return 5;
}
}
}

View File

@ -1,21 +0,0 @@
package com.retroarch.browser.preferences.fragments;
import com.retroarch.R;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import android.os.Bundle;
/**
* A {@link PreferenceListFragment} responsible for handling the audio preferences.
*/
public final class AudioPreferenceFragment extends PreferenceListFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Add audio preferences from the XML.
addPreferencesFromResource(R.xml.audio_preferences);
}
}

View File

@ -1,37 +0,0 @@
package com.retroarch.browser.preferences.fragments;
import com.retroarch.R;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import com.retroarch.browser.preferences.util.UserPreferences;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
/**
* A {@link PreferenceListFragment} that handles the general settings.
*/
public final class GeneralPreferenceFragment extends PreferenceListFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Add general preferences from the XML.
addPreferencesFromResource(R.xml.general_preferences);
// Set a listener for the global configuration checkbox.
final CheckBoxPreference usingGlobalConfig = (CheckBoxPreference) findPreference("global_config_enable");
usingGlobalConfig.setOnPreferenceClickListener(new OnPreferenceClickListener(){
@Override
public boolean onPreferenceClick(Preference preference)
{
UserPreferences.updateConfigFile(getActivity());
UserPreferences.readbackConfigFile(getActivity());
return true;
}
});
}
}

View File

@ -1,75 +0,0 @@
package com.retroarch.browser.preferences.fragments;
import java.io.File;
import com.retroarch.R;
import com.retroarch.browser.dirfragment.DirectoryFragment;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.provider.Settings;
import android.view.inputmethod.InputMethodManager;
/**
* A {@link PreferenceListFragment} responsible for handling the input preferences.
*/
public final class InputPreferenceFragment extends PreferenceListFragment implements OnPreferenceClickListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Add input preferences from the XML.
addPreferencesFromResource(R.xml.input_preferences);
// Set preference listeners
findPreference("set_ime_pref").setOnPreferenceClickListener(this);
findPreference("report_ime_pref").setOnPreferenceClickListener(this);
findPreference("inputOverlayDirPref").setOnPreferenceClickListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference)
{
final String prefKey = preference.getKey();
// Set Input Method preference
if (prefKey.equals("set_ime_pref"))
{
// Show an IME picker so the user can change their set IME.
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showInputMethodPicker();
}
// Report IME preference
else if (prefKey.equals("report_ime_pref"))
{
final String currentIme = Settings.Secure.getString(getActivity().getContentResolver(),
Settings.Secure.DEFAULT_INPUT_METHOD);
AlertDialog.Builder reportImeDialog = new AlertDialog.Builder(getActivity());
reportImeDialog.setTitle(R.string.current_ime);
reportImeDialog.setMessage(currentIme);
reportImeDialog.setNegativeButton(R.string.close, null);
reportImeDialog.show();
}
// Input Overlay selection
else if (prefKey.equals("inputOverlayDirPref"))
{
final DirectoryFragment overlayBrowser = DirectoryFragment.newInstance(R.string.input_overlay_select);
File overlayDir = new File(getActivity().getApplicationInfo().dataDir, "overlays");
if (overlayDir.exists())
overlayBrowser.setStartDirectory(overlayDir.getAbsolutePath());
overlayBrowser.addAllowedExts(".cfg");
overlayBrowser.setPathSettingKey("input_overlay");
overlayBrowser.show(getFragmentManager(), "overlayBrowser");
}
return true;
}
}

View File

@ -1,47 +0,0 @@
package com.retroarch.browser.preferences.fragments;
import com.retroarch.R;
import com.retroarch.browser.dirfragment.DirectoryFragment;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
/**
* A {@link PreferenceListFragment} that handles the path preferences.
*/
public final class PathPreferenceFragment extends PreferenceListFragment implements OnPreferenceClickListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Add path preferences from the XML.
addPreferencesFromResource(R.xml.path_preferences);
// Set preference click listeners
findPreference("romDirPref").setOnPreferenceClickListener(this);
findPreference("srmDirPref").setOnPreferenceClickListener(this);
findPreference("saveStateDirPref").setOnPreferenceClickListener(this);
findPreference("systemDirPref").setOnPreferenceClickListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference)
{
final String prefKey = preference.getKey();
// Custom ROM directory
if (prefKey.equals("romDirPref"))
{
final DirectoryFragment romDirBrowser = DirectoryFragment.newInstance(R.string.rom_directory_select);
romDirBrowser.setPathSettingKey("rgui_browser_directory");
romDirBrowser.setIsDirectoryTarget(true);
romDirBrowser.show(getFragmentManager(), "romDirBrowser");
}
return true;
}
}

View File

@ -1,54 +0,0 @@
package com.retroarch.browser.preferences.fragments;
import com.retroarch.R;
import com.retroarch.browser.preferences.fragments.util.PreferenceListFragment;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceManager;
import android.preference.Preference.OnPreferenceClickListener;
import android.view.Display;
import android.view.WindowManager;
import android.widget.Toast;
/**
* A {@link PreferenceListFragment} responsible for handling the video preferences.
*/
public final class VideoPreferenceFragment extends PreferenceListFragment implements OnPreferenceClickListener
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Add preferences from the resources
addPreferencesFromResource(R.xml.video_preferences);
// Set preference click listeners
findPreference("set_os_reported_ref_rate_pref").setOnPreferenceClickListener(this);
}
@Override
public boolean onPreferenceClick(Preference preference)
{
final String prefKey = preference.getKey();
// Set OS-reported refresh rate preference.
if (prefKey.equals("set_os_reported_ref_rate_pref"))
{
final WindowManager wm = getActivity().getWindowManager();
final Display display = wm.getDefaultDisplay();
final double rate = display.getRefreshRate();
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
final SharedPreferences.Editor edit = prefs.edit();
edit.putString("video_refresh_rate", Double.toString(rate));
edit.apply();
Toast.makeText(getActivity(), String.format(getString(R.string.using_os_reported_refresh_rate), rate), Toast.LENGTH_LONG).show();
}
return true;
}
}

View File

@ -1,67 +0,0 @@
package com.retroarch.browser.preferences.util;
import com.retroarch.R;
import android.content.Context;
import android.preference.DialogPreference;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.SeekBar;
import android.widget.TextView;
public final class SeekbarPreference extends DialogPreference implements SeekBar.OnSeekBarChangeListener {
private float seek_value;
private SeekBar bar;
private TextView text;
private final Context context;
public SeekbarPreference(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
@Override
protected View onCreateDialogView()
{
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.seek_dialog, null);
this.bar = (SeekBar) view.findViewById(R.id.seekbar_bar);
this.text = (TextView) view.findViewById(R.id.seekbar_text);
this.seek_value = getPersistedFloat(1.0f);
// Set initial progress for seek bar and set the listener.
int prog = (int) (seek_value * 100);
this.bar.setProgress(prog);
this.text.setText(prog + "%");
this.bar.setOnSeekBarChangeListener(this);
return view;
}
@Override
protected void onDialogClosed(boolean positiveResult) {
super.onDialogClosed(positiveResult);
if (positiveResult) {
persistFloat(seek_value);
}
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
seek_value = (float) progress / 100.0f;
text.setText((int) (seek_value * 100) + "%");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
}