diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a57f5b423d30..45c48f796137 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,6 +23,8 @@ 1. Backport pull request 1. Pull requests that also need changes on library 1. Adding new files + 1. File naming + 1. Menu files 1. Translations 1. Releases 1. Types @@ -236,6 +238,24 @@ Source code of app: --> ``` +## File naming + +The file naming patterns are inspired and based on [Ribot's Android Project And Code Guidelines](https://github.com/ribot/android-guidelines/blob/c1d8c9c904eb31bf01fe24aadb963b74281fe79a/project_and_code_guidelines.md). + +### Menu files + +Similar to layout files, menu files should match the name of the component. For example, if we are defining a menu file that is going to be used in the `UserProfileActivity`, then the name of the file should be `activity_user_profile.xml`. Same pattern applies for menus used in adapter view items, dialogs, etc. + +| Component | Class Name | Menu Name | +| ---------------- | ---------------------- | ----------------------------- | +| Activity | `UserProfileActivity` | `activity_user_profile.xml` | +| Fragment | `SignUpFragment` | `fragment_sign_up.xml` | +| Dialog | `ChangePasswordDialog` | `dialog_change_password.xml` | +| AdapterView item | --- | `item_person.xml` | +| Partial layout | --- | `partial_stats_bar.xml` | + +A good practice is to not include the word `menu` as part of the name because these files are already located in the `menu` directory. In case a component uses several menus in different places (via popup menus) then the resource name would be extended. For example, if the user profile activity has two popup menus for configuring the users settings and one for the handling group assignments then the file names for the menus would be: `activity_user_profile_user_settings.xml` and `activity_user_profile_group_assignments.xml`. + ## Translations We manage translations via [Transifex](https://www.transifex.com/nextcloud/nextcloud/android/). So just request joining the translation team for Android on the site and start translating. All translations will then be automatically pushed to this repository, there is no need for any pull request for translations. diff --git a/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt b/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt index f8f4b5405324..d115e298c34d 100644 --- a/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt +++ b/src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt @@ -69,7 +69,7 @@ class ShowErrorActivity : AppCompatActivity() { } override fun onCreateOptionsMenu(menu: Menu?): Boolean { - menuInflater.inflate(R.menu.activity_error_show, menu) + menuInflater.inflate(R.menu.activity_show_error, menu) return super.onCreateOptionsMenu(menu) } diff --git a/src/main/java/com/nextcloud/client/etm/pages/EtmPreferencesFragment.kt b/src/main/java/com/nextcloud/client/etm/pages/EtmPreferencesFragment.kt index 68866d1c1d3b..a14506feffbf 100644 --- a/src/main/java/com/nextcloud/client/etm/pages/EtmPreferencesFragment.kt +++ b/src/main/java/com/nextcloud/client/etm/pages/EtmPreferencesFragment.kt @@ -51,7 +51,7 @@ class EtmPreferencesFragment : EtmBaseFragment() { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { super.onCreateOptionsMenu(menu, inflater) - inflater.inflate(R.menu.etm_preferences, menu) + inflater.inflate(R.menu.fragment_etm_preferences, menu) } override fun onOptionsItemSelected(item: MenuItem): Boolean { diff --git a/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt b/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt index 7d3342bc2a4f..4c791716f9a4 100644 --- a/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt +++ b/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt @@ -84,7 +84,7 @@ class LogsActivity : ToolbarActivity() { } override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.logs_menu, menu) + menuInflater.inflate(R.menu.activity_logs, menu) (menu.findItem(R.id.action_search).actionView as SearchView).apply { setOnQueryTextListener(searchBoxListener) diff --git a/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java index ec5fb347298f..f083396db1a3 100644 --- a/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -765,7 +765,7 @@ public boolean onPrepareOptionsMenu(Menu menu) { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.main_menu, menu); + inflater.inflate(R.menu.activity_file_display, menu); menu.findItem(R.id.action_create_dir).setVisible(false); menu.findItem(R.id.action_select_all).setVisible(false); diff --git a/src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java b/src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java index 211fddb9b817..72953d250ae2 100644 --- a/src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java @@ -293,11 +293,7 @@ protected void onPause() { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.main_menu, menu); - menu.findItem(R.id.action_switch_view).setVisible(false); - menu.findItem(R.id.action_sync_account).setVisible(false); - menu.findItem(R.id.action_select_all).setVisible(false); - // menu.findItem(R.id.action_sort).setVisible(false); + inflater.inflate(R.menu.activity_folder_picker, menu); return true; } diff --git a/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java b/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java index 79ada93f41c2..46792c86afbc 100644 --- a/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java @@ -303,7 +303,7 @@ private void hideRefreshLayoutLoader() { } public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.notifications_actions_menu, menu); + getMenuInflater().inflate(R.menu.activity_notifications, menu); return true; } diff --git a/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java b/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java index 90f5f8090fcd..06b62f7b90c1 100755 --- a/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java @@ -1016,7 +1016,7 @@ private boolean isHaveMultipleAccount() { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.receive_file_menu, menu); + inflater.inflate(R.menu.activity_receive_external_files, menu); if (!isHaveMultipleAccount()) { MenuItem switchAccountMenu = menu.findItem(R.id.action_switch_account); diff --git a/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java b/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java index a71264e372be..0bf20965b426 100644 --- a/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java @@ -175,7 +175,7 @@ protected void onCreate(Bundle savedInstanceState) { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.synced_folders_menu, menu); + inflater.inflate(R.menu.activity_synced_folders, menu); if (powerManagementService.isPowerSavingExclusionAvailable()) { MenuItem item = menu.findItem(R.id.action_disable_power_save_check); diff --git a/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java b/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java index c65f12731c74..4a46e4e5c7ca 100644 --- a/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -254,7 +254,7 @@ public static void startUploadActivityForResult(Activity activity, Account accou @Override public boolean onCreateOptionsMenu(Menu menu) { mOptionsMenu = menu; - getMenuInflater().inflate(R.menu.upload_files_picker, menu); + getMenuInflater().inflate(R.menu.activity_upload_files, menu); if(!mLocalFolderPickerMode) { MenuItem selectAll = menu.findItem(R.id.action_select_all); diff --git a/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java b/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java index 5bb867f9b867..606cc7db24c7 100755 --- a/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java @@ -269,7 +269,7 @@ protected void onPause() { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.upload_list_menu, menu); + inflater.inflate(R.menu.activity_upload_list, menu); return true; } diff --git a/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java b/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java index 60b5ce39a70b..db5e18e2e782 100644 --- a/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java +++ b/src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java @@ -156,7 +156,7 @@ public void onCreate(Bundle savedInstanceState) { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.user_info_menu, menu); + inflater.inflate(R.menu.activity_user_info, menu); return true; } diff --git a/src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java b/src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java index 2ac47fb9ca8c..9bebf2244313 100644 --- a/src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java +++ b/src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java @@ -183,7 +183,7 @@ private void onOverflowIconClicked(View view, AppCompatCheckBox allowEditsCheckB context.getTheme().applyStyle(R.style.FallbackThemingTheme, true); } PopupMenu popup = new PopupMenu(context, view); - popup.inflate(R.menu.file_detail_sharing_menu); + popup.inflate(R.menu.item_user_sharing_settings); prepareOptionsMenu(popup.getMenu(), share); diff --git a/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java index c33b437d315c..6b7943c46963 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -300,7 +300,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat private void onOverflowIconClicked(View view) { PopupMenu popup = new PopupMenu(getActivity(), view); - popup.inflate(R.menu.file_details_actions_menu); + popup.inflate(R.menu.fragment_file_detail); prepareOptionsMenu(popup.getMenu()); popup.setOnMenuItemClickListener(this::optionsItemSelected); diff --git a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java index 69139ec13694..35be700d8c05 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java @@ -409,7 +409,7 @@ public void showLinkOverflowMenu() { } PopupMenu popup = new PopupMenu(context, overflowMenuShareLink); - popup.inflate(R.menu.file_detail_sharing_link_menu); + popup.inflate(R.menu.fragment_file_detail_sharing_link); prepareOptionsMenu(popup.getMenu()); popup.setOnMenuItemClickListener(this::optionsItemSelected); popup.show(); diff --git a/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java b/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java index ab26974836d6..3919351a31ef 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java @@ -467,7 +467,7 @@ public void showActivityDetailView(OCFile file) { @Override public void onOverflowIconClicked(OCFile file, View view) { PopupMenu popup = new PopupMenu(getActivity(), view); - popup.inflate(R.menu.file_actions_menu); + popup.inflate(R.menu.item_file); Account currentAccount = ((FileActivity) getActivity()).getAccount(); FileMenuFilter mf = new FileMenuFilter(mAdapter.getFiles().size(), Collections.singleton(file), @@ -587,7 +587,7 @@ public boolean onCreateActionMode(ActionMode mode, Menu menu) { mActiveActionMode = mode; MenuInflater inflater = getActivity().getMenuInflater(); - inflater.inflate(R.menu.file_actions_menu, menu); + inflater.inflate(R.menu.item_file, menu); mode.invalidate(); //set gray color diff --git a/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java b/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java index 11c089471673..2f6597e8378f 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java @@ -166,7 +166,7 @@ public static ContactListFragment newInstance(OCFile file, Account account) { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.contactlist_menu, menu); + inflater.inflate(R.menu.fragment_contact_list, menu); } @Override diff --git a/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java b/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java index 385850b8591f..ac094285d20c 100644 --- a/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java +++ b/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java @@ -315,7 +315,7 @@ public void onStop() { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.file_actions_menu, menu); + inflater.inflate(R.menu.item_file, menu); } /** diff --git a/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java b/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java index ca91c8869eb4..30f6698412e6 100644 --- a/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java +++ b/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java @@ -334,7 +334,7 @@ private void stopAudio() { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.file_actions_menu, menu); + inflater.inflate(R.menu.item_file, menu); } @Override diff --git a/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java b/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java index 4eb15b2e0225..d4345bc9ac8f 100644 --- a/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java +++ b/src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java @@ -396,7 +396,7 @@ protected void onPostExecute(final StringWriter stringWriter) { @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); - inflater.inflate(R.menu.file_actions_menu, menu); + inflater.inflate(R.menu.item_file, menu); MenuItem menuItem = menu.findItem(R.id.action_search); menuItem.setVisible(true); diff --git a/src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java b/src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java index 83200f40e2e6..a6aac5ac08d4 100644 --- a/src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java +++ b/src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java @@ -212,7 +212,7 @@ public void onDestroy() { @Override public void onOverflowIconClicked(TrashbinFile file, View view) { PopupMenu popup = new PopupMenu(this, view); - popup.inflate(R.menu.trashbin_actions_menu); + popup.inflate(R.menu.item_trashbin); popup.setOnMenuItemClickListener(item -> { trashbinPresenter.removeTrashbinFile(file); @@ -243,7 +243,7 @@ public void onRestoreIconClicked(TrashbinFile file, View view) { @Override public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.trashbin_options_menu, menu); + getMenuInflater().inflate(R.menu.activity_trashbin, menu); return true; } diff --git a/src/main/res/layout/drawer.xml b/src/main/res/layout/drawer.xml index 84f3773a362a..240f965d93c0 100644 --- a/src/main/res/layout/drawer.xml +++ b/src/main/res/layout/drawer.xml @@ -31,7 +31,7 @@ android:background="@color/bg_default" android:theme="@style/NavigationView_ItemTextAppearance" app:headerLayout="@layout/drawer_header" - app:menu="@menu/drawer_menu"> + app:menu="@menu/partial_drawer_entries"> + + + + + + + + diff --git a/src/main/res/menu/logs_menu.xml b/src/main/res/menu/activity_logs.xml similarity index 100% rename from src/main/res/menu/logs_menu.xml rename to src/main/res/menu/activity_logs.xml diff --git a/src/main/res/menu/notifications_actions_menu.xml b/src/main/res/menu/activity_notifications.xml similarity index 96% rename from src/main/res/menu/notifications_actions_menu.xml rename to src/main/res/menu/activity_notifications.xml index 97e8b0805b5d..5a4eaab72110 100644 --- a/src/main/res/menu/notifications_actions_menu.xml +++ b/src/main/res/menu/activity_notifications.xml @@ -1,4 +1,5 @@ -