owncloud / android

:phone: The ownCloud Android App
GNU General Public License v2.0
3.76k stars 3.09k forks source link

[FEATURE REQUEST] Show same remove dialog for every kind of file or folder #4404

Closed Aitorbp closed 1 week ago

Aitorbp commented 1 month ago

Related Issues

App: https://github.com/owncloud/android/issues/4377


QA

Aitorbp commented 2 weeks ago

Add new shortcut icon to remove dialog when shortcut pr will be merged.

jesmrec commented 1 week ago

QA checks:

Open dialog from:

jesmrec commented 1 week ago

(1) [FIXED]

  1. Select any item on the file list and click on Remove
  2. Change device orientation

Current:

app crashes. This is the stacktrace:

Process: com.owncloud.android.debug, PID: 29844
                 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.owncloud.android.debug/com.owncloud.android.ui.activity.FileDisplayActivity}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.owncloud.android.presentation.files.removefile.RemoveFilesDialogFragment: could not find Fragment constructor
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
                    at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5456)
                    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5362)
                    at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
                    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
                    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
                    at android.os.Handler.dispatchMessage(Handler.java:106)
                    at android.os.Looper.loop(Looper.java:223)
                    at android.app.ActivityThread.main(ActivityThread.java:7656)
                    at java.lang.reflect.Method.invoke(Native Method)
                    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
                 Caused by: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment com.owncloud.android.presentation.files.removefile.RemoveFilesDialogFragment: could not find Fragment constructor
                    at androidx.fragment.app.Fragment.instantiate(Fragment.java:681)
                    at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:57)
                    at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:507)
                    at androidx.fragment.app.FragmentState.instantiate(FragmentState.java:81)
                    at androidx.fragment.app.FragmentStateManager.<init>(FragmentStateManager.java:85)
                    at androidx.fragment.app.FragmentManager.restoreSaveStateInternal(FragmentManager.java:2507)
                    at androidx.fragment.app.FragmentManager.attachController(FragmentManager.java:2667)
                    at androidx.fragment.app.FragmentController.attachHost(FragmentController.java:117)
                    at androidx.fragment.app.FragmentActivity.lambda$init$3$androidx-fragment-app-FragmentActivity(FragmentActivity.java:140)
                    at androidx.fragment.app.FragmentActivity$$ExternalSyntheticLambda3.onContextAvailable(Unknown Source:2)
                    at androidx.activity.contextaware.ContextAwareHelper.dispatchOnContextAvailable(ContextAwareHelper.java:99)
                    at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:352)
                    at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:217)
                    at com.owncloud.android.ui.activity.DrawerActivity.onCreate(DrawerActivity.kt:588)
                    at com.owncloud.android.ui.activity.FileActivity.onCreate(FileActivity.java:119)
                    at com.owncloud.android.ui.activity.FileDisplayActivity.onCreate(FileDisplayActivity.kt:197)
                    at android.app.Activity.performCreate(Activity.java:8000)
                    at android.app.Activity.performCreate(Activity.java:7984)
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
                    at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5456) 
                    at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5362) 
                    at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69) 
                    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
                    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
                    at android.os.Handler.dispatchMessage(Handler.java:106) 
                    at android.os.Looper.loop(Looper.java:223) 
                    at android.app.ActivityThread.main(ActivityThread.java:7656) 
                    at java.lang.reflect.Method.invoke(Native Method) 
                    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
                 Caused by: java.lang.NoSuchMethodException: com.owncloud.android.presentation.files.removefile.RemoveFilesDialogFragment.<init> []
                    at java.lang.Class.getConstructor0(Class.java:2332)
                    at java.lang.Class.getConstructor(Class.java:1728)
                    at androidx.fragment.app.Fragment.instantiate(Fragment.java:666)

Expected:

no crash

Pixel 2, Android 11 015c716f1

Aitorbp commented 1 week ago

The last report is ready to test @jesmrec. Also I added in another commit one fix related to release note of shortcut. I added here because that pr is already merged.

jesmrec commented 1 week ago

Crash is fixed and feature is OK from my side.

About this

Also I added in another commit one fix related to release note of shortcut. I added here because that pr is already merged.

I'd change to avoid the word FAB in the release notes, that's pretty technically scoped to Android and non-advanced users will not understand.

Aitorbp commented 1 week ago

Crash is fixed and feature is OK from my side.

About this

Also I added in another commit one fix related to release note of shortcut. I added here because that pr is already merged.

I'd change to avoid the word FAB in the release notes, that's pretty technically scoped to Android and non-advanced users will not understand.

Changed by floating button @jesmrec

jesmrec commented 1 week ago

Approved