diff --git a/mobile/com.sap.sailing.buoy.positioning/AndroidManifest.xml b/mobile/com.sap.sailing.buoy.positioning/AndroidManifest.xml index 11ae6a6cad8..c2cbd42d7d0 100644 --- a/mobile/com.sap.sailing.buoy.positioning/AndroidManifest.xml +++ b/mobile/com.sap.sailing.buoy.positioning/AndroidManifest.xml @@ -1,25 +1,30 @@ + + package="com.sap.sailing.android.buoy.positioning.app" + android:versionCode="1" + android:versionName="1.0" > + android:targetSdkVersion="22" /> - - - - - - - - + + + + + + + + + android:required="true" /> + + + android:theme="@style/AppTheme" > + android:value="@integer/google_play_services_version" /> - + android:value="AIzaSyDH-Dwy5yFlyBa2-VUgiZ3qGGUO8M_0MPY" /> + android:screenOrientation="portrait" > - + - - + + - + - - + + + android:scheme="http" /> + android:scheme="http" /> - - + android:screenOrientation="portrait" > - - + android:screenOrientation="portrait" > + android:exported="false" > - - + + - + android:exported="false" /> + android:exported="false" /> + + + - \ No newline at end of file + diff --git a/mobile/com.sap.sailing.buoy.positioning/res/menu/about_menu.xml b/mobile/com.sap.sailing.buoy.positioning/res/menu/about_menu.xml index bcf90e00c81..a6a88ae633b 100644 --- a/mobile/com.sap.sailing.buoy.positioning/res/menu/about_menu.xml +++ b/mobile/com.sap.sailing.buoy.positioning/res/menu/about_menu.xml @@ -3,4 +3,7 @@ + \ No newline at end of file diff --git a/mobile/com.sap.sailing.buoy.positioning/res/menu/regatta_menu.xml b/mobile/com.sap.sailing.buoy.positioning/res/menu/regatta_menu.xml index 546f77e7130..8b762d928de 100644 --- a/mobile/com.sap.sailing.buoy.positioning/res/menu/regatta_menu.xml +++ b/mobile/com.sap.sailing.buoy.positioning/res/menu/regatta_menu.xml @@ -4,6 +4,10 @@ android:id="@+id/refresh" android:title="@string/options_refresh"/> + + diff --git a/mobile/com.sap.sailing.buoy.positioning/res/values-de/strings.xml b/mobile/com.sap.sailing.buoy.positioning/res/values-de/strings.xml index 9b4eb7173ad..95a473a358c 100644 --- a/mobile/com.sap.sailing.buoy.positioning/res/values-de/strings.xml +++ b/mobile/com.sap.sailing.buoy.positioning/res/values-de/strings.xml @@ -12,5 +12,9 @@ Genauigkeit Die Position wurde gesetzt Keine Information + Einstellungen + + Server + Server Synchronisations Intervall in Sekunden \ No newline at end of file diff --git a/mobile/com.sap.sailing.buoy.positioning/res/values/preferences.xml b/mobile/com.sap.sailing.buoy.positioning/res/values/preferences.xml index fe8f7ed63a5..b8c4dd7eda9 100644 --- a/mobile/com.sap.sailing.buoy.positioning/res/values/preferences.xml +++ b/mobile/com.sap.sailing.buoy.positioning/res/values/preferences.xml @@ -1,6 +1,6 @@ - messageResendIntervalMillis - 120000 + data_refresh_interval_millis + 120 check_in_url \ No newline at end of file diff --git a/mobile/com.sap.sailing.buoy.positioning/res/values/strings.xml b/mobile/com.sap.sailing.buoy.positioning/res/values/strings.xml index 4497ba142c9..c629ab94efb 100644 --- a/mobile/com.sap.sailing.buoy.positioning/res/values/strings.xml +++ b/mobile/com.sap.sailing.buoy.positioning/res/values/strings.xml @@ -16,5 +16,13 @@ Accuracy The position has been set No information + Settings + + Hello world! + Settings + Settings + + Server + Interval of server synchronisation in seconds \ No newline at end of file diff --git a/mobile/com.sap.sailing.buoy.positioning/res/xml/preference_general b/mobile/com.sap.sailing.buoy.positioning/res/xml/preference_general new file mode 100644 index 00000000000..5254455e766 --- /dev/null +++ b/mobile/com.sap.sailing.buoy.positioning/res/xml/preference_general @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/service/MarkerService.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/service/MarkerService.java index dd9c22febfb..1714fec41e1 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/service/MarkerService.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/service/MarkerService.java @@ -87,7 +87,7 @@ public class MarkerService extends Service implements CheckinManager.DataChange while (running) { long timeDiff = Calendar.getInstance().getTimeInMillis() - lastCheck; - if(timeDiff > preferences.getDataRefreshInterval()) { + if(timeDiff > preferences.getDataRefreshInterval() * 1000) { manager.callServerAndGenerateCheckinData(); lastCheck = Calendar.getInstance().getTimeInMillis(); } diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/RegattaActivity.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/RegattaActivity.java index a7f6b8bd3b4..000cf1ca23d 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/RegattaActivity.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/RegattaActivity.java @@ -134,6 +134,9 @@ public class RegattaActivity extends AbstractRegattaActivity { AboutDialog aboutDialog = new AboutDialog(this); aboutDialog.show(); return true; + case R.id.settings: + startActivity(new Intent(this, SettingActivity.class)); + return true; default: return super.onOptionsItemSelected(item); } diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/SettingActivity.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/SettingActivity.java new file mode 100644 index 00000000000..162c337d66d --- /dev/null +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/SettingActivity.java @@ -0,0 +1,43 @@ +package com.sap.sailing.android.buoy.positioning.app.ui.activities; + +import android.os.Bundle; +import android.support.v7.app.ActionBar; +import android.support.v7.widget.Toolbar; +import android.view.View; +import com.sap.sailing.android.buoy.positioning.app.R; +import com.sap.sailing.android.buoy.positioning.app.ui.fragments.GeneralPreferenceFragment; + +public class SettingActivity extends BaseActivity { + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.pref_with_actionbar); + + setupToolbar(); + + getFragmentManager().beginTransaction().replace(R.id.content_frame, new GeneralPreferenceFragment()).commit(); + } + + private void setupToolbar() { + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + toolbar.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); + toolbar.setNavigationOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + ActionBar supportActionBar = getSupportActionBar(); + if (supportActionBar != null) { + supportActionBar.setDisplayHomeAsUpEnabled(true); + supportActionBar.setHomeButtonEnabled(true); + supportActionBar.setTitle(R.string.settings); + toolbar.setNavigationIcon(R.drawable.sap_logo_64_sq); + toolbar.setPadding(20, 0, 0, 0); + } + } + +} diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java index 7b490afea71..c2155d03a0d 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/activities/StartActivity.java @@ -43,6 +43,9 @@ public class StartActivity extends AbstractStartActivity { AboutDialog aboutDialog = new AboutDialog(this); aboutDialog.show(); return true; + case R.id.settings: + startActivity(new Intent(this, SettingActivity.class)); + return true; default: return super.onOptionsItemSelected(item); } diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/GeneralPreferenceFragment.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/GeneralPreferenceFragment.java new file mode 100644 index 00000000000..39603b904b9 --- /dev/null +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/ui/fragments/GeneralPreferenceFragment.java @@ -0,0 +1,36 @@ +package com.sap.sailing.android.buoy.positioning.app.ui.fragments; + +import android.os.Bundle; +import android.preference.EditTextPreference; +import android.preference.Preference; +import com.sap.sailing.android.buoy.positioning.app.R; +import com.sap.sailing.android.buoy.positioning.app.util.AppPreferences; +import com.sap.sailing.android.shared.ui.fragments.preference.BasePreferenceFragment; + +public class GeneralPreferenceFragment extends BasePreferenceFragment { + + private EditTextPreference prefServerSync; + private AppPreferences prefs; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + prefs = new AppPreferences(getActivity()); + addPreferencesFromResource(R.xml.preference_general); + prefServerSync = findPreference(R.string.preference_data_refresh_interval_seconds_key); + prefServerSync.setSummary("" + prefs.getDataRefreshInterval()); + prefServerSync.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + preference.setSummary("" + newValue); + return true; + } + }); + } + + @Override + public void onPause() { + super.onPause(); + prefs.setDataRefreshInterval(Long.parseLong(prefServerSync.getText())); + } +} diff --git a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/AppPreferences.java b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/AppPreferences.java index 1a1ee789dae..01a439c3028 100644 --- a/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/AppPreferences.java +++ b/mobile/com.sap.sailing.buoy.positioning/src/com/sap/sailing/android/buoy/positioning/app/util/AppPreferences.java @@ -28,13 +28,13 @@ public class AppPreferences extends BaseAppPreferences { } public void setDataRefreshInterval(long interval){ - preferences.edit().putLong(context.getString(R.string.preference_data_refresh_interval_millis_key), interval) + preferences.edit().putLong(context.getString(R.string.preference_data_refresh_interval_seconds_key), interval) .apply(); } public long getDataRefreshInterval(){ - return preferences.getLong(context.getString(R.string.preference_data_refresh_interval_millis_key), - context.getResources().getInteger(R.integer.preference_data_refresh_interval_millis_default)); + return preferences.getLong(context.getString(R.string.preference_data_refresh_interval_seconds_key), + context.getResources().getInteger(R.integer.preference_data_refresh_interval_seconds_default)); } public static boolean getPrintDatabaseOperationDebugMessages() {