Sfoglia il codice sorgente

Improve menu file name pattern

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
Andy Scherzinger 5 anni fa
parent
commit
693f408276
41 ha cambiato i file con 91 aggiunte e 28 eliminazioni
  1. 20 0
      CONTRIBUTING.md
  2. 1 1
      src/main/java/com/nextcloud/client/errorhandling/ShowErrorActivity.kt
  3. 1 1
      src/main/java/com/nextcloud/client/etm/pages/EtmPreferencesFragment.kt
  4. 1 1
      src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt
  5. 1 1
      src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java
  6. 1 5
      src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java
  7. 1 1
      src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java
  8. 1 1
      src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
  9. 1 1
      src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java
  10. 1 1
      src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java
  11. 1 1
      src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java
  12. 1 1
      src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java
  13. 1 1
      src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java
  14. 1 1
      src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java
  15. 1 1
      src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java
  16. 2 2
      src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java
  17. 1 1
      src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java
  18. 1 1
      src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java
  19. 1 1
      src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java
  20. 1 1
      src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java
  21. 2 2
      src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java
  22. 1 1
      src/main/res/layout/drawer.xml
  23. 0 0
      src/main/res/menu/activity_file_display.xml
  24. 46 0
      src/main/res/menu/activity_folder_picker.xml
  25. 0 0
      src/main/res/menu/activity_logs.xml
  26. 2 1
      src/main/res/menu/activity_notifications.xml
  27. 0 0
      src/main/res/menu/activity_receive_external_files.xml
  28. 0 0
      src/main/res/menu/activity_show_error.xml
  29. 0 0
      src/main/res/menu/activity_synced_folders.xml
  30. 0 0
      src/main/res/menu/activity_trashbin.xml
  31. 0 0
      src/main/res/menu/activity_upload_files.xml
  32. 0 0
      src/main/res/menu/activity_upload_list.xml
  33. 0 0
      src/main/res/menu/activity_user_info.xml
  34. 0 0
      src/main/res/menu/fragment_contact_list.xml
  35. 0 0
      src/main/res/menu/fragment_etm_preferences.xml
  36. 0 0
      src/main/res/menu/fragment_file_detail.xml
  37. 0 0
      src/main/res/menu/fragment_file_detail_sharing_link.xml
  38. 0 0
      src/main/res/menu/item_file.xml
  39. 0 0
      src/main/res/menu/item_trashbin.xml
  40. 0 0
      src/main/res/menu/item_user_sharing_settings.xml
  41. 0 0
      src/main/res/menu/partial_drawer_entries.xml

+ 20 - 0
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.
 

+ 1 - 1
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)
     }
 

+ 1 - 1
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 {

+ 1 - 1
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)
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -765,7 +765,7 @@ public class FileDisplayActivity extends FileActivity
     @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);

+ 1 - 5
src/main/java/com/owncloud/android/ui/activity/FolderPickerActivity.java

@@ -293,11 +293,7 @@ public class FolderPickerActivity extends FileActivity implements FileFragment.C
     @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;
     }
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -303,7 +303,7 @@ public class NotificationsActivity extends FileActivity implements Notifications
     }
 
     public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.notifications_actions_menu, menu);
+        getMenuInflater().inflate(R.menu.activity_notifications, menu);
 
         return true;
     }

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -1016,7 +1016,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     @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);

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java

@@ -175,7 +175,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
     @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);

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

@@ -254,7 +254,7 @@ public class UploadFilesActivity extends FileActivity implements
     @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);

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -269,7 +269,7 @@ public class UploadListActivity extends FileActivity {
     @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;
     }

+ 1 - 1
src/main/java/com/owncloud/android/ui/activity/UserInfoActivity.java

@@ -156,7 +156,7 @@ public class UserInfoActivity extends FileActivity implements Injectable {
     @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;
     }

+ 1 - 1
src/main/java/com/owncloud/android/ui/adapter/UserListAdapter.java

@@ -183,7 +183,7 @@ public class UserListAdapter extends RecyclerView.Adapter<UserListAdapter.UserVi
             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);
 

+ 1 - 1
src/main/java/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -300,7 +300,7 @@ public class FileDetailFragment extends FileFragment implements OnClickListener,
 
     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);

+ 1 - 1
src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java

@@ -409,7 +409,7 @@ public class FileDetailSharingFragment extends Fragment implements UserListAdapt
         }
 
         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();

+ 2 - 2
src/main/java/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -467,7 +467,7 @@ public class OCFileListFragment extends ExtendedListFragment implements
     @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 class OCFileListFragment extends ExtendedListFragment implements
             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

