/shell/src/com/google/marvin/shell/SettingsShortcutChooserActivity.java

http://eyes-free.googlecode.com/ · Java · 84 lines · 71 code · 9 blank · 4 comment · 3 complexity · df1643769a11911c6149cb21a95a38f9 MD5 · raw file

  1. // Copyright 2011 Google Inc. All Rights Reserved.
  2. package com.google.marvin.shell;
  3. import android.app.Activity;
  4. import android.app.ListActivity;
  5. import android.content.Intent;
  6. import android.content.pm.PackageManager;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.widget.ArrayAdapter;
  10. import android.widget.ListAdapter;
  11. import android.widget.ListView;
  12. import java.util.ArrayList;
  13. import java.util.Collections;
  14. import java.util.HashMap;
  15. /**
  16. * @author credo@google.com (Tim Credo)
  17. */
  18. public class SettingsShortcutChooserActivity extends ListActivity {
  19. static HashMap<String, String> settingsActions;
  20. static {
  21. settingsActions = new HashMap<String, String>();
  22. settingsActions.put(
  23. "Accessibility Settings", android.provider.Settings.ACTION_ACCESSIBILITY_SETTINGS);
  24. settingsActions.put(
  25. "Application Settings", android.provider.Settings.ACTION_APPLICATION_SETTINGS);
  26. settingsActions.put(
  27. "Bluetooth Settings", android.provider.Settings.ACTION_BLUETOOTH_SETTINGS);
  28. settingsActions.put("Date Settings", android.provider.Settings.ACTION_DATE_SETTINGS);
  29. settingsActions.put(
  30. "Input Method Settings", android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS);
  31. settingsActions.put("Internal Storage Settings",
  32. android.provider.Settings.ACTION_INTERNAL_STORAGE_SETTINGS);
  33. settingsActions.put("Locale Settings", android.provider.Settings.ACTION_LOCALE_SETTINGS);
  34. settingsActions.put("Location Source Settings",
  35. android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
  36. settingsActions.put("Manage Applications",
  37. android.provider.Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
  38. settingsActions.put(
  39. "Memory Card Settings", android.provider.Settings.ACTION_MEMORY_CARD_SETTINGS);
  40. settingsActions.put("Privacy Settings", android.provider.Settings.ACTION_PRIVACY_SETTINGS);
  41. settingsActions.put(
  42. "Security Settings", android.provider.Settings.ACTION_SECURITY_SETTINGS);
  43. settingsActions.put("Sound Settings", android.provider.Settings.ACTION_SOUND_SETTINGS);
  44. settingsActions.put("Wifi Settings", android.provider.Settings.ACTION_WIFI_SETTINGS);
  45. settingsActions.put(
  46. "Wireless Settings", android.provider.Settings.ACTION_WIRELESS_SETTINGS);
  47. }
  48. ArrayList<String> availableActions;
  49. @Override
  50. public void onCreate(Bundle savedInstanceState) {
  51. super.onCreate(savedInstanceState);
  52. PackageManager pm = getPackageManager();
  53. availableActions = new ArrayList<String>();
  54. for (String key : settingsActions.keySet()) {
  55. if (pm.resolveActivity(new Intent(settingsActions.get(key)), 0) != null) {
  56. availableActions.add(key);
  57. }
  58. }
  59. Collections.sort(availableActions);
  60. ListAdapter adapter = new ArrayAdapter<String>(
  61. this, android.R.layout.simple_list_item_1, availableActions);
  62. setListAdapter(adapter);
  63. }
  64. @Override
  65. protected void onListItemClick(ListView l, View v, int position, long id) {
  66. super.onListItemClick(l, v, position, id);
  67. String title = availableActions.get(position);
  68. String action = settingsActions.get(title);
  69. Intent data = new Intent();
  70. data.putExtra("TITLE", title);
  71. data.putExtra("ACTION", action);
  72. this.setResult(Activity.RESULT_OK, data);
  73. finish();
  74. }
  75. }