From 324b6914c3c3f5bd23f60e6a6e9aa2786af67ae8 Mon Sep 17 00:00:00 2001 From: vreixo Date: Tue, 23 Dec 2014 18:59:46 +0100 Subject: [PATCH 01/12] Fix #449 - Targeted latest API version and updated looks using new API options and removing options-button menu. --- gradle/wrapper/gradle-wrapper.properties | 12 +- opentripplanner-android/build.gradle | 8 +- .../cutr/opentripplanner/android/OTPApp.java | 8 + .../android/fragments/MainFragment.java | 426 ++++++++++-------- .../main/res/layout-land-ldpi-v14/main.xml | 371 --------------- .../src/main/res/layout-land-ldpi/main.xml | 377 ---------------- .../src/main/res/layout-land-v14/main.xml | 371 --------------- .../src/main/res/layout-land/main.xml | 377 ---------------- .../src/main/res/layout-ldpi-v14/main.xml | 413 ++++++++++------- .../src/main/res/layout-ldpi/main.xml | 413 ++++++++++------- .../src/main/res/layout-v14/main.xml | 413 ++++++++++------- .../src/main/res/layout/main.xml | 411 ++++++++++------- .../src/main/res/values-v21/styles.xml | 14 + .../src/main/res/values/colors.xml | 3 + 14 files changed, 1232 insertions(+), 2385 deletions(-) delete mode 100644 opentripplanner-android/src/main/res/layout-land-ldpi-v14/main.xml delete mode 100644 opentripplanner-android/src/main/res/layout-land-ldpi/main.xml delete mode 100644 opentripplanner-android/src/main/res/layout-land-v14/main.xml delete mode 100644 opentripplanner-android/src/main/res/layout-land/main.xml create mode 100644 opentripplanner-android/src/main/res/values-v21/styles.xml diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c2e18268..4d8a938c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Jun 09 13:40:17 EDT 2014 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip +#Mon Dec 22 22:23:08 CET 2014 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip diff --git a/opentripplanner-android/build.gradle b/opentripplanner-android/build.gradle index c0023b4e..3e535acd 100644 --- a/opentripplanner-android/build.gradle +++ b/opentripplanner-android/build.gradle @@ -19,7 +19,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:0.12.+' + classpath 'com.android.tools.build:gradle:1.0.0' } } apply plugin: 'android' @@ -37,14 +37,14 @@ repositories { } android { - compileSdkVersion 19 + compileSdkVersion 21 buildToolsVersion "19.1.0" defaultConfig { versionCode 15 versionName "2.1.2" minSdkVersion 8 - targetSdkVersion 13 + targetSdkVersion 21 } // http://stackoverflow.com/questions/20673625/gradle-0-7-0-duplicate-files-during-packaging-of-apk @@ -111,7 +111,7 @@ tasks.whenTaskAdded { theTask -> } dependencies { - compile 'com.android.support:support-v4:19.1.+' + compile 'com.android.support:support-v4:21.0.3' compile 'com.google.android.gms:play-services:3.2.65' compile 'com.fasterxml.jackson.core:jackson-core:2.4.1' compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.1' diff --git a/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/OTPApp.java b/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/OTPApp.java index f1359240..296a128d 100644 --- a/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/OTPApp.java +++ b/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/OTPApp.java @@ -181,6 +181,14 @@ public class OTPApp extends Application { public static final int COLOR_ROUTE_LINE = 0x7F0000FF; + public static final int OPTIMIZATION_QUICK = 0; + + public static final int OPTIMIZATION_SAFE = 1; + + public static final int OPTIMIZATION_TRANSFERS = 2; + + public static final int OPTIMIZATION_TRIANGLE = 3; + /** * Preference keys */ diff --git a/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/fragments/MainFragment.java b/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/fragments/MainFragment.java index 4f2e55c1..00f69cde 100644 --- a/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/fragments/MainFragment.java +++ b/opentripplanner-android/src/main/java/edu/usf/cutr/opentripplanner/android/fragments/MainFragment.java @@ -64,9 +64,6 @@ import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; @@ -82,10 +79,10 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; +import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ImageButton; -import android.widget.ListView; import android.widget.RadioButton; import android.widget.RelativeLayout; import android.widget.Spinner; @@ -226,7 +223,11 @@ public class MainFragment extends Fragment implements private ViewGroup mNavigationDrawerLeftPane; - private ListView mDdlOptimization; + private RadioButton mBtnModeQuick; + + private RadioButton mBtnModeSafe; + + private RadioButton mBtnModeTransfersOrBike; private CheckBox mBtnModeBus; @@ -254,8 +255,13 @@ public class MainFragment extends Fragment implements private ImageButton mBtnDisplayDirection; - private MenuItem mGPS; + private Button mBtnGPS; + + private Button mBtnSettings; + + private Button mBtnServerInfo; + private Button mBtnFeedback; private GoogleMap mMap; @@ -401,8 +407,6 @@ public void onAttach(Activity activity) { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - getActivity().getSupportFragmentManager() .addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() { public void onBackStackChanged() { @@ -471,8 +475,10 @@ public void onGlobalLayout() { mTbEndLocation = (AutoCompleteTextView) mainView.findViewById(R.id.tbEndLocation); mBtnSwapOriginDestination = (ImageButton) mainView.findViewById(R.id.btnSwapOriginDestination); - mDdlOptimization = (ListView) mainView - .findViewById(R.id.spinOptimization); + + mBtnModeQuick = (RadioButton) mainView.findViewById(R.id.btnModeQuick); + mBtnModeSafe = (RadioButton) mainView.findViewById(R.id.btnModeSafe); + mBtnModeTransfersOrBike = (RadioButton) mainView.findViewById(R.id.btnModeTransfersOrBike); mBtnModeWalk = (RadioButton) mainView.findViewById(R.id.btnModeWalk); mBtnModeBike = (RadioButton) mainView.findViewById(R.id.btnModeBike); @@ -510,6 +516,14 @@ public void onGlobalLayout() { mBtnHandle = (ImageButton) mainView.findViewById(R.id.btnHandle); mDrawerLayout = (DrawerLayout) mainView.findViewById(R.id.drawerLayout); + mBtnGPS = (Button) mainView.findViewById(R.id.btnGPS); + + mBtnSettings = (Button) mainView.findViewById(R.id.btnSettings); + + mBtnServerInfo = (Button) mainView.findViewById(R.id.btnServerInfo); + + mBtnFeedback = (Button) mainView.findViewById(R.id.btnFeedback); + mTbStartLocation.setImeOptions(EditorInfo.IME_ACTION_NEXT); mTbEndLocation.setImeOptions(EditorInfo.IME_ACTION_DONE); mTbEndLocation.setImeActionLabel(getResources().getString(R.string.text_box_virtual_keyboard_done_label), EditorInfo.IME_ACTION_DONE); @@ -553,8 +567,6 @@ public void onActivityCreated(Bundle savedInstanceState) { mIsAlarmTripTimeUpdateActive = false; mAlarmReceiver = new AlarmReceiver(); - mMap = retrieveMap(mMap); - mOTPApp = ((OTPApp) getActivity().getApplication()); mPrefs = PreferenceManager.getDefaultSharedPreferences( @@ -578,21 +590,6 @@ public void onActivityCreated(Bundle savedInstanceState) { setTextBoxLocation(getResources().getString(R.string.text_box_my_location), true); } - ArrayAdapter optimizationAdapter - = new ArrayAdapter( - getActivity(), - android.R.layout.simple_list_item_single_choice, - new OptimizeSpinnerItem[]{ - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_quick), - OptimizeType.QUICK), - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_safe), - OptimizeType.SAFE), - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_fewest_transfers), - OptimizeType.TRANSFERS)}); - Server selectedServer = mOTPApp.getSelectedServer(); if (selectedServer != null) { if (!mMapFailed) { @@ -605,6 +602,9 @@ public void onActivityCreated(Bundle savedInstanceState) { restoreState(savedInstanceState); + mMap = retrieveMap(mMap); + + if (!mMapFailed) { updateSelectedServer(false); } @@ -826,12 +826,20 @@ public void onDrawerSlide(View arg0, float arg1) { .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mTbEndLocation.getWindowToken(), 0); imm.hideSoftInputFromWindow(mTbStartLocation.getWindowToken(), 0); + if (isGPSEnabled()) { + mBtnGPS.setText(R.string.menu_button_disable_gps); + } else { + mBtnGPS.setText(R.string.menu_button_enable_gps); + } + + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.LEFT)){ + mDrawerLayout.closeDrawer(Gravity.LEFT); + } } @Override public void onDrawerOpened(View arg0) { - previousOptimization = ((OptimizeSpinnerItem) mDdlOptimization - .getItemAtPosition(mDdlOptimization.getCheckedItemPosition())).getOptimizeType(); + previousOptimization = getSelectedOptimization(); previousModes = getSelectedTraverseModeSet(); previousBikeTriangleMinValue = mBikeTriangleMinValue; previousBikeTriangleMaxValue = mBikeTriangleMaxValue; @@ -840,9 +848,7 @@ public void onDrawerOpened(View arg0) { @Override public void onDrawerClosed(View arg0) { TraverseModeSet newModes = getSelectedTraverseModeSet(); - OptimizeType newOptimization = ((OptimizeSpinnerItem) mDdlOptimization - .getItemAtPosition(mDdlOptimization.getCheckedItemPosition())).getOptimizeType(); - boolean sameOptimization = previousOptimization.equals(newOptimization); + boolean sameOptimization = previousOptimization.equals(getSelectedOptimization()); boolean sameTraverseMode = previousModes.getModes().equals(newModes.getModes()); boolean sameBikeTriangle = previousBikeTriangleMinValue == mBikeTriangleMinValue && previousBikeTriangleMaxValue == mBikeTriangleMaxValue; @@ -1371,28 +1377,181 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { } }); - mDdlOptimization.setOnItemClickListener(new OnItemClickListener() { - public void onItemClick(AdapterView parent, View view, - int position, long id) { - if (getSelectedTraverseModeSet().getBicycle()) { - mOptimizationValueToRestoreWhenNoBike = position; - } + mBtnModeQuick.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { SharedPreferences.Editor editor = mPrefs.edit(); - editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, position); + editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, + mOTPApp.OPTIMIZATION_QUICK); editor.commit(); - OptimizeSpinnerItem optimizeSpinnerItem = (OptimizeSpinnerItem) mDdlOptimization - .getItemAtPosition(position); - if (optimizeSpinnerItem != null) { - showBikeParameters( - optimizeSpinnerItem.getOptimizeType().equals(OptimizeType.TRIANGLE)); - } else { - Log.e(OTPApp.TAG, "Not possible to change optimization mode because selected" - + "optimization is unknown"); + } + }); + + mBtnModeSafe.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + SharedPreferences.Editor editor = mPrefs.edit(); + editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, + mOTPApp.OPTIMIZATION_SAFE); + editor.commit(); + } + }); + + mBtnModeTransfersOrBike.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + SharedPreferences.Editor editor = mPrefs.edit(); + if (mBtnModeBike.isChecked() || mBtnModeRentedBike.isChecked()){ + editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, + mOTPApp.OPTIMIZATION_TRIANGLE); + showBikeParameters(isChecked); + } + else{ + editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, + mOTPApp.OPTIMIZATION_TRANSFERS); } + editor.commit(); } }); mBikeTriangleParameters.setOnRangeSeekBarChangeListener(this); + + OnClickListener oclSettingsButton = new OnClickListener() { + @Override + public void onClick(View arg0) { + getActivity().startActivityForResult( + new Intent(getActivity(), SettingsActivity.class), + OTPApp.SETTINGS_REQUEST_CODE); + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.LEFT)){ + mDrawerLayout.closeDrawer(Gravity.LEFT); + } + } + }; + mBtnSettings.setOnClickListener(oclSettingsButton); + + OnClickListener oclFeedback = new OnClickListener() { + @Override + public void onClick(View arg0) { + Server selectedServer = mOTPApp.getSelectedServer(); + + String[] recipients = {selectedServer.getContactEmail(), + getString(R.string.feedback_email_android_developer)}; + + String uriText = "mailto:"; + for (String recipient : recipients) { + uriText += recipient + ";"; + } + + String subject = ""; + subject += getResources().getString(R.string.menu_button_feedback_subject); + Date d = Calendar.getInstance().getTime(); + subject += "[" + d.toString() + "]"; + uriText += "?subject=" + subject; + + String content = ((MyActivity) getActivity()).getCurrentRequestString(); + + try { + uriText += "&body=" + URLEncoder.encode(content, OTPApp.URL_ENCODING); + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + return; + } + + Uri uri = Uri.parse(uriText); + + Intent sendIntent = new Intent(Intent.ACTION_SENDTO); + sendIntent.setData(uri); + startActivity(Intent.createChooser(sendIntent, + getResources().getString(R.string.menu_button_feedback_send_email))); + + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.LEFT)){ + mDrawerLayout.closeDrawer(Gravity.LEFT); + } + } + }; + mBtnFeedback.setOnClickListener(oclFeedback); + + OnClickListener oclServerInfo = new OnClickListener() { + @Override + public void onClick(View arg0) { + + Server server = mOTPApp.getSelectedServer(); + + if (server == null) { + Log.w(OTPApp.TAG, + "Tried to get server info when no server was selected"); + Toast.makeText(mApplicationContext, mApplicationContext.getResources() + .getString(R.string.toast_no_server_selected_error), Toast.LENGTH_SHORT) + .show(); + return; + } + + WeakReference weakContext = new WeakReference(getActivity()); + + ServerChecker serverChecker = new ServerChecker(weakContext, mApplicationContext, + true); + serverChecker.execute(server); + + + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.LEFT)){ + mDrawerLayout.closeDrawer(Gravity.LEFT); + } + + } + }; + mBtnServerInfo.setOnClickListener(oclServerInfo); + + OnClickListener oclGPSButton = new OnClickListener() { + @Override + public void onClick(View arg0) { + + Intent myIntent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(myIntent); + + if (mDrawerLayout != null && mDrawerLayout.isDrawerOpen(Gravity.LEFT)){ + mDrawerLayout.closeDrawer(Gravity.LEFT); + } + + } + }; + mBtnGPS.setOnClickListener(oclGPSButton); + } + + private OptimizeType getSelectedOptimization(){ + OptimizeType selectedOptimization = OptimizeType.QUICK; + if (mBtnModeSafe.isChecked()){ + selectedOptimization = OptimizeType.SAFE; + } + else{ + if (mBtnModeTransfersOrBike.isChecked()){ + if (mBtnModeBike.isChecked() || mBtnModeRentedBike.isChecked()){ + selectedOptimization = OptimizeType.TRIANGLE; + } + else{ + selectedOptimization = OptimizeType.TRANSFERS; + } + } + } + return selectedOptimization; + } + + private int getSelectedOptimizationIntValue(){ + int selectedOptimization = mOTPApp.OPTIMIZATION_QUICK; + if (mBtnModeSafe.isChecked()){ + selectedOptimization = mOTPApp.OPTIMIZATION_SAFE; + } + else{ + if (mBtnModeTransfersOrBike.isChecked()){ + if (mBtnModeBike.isChecked() || mBtnModeRentedBike.isChecked()){ + selectedOptimization = mOTPApp.OPTIMIZATION_TRIANGLE; + } + else{ + selectedOptimization = mOTPApp.OPTIMIZATION_TRANSFERS; + } + } + } + return selectedOptimization; } /** @@ -1413,14 +1572,26 @@ private void restorePanelUI(){ private void restoreOptimization(){ int previousOptimization; if ((previousOptimization = - mPrefs.getInt(mOTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, -1)) != -1){ - mDdlOptimization.setItemChecked(previousOptimization, true); + mPrefs.getInt(mOTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, -1)) != -1) { + checkOptimization(previousOptimization); } else{ SharedPreferences.Editor editor = mPrefs.edit(); - editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, 0); + editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, OTPApp.OPTIMIZATION_QUICK); editor.commit(); - mDdlOptimization.setItemChecked(0, true); + checkOptimization(OTPApp.OPTIMIZATION_QUICK); + } + } + + private void checkOptimization(int intOptimizationValue){ + if (intOptimizationValue == OTPApp.OPTIMIZATION_QUICK){ + mBtnModeQuick.setChecked(true); + } + else if (intOptimizationValue == OTPApp.OPTIMIZATION_SAFE){ + mBtnModeSafe.setChecked(true); + } + else { + mBtnModeTransfersOrBike.setChecked(true); } } @@ -1804,23 +1975,12 @@ private void requestTrip() { request.setArriveBy(mArriveBy); - OptimizeSpinnerItem optimizeSpinnerItem = (OptimizeSpinnerItem) mDdlOptimization - .getItemAtPosition(mDdlOptimization.getCheckedItemPosition()); - if (optimizeSpinnerItem == null) { - optimizeSpinnerItem = (OptimizeSpinnerItem) mDdlOptimization.getItemAtPosition(0); - } - - if (optimizeSpinnerItem != null) { - request.setOptimize(optimizeSpinnerItem.getOptimizeType()); - if (optimizeSpinnerItem.getOptimizeType().equals(OptimizeType.TRIANGLE)) { - request.setTriangleTimeFactor(mBikeTriangleMinValue); - request.setTriangleSlopeFactor(mBikeTriangleMaxValue - mBikeTriangleMinValue); - request.setTriangleSafetyFactor(1 - mBikeTriangleMaxValue); - } - } else { - Log.e(OTPApp.TAG, - "Optimization not found, not possible to add it to the request so, most" - + "likely results will be incorrect"); + OptimizeType selectedOptimization = getSelectedOptimization(); + request.setOptimize(selectedOptimization); + if (selectedOptimization.equals(OptimizeType.TRIANGLE)) { + request.setTriangleTimeFactor(mBikeTriangleMinValue); + request.setTriangleSlopeFactor(mBikeTriangleMaxValue - mBikeTriangleMinValue); + request.setTriangleSafetyFactor(1 - mBikeTriangleMaxValue); } request.setModes(getSelectedTraverseModeSet()); @@ -1937,49 +2097,22 @@ private void showBikeParameters(boolean enable) { * when bike mode is abandoned */ private void setBikeOptimizationAdapter(boolean enable, boolean updateOptimizationValue) { - ArrayAdapter optimizationAdapter; int newOptimizationValue; if (updateOptimizationValue){ if (enable){ - mOptimizationValueToRestoreWhenNoBike = mDdlOptimization.getCheckedItemPosition(); + mOptimizationValueToRestoreWhenNoBike = getSelectedOptimizationIntValue(); } } if (enable) { - optimizationAdapter = new ArrayAdapter( - getActivity(), - android.R.layout.simple_list_item_single_choice, - new OptimizeSpinnerItem[]{ - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_quick), - OptimizeType.QUICK), - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_safe), - OptimizeType.SAFE), - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_bike_triangle), - OptimizeType.TRIANGLE)}); - mDdlOptimization.setAdapter(optimizationAdapter); + mBtnModeTransfersOrBike.setText(R.string.left_panel_optimization_bike_triangle); } else { - optimizationAdapter = new ArrayAdapter( - getActivity(), - android.R.layout.simple_list_item_single_choice, - new OptimizeSpinnerItem[]{ - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_quick), - OptimizeType.QUICK), - new OptimizeSpinnerItem( - getResources().getString(R.string.left_panel_optimization_safe), - OptimizeType.SAFE), - new OptimizeSpinnerItem(getResources() - .getString(R.string.left_panel_optimization_fewest_transfers), - OptimizeType.TRANSFERS)}); - mDdlOptimization.setAdapter(optimizationAdapter); + mBtnModeTransfersOrBike.setText(R.string.left_panel_optimization_fewest_transfers); } if (updateOptimizationValue){ if (enable){ - newOptimizationValue = 2; + newOptimizationValue = OTPApp.OPTIMIZATION_TRIANGLE; } else{ if (mOptimizationValueToRestoreWhenNoBike != -1){ @@ -1989,10 +2122,10 @@ else if (mPrefs.getInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, -1) != -1){ newOptimizationValue = mPrefs.getInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, -1); } else{ - newOptimizationValue = 0; + newOptimizationValue = OTPApp.OPTIMIZATION_QUICK; } } - mDdlOptimization.setItemChecked(newOptimizationValue, true); + checkOptimization(newOptimizationValue); SharedPreferences.Editor editor = mPrefs.edit(); editor.putInt(OTPApp.PREFERENCE_KEY_LAST_OPTIMIZATION, newOptimizationValue); editor.commit(); @@ -2718,97 +2851,6 @@ public void updateSelectedServer(boolean updateUI) { } } - @Override - public void onCreateOptionsMenu(Menu pMenu, MenuInflater inflater) { - super.onCreateOptionsMenu(pMenu, inflater); - inflater.inflate(R.menu.menu, pMenu); - mGPS = pMenu.getItem(0); - } - - @Override - public void onPrepareOptionsMenu(final Menu pMenu) { - if (isGPSEnabled()) { - mGPS.setTitle(R.string.menu_button_disable_gps); - } else { - mGPS.setTitle(R.string.menu_button_enable_gps); - } - super.onPrepareOptionsMenu(pMenu); - } - - @Override - public boolean onOptionsItemSelected(final MenuItem pItem) { - OTPApp app = ((OTPApp) getActivity().getApplication()); - switch (pItem.getItemId()) { - case R.id.gps_settings: - Intent myIntent = new Intent( - Settings.ACTION_LOCATION_SOURCE_SETTINGS); - startActivity(myIntent); - break; - case R.id.settings: - getActivity().startActivityForResult( - new Intent(getActivity(), SettingsActivity.class), - OTPApp.SETTINGS_REQUEST_CODE); - break; - case R.id.feedback: - Server selectedServer = app.getSelectedServer(); - - String[] recipients = {selectedServer.getContactEmail(), - getString(R.string.feedback_email_android_developer)}; - - String uriText = "mailto:"; - for (String recipient : recipients) { - uriText += recipient + ";"; - } - - String subject = ""; - subject += getResources().getString(R.string.menu_button_feedback_subject); - Date d = Calendar.getInstance().getTime(); - subject += "[" + d.toString() + "]"; - uriText += "?subject=" + subject; - - String content = ((MyActivity) getActivity()).getCurrentRequestString(); - - try { - uriText += "&body=" + URLEncoder.encode(content, OTPApp.URL_ENCODING); - } catch (UnsupportedEncodingException e1) { - e1.printStackTrace(); - return false; - } - - Uri uri = Uri.parse(uriText); - - Intent sendIntent = new Intent(Intent.ACTION_SENDTO); - sendIntent.setData(uri); - startActivity(Intent.createChooser(sendIntent, - getResources().getString(R.string.menu_button_feedback_send_email))); - - break; - case R.id.server_info: - Server server = app.getSelectedServer(); - - if (server == null) { - Log.w(OTPApp.TAG, - "Tried to get server info when no server was selected"); - Toast.makeText(mApplicationContext, mApplicationContext.getResources() - .getString(R.string.toast_no_server_selected_error), Toast.LENGTH_SHORT) - .show(); - break; - } - - WeakReference weakContext = new WeakReference(getActivity()); - - ServerChecker serverChecker = new ServerChecker(weakContext, mApplicationContext, - true); - serverChecker.execute(server); - - break; - default: - break; - } - - return false; - } - private Boolean isGPSEnabled() { return sLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); } diff --git a/opentripplanner-android/src/main/res/layout-land-ldpi-v14/main.xml b/opentripplanner-android/src/main/res/layout-land-ldpi-v14/main.xml deleted file mode 100644 index 41241b4d..00000000 --- a/opentripplanner-android/src/main/res/layout-land-ldpi-v14/main.xml +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - android:visibility="gone"> - - - android:padding="4dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/opentripplanner-android/src/main/res/layout-land-ldpi/main.xml b/opentripplanner-android/src/main/res/layout-land-ldpi/main.xml deleted file mode 100644 index e13ec618..00000000 --- a/opentripplanner-android/src/main/res/layout-land-ldpi/main.xml +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - android:visibility="gone"> - - - android:padding="4dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/opentripplanner-android/src/main/res/layout-land-v14/main.xml b/opentripplanner-android/src/main/res/layout-land-v14/main.xml deleted file mode 100644 index 0689befd..00000000 --- a/opentripplanner-android/src/main/res/layout-land-v14/main.xml +++ /dev/null @@ -1,371 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - android:padding="4dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/opentripplanner-android/src/main/res/layout-land/main.xml b/opentripplanner-android/src/main/res/layout-land/main.xml deleted file mode 100644 index 6381afb3..00000000 --- a/opentripplanner-android/src/main/res/layout-land/main.xml +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - android:padding="4dp"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/opentripplanner-android/src/main/res/layout-ldpi-v14/main.xml b/opentripplanner-android/src/main/res/layout-ldpi-v14/main.xml index 36cd3cb3..676c0199 100644 --- a/opentripplanner-android/src/main/res/layout-ldpi-v14/main.xml +++ b/opentripplanner-android/src/main/res/layout-ldpi-v14/main.xml @@ -58,7 +58,7 @@ - - - - - - - - - - - - - - android:padding="4dp"> - - - - - - - - - - - + android:scrollbarStyle="outsideOverlay"> - - + android:orientation="vertical" + android:padding="8dp"> - - - + + + + + + + + + + + + + + + + + + android:orientation="vertical" + android:layout_below="@id/layoutOptimization" + android:paddingBottom="8dp"> - - - + + android:padding="4dp"> + - + + + + + + + + + - + + + + + + + + + + + - + - + - + - + - + - - - + + + + + + + + + + + + + + + + + + + + + android:orientation="vertical" + android:divider="?android:attr/dividerHorizontal" + android:showDividers="middle"> - - + android:layout_below="@id/bikeParametersLayout" + android:text="@string/menu_button_settings" + android:background="?android:attr/selectableItemBackground" + android:padding="16dp"/> + +