forked from organicmaps/organicmaps
Fixed UGC uploading
This commit is contained in:
parent
4e15406cc2
commit
7008796b3f
6 changed files with 28 additions and 9 deletions
|
@ -409,7 +409,7 @@ using namespace osm_auth_ios;
|
|||
// Starts async UGC uploading process.
|
||||
+ (void)uploadUGC:(MWMVoidBlock)finishCallback
|
||||
{
|
||||
GetFramework().UploadUGC([finishCallback] {
|
||||
GetFramework().UploadUGC([finishCallback](bool /* isSuccessful */) {
|
||||
finishCallback();
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1441,6 +1441,8 @@ void Framework::EnterBackground()
|
|||
|
||||
SaveViewport();
|
||||
|
||||
m_ugcApi->SaveUGCOnDisk();
|
||||
|
||||
m_trafficManager.OnEnterBackground();
|
||||
m_routingManager.SetAllowSendingPoints(false);
|
||||
|
||||
|
@ -3482,13 +3484,18 @@ void Framework::UploadUGC(User::CompleteUploadingHandler const & onCompleteUploa
|
|||
if (!m_user.IsAuthenticated())
|
||||
return;
|
||||
|
||||
m_ugcApi->GetUGCToSend([this, onCompleteUploading](string && json) {
|
||||
m_ugcApi->GetUGCToSend([this, onCompleteUploading](string && json)
|
||||
{
|
||||
if (!json.empty())
|
||||
m_user.UploadUserReviews(move(json), [this, onCompleteUploading]
|
||||
{
|
||||
m_user.UploadUserReviews(std::move(json), [this, onCompleteUploading](bool isSuccessful)
|
||||
{
|
||||
if (onCompleteUploading)
|
||||
onCompleteUploading();
|
||||
m_ugcApi->SendingCompleted();
|
||||
if (onCompleteUploading != nullptr)
|
||||
onCompleteUploading(isSuccessful);
|
||||
|
||||
if (isSuccessful)
|
||||
m_ugcApi->SendingCompleted();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -272,7 +272,7 @@ void User::UploadUserReviews(std::string && dataStr,
|
|||
LOG(LWARNING, ("Reviews have been uploaded."));
|
||||
|
||||
if (onCompleteUploading != nullptr)
|
||||
onCompleteUploading();
|
||||
onCompleteUploading(true /* isSuccessful */);
|
||||
},
|
||||
[this, onCompleteUploading](int errorCode)
|
||||
{
|
||||
|
@ -281,7 +281,7 @@ void User::UploadUserReviews(std::string && dataStr,
|
|||
LOG(LWARNING, ("Reviews have not been uploaded."));
|
||||
|
||||
if (onCompleteUploading != nullptr)
|
||||
onCompleteUploading();
|
||||
onCompleteUploading(false /* isSuccessful */);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
using BuildRequestHandler = std::function<void(platform::HttpClient &)>;
|
||||
using SuccessHandler = std::function<void(std::string const &)>;
|
||||
using ErrorHandler = std::function<void(int)>;
|
||||
using CompleteUploadingHandler = std::function<void()>;
|
||||
using CompleteUploadingHandler = std::function<void(bool)>;
|
||||
|
||||
User();
|
||||
~User();
|
||||
|
|
10
ugc/api.cpp
10
ugc/api.cpp
|
@ -34,6 +34,11 @@ void Api::SendingCompleted()
|
|||
m_thread.Push([this] { SendingCompletedImpl(); });
|
||||
}
|
||||
|
||||
void Api::SaveUGCOnDisk()
|
||||
{
|
||||
m_thread.Push([this] { SaveUGCOnDiskImpl(); });
|
||||
}
|
||||
|
||||
void Api::GetUGCImpl(FeatureID const & id, UGCCallback callback)
|
||||
{
|
||||
if (!id.IsValid())
|
||||
|
@ -63,4 +68,9 @@ void Api::SendingCompletedImpl()
|
|||
{
|
||||
m_storage.MarkAllAsSynchronized();
|
||||
}
|
||||
|
||||
void Api::SaveUGCOnDiskImpl()
|
||||
{
|
||||
m_storage.SaveIndex();
|
||||
}
|
||||
} // namespace ugc
|
||||
|
|
|
@ -25,12 +25,14 @@ public:
|
|||
void SetUGCUpdate(FeatureID const & id, UGCUpdate const & ugc);
|
||||
void GetUGCToSend(UGCJsonToSendCallback const & fn);
|
||||
void SendingCompleted();
|
||||
void SaveUGCOnDisk();
|
||||
|
||||
private:
|
||||
void GetUGCImpl(FeatureID const & id, UGCCallback callback);
|
||||
void SetUGCUpdateImpl(FeatureID const & id, UGCUpdate const & ugc);
|
||||
void GetUGCToSendImpl(UGCJsonToSendCallback const & fn);
|
||||
void SendingCompletedImpl();
|
||||
void SaveUGCOnDiskImpl();
|
||||
|
||||
base::WorkerThread m_thread;
|
||||
Storage m_storage;
|
||||
|
|
Loading…
Add table
Reference in a new issue