From a4ecd82004e9ed7ef4ba4dcf28ed7a8a9af35a53 Mon Sep 17 00:00:00 2001 From: Corewala Date: Sat, 8 Jan 2022 17:10:58 -0500 Subject: [PATCH] All dialogs now use proper toolbars --- .../buran/ui/bookmarks/BookmarksDialog.kt | 55 +++++++---------- .../buran/ui/content_image/ImageDialog.kt | 29 +++++---- .../buran/ui/content_text/TextDialog.kt | 5 +- .../ui/modals_menus/about/AboutDialog.kt | 4 +- .../ui/modals_menus/history/HistoryDialog.kt | 43 +++++++------- app/src/main/res/layout/dialog_about.xml | 45 ++++---------- app/src/main/res/layout/dialog_bookmarks.xml | 49 +++------------ .../main/res/layout/dialog_content_image.xml | 59 +++++-------------- .../main/res/layout/dialog_content_text.xml | 54 ++++------------- app/src/main/res/layout/dialog_history.xml | 53 ++++------------- ..._export.xml => bookmark_overflow_menu.xml} | 0 .../main/res/menu/history_overflow_menu.xml | 14 +++-- 12 files changed, 136 insertions(+), 274 deletions(-) rename app/src/main/res/menu/{bookmark_import_export.xml => bookmark_overflow_menu.xml} (100%) diff --git a/app/src/main/java/corewala/buran/ui/bookmarks/BookmarksDialog.kt b/app/src/main/java/corewala/buran/ui/bookmarks/BookmarksDialog.kt index f8560e6..b49b5d0 100644 --- a/app/src/main/java/corewala/buran/ui/bookmarks/BookmarksDialog.kt +++ b/app/src/main/java/corewala/buran/ui/bookmarks/BookmarksDialog.kt @@ -5,12 +5,10 @@ import android.content.Intent import android.net.Uri import android.os.Handler import android.os.Looper -import android.view.MenuInflater import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatDialog import androidx.appcompat.widget.PopupMenu -import androidx.core.view.MenuCompat import androidx.core.view.forEach import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.material.snackbar.BaseTransientBottomBar @@ -22,9 +20,6 @@ import corewala.buran.io.database.bookmarks.BookmarksDatasource import corewala.buran.ui.CREATE_BOOKMARK_EXPORT_FILE_REQ import corewala.buran.ui.CREATE_BOOKMARK_IMPORT_FILE_REQ import corewala.visible -import kotlinx.android.synthetic.main.dialog_about.view.* -import kotlinx.android.synthetic.main.dialog_bookmarks.view.close_tab_dialog -import kotlinx.android.synthetic.main.dialog_history.view.* import org.json.JSONObject import java.io.BufferedReader import java.io.InputStreamReader @@ -46,45 +41,44 @@ class BookmarksDialog( setContentView(view) - view.close_tab_dialog.setOnClickListener { + view.bookmarks_toolbar.setNavigationIcon(R.drawable.vector_close) + view.bookmarks_toolbar.setNavigationOnClickListener { dismiss() } - view.bookmark_overflow.setOnClickListener { menu -> - val popup = PopupMenu(view.context, view.bookmark_overflow) - val inflater: MenuInflater = popup.menuInflater - inflater.inflate(R.menu.history_overflow_menu, popup.menu) - popup.setOnMenuItemClickListener { menuItem -> - if(menuItem.itemId == R.id.menu_action_import_bookmarks){ - val intent = Intent(Intent.ACTION_OPEN_DOCUMENT) - intent.addCategory(Intent.CATEGORY_OPENABLE) - intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - intent.type = "application/json" - context.startActivityForResult(intent, CREATE_BOOKMARK_IMPORT_FILE_REQ) - }else if(menuItem.itemId == R.id.menu_action_export_bookmarks){ - val intent = Intent(Intent.ACTION_CREATE_DOCUMENT) - intent.addCategory(Intent.CATEGORY_OPENABLE) - intent.type = "application/json" - intent.putExtra(Intent.EXTRA_TITLE, "buran_bookmarks.json") - context.startActivityForResult(intent, CREATE_BOOKMARK_EXPORT_FILE_REQ) + view.bookmarks_toolbar.menu.forEach { menu -> + menu.setOnMenuItemClickListener { item -> + when(item.itemId){ + R.id.menu_action_import_bookmarks -> { + val intent = Intent(Intent.ACTION_OPEN_DOCUMENT) + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + intent.type = "application/json" + context.startActivityForResult(intent, CREATE_BOOKMARK_IMPORT_FILE_REQ) + } + R.id.menu_action_export_bookmarks -> { + val intent = Intent(Intent.ACTION_CREATE_DOCUMENT) + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.type = "application/json" + intent.putExtra(Intent.EXTRA_TITLE, "buran_bookmarks.json") + context.startActivityForResult(intent, CREATE_BOOKMARK_EXPORT_FILE_REQ) + } + else -> { + + } } true } - MenuCompat.setGroupDividerEnabled(popup.menu, true) - popup.show() } //None as yet - /* view.bookmarks_toolbar.inflateMenu(R.menu.add_bookmarks) view.bookmarks_toolbar.setOnMenuItemClickListener { _ -> true } - */ - view.bookmarks_recycler.layoutManager = LinearLayoutManager(context) bookmarksAdapter = BookmarksAdapter({ bookmark -> @@ -120,10 +114,7 @@ class BookmarksDialog( Handler(Looper.getMainLooper()).post { when { - /* bookmarks.isEmpty() -> view.bookmarks_empty_layout.visible(true) - - */ else -> bookmarksAdapter.update(bookmarks) } } @@ -240,9 +231,7 @@ class BookmarksDialog( bookmarkDatasource.add(bookmarkEntries.toTypedArray()){ bookmarkDatasource.get { bookmarks -> Handler(Looper.getMainLooper()).post { - view.bookmarks_empty_layout.visible(false) - bookmarksAdapter.update(bookmarks) when { skipped > 0 -> { diff --git a/app/src/main/java/corewala/buran/ui/content_image/ImageDialog.kt b/app/src/main/java/corewala/buran/ui/content_image/ImageDialog.kt index befbf53..25174ec 100644 --- a/app/src/main/java/corewala/buran/ui/content_image/ImageDialog.kt +++ b/app/src/main/java/corewala/buran/ui/content_image/ImageDialog.kt @@ -1,20 +1,27 @@ package corewala.buran.ui.content_image import android.content.Context +import android.content.Intent import android.graphics.Bitmap import android.net.Uri import android.view.MenuInflater import android.view.View import androidx.appcompat.app.AppCompatDialog import androidx.appcompat.widget.PopupMenu +import androidx.core.view.forEach import kotlinx.android.synthetic.main.dialog_content_image.view.* import corewala.buran.R import corewala.buran.io.GemState +import corewala.buran.ui.CREATE_BOOKMARK_EXPORT_FILE_REQ +import corewala.buran.ui.CREATE_BOOKMARK_IMPORT_FILE_REQ +import kotlinx.android.synthetic.main.dialog_bookmarks.view.* +import kotlinx.android.synthetic.main.dialog_content_text.view.* import java.io.FileOutputStream object ImageDialog { fun show(context: Context, state: GemState.ResponseImage, onDownloadRequest: (state: GemState.ResponseImage) -> Unit){ + val dialog = AppCompatDialog(context, R.style.AppTheme) val view = View.inflate(context, R.layout.dialog_content_image, null) @@ -22,24 +29,24 @@ object ImageDialog { view.image_view.setImageURI(state.cacheUri) - view.close_image_content_dialog.setOnClickListener { + view.image_toolbar.setNavigationIcon(R.drawable.vector_close) + view.image_toolbar.setNavigationOnClickListener { dialog.dismiss() } - view.image_overflow.setOnClickListener { - val overflowMenu = PopupMenu(context, view.image_overflow) - val inflater: MenuInflater = overflowMenu.menuInflater - inflater.inflate(R.menu.image_overflow_menu, overflowMenu.menu) - overflowMenu.setOnMenuItemClickListener { menuItem -> - if(menuItem.itemId == R.id.image_overflow_save_image){ - onDownloadRequest(state) + view.image_toolbar.menu.forEach { menu -> + menu.setOnMenuItemClickListener { item -> + when(item.itemId){ + R.id.image_overflow_save_image -> { + onDownloadRequest(state) + } + else -> { + + } } true } - - overflowMenu.show() } - dialog.show() } diff --git a/app/src/main/java/corewala/buran/ui/content_text/TextDialog.kt b/app/src/main/java/corewala/buran/ui/content_text/TextDialog.kt index dc14272..7f2aad2 100644 --- a/app/src/main/java/corewala/buran/ui/content_text/TextDialog.kt +++ b/app/src/main/java/corewala/buran/ui/content_text/TextDialog.kt @@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatDialog import kotlinx.android.synthetic.main.dialog_content_text.view.* import corewala.buran.R import corewala.buran.io.GemState +import kotlinx.android.synthetic.main.dialog_bookmarks.view.* object TextDialog { @@ -17,11 +18,13 @@ object TextDialog { view.text_content.text = state.content - view.close_text_content_dialog.setOnClickListener { + view.text_toolbar.setNavigationIcon(R.drawable.vector_close) + view.text_toolbar.setNavigationOnClickListener { dialog.dismiss() } + dialog.show() } } \ No newline at end of file diff --git a/app/src/main/java/corewala/buran/ui/modals_menus/about/AboutDialog.kt b/app/src/main/java/corewala/buran/ui/modals_menus/about/AboutDialog.kt index 13e302a..fd29686 100644 --- a/app/src/main/java/corewala/buran/ui/modals_menus/about/AboutDialog.kt +++ b/app/src/main/java/corewala/buran/ui/modals_menus/about/AboutDialog.kt @@ -12,6 +12,7 @@ import kotlinx.android.synthetic.main.dialog_about.view.* import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import corewala.buran.R +import kotlinx.android.synthetic.main.dialog_content_text.view.* import java.lang.StringBuilder import java.security.SecureRandom import java.security.Security @@ -27,7 +28,8 @@ object AboutDialog { val view = View.inflate(context, R.layout.dialog_about, null) dialog.setContentView(view) - view.close_tab_dialog.setOnClickListener { + view.about_toolbar.setNavigationIcon(R.drawable.vector_close) + view.about_toolbar.setNavigationOnClickListener { dialog.dismiss() } diff --git a/app/src/main/java/corewala/buran/ui/modals_menus/history/HistoryDialog.kt b/app/src/main/java/corewala/buran/ui/modals_menus/history/HistoryDialog.kt index bcda718..9f3fab9 100644 --- a/app/src/main/java/corewala/buran/ui/modals_menus/history/HistoryDialog.kt +++ b/app/src/main/java/corewala/buran/ui/modals_menus/history/HistoryDialog.kt @@ -3,49 +3,52 @@ package corewala.buran.ui.modals_menus.history import android.content.Context import android.os.Handler import android.os.Looper -import android.view.MenuInflater import android.view.View import android.widget.Toast import androidx.appcompat.app.AppCompatDialog -import androidx.appcompat.widget.PopupMenu -import androidx.core.view.MenuCompat +import androidx.core.view.forEach import androidx.recyclerview.widget.LinearLayoutManager -import kotlinx.android.synthetic.main.dialog_about.view.close_tab_dialog import kotlinx.android.synthetic.main.dialog_history.view.* import corewala.buran.R import corewala.buran.io.database.history.BuranHistory +import kotlinx.android.synthetic.main.dialog_bookmarks.view.* object HistoryDialog { fun show(context: Context, history: BuranHistory, onHistoryItem: (address: String) -> Unit){ + val dialog = AppCompatDialog(context, R.style.AppTheme) val view = View.inflate(context, R.layout.dialog_history, null) dialog.setContentView(view) - view.close_tab_dialog.setOnClickListener { + view.history_toolbar.setNavigationIcon(R.drawable.vector_close) + view.history_toolbar.setNavigationOnClickListener { dialog.dismiss() } - view.history_overflow.setOnClickListener { - val popup = PopupMenu(view.context, view.history_overflow) - val inflater: MenuInflater = popup.menuInflater - inflater.inflate(R.menu.history_overflow_menu, popup.menu) - popup.setOnMenuItemClickListener { menuItem -> - if(menuItem.itemId == R.id.history_overflow_clear_history){ - history.clear { - Handler(Looper.getMainLooper()).post { - dialog.dismiss() - Toast.makeText(context, context.getString(R.string.history_cleared), Toast.LENGTH_SHORT).show() + view.history_toolbar.menu.forEach { menu -> + menu.setOnMenuItemClickListener { item -> + when(item.itemId){ + R.id.menu_action_clear_history -> { + history.clear { + Handler(Looper.getMainLooper()).post { + Toast.makeText(context, context.getString(R.string.history_cleared), Toast.LENGTH_SHORT).show() + } } } - }else if(menuItem.itemId == R.id.history_overflow_clear_runtime_cache){ - dialog.dismiss() - Toast.makeText(context, context.getString(R.string.runtime_cache_cleared), Toast.LENGTH_SHORT).show() + R.id.menu_action_clear_runtime_cache -> { + Toast.makeText(context, context.getString(R.string.runtime_cache_cleared), Toast.LENGTH_SHORT).show() + } + else -> { + + } } true } - MenuCompat.setGroupDividerEnabled(popup.menu, true) - popup.show() + } + + view.history_toolbar.setOnMenuItemClickListener { _ -> + true } view.history_recycler.layoutManager = LinearLayoutManager(context) diff --git a/app/src/main/res/layout/dialog_about.xml b/app/src/main/res/layout/dialog_about.xml index 119a3aa..75ec471 100644 --- a/app/src/main/res/layout/dialog_about.xml +++ b/app/src/main/res/layout/dialog_about.xml @@ -1,42 +1,21 @@ - xmlns:tools="http://schemas.android.com/tools"> + - - - - - - - + android:layout_below="@+id/about_toolbar"> - - diff --git a/app/src/main/res/layout/dialog_bookmarks.xml b/app/src/main/res/layout/dialog_bookmarks.xml index cf43063..4aae92b 100644 --- a/app/src/main/res/layout/dialog_bookmarks.xml +++ b/app/src/main/res/layout/dialog_bookmarks.xml @@ -2,52 +2,21 @@ + xmlns:app="http://schemas.android.com/apk/res-auto"> - + android:layout_marginTop="@dimen/default_margin" + android:layout_height="@dimen/bar_height" + app:menu="@menu/bookmark_overflow_menu" + app:title="@string/bookmarks"/> - - - - - - - + android:layout_height="wrap_content" + android:layout_below="@+id/bookmarks_toolbar"/> + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto"> - - + android:layout_height="match_parent" + android:layout_centerHorizontal="true" + /> - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_content_text.xml b/app/src/main/res/layout/dialog_content_text.xml index 1740351..9a70da1 100644 --- a/app/src/main/res/layout/dialog_content_text.xml +++ b/app/src/main/res/layout/dialog_content_text.xml @@ -1,53 +1,21 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto"> - + - - - - - - - + android:layout_below="@+id/text_toolbar"> - + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_history.xml b/app/src/main/res/layout/dialog_history.xml index 11748fb..198f3e9 100644 --- a/app/src/main/res/layout/dialog_history.xml +++ b/app/src/main/res/layout/dialog_history.xml @@ -1,51 +1,20 @@ + android:layout_width="match_parent" + android:layout_height="match_parent" + xmlns:app="http://schemas.android.com/apk/res-auto"> - + - - - - - - - diff --git a/app/src/main/res/menu/bookmark_import_export.xml b/app/src/main/res/menu/bookmark_overflow_menu.xml similarity index 100% rename from app/src/main/res/menu/bookmark_import_export.xml rename to app/src/main/res/menu/bookmark_overflow_menu.xml diff --git a/app/src/main/res/menu/history_overflow_menu.xml b/app/src/main/res/menu/history_overflow_menu.xml index 861457d..3a19ee6 100644 --- a/app/src/main/res/menu/history_overflow_menu.xml +++ b/app/src/main/res/menu/history_overflow_menu.xml @@ -1,7 +1,11 @@ - - - + + + + \ No newline at end of file