Skip to content

Commit 67fb69e

Browse files
committed
Controlled navigation when deleting a file locally via a deep link
1 parent d94a039 commit 67fb69e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileActivity.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ public class FileActivity extends DrawerActivity
7373
public static final String EXTRA_ACCOUNT = "com.owncloud.android.ui.activity.ACCOUNT";
7474
public static final String EXTRA_FROM_NOTIFICATION =
7575
"com.owncloud.android.ui.activity.FROM_NOTIFICATION";
76+
public static final String ALREADY_HANDLED_DEEP_LINK =
77+
"com.owncloud.android.ui.activity.ALREADY_HANDLED_DEEP_LINK";
7678
public static final String EXTRA_FILE_LIST_OPTION = "EXTRA_FILE_LIST_OPTION";
7779

7880
private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID";
@@ -98,6 +100,8 @@ public class FileActivity extends DrawerActivity
98100
*/
99101
private boolean mFromNotification;
100102

103+
private boolean mAlreadyHandledDeepLink = false;
104+
101105
/**
102106
* Messages handler associated to the main thread and the life cycle of the activity
103107
*/
@@ -131,6 +135,7 @@ protected void onCreate(Bundle savedInstanceState) {
131135
if (savedInstanceState != null) {
132136
mFile = savedInstanceState.getParcelable(FileActivity.EXTRA_FILE);
133137
mFromNotification = savedInstanceState.getBoolean(FileActivity.EXTRA_FROM_NOTIFICATION);
138+
mAlreadyHandledDeepLink = savedInstanceState.getBoolean(FileActivity.ALREADY_HANDLED_DEEP_LINK);
134139
mFileOperationsHelper.setOpIdWaitingFor(
135140
savedInstanceState.getLong(KEY_WAITING_FOR_OP_ID, Long.MAX_VALUE)
136141
);
@@ -214,6 +219,7 @@ protected void onSaveInstanceState(Bundle outState) {
214219
super.onSaveInstanceState(outState);
215220
outState.putParcelable(FileActivity.EXTRA_FILE, mFile);
216221
outState.putBoolean(FileActivity.EXTRA_FROM_NOTIFICATION, mFromNotification);
222+
outState.putBoolean(FileActivity.ALREADY_HANDLED_DEEP_LINK, mAlreadyHandledDeepLink);
217223
outState.putLong(KEY_WAITING_FOR_OP_ID, mFileOperationsHelper.getOpIdWaitingFor());
218224
if (getSupportActionBar() != null && getSupportActionBar().getTitle() != null) {
219225
// Null check in case the actionbar is used in ActionBar.NAVIGATION_MODE_LIST
@@ -247,6 +253,14 @@ public boolean fromNotification() {
247253
return mFromNotification;
248254
}
249255

256+
public void setAlreadyHandledDeepLink(boolean alreadyHandledDeepLink) {
257+
mAlreadyHandledDeepLink = alreadyHandledDeepLink;
258+
}
259+
260+
public boolean isAlreadyHandledDeepLink() {
261+
return mAlreadyHandledDeepLink;
262+
}
263+
250264
public OperationsServiceBinder getOperationsServiceBinder() {
251265
return mOperationsServiceBinder;
252266
}

owncloudApp/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn
420420

421421
fun refreshListOfFilesFragment(reloadData: Boolean) {
422422
val fileListFragment = listOfFilesFragment
423-
if (intent.data == null) {
423+
if (intent.data == null || isAlreadyHandledDeepLink) {
424424
fileListFragment?.listDirectory(reloadData)
425425
} else {
426426
fileListFragment?.listDirectory(isFileDiscovered(intent.data))
@@ -1683,6 +1683,8 @@ class FileDisplayActivity : FileActivity(), FileFragment.ContainerActivity, OnEn
16831683
} else {
16841684
initFragmentsWithFile()
16851685
}
1686+
1687+
isAlreadyHandledDeepLink = true
16861688
}
16871689

16881690
companion object {

0 commit comments

Comments
 (0)