Fix parking dialog UI
This commit is contained in:
parent
fb51eb6060
commit
2c2d4fcc30
3 changed files with 38 additions and 92 deletions
|
@ -1,58 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingTop="10dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/tableRow1"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageButton android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:id="@+id/parking_no_lim_button"
|
||||
android:gravity="center_horizontal"
|
||||
android:background="@drawable/list_poi_parking_pos_no_limit_menu"
|
||||
android:contentDescription="@string/osmand_parking_time_no_limit"/>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:id="@+id/parking_lim_text"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/osmand_parking_no_lim_text"/>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout android:id="@+id/tableRow2"
|
||||
android:orientation="vertical"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<ImageButton android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/parking_lim_button"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:gravity="center_horizontal"
|
||||
android:background="@drawable/list_poi_parking_pos_limit_menu"
|
||||
android:contentDescription="@string/osmand_parking_time_limit"/>
|
||||
|
||||
<TextView android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:id="@+id/parking_no_lim_text"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/osmand_parking_lim_text"/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
|
|
@ -9,6 +9,7 @@
|
|||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||
-->
|
||||
<string name="parking_options">Parking options</string>
|
||||
<string name="full_version_thanks">Thank you for purchasing full version of OsmAnd!</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_hills_name">Hills</string>
|
||||
<string name="routing_attr_relief_smoothness_factor_plains_name">Plains</string>
|
||||
|
|
|
@ -240,42 +240,45 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
|||
*/
|
||||
public void showAddParkingDialog(final MapActivity mapActivity, final double latitude, final double longitude) {
|
||||
final boolean wasEventPreviouslyAdded = isParkingEventAdded();
|
||||
final View addParking = mapActivity.getLayoutInflater().inflate(R.layout.parking_set_type, null);
|
||||
final Dialog choose = new Dialog(mapActivity);
|
||||
choose.setContentView(addParking);
|
||||
choose.setCancelable(true);
|
||||
choose.setTitle(mapActivity.getString(R.string.osmand_parking_choose_type));
|
||||
|
||||
ImageButton limitButton = (ImageButton) addParking.findViewById(R.id.parking_lim_button);
|
||||
limitButton.setOnClickListener(new View.OnClickListener() {
|
||||
|
||||
final ContextMenuAdapter menuAdapter = new ContextMenuAdapter();
|
||||
ContextMenuItem.ItemBuilder itemBuilder = new ContextMenuItem.ItemBuilder();
|
||||
|
||||
menuAdapter.addItem(itemBuilder.setTitleId(R.string.osmand_parking_no_lim_text, app)
|
||||
.setIcon(R.drawable.ic_action_time_start).setTag(1).createItem());
|
||||
menuAdapter.addItem(itemBuilder.setTitleId(R.string.osmand_parking_time_limit, app)
|
||||
.setIcon(R.drawable.ic_action_time_span).setTag(2).createItem());
|
||||
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(mapActivity);
|
||||
boolean light = app.getSettings().isLightContent() && !app.getDaynightHelper().isNightMode();
|
||||
final ArrayAdapter<ContextMenuItem> listAdapter = menuAdapter.createListAdapter(mapActivity, light);
|
||||
builder.setTitle(R.string.parking_options);
|
||||
builder.setAdapter(listAdapter, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (wasEventPreviouslyAdded) {
|
||||
showDeleteEventWarning(mapActivity);
|
||||
public void onClick(final DialogInterface dialog, int which) {
|
||||
ContextMenuItem item = menuAdapter.getItem(which);
|
||||
int index = item.getTag();
|
||||
if (index == 1) {
|
||||
dialog.dismiss();
|
||||
if (wasEventPreviouslyAdded) {
|
||||
showDeleteEventWarning(mapActivity);
|
||||
}
|
||||
addOrRemoveParkingEvent(false);
|
||||
setParkingPosition(mapActivity, latitude, longitude, false);
|
||||
showContextMenuIfNeeded(mapActivity);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
} else if (index == 2) {
|
||||
if (wasEventPreviouslyAdded) {
|
||||
showDeleteEventWarning(mapActivity);
|
||||
}
|
||||
setParkingPosition(mapActivity, latitude, longitude, true);
|
||||
showSetTimeLimitDialog(mapActivity, dialog);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
}
|
||||
setParkingPosition(mapActivity, latitude, longitude, true);
|
||||
showSetTimeLimitDialog(mapActivity, choose);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
}
|
||||
});
|
||||
|
||||
ImageButton noLimitButton = (ImageButton) addParking.findViewById(R.id.parking_no_lim_button);
|
||||
noLimitButton.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
choose.dismiss();
|
||||
if (wasEventPreviouslyAdded) {
|
||||
showDeleteEventWarning(mapActivity);
|
||||
}
|
||||
addOrRemoveParkingEvent(false);
|
||||
setParkingPosition(mapActivity, latitude, longitude, false);
|
||||
showContextMenuIfNeeded(mapActivity);
|
||||
mapActivity.getMapView().refreshMap();
|
||||
}
|
||||
});
|
||||
|
||||
choose.show();
|
||||
|
||||
builder.setNegativeButton(R.string.shared_string_cancel, null);
|
||||
builder.create().show();
|
||||
}
|
||||
|
||||
private void showContextMenuIfNeeded(final MapActivity mapActivity) {
|
||||
|
@ -315,9 +318,9 @@ public class ParkingPositionPlugin extends OsmandPlugin {
|
|||
* The dialog has option to add a notification to Calendar app.
|
||||
* Anyway the time-limit can be seen from parking point description.
|
||||
* @param mapActivity
|
||||
* @param choose
|
||||
* @param choose
|
||||
*/
|
||||
private void showSetTimeLimitDialog(final MapActivity mapActivity, final Dialog choose) {
|
||||
private void showSetTimeLimitDialog(final MapActivity mapActivity, final DialogInterface choose) {
|
||||
final View setTimeParking = mapActivity.getLayoutInflater().inflate(R.layout.parking_set_time_limit, null);
|
||||
AlertDialog.Builder setTime = new AlertDialog.Builder(mapActivity);
|
||||
setTime.setView(setTimeParking);
|
||||
|
|
Loading…
Reference in a new issue