Android does not allow referencing integer in string-arrays: store everything as string and parse it later.

This commit is contained in:
Dennis Guse
2019-11-06 18:16:40 +01:00
parent d3f5080e73
commit 0f348dff10
5 changed files with 41 additions and 43 deletions
@@ -471,12 +471,12 @@ public class TrackRecordingService extends Service {
} }
PreferencesUtils.incrementAutoResumeTrackCurrentRetryDefault(this); PreferencesUtils.incrementAutoResumeTrackCurrentRetryDefault(this);
if (autoResumeTrackTimeout == context.getResources().getInteger(R.integer.auto_resume_track_timeout_never)) { if (autoResumeTrackTimeout == Integer.parseInt(context.getResources().getString(R.string.auto_resume_track_timeout_never))) {
Log.d(TAG, "Not resuming. Auto-resume track timeout set to never."); Log.d(TAG, "Not resuming. Auto-resume track timeout set to never.");
return false; return false;
} }
if (autoResumeTrackTimeout == context.getResources().getInteger(R.integer.auto_resume_track_timeout_always)) { if (autoResumeTrackTimeout == Integer.parseInt(context.getResources().getString(R.string.auto_resume_track_timeout_always))) {
Log.d(TAG, "Resuming. Auto-resume track timeout set to always."); Log.d(TAG, "Resuming. Auto-resume track timeout set to always.");
return true; return true;
} }
@@ -168,9 +168,9 @@ final class PreferenceHelper {
static void setAutoResumeTrackTimeoutOptions(Context context, String[] options, String[] values) { static void setAutoResumeTrackTimeoutOptions(Context context, String[] options, String[] values) {
for (int i = 0; i < values.length; i++) { for (int i = 0; i < values.length; i++) {
int value = Integer.parseInt(values[i]); int value = Integer.parseInt(values[i]);
if (value == context.getResources().getInteger(R.integer.auto_resume_track_timeout_never)) { if (value == Integer.parseInt(context.getResources().getString(R.string.auto_resume_track_timeout_never))) {
options[i] = context.getString(R.string.value_never); options[i] = context.getString(R.string.value_never);
} else if (value == context.getResources().getInteger(R.integer.auto_resume_track_timeout_always)) { } else if (value == Integer.parseInt(context.getResources().getString(R.string.auto_resume_track_timeout_always))) {
options[i] = context.getString(R.string.value_always); options[i] = context.getString(R.string.value_always);
} else { } else {
options[i] = context.getString(R.string.value_integer_minute, value); options[i] = context.getString(R.string.value_integer_minute, value);
@@ -269,7 +269,7 @@ public class PreferencesUtils {
} }
public static int getAutoResumeTrackTimeout(Context context) { public static int getAutoResumeTrackTimeout(Context context) {
final int AUTO_RESUME_TRACK_TIMEOUT = context.getResources().getInteger(R.integer.auto_resume_track_timeout_default); final int AUTO_RESUME_TRACK_TIMEOUT = Integer.parseInt(context.getResources().getString(R.string.auto_resume_track_timeout_default));
return PreferencesUtils.getInt(context, R.string.auto_resume_track_timeout_key, AUTO_RESUME_TRACK_TIMEOUT); return PreferencesUtils.getInt(context, R.string.auto_resume_track_timeout_key, AUTO_RESUME_TRACK_TIMEOUT);
} }
@@ -329,32 +329,32 @@ public class PreferencesUtils {
} }
public static int getVoiceFrequency(Context context) { public static int getVoiceFrequency(Context context) {
final int VOICE_FREQUENCY_DEFAULT = context.getResources().getInteger(R.integer.voice_frequency_default); final int VOICE_FREQUENCY_DEFAULT = Integer.parseInt(context.getResources().getString(R.string.voice_frequency_default));
return PreferencesUtils.getInt(context, R.string.voice_frequency_key, VOICE_FREQUENCY_DEFAULT); return PreferencesUtils.getInt(context, R.string.voice_frequency_key, VOICE_FREQUENCY_DEFAULT);
} }
public static int getSplitFrequency(Context context) { public static int getSplitFrequency(Context context) {
final int SPLIT_FREQUENCY_DEFAULT = context.getResources().getInteger(R.integer.split_frequency_default); final int SPLIT_FREQUENCY_DEFAULT = Integer.parseInt(context.getResources().getString(R.string.split_frequency_default));
return PreferencesUtils.getInt(context, R.string.split_frequency_key, SPLIT_FREQUENCY_DEFAULT); return PreferencesUtils.getInt(context, R.string.split_frequency_key, SPLIT_FREQUENCY_DEFAULT);
} }
public static int getRecordingDistanceInterval(Context context) { public static int getRecordingDistanceInterval(Context context) {
final int RECORDING_DISTANCE_INTERVAL = context.getResources().getInteger(R.integer.recording_distance_interval_default); final int RECORDING_DISTANCE_INTERVAL = Integer.parseInt(context.getResources().getString(R.string.recording_distance_interval_default));
return PreferencesUtils.getInt(context, R.string.recording_distance_interval_key, RECORDING_DISTANCE_INTERVAL); return PreferencesUtils.getInt(context, R.string.recording_distance_interval_key, RECORDING_DISTANCE_INTERVAL);
} }
public static int getMaxRecordingDistance(Context context) { public static int getMaxRecordingDistance(Context context) {
final int MAX_RECORDING_DISTANCE = context.getResources().getInteger(R.integer.max_recording_distance_default); final int MAX_RECORDING_DISTANCE = Integer.parseInt(context.getResources().getString(R.string.max_recording_distance_default));
return PreferencesUtils.getInt(context, R.string.max_recording_distance_key, MAX_RECORDING_DISTANCE); return PreferencesUtils.getInt(context, R.string.max_recording_distance_key, MAX_RECORDING_DISTANCE);
} }
public static int getMinRecordingInterval(Context context) { public static int getMinRecordingInterval(Context context) {
final int MIN_RECORDING_INTERVAL = context.getResources().getInteger(R.integer.min_recording_interval_default); final int MIN_RECORDING_INTERVAL = Integer.parseInt(context.getResources().getString(R.string.min_recording_interval_default));
return PreferencesUtils.getInt(context, R.string.min_recording_interval_key, MIN_RECORDING_INTERVAL); return PreferencesUtils.getInt(context, R.string.min_recording_interval_key, MIN_RECORDING_INTERVAL);
} }
public static int getRecordingGPSAccuracy(Context context) { public static int getRecordingGPSAccuracy(Context context) {
final int RECORDING_GPS_ACCURACY = context.getResources().getInteger(R.integer.recording_gps_accuracy_default); final int RECORDING_GPS_ACCURACY = Integer.parseInt(context.getResources().getString(R.string.recording_gps_accuracy_default));
return PreferencesUtils.getInt(context, R.string.recording_gps_accuracy_key, RECORDING_GPS_ACCURACY); return PreferencesUtils.getInt(context, R.string.recording_gps_accuracy_key, RECORDING_GPS_ACCURACY);
} }
+26 -28
View File
@@ -102,15 +102,15 @@
</string-array> </string-array>
<string name="auto_resume_track_timeout_key" translatable="false">autoResumeTrackTimeout</string> <string name="auto_resume_track_timeout_key" translatable="false">autoResumeTrackTimeout</string>
<integer name="auto_resume_track_timeout_default" translatable="false">10</integer> <string name="auto_resume_track_timeout_default" translatable="false">10</string>
<integer name="auto_resume_track_timeout_always" translatable="false">-1</integer> <string name="auto_resume_track_timeout_always" translatable="false">-1</string>
<integer name="auto_resume_track_timeout_never" translatable="false">0</integer> <string name="auto_resume_track_timeout_never" translatable="false">0</string>
<string-array name="auto_resume_track_timeout_values"> <string-array name="auto_resume_track_timeout_values">
<item>@integer/auto_resume_track_timeout_never</item> <item>@string/auto_resume_track_timeout_never</item>
<item>5</item> <item>5</item>
<item>@integer/auto_resume_track_timeout_default</item> <item>@string/auto_resume_track_timeout_default</item>
<item>15</item> <item>15</item>
<item>@integer/auto_resume_track_timeout_always</item> <item>@string/auto_resume_track_timeout_always</item>
</string-array> </string-array>
<string name="chart_x_axis_key" translatable="false">chartXAxis</string> <string name="chart_x_axis_key" translatable="false">chartXAxis</string>
@@ -127,14 +127,12 @@
</string-array> </string-array>
<string name="split_frequency_key" translatable="false">splitFrequency</string> <string name="split_frequency_key" translatable="false">splitFrequency</string>
<integer name="split_frequency_default" translatable="false">@integer/frequency_default <string name="split_frequency_default" translatable="false">@string/frequency_default</string>
</integer>
<string name="voice_frequency_key" translatable="false">voiceFrequency</string> <string name="voice_frequency_key" translatable="false">voiceFrequency</string>
<integer name="voice_frequency_default" translatable="false">@integer/frequency_default <string name="voice_frequency_default" translatable="false">@string/frequency_default</string>
</integer> <string name="frequency_default" translatable="false">0</string>
<integer name="frequency_default" translatable="false">0</integer>
<string-array name="frequency_values"> <string-array name="frequency_values">
<item>@integer/frequency_default</item> <item>@string/frequency_default</item>
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>5</item> <item>5</item>
@@ -151,36 +149,36 @@
</string-array> </string-array>
<string name="recording_distance_interval_key" translatable="false">recordingDistanceInterval</string> <string name="recording_distance_interval_key" translatable="false">recordingDistanceInterval</string>
<integer name="recording_distance_interval_default" translatable="false">10</integer> <string name="recording_distance_interval_default" translatable="false">10</string>
<string-array name="recording_distance_interval_values"> <string-array name="recording_distance_interval_values">
<item>1</item> <item>1</item>
<item>2</item> <item>2</item>
<item>5</item> <item>5</item>
<item>@integer/recording_distance_interval_default</item> <item>@string/recording_distance_interval_default</item>
<item>20</item> <item>20</item>
<item>50</item> <item>50</item>
<item>100</item> <item>100</item>
</string-array> </string-array>
<string name="max_recording_distance_key" translatable="false">maxRecordingDistance</string> <string name="max_recording_distance_key" translatable="false">maxRecordingDistance</string>
<integer name="max_recording_distance_default" translatable="false">200</integer> <string name="max_recording_distance_default" translatable="false">200</string>
<string-array name="max_recording_distance_values"> <string-array name="max_recording_distance_values">
<item>50</item> <item>50</item>
<item>100</item> <item>100</item>
<item>@integer/max_recording_distance_default</item> <item>@string/max_recording_distance_default</item>
<item>500</item> <item>500</item>
<item>1000</item> <item>1000</item>
<item>5000</item> <item>5000</item>
</string-array> </string-array>
<string name="min_recording_interval_key" translatable="false">minRecordingInterval</string> <string name="min_recording_interval_key" translatable="false">minRecordingInterval</string>
<integer name="min_recording_interval_default" translatable="false">0</integer> <string name="min_recording_interval_default" translatable="false">0</string>
<integer name="min_recording_interval_adapt_accuracy" translatable="false">-1</integer> <string name="min_recording_interval_adapt_accuracy" translatable="false">-1</string>
<integer name="min_recording_interval_adapt_battery_life" translatable="false">-2</integer> <string name="min_recording_interval_adapt_battery_life" translatable="false">-2</string>
<string-array name="min_recording_interval_values"> <string-array name="min_recording_interval_values">
<item>@integer/min_recording_interval_adapt_battery_life</item> <item>@string/min_recording_interval_adapt_battery_life</item>
<item>@integer/min_recording_interval_adapt_accuracy</item> <item>@string/min_recording_interval_adapt_accuracy</item>
<item>@integer/min_recording_interval_default</item> <item>@string/min_recording_interval_default</item>
<item>2</item> <item>2</item>
<item>3</item> <item>3</item>
<item>4</item> <item>4</item>
@@ -197,19 +195,19 @@
</string-array> </string-array>
<string name="recording_gps_accuracy_key" translatable="false">recordingGpsAccuracy</string> <string name="recording_gps_accuracy_key" translatable="false">recordingGpsAccuracy</string>
<integer name="recording_gps_accuracy_default" translatable="false">50</integer> <string name="recording_gps_accuracy_default" translatable="false">50</string>
<integer name="recording_gps_accuracy_excellent" translatable="false">10</integer> <string name="recording_gps_accuracy_excellent" translatable="false">10</string>
<integer name="recording_gps_accuracy_poor" translatable="false">2000</integer> <string name="recording_gps_accuracy_poor" translatable="false">2000</string>
<string-array name="recording_gps_accuracy_values"> <string-array name="recording_gps_accuracy_values">
<item>@integer/recording_gps_accuracy_excellent</item> <item>@string/recording_gps_accuracy_excellent</item>
<item>20</item> <item>20</item>
<item>30</item> <item>30</item>
<item>@integer/recording_gps_accuracy_default</item> <item>@string/recording_gps_accuracy_default</item>
<item>100</item> <item>100</item>
<item>200</item> <item>200</item>
<item>500</item> <item>500</item>
<item>1000</item> <item>1000</item>
<item>@integer/recording_gps_accuracy_poor</item> <item>@string/recording_gps_accuracy_poor</item>
</string-array> </string-array>
<string name="stats_rate_key" translatable="false">statsRate</string> <string name="stats_rate_key" translatable="false">statsRate</string>
+4 -4
View File
@@ -73,13 +73,13 @@ limitations under the License.
android:summary="@string/settings_recording_show_on_lockscreen_while_recording_summary" android:summary="@string/settings_recording_show_on_lockscreen_while_recording_summary"
android:title="@string/settings_recording_show_on_lockscreen_while_recording_title" /> android:title="@string/settings_recording_show_on_lockscreen_while_recording_title" />
<ListPreference <ListPreference
android:defaultValue="@integer/voice_frequency_default" android:defaultValue="@string/voice_frequency_default"
android:entryValues="@array/frequency_values" android:entryValues="@array/frequency_values"
android:key="@string/voice_frequency_key" android:key="@string/voice_frequency_key"
android:summary="%s" android:summary="%s"
android:title="@string/menu_voice_frequency" /> android:title="@string/menu_voice_frequency" />
<ListPreference <ListPreference
android:defaultValue="@integer/split_frequency_default" android:defaultValue="@string/split_frequency_default"
android:entryValues="@array/frequency_values" android:entryValues="@array/frequency_values"
android:key="@string/split_frequency_key" android:key="@string/split_frequency_key"
android:summary="%s" android:summary="%s"
@@ -98,13 +98,13 @@ limitations under the License.
android:summary="%s" android:summary="%s"
android:title="@string/settings_recording_min_recording_interval_title" /> android:title="@string/settings_recording_min_recording_interval_title" />
<ListPreference <ListPreference
android:defaultValue="@integer/recording_distance_interval_default" android:defaultValue="@string/recording_distance_interval_default"
android:entryValues="@array/recording_distance_interval_values" android:entryValues="@array/recording_distance_interval_values"
android:key="@string/recording_distance_interval_key" android:key="@string/recording_distance_interval_key"
android:summary="%s" android:summary="%s"
android:title="@string/settings_recording_min_recording_distance_title" /> android:title="@string/settings_recording_min_recording_distance_title" />
<ListPreference <ListPreference
android:defaultValue="@integer/max_recording_distance_default" android:defaultValue="@string/max_recording_distance_default"
android:entryValues="@array/max_recording_distance_values" android:entryValues="@array/max_recording_distance_values"
android:key="@string/max_recording_distance_key" android:key="@string/max_recording_distance_key"
android:summary="%s" android:summary="%s"