Merge pull request #385 from 0002647302/master

Invert the native activity preference until adjusted for x86
This commit is contained in:
TwistedUmbrella 2014-03-05 04:56:13 -05:00
commit f2961bd779
155 changed files with 2992 additions and 329 deletions

View File

@ -64,12 +64,6 @@ LOCAL_ARM_MODE := arm
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
LOCAL_CERTIFICATE := shared
LOCAL_PATH:= $(call my-dir)/..
include $(CLEAR_VARS)
LOCAL_MODULE := sexplay

View File

@ -22,7 +22,7 @@
<string name="optimization_opts">Optimization and Debugging Options</string>
<string name="experimental_opts">Expert (May cause widespread panic)</string>
<string name="select_native">Disable Native Interface</string>
<string name="select_native">Enable Native Interface</string>
<string name="select_dynarec">Dynarec Options</string>
<string name="select_unstable">Unstable Optimisations</string>
<string name="select_region">DC Region</string>

View File

@ -91,7 +91,6 @@ import android.widget.ListView;
import android.widget.SlidingDrawer;
import android.widget.SlidingDrawer.OnDrawerOpenListener;
import android.widget.TextView;
import android.widget.Toast;
import com.reicast.emulator.config.Config;
import com.reicast.emulator.debug.GitAdapter;

View File

