import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.content.res.Configuration;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
public class BookmarksActivity extends AppCompatActivity implements CreateBookmarkDialog.CreateBookmarkListener, CreateBookmarkFolderDialog.CreateBookmarkFolderListener, EditBookmarkDialog.EditBookmarkListener,
EditBookmarkFolderDialog.EditBookmarkFolderListener, MoveToFolderDialog.MoveToFolderListener {
- // `currentFolder` is public static so it can be accessed from `BookmarksDatabaseViewActivity`.
+ // Declare the public static variables, which are accessed from the bookmarks database view activity.
public static String currentFolder;
-
- // `restartFromBookmarksDatabaseViewActivity` is public static so it can be accessed from `BookmarksDatabaseViewActivity`. It is also used in `onRestart()`.
public static boolean restartFromBookmarksDatabaseViewActivity;
-
// Define the saved instance state constants.
private final String CHECKED_BOOKMARKS_ARRAY_LIST = "checked_bookmarks_array_list";
+ private final String CURRENT_FOLDER = "current_folder";
// Define the class menu items.
private MenuItem moveBookmarkUpMenuItem;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
- // Set the theme.
- setTheme(R.style.PrivacyBrowser);
-
// Run the default commands.
super.onCreate(savedInstanceState);
// Display the home arrow on the app bar.
appBar.setDisplayHomeAsUpEnabled(true);
- // Initialize the database helper. `this` specifies the context. The two `nulls` do not specify the database name or a `CursorFactory`.
- // The `0` specifies a database version, but that is ignored and set instead using a constant in `BookmarksDatabaseHelper`.
- bookmarksDatabaseHelper = new BookmarksDatabaseHelper(this, null, null, 0);
-
- // Load the home folder.
- loadFolder();
+ // Initialize the database helper.
+ bookmarksDatabaseHelper = new BookmarksDatabaseHelper(this);
// Set a listener so that tapping a list item loads the URL or folder.
bookmarksListView.setOnItemClickListener((parent, view, position, id) -> {
boolean isFolder = (bookmarksCursor.getInt(bookmarksCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.IS_FOLDER)) == 1);
// Get the selected bookmark database ID.
- int databaseId = bookmarksCursor.getInt(bookmarksCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper._ID));
+ int databaseId = bookmarksCursor.getInt(bookmarksCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.ID));
// Show the edit bookmark or edit bookmark folder dialog.
if (isFolder) {
// Restore the state if the app has been restarted.
if (savedInstanceState != null) {
+ // Restore the current folder.
+ currentFolder = savedInstanceState.getString(CURRENT_FOLDER);
+
// Update the bookmarks list view after it has loaded.
bookmarksListView.post(() -> {
// Get the checked bookmarks array list.
}
});
}
+
+ // Load the home folder.
+ loadFolder();
}
@Override
}
}
- // Store the checked items array list in the saved instance state.
+ // Store the variables in the saved instance state.
+ savedInstanceState.putString(CURRENT_FOLDER, currentFolder);
savedInstanceState.putIntegerArrayList(CHECKED_BOOKMARKS_ARRAY_LIST, checkedBookmarksArrayList);
}
folderCursor.moveToPosition(i);
// Get the database ID of the item.
- int itemDatabaseId = folderCursor.getInt(folderCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper._ID));
+ int itemDatabaseId = folderCursor.getInt(folderCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.ID));
// If this is a folder, recursively count the contents first.
if (bookmarksDatabaseHelper.isFolder(itemDatabaseId)) {
folderCursor.moveToPosition(i);
// Get the database ID of the item.
- int itemDatabaseId = folderCursor.getInt(folderCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper._ID));
+ int itemDatabaseId = folderCursor.getInt(folderCursor.getColumnIndexOrThrow(BookmarksDatabaseHelper.ID));
// If this is a folder, recursively delete the contents first.
if (bookmarksDatabaseHelper.isFolder(itemDatabaseId)) {
// bookmarksListView is 0 indexed.
int lastBookmarkDatabaseId = (int) bookmarksListView.getItemIdAtPosition(bookmarksListView.getCount() - 1);
- // Get the current theme status.
- int currentThemeStatus = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
-
- // Update the move bookmark up `MenuItem`.
+ // Update the move bookmark up menu item.
if (selectedBookmarkDatabaseId == firstBookmarkDatabaseId) { // The selected bookmark is in the first position.
- // Disable the move bookmark up `MenuItem`.
+ // Disable the move bookmark up menu item.
moveBookmarkUpMenuItem.setEnabled(false);
- // Set the move bookmark up icon to be ghosted.
+ // Set the icon.
moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_disabled);
} else { // The selected bookmark is not in the first position.
// Enable the move bookmark up menu item.
moveBookmarkUpMenuItem.setEnabled(true);
// Set the icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_night);
- } else {
- moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled_day);
- }
+ moveBookmarkUpMenuItem.setIcon(R.drawable.move_up_enabled);
}
- // Update the move bookmark down `MenuItem`.
+ // Update the move bookmark down menu item.
if (selectedBookmarkDatabaseId == lastBookmarkDatabaseId) { // The selected bookmark is in the last position.
- // Disable the move bookmark down `MenuItem`.
+ // Disable the move bookmark down menu item.
moveBookmarkDownMenuItem.setEnabled(false);
- // Set the move bookmark down icon to be ghosted.
+ // Set the icon.
moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_disabled);
} else { // The selected bookmark is not in the last position.
- // Enable the move bookmark down `MenuItem`.
+ // Enable the move bookmark down menu item.
moveBookmarkDownMenuItem.setEnabled(true);
- // Set the icon according to the theme.
- if (currentThemeStatus == Configuration.UI_MODE_NIGHT_YES) {
- moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_night);
- } else {
- moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled_day);
- }
+ // Set the icon.
+ moveBookmarkDownMenuItem.setIcon(R.drawable.move_down_enabled);
}
}