diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 111a0dc01..2f8eb23ce 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -58,7 +58,7 @@
+ android:name=".itemdetails.ItemDetailsActivity" />
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/activities/ActivitiesFragment.kt b/app/src/main/java/it/niedermann/owncloud/notes/activities/ActivitiesFragment.kt
new file mode 100644
index 000000000..f95cb1448
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/activities/ActivitiesFragment.kt
@@ -0,0 +1,28 @@
+package it.niedermann.owncloud.notes.activities
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import it.niedermann.owncloud.notes.branding.BrandedFragment
+import it.niedermann.owncloud.notes.databinding.FragmentActivitiesBinding
+
+class ActivitiesFragment : BrandedFragment() {
+
+ lateinit var binding : FragmentActivitiesBinding
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ binding = FragmentActivitiesBinding.inflate(inflater)
+ return super.onCreateView(inflater, container, savedInstanceState)
+ }
+
+ override fun applyBrand(color: Int) {
+ // TODO
+ }
+
+ companion object {
+ fun newInstance() : ActivitiesFragment {
+ return ActivitiesFragment()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java
index f64eec2e7..d41d13675 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/BaseNoteFragment.java
@@ -46,6 +46,7 @@
import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment.CategoryDialogListener;
import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment;
import it.niedermann.owncloud.notes.edit.title.EditTitleDialogFragment.EditTitleListener;
+import it.niedermann.owncloud.notes.itemdetails.ItemDetailsActivity;
import it.niedermann.owncloud.notes.persistence.NotesRepository;
import it.niedermann.owncloud.notes.persistence.entity.Account;
import it.niedermann.owncloud.notes.persistence.entity.Note;
@@ -305,8 +306,10 @@ public boolean onOptionsItemSelected(MenuItem item) {
.newInstance(new ArrayList<>(repo.getAccounts()), note.getAccountId())
.show(requireActivity().getSupportFragmentManager(), BaseNoteFragment.class.getSimpleName()));
return true;
- } else if (itemId == R.id.menu_share) {
- shareNote();
+ } else if (itemId == R.id.menu_details) {
+ Intent detailsIntent = new Intent(requireContext(), ItemDetailsActivity.class);
+ startActivity(detailsIntent);
+ //shareNote(); // TODO
return false;
} else if (itemId == MENU_ID_PIN) {
pinNoteToHome();
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteReadonlyFragment.java b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteReadonlyFragment.java
index 7a1126f59..9e17cc55e 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteReadonlyFragment.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/edit/NoteReadonlyFragment.java
@@ -28,7 +28,7 @@ public void onPrepareOptionsMenu(@NonNull Menu menu) {
menu.findItem(R.id.menu_preview).setVisible(false);
menu.findItem(R.id.menu_cancel).setVisible(false);
menu.findItem(R.id.menu_delete).setVisible(false);
- menu.findItem(R.id.menu_share).setVisible(false);
+ menu.findItem(R.id.menu_details).setVisible(false);
menu.findItem(R.id.menu_move).setVisible(false);
menu.findItem(R.id.menu_category).setVisible(false);
menu.findItem(R.id.menu_title).setVisible(false);
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/itemdetails/ItemDetailsActivity.kt b/app/src/main/java/it/niedermann/owncloud/notes/itemdetails/ItemDetailsActivity.kt
new file mode 100644
index 000000000..c310775c8
--- /dev/null
+++ b/app/src/main/java/it/niedermann/owncloud/notes/itemdetails/ItemDetailsActivity.kt
@@ -0,0 +1,45 @@
+package it.niedermann.owncloud.notes.itemdetails
+
+import android.os.Bundle
+import androidx.viewpager2.adapter.FragmentStateAdapter
+import com.google.android.material.tabs.TabLayoutMediator
+import it.niedermann.owncloud.notes.R
+import it.niedermann.owncloud.notes.activities.ActivitiesFragment
+import it.niedermann.owncloud.notes.branding.BrandedActivity
+import it.niedermann.owncloud.notes.branding.BrandedFragment
+import it.niedermann.owncloud.notes.databinding.ActivityItemDetailsBinding
+import it.niedermann.owncloud.notes.share.NoteShareActivity
+
+class ItemDetailsActivity : BrandedActivity() {
+
+ lateinit var binding : ActivityItemDetailsBinding
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding = ActivityItemDetailsBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+
+ val pages = listOf>(
+ Pair(getString(R.string.activities_title), ActivitiesFragment.newInstance())
+ // TODO: convert NoteShareActivity to Kotlin and refactor to be a BrandedFragment
+ //Pair(getString(R.string.share), NoteShareFragment.newInstance())
+ )
+
+ binding.pager.adapter = PagerAdapter(pages)
+ TabLayoutMediator(binding.tabLayout, binding.pager) { tab, position ->
+ tab.text = pages[position].first
+ }.attach()
+ }
+
+ override fun applyBrand(color: Int) {
+ // TODO
+ }
+
+ private inner class PagerAdapter(val fragments: List>) :
+ FragmentStateAdapter(this@ItemDetailsActivity)
+ {
+ override fun getItemCount() = fragments.size
+ override fun createFragment(position: Int) = fragments[position].second
+ }
+
+}
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java b/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java
index a80ac4325..463c66c7a 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/main/MultiSelectedActionModeCallback.java
@@ -33,6 +33,7 @@
import it.niedermann.owncloud.notes.accountpicker.AccountPickerDialogFragment;
import it.niedermann.owncloud.notes.branding.BrandedSnackbar;
import it.niedermann.owncloud.notes.edit.category.CategoryDialogFragment;
+import it.niedermann.owncloud.notes.itemdetails.ItemDetailsActivity;
import it.niedermann.owncloud.notes.share.NoteShareActivity;
import it.niedermann.owncloud.notes.shared.util.ShareUtil;
@@ -153,7 +154,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
.show(fragmentManager, AccountPickerDialogFragment.class.getSimpleName()));
});
return true;
- } else if (itemId == R.id.menu_share) {
+ } /*else if (itemId == R.id.menu_share) {
final var selection = new ArrayList(tracker.getSelection().size());
for (final var sel : tracker.getSelection()) {
selection.add(sel);
@@ -177,7 +178,7 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
}
return true;
- } else if (itemId == R.id.menu_category) {// TODO detect whether all selected notes do have the same category - in this case preselect it
+ }*/ else if (itemId == R.id.menu_category) {// TODO detect whether all selected notes do have the same category - in this case preselect it
final var accountLiveData = mainViewModel.getCurrentAccount();
accountLiveData.observe(lifecycleOwner, account -> {
accountLiveData.removeObservers(lifecycleOwner);
@@ -186,6 +187,9 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
.show(fragmentManager, CategoryDialogFragment.class.getSimpleName());
});
return true;
+ } else if (itemId == R.id.menu_details) {
+ Intent detailsIntent = new Intent(context, ItemDetailsActivity.class);
+ mainActivity.startActivity(detailsIntent);
}
return false;
}
diff --git a/app/src/main/res/drawable/ic_activity.xml b/app/src/main/res/drawable/ic_activity.xml
new file mode 100644
index 000000000..a9505658c
--- /dev/null
+++ b/app/src/main/res/drawable/ic_activity.xml
@@ -0,0 +1,16 @@
+
+
+
+
diff --git a/app/src/main/res/layout/activity_item_details.xml b/app/src/main/res/layout/activity_item_details.xml
new file mode 100644
index 000000000..af3c40443
--- /dev/null
+++ b/app/src/main/res/layout/activity_item_details.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_activities.xml b/app/src/main/res/layout/fragment_activities.xml
new file mode 100644
index 000000000..3578d96f5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_activities.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_list_context_multiple.xml b/app/src/main/res/menu/menu_list_context_multiple.xml
index 1a8491212..66f5c34b8 100644
--- a/app/src/main/res/menu/menu_list_context_multiple.xml
+++ b/app/src/main/res/menu/menu_list_context_multiple.xml
@@ -16,10 +16,10 @@
app:showAsAction="ifRoom" />
- @color/material_dynamic_secondary20
@color/transparent
+
+ #49454F
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f3a39be8a..c5649baf1 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -59,4 +59,9 @@
@color/high_emphasis_text
@color/transparent
+
+ #CAC4D0
+ @color/secondary_text_color
+
+
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index b42e9c41b..d842dc8ae 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -82,4 +82,6 @@
56dp
60dp
24dp
+
+ @dimen/spacer_2x
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 80d4284fc..be77ff090 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -31,7 +31,6 @@
Category
Favorite
Preview
- Share
Shared note
Loading…
@@ -537,4 +536,14 @@
Share expires on %1$s
Dismiss
Account not found!
+
+ Details
+ Activities
+
+ Note.md
+ Favorite
+ 389 KB
+ •
+ 12:23:45
+