@ -41,6 +41,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.android.util.FileUtils;
import com.reicast.emulator.config.Config;
import com.reicast.emulator.emu.JNIdc;
public class FileBrowser extends Fragment {
@ -62,8 +63,8 @@ public class FileBrowser extends Fragment {
super.onCreate(savedInstanceState);
mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
home_directory = mPrefs.getString("home_directory", home_directory);
game_directory = mPrefs.getString("game_directory", game_directory);
home_directory = mPrefs.getString(Config.pref_home, home_directory);
game_directory = mPrefs.getString(Config.pref_games, game_directory);
Bundle b = getArguments();
if (b != null) {
@ -413,12 +414,12 @@ public class FileBrowser extends Fragment {
if (games) {
game_directory = heading;
mPrefs.edit()
.putString("game_directory",
.putString(Config.pref_games,
heading).commit();
} else {
home_directory = heading;
mPrefs.edit()
.putString("home_directory",
.putString(Config.pref_home,
heading).commit();
File data_directory = new File(heading,
"data");

View File

@ -82,13 +82,13 @@ public class GL2JNIActivity extends Activity {
// Populate device descriptor-to-player-map from preferences
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_1", null), 0);
prefs.getString(Gamepad.pref_player1, null), 0);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_2", null), 1);
prefs.getString(Gamepad.pref_player2, null), 1);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_3", null), 2);
prefs.getString(Gamepad.pref_player3, null), 2);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_4", null), 3);
prefs.getString(Gamepad.pref_player4, null), 3);
pad.deviceDescriptor_PlayerNum.remove(null);
moga.onCreate(this, pad);
@ -144,23 +144,23 @@ public class GL2JNIActivity extends Activity {
if (playerNum != null) {
String id = pad.portId[playerNum];
pad.custom[playerNum] = prefs.getBoolean("modified_key_layout" + id, false);
pad.compat[playerNum] = prefs.getBoolean("controller_compat" + id, false);
pad.joystick[playerNum] = prefs.getBoolean("separate_joystick" + id, true);
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_separate + id, true);
if (!pad.compat[playerNum]) {
if (pad.custom[playerNum]) {
pad.map[playerNum] = pad.setModifiedKeys(id, playerNum, prefs);
} else if (InputDevice.getDevice(joy).getName()
.equals("Sony PLAYSTATION(R)3 Controller")) {
.equals(Gamepad.controllers_sony)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (InputDevice.getDevice(joy).getName()
.equals("Microsoft X-Box 360 pad")) {
.equals(Gamepad.controllers_xbox)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (InputDevice.getDevice(joy).getName()
.contains("NVIDIA Corporation NVIDIA Controller")) {
.contains(Gamepad.controllers_shield)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (InputDevice.getDevice(joy).getName()
.contains("keypad-zeus")) {
.contains(Gamepad.controllers_play)) {
pad.map[playerNum] = pad.getXPlayController();
} else if (!pad.isActiveMoga[playerNum]) { // Ouya controller
pad.map[playerNum] = pad.getOUYAController();
@ -187,11 +187,11 @@ public class GL2JNIActivity extends Activity {
// Create the actual GLES view
mView = new GL2JNIView(getApplication(), config, fileName, false,
prefs.getInt("depth_render", 24), 0, false);
prefs.getInt(Config.pref_renderdepth, 24), 0, false);
setContentView(mView);
//setup mic
boolean micPluggedIn = prefs.getBoolean("mic_plugged_in", false);
boolean micPluggedIn = prefs.getBoolean(Config.pref_mic, false);
if(micPluggedIn){
SipEmulator sip = new SipEmulator();
sip.startRecording();
@ -200,10 +200,10 @@ public class GL2JNIActivity extends Activity {
popUp = menu.new MainPopup(this);
vmuPop = menu.new VmuPopup(this);
if(prefs.getBoolean("vmu_floating", false)){
if(prefs.getBoolean(Config.pref_vmu, false)){
//kind of a hack - if the user last had the vmu on screen
//inverse it and then "toggle"
prefs.edit().putBoolean("vmu_floating", false).commit();
prefs.edit().putBoolean(Config.pref_vmu, false).commit();
//can only display a popup after onCreate
mView.post(new Runnable() {
public void run() {
@ -212,7 +212,7 @@ public class GL2JNIActivity extends Activity {
});
}
JNIdc.setupVmu(menu.getVmu());
if (prefs.getBoolean("show_fps", false)) {
if (prefs.getBoolean(Config.pref_showfps, false)) {
fpsPop = menu.new FpsPopup(this);
mView.setFpsDisplay(fpsPop);
mView.post(new Runnable() {
@ -238,7 +238,7 @@ public class GL2JNIActivity extends Activity {
}
private void getCompatibilityMap(int playerNum, String id) {
pad.name[playerNum] = prefs.getInt("controller" + id, -1);
pad.name[playerNum] = prefs.getInt(Gamepad.pref_pad + id, -1);
if (pad.name[playerNum] != -1) {
pad.map[playerNum] = pad.setModifiedKeys(id, playerNum, prefs);
}
@ -382,7 +382,7 @@ public class GL2JNIActivity extends Activity {
}
public void toggleVmu() {
boolean showFloating = !prefs.getBoolean("vmu_floating", false);
boolean showFloating = !prefs.getBoolean(Config.pref_vmu, false);
if(showFloating){
if(popUp.isShowing()){
popUp.dismiss();
@ -402,7 +402,7 @@ public class GL2JNIActivity extends Activity {
//add back to popup menu
popUp.showVmu();
}
prefs.edit().putBoolean("vmu_floating", showFloating).commit();
prefs.edit().putBoolean(Config.pref_vmu, showFloating).commit();
}
public void displayConfig(PopupWindow popUpConfig) {
@ -427,9 +427,9 @@ public class GL2JNIActivity extends Activity {
if (playerNum != null && playerNum != -1) {
if (pad.compat[playerNum] || pad.custom[playerNum]) {
String id = pad.portId[playerNum];
if (keyCode == prefs.getInt("l_button" + id,
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id,
KeyEvent.KEYCODE_BUTTON_L1)
|| keyCode == prefs.getInt("r_button" + id,
|| keyCode == prefs.getInt(Gamepad.pref_button_r + id,
KeyEvent.KEYCODE_BUTTON_R1)) {
return simulatedTouchEvent(playerNum, 0.0f, 0.0f);
}
@ -452,10 +452,10 @@ public class GL2JNIActivity extends Activity {
if (playerNum != null && playerNum != -1) {
if (pad.compat[playerNum] || pad.custom[playerNum]) {
String id = pad.portId[playerNum];
if (keyCode == prefs.getInt("l_button" + id, KeyEvent.KEYCODE_BUTTON_L1)) {
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id, KeyEvent.KEYCODE_BUTTON_L1)) {
return simulatedTouchEvent(playerNum, 1.0f, 0.0f);
}
if (keyCode == prefs.getInt("r_button" + id, KeyEvent.KEYCODE_BUTTON_R1)) {
if (keyCode == prefs.getInt(Gamepad.pref_button_r + id, KeyEvent.KEYCODE_BUTTON_R1)) {
return simulatedTouchEvent(playerNum, 0.0f, 1.0f);
}
}

View File

@ -81,13 +81,13 @@ public class GL2JNINative extends NativeActivity {
// Populate device descriptor-to-player-map from preferences
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_1", null), 0);
prefs.getString(Gamepad.pref_player1, null), 0);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_2", null), 1);
prefs.getString(Gamepad.pref_player2, null), 1);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_3", null), 2);
prefs.getString(Gamepad.pref_player3, null), 2);
pad.deviceDescriptor_PlayerNum.put(
prefs.getString("device_descriptor_player_4", null), 3);
prefs.getString(Gamepad.pref_player4, null), 3);
pad.deviceDescriptor_PlayerNum.remove(null);
moga.onCreate(this, pad);
@ -135,7 +135,7 @@ public class GL2JNINative extends NativeActivity {
+ InputDevice.getDevice(joy).getName());
if (pad.isXperiaPlay) {
if (InputDevice.getDevice(joy).getName()
.contains("keypad-game-zeus")) {
.contains(Gamepad.controllers_play_gp)) {
pad.keypadZeus.add(joy);
}
if (InputDevice.getDevice(joy).getName()
@ -154,11 +154,11 @@ public class GL2JNINative extends NativeActivity {
if (playerNum != null) {
String id = pad.portId[playerNum];
pad.custom[playerNum] = prefs.getBoolean("modified_key_layout" + id, false);
pad.compat[playerNum] = prefs.getBoolean("controller_compat" + id, false);
pad.joystick[playerNum] = prefs.getBoolean("separate_joystick" + id, false);
pad.custom[playerNum] = prefs.getBoolean(Gamepad.pref_js_modified + id, false);
pad.compat[playerNum] = prefs.getBoolean(Gamepad.pref_js_compat + id, false);
pad.joystick[playerNum] = prefs.getBoolean(Gamepad.pref_js_separate + id, false);
if (InputDevice.getDevice(joy).getName()
.contains("keypad-zeus")) {
.contains(Gamepad.controllers_play)) {
pad.playerNumX.put(joy, playerNum);
for (int keys : pad.keypadZeus) {
pad.playerNumX.put(keys, playerNum);
@ -173,13 +173,13 @@ public class GL2JNINative extends NativeActivity {
if (pad.custom[playerNum]) {
setCustomMapping(id, playerNum);
} else if (InputDevice.getDevice(joy).getName()
.equals("Sony PLAYSTATION(R)3 Controller")) {
.equals(Gamepad.controllers_sony)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (InputDevice.getDevice(joy).getName()
.equals("Microsoft X-Box 360 pad")) {
.equals(Gamepad.controllers_xbox)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (InputDevice.getDevice(joy).getName()
.contains("NVIDIA Corporation NVIDIA Controller")) {
.contains(Gamepad.controllers_shield)) {
pad.map[playerNum] = pad.getConsoleController();
} else if (!pad.isActiveMoga[playerNum]) { // Ouya controller
pad.map[playerNum] = pad.getOUYAController();
@ -205,11 +205,11 @@ public class GL2JNINative extends NativeActivity {
// Create the actual GLES view
mView = new GL2JNIView(getApplication(), config, fileName, false,
prefs.getInt("depth_render", 24), 0, false);
prefs.getInt(Config.pref_renderdepth, 24), 0, false);
setContentView(mView);
//setup mic
boolean micPluggedIn = prefs.getBoolean("mic_plugged_in", false);
boolean micPluggedIn = prefs.getBoolean(Config.pref_mic, false);
if(micPluggedIn){
SipEmulator sip = new SipEmulator();
sip.startRecording();
@ -218,10 +218,10 @@ public class GL2JNINative extends NativeActivity {
popUp = menu.new MainPopup(this);
vmuPop = menu.new VmuPopup(this);
if(prefs.getBoolean("vmu_floating", false)){
if(prefs.getBoolean(Config.pref_vmu, false)){
//kind of a hack - if the user last had the vmu on screen
//inverse it and then "toggle"
prefs.edit().putBoolean("vmu_floating", false).commit();
prefs.edit().putBoolean(Config.pref_vmu, false).commit();
//can only display a popup after onCreate
mView.post(new Runnable() {
public void run() {
@ -230,7 +230,7 @@ public class GL2JNINative extends NativeActivity {
});
}
JNIdc.setupVmu(menu.getVmu());
if (prefs.getBoolean("show_fps", false)) {
if (prefs.getBoolean(Config.pref_showfps, false)) {
fpsPop = menu.new FpsPopup(this);
mView.setFpsDisplay(fpsPop);
mView.post(new Runnable() {
@ -302,7 +302,7 @@ public class GL2JNINative extends NativeActivity {
}
public void toggleVmu() {
boolean showFloating = !prefs.getBoolean("vmu_floating", false);
boolean showFloating = !prefs.getBoolean(Config.pref_vmu, false);
if(showFloating){
if(popUp.isShowing()){
popUp.dismiss();
@ -322,7 +322,7 @@ public class GL2JNINative extends NativeActivity {
//add back to popup menu
popUp.showVmu();
}
prefs.edit().putBoolean("vmu_floating", showFloating).commit();
prefs.edit().putBoolean(Config.pref_vmu, showFloating).commit();
}
public void displayConfig(PopupWindow popUpConfig) {
@ -477,9 +477,9 @@ public class GL2JNINative extends NativeActivity {
if (playerNum != null && playerNum != -1) {
String id = pad.portId[playerNum];
if (action == KeyEvent.ACTION_DOWN) {
if (keyCode == prefs.getInt("l_button" + id, KeyEvent.KEYCODE_BUTTON_L1)) {
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id, KeyEvent.KEYCODE_BUTTON_L1)) {
return simulatedTouchEvent(playerNum, 1.0f, 0.0f);
} else if (keyCode == prefs.getInt("r_button" + id, KeyEvent.KEYCODE_BUTTON_R1)) {
} else if (keyCode == prefs.getInt(Gamepad.pref_button_r + id, KeyEvent.KEYCODE_BUTTON_R1)) {
return simulatedTouchEvent(playerNum, 0.0f, 1.0f);
} else if (handle_key(playerNum, keyCode, true)) {
if (playerNum == 0)
@ -488,9 +488,9 @@ public class GL2JNINative extends NativeActivity {
}
}
if (action == KeyEvent.ACTION_UP) {
if (keyCode == prefs.getInt("l_button" + id,
if (keyCode == prefs.getInt(Gamepad.pref_button_l + id,
KeyEvent.KEYCODE_BUTTON_L1)
|| keyCode == prefs.getInt("r_button" + id,
|| keyCode == prefs.getInt(Gamepad.pref_button_r + id,
KeyEvent.KEYCODE_BUTTON_R1)) {
return simulatedTouchEvent(playerNum, 0.0f, 0.0f);
} else {

View File

@ -408,7 +408,7 @@ public class MainActivity extends SlidingFragmentActivity implements
// show it
alertDialog.show();
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD && !Config.nonative) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD && Config.nativeact) {
startActivity(new Intent(Intent.ACTION_VIEW, uri, getBaseContext(),
GL2JNINative.class));
} else {

View File

@ -23,6 +23,32 @@ import com.reicast.emulator.emu.JNIdc;
public class Config {
public static final String pref_home = "home_directory";
public static final String pref_games = "game_directory";
public static final String pref_nativeact = "enable_native";
public static final String pref_dynarecopt = "dynarec_opt";
public static final String pref_unstable = "unstable_opt";
public static final String pref_cable = "dc_cable";
public static final String pref_dcregion = "dc_region";
public static final String pref_broadcast = "dc_broadcast";
public static final String pref_limitfps = "limit_fps";
public static final String pref_nosound = "sound_disabled";
public static final String pref_mipmaps = "use_mipmaps";
public static final String pref_widescreen = "stretch_view";
public static final String pref_frameskip = "frame_skip";
public static final String pref_pvrrender = "pvr_render";
public static final String pref_cheatdisk = "cheat_disk";
public static final String pref_showfps = "show_fps";
public static final String pref_forcegpu = "force_gpu";
public static final String pref_rendertype = "render_type";
public static final String pref_renderdepth = "depth_render";
public static final String pref_touchvibe = "touch_vibration_enabled";
public static final String pref_mic = "mic_plugged_in";
public static final String pref_vmu = "vmu_floating";
public static boolean dynarecopt = true;
public static boolean idleskip = true;
public static boolean unstableopt = false;
@ -38,7 +64,7 @@ public class Config {
public static int frameskip = 0;
public static boolean pvrrender = false;
public static String cheatdisk = "null";
public static boolean nonative = false;
public static boolean nativeact = false;
private SharedPreferences mPrefs;
@ -51,19 +77,19 @@ public class Config {
*
*/
public void getConfigurationPrefs() {
Config.dynarecopt = mPrefs.getBoolean("dynarec_opt", dynarecopt);
Config.unstableopt = mPrefs.getBoolean("unstable_opt", unstableopt);
Config.cable = mPrefs.getInt("dc_cable", cable);
Config.dcregion = mPrefs.getInt("dc_region", dcregion);
Config.broadcast = mPrefs.getInt("dc_broadcast", broadcast);
Config.limitfps = mPrefs.getBoolean("limit_fps", limitfps);
Config.nosound = mPrefs.getBoolean("sound_disabled", nosound);
Config.mipmaps = mPrefs.getBoolean("use_mipmaps", mipmaps);
Config.widescreen = mPrefs.getBoolean("stretch_view", widescreen);
Config.frameskip = mPrefs.getInt("frame_skip", frameskip);
Config.pvrrender = mPrefs.getBoolean("pvr_render", pvrrender);
Config.cheatdisk = mPrefs.getString("cheat_disk", cheatdisk);
Config.nonative = mPrefs.getBoolean("native_override", nonative);
Config.dynarecopt = mPrefs.getBoolean(pref_dynarecopt, dynarecopt);
Config.unstableopt = mPrefs.getBoolean(pref_unstable, unstableopt);
Config.cable = mPrefs.getInt(pref_cable, cable);
Config.dcregion = mPrefs.getInt(pref_dcregion, dcregion);
Config.broadcast = mPrefs.getInt(pref_broadcast, broadcast);
Config.limitfps = mPrefs.getBoolean(pref_limitfps, limitfps);
Config.nosound = mPrefs.getBoolean(pref_nosound, nosound);
Config.mipmaps = mPrefs.getBoolean(pref_mipmaps, mipmaps);
Config.widescreen = mPrefs.getBoolean(pref_widescreen, widescreen);
Config.frameskip = mPrefs.getInt(pref_frameskip, frameskip);
Config.pvrrender = mPrefs.getBoolean(pref_pvrrender, pvrrender);
Config.cheatdisk = mPrefs.getString(pref_cheatdisk, cheatdisk);
Config.nativeact = mPrefs.getBoolean(pref_nativeact, nativeact);
}
/**

View File

@ -66,7 +66,7 @@ public class ConfigureFragment extends Fragment {
mPrefs = PreferenceManager.getDefaultSharedPreferences(parentActivity);
home_directory = mPrefs.getString("home_directory", home_directory);
home_directory = mPrefs.getString(Config.pref_home, home_directory);
config = new Config(parentActivity);
config.getConfigurationPrefs();
@ -76,20 +76,20 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("native_override", isChecked).commit();
Config.nonative = isChecked;
mPrefs.edit().putBoolean(Config.pref_nativeact, isChecked).commit();
Config.nativeact = isChecked;
}
};
Switch native_opt = (Switch) getView().findViewById(
R.id.native_option);
native_opt.setChecked(Config.nonative);
native_opt.setChecked(Config.nativeact);
native_opt.setOnCheckedChangeListener(native_options);
OnCheckedChangeListener dynarec_options = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("dynarec_opt", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_dynarecopt, isChecked).commit();
Config.dynarecopt = isChecked;
}
};
@ -102,7 +102,7 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("unstable_opt", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_unstable, isChecked).commit();
Config.unstableopt = isChecked;
}
};
@ -115,8 +115,9 @@ public class ConfigureFragment extends Fragment {
}
unstable_opt.setOnCheckedChangeListener(unstable_option);
String[] regions = parentActivity.getResources().getStringArray(
R.array.region);
String[] regions = parentActivity.getResources()
.getStringArray(R.array.region);
Spinner region_spnr = (Spinner) getView().findViewById(
R.id.region_spinner);
ArrayAdapter<String> regionAdapter = new ArrayAdapter<String>(
@ -131,7 +132,7 @@ public class ConfigureFragment extends Fragment {
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
mPrefs.edit().putInt("dc_region", pos).commit();
mPrefs.edit().putInt(Config.pref_dcregion, pos).commit();
Config.dcregion = pos;
}
@ -167,7 +168,7 @@ public class ConfigureFragment extends Fragment {
String item = parent.getItemAtPosition(pos).toString();
String selection = item.substring(0, item.indexOf(" - "));
mPrefs.edit()
.putInt("dc_broadcast", Integer.valueOf(selection))
.putInt(Config.pref_broadcast, Integer.valueOf(selection))
.commit();
Config.broadcast = Integer.valueOf(selection);
@ -183,7 +184,7 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("limit_fps", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_limitfps, isChecked).commit();
Config.limitfps = isChecked;
}
};
@ -196,7 +197,7 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("use_mipmaps", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_mipmaps, isChecked).commit();
Config.mipmaps = isChecked;
}
};
@ -209,7 +210,7 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("stretch_view", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_widescreen, isChecked).commit();
Config.widescreen = isChecked;
}
};
@ -237,7 +238,7 @@ public class ConfigureFragment extends Fragment {
public void onStopTrackingTouch(SeekBar seekBar) {
int progress = seekBar.getProgress();
mPrefs.edit().putInt("frame_skip", progress).commit();
mPrefs.edit().putInt(Config.pref_frameskip, progress).commit();
Config.frameskip = progress;
}
});
@ -246,7 +247,7 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("pvr_render", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_pvrrender, isChecked).commit();
Config.pvrrender = isChecked;
}
};
@ -274,7 +275,7 @@ public class ConfigureFragment extends Fragment {
} else {
cheatEdit.setText(disk);
}
mPrefs.edit().putString("cheat_disk", disk).commit();
mPrefs.edit().putString(Config.pref_cheatdisk, disk).commit();
Config.cheatdisk = disk;
}
}
@ -293,10 +294,10 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("show_fps", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_showfps, isChecked).commit();
}
};
boolean counter = mPrefs.getBoolean("show_fps", false);
boolean counter = mPrefs.getBoolean(Config.pref_showfps, false);
fps_opt.setChecked(counter);
fps_opt.setOnCheckedChangeListener(fps_options);
@ -307,10 +308,10 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("force_gpu", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_forcegpu, isChecked).commit();
}
};
boolean enhanced = mPrefs.getBoolean("force_gpu", true);
boolean enhanced = mPrefs.getBoolean(Config.pref_forcegpu, true);
force_gpu_opt.setChecked(enhanced);
force_gpu_opt.setOnCheckedChangeListener(force_gpu_options);
} else {
@ -323,18 +324,18 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putInt("render_type", isChecked ? 1 : 2).commit();
mPrefs.edit().putInt(Config.pref_rendertype, isChecked ? 1 : 2).commit();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
if (isChecked) {
force_gpu_opt.setEnabled(false);
mPrefs.edit().putBoolean("force_gpu", false).commit();
mPrefs.edit().putBoolean(Config.pref_forcegpu, false).commit();
} else {
force_gpu_opt.setEnabled(true);
}
}
}
};
int software = mPrefs.getInt("render_type",
int software = mPrefs.getInt(Config.pref_rendertype,
GL2JNIView.LAYER_TYPE_HARDWARE);
force_software_opt
.setChecked(software == GL2JNIView.LAYER_TYPE_SOFTWARE);
@ -345,11 +346,11 @@ public class ConfigureFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit().putBoolean("sound_disabled", isChecked).commit();
mPrefs.edit().putBoolean(Config.pref_nosound, isChecked).commit();
Config.nosound = isChecked;
}
};
boolean sound = mPrefs.getBoolean("sound_disabled", false);
boolean sound = mPrefs.getBoolean(Config.pref_nosound, false);
sound_opt.setChecked(sound);
sound_opt.setOnCheckedChangeListener(emu_sound);
@ -364,7 +365,7 @@ public class ConfigureFragment extends Fragment {
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
depth_spnr.setAdapter(depthAdapter);
String depth = String.valueOf(mPrefs.getInt("depth_render", 24));
String depth = String.valueOf(mPrefs.getInt(Config.pref_renderdepth, 24));
depth_spnr.setSelection(depthAdapter.getPosition(depth), true);
depth_spnr.setOnItemSelectedListener(new OnItemSelectedListener() {
@ -373,7 +374,7 @@ public class ConfigureFragment extends Fragment {
int pos, long id) {
int render = Integer.valueOf(parent.getItemAtPosition(pos)
.toString());
mPrefs.edit().putInt("depth_render", render).commit();
mPrefs.edit().putInt(Config.pref_renderdepth, render).commit();
}

View File

@ -62,7 +62,7 @@ public class EditVJoyActivity extends Activity {
// Create the actual GLES view
mView = new GL2JNIView(getApplication(), config, null, false,
prefs.getInt("depth_render", 24), 0, true);
prefs.getInt(Config.pref_renderdepth, 24), 0, true);
mView.setFpsDisplay(null);
setContentView(mView);

View File

@ -63,12 +63,12 @@ public class InputFragment extends Fragment {
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
parentActivity = getActivity();
moga.onCreate(parentActivity, pad);
sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(parentActivity);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ImageView icon_a = (ImageView) getView().findViewById(
R.id.controller_icon_a);
@ -100,118 +100,131 @@ public class InputFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
sharedPreferences.edit()
.putBoolean("touch_vibration_enabled", isChecked)
.commit();
.putBoolean(Config.pref_touchvibe, isChecked).commit();
}
};
switchTouchVibrationEnabled = (Switch) getView().findViewById(
R.id.switchTouchVibrationEnabled);
boolean vibrate = sharedPreferences.getBoolean(
"touch_vibration_enabled", true);
boolean vibrate = sharedPreferences.getBoolean(Config.pref_touchvibe,
true);
if (vibrate) {
switchTouchVibrationEnabled.setChecked(true);
} else {
switchTouchVibrationEnabled.setChecked(false);
}
switchTouchVibrationEnabled.setOnCheckedChangeListener(touch_vibration);
micPluggedIntoFirstController = (Switch) getView().findViewById(
R.id.micInPort2);
boolean micPluggedIn = sharedPreferences.getBoolean("mic_plugged_in", false);
boolean micPluggedIn = sharedPreferences.getBoolean(Config.pref_mic,
false);
micPluggedIntoFirstController.setChecked(micPluggedIn);
if (getActivity().getPackageManager().hasSystemFeature(
"android.hardware.microphone")) {
//Microphone is present on the device
micPluggedIntoFirstController.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
sharedPreferences.edit().putBoolean("mic_plugged_in", isChecked).commit();
}
});
}else{
// Microphone is present on the device
micPluggedIntoFirstController
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
sharedPreferences.edit()
.putBoolean(Config.pref_mic, isChecked)
.commit();
}
});
} else {
micPluggedIntoFirstController.setEnabled(false);
}
Button buttonKeycodeEditor = (Button) getView().findViewById(
R.id.buttonKeycodeEditor);
buttonKeycodeEditor.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
InputModFragment inputModFrag = new InputModFragment();
getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, inputModFrag,
"INPUT_MOD_FRAG").addToBackStack(null).commit();
getActivity()
.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, inputModFrag,
"INPUT_MOD_FRAG").addToBackStack(null).commit();
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
Button buttonSelectControllerPlayer1 = (Button) getView()
.findViewById(R.id.buttonSelectControllerPlayer1);
buttonSelectControllerPlayer1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(1);
}
});
buttonSelectControllerPlayer1
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(1);
}
});
Button buttonSelectControllerPlayer2 = (Button) getView()
.findViewById(R.id.buttonSelectControllerPlayer2);
buttonSelectControllerPlayer2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(2);
}
});
buttonSelectControllerPlayer2
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(2);
}
});
Button buttonSelectControllerPlayer3 = (Button) getView()
.findViewById(R.id.buttonSelectControllerPlayer3);
buttonSelectControllerPlayer3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(3);
}
});
buttonSelectControllerPlayer3
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(3);
}
});
Button buttonSelectControllerPlayer4 = (Button) getView()
.findViewById(R.id.buttonSelectControllerPlayer4);
buttonSelectControllerPlayer4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(4);
}
});
buttonSelectControllerPlayer4
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
selectController(4);
}
});
Button buttonRemoveControllerPlayer1 = (Button) getView()
.findViewById(R.id.buttonRemoveControllerPlayer1);
buttonRemoveControllerPlayer1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(1);
}
});
buttonRemoveControllerPlayer1
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(1);
}
});
Button buttonRemoveControllerPlayer2 = (Button) getView()
.findViewById(R.id.buttonRemoveControllerPlayer2);
buttonRemoveControllerPlayer2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(2);
}
});
buttonRemoveControllerPlayer2
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(2);
}
});
Button buttonRemoveControllerPlayer3 = (Button) getView()
.findViewById(R.id.buttonRemoveControllerPlayer3);
buttonRemoveControllerPlayer3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(3);
}
});
buttonRemoveControllerPlayer3
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(3);
}
});
Button buttonRemoveControllerPlayer4 = (Button) getView()
.findViewById(R.id.buttonRemoveControllerPlayer4);
buttonRemoveControllerPlayer4.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(4);
}
});
buttonRemoveControllerPlayer4
.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
removeController(4);
}
});
updateControllers();
} else {
TableLayout input_devices = (TableLayout) parentActivity.findViewById(R.id.input_devices);
TableLayout input_devices = (TableLayout) parentActivity
.findViewById(R.id.input_devices);
input_devices.setVisibility(View.GONE);
}
@ -221,19 +234,19 @@ public class InputFragment extends Fragment {
private void updateVibration() {
boolean touchVibrationEnabled = sharedPreferences.getBoolean(
"touch_vibration_enabled", true);
Config.pref_touchvibe, true);
switchTouchVibrationEnabled.setChecked(touchVibrationEnabled);
}
private void updateControllers() {
String deviceDescriptorPlayer1 = sharedPreferences.getString(
"device_descriptor_player_1", null);
Gamepad.pref_player1, null);
String deviceDescriptorPlayer2 = sharedPreferences.getString(
"device_descriptor_player_2", null);
Gamepad.pref_player2, null);
String deviceDescriptorPlayer3 = sharedPreferences.getString(
"device_descriptor_player_3", null);
Gamepad.pref_player3, null);
String deviceDescriptorPlayer4 = sharedPreferences.getString(
"device_descriptor_player_4", null);
Gamepad.pref_player4, null);
String labelPlayer1 = null, labelPlayer2 = null, labelPlayer3 = null, labelPlayer4 = null;
@ -361,10 +374,12 @@ public class InputFragment extends Fragment {
args.putInt("portNumber", listenForButton - 1);
inputModFrag.setArguments(args);
listenForButton = 0;
getActivity().getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, inputModFrag,
"INPUT_MOD_FRAG").addToBackStack(null).commit();
getActivity()
.getSupportFragmentManager()
.beginTransaction()
.replace(R.id.fragment_container, inputModFrag,
"INPUT_MOD_FRAG").addToBackStack(null)
.commit();
dialog.dismiss();
}
});
@ -394,23 +409,22 @@ public class InputFragment extends Fragment {
descriptor = config.getController();
}
descriptor = InputDevice.getDevice(event.getDeviceId())
.getDescriptor();
.getDescriptor();
} else {
descriptor = InputDevice.getDevice(event.getDeviceId())
.getName();
descriptor = InputDevice.getDevice(event.getDeviceId()).getName();
}
if (descriptor == null)
return false;
String deviceDescriptorPlayer1 = sharedPreferences.getString(
"device_descriptor_player_1", null);
Gamepad.pref_player1, null);
String deviceDescriptorPlayer2 = sharedPreferences.getString(
"device_descriptor_player_2", null);
Gamepad.pref_player2, null);
String deviceDescriptorPlayer3 = sharedPreferences.getString(
"device_descriptor_player_3", null);
Gamepad.pref_player3, null);
String deviceDescriptorPlayer4 = sharedPreferences.getString(
"device_descriptor_player_4", null);
Gamepad.pref_player4, null);
if (descriptor.equals(deviceDescriptorPlayer1)
|| descriptor.equals(deviceDescriptorPlayer2)
@ -426,23 +440,19 @@ public class InputFragment extends Fragment {
return false;
case 1:
sharedPreferences.edit()
.putString("device_descriptor_player_1", descriptor)
.commit();
.putString(Gamepad.pref_player1, descriptor).commit();
break;
case 2:
sharedPreferences.edit()
.putString("device_descriptor_player_2", descriptor)
.commit();
.putString(Gamepad.pref_player2, descriptor).commit();
break;
case 3:
sharedPreferences.edit()
.putString("device_descriptor_player_3", descriptor)
.commit();
.putString(Gamepad.pref_player3, descriptor).commit();
break;
case 4:
sharedPreferences.edit()
.putString("device_descriptor_player_4", descriptor)
.commit();
.putString(Gamepad.pref_player4, descriptor).commit();
break;
}
@ -459,56 +469,57 @@ public class InputFragment extends Fragment {
private void removeController(int playerNum) {
switch (playerNum) {
case 1:
sharedPreferences.edit()
.putString("device_descriptor_player_1", null).commit();
sharedPreferences.edit().putString(Gamepad.pref_player1, null)
.commit();
break;
case 2:
sharedPreferences.edit()
.putString("device_descriptor_player_2", null).commit();
sharedPreferences.edit().putString(Gamepad.pref_player2, null)
.commit();
break;
case 3:
sharedPreferences.edit()
.putString("device_descriptor_player_3", null).commit();
sharedPreferences.edit().putString(Gamepad.pref_player3, null)
.commit();
break;
case 4:
sharedPreferences.edit()
.putString("device_descriptor_player_4", null).commit();
sharedPreferences.edit().putString(Gamepad.pref_player4, null)
.commit();
break;
}
updateControllers();
}
class MogaListener implements ControllerListener
{
class MogaListener implements ControllerListener {
private int playerNum;
private String controllerId;
public MogaListener(int playerNum) {
this.playerNum = playerNum;
}
public void onKeyEvent(com.bda.controller.KeyEvent event) {
controllerId = String.valueOf(event.getControllerId());
}
public void onMotionEvent(MotionEvent arg0) {
}
public String getController() {
return controllerId;
}
public void onStateEvent(StateEvent event) {
if (event.getState() == StateEvent.STATE_CONNECTION && event.getAction() == MOGAInput.ACTION_CONNECTED) {
int mControllerVersion = moga.mController.getState(Controller.STATE_CURRENT_PRODUCT_VERSION);
if (mControllerVersion == Controller.ACTION_VERSION_MOGAPRO) {
pad.isActiveMoga[playerNum] = true;
} else if (mControllerVersion == Controller.ACTION_VERSION_MOGA) {
pad.isActiveMoga[playerNum] = true;
}
if (event.getState() == StateEvent.STATE_CONNECTION
&& event.getAction() == MOGAInput.ACTION_CONNECTED) {
int mControllerVersion = moga.mController
.getState(Controller.STATE_CURRENT_PRODUCT_VERSION);
if (mControllerVersion == Controller.ACTION_VERSION_MOGAPRO) {
pad.isActiveMoga[playerNum] = true;
} else if (mControllerVersion == Controller.ACTION_VERSION_MOGA) {
pad.isActiveMoga[playerNum] = true;
}
}
}
}

View File

@ -61,7 +61,7 @@ public class InputModFragment extends Fragment {
private TextView dpad_right_text;
private TextView start_button_text;
private TextView select_button_text;
private String player = "_A";
private int sS = 2;
private int playerNum = -1;
@ -104,8 +104,8 @@ public class InputModFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit()
.putBoolean("separate_joystick" + player, isChecked)
.commit();
.putBoolean(Gamepad.pref_js_separate + player,
isChecked).commit();
}
};
switchJoystickDpadEnabled = (Switch) getView().findViewById(
@ -116,8 +116,8 @@ public class InputModFragment extends Fragment {
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
mPrefs.edit()
.putBoolean("modified_key_layout" + player, isChecked)
.commit();
.putBoolean(Gamepad.pref_js_modified + player,
isChecked).commit();
}
};
switchModifiedLayoutEnabled = (Switch) getView().findViewById(
@ -130,10 +130,10 @@ public class InputModFragment extends Fragment {
if (isChecked) {
selectController();
} else {
mPrefs.edit().remove("controller" + player).commit();
mPrefs.edit().remove(Gamepad.pref_pad + player).commit();
}
mPrefs.edit()
.putBoolean("controller_compat" + player, isChecked)
.putBoolean(Gamepad.pref_js_compat + player, isChecked)
.commit();
}
};
@ -146,172 +146,163 @@ public class InputModFragment extends Fragment {
ImageView a_button_icon = (ImageView) getView().findViewById(
R.id.a_button_icon);
a_button_icon.setImageDrawable(getButtonImage(448 / sS, 0));
a_button_text = (TextView) getView().findViewById(
R.id.a_button_key);
a_button_text = (TextView) getView().findViewById(R.id.a_button_key);
Button a_button = (Button) getView().findViewById(R.id.a_button_edit);
a_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("a_button", a_button_text);
mKey.intiateSearch(Gamepad.pref_button_a, a_button_text);
}
});
Button a_remove = (Button) getView().findViewById(R.id.remove_a_button);
a_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("a_button", a_button_text);
remKeyCode(Gamepad.pref_button_a, a_button_text);
}
});
ImageView b_button_icon = (ImageView) getView().findViewById(
R.id.b_button_icon);
b_button_icon.setImageDrawable(getButtonImage(384 / sS, 0));
b_button_text = (TextView) getView().findViewById(
R.id.b_button_key);
b_button_text = (TextView) getView().findViewById(R.id.b_button_key);
Button b_button = (Button) getView().findViewById(R.id.b_button_edit);
b_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("b_button", b_button_text);
mKey.intiateSearch(Gamepad.pref_button_b, b_button_text);
}
});
Button b_remove = (Button) getView().findViewById(R.id.remove_b_button);
b_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("b_button", b_button_text);
remKeyCode(Gamepad.pref_button_b, b_button_text);
}
});
ImageView x_button_icon = (ImageView) getView().findViewById(
R.id.x_button_icon);
x_button_icon.setImageDrawable(getButtonImage(256 / sS, 0));
x_button_text = (TextView) getView().findViewById(
R.id.x_button_key);
x_button_text = (TextView) getView().findViewById(R.id.x_button_key);
Button x_button = (Button) getView().findViewById(R.id.x_button_edit);
x_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("x_button", x_button_text);
mKey.intiateSearch(Gamepad.pref_button_x, x_button_text);
}
});
Button x_remove = (Button) getView().findViewById(R.id.remove_x_button);
x_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("x_button", x_button_text);
remKeyCode(Gamepad.pref_button_x, x_button_text);
}
});
ImageView y_button_icon = (ImageView) getView().findViewById(
R.id.y_button_icon);
y_button_icon.setImageDrawable(getButtonImage(320 / sS, 0));
y_button_text = (TextView) getView().findViewById(
R.id.y_button_key);
y_button_text = (TextView) getView().findViewById(R.id.y_button_key);
Button y_button = (Button) getView().findViewById(R.id.y_button_edit);
y_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("y_button", y_button_text);
mKey.intiateSearch(Gamepad.pref_button_y, y_button_text);
}
});
Button y_remove = (Button) getView().findViewById(R.id.remove_y_button);
y_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("y_button", y_button_text);
remKeyCode(Gamepad.pref_button_y, y_button_text);
}
});
ImageView l_button_icon = (ImageView) getView().findViewById(
R.id.l_button_icon);
l_button_icon.setImageDrawable(getButtonImage(78 / sS, 64 / sS));
l_button_text = (TextView) getView().findViewById(
R.id.l_button_key);
l_button_text = (TextView) getView().findViewById(R.id.l_button_key);
Button l_button = (Button) getView().findViewById(R.id.l_button_edit);
l_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("l_button", l_button_text);
mKey.intiateSearch(Gamepad.pref_button_l, l_button_text);
}
});
Button l_remove = (Button) getView().findViewById(R.id.remove_l_button);
l_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("l_button", l_button_text);
remKeyCode(Gamepad.pref_button_l, l_button_text);
}
});
ImageView r_button_icon = (ImageView) getView().findViewById(
R.id.r_button_icon);
r_button_icon.setImageDrawable(getButtonImage(162 / sS, 64 / sS));
r_button_text = (TextView) getView().findViewById(
R.id.r_button_key);
r_button_text = (TextView) getView().findViewById(R.id.r_button_key);
Button r_button = (Button) getView().findViewById(R.id.r_button_edit);
r_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("r_button", r_button_text);
mKey.intiateSearch(Gamepad.pref_button_r, r_button_text);
}
});
Button r_remove = (Button) getView().findViewById(R.id.remove_r_button);
r_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("r_button", r_button_text);
remKeyCode(Gamepad.pref_button_r, r_button_text);
}
});
dpad_up_text = (TextView) getView().findViewById(
R.id.dpad_up_key);
dpad_up_text = (TextView) getView().findViewById(R.id.dpad_up_key);
Button dpad_up = (Button) getView().findViewById(R.id.dpad_up_edit);
dpad_up.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("dpad_up", dpad_up_text);
mKey.intiateSearch(Gamepad.pref_dpad_up, dpad_up_text);
}
});
Button up_remove = (Button) getView().findViewById(R.id.remove_dpad_up);
up_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("dpad_up", dpad_up_text);
remKeyCode(Gamepad.pref_dpad_up, dpad_up_text);
}
});
dpad_down_text = (TextView) getView().findViewById(
R.id.dpad_down_key);
dpad_down_text = (TextView) getView().findViewById(R.id.dpad_down_key);
Button dpad_down = (Button) getView().findViewById(R.id.dpad_down_edit);
dpad_down.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("dpad_down", dpad_down_text);
mKey.intiateSearch(Gamepad.pref_dpad_down, dpad_down_text);
}
});
Button down_remove = (Button) getView().findViewById(
R.id.remove_dpad_down);
down_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("dpad_down", dpad_down_text);
remKeyCode(Gamepad.pref_dpad_down, dpad_down_text);
}
});
dpad_left_text = (TextView) getView().findViewById(
R.id.dpad_left_key);
dpad_left_text = (TextView) getView().findViewById(R.id.dpad_left_key);
Button dpad_left = (Button) getView().findViewById(R.id.dpad_left_edit);
dpad_left.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("dpad_left", dpad_left_text);
mKey.intiateSearch(Gamepad.pref_dpad_left, dpad_left_text);
}
});
Button left_remove = (Button) getView().findViewById(
R.id.remove_dpad_left);
left_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("dpad_left", dpad_left_text);
remKeyCode(Gamepad.pref_dpad_left, dpad_left_text);
}
});
dpad_right_text = (TextView) getView().findViewById(
R.id.dpad_right_key);
dpad_right_text = (TextView) getView()
.findViewById(R.id.dpad_right_key);
Button dpad_right = (Button) getView().findViewById(
R.id.dpad_right_edit);
dpad_right.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("dpad_right", dpad_right_text);
mKey.intiateSearch(Gamepad.pref_dpad_right, dpad_right_text);
}
});
Button right_remove = (Button) getView().findViewById(
R.id.remove_dpad_right);
right_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("dpad_right", dpad_right_text);
remKeyCode(Gamepad.pref_dpad_right, dpad_right_text);
}
});
@ -324,14 +315,14 @@ public class InputModFragment extends Fragment {
R.id.start_button_edit);
start_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("start_button", start_button_text);
mKey.intiateSearch(Gamepad.pref_button_start, start_button_text);
}
});
Button start_remove = (Button) getView()
.findViewById(R.id.remove_start);
start_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("start_button", start_button_text);
remKeyCode(Gamepad.pref_button_start, start_button_text);
}
});
@ -344,14 +335,15 @@ public class InputModFragment extends Fragment {
R.id.select_button_edit);
select_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKey.intiateSearch("select_button", select_button_text);
mKey.intiateSearch(Gamepad.pref_button_select,
select_button_text);
}
});
Button select_remove = (Button) getView()
.findViewById(R.id.remove_select);
Button select_remove = (Button) getView().findViewById(
R.id.remove_select);
select_remove.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
remKeyCode("select_button", select_button_text);
remKeyCode(Gamepad.pref_button_select, select_button_text);
}
});
@ -379,7 +371,7 @@ public class InputModFragment extends Fragment {
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
@ -389,8 +381,10 @@ public class InputModFragment extends Fragment {
/**
* Retrieve an image to serve as a visual representation
*
* @param x The x start value of the image within the atlas
* @param y The y start value of the image within the atlas
* @param x
* The x start value of the image within the atlas
* @param y
* The y start value of the image within the atlas
*/
private Drawable getButtonImage(int x, int y) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
@ -512,7 +506,8 @@ public class InputModFragment extends Fragment {
/**
* Assign the user button to the emulator button
*
* @param keyCode The keycode generated by the button being assigned
* @param keyCode
* The keycode generated by the button being assigned
* @param event
* The keyevent generated by the button being assigned
*/
@ -570,26 +565,26 @@ public class InputModFragment extends Fragment {
return dispatchTouchEvent(ev);
}
}
private void updateController(String player) {
switchJoystickDpadEnabled.setChecked(mPrefs.getBoolean(
"separate_joystick" + player, false));
Gamepad.pref_js_separate + player, false));
switchModifiedLayoutEnabled.setChecked(mPrefs.getBoolean(
"modified_key_layout" + player, false));
Gamepad.pref_js_modified + player, false));
switchCompatibilityEnabled.setChecked(mPrefs.getBoolean(
"controller_compat" + player, false));
getKeyCode("a_button", a_button_text);
getKeyCode("b_button", b_button_text);
getKeyCode("x_button", x_button_text);
getKeyCode("y_button", y_button_text);
getKeyCode("l_button", l_button_text);
getKeyCode("r_button", r_button_text);
getKeyCode("dpad_up", dpad_up_text);
getKeyCode("dpad_down", dpad_down_text);
getKeyCode("dpad_left", dpad_left_text);
getKeyCode("dpad_right", dpad_right_text);
getKeyCode("start_button", start_button_text);
getKeyCode("select_button", select_button_text);
Gamepad.pref_js_compat + player, false));
getKeyCode(Gamepad.pref_button_a, a_button_text);
getKeyCode(Gamepad.pref_button_b, b_button_text);
getKeyCode(Gamepad.pref_button_x, x_button_text);
getKeyCode(Gamepad.pref_button_y, y_button_text);
getKeyCode(Gamepad.pref_button_l, l_button_text);
getKeyCode(Gamepad.pref_button_r, r_button_text);
getKeyCode(Gamepad.pref_dpad_up, dpad_up_text);
getKeyCode(Gamepad.pref_dpad_down, dpad_down_text);
getKeyCode(Gamepad.pref_dpad_left, dpad_left_text);
getKeyCode(Gamepad.pref_dpad_right, dpad_right_text);
getKeyCode(Gamepad.pref_button_start, start_button_text);
getKeyCode(Gamepad.pref_button_select, select_button_text);
}
private boolean getKeyCode(final String button, final TextView output) {

View File

@ -64,6 +64,7 @@ import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.PorterDuff;
import android.os.Build;
import android.view.LayoutInflater;
@ -85,11 +86,12 @@ import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.reicast.emulator.MainActivity;
import com.reicast.emulator.R;
public class GitAdapter extends BaseAdapter {
private Activity activity;
private static Activity activity;
private ArrayList<HashMap<String, String>> data;
private LayoutInflater inflater = null;
private DisplayImageOptions options;
@ -168,7 +170,15 @@ public class GitAdapter extends BaseAdapter {
return vi;
}
public static void displayCommit(String title, String message, String url,
private static void callGithubVerification(String sha) {
String hash = sha.substring(0, 7);
Intent github = new Intent("com.reicast.emulator.debug.GitHash");
github.setAction("reicast.emulator.GITHUB");
github.putExtra("hashtag", hash);
activity.startActivity(github);
}
public static void displayCommit(final String title, String message, String url,
Context context) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setCancelable(true);
@ -186,6 +196,16 @@ public class GitAdapter extends BaseAdapter {
return;
}
});
if (MainActivity.debugUser) {
builder.setNegativeButton("Download",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
callGithubVerification(title);
dialog.dismiss();
return;
}
});
}
builder.create().show();
}

View File

@ -146,9 +146,9 @@ public class GL2JNIView extends GLSurfaceView
ethd = new EmuThread(!Config.nosound);
touchVibrationEnabled = prefs.getBoolean("touch_vibration_enabled", true);
touchVibrationEnabled = prefs.getBoolean(Config.pref_touchvibe, true);
int renderType = prefs.getInt("render_type", LAYER_TYPE_HARDWARE);
int renderType = prefs.getInt(Config.pref_renderdepth, LAYER_TYPE_HARDWARE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
this.setLayerType(renderType, null);
} else {
@ -189,7 +189,7 @@ public class GL2JNIView extends GLSurfaceView
// is interpreted as any 32-bit surface with alpha by SurfaceFlinger.
if(translucent) this.getHolder().setFormat(PixelFormat.TRANSLUCENT);
if (prefs.getBoolean("force_gpu", false)) {
if (prefs.getBoolean(Config.pref_forcegpu, false)) {
setEGLContextFactory(new GLCFactory6.ContextFactory());
setEGLConfigChooser(
translucent?

View File

@ -24,6 +24,7 @@ import com.reicast.emulator.GL2JNINative;
import com.reicast.emulator.MainActivity;
import com.reicast.emulator.R;
import com.reicast.emulator.config.Config;
import com.reicast.emulator.periph.Gamepad;
import com.reicast.emulator.periph.VmuLcd;
public class OnScreenMenu {
@ -57,7 +58,7 @@ public class OnScreenMenu {
popups = new Vector<PopupWindow>();
if (prefs != null) {
this.prefs = prefs;
home_directory = prefs.getString("home_directory", home_directory);
home_directory = prefs.getString(Config.pref_home, home_directory);
masteraudio = !Config.nosound;
audio = masteraudio;
}
@ -345,15 +346,15 @@ public class OnScreenMenu {
((GL2JNINative) mContext).mView.fastForward(false);
}
if (mContext instanceof GL2JNIActivity) {
((GL2JNIActivity) mContext).mView.fastForward(false);
((GL2JNIActivity) mContext).mView
.fastForward(false);
}
boosted = false;
((ImageButton) fastforward)
.setImageResource(R.drawable.star);
} else {
if (mContext instanceof GL2JNINative) {
((GL2JNINative) mContext).mView
.audioDisable(true);
((GL2JNINative) mContext).mView.audioDisable(true);
}
if (mContext instanceof GL2JNIActivity) {
((GL2JNIActivity) mContext).mView
@ -376,11 +377,10 @@ public class OnScreenMenu {
((ImageButton) fastforward)
.setImageResource(R.drawable.reset);
}
}
});
}
});
if (boosted) {
((ImageButton) fastforward)
.setImageResource(R.drawable.reset);
((ImageButton) fastforward).setImageResource(R.drawable.reset);
}
hlay.addView(fastforward, params);
menuItems.add(fastforward);
@ -520,21 +520,24 @@ public class OnScreenMenu {
rsticksetting = addbut(R.drawable.toggle_a_b,
new OnClickListener() {
public void onClick(View v) {
if (prefs.getBoolean("right_buttons", true)) {
prefs.edit().putBoolean("right_buttons", false)
.commit();
if (prefs
.getBoolean(Gamepad.pref_js_rbuttons, true)) {
prefs.edit()
.putBoolean(Gamepad.pref_js_rbuttons,
false).commit();
((ImageButton) rsticksetting)
.setImageResource(R.drawable.toggle_a_b);
} else {
prefs.edit().putBoolean("right_buttons", true)
.commit();
prefs.edit()
.putBoolean(Gamepad.pref_js_rbuttons,
true).commit();
((ImageButton) rsticksetting)
.setImageResource(R.drawable.toggle_r_l);
}
dismiss();
}
});
if (prefs.getBoolean("right_buttons", true)) {
if (prefs.getBoolean(Gamepad.pref_js_rbuttons, true)) {
((ImageButton) rsticksetting)
.setImageResource(R.drawable.toggle_r_l);
}
@ -558,16 +561,18 @@ public class OnScreenMenu {
hlay.addView(addbut(R.drawable.print_stats, new OnClickListener() {
public void onClick(View v) {
//screenshot
// screenshot
if (mContext instanceof GL2JNINative) {
((GL2JNINative) OnScreenMenu.this.mContext).screenGrab();
((GL2JNINative) OnScreenMenu.this.mContext)
.screenGrab();
}
if (mContext instanceof GL2JNIActivity) {
((GL2JNIActivity) OnScreenMenu.this.mContext).screenGrab();
((GL2JNIActivity) OnScreenMenu.this.mContext)
.screenGrab();
}
}
}), params);
hlay.addView(addbut(R.drawable.close, new OnClickListener() {
public void onClick(View v) {
Intent inte = new Intent(mContext, MainActivity.class);

View File

@ -15,6 +15,39 @@ import android.view.KeyEvent;
public class Gamepad {
public static final String pref_player1 = "device_descriptor_player_1";
public static final String pref_player2 = "device_descriptor_player_2";
public static final String pref_player3 = "device_descriptor_player_3";
public static final String pref_player4 = "device_descriptor_player_4";
public static final String pref_pad = "controller";
public static final String pref_js_modified = "modified_key_layout";
public static final String pref_js_compat = "controller_compat";
public static final String pref_js_separate = "separate_joystick";
public static final String pref_js_rbuttons = "right_buttons";
public static final String pref_button_a = "a_button";
public static final String pref_button_b = "b_button";
public static final String pref_button_x = "x_button";
public static final String pref_button_y = "y_button";
public static final String pref_button_l = "l_button";
public static final String pref_button_r = "r_button";
public static final String pref_dpad_up = "dpad_up";
public static final String pref_dpad_down = "dpad_down";
public static final String pref_dpad_left = "dpad_left";
public static final String pref_dpad_right = "dpad_right";
public static final String pref_button_start = "start_button";
public static final String pref_button_select = "select_button";
public static final String controllers_sony = "Sony PLAYSTATION(R)3 Controller";
public static final String controllers_xbox = "Microsoft X-Box 360 pad";
public static final String controllers_shield = "NVIDIA Corporation NVIDIA Controller";
public static final String controllers_play = "keypad-zeus";
public static final String controllers_play_gp = "keypad-game-zeus";
public String[] portId = { "_A", "_B", "_C", "_D" };
public boolean[] compat = { false, false, false, false };
public boolean[] custom = { false, false, false, false };
@ -122,18 +155,18 @@ public class Gamepad {
public int[] setModifiedKeys(String id, int playerNum, SharedPreferences mPrefs) {
return new int[] {
mPrefs.getInt("a_button" + id, OuyaController.BUTTON_O), key_CONT_A,
mPrefs.getInt("b_button" + id, OuyaController.BUTTON_A), key_CONT_B,
mPrefs.getInt("x_button" + id, OuyaController.BUTTON_U), key_CONT_X,
mPrefs.getInt("y_button" + id, OuyaController.BUTTON_Y), key_CONT_Y,
mPrefs.getInt(pref_button_a + id, OuyaController.BUTTON_O), key_CONT_A,
mPrefs.getInt(pref_button_b + id, OuyaController.BUTTON_A), key_CONT_B,
mPrefs.getInt(pref_button_x + id, OuyaController.BUTTON_U), key_CONT_X,
mPrefs.getInt(pref_button_y + id, OuyaController.BUTTON_Y), key_CONT_Y,
mPrefs.getInt("dpad_up" + id, OuyaController.BUTTON_DPAD_UP), key_CONT_DPAD_UP,
mPrefs.getInt("dpad_down" + id, OuyaController.BUTTON_DPAD_DOWN), key_CONT_DPAD_DOWN,
mPrefs.getInt("dpad_left" + id, OuyaController.BUTTON_DPAD_LEFT), key_CONT_DPAD_LEFT,
mPrefs.getInt("dpad_right" + id, OuyaController.BUTTON_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
mPrefs.getInt(pref_dpad_up + id, OuyaController.BUTTON_DPAD_UP), key_CONT_DPAD_UP,
mPrefs.getInt(pref_dpad_down + id, OuyaController.BUTTON_DPAD_DOWN), key_CONT_DPAD_DOWN,
mPrefs.getInt(pref_dpad_left + id, OuyaController.BUTTON_DPAD_LEFT), key_CONT_DPAD_LEFT,
mPrefs.getInt(pref_dpad_right + id, OuyaController.BUTTON_DPAD_RIGHT), key_CONT_DPAD_RIGHT,
mPrefs.getInt("start_button" + id, getStartButtonCode()), key_CONT_START,
mPrefs.getInt("select_button" + id, getSelectButtonCode()), getSelectButtonCode()
mPrefs.getInt(pref_button_start + id, getStartButtonCode()), key_CONT_START,
mPrefs.getInt(pref_button_select + id, getSelectButtonCode()), getSelectButtonCode()
};
}

View File

@ -0,0 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.source=1.6

View File

@ -8,10 +8,12 @@
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission
android:name="com.reicast.emulator.debug.permission.C2D_MESSAGE"
@ -32,6 +34,15 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".GitHash"
android:excludeFromRecents="true"
android:theme="@style/Theme.PanelTheme" >
<intent-filter>
<action android:name="reicast.emulator.GITHUB" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver
android:name=".GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>google-services</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.source=1.6

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.gms"
android:versionCode="3136110"
android:versionName="3.1.36 (673201-10)" >
<uses-sdk android:minSdkVersion="8"/>
</manifest>

View File

@ -0,0 +1,14 @@
Library Project including Google Play services client jar.
This can be used by an Android project to use the API's provided
by Google Play services.
There is technically no source, but the src folder is necessary
to ensure that the build system works. The content is actually
located in the libs/ directory.
USAGE:
Make sure you import this Android library project into your IDE
and set this project as a dependency.

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="google-services" default="help">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<property file="local.properties" />
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir"
/>
<!--
Import per project custom build rules if present at the root of the project.
This is the place to put custom intermediary targets such as:
-pre-build
-pre-compile
-post-compile (This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir})
-post-package
-post-build
-pre-clean
-->
<import file="custom_rules.xml" optional="true" />
<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

Binary file not shown.

View File

@ -0,0 +1 @@
doc=../../../docs/reference

View File

@ -0,0 +1,15 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-9
android.library=true

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/common_signin_btn_dark_text_pressed" />
<item
android:state_enabled="false"
android:state_focused="true"
android:color="@color/common_signin_btn_dark_text_disabled" />
<item
android:state_focused="true"
android:color="@color/common_signin_btn_dark_text_focused" />
<item
android:state_enabled="false"
android:color="@color/common_signin_btn_dark_text_disabled" />
<item
android:color="@color/common_signin_btn_dark_text_default" />
</selector>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/common_signin_btn_light_text_pressed" />
<item
android:state_enabled="false"
android:state_focused="true"
android:color="@color/common_signin_btn_light_text_disabled" />
<item
android:state_focused="true"
android:color="@color/common_signin_btn_light_text_focused" />
<item
android:state_enabled="false"
android:color="@color/common_signin_btn_light_text_disabled" />
<item
android:color="@color/common_signin_btn_light_text_default" />
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/common_signin_btn_icon_pressed_dark" />
<item
android:state_enabled="false"
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_icon_disabled_focus_dark" />
<item
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_icon_focus_dark" />
<item
android:state_enabled="false"
android:drawable="@drawable/common_signin_btn_icon_disabled_dark" />
<item
android:drawable="@drawable/common_signin_btn_icon_normal_dark" />
</selector>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/common_signin_btn_icon_pressed_light" />
<item
android:state_enabled="false"
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_icon_disabled_focus_light" />
<item
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_icon_focus_light" />
<item
android:state_enabled="false"
android:drawable="@drawable/common_signin_btn_icon_disabled_light" />
<item
android:drawable="@drawable/common_signin_btn_icon_normal_light" />
</selector>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/common_signin_btn_text_pressed_dark" />
<item
android:state_enabled="false"
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_text_disabled_focus_dark" />
<item
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_text_focus_dark" />
<item
android:state_enabled="false"
android:drawable="@drawable/common_signin_btn_text_disabled_dark" />
<item
android:drawable="@drawable/common_signin_btn_text_normal_dark" />
</selector>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/common_signin_btn_text_pressed_light" />
<item
android:state_enabled="false"
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_text_disabled_focus_light" />
<item
android:state_focused="true"
android:drawable="@drawable/common_signin_btn_text_focus_light" />
<item
android:state_enabled="false"
android:drawable="@drawable/common_signin_btn_text_disabled_light" />
<item
android:drawable="@drawable/common_signin_btn_text_normal_light" />
</selector>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Kry Google Play-dienste"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou foon is nie."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"Hierdie program sal nie loop sonder Google Play-dienste nie, wat nie op jou tablet is nie."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Kry Google Play-dienste"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Aktiveer Google Play-dienste"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Hierdie program sal nie werk tensy jy Google Play-dienste aktiveer nie."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Aktiveer Google Play-dienste"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Dateer Google Play-dienste op"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Hierdie program sal nie loop nie, tensy jy Google Play-dienste opdateer."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"Onbekende probleem met Google Play-dienste."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Google Play-dienste"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"Google Play-dienste, waarop sommige van jou programme staatmaak, werk nie met jou toestel nie. Kontak asseblief die vervaardiger vir bystand."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"Dateer op"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"Meld aan"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"Meld aan met Google"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Google Play አገልግሎቶችን አግኝ"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ስልክዎ ላይ የሉም።"</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"ይህ መተግበሪያ ያለ Google Play አገልግሎቶች አይሰራም፣ እነሱ ደግሞ ጡባዊዎ ላይ የሉም።"</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Google Play አገልግሎቶችን አግኝ"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Google Play አገልግሎቶችን አንቃ"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Google Play አገልግሎቶችን እስካላነቁ ድረስ ይህ መተግበሪያ አይሰራም።"</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Google Play አገልግሎቶችን አንቃ"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Google Play አገልግሎቶችን ያዘምኑ"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Google Play አገልግሎቶችን እስኪያዘምኑ ድረስ ይህ መተግበሪያ አይሰራም።"</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"በGoogle Play አገልግሎቶች ላይ ያልታወቀ ችግር።"</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Google Play አገልግሎቶች"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"የGoogle Play አገልግሎቶች፣ አንዳንድ መተግበሪያዎችዎ በእሱ ላይ ጥገኛ የሆኑት፣ በመሣሪያዎ አይደገፍም። እባክዎ ለእርዳታ አምራቹን ያግኙ።"</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"ያዘምኑ"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"ግባ"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"በGoogle ይግቡ"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"الحصول على خدمات Google Play"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في هاتفك."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"لن يتم تشغيل هذا التطبيق بدون خدمات Google Play، والتي لا تتوفر في جهازك اللوحي."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"الحصول على خدمات Google Play"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"تمكين خدمات Google Play"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"لن يعمل هذا التطبيق ما لم يتم تمكين خدمات Google Play."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"تمكين خدمات Google Play"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"تحديث خدمات Google Play"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"لن يتم تشغيل هذا التطبيق ما لم تحدِّث خدمات Google Play."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"حدثت مشكلة غير معروفة في خدمات Google Play."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"خدمات Google Play"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"خدمات Google Play التي تستجيب لها بعض تطبيقاتك لا تعمل على جهازك. يُرجى الاتصال بجهة التصنيع للحصول على المساعدة."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"تحديث"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"تسجيل الدخول"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"تسجيل الدخول باستخدام Google"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Атрымаць службы Google Play"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма ў вашым тэлефоне."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"Гэта прыкладанне не будзе працаваць без службаў Google Play, якіх няма на вашым планшэце."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Атрымаць службы Google Play"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Уключыць службы Google Play"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Гэта прыкладанне не будзе працаваць, пакуль вы не ўключыце службы Google Play."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Уключыць службы Google Play"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Абнаўленне службаў Google Play"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Гэта прыкладанне не будзе працаваць падчас абнаўлення службаў Google Play."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"Невядомая праблема са службамі Google Play."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Службы Google Play"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"Службы Google Play, да якiх прывязаны некаторыя прыкладаннi, не падтрымлiваюцца на вашай прыладзе. Па дапамогу звярнiцеся да вытворцы."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"Абнавіць"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"Увайсцi"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"Увайсці ў Google"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Изтегляне на услугите за Google Play"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"Това приложение няма да се изпълнява без услугите за Google Play, които липсват в телефона ви."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"Това приложение няма да се изпълнява без услугите за Google Play, които липсват в таблета ви."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Услуги за Google Play: Изтегл."</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Активиране на услугите за Google Play"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Това приложение няма да работи, освен ако не активирате услугите за Google Play."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Услуги за Google Play: Актив."</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Актуализиране на услугите за Google Play"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Това приложение няма да се изпълнява, освен ако не актуализирате услугите за Google Play."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"Неизвестен проблем с услугите за Google Play."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Услуги за Google Play"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"Услугите за Google Play, на които разчитат някои от приложенията ви, не се поддържат от устройството ви. Моля, свържете се с производителя за помощ."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"Актуализиране"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"Вход"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"Вход с Google"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Baixa els serveis de Google Play"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"Aquesta aplicació no s\'executarà si el telèfon no té instal·lats els serveis de Google Play."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"Aquesta aplicació no funcionarà si la tauleta no té instal·lats els serveis de Google Play."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Baixa els serveis de Google Play"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Activa els serveis de Google Play"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Aquesta aplicació no funcionarà si no actives els serveis de Google Play."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Activa els serveis de Google Play"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Actualitza els serveis de Google Play"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Aquesta aplicació no s\'executarà si no actualitzes els serveis de Google Play."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"Error desconegut relacionat amb els serveis de Google Play."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Serveis de Google Play"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"El teu dispositiu no és compatible amb els serveis de Google Play, en què es basen les teves aplicacions. Per obtenir assistència, contacta amb el fabricant."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"Actualitza"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"Inicia sessió"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"Inicia sessió amb Google"</string>
</resources>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="common_google_play_services_install_title" msgid="26645092511305524">"Instalovat služby Google Play"</string>
<string name="common_google_play_services_install_text_phone" msgid="8685301130651051380">"Ke spuštění této aplikace jsou potřeba služby Google Play, které v telefonu nemáte."</string>
<string name="common_google_play_services_install_text_tablet" msgid="1589957570365247855">"Ke spuštění této aplikace jsou potřeba služby Google Play, které v tabletu nemáte."</string>
<string name="common_google_play_services_install_button" msgid="8515591849428043265">"Instalovat služby Google Play"</string>
<string name="common_google_play_services_enable_title" msgid="529078775174559253">"Aktivovat služby Google Play"</string>
<string name="common_google_play_services_enable_text" msgid="7627896071867667758">"Ke spuštění této aplikace je třeba aktivovat služby Google Play."</string>
<string name="common_google_play_services_enable_button" msgid="4181637455539816337">"Aktivovat služby Google Play"</string>
<string name="common_google_play_services_update_title" msgid="6006316683626838685">"Aktualizace služeb Google Play"</string>
<string name="common_google_play_services_update_text" msgid="448354684997260580">"Ke spuštění této aplikace je třeba aktualizovat služby Google Play."</string>
<string name="common_google_play_services_unknown_issue" msgid="4762332809710093730">"Nastal neznámý problém se službami Google Play."</string>
<string name="common_google_play_services_unsupported_title" msgid="6334768798839376943">"Služby Google Play"</string>
<string name="common_google_play_services_unsupported_text" msgid="3542578567569488671">"Některé vaše aplikace vyžadují služby Google Play, které ve vašem zařízení nejsou podporovány. S žádostí o pomoc se prosím obraťte na výrobce."</string>
<string name="common_google_play_services_update_button" msgid="8932944190611227642">"Aktualizovat"</string>
<string name="common_signin_button_text" msgid="9071884888741449141">"Přihlásit se"</string>
<string name="common_signin_button_text_long" msgid="2429381841831957106">"Přihlásit se účtem Google"</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More