# filter course area by preference settings

This commit is contained in:
Lukas Niemeier committed 2013-06-21 17:29:14 +02:00
1 parent 4eedab2338
commit a4d4c84cf5
7 files changed
+53 -20

No files matched your search

@@ -2,35 +2,26 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="@string/settings_category_general" >
<EditTextPreference
android:key="courseAreasPref"
␍ <EditTextPreference
android:name="@string/settings_general_manageareas_header"
android:defaultValue="@string/settings_general_manageareas_default"
android:key="courseAreasPref"
android:summary="@string/settings_general_manageareas_description"
android:title="@string/settings_general_manageareas_header" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_race" >
<!--
<CheckBoxPreference
android:defaultValue="false"
android:key="checkboxPrefGolf"
android:summary="Check the box if the Golf flag should be automatically removed in a gate start race"
android:title="Remove Golf Automatically" />
-->
<CheckBoxPreference
android:key="overrideDefaultStartProcedureType"
android:defaultValue="false"
android:key="overrideDefaultStartProcedureType"
android:summary="Check the box if races should use the start procedure type defined below as a default"
android:title="@string/override_default_start_procedure_type" />
<ListPreference
android:key="defaultStartProcedureType"
android:title="@string/override_default_start_procedure_type"
android:summary="Races will use selected start procedure type as a default. For this option to be active override checkbox has to be enabled."
/>
android:title="@string/override_default_start_procedure_type_select" />
<EditTextPreference
android:defaultValue="30"
@@ -48,7 +39,7 @@
android:key="webserviceUrlPref"
android:summary="@string/settings_advanced_service_description"
android:title="@string/settings_advanced_service_header" />
<EditTextPreference
android:name="@string/settings_advanced_mail_header"
android:defaultValue="@string/settings_advanced_mail_default"
@@ -188,6 +188,7 @@
<string name="store_wind_entry">4. Store wind entry</string>
<string name="store_wind">Store wind</string>
<string name="override_default_start_procedure_type">Override default start procedure type</string>
<string name="override_default_start_procedure_type_select">Default start procedure type when overriden</string>
<string name="compass_view_compass">Compass</string>
<string name="compass_view_needle">Needle</string>
@@ -1,5 +1,8 @@
package com.sap.sailing.racecommittee.app;
import java.util.Arrays;
import java.util.List;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
@@ -11,6 +14,13 @@ public class AppPreferences {
private final static String PREFERENCE_WIND_BEARING = "windBearingPref";
private final static String PREFERENCE_WIND_SPEED = "windSpeedPref";
private final static String PREFERENCE_MAIL_RECIPIENT = "mailRecipientPreference";
private final static String PREFERENCE_MANAGED_COURSE_AREAS = "courseAreasPref";
public static List<String> getManagedCourseAreaNames(Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
String value = sp.getString(PREFERENCE_MANAGED_COURSE_AREAS, "");
return Arrays.asList(value.split(","));
}
public static double getWindBearing(Context context) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
@@ -0,0 +1,22 @@
package com.sap.sailing.racecommittee.app.ui.adapters;
import java.util.List;
import android.content.Context;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.racecommittee.app.AppPreferences;
public class CourseAreaArrayAdapter extends NamedArrayAdapter<CourseArea> {
public CourseAreaArrayAdapter(Context context, List<CourseArea> namedList) {
super(context, namedList);
}
@Override
public boolean isEnabled(int position) {
CourseArea courseArea = getItem(position);
return AppPreferences.getManagedCourseAreaNames(getContext()).contains(courseArea.getName());
}
}
@@ -18,8 +18,8 @@ import com.sap.sailing.racecommittee.app.R;
*/
public class NamedArrayAdapter<T extends Named> extends ArrayAdapter<T> {
public NamedArrayAdapter(Context context, int textViewResourceId, List<T> namedList) {
super(context, textViewResourceId, namedList);
public NamedArrayAdapter(Context context, List<T> namedList) {
super(context, 0, namedList);
}
@Override
@@ -1,14 +1,18 @@
package com.sap.sailing.racecommittee.app.ui.fragments.lists;
import java.io.Serializable;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.racecommittee.app.AppConstants;
import com.sap.sailing.racecommittee.app.R;
import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager;
import com.sap.sailing.racecommittee.app.ui.adapters.CourseAreaArrayAdapter;
import com.sap.sailing.racecommittee.app.ui.adapters.NamedArrayAdapter;
import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.CourseAreaSelectedListenerHost;
import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.EventSelectedListenerHost;
import com.sap.sailing.racecommittee.app.ui.fragments.lists.selection.ItemSelectedListener;
@@ -28,6 +32,11 @@ public class CourseAreaListFragment extends NamedListFragment<CourseArea> {
super.onResume();
loadItems();
}
@Override
protected NamedArrayAdapter<CourseArea> createAdapter(Context context, ArrayList<CourseArea> items) {
return new CourseAreaArrayAdapter(context, items);
}
@Override
protected ItemSelectedListener<CourseArea> attachListener(Activity activity) {
@@ -45,8 +45,8 @@ public abstract class NamedListFragment<T extends Named> extends ListFragment im
protected abstract void loadItems(ReadonlyDataManager manager);
protected NamedArrayAdapter<T> createAdapter(Context context, int layoutId, ArrayList<T> items) {
return new NamedArrayAdapter<T>(context, layoutId, items);
protected NamedArrayAdapter<T> createAdapter(Context context, ArrayList<T> items) {
return new NamedArrayAdapter<T>(context, items);
}
protected void loadItems() {
@@ -71,7 +71,7 @@ public abstract class NamedListFragment<T extends Named> extends ListFragment im
addHeader();
namedList = new ArrayList<T>();
listAdapter = createAdapter(getActivity(), android.R.layout.simple_list_item_single_choice, namedList);
listAdapter = createAdapter(getActivity(), /*android.R.layout.simple_list_item_single_choice, */namedList);
this.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
this.setListAdapter(listAdapter);