Skip to content

Commit c405859

Browse files
Merge pull request #148 from nextcloud/145_no_go_back_alternative
#145 Alternative fix for drawer navigation fix in upload activity
2 parents 8876f52 + 7d0e65f commit c405859

File tree

6 files changed

+32
-22
lines changed

6 files changed

+32
-22
lines changed

AndroidManifest.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
-->
2121
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2222
package="com.owncloud.android"
23-
android:versionCode="10020001"
24-
android:versionName="1.2.0 RC1">
23+
android:versionCode="10020002"
24+
android:versionName="1.2.0 RC2">
2525

2626
<uses-sdk
2727
android:minSdkVersion="14"

src/com/owncloud/android/ui/activity/DrawerActivity.java

+9-9
Original file line numberDiff line numberDiff line change
@@ -204,14 +204,12 @@ public boolean onNavigationItemSelected(MenuItem menuItem) {
204204
case R.id.nav_all_files:
205205
menuItem.setChecked(true);
206206
mCheckedMenuItem = menuItem.getItemId();
207-
MainApp.showOnlyFilesOnDevice(false);
208-
refreshDirectory();
207+
showFiles(false);
209208
break;
210209
case R.id.nav_on_device:
211210
menuItem.setChecked(true);
212211
mCheckedMenuItem = menuItem.getItemId();
213-
MainApp.showOnlyFilesOnDevice(true);
214-
refreshDirectory();
212+
showFiles(true);
215213
break;
216214
case R.id.nav_uploads:
217215
Intent uploadListIntent = new Intent(getApplicationContext(),
@@ -251,6 +249,13 @@ public boolean onNavigationItemSelected(MenuItem menuItem) {
251249
}
252250
}
253251

252+
/**
253+
* show the file list to the user.
254+
*
255+
* @param onDeviceOnly flag to decide if all files or only the ones on the device should be shown
256+
*/
257+
public abstract void showFiles(boolean onDeviceOnly);
258+
254259
/**
255260
* sets the new/current account and restarts. In case the given account equals the actual/current account the
256261
* call will be ignored.
@@ -405,11 +410,6 @@ private void repopulateAccountList(Account[] accounts) {
405410
showMenu();
406411
}
407412

408-
/**
409-
* Method that gets called on drawer menu click for 'All Files' and 'Offline Files'.
410-
*/
411-
public abstract void refreshDirectory();
412-
413413
/**
414414
* Updates title bar and home buttons (state and icon).
415415
* <p/>

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

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import android.support.v4.app.FragmentTransaction;
3737
import android.widget.Toast;
3838

39+
import com.owncloud.android.MainApp;
3940
import com.owncloud.android.R;
4041
import com.owncloud.android.authentication.AccountUtils;
4142
import com.owncloud.android.authentication.AuthenticatorActivity;
@@ -73,7 +74,7 @@
7374
/**
7475
* Activity with common behaviour for activities handling {@link OCFile}s in ownCloud {@link Account}s .
7576
*/
76-
public class FileActivity extends DrawerActivity
77+
public abstract class FileActivity extends DrawerActivity
7778
implements OnRemoteOperationListener, ComponentsGetter, SslUntrustedCertDialog.OnSslUntrustedCertListener {
7879

7980
public static final String EXTRA_FILE = "com.owncloud.android.ui.activity.FILE";
@@ -119,8 +120,9 @@ public class FileActivity extends DrawerActivity
119120
private ServiceConnection mDownloadServiceConnection, mUploadServiceConnection = null;
120121

121122
@Override
122-
public void refreshDirectory() {
123-
// implementation to be done in FileDisplayActivity
123+
public void showFiles(boolean onDeviceOnly) {
124+
// must be specialized in subclasses
125+
MainApp.showOnlyFilesOnDevice(onDeviceOnly);
124126
}
125127

126128
/**

src/com/owncloud/android/ui/activity/FileDisplayActivity.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,11 @@ protected void onCreate(Bundle savedInstanceState) {
169169
setupToolbar();
170170

171171
// setup drawer
172-
setupDrawer(R.id.nav_all_files);
172+
if(MainApp.getOnlyOnDevice()) {
173+
setupDrawer(R.id.nav_on_device);
174+
} else {
175+
setupDrawer(R.id.nav_all_files);
176+
}
173177

174178
mDualPane = getResources().getBoolean(R.bool.large_land_layout);
175179
mLeftFragmentContainer = findViewById(R.id.left_fragment_container);
@@ -1795,7 +1799,9 @@ public void allFilesOption() {
17951799
browseToRoot();
17961800
}
17971801

1798-
public void refreshDirectory() {
1802+
@Override
1803+
public void showFiles(boolean onDeviceOnly) {
1804+
super.showFiles(onDeviceOnly);
17991805
getListOfFilesFragment().refreshDirectory();
18001806
}
18011807
}

src/com/owncloud/android/ui/activity/UploadListActivity.java

+8-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import android.os.Bundle;
3535
import android.os.IBinder;
3636
import android.support.v4.app.FragmentTransaction;
37-
import android.support.v4.view.GravityCompat;
3837
import android.view.Menu;
3938
import android.view.MenuInflater;
4039
import android.view.MenuItem;
@@ -71,6 +70,14 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
7170

7271
private UploadMessagesReceiver mUploadMessagesReceiver;
7372

73+
@Override
74+
public void showFiles(boolean onDeviceOnly) {
75+
super.showFiles(onDeviceOnly);
76+
Intent i = new Intent(getApplicationContext(), FileDisplayActivity.class);
77+
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
78+
startActivity(i);
79+
}
80+
7481
@Override
7582
protected void onCreate(Bundle savedInstanceState) {
7683
super.onCreate(savedInstanceState);

src/com/owncloud/android/ui/preview/PreviewImageActivity.java

-5
Original file line numberDiff line numberDiff line change
@@ -582,9 +582,4 @@ private boolean isHoneycombOrHigher() {
582582
}
583583
return false;
584584
}
585-
586-
@Override
587-
public void refreshDirectory() {
588-
backToDisplayActivity();
589-
}
590585
}

0 commit comments

Comments
 (0)