+ 1 - 1
src/main/java/com/owncloud/android/ui/fragment/contactsbackup/ContactListFragment.java

@@ -166,7 +166,7 @@ public class ContactListFragment extends FileFragment implements Injectable {
     @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

+ 1 - 1
src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -315,7 +315,7 @@ public class PreviewImageFragment extends FileFragment implements Injectable {
     @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);
     }
 
     /**

+ 1 - 1
src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -334,7 +334,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
     @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

+ 1 - 1
src/main/java/com/owncloud/android/ui/preview/PreviewTextFragment.java

@@ -396,7 +396,7 @@ public class PreviewTextFragment extends FileFragment implements SearchView.OnQu
     @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);

+ 2 - 2
src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.java

@@ -212,7 +212,7 @@ public class TrashbinActivity extends FileActivity implements
     @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 class TrashbinActivity extends FileActivity implements
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.trashbin_options_menu, menu);
+        getMenuInflater().inflate(R.menu.activity_trashbin, menu);
 
         return true;
     }

+ 1 - 1
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">
 
         <LinearLayout
             android:id="@+id/drawer_quota"

+ 0 - 0
src/main/res/menu/main_menu.xml → src/main/res/menu/activity_file_display.xml


+ 46 - 0
src/main/res/menu/activity_folder_picker.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Nextcloud Android client application
+
+  @author Andy Scherzinger
+  Copyright (C) 2019 Andy Scherzinger
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program. If not, see <https://www.gnu.org/licenses/>.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/action_search"
+        android:contentDescription="@string/actionbar_search"
+        android:icon="@drawable/ic_search"
+        android:title="@string/actionbar_search"
+        app:actionViewClass="androidx.appcompat.widget.SearchView"
+        app:showAsAction="ifRoom" />
+    <item
+        android:id="@+id/action_create_dir"
+        android:contentDescription="@string/actionbar_mkdir"
+        android:icon="@drawable/ic_action_create_dir"
+        android:orderInCategory="1"
+        android:title="@string/actionbar_mkdir"
+        app:showAsAction="never" />
+    <item
+        android:id="@+id/action_sort"
+        android:contentDescription="@string/actionbar_sort"
+        android:icon="@drawable/ic_sort_variant"
+        android:orderInCategory="1"
+        android:title="@string/actionbar_sort"
+        app:showAsAction="never" />
+
+</menu>

+ 0 - 0
src/main/res/menu/logs_menu.xml → src/main/res/menu/activity_logs.xml


+ 2 - 1
src/main/res/menu/notifications_actions_menu.xml → src/main/res/menu/activity_notifications.xml

@@ -1,4 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?><!--
+<?xml version="1.0" encoding="utf-8"?>
+<!--
  Nextcloud Android client application
 
   @author Tobias Kaminsky

+ 0 - 0
src/main/res/menu/receive_file_menu.xml → src/main/res/menu/activity_receive_external_files.xml


+ 0 - 0
src/main/res/menu/activity_error_show.xml → src/main/res/menu/activity_show_error.xml


+ 0 - 0
src/main/res/menu/synced_folders_menu.xml → src/main/res/menu/activity_synced_folders.xml


+ 0 - 0
src/main/res/menu/trashbin_options_menu.xml → src/main/res/menu/activity_trashbin.xml


+ 0 - 0
src/main/res/menu/upload_files_picker.xml → src/main/res/menu/activity_upload_files.xml


+ 0 - 0
src/main/res/menu/upload_list_menu.xml → src/main/res/menu/activity_upload_list.xml


+ 0 - 0
src/main/res/menu/user_info_menu.xml → src/main/res/menu/activity_user_info.xml


+ 0 - 0
src/main/res/menu/contactlist_menu.xml → src/main/res/menu/fragment_contact_list.xml


+ 0 - 0
src/main/res/menu/etm_preferences.xml → src/main/res/menu/fragment_etm_preferences.xml


+ 0 - 0
src/main/res/menu/file_details_actions_menu.xml → src/main/res/menu/fragment_file_detail.xml


+ 0 - 0
src/main/res/menu/file_detail_sharing_link_menu.xml → src/main/res/menu/fragment_file_detail_sharing_link.xml


+ 0 - 0
src/main/res/menu/file_actions_menu.xml → src/main/res/menu/item_file.xml


+ 0 - 0
src/main/res/menu/trashbin_actions_menu.xml → src/main/res/menu/item_trashbin.xml


+ 0 - 0
src/main/res/menu/file_detail_sharing_menu.xml → src/main/res/menu/item_user_sharing_settings.xml


+ 0 - 0
src/main/res/menu/drawer_menu.xml → src/main/res/menu/partial_drawer_entries.xml