package com.joelapenna.foursquared; import com.joelapenna.foursquared.providers.GlobalSearchProvider; import android.app.Activity; import android.app.SearchManager; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; /** * Activity that gets intents from the Quick Search Box and starts the correct * Activity depending on the type of the data. * * @author Tauno Talimaa (tauntz@gmail.com) */ public class GlobalSearchActivity extends Activity { private static final String TAG = GlobalSearchProvider.class.getSimpleName(); private static final boolean DEBUG = FoursquaredSettings.DEBUG; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); handleIntent(getIntent()); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); handleIntent(intent); } private void handleIntent(Intent intent) { String dataString = intent.getDataString(); if (!TextUtils.isEmpty(dataString)) { Uri uri = Uri.parse(intent.getDataString()); String directory = uri.getPathSegments().get(0); if (directory.equals(GlobalSearchProvider.VENUE_DIRECTORY)) { if (DEBUG) { Log.d(TAG, "Viewing venue details for venue id:" + uri.getLastPathSegment()); } Intent i = new Intent(this, VenueActivity.class); i.setAction(Intent.ACTION_VIEW); i.putExtra(VenueActivity.INTENT_EXTRA_VENUE_ID, uri.getLastPathSegment()); startActivity(i); finish(); } else if (directory.equals(GlobalSearchProvider.FRIEND_DIRECTORY)) { if (DEBUG) { Log.d(TAG, "Viewing friend details for friend id:" + uri.getLastPathSegment()); // TODO: Implement } } } else { // For now just launch search activity and assume a venue search. Intent intentSearch = new Intent(this, SearchVenuesActivity.class); intentSearch.setAction(Intent.ACTION_SEARCH); if (intent.hasExtra(SearchManager.QUERY)) { intentSearch.putExtra(SearchManager.QUERY, intent.getStringExtra(SearchManager.QUERY)); } startActivity(intentSearch); finish(); } } }