forked from organicmaps/organicmaps
[android] Saved timetable correctly, fixed UI bugs.
This commit is contained in:
parent
62043fda34
commit
90a0b1f614
10 changed files with 64 additions and 55 deletions
|
@ -6,6 +6,6 @@
|
|||
android:color="@android:color/white"
|
||||
android:state_enabled="true"/>
|
||||
|
||||
<!--<item-->
|
||||
<!--android:color="@color/editor_complement_text_disabled"/>-->
|
||||
<item
|
||||
android:color="@color/text_editor_add_disabled"/>
|
||||
</selector>
|
|
@ -52,33 +52,23 @@
|
|||
android:id="@+id/tv__examples_title"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/base_block_size"
|
||||
android:layout_toLeftOf="@+id/iv__indicator"
|
||||
android:layout_toStartOf="@+id/iv__indicator"
|
||||
android:background="@null"
|
||||
android:background="?clickableBackground"
|
||||
android:drawableEnd="@drawable/ic_expand_more"
|
||||
android:drawableLeft="@drawable/ic_type_text"
|
||||
android:drawablePadding="@dimen/margin_base"
|
||||
android:drawableRight="@drawable/ic_expand_more"
|
||||
android:drawableStart="@drawable/ic_type_text"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="@dimen/margin_base"
|
||||
android:text="Example values"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"/>
|
||||
<!--android:textColor="@color/base_blue_light"/>-->
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv__indicator"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/base_block_size"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:gravity="center_vertical"
|
||||
android:scaleType="center"
|
||||
tools:src="@drawable/ic_expand_more"/>
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"
|
||||
android:textColor="@color/base_accent"/>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:layout_below="@id/tv__examples_title"/>
|
||||
<!--android:background="@color/divider_standard"/>-->
|
||||
android:layout_below="@id/tv__examples_title"
|
||||
android:background="@color/divider"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv__examples"
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
android:layout_height="36dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/timetable_add_complement"
|
||||
android:enabled="false"
|
||||
android:text="@string/editor_time_add"
|
||||
android:textAllCaps="true"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3.Light"
|
||||
|
|
|
@ -91,7 +91,7 @@
|
|||
|
||||
<!-- Editor -->
|
||||
<color name="bg_editor_add_enabled">@color/base_accent</color>
|
||||
<color name="bg_editor_add_disabled">#FFF4F4F4</color>
|
||||
<color name="bg_editor_add_disabled">#0C000000</color>
|
||||
<color name="bg_editor_login_fb">#FF4861A3</color>
|
||||
<color name="bg_editor_login_fb_pressed">#FF405792</color>
|
||||
<color name="bg_editor_light">#FFF2F6F6</color>
|
||||
|
@ -100,4 +100,6 @@
|
|||
<color name="bg_editor_light_night">#FFF2F6F6</color>
|
||||
<color name="bg_editor_light_night_pressed">#FFDCD9D9</color>
|
||||
|
||||
<color name="text_editor_add_disabled">#1A000000</color>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -5,7 +5,6 @@ import android.os.Parcel;
|
|||
import android.os.Parcelable;
|
||||
import android.support.annotation.IntDef;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
|
@ -132,10 +131,11 @@ public class MapObject implements Parcelable
|
|||
return mIsDroppedPin;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@NonNull
|
||||
public String getMetadata(Metadata.MetadataType type)
|
||||
{
|
||||
return mMetadata.getMetadata(type);
|
||||
final String res = mMetadata.getMetadata(type);
|
||||
return res == null ? "" : res;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -208,6 +208,11 @@ public class MapObject implements Parcelable
|
|||
mTypeName = typeName;
|
||||
}
|
||||
|
||||
public void addMetadata(Metadata.MetadataType type, String value)
|
||||
{
|
||||
mMetadata.addMetadata(type.toInt(), value);
|
||||
}
|
||||
|
||||
public void addMetadata(int type, String value)
|
||||
{
|
||||
mMetadata.addMetadata(type, value);
|
||||
|
|
|
@ -6,7 +6,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.mapswithme.maps.R;
|
||||
import com.mapswithme.maps.base.BaseMwmFragment;
|
||||
|
@ -19,9 +19,9 @@ public class AdvancedTimetableFragment extends BaseMwmFragment
|
|||
{
|
||||
private boolean mIsExampleShown;
|
||||
private EditText mInput;
|
||||
private View mExample;
|
||||
private ImageView mIndicator;
|
||||
private TextView mExample;
|
||||
private Timetable[] mInitTimetables;
|
||||
private TextView mExamplesTitle;
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
|
@ -50,8 +50,8 @@ public class AdvancedTimetableFragment extends BaseMwmFragment
|
|||
{
|
||||
view.findViewById(R.id.examples).setOnClickListener(this);
|
||||
mInput = (EditText) view.findViewById(R.id.et__timetable);
|
||||
mExample = view.findViewById(R.id.tv__examples);
|
||||
mIndicator = (ImageView) view.findViewById(R.id.iv__indicator);
|
||||
mExample = (TextView) view.findViewById(R.id.tv__examples);
|
||||
mExamplesTitle = (TextView) view.findViewById(R.id.tv__examples_title);
|
||||
}
|
||||
|
||||
private void showExample(boolean show)
|
||||
|
@ -60,13 +60,12 @@ public class AdvancedTimetableFragment extends BaseMwmFragment
|
|||
if (mIsExampleShown)
|
||||
{
|
||||
UiUtils.show(mExample);
|
||||
// TODO yunikkk animate indicator
|
||||
mIndicator.setImageResource(R.drawable.ic_expand_less);
|
||||
mExamplesTitle.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_type_text, 0, R.drawable.ic_expand_less, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
UiUtils.hide(mExample);
|
||||
mIndicator.setImageResource(R.drawable.ic_expand_more);
|
||||
mExamplesTitle.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_type_text, 0, R.drawable.ic_expand_more, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@ import android.support.annotation.WorkerThread;
|
|||
import com.mapswithme.maps.MwmApplication;
|
||||
import com.mapswithme.maps.background.AppBackgroundTracker;
|
||||
import com.mapswithme.maps.background.WorkerService;
|
||||
import com.mapswithme.maps.bookmarks.data.Metadata;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -49,6 +50,11 @@ public final class Editor
|
|||
@NonNull
|
||||
public static native int[] nativeGetEditableMetadata();
|
||||
|
||||
public static void setMetadata(Metadata.MetadataType type, String value)
|
||||
{
|
||||
nativeSetMetadata(type.toInt(), value);
|
||||
}
|
||||
|
||||
public static native void nativeSetMetadata(int type, String value);
|
||||
|
||||
public static native void nativeEditFeature(String street, String houseNumber);
|
||||
|
|
|
@ -26,9 +26,8 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
private EditText mEtName;
|
||||
private TextView mTvLocalizedNames;
|
||||
private TextView mTvStreet;
|
||||
private View mOpeningHours;
|
||||
private View mOpeningHoursBlock;
|
||||
private View mEditOpeningHours;
|
||||
private TextView mTvOpeningHours;
|
||||
private EditText mEtHouseNumber;
|
||||
private View mPhoneBlock;
|
||||
private EditText mEtPhone;
|
||||
|
@ -41,7 +40,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
private View mWifiBlock;
|
||||
private SwitchCompat mSwWifi;
|
||||
private TextView mEmptyOpeningHours;
|
||||
private TextView mTvSchedule;
|
||||
private TextView mOpeningHours;
|
||||
|
||||
protected EditorHostFragment mParent;
|
||||
|
||||
|
@ -120,10 +119,15 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
return mSwWifi.isChecked() ? "Yes" : "";
|
||||
}
|
||||
|
||||
public String getOpeningHours()
|
||||
{
|
||||
return mOpeningHours.getText().toString();
|
||||
}
|
||||
|
||||
public Metadata getMetadata()
|
||||
{
|
||||
final Metadata res = new Metadata();
|
||||
res.addMetadata(Metadata.MetadataType.FMD_OPEN_HOURS, mTvOpeningHours.getText().toString());
|
||||
res.addMetadata(Metadata.MetadataType.FMD_OPEN_HOURS, mOpeningHours.getText().toString());
|
||||
res.addMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER, mEtPhone.getText().toString());
|
||||
res.addMetadata(Metadata.MetadataType.FMD_WEBSITE, mEtWebsite.getText().toString());
|
||||
res.addMetadata(Metadata.MetadataType.FMD_EMAIL, mEtEmail.getText().toString());
|
||||
|
@ -145,7 +149,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
}
|
||||
|
||||
UiUtils.show(mMetadataBlock);
|
||||
UiUtils.hide(mOpeningHours, mEditOpeningHours, mPhoneBlock, mWebBlock, mEmailBlock, mCuisineBlock, mWifiBlock);
|
||||
UiUtils.hide(mOpeningHoursBlock, mEditOpeningHours, mPhoneBlock, mWebBlock, mEmailBlock, mCuisineBlock, mWifiBlock);
|
||||
boolean anyEditableMeta = false;
|
||||
for (int type : editableMeta)
|
||||
{
|
||||
|
@ -153,7 +157,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
{
|
||||
case FMD_OPEN_HOURS:
|
||||
anyEditableMeta = true;
|
||||
UiUtils.show(mOpeningHours, mEditOpeningHours);
|
||||
UiUtils.show(mOpeningHoursBlock, mEditOpeningHours);
|
||||
break;
|
||||
case FMD_PHONE_NUMBER:
|
||||
anyEditableMeta = true;
|
||||
|
@ -187,12 +191,12 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
if (TextUtils.isEmpty(openingTime))
|
||||
{
|
||||
UiUtils.show(mEmptyOpeningHours);
|
||||
UiUtils.hide(mTvSchedule);
|
||||
UiUtils.hide(mOpeningHours);
|
||||
}
|
||||
else
|
||||
{
|
||||
UiUtils.hide(mEmptyOpeningHours);
|
||||
UiUtils.setTextAndShow(mTvSchedule, formatOpeningHours(openingTime));
|
||||
UiUtils.setTextAndShow(mOpeningHours, formatOpeningHours(openingTime));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -223,11 +227,11 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
|
|||
mWifiBlock = view.findViewById(R.id.block_wifi);
|
||||
mSwWifi = (SwitchCompat) view.findViewById(R.id.sw__wifi);
|
||||
mWifiBlock.setOnClickListener(this);
|
||||
mOpeningHours = view.findViewById(R.id.opening_hours);
|
||||
mOpeningHoursBlock = view.findViewById(R.id.opening_hours);
|
||||
mEditOpeningHours = view.findViewById(R.id.tv__edit_oh);
|
||||
mEditOpeningHours.setOnClickListener(this);
|
||||
mEmptyOpeningHours = (TextView) view.findViewById(R.id.et__empty_schedule);
|
||||
mTvSchedule = (TextView) view.findViewById(R.id.tv__place_schedule);
|
||||
mOpeningHours = (TextView) view.findViewById(R.id.tv__place_schedule);
|
||||
}
|
||||
|
||||
private EditText findInput(View view)
|
||||
|
|
|
@ -133,12 +133,12 @@ public class EditorHostFragment extends BaseMwmToolbarFragment
|
|||
protected void saveEditedPoi()
|
||||
{
|
||||
final EditorFragment editorFragment = (EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER.toInt(), editorFragment.getPhone());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_WEBSITE.toInt(), editorFragment.getWebsite());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_EMAIL.toInt(), editorFragment.getEmail());
|
||||
final String cuisine = mEditedObject.getMetadata(Metadata.MetadataType.FMD_CUISINE);
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_CUISINE.toInt(), cuisine == null ? "" : cuisine);
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_INTERNET.toInt(), editorFragment.getWifi());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER, editorFragment.getPhone());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_WEBSITE, editorFragment.getWebsite());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_EMAIL, editorFragment.getEmail());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_CUISINE, editorFragment.getCuisine());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_INTERNET, editorFragment.getWifi());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_OPEN_HOURS, editorFragment.getOpeningHours());
|
||||
mEditedObject.setName(editorFragment.getName());
|
||||
mEditedObject.setStreet(editorFragment.getStreet());
|
||||
mEditedObject.setHouseNumber(editorFragment.getHouseNumber());
|
||||
|
@ -153,7 +153,7 @@ public class EditorHostFragment extends BaseMwmToolbarFragment
|
|||
{
|
||||
case OPENING_HOURS:
|
||||
final TimetableFragment fragment = (TimetableFragment) getChildFragmentManager().findFragmentByTag(TimetableFragment.class.getName());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_OPEN_HOURS.toInt(), fragment.getTimetable());
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_OPEN_HOURS, fragment.getTimetable());
|
||||
editMapObject();
|
||||
break;
|
||||
case STREET:
|
||||
|
@ -163,17 +163,17 @@ public class EditorHostFragment extends BaseMwmToolbarFragment
|
|||
break;
|
||||
case CUISINE:
|
||||
String cuisine = ((CuisineFragment) getChildFragmentManager().findFragmentByTag(CuisineFragment.class.getName())).getCuisine();
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_CUISINE.toInt(), cuisine);
|
||||
mEditedObject.addMetadata(Metadata.MetadataType.FMD_CUISINE, cuisine);
|
||||
editMapObject();
|
||||
break;
|
||||
case MAP_OBJECT:
|
||||
final EditorFragment editorFragment = (EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName());
|
||||
Editor.nativeSetMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER.toInt(), editorFragment.getPhone());
|
||||
Editor.nativeSetMetadata(Metadata.MetadataType.FMD_WEBSITE.toInt(), editorFragment.getWebsite());
|
||||
Editor.nativeSetMetadata(Metadata.MetadataType.FMD_EMAIL.toInt(), editorFragment.getEmail());
|
||||
cuisine = mEditedObject.getMetadata(Metadata.MetadataType.FMD_CUISINE);
|
||||
Editor.nativeSetMetadata(Metadata.MetadataType.FMD_CUISINE.toInt(), cuisine == null ? "" : cuisine);
|
||||
Editor.nativeSetMetadata(Metadata.MetadataType.FMD_INTERNET.toInt(), editorFragment.getWifi());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_PHONE_NUMBER, editorFragment.getPhone());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_WEBSITE, editorFragment.getWebsite());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_EMAIL, editorFragment.getEmail());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_CUISINE, editorFragment.getCuisine());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_INTERNET, editorFragment.getWifi());
|
||||
Editor.setMetadata(Metadata.MetadataType.FMD_OPEN_HOURS, editorFragment.getOpeningHours());
|
||||
Editor.nativeSetName(editorFragment.getName());
|
||||
Editor.nativeEditFeature(editorFragment.getStreet(), editorFragment.getHouseNumber());
|
||||
if (OsmOAuth.isAuthorized())
|
||||
|
|
|
@ -50,11 +50,13 @@ public class SimpleTimetableAdapter extends RecyclerView.Adapter<SimpleTimetable
|
|||
{
|
||||
mFragment = fragment;
|
||||
mItems = new ArrayList<>(Arrays.asList(OpeningHours.nativeGetDefaultTimetables()));
|
||||
refreshComplement();
|
||||
}
|
||||
|
||||
public void setTimetables(Timetable[] tts)
|
||||
{
|
||||
mItems = new ArrayList<>(Arrays.asList(tts));
|
||||
refreshComplement();
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue