diff --git a/app/src/main/java/acr/browser/lightning/constant/BookmarkPage.java b/app/src/main/java/acr/browser/lightning/constant/BookmarkPage.java index 208dc81..afdc439 100644 --- a/app/src/main/java/acr/browser/lightning/constant/BookmarkPage.java +++ b/app/src/main/java/acr/browser/lightning/constant/BookmarkPage.java @@ -117,7 +117,7 @@ public final class BookmarkPage { } private void buildBookmarkPage(@Nullable final String folder) { - mManager.getBookmarksFromFolder(folder) + mManager.getBookmarksFromFolderSorted(folder) .subscribe(new SingleOnSubscribe>() { @Override public void onItem(@Nullable List list) { diff --git a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java index e82904b..d00f461 100644 --- a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java +++ b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkDatabase.java @@ -18,6 +18,7 @@ import com.anthonycr.bonsai.SingleAction; import com.anthonycr.bonsai.SingleSubscriber; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import javax.inject.Inject; @@ -311,14 +312,16 @@ public class BookmarkDatabase extends SQLiteOpenHelper implements BookmarkModel @NonNull @Override - public Single> getBookmarksFromFolder(@Nullable final String folder) { + public Single> getBookmarksFromFolderSorted(@Nullable final String folder) { return Single.create(new SingleAction>() { @Override public void onSubscribe(@NonNull SingleSubscriber> subscriber) { String finalFolder = folder != null ? folder : ""; Cursor cursor = lazyDatabase().query(TABLE_BOOKMARK, null, KEY_FOLDER + "=?", new String[]{finalFolder}, null, null, null); - subscriber.onItem(bindCursorToHistoryItemList(cursor)); + List list = bindCursorToHistoryItemList(cursor); + Collections.sort(list); + subscriber.onItem(list); subscriber.onComplete(); } }); @@ -326,7 +329,7 @@ public class BookmarkDatabase extends SQLiteOpenHelper implements BookmarkModel @NonNull @Override - public Single> getFolders() { + public Single> getFoldersSorted() { return Single.create(new SingleAction>() { @Override public void onSubscribe(@NonNull SingleSubscriber> subscriber) { @@ -350,6 +353,7 @@ public class BookmarkDatabase extends SQLiteOpenHelper implements BookmarkModel cursor.close(); + Collections.sort(folders); subscriber.onItem(folders); subscriber.onComplete(); } diff --git a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java index 04d8f00..ec10e06 100644 --- a/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java +++ b/app/src/main/java/acr/browser/lightning/database/bookmark/BookmarkModel.java @@ -132,7 +132,7 @@ public interface BookmarkModel { * in the given folder. */ @NonNull - Single> getBookmarksFromFolder(@Nullable String folder); + Single> getBookmarksFromFolderSorted(@Nullable String folder); /** * Returns all folders as {@link HistoryItem}. @@ -141,7 +141,7 @@ public interface BookmarkModel { * @return an observable that emits a list of folders. */ @NonNull - Single> getFolders(); + Single> getFoldersSorted(); /** * Returns the names of all folders. diff --git a/app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java b/app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java index c268f49..97583c2 100644 --- a/app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java +++ b/app/src/main/java/acr/browser/lightning/fragment/BookmarksFragment.java @@ -254,7 +254,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener, } private void setBookmarksShown(@Nullable final String folder, final boolean animate) { - mBookmarksSubscription = mBookmarkManager.getBookmarksFromFolder(folder) + mBookmarksSubscription = mBookmarkManager.getBookmarksFromFolderSorted(folder) .subscribeOn(Schedulers.io()) .observeOn(Schedulers.main()) .subscribe(new SingleOnSubscribe>() { @@ -265,7 +265,7 @@ public class BookmarksFragment extends Fragment implements View.OnClickListener, mUiModel.setCurrentFolder(folder); if (folder == null) { - mBookmarkManager.getFolders() + mBookmarkManager.getFoldersSorted() .subscribeOn(Schedulers.io()) .observeOn(Schedulers.main()) .subscribe(new SingleOnSubscribe>() {