[android] Tuned showing of import kml dialog

This commit is contained in:
Александр Зацепин 2018-04-11 19:08:43 +03:00 committed by Arsentiy Milchakov
parent e205cd7e66
commit e57148f011
4 changed files with 32 additions and 13 deletions

View file

@ -793,15 +793,20 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
else
path = mData.getPath();
if (path != null)
if (!TextUtils.isEmpty(path))
{
LOGGER.d(TAG, "Loading bookmarks file from: " + path);
BookmarkManager.loadKmzFile(path, isTemporaryFile);
loadKmzFile(path, isTemporaryFile);
}
else
LOGGER.w(TAG, "Can't get bookmarks file from URI: " + mData);
}
private void loadKmzFile(final @NonNull String path, final boolean isTemporaryFile)
{
runOnUiThread(() -> BookmarkManager.INSTANCE.loadKmzFile(path, isTemporaryFile));
}
private String getExtensionFromMime(String mime)
{
final int i = mime.lastIndexOf('.');

View file

@ -47,6 +47,21 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment
private BookmarkBackupController mBackupController;
@Nullable
private KmlImportController mKmlImportController;
@NonNull
private Runnable mImportKmlTask = new Runnable()
{
private boolean alreadyDone = false;
@Override
public void run()
{
if (alreadyDone)
return;
importKml();
alreadyDone = true;
}
};
@Override
protected @LayoutRes int getLayoutRes()
@ -157,8 +172,8 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment
updateLoadingPlaceholder();
if (getAdapter() != null)
getAdapter().notifyDataSetChanged();
if (mKmlImportController != null)
mKmlImportController.importKml();
if (!BookmarkManager.INSTANCE.isAsyncBookmarksLoadingInProgress())
mImportKmlTask.run();
}
@Override
@ -286,6 +301,7 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment
updateResultsPlaceholder();
if (getAdapter() != null)
getAdapter().notifyDataSetChanged();
mImportKmlTask.run();
}
@Override
@ -294,6 +310,12 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment
// Do nothing here.
}
private void importKml()
{
if (mKmlImportController != null)
mKmlImportController.importKml();
}
@Override
public void onPreparedFileForSharing(@NonNull BookmarkSharingResult result)
{

View file

@ -18,7 +18,6 @@ public class KmlImportController implements BookmarkManager.KmlConversionListene
private ProgressDialog mProgressDialog;
@Nullable
private final ImportKmlCallback mCallback;
private boolean mWasShown = false;
KmlImportController(@NonNull Activity context, @Nullable ImportKmlCallback callback)
{
@ -38,12 +37,6 @@ public class KmlImportController implements BookmarkManager.KmlConversionListene
void importKml()
{
if (mWasShown)
return;
if (BookmarkManager.INSTANCE.isAsyncBookmarksLoadingInProgress())
return;
int count = BookmarkManager.INSTANCE.getKmlFilesCountForConversion();
if (count == 0)
return;
@ -58,7 +51,6 @@ public class KmlImportController implements BookmarkManager.KmlConversionListene
String msg = mContext.getString(R.string.bookmarks_detect_message, count);
DialogUtils.showAlertDialog(mContext, R.string.bookmarks_detect_title, msg,
R.string.button_convert, clickListener, R.string.cancel);
mWasShown = true;
}
@Override

View file

@ -329,7 +329,7 @@ public enum BookmarkManager
return nativeGetLastSynchronizationTimestampInMs();
}
public static void loadKmzFile(@NonNull String path, boolean isTemporaryFile)
public void loadKmzFile(@NonNull String path, boolean isTemporaryFile)
{
nativeLoadKmzFile(path, isTemporaryFile);
}