[android] Saved timetable correctly, fixed UI bugs.

This commit is contained in:
Dmitry Yunitsky 2016-02-03 15:25:16 +03:00 committed by Sergey Yershov
parent 62043fda34
commit 90a0b1f614
10 changed files with 64 additions and 55 deletions

View file

@ -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>

View file

@ -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"

View file

@ -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"

View file

@ -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>

View file

@ -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);

View file

@ -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);
}
}

View file

@ -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);

View file

@ -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)

View file

@ -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())

View file

@ -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();
}