X-Git-Url: http://www.average.org/gitweb/?p=WhereAmI.git;a=blobdiff_plain;f=src%2Forg%2Faverage%2Fwhereami%2FWhereAmI.java;h=e3f510ea4a6ff641d4823abb7e319327f970ea20;hp=5fdbbedbab4edded45ade82b0620fb4bbc4a8d4a;hb=6a4744c5765e743aa4057f5fcf5571e6ed8abafe;hpb=8df6e5aa67a193e12b1946ac38f2f61530bfeae5 diff --git a/src/org/average/whereami/WhereAmI.java b/src/org/average/whereami/WhereAmI.java index 5fdbbed..e3f510e 100644 --- a/src/org/average/whereami/WhereAmI.java +++ b/src/org/average/whereami/WhereAmI.java @@ -1,16 +1,20 @@ package org.average.whereami; import org.average.whereami.WhereAmIprefs; +import org.average.whereami.APIBase; import org.average.whereami.Oracle; import org.average.whereami.PhoneLog; import org.average.whereami.LastLocation; +import java.util.Random; + import android.app.Activity; import android.net.wifi.WifiManager; import android.os.Build; import android.os.Bundle; import android.os.AsyncTask; import android.os.Handler; +import android.os.SystemClock; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.content.BroadcastReceiver; @@ -40,6 +44,7 @@ public class WhereAmI extends Activity private Integer runningtasks = 0; private SharedPreferences prefs; private PersistentStore store; + private Random random = new Random(); private class UpdateTarget { private TextView tv; @@ -50,7 +55,16 @@ public class WhereAmI extends Activity @Override protected String doInBackground(Void... params) { Log.v(TAG, "BgUpdate " + updater + " starting"); - return updater.getResult(); + Utterance result = updater.getResult(); + if (!result.success) { + SystemClock.sleep(1000 + random.nextInt(1000)); + result = updater.getResult(); + } + if (!result.success) { + Log.e(TAG, "After second attempt still " + + result.message); + } + return result.message; } @Override @@ -165,10 +179,11 @@ public class WhereAmI extends Activity for (int i = 0; i < ut.length; i++) { ut[i].cancel(); } + runningtasks = 0; Time tm = new Time(); tm.setToNow(); tvs.setText(R.string.failtry); - tvs.append(tm.format(" %d/%m/%Y %H:%M:%S")); + tvs.append(tm.format(" %d/%m/%Y %H:%M")); } if (managewifi) { boolean wifion = wifiman.setWifiEnabled(false); @@ -220,17 +235,13 @@ public class WhereAmI extends Activity tvt = (TextView)findViewById(R.id.time); tvd = (TextView)findViewById(R.id.date); tvs = (TextView)findViewById(R.id.timestamp); + APIBase base = new APIBase(res, store); ut = new UpdateTarget[] { new UpdateTarget((TextView)findViewById(R.id.phonecall), - new PhoneLog(res, store)), + new PhoneLog(base)), new UpdateTarget((TextView)findViewById(R.id.location), - new LastLocation(res, store)) + new LastLocation(base)) }; - Log.v(TAG, "created UI, about to start update task"); - mHandler.post(updateClock); - mHandler.post(updateCal); - mHandler.post(updateInfo); - Log.v(TAG, "created UI, update task created"); } /** Called when reactivated */ @@ -250,6 +261,10 @@ public class WhereAmI extends Activity } else { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } + mHandler.post(updateClock); + mHandler.post(updateCal); + mHandler.post(updateInfo); + Log.v(TAG, "update tasks scheduled"); } /** Called when put to background */ @@ -257,6 +272,10 @@ public class WhereAmI extends Activity public void onPause() { super.onPause(); Log.v(TAG, "going background"); + resetInfo.run(); + mHandler.removeCallbacks(updateClock); + mHandler.removeCallbacks(updateCal); + mHandler.removeCallbacks(updateInfo); } /** Called when the activity is destroyed. */ @@ -264,17 +283,6 @@ public class WhereAmI extends Activity public void onDestroy() { super.onDestroy(); Log.v(TAG, "going down"); - mHandler.removeCallbacks(updateClock); - mHandler.removeCallbacks(updateCal); - mHandler.removeCallbacks(updateInfo); - if (connChangedRegistered) { - unregisterReceiver(connChanged); - connChangedRegistered = false; - } - if (managewifi) { - boolean wifion = wifiman.setWifiEnabled(false); - Log.v(TAG, "disabling wifi result " + wifion); - } } /** Called when the menu is activated. */