aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgeoinit.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/cgeoinit.java')
-rw-r--r--main/src/cgeo/geocaching/cgeoinit.java76
1 files changed, 45 insertions, 31 deletions
diff --git a/main/src/cgeo/geocaching/cgeoinit.java b/main/src/cgeo/geocaching/cgeoinit.java
index a8e660a..0aeed10 100644
--- a/main/src/cgeo/geocaching/cgeoinit.java
+++ b/main/src/cgeo/geocaching/cgeoinit.java
@@ -4,13 +4,16 @@ import cgeo.geocaching.activity.AbstractActivity;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory;
import cgeo.geocaching.apps.cache.navi.NavigationAppFactory.NavigationAppsEnum;
import cgeo.geocaching.compatibility.Compatibility;
+import cgeo.geocaching.connector.gc.Login;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.maps.MapProviderFactory;
-import cgeo.geocaching.network.Login;
+import cgeo.geocaching.network.Cookies;
import cgeo.geocaching.network.Network;
import cgeo.geocaching.network.Parameters;
import cgeo.geocaching.twitter.TwitterAuthorizationActivity;
+import cgeo.geocaching.ui.Formatter;
+import cgeo.geocaching.utils.Log;
import cgeo.geocaching.utils.LogTemplateProvider;
import cgeo.geocaching.utils.LogTemplateProvider.LogTemplate;
@@ -19,6 +22,7 @@ import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.http.HttpResponse;
import android.app.ProgressDialog;
+import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
@@ -26,7 +30,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
-import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
@@ -45,7 +48,6 @@ import android.widget.TextView;
import java.io.File;
import java.util.Collection;
import java.util.List;
-import java.util.concurrent.atomic.AtomicReference;
public class cgeoinit extends AbstractActivity {
@@ -73,7 +75,7 @@ public class cgeoinit extends AbstractActivity {
} catch (Exception e) {
showToast(res.getString(R.string.err_login_failed));
- Log.e(Settings.tag, "cgeoinit.logInHandler: " + e.toString());
+ Log.e("cgeoinit.logInHandler: " + e.toString());
}
if (loginDialog != null && loginDialog.isShowing()) {
@@ -101,7 +103,7 @@ public class cgeoinit extends AbstractActivity {
} catch (Exception e) {
showToast(res.getString(R.string.init_sendToCgeo_register_fail));
- Log.e(Settings.tag, "cgeoinit.webHandler: " + e.toString());
+ Log.e("cgeoinit.webHandler: " + e.toString());
}
if (webDialog != null && webDialog.isShowing()) {
@@ -173,7 +175,7 @@ public class cgeoinit extends AbstractActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == 0) {
- boolean status = false;
+ boolean status;
((EditText) findViewById(R.id.username)).setText("");
((EditText) findViewById(R.id.password)).setText("");
@@ -669,6 +671,17 @@ public class cgeoinit extends AbstractActivity {
refreshBackupLabel();
+ // Debug settings
+ final CheckBox debugButton = (CheckBox) findViewById(R.id.debug);
+ debugButton.setChecked(Settings.isDebug());
+ debugButton.setOnClickListener(new View.OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ Settings.setDebug(!Settings.isDebug());
+ debugButton.setChecked(Settings.isDebug());
+ }
+ });
}
private void initMapfileEdittext(boolean setFocus) {
@@ -685,42 +698,34 @@ public class cgeoinit extends AbstractActivity {
*/
public void backup(View view) {
// avoid overwriting an existing backup with an empty database (can happen directly after reinstalling the app)
- if (app.getAllStoredCachesCount(true, CacheType.ALL, null) == 0) {
+ if (app.getAllStoredCachesCount(true, CacheType.ALL) == 0) {
helpDialog(res.getString(R.string.init_backup), res.getString(R.string.init_backup_unnecessary));
return;
}
- final AtomicReference<String> fileRef = new AtomicReference<String>(null);
final ProgressDialog dialog = ProgressDialog.show(this, res.getString(R.string.init_backup), res.getString(R.string.init_backup_running), true, false);
- Thread backupThread = new Thread() {
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- dialog.dismiss();
- final String file = fileRef.get();
- if (file != null) {
- helpDialog(res.getString(R.string.init_backup_backup), res.getString(R.string.init_backup_success) + "\n" + file);
- } else {
- helpDialog(res.getString(R.string.init_backup_backup), res.getString(R.string.init_backup_failed));
- }
- refreshBackupLabel();
- }
- };
-
+ new Thread() {
@Override
public void run() {
- fileRef.set(app.backupDatabase());
- handler.sendMessage(handler.obtainMessage());
+ final String backupFileName = app.backupDatabase();
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ dialog.dismiss();
+ helpDialog(res.getString(R.string.init_backup_backup),
+ backupFileName != null ? res.getString(R.string.init_backup_success) + "\n" + backupFileName : res.getString(R.string.init_backup_failed));
+ refreshBackupLabel();
+ }
+ });
}
- };
- backupThread.start();
+ }.start();
}
private void refreshBackupLabel() {
TextView lastBackup = (TextView) findViewById(R.id.backup_last);
File lastBackupFile = cgeoapplication.isRestoreFile();
if (lastBackupFile != null) {
- lastBackup.setText(res.getString(R.string.init_backup_last) + " " + cgBase.formatTime(lastBackupFile.lastModified()) + ", " + cgBase.formatDate(lastBackupFile.lastModified()));
+ lastBackup.setText(res.getString(R.string.init_backup_last) + " " + Formatter.formatTime(lastBackupFile.lastModified()) + ", " + Formatter.formatDate(lastBackupFile.lastModified()));
} else {
lastBackup.setText(res.getString(R.string.init_backup_last_no));
}
@@ -810,7 +815,7 @@ public class cgeoinit extends AbstractActivity {
loginDialog.setCancelable(false);
Settings.setLogin(username, password);
- Network.clearCookies();
+ Cookies.clearCookies();
(new Thread() {
@@ -852,7 +857,7 @@ public class cgeoinit extends AbstractActivity {
final String cod = StringUtils.defaultString(deviceCode);
final Parameters params = new Parameters("name", nam, "code", cod);
- HttpResponse response = Network.request("http://send2.cgeo.org/auth.html", params, true);
+ HttpResponse response = Network.getRequest("http://send2.cgeo.org/auth.html", params);
if (response != null && response.getStatusLine().getStatusCode() == 200)
{
@@ -861,7 +866,7 @@ public class cgeoinit extends AbstractActivity {
try {
pin = Integer.parseInt(strings[1].trim());
} catch (Exception e) {
- Log.e(Settings.tag, "webDialog: " + e.toString());
+ Log.e("webDialog: " + e.toString());
}
String code = strings[0];
Settings.setWebNameCode(nam, code);
@@ -881,9 +886,18 @@ public class cgeoinit extends AbstractActivity {
if (resultCode == RESULT_OK) {
if (data.hasExtra("mapfile")) {
Settings.setMapFile(data.getStringExtra("mapfile"));
+ if (!Settings.isValidMapFile(Settings.getMapFile())) {
+ showToast(res.getString(R.string.warn_invalid_mapfile));
+ }
}
}
initMapfileEdittext(true);
}
}
+
+ public static void startActivity(Context fromActivity) {
+ final Intent initIntent = new Intent(fromActivity, cgeoinit.class);
+ fromActivity.startActivity(initIntent);
+ }
+
}