diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/collections/CollectionDetailFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/collections/CollectionDetailFragment.java
index d73e0d6..e8e4d25 100644
--- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/collections/CollectionDetailFragment.java
+++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/collections/CollectionDetailFragment.java
@@ -138,8 +138,7 @@ public class CollectionDetailFragment extends MCFragment {
String[] options = new String[]{
getString(R.string.action_add_monster),
getString(R.string.action_create_monster),
- getString(R.string.action_import_monster_from_url),
- getString(R.string.action_import_monster_from_file)
+ getString(R.string.action_import)
};
new AlertDialog.Builder(requireContext())
.setTitle(R.string.title_collection_actions)
@@ -149,9 +148,7 @@ public class CollectionDetailFragment extends MCFragment {
} else if (which == 1) {
createNewMonster();
} else if (which == 2) {
- showImportUrlDialog();
- } else if (which == 3) {
- importMonsterFromFile();
+ showImportDialog();
}
})
.setNegativeButton(R.string.dialog_cancel, null)
diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/dashboard/DashboardFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/dashboard/DashboardFragment.java
index 64b01c2..f247b7f 100644
--- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/dashboard/DashboardFragment.java
+++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/dashboard/DashboardFragment.java
@@ -151,8 +151,7 @@ public class DashboardFragment extends MCFragment {
getString(R.string.action_add_single_monster),
getString(R.string.action_add_collection_option),
getString(R.string.action_create_monster),
- getString(R.string.action_import_monster_from_url),
- getString(R.string.action_import_monster_from_file)
+ getString(R.string.action_import)
};
new AlertDialog.Builder(requireContext())
.setTitle(R.string.title_dashboard_actions)
@@ -164,9 +163,7 @@ public class DashboardFragment extends MCFragment {
} else if (which == 2) {
createNewMonster();
} else if (which == 3) {
- showImportUrlDialog();
- } else if (which == 4) {
- importMonsterFromFile();
+ showImportDialog();
}
})
.setNegativeButton(R.string.dialog_cancel, null)
diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java
index a10b683..623f17a 100644
--- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java
+++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/library/LibraryFragment.java
@@ -76,11 +76,8 @@ public class LibraryFragment extends MCFragment {
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- if (item.getItemId() == R.id.menu_action_import_from_url) {
- showImportUrlDialog();
- return true;
- } else if (item.getItemId() == R.id.menu_action_import_from_file) {
- importMonsterFromFile();
+ if (item.getItemId() == R.id.menu_action_import) {
+ showImportDialog();
return true;
} else if (item.getItemId() == R.id.menu_action_export_library) {
exportLibrary();
@@ -188,8 +185,7 @@ public class LibraryFragment extends MCFragment {
private void showLibraryFabOptionsDialog() {
String[] options = new String[]{
getString(R.string.action_create_monster),
- getString(R.string.action_import_monster_from_url),
- getString(R.string.action_import_monster_from_file)
+ getString(R.string.action_import)
};
new AlertDialog.Builder(requireContext())
.setTitle(R.string.title_library_actions)
@@ -197,9 +193,7 @@ public class LibraryFragment extends MCFragment {
if (which == 0) {
createNewMonster();
} else if (which == 1) {
- showImportUrlDialog();
- } else if (which == 2) {
- importMonsterFromFile();
+ showImportDialog();
}
})
.setNegativeButton(R.string.dialog_cancel, null)
diff --git a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/shared/MCFragment.java b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/shared/MCFragment.java
index b65b202..2f5634d 100644
--- a/Android/app/src/main/java/com/majinnaibu/monstercards/ui/shared/MCFragment.java
+++ b/Android/app/src/main/java/com/majinnaibu/monstercards/ui/shared/MCFragment.java
@@ -114,16 +114,17 @@ public class MCFragment extends Fragment {
importMonsterFromFile();
}
- public void showImportUrlDialog() {
+ public void showImportDialog() {
Context context = requireContext();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
- builder.setTitle(R.string.dialog_import_url_title);
- builder.setMessage(R.string.dialog_import_url_message);
+ builder.setTitle(R.string.dialog_import_title);
- final EditText input = new EditText(context);
- input.setHint(R.string.dialog_import_url_hint);
- input.setSingleLine(true);
+ View view = getLayoutInflater().inflate(R.layout.dialog_import, null);
+ builder.setView(view);
+ AlertDialog dialog = builder.create();
+
+ final EditText input = view.findViewById(R.id.edit_text_url);
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
if (clipboard != null && clipboard.hasPrimaryClip()) {
ClipData clip = clipboard.getPrimaryClip();
@@ -139,20 +140,22 @@ public class MCFragment extends Fragment {
}
}
- builder.setView(input);
-
- builder.setPositiveButton(R.string.dialog_import, (dialog, which) -> {
+ view.findViewById(R.id.button_import_url).setOnClickListener(v -> {
String urlOrId = input.getText().toString().trim();
if (!urlOrId.isEmpty()) {
if (getActivity() instanceof MainActivity) {
((MainActivity) getActivity()).importMonsterFromInputAndNavigate(urlOrId);
}
}
+ dialog.dismiss();
});
- builder.setNegativeButton(R.string.dialog_cancel, (dialog, which) -> dialog.cancel());
+ view.findViewById(R.id.button_import_file).setOnClickListener(v -> {
+ importMonsterFromFile();
+ dialog.dismiss();
+ });
- builder.show();
+ dialog.show();
}
public void createNewMonster() {
diff --git a/Android/app/src/main/res/layout/dialog_import.xml b/Android/app/src/main/res/layout/dialog_import.xml
new file mode 100644
index 0000000..d1de088
--- /dev/null
+++ b/Android/app/src/main/res/layout/dialog_import.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Android/app/src/main/res/menu/import_monster.xml b/Android/app/src/main/res/menu/import_monster.xml
index 3c0c389..bee883e 100644
--- a/Android/app/src/main/res/menu/import_monster.xml
+++ b/Android/app/src/main/res/menu/import_monster.xml
@@ -4,6 +4,6 @@
diff --git a/Android/app/src/main/res/menu/library_menu.xml b/Android/app/src/main/res/menu/library_menu.xml
index 493c967..50be750 100644
--- a/Android/app/src/main/res/menu/library_menu.xml
+++ b/Android/app/src/main/res/menu/library_menu.xml
@@ -3,13 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
-
-
- Add Skill
Add Trait
Edit
- Import File
+ Import
MonsterCards
CHA
CON
@@ -163,8 +163,8 @@
Dashboard cleared
No monsters available in library. Create one first!
Import URL
- Import Character
- Enter or paste a D&D Beyond URL, Character ID, or Open5e JSON payload:
+ Import
+ Enter or paste a URL, ID, or data payload:
e.g. D&D Beyond URL or Open5e JSON
Import
Importing…