summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2015-01-20 19:01:28 +0100
committerJacobo Aragunde Pérez <jaragunde@igalia.com>2015-02-10 09:40:26 +0000
commitbc8cb4e3b2a1fc4b84bf366945dd72e9ebeb00ce (patch)
treea32db24ec0332644c216d001ada7745d8ece90f0 /android
parentca022d5047fe252e4164008535cdc2ff156dbe7e (diff)
Android: run openDirectory() in a different thread.
The Document Provider framework will implement access to network services in the future, and network operations must be run in separate threads.
Diffstat (limited to 'android')
-rw-r--r--android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java78
1 files changed, 40 insertions, 38 deletions
diff --git a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
index efd4105ad39f..5606b1c1b395 100644
--- a/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
+++ b/android/experimental/LOAndroid3/src/java/org/libreoffice/ui/LibreOfficeUIActivity.java
@@ -182,6 +182,25 @@ public class LibreOfficeUIActivity extends LOAbout implements ActionBar.OnNaviga
}
+ private void refreshView() {
+ // enable home icon as "up" if required
+ if (!currentDirectory.equals(homeDirectory)) {
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ } else {
+ getActionBar().setDisplayHomeAsUpEnabled(false);
+ }
+ // refresh view
+ if (viewMode == GRID_VIEW) {
+ gv.setAdapter(new GridItemAdapter(getApplicationContext(),
+ currentDirectory, filePaths));
+ } else {
+ lv.setAdapter(new ListItemAdapter(getApplicationContext(),
+ filePaths));
+ }
+ // close drawer if it was open
+ drawerLayout.closeDrawer(drawerList);
+ }
+
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
@@ -224,49 +243,32 @@ public class LibreOfficeUIActivity extends LOAbout implements ActionBar.OnNaviga
@Override
protected void onPostExecute(Void result) {
- // enable home icon as "up" if required
- if (!currentDirectory.equals(homeDirectory)) {
- getActionBar().setDisplayHomeAsUpEnabled(true);
- }
- // refresh view
- if (viewMode == GRID_VIEW) {
- gv.setAdapter(new GridItemAdapter(getApplicationContext(),
- currentDirectory, filePaths));
- } else {
- lv.setAdapter(new ListItemAdapter(getApplicationContext(),
- filePaths));
- }
- // close drawer
- drawerLayout.closeDrawer(drawerList);
+ refreshView();
}
}.execute(provider);
}
public void openDirectory(IFile dir) {
- currentDirectory = dir;
- if( !currentDirectory.equals( homeDirectory )){
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayHomeAsUpEnabled(true);
- }else{
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayHomeAsUpEnabled( false );
- }
- filePaths = currentDirectory.listFiles(FileUtilities.getFileFilter(filterMode));
- // FileUtilities.sortFiles( filePaths, sortMode );
- /*
- for( int i = 0; i < fileNames.length; i++){
- fileNames[ i ] = filePaths[ i ].getName();
- if( !FileUtilities.hasThumbnail( filePaths[ i ] ) )
- {
- new ThumbnailGenerator( filePaths[ i ] );
- }
- }
- */
- if( viewMode == GRID_VIEW){
- gv.setAdapter( new GridItemAdapter(getApplicationContext(), currentDirectory, filePaths ) );
- }else{
- lv.setAdapter( new ListItemAdapter(getApplicationContext(), filePaths) );
- }
+ if (dir == null)
+ return;
+
+ new AsyncTask<IFile, Void, Void>() {
+ @Override
+ protected Void doInBackground(IFile... dir) {
+ // get list of files:
+ // this operation may imply network access and must be run in
+ // a different thread
+ currentDirectory = dir[0];
+ filePaths = currentDirectory.listFiles(FileUtilities
+ .getFileFilter(filterMode));
+ return null;
+ }
+
+ @Override
+ protected void onPostExecute(Void result) {
+ refreshView();
+ }
+ }.execute(dir);
}
public void open(IFile document) {