diff options
Diffstat (limited to 'src/cgeo/geocaching/cgeoinit.java')
| -rw-r--r-- | src/cgeo/geocaching/cgeoinit.java | 965 |
1 files changed, 965 insertions, 0 deletions
diff --git a/src/cgeo/geocaching/cgeoinit.java b/src/cgeo/geocaching/cgeoinit.java new file mode 100644 index 0000000..0be2093 --- /dev/null +++ b/src/cgeo/geocaching/cgeoinit.java @@ -0,0 +1,965 @@ +package cgeo.geocaching; + +import gnu.android.app.appmanualclient.*; + +import android.os.Bundle; +import android.app.Activity; +import android.app.ProgressDialog; +import android.view.View; +import android.widget.EditText; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.net.Uri; +import android.util.Log; +import android.os.Handler; +import android.os.Message; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.Spinner; +import android.widget.TextView; +import android.widget.AdapterView.OnItemSelectedListener; + +import java.io.File; + +import cgeo.geocaching.cgSettings.mapSourceEnum; + +public class cgeoinit extends Activity { + + private cgeoapplication app = null; + private Resources res = null; + private Activity activity = null; + private cgSettings settings = null; + private cgBase base = null; + private cgWarning warning = null; + private SharedPreferences prefs = null; + private ProgressDialog loginDialog = null; + private ProgressDialog webDialog = null; + private Handler logInHandler = new Handler() { + + @Override + public void handleMessage(Message msg) { + try { + if (loginDialog != null && loginDialog.isShowing() == true) { + loginDialog.dismiss(); + } + + if (msg.what == 1) { + warning.helpDialog(res.getString(R.string.init_login_popup), res.getString(R.string.init_login_popup_ok)); + } else { + if (cgBase.errorRetrieve.containsKey(msg.what) == true) { + warning.helpDialog(res.getString(R.string.init_login_popup), + res.getString(R.string.init_login_popup_failed_reason) + " " + cgBase.errorRetrieve.get(msg.what) + "."); + } else { + warning.helpDialog(res.getString(R.string.init_login_popup), res.getString(R.string.init_login_popup_failed)); + } + } + } catch (Exception e) { + warning.showToast(res.getString(R.string.err_login_failed)); + + Log.e(cgSettings.tag, "cgeoinit.logInHandler: " + e.toString()); + } + + if (loginDialog != null && loginDialog.isShowing() == true) { + loginDialog.dismiss(); + } + + init(); + } + }; + + private Handler webAuthHandler = new Handler() { + + @Override + public void handleMessage(Message msg) { + try { + if (webDialog != null && webDialog.isShowing() == true) { + webDialog.dismiss(); + } + + if (msg.what > 0) { + warning.helpDialog(res.getString(R.string.init_sendToCgeo), res.getString(R.string.init_sendToCgeo_register_ok).replace("####", ""+msg.what)); + } else { + warning.helpDialog(res.getString(R.string.init_sendToCgeo), res.getString(R.string.init_sendToCgeo_register_fail)); + } + } catch (Exception e) { + warning.showToast(res.getString(R.string.init_sendToCgeo_register_fail)); + + Log.e(cgSettings.tag, "cgeoinit.webHandler: " + e.toString()); + } + + if (webDialog != null && webDialog.isShowing() == true) { + webDialog.dismiss(); + } + + init(); + } + }; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // init + activity = this; + res = this.getResources(); + app = (cgeoapplication) this.getApplication(); + prefs = getSharedPreferences(cgSettings.preferences, 0); + settings = new cgSettings(this, prefs); + base = new cgBase(app, settings, prefs); + warning = new cgWarning(this); + + // set layout + if (settings.skin == 1) { + setTheme(R.style.light); + } else { + setTheme(R.style.dark); + } + setContentView(R.layout.init); + base.setTitle(activity, res.getString(R.string.settings)); + + // google analytics + base.sendAnal(activity, "/init"); + + init(); + } + + @Override + public void onResume() { + super.onResume(); + + settings.load(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + init(); + } + + @Override + public void onPause() { + saveValues(); + super.onPause(); + } + + @Override + public void onStop() { + saveValues(); + super.onStop(); + } + + @Override + public void onDestroy() { + saveValues(); + + super.onDestroy(); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + menu.add(0, 0, 0, res.getString(R.string.init_clear)).setIcon(android.R.drawable.ic_menu_delete); + + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (item.getItemId() == 0) { + boolean status = false; + + ((EditText) findViewById(R.id.username)).setText(""); + ((EditText) findViewById(R.id.password)).setText(""); + ((EditText) findViewById(R.id.passvote)).setText(""); + + status = saveValues(); + if (status == true) { + warning.showToast(res.getString(R.string.init_cleared)); + } else { + warning.showToast(res.getString(R.string.err_init_cleared)); + } + + finish(); + } + + return false; + } + + public void init() { + + // geocaching.com settings + String usernameNow = prefs.getString("username", null); + if (usernameNow != null) { + ((EditText) findViewById(R.id.username)).setText(usernameNow); + } + String passwordNow = prefs.getString("password", null); + if (usernameNow != null) { + ((EditText) findViewById(R.id.password)).setText(passwordNow); + } + + Button logMeIn = (Button) findViewById(R.id.log_me_in); + logMeIn.setOnClickListener(new logIn()); + + TextView legalNote = (TextView) findViewById(R.id.legal_note); + legalNote.setClickable(true); + legalNote.setOnClickListener(new View.OnClickListener() { + + public void onClick(View arg0) { + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.geocaching.com/about/termsofuse.aspx"))); + } + }); + + // gcvote settings + String passvoteNow = prefs.getString("pass-vote", null); + if (passvoteNow != null) { + ((EditText) findViewById(R.id.passvote)).setText(passvoteNow); + } + + // go4cache settings + TextView go4cache = (TextView) findViewById(R.id.about_go4cache); + go4cache.setClickable(true); + go4cache.setOnClickListener(new View.OnClickListener() { + + public void onClick(View arg0) { + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://go4cache.com/"))); + } + }); + + CheckBox publicButton = (CheckBox) findViewById(R.id.publicloc); + if (prefs.getInt("publicloc", 0) == 0) { + publicButton.setChecked(false); + } else { + publicButton.setChecked(true); + } + publicButton.setOnClickListener(new cgeoChangePublic()); + + // Twitter settings + Button authorizeTwitter = (Button) findViewById(R.id.authorize_twitter); + authorizeTwitter.setOnClickListener(new View.OnClickListener() { + + public void onClick(View arg0) { + Intent authIntent = new Intent(activity, cgeoauth.class); + activity.startActivity(authIntent); + } + }); + + CheckBox twitterButton = (CheckBox) findViewById(R.id.twitter_option); + if (prefs.getInt("twitter", 0) == 0 || settings.tokenPublic == null || settings.tokenPublic.length() == 0 || settings.tokenSecret == null || settings.tokenSecret.length() == 0) { + twitterButton.setChecked(false); + } else { + twitterButton.setChecked(true); + } + twitterButton.setOnClickListener(new cgeoChangeTwitter()); + + // Signature settings + EditText sigEdit = (EditText) findViewById(R.id.signature); + if (sigEdit.getText().length() == 0) { + sigEdit.setText(settings.getSignature()); + } + Button sigBtn = (Button) findViewById(R.id.signature_help); + sigBtn.setOnClickListener(new View.OnClickListener() { + public void onClick(View v) { + warning.helpDialog(res.getString(R.string.init_signature_help_title), res.getString(R.string.init_signature_help_text)); + } + }); + + // Other settings + CheckBox skinButton = (CheckBox) findViewById(R.id.skin); + if (prefs.getInt("skin", 0) == 0) { + skinButton.setChecked(false); + } else { + skinButton.setChecked(true); + } + skinButton.setOnClickListener(new cgeoChangeSkin()); + + CheckBox addressButton = (CheckBox) findViewById(R.id.address); + if (prefs.getInt("showaddress", 1) == 0) { + addressButton.setChecked(false); + } else { + addressButton.setChecked(true); + } + addressButton.setOnClickListener(new cgeoChangeAddress()); + + CheckBox captchaButton = (CheckBox) findViewById(R.id.captcha); + if (prefs.getBoolean("showcaptcha", false) == false) { + captchaButton.setChecked(false); + } else { + captchaButton.setChecked(true); + } + captchaButton.setOnClickListener(new cgeoChangeCaptcha()); + + CheckBox useEnglishButton = (CheckBox) findViewById(R.id.useenglish); + if (prefs.getBoolean("useenglish", false) == false) { + useEnglishButton.setChecked(false); + } else { + useEnglishButton.setChecked(true); + } + useEnglishButton.setOnClickListener(new cgeoChangeUseEnglish()); + + CheckBox excludeButton = (CheckBox) findViewById(R.id.exclude); + if (prefs.getInt("excludemine", 0) == 0) { + excludeButton.setChecked(false); + } else { + excludeButton.setChecked(true); + } + excludeButton.setOnClickListener(new cgeoChangeExclude()); + + CheckBox disabledButton = (CheckBox) findViewById(R.id.disabled); + if (prefs.getInt("excludedisabled", 0) == 0) { + disabledButton.setChecked(false); + } else { + disabledButton.setChecked(true); + } + disabledButton.setOnClickListener(new cgeoChangeDisabled()); + + CheckBox offlineButton = (CheckBox) findViewById(R.id.offline); + if (prefs.getInt("offlinemaps", 1) == 0) { + offlineButton.setChecked(false); + } else { + offlineButton.setChecked(true); + } + offlineButton.setOnClickListener(new cgeoChangeOffline()); + + CheckBox autoloadButton = (CheckBox) findViewById(R.id.autoload); + if (prefs.getInt("autoloaddesc", 0) == 0) { + autoloadButton.setChecked(false); + } else { + autoloadButton.setChecked(true); + } + autoloadButton.setOnClickListener(new cgeoChangeAutoload()); + + CheckBox livelistButton = (CheckBox) findViewById(R.id.livelist); + if (prefs.getInt("livelist", 1) == 0) { + livelistButton.setChecked(false); + } else { + livelistButton.setChecked(true); + } + livelistButton.setOnClickListener(new cgeoChangeLivelist()); + + CheckBox unitsButton = (CheckBox) findViewById(R.id.units); + if (prefs.getInt("units", cgSettings.unitsMetric) == cgSettings.unitsMetric) { + unitsButton.setChecked(false); + } else { + unitsButton.setChecked(true); + } + unitsButton.setOnClickListener(new cgeoChangeUnits()); + + CheckBox gnavButton = (CheckBox) findViewById(R.id.gnav); + if (prefs.getInt("usegnav", 1) == 1) { + gnavButton.setChecked(true); + } else { + gnavButton.setChecked(false); + } + gnavButton.setOnClickListener(new cgeoChangeGNav()); + + CheckBox browserButton = (CheckBox) findViewById(R.id.browser); + if (prefs.getInt("asbrowser", 1) == 0) { + browserButton.setChecked(false); + } else { + browserButton.setChecked(true); + } + browserButton.setOnClickListener(new cgeoChangeBrowser()); + + // Altitude settings + EditText altitudeEdit = (EditText) findViewById(R.id.altitude); + altitudeEdit.setText("" + prefs.getInt("altcorrection", 0)); + + //Send2cgeo settings + String webDeviceName = prefs.getString("webDeviceName", null); + + if ((webDeviceName != null) &&(webDeviceName.length() > 0)) { + ((EditText) findViewById(R.id.webDeviceName)).setText(webDeviceName); + } else { + String s = android.os.Build.MODEL; + ((EditText) findViewById(R.id.webDeviceName)).setText(s); + } + + Button webAuth = (Button) findViewById(R.id.sendToCgeo_register); + webAuth.setOnClickListener(new webAuth()); + + /*TextView webText = (TextView) findViewById(R.id.sendToCgeo); + webText.setClickable(true); + webText.setOnClickListener(new View.OnClickListener() { + + public void onClick(View arg0) { + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://send2cgeo.carnero.cc/"))); + } + });*/ + + // Map source settings + Spinner mapSourceSelector = (Spinner) findViewById(R.id.mapsource); + ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( + this, R.array.map_sources, android.R.layout.simple_spinner_item); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mapSourceSelector.setAdapter(adapter); + int mapsource = prefs.getInt("mapsource", 0); + mapSourceSelector.setSelection(mapsource); + mapSourceSelector.setOnItemSelectedListener(new cgeoChangeMapSource()); + + EditText mfmapFileEdit = (EditText) findViewById(R.id.mapfile); + mfmapFileEdit.setText(prefs.getString("mfmapfile", "")); + + setMapFileEditState(); + + // Cache db backup + TextView lastBackup = (TextView) findViewById(R.id.backup_last); + File lastBackupFile = app.isRestoreFile(); + if (lastBackupFile != null) { + lastBackup.setText(res.getString(R.string.init_backup_last) + " " + cgBase.timeOut.format(lastBackupFile.lastModified()) + ", " + cgBase.dateOut.format(lastBackupFile.lastModified())); + } else { + lastBackup.setText(res.getString(R.string.init_backup_last_no)); + } + + } + + public void backup(View view) { + final String file = app.backupDatabase(); + + if (file != null) { + warning.helpDialog(res.getString(R.string.init_backup_backup), res.getString(R.string.init_backup_success) + "\n" + file); + } else { + warning.helpDialog(res.getString(R.string.init_backup_backup), res.getString(R.string.init_backup_failed)); + } + + TextView lastBackup = (TextView) findViewById(R.id.backup_last); + File lastBackupFile = app.isRestoreFile(); + if (lastBackupFile != null) { + lastBackup.setText(res.getString(R.string.init_backup_last) + " " + cgBase.timeOut.format(lastBackupFile.lastModified()) + ", " + cgBase.dateOut.format(lastBackupFile.lastModified())); + } else { + lastBackup.setText(res.getString(R.string.init_backup_last_no)); + } + } + + public void restore(View view) { + final boolean status = app.restoreDatabase(); + + if (status) { + warning.helpDialog(res.getString(R.string.init_backup_restore), res.getString(R.string.init_restore_success)); + } else { + warning.helpDialog(res.getString(R.string.init_backup_restore), res.getString(R.string.init_restore_failed)); + } + } + + private void setMapFileEditState() { + EditText mapFileEdit = (EditText) findViewById(R.id.mapfile); + if (settings.mapProvider == mapSourceEnum.mapsforgeOffline) { + mapFileEdit.setVisibility(View.VISIBLE); + } else { + mapFileEdit.setVisibility(View.INVISIBLE); + } + } + + public boolean saveValues() { + String usernameNew = ((EditText) findViewById(R.id.username)).getText().toString(); + String passwordNew = ((EditText) findViewById(R.id.password)).getText().toString(); + String passvoteNew = ((EditText) findViewById(R.id.passvote)).getText().toString(); + String signatureNew = ((EditText) findViewById(R.id.signature)).getText().toString(); + String altitudeNew = ((EditText) findViewById(R.id.altitude)).getText().toString(); + String mfmapFileNew = ((EditText) findViewById(R.id.mapfile)).getText().toString(); + + if (usernameNew == null) { + usernameNew = ""; + } + if (passwordNew == null) { + passwordNew = ""; + } + if (passvoteNew == null) { + passvoteNew = ""; + } + if (signatureNew == null) { + signatureNew = ""; + } + + int altitudeNewInt = 0; + if (altitudeNew == null) { + altitudeNewInt = 0; + } else { + altitudeNewInt = new Integer(altitudeNew); + } + + if (mfmapFileNew == null) { + mfmapFileNew = ""; + } + + final boolean status1 = settings.setLogin(usernameNew, passwordNew); + final boolean status2 = settings.setGCvoteLogin(passvoteNew); + final boolean status3 = settings.setSignature(signatureNew); + final boolean status4 = settings.setAltCorrection(altitudeNewInt); + final boolean status5 = settings.setMapFile(mfmapFileNew); + + if (status1 && status2 && status3 && status4 && status5) { + return true; + } + + return false; + } + + private class cgeoChangeTwitter implements View.OnClickListener { + + public void onClick(View arg0) { + CheckBox twitterButton = (CheckBox) findViewById(R.id.twitter_option); + + if (twitterButton.isChecked() == true) { + settings.reloadTwitterTokens(); + + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("twitter", 0) == 0) { + edit.putInt("twitter", 1); + settings.twitter = 1; + } else { + edit.putInt("twitter", 0); + settings.twitter = 0; + } + edit.commit(); + + if (settings.twitter == 1 && (settings.tokenPublic == null || settings.tokenPublic.length() == 0 || settings.tokenSecret == null || settings.tokenSecret.length() == 0)) { + Intent authIntent = new Intent(activity, cgeoauth.class); + activity.startActivity(authIntent); + } + + if (prefs.getInt("twitter", 0) == 0) { + twitterButton.setChecked(false); + } else { + twitterButton.setChecked(true); + } + } else { + SharedPreferences.Editor edit = prefs.edit(); + edit.putInt("twitter", 0); + settings.twitter = 0; + edit.commit(); + + twitterButton.setChecked(false); + } + + return; + } + } + + private class cgeoChangeSkin implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("skin", 0) == 0) { + edit.putInt("skin", 1); + settings.setSkin(1); + } else { + edit.putInt("skin", 0); + settings.setSkin(0); + } + edit.commit(); + + CheckBox skinButton = (CheckBox) findViewById(R.id.skin); + if (prefs.getInt("skin", 0) == 0) { + skinButton.setChecked(false); + } else { + skinButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeAddress implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("showaddress", 1) == 0) { + edit.putInt("showaddress", 1); + } else { + edit.putInt("showaddress", 0); + } + edit.commit(); + + CheckBox transparentButton = (CheckBox) findViewById(R.id.address); + if (prefs.getInt("showaddress", 1) == 0) { + transparentButton.setChecked(false); + } else { + transparentButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangePublic implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("publicloc", 0) == 0) { + edit.putInt("publicloc", 1); + settings.publicLoc = 1; + } else { + edit.putInt("publicloc", 0); + settings.publicLoc = 0; + } + edit.commit(); + + CheckBox publicloc = (CheckBox) findViewById(R.id.publicloc); + if (prefs.getInt("publicloc", 0) == 0) { + publicloc.setChecked(false); + } else { + publicloc.setChecked(true); + } + + return; + } + } + + private class cgeoChangeCaptcha implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getBoolean("showcaptcha", false) == false) { + edit.putBoolean("showcaptcha", true); + settings.showCaptcha = true; + } else { + edit.putBoolean("showcaptcha", false); + settings.showCaptcha = false; + } + edit.commit(); + + CheckBox captchaButton = (CheckBox) findViewById(R.id.captcha); + if (prefs.getBoolean("showcaptcha", false) == false) { + captchaButton.setChecked(false); + } else { + captchaButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeUseEnglish implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getBoolean("useenglish", false) == false) { + edit.putBoolean("useenglish", true); + settings.useEnglish = true; + settings.setLanguage(true); + } else { + edit.putBoolean("useenglish", false); + settings.useEnglish = false; + settings.setLanguage(false); + } + edit.commit(); + + CheckBox useEnglishButton = (CheckBox) findViewById(R.id.useenglish); + if (prefs.getBoolean("useenglish", false) == false) { + useEnglishButton.setChecked(false); + } else { + useEnglishButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeExclude implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("excludemine", 0) == 0) { + edit.putInt("excludemine", 1); + settings.excludeMine = 1; + } else { + edit.putInt("excludemine", 0); + settings.excludeMine = 0; + } + edit.commit(); + + CheckBox excludeButton = (CheckBox) findViewById(R.id.exclude); + if (prefs.getInt("excludemine", 0) == 0) { + excludeButton.setChecked(false); + } else { + excludeButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeDisabled implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("excludedisabled", 0) == 0) { + edit.putInt("excludedisabled", 1); + settings.excludeDisabled = 1; + } else { + edit.putInt("excludedisabled", 0); + settings.excludeDisabled = 0; + } + edit.commit(); + + CheckBox disabledButton = (CheckBox) findViewById(R.id.disabled); + if (prefs.getInt("excludedisabled", 0) == 0) { + disabledButton.setChecked(false); + } else { + disabledButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeOffline implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("offlinemaps", 1) == 0) { + edit.putInt("offlinemaps", 1); + settings.excludeDisabled = 1; + } else { + edit.putInt("offlinemaps", 0); + settings.excludeDisabled = 0; + } + edit.commit(); + + CheckBox offlineButton = (CheckBox) findViewById(R.id.offline); + if (prefs.getInt("offlinemaps", 0) == 0) { + offlineButton.setChecked(false); + } else { + offlineButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeLivelist implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("livelist", 1) == 0) { + edit.putInt("livelist", 1); + settings.livelist = 1; + } else { + edit.putInt("livelist", 0); + settings.livelist = 0; + } + edit.commit(); + + CheckBox livelistButton = (CheckBox) findViewById(R.id.livelist); + if (prefs.getInt("livelist", 1) == 0) { + livelistButton.setChecked(false); + } else { + livelistButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeAutoload implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("autoloaddesc", 0) == 0) { + edit.putInt("autoloaddesc", 1); + settings.autoLoadDesc = 1; + } else { + edit.putInt("autoloaddesc", 0); + settings.autoLoadDesc = 0; + } + edit.commit(); + + CheckBox autoloadButton = (CheckBox) findViewById(R.id.autoload); + if (prefs.getInt("autoloaddesc", 0) == 0) { + autoloadButton.setChecked(false); + } else { + autoloadButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeUnits implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("units", cgSettings.unitsMetric) == cgSettings.unitsMetric) { + edit.putInt("units", cgSettings.unitsImperial); + settings.units = cgSettings.unitsImperial; + } else { + edit.putInt("units", cgSettings.unitsMetric); + settings.units = cgSettings.unitsMetric; + } + edit.commit(); + + CheckBox unitsButton = (CheckBox) findViewById(R.id.units); + if (prefs.getInt("units", cgSettings.unitsMetric) == cgSettings.unitsMetric) { + unitsButton.setChecked(false); + } else { + unitsButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeGNav implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("usegnav", 1) == 1) { + edit.putInt("usegnav", 0); + settings.useGNavigation = 0; + } else { + edit.putInt("usegnav", 1); + settings.useGNavigation = 1; + } + edit.commit(); + + CheckBox gnavButton = (CheckBox) findViewById(R.id.gnav); + if (prefs.getInt("usegnav", 1) == 1) { + gnavButton.setChecked(true); + } else { + gnavButton.setChecked(false); + } + + return; + } + } + + private class cgeoChangeBrowser implements View.OnClickListener { + + public void onClick(View arg0) { + SharedPreferences.Editor edit = prefs.edit(); + if (prefs.getInt("asbrowser", 1) == 0) { + edit.putInt("asbrowser", 1); + settings.asBrowser = 1; + } else { + edit.putInt("asbrowser", 0); + settings.asBrowser = 0; + } + edit.commit(); + + CheckBox browserButton = (CheckBox) findViewById(R.id.browser); + if (prefs.getInt("asbrowser", 1) == 0) { + browserButton.setChecked(false); + } else { + browserButton.setChecked(true); + } + + return; + } + } + + private class cgeoChangeMapSource implements OnItemSelectedListener { + + @Override + public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, + long arg3) { + settings.mapProvider = mapSourceEnum.fromInt(arg2); + SharedPreferences.Editor edit = prefs.edit(); + edit.putInt("mapsource", arg2); + edit.commit(); + setMapFileEditState(); + } + + @Override + public void onNothingSelected(AdapterView<?> arg0) { + arg0.setSelection(settings.mapProvider.ordinal()); + setMapFileEditState(); + } + } + + private class logIn implements View.OnClickListener { + + public void onClick(View arg0) { + final String username = ((EditText) findViewById(R.id.username)).getText().toString(); + final String password = ((EditText) findViewById(R.id.password)).getText().toString(); + + if (username == null || username.length() == 0 || password == null || password.length() == 0) { + warning.showToast(res.getString(R.string.err_missing_auth)); + return; + } + + loginDialog = ProgressDialog.show(activity, res.getString(R.string.init_login_popup), res.getString(R.string.init_login_popup_working), true); + loginDialog.setCancelable(false); + + settings.setLogin(username, password); + settings.deleteCookies(); + + (new Thread() { + + @Override + public void run() { + logInHandler.sendEmptyMessage(base.login()); + } + }).start(); + } + } + + private class webAuth implements View.OnClickListener { + + public void onClick(View arg0) { + final String deviceName = ((EditText) findViewById(R.id.webDeviceName)).getText().toString(); + final String deviceCode = prefs.getString("webDeviceCode", null); + + + if (deviceName == null || deviceName.length() == 0) { + warning.showToast(res.getString(R.string.err_missing_device_name)); + return; + } + + webDialog = ProgressDialog.show(activity, res.getString(R.string.init_sendToCgeo), res.getString(R.string.init_sendToCgeo_registering), true); + webDialog.setCancelable(false); + + (new Thread() { + + @Override + public void run() { + int pin = 0; + + String nam = deviceName==null?"":deviceName; + String cod = deviceCode==null?"":deviceCode; + + String params = "name="+cgBase.urlencode_rfc3986(nam)+"&code="+cgBase.urlencode_rfc3986(cod); + + cgResponse response = base.request(false, "send2cgeo.carnero.cc", "/authDev.php", "GET", params, 0, true); + + if (response.getStatusCode() == 200) + { + //response was OK + String[] strings = response.getData().split(","); + try { + pin=Integer.parseInt(strings[1].trim()); + } catch (Exception e) { + Log.e(cgSettings.tag, "webDialog: " + e.toString()); + } + String code = strings[0]; + settings.setWebNameCode(nam, code); + } + + webAuthHandler.sendEmptyMessage(pin); + } + }).start(); + } + } + + public void goHome(View view) { + base.goHome(activity); + } + + public void goManual(View view) { + try { + AppManualReaderClient.openManual( + "c-geo", + "c:geo-configuration", + activity, + "http://cgeo.carnero.cc/manual/" + ); + } catch (Exception e) { + // nothing + } + } +} |
