[android] Refactored passing ugc update time from Java to C++

This commit is contained in:
Александр Зацепин 2017-10-12 12:13:48 +03:00 committed by Arsentiy Milchakov
parent 41b48dd2ee
commit e1f37bad81
2 changed files with 6 additions and 2 deletions

View file

@ -99,7 +99,9 @@ public:
jstring jtext = static_cast<jstring>(env->GetObjectField(ugcUpdate, m_ratingTextFieldId));
// TODO: use lang parameter correctly.
ugc::Text text(jni::ToNativeString(env, jtext), 1);
return ugc::UGCUpdate(records, text, std::chrono::system_clock::now());
jlong jtime = env->GetLongField(ugcUpdate, m_updateTimeFieldId);
uint64_t timeSec = static_cast<uint64_t>(jtime / 1000);
return ugc::UGCUpdate(records, text, std::chrono::system_clock::from_time_t(timeSec));
}
private:
@ -194,6 +196,7 @@ private:
env, m_ugcUpdateClass, "([Lcom/mapswithme/maps/ugc/UGC$Rating;Ljava/lang/String;J)V");
m_ratingArrayFieldId = env->GetFieldID(m_ugcUpdateClass, "mRatings", "[Lcom/mapswithme/maps/ugc/UGC$Rating;");
m_ratingTextFieldId = env->GetFieldID(m_ugcUpdateClass, "mText", "Ljava/lang/String;");
m_updateTimeFieldId = env->GetFieldID(m_ugcUpdateClass, "mTimeMillis", "J");
m_ratingNameFieldId = env->GetFieldID(m_ratingClass, "mName", "Ljava/lang/String;");
m_ratingValueFieldId = env->GetFieldID(m_ratingClass, "mValue", "F");
m_initialized = true;
@ -208,6 +211,7 @@ private:
jmethodID m_ugcUpdateCtor;
jfieldID m_ratingArrayFieldId;
jfieldID m_ratingTextFieldId;
jfieldID m_updateTimeFieldId;
jfieldID m_ratingNameFieldId;
jfieldID m_ratingValueFieldId;

View file

@ -81,7 +81,7 @@ public class UGCEditorFragment extends BaseMwmAuthorizationFragment
UGC.Rating[] ratings = new UGC.Rating[modifiedRatings.size()];
modifiedRatings.toArray(ratings);
UGCUpdate update = new UGCUpdate(ratings, mReviewEditText.getText().toString(),
0 /* mTimeMillis. It's set in JNI, UGC.cpp */);
System.currentTimeMillis());
FeatureId featureId = getArguments().getParcelable(ARG_FEATURE_ID);
if (featureId == null)
throw new AssertionError("Feature ID must be passed to this fragment!");