|
@@ -2,6 +2,7 @@ package app.brest.testmin3d;
|
|
|
|
|
|
|
|
|
|
import android.annotation.TargetApi;
|
|
import android.annotation.TargetApi;
|
|
|
|
+import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.Intent;
|
|
import android.content.res.Configuration;
|
|
import android.content.res.Configuration;
|
|
@@ -19,9 +20,16 @@ import android.preference.PreferenceManager;
|
|
import android.preference.RingtonePreference;
|
|
import android.preference.RingtonePreference;
|
|
import android.text.TextUtils;
|
|
import android.text.TextUtils;
|
|
import android.view.MenuItem;
|
|
import android.view.MenuItem;
|
|
|
|
+import android.view.View;
|
|
|
|
+import android.widget.LinearLayout;
|
|
|
|
+import android.widget.TextView;
|
|
|
|
+import android.widget.ToggleButton;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
+import app.brest.utils.Settings;
|
|
|
|
+import app.brest.utils.app.brest.game.Game;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* A {@link PreferenceActivity} that presents a set of application settings. On
|
|
* A {@link PreferenceActivity} that presents a set of application settings. On
|
|
* handset devices, settings are presented as a single list. On tablets,
|
|
* handset devices, settings are presented as a single list. On tablets,
|
|
@@ -33,222 +41,73 @@ import java.util.List;
|
|
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings
|
|
* href="http://developer.android.com/guide/topics/ui/settings.html">Settings
|
|
* API Guide</a> for more information on developing a Settings UI.
|
|
* API Guide</a> for more information on developing a Settings UI.
|
|
*/
|
|
*/
|
|
-public class SettingsActivity extends AppCompatPreferenceActivity {
|
|
|
|
- /**
|
|
|
|
- * A preference value change listener that updates the preference's summary
|
|
|
|
- * to reflect its new value.
|
|
|
|
- */
|
|
|
|
- private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
|
|
|
|
- @Override
|
|
|
|
- public boolean onPreferenceChange(Preference preference, Object value) {
|
|
|
|
- String stringValue = value.toString();
|
|
|
|
-
|
|
|
|
- if (preference instanceof ListPreference) {
|
|
|
|
- // For list preferences, look up the correct display value in
|
|
|
|
- // the preference's 'entries' list.
|
|
|
|
- ListPreference listPreference = (ListPreference) preference;
|
|
|
|
- int index = listPreference.findIndexOfValue(stringValue);
|
|
|
|
-
|
|
|
|
- // Set the summary to reflect the new value.
|
|
|
|
- preference.setSummary(
|
|
|
|
- index >= 0
|
|
|
|
- ? listPreference.getEntries()[index]
|
|
|
|
- : null);
|
|
|
|
-
|
|
|
|
- } else if (preference instanceof RingtonePreference) {
|
|
|
|
- // For ringtone preferences, look up the correct display value
|
|
|
|
- // using RingtoneManager.
|
|
|
|
- if (TextUtils.isEmpty(stringValue)) {
|
|
|
|
- // Empty values correspond to 'silent' (no ringtone).
|
|
|
|
- preference.setSummary(R.string.pref_ringtone_silent);
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- Ringtone ringtone = RingtoneManager.getRingtone(
|
|
|
|
- preference.getContext(), Uri.parse(stringValue));
|
|
|
|
-
|
|
|
|
- if (ringtone == null) {
|
|
|
|
- // Clear the summary if there was a lookup error.
|
|
|
|
- preference.setSummary(null);
|
|
|
|
- } else {
|
|
|
|
- // Set the summary to reflect the new ringtone display
|
|
|
|
- // name.
|
|
|
|
- String name = ringtone.getTitle(preference.getContext());
|
|
|
|
- preference.setSummary(name);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- // For all other preferences, set the summary to the value's
|
|
|
|
- // simple string representation.
|
|
|
|
- preference.setSummary(stringValue);
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * Helper method to determine if the device has an extra-large screen. For
|
|
|
|
- * example, 10" tablets are extra-large.
|
|
|
|
- */
|
|
|
|
- private static boolean isXLargeTablet(Context context) {
|
|
|
|
- return (context.getResources().getConfiguration().screenLayout
|
|
|
|
- & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
|
|
|
|
- }
|
|
|
|
|
|
+public class SettingsActivity extends Activity {
|
|
|
|
|
|
- /**
|
|
|
|
- * Binds a preference's summary to its value. More specifically, when the
|
|
|
|
- * preference's value is changed, its summary (line of text below the
|
|
|
|
- * preference title) is updated to reflect the value. The summary is also
|
|
|
|
- * immediately updated upon calling this method. The exact display format is
|
|
|
|
- * dependent on the type of preference.
|
|
|
|
- *
|
|
|
|
- * @see #sBindPreferenceSummaryToValueListener
|
|
|
|
- */
|
|
|
|
- private static void bindPreferenceSummaryToValue(Preference preference) {
|
|
|
|
- // Set the listener to watch for value changes.
|
|
|
|
- preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
|
|
|
|
-
|
|
|
|
- // Trigger the listener immediately with the preference's
|
|
|
|
- // current value.
|
|
|
|
- sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
|
|
|
|
- PreferenceManager
|
|
|
|
- .getDefaultSharedPreferences(preference.getContext())
|
|
|
|
- .getString(preference.getKey(), ""));
|
|
|
|
- }
|
|
|
|
|
|
+ protected Game mGame;
|
|
|
|
+ protected LinearLayout mRoot;
|
|
|
|
+ protected ToggleButton mAccelerometer;
|
|
|
|
+ protected ToggleButton mGPS;
|
|
|
|
+ protected ToggleButton mPlaces;
|
|
|
|
+ protected ToggleButton mAreas;
|
|
|
|
|
|
- @Override
|
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
super.onCreate(savedInstanceState);
|
|
- setupActionBar();
|
|
|
|
|
|
+ setContentView(R.layout.activity_settings);
|
|
|
|
+
|
|
|
|
+ mGame = (Game) getIntent().getSerializableExtra("game");
|
|
|
|
+
|
|
|
|
+ mAccelerometer = new ToggleButton(this);
|
|
|
|
+ mGPS = new ToggleButton(this);
|
|
|
|
+ mPlaces=new ToggleButton(this);
|
|
|
|
+ mAreas=new ToggleButton(this);
|
|
|
|
+ mRoot = (LinearLayout)findViewById(R.id.root_layout);
|
|
|
|
+ addOptionBool("Données acceleromètre", mAccelerometer);
|
|
|
|
+ addOptionBool("Données GPS", mGPS);
|
|
|
|
+ addOptionBool("Distance Resources", mAreas);
|
|
|
|
+ addOptionBool("Resources affichés", mPlaces);
|
|
|
|
+ preset();
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * Set up the {@link android.app.ActionBar}, if the API is available.
|
|
|
|
- */
|
|
|
|
- private void setupActionBar() {
|
|
|
|
- ActionBar actionBar = getSupportActionBar();
|
|
|
|
- if (actionBar != null) {
|
|
|
|
- // Show the Up button in the action bar.
|
|
|
|
- actionBar.setDisplayHomeAsUpEnabled(true);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
- /**
|
|
|
|
- * {@inheritDoc}
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- public boolean onIsMultiPane() {
|
|
|
|
- return isXLargeTablet(this);
|
|
|
|
- }
|
|
|
|
|
|
|
|
- /**
|
|
|
|
- * {@inheritDoc}
|
|
|
|
- */
|
|
|
|
- @Override
|
|
|
|
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
|
|
|
- public void onBuildHeaders(List<Header> target) {
|
|
|
|
- loadHeadersFromResource(R.xml.pref_headers, target);
|
|
|
|
|
|
+ public void onClick(View v)
|
|
|
|
+ {
|
|
|
|
+ setResults();
|
|
|
|
+ finish();
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * This method stops fragment injection in malicious applications.
|
|
|
|
- * Make sure to deny any unknown fragments here.
|
|
|
|
- */
|
|
|
|
- protected boolean isValidFragment(String fragmentName) {
|
|
|
|
- return PreferenceFragment.class.getName().equals(fragmentName)
|
|
|
|
- || GeneralPreferenceFragment.class.getName().equals(fragmentName)
|
|
|
|
- || DataSyncPreferenceFragment.class.getName().equals(fragmentName)
|
|
|
|
- || NotificationPreferenceFragment.class.getName().equals(fragmentName);
|
|
|
|
- }
|
|
|
|
|
|
+ public void addOptionBool(String name, ToggleButton v)
|
|
|
|
+ {
|
|
|
|
+ LinearLayout ll = new LinearLayout(this);
|
|
|
|
+ TextView tv = new TextView(this);
|
|
|
|
+ tv.setText(name);
|
|
|
|
+ //tv.setBackgroundColor(0);
|
|
|
|
+ //tv.setTextSize(20);
|
|
|
|
+ //tv.setTextColor(0x33b5e5);
|
|
|
|
+
|
|
|
|
+ ll.setOrientation(LinearLayout.HORIZONTAL);
|
|
|
|
+ //v.setBackgroundColor(0);
|
|
|
|
+ ll.addView(tv);
|
|
|
|
+ ll.addView(v);
|
|
|
|
+ mRoot.addView(ll);
|
|
|
|
|
|
- /**
|
|
|
|
- * This fragment shows general preferences only. It is used when the
|
|
|
|
- * activity is showing a two-pane settings UI.
|
|
|
|
- */
|
|
|
|
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
|
|
|
- public static class GeneralPreferenceFragment extends PreferenceFragment {
|
|
|
|
- @Override
|
|
|
|
- public void onCreate(Bundle savedInstanceState) {
|
|
|
|
- super.onCreate(savedInstanceState);
|
|
|
|
- addPreferencesFromResource(R.xml.pref_general);
|
|
|
|
- setHasOptionsMenu(true);
|
|
|
|
-
|
|
|
|
- // Bind the summaries of EditText/List/Dialog/Ringtone preferences
|
|
|
|
- // to their values. When their values change, their summaries are
|
|
|
|
- // updated to reflect the new value, per the Android Design
|
|
|
|
- // guidelines.
|
|
|
|
- bindPreferenceSummaryToValue(findPreference("example_text"));
|
|
|
|
- bindPreferenceSummaryToValue(findPreference("example_list"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
- int id = item.getItemId();
|
|
|
|
- if (id == android.R.id.home) {
|
|
|
|
- startActivity(new Intent(getActivity(), SettingsActivity.class));
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- return super.onOptionsItemSelected(item);
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * This fragment shows notification preferences only. It is used when the
|
|
|
|
- * activity is showing a two-pane settings UI.
|
|
|
|
- */
|
|
|
|
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
|
|
|
- public static class NotificationPreferenceFragment extends PreferenceFragment {
|
|
|
|
- @Override
|
|
|
|
- public void onCreate(Bundle savedInstanceState) {
|
|
|
|
- super.onCreate(savedInstanceState);
|
|
|
|
- addPreferencesFromResource(R.xml.pref_notification);
|
|
|
|
- setHasOptionsMenu(true);
|
|
|
|
-
|
|
|
|
- // Bind the summaries of EditText/List/Dialog/Ringtone preferences
|
|
|
|
- // to their values. When their values change, their summaries are
|
|
|
|
- // updated to reflect the new value, per the Android Design
|
|
|
|
- // guidelines.
|
|
|
|
- bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
- int id = item.getItemId();
|
|
|
|
- if (id == android.R.id.home) {
|
|
|
|
- startActivity(new Intent(getActivity(), SettingsActivity.class));
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- return super.onOptionsItemSelected(item);
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ private void setResults()
|
|
|
|
+ {
|
|
|
|
+ mGame.getmSettings().setAccelerometerDebug(mAccelerometer.isChecked());
|
|
|
|
+ mGame.getmSettings().setAreaDebug(mAreas.isChecked());
|
|
|
|
+ mGame.getmSettings().setGPSDebug(mGPS.isChecked());
|
|
|
|
+ mGame.getmSettings().setResourceDebug(mPlaces.isChecked());
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * This fragment shows data and sync preferences only. It is used when the
|
|
|
|
- * activity is showing a two-pane settings UI.
|
|
|
|
- */
|
|
|
|
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
|
|
|
- public static class DataSyncPreferenceFragment extends PreferenceFragment {
|
|
|
|
- @Override
|
|
|
|
- public void onCreate(Bundle savedInstanceState) {
|
|
|
|
- super.onCreate(savedInstanceState);
|
|
|
|
- addPreferencesFromResource(R.xml.pref_data_sync);
|
|
|
|
- setHasOptionsMenu(true);
|
|
|
|
-
|
|
|
|
- // Bind the summaries of EditText/List/Dialog/Ringtone preferences
|
|
|
|
- // to their values. When their values change, their summaries are
|
|
|
|
- // updated to reflect the new value, per the Android Design
|
|
|
|
- // guidelines.
|
|
|
|
- bindPreferenceSummaryToValue(findPreference("sync_frequency"));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
|
- int id = item.getItemId();
|
|
|
|
- if (id == android.R.id.home) {
|
|
|
|
- startActivity(new Intent(getActivity(), SettingsActivity.class));
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- return super.onOptionsItemSelected(item);
|
|
|
|
- }
|
|
|
|
|
|
+ private void preset()
|
|
|
|
+ {
|
|
|
|
+ mAccelerometer.setChecked(mGame.getmSettings().isAccelerometerDebug());
|
|
|
|
+ mAreas.setChecked(mGame.getmSettings().isAreaDebug());
|
|
|
|
+ mGPS.setChecked(mGame.getmSettings().isGPSDebug());
|
|
|
|
+ mPlaces.setChecked(mGame.getmSettings().isResourceDebug());
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|