/** * Copyright 2009 Joe LaPenna */ package com.joelapenna.foursquared; import com.joelapenna.foursquare.Foursquare; import com.joelapenna.foursquared.error.LocationException; import com.joelapenna.foursquared.location.LocationUtils; import com.joelapenna.foursquared.util.NotificationsUtil; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; /** * @author Joe LaPenna (joe@joelapenna.com) */ public class StatsActivity extends Activity { public static final String TAG = "StatsActivity"; public static final boolean DEBUG = FoursquaredSettings.DEBUG; private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (DEBUG) Log.d(TAG, "onReceive: " + intent); finish(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.stats_activity); registerReceiver(mLoggedOutReceiver, new IntentFilter(Foursquared.INTENT_ACTION_LOGGED_OUT)); setTitle(getResources().getString(R.string.stats_activity_scoreboard)); WebView webView = (WebView) findViewById(R.id.webView); webView.setWebViewClient(new MyWebViewClient()); webView.setWebChromeClient(new MyWebChromeClient()); Foursquared foursquared = ((Foursquared) getApplication()); String userId = ((Foursquared) getApplication()).getUserId(); try { Foursquared.get(this).requestLocationUpdates(false); String url = Foursquare.createLeaderboardUrl(userId, LocationUtils .createFoursquareLocation(foursquared.getLastKnownLocationOrThrow())); Log.d(TAG, url); webView.loadUrl(url); } catch (LocationException e) { NotificationsUtil.ToastReasonForFailure(this, e); finish(); } finally { Foursquared.get(this).removeLocationUpdates(); } } @Override public void onDestroy() { super.onDestroy(); unregisterReceiver(mLoggedOutReceiver); } private class MyWebChromeClient extends WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { setProgress(newProgress * 100); } } private class MyWebViewClient extends WebViewClient { @Override public void onPageFinished(WebView view, String url) { setProgressBarVisibility(false); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { setProgressBarVisibility(true); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } } }