/FallingSandpaper/src/sand/wallpaper/opengl/Preferences.java

http://thelements.googlecode.com/ · Java · 162 lines · 122 code · 17 blank · 23 comment · 20 complexity · 1189a128155a0c8c9bf686508d9213ba MD5 · raw file

  1. package sand.wallpaper.opengl;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
  5. import android.os.Bundle;
  6. import android.preference.CheckBoxPreference;
  7. import android.preference.ListPreference;
  8. import android.preference.PreferenceActivity;
  9. import android.preference.PreferenceCategory;
  10. import android.preference.PreferenceManager;
  11. import android.preference.PreferenceScreen;
  12. import android.util.Log;
  13. public class Preferences extends PreferenceActivity implements OnSharedPreferenceChangeListener
  14. {
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState)
  17. {
  18. super.onCreate(savedInstanceState);
  19. getPreferenceManager().setSharedPreferencesName("TheElementsPrefs");
  20. //Set the preference screen created by createPreferenceHierarchy()
  21. setPreferenceScreen(createPreferenceHierarchy());
  22. getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  23. }
  24. //Function to set up the preferences
  25. private PreferenceScreen createPreferenceHierarchy()
  26. {
  27. //Define the root PreferenceScreen
  28. PreferenceScreen root = getPreferenceManager().createPreferenceScreen(this);
  29. //Look and feel category and add to root
  30. PreferenceCategory look_feel_cat = new PreferenceCategory(this);
  31. look_feel_cat.setTitle(R.string.look_feel_title);
  32. root.addPreference(look_feel_cat);
  33. //Background color list preference
  34. ListPreference back_color_pref = new ListPreference(this);
  35. back_color_pref.setEntries(R.array.entries_list_preference);
  36. back_color_pref.setEntryValues(R.array.entryvalues_list_preference);
  37. back_color_pref.setDialogTitle(R.string.back_color_pref_title);
  38. back_color_pref.setKey("back_color_pref");
  39. back_color_pref.setTitle(R.string.back_color_pref_title);
  40. back_color_pref.setSummary(R.string.back_color_pref_summary);
  41. root.addPreference(back_color_pref);
  42. //Other category
  43. PreferenceCategory other_cat = new PreferenceCategory(this);
  44. other_cat.setTitle(R.string.other_title);
  45. root.addPreference(other_cat);
  46. //Flip screen checkbox
  47. CheckBoxPreference flip_screen_pref = new CheckBoxPreference(this);
  48. flip_screen_pref.setTitle("Flip Screen");
  49. flip_screen_pref.setSummary("Flip screen (use only if nothing draws on screen)");
  50. flip_screen_pref.setKey("flip_screen_pref");
  51. root.addPreference(flip_screen_pref);
  52. //Game category
  53. PreferenceCategory game_cat = new PreferenceCategory(this);
  54. game_cat.setTitle(R.string.game_cat_title);
  55. root.addPreference(game_cat);
  56. //Accelerometer checkbox
  57. CheckBoxPreference accel_pref = new CheckBoxPreference(this);
  58. accel_pref.setTitle(R.string.accel_pref_title);
  59. accel_pref.setSummary(R.string.accel_pref_summary);
  60. accel_pref.setKey("accel_pref");
  61. //root.addPreference(accel_pref);
  62. //Random checkbox
  63. CheckBoxPreference random_pref = new CheckBoxPreference(this);
  64. random_pref.setTitle(R.string.random_pref_title);
  65. random_pref.setSummary(R.string.random_pref_summary);
  66. random_pref.setKey("random_pref");
  67. root.addPreference(random_pref);
  68. //Create the shared prefs used to access all this
  69. final SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
  70. //Set default values
  71. if(!sharedPrefs.contains("back_color_pref"))
  72. back_color_pref.setValue("black");
  73. if(!sharedPrefs.contains("flip_screen_pref"))
  74. flip_screen_pref.setChecked(false);
  75. /*if(!sharedPrefs.contains("accel_pref"))
  76. accel_pref.setChecked(false);*/
  77. if(!sharedPrefs.contains("random_pref"))
  78. random_pref.setChecked(true);
  79. return root;
  80. }
  81. public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
  82. {
  83. if(key == "back_color_pref")
  84. {
  85. if(sharedPreferences.getString("back_color_pref", "black").equalsIgnoreCase("black"))
  86. {
  87. DemoActivity.setBackgroundColor(0);
  88. }
  89. else
  90. {
  91. DemoActivity.setBackgroundColor(1);
  92. }
  93. }
  94. else if(key == "flip_screen_pref")
  95. {
  96. if(sharedPreferences.getBoolean("flip_screen_pref", false) == false)
  97. {
  98. DemoActivity.setFlip(0);
  99. }
  100. else
  101. {
  102. DemoActivity.setFlip(1);
  103. }
  104. }
  105. else if(key == "accel_pref")
  106. {
  107. if(sharedPreferences.getBoolean("accel_pref", false) == false)
  108. {
  109. DemoActivity.setAccelOnOff(0);
  110. }
  111. else
  112. {
  113. DemoActivity.setAccelOnOff(1);
  114. }
  115. }
  116. }
  117. public static void setPreferences(Context context)
  118. {
  119. final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
  120. if(sharedPreferences.getString("back_color_pref", "black") == "black")
  121. {
  122. DemoActivity.setBackgroundColor(0);
  123. }
  124. else
  125. {
  126. DemoActivity.setBackgroundColor(1);
  127. }
  128. if(sharedPreferences.getBoolean("flip_screen_pref", false) == false)
  129. {
  130. DemoActivity.setFlip(0);
  131. }
  132. else
  133. {
  134. DemoActivity.setFlip(1);
  135. }
  136. /*if(sharedPreferences.getBoolean("accel_pref", false) == false)
  137. {
  138. DemoActivity.setAccelOnOff(0);
  139. }
  140. else
  141. {
  142. DemoActivity.setAccelOnOff(1);
  143. }*/
  144. }
  145. }