@@ -234,7 +234,7 @@ private Activity getActivity() {
234234 public void onAccountChosen (@ NonNull User user ) {
235235 setAccount (user .toPlatformAccount (), false );
236236 initTargetFolder ();
237- populateDirectoryList ();
237+ populateDirectoryList (null );
238238 }
239239
240240 @ Override
@@ -258,7 +258,7 @@ private void browseToFolderIfItExists() {
258258 final OCFile fileByPath = getStorageManager ().getFileByPath (full_path );
259259 if (fileByPath != null ) {
260260 startSyncFolderOperation (fileByPath );
261- populateDirectoryList ();
261+ populateDirectoryList (null );
262262 } else {
263263 browseToRoot ();
264264 preferences .setLastUploadPath (OCFile .ROOT_PATH );
@@ -290,7 +290,7 @@ protected void onDestroy() {
290290 public void onSortingOrderChosen (FileSortOrder newSortOrder ) {
291291 preferences .setSortOrder (mFile , newSortOrder );
292292 sortButton .setText (DisplayUtils .getSortOrderStringId (newSortOrder ));
293- populateDirectoryList ();
293+ populateDirectoryList (null );
294294 }
295295
296296 @ Override
@@ -310,8 +310,10 @@ public void selectFile(OCFile file) {
310310 }
311311
312312 startSyncFolderOperation (file );
313- mParents .push (file .getFileName ());
314- populateDirectoryList ();
313+
314+ String filename = fileDataStorageManager .getFileNameBasedOnEncryptionStatus (file );
315+ mParents .push (filename );
316+ populateDirectoryList (file );
315317 }
316318 }
317319
@@ -712,7 +714,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
712714 // account at this point
713715 // since account setup can set only one account at time
714716 setAccount (accounts [0 ], false );
715- populateDirectoryList ();
717+ populateDirectoryList (null );
716718 }
717719 }
718720 }
@@ -727,7 +729,7 @@ private void setupActionBarSubtitle() {
727729 }
728730 }
729731
730- private void populateDirectoryList () {
732+ private void populateDirectoryList (OCFile file ) {
731733 setupEmptyList ();
732734 setupToolbar ();
733735 ActionBar actionBar = getSupportActionBar ();
@@ -743,7 +745,11 @@ private void populateDirectoryList() {
743745 if (TextUtils .isEmpty (current_dir )) {
744746 viewThemeUtils .files .themeActionBar (this , actionBar , R .string .uploader_top_message );
745747 } else {
746- viewThemeUtils .files .themeActionBar (this , actionBar , current_dir );
748+ if (file != null ) {
749+ viewThemeUtils .files .themeActionBar (this , actionBar , file .getFileName ());
750+ } else {
751+ viewThemeUtils .files .themeActionBar (this , actionBar , current_dir );
752+ }
747753 }
748754
749755 actionBar .setDisplayHomeAsUpEnabled (notRoot );
@@ -754,37 +760,44 @@ private void populateDirectoryList() {
754760
755761 Log_OC .d (TAG , "Populating view with content of : " + full_path );
756762
757- mFile = getStorageManager ().getFileByPath (full_path );
758- if (mFile != null ) {
759- List <OCFile > files = getStorageManager ().getFolderContent (mFile , false );
763+ if (file != null ) {
764+ mFile = file ;
765+ } else {
766+ mFile = getStorageManager ().getFileByPath (full_path );
767+ }
760768
761- if (files .isEmpty ()) {
762- setMessageForEmptyList (R .string .file_list_empty_headline , R .string .empty ,
763- R .drawable .uploads );
764- mEmptyListContainer .setVisibility (View .VISIBLE );
765- binding .list .setVisibility (View .GONE );
766- } else {
767- mEmptyListContainer .setVisibility (View .GONE );
768- files = sortFileList (files );
769- setupReceiveExternalFilesAdapter (files );
770- }
769+ if (mFile == null ) {
770+ return ;
771+ }
771772
772- MaterialButton btnChooseFolder = binding .uploaderChooseFolder ;
773- viewThemeUtils .material .colorMaterialButtonPrimaryFilled (btnChooseFolder );
774- btnChooseFolder .setOnClickListener (this );
773+ List <OCFile > files = getStorageManager ().getFolderContent (mFile , false );
775774
776- btnChooseFolder .setEnabled (mFile .canWrite ());
775+ if (files .isEmpty ()) {
776+ setMessageForEmptyList (R .string .file_list_empty_headline , R .string .empty ,
777+ R .drawable .uploads );
778+ mEmptyListContainer .setVisibility (View .VISIBLE );
779+ binding .list .setVisibility (View .GONE );
780+ } else {
781+ mEmptyListContainer .setVisibility (View .GONE );
782+ files = sortFileList (files );
783+ setupReceiveExternalFilesAdapter (files );
784+ }
777785
778- viewThemeUtils .platform .themeStatusBar (this );
786+ MaterialButton btnChooseFolder = binding .uploaderChooseFolder ;
787+ viewThemeUtils .material .colorMaterialButtonPrimaryFilled (btnChooseFolder );
788+ btnChooseFolder .setOnClickListener (this );
779789
780- viewThemeUtils .material .colorMaterialButtonPrimaryOutlined (binding .uploaderCancel );
781- binding .uploaderCancel .setOnClickListener (this );
790+ btnChooseFolder .setEnabled (mFile .canWrite ());
782791
783- sortButton = binding .toolbarLayout .sortButton ;
784- FileSortOrder sortOrder = preferences .getSortOrderByFolder (mFile );
785- sortButton .setText (DisplayUtils .getSortOrderStringId (sortOrder ));
786- sortButton .setOnClickListener (l -> openSortingOrderDialogFragment (getSupportFragmentManager (), sortOrder ));
787- }
792+ viewThemeUtils .platform .themeStatusBar (this );
793+
794+ viewThemeUtils .material .colorMaterialButtonPrimaryOutlined (binding .uploaderCancel );
795+ binding .uploaderCancel .setOnClickListener (this );
796+
797+ sortButton = binding .toolbarLayout .sortButton ;
798+ FileSortOrder sortOrder = preferences .getSortOrderByFolder (mFile );
799+ sortButton .setText (DisplayUtils .getSortOrderStringId (sortOrder ));
800+ sortButton .setOnClickListener (l -> openSortingOrderDialogFragment (getSupportFragmentManager (), sortOrder ));
788801 }
789802
790803 private void setupReceiveExternalFilesAdapter (List <OCFile > files ) {
@@ -979,19 +992,15 @@ public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationRe
979992 * @param operation Creation operation performed.
980993 * @param result Result of the creation.
981994 */
982- private void onCreateFolderOperationFinish (CreateFolderOperation operation ,
983- RemoteOperationResult result ) {
995+ private void onCreateFolderOperationFinish (CreateFolderOperation operation , RemoteOperationResult result ) {
984996 if (result .isSuccess ()) {
985997 String remotePath = operation .getRemotePath ().substring (0 , operation .getRemotePath ().length () - 1 );
986998 String newFolder = remotePath .substring (remotePath .lastIndexOf ('/' ) + 1 );
987999 mParents .push (newFolder );
988- populateDirectoryList ();
1000+ populateDirectoryList (null );
9891001 } else {
9901002 try {
991- DisplayUtils .showSnackMessage (
992- this , ErrorMessageAdapter .getErrorCauseMessage (result , operation , getResources ())
993- );
994-
1003+ DisplayUtils .showSnackMessage (this , ErrorMessageAdapter .getErrorCauseMessage (result , operation , getResources ()));
9951004 } catch (NotFoundException e ) {
9961005 Log_OC .e (TAG , "Error while trying to show fail message " , e );
9971006 }
@@ -1043,8 +1052,10 @@ public boolean onCreateOptionsMenu(Menu menu) {
10431052
10441053 setupSearchView (menu );
10451054
1046- MenuItem newFolderMenuItem = menu .findItem (R .id .action_create_dir );
1047- newFolderMenuItem .setEnabled (mFile .canWrite ());
1055+ if (mFile != null ) {
1056+ MenuItem newFolderMenuItem = menu .findItem (R .id .action_create_dir );
1057+ newFolderMenuItem .setEnabled (mFile .canWrite ());
1058+ }
10481059
10491060 return true ;
10501061 }
@@ -1155,9 +1166,8 @@ public void onReceive(Context context, Intent intent) {
11551166 }
11561167
11571168 if (currentDir .getRemotePath ().equals (syncFolderRemotePath )) {
1158- populateDirectoryList ();
1169+ populateDirectoryList (currentFile );
11591170 }
1160- mFile = currentFile ;
11611171 }
11621172
11631173 mSyncInProgress = !FileSyncAdapter .EVENT_FULL_SYNC_END .equals (event ) &&
0 commit comments