That stack is not needed
[pub/Android/ownCloud.git] / src / eu / alefzero / owncloud / ui / activity / FileDisplayActivity.java
index e7ee4cc..a38f39b 100644 (file)
@@ -62,7 +62,6 @@ import eu.alefzero.owncloud.datamodel.OCFile;
 import eu.alefzero.owncloud.files.services.FileUploader;\r
 import eu.alefzero.owncloud.syncadapter.FileSyncService;\r
 import eu.alefzero.owncloud.ui.fragment.FileListFragment;\r
-import eu.alefzero.owncloud.utils.OwnCloudVersion;\r
 import eu.alefzero.webdav.WebdavClient;\r
 \r
 /**\r
@@ -76,13 +75,14 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         OnNavigationListener, OnClickListener {\r
     private ArrayAdapter<String> mDirectories;\r
     private DataStorageManager mStorageManager;\r
+    private String[] mDirs = null;\r
 \r
     private SyncBroadcastReceiver syncBroadcastRevceiver;\r
 \r
+    private static final String KEY_DIR = "DIR";\r
+    \r
     private static final int DIALOG_SETUP_ACCOUNT = 0;\r
     private static final int DIALOG_CREATE_DIR = 1;\r
-\r
-    private static final int REQUEST_ACCOUNT_SETUP = 0;\r
     private static final int ACTION_SELECT_FILE = 1;\r
 \r
     public void pushPath(String path) {\r
@@ -172,8 +172,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
 \r
         requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);\r
         setProgressBarIndeterminateVisibility(false);\r
-        // if (getSupportFragmentManager().findFragmentById(R.id.fileList) ==\r
-        // null)\r
+        \r
         setContentView(R.layout.files);\r
 \r
     }\r
@@ -182,41 +181,36 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     public boolean onOptionsItemSelected(MenuItem item) {\r
         boolean retval = true;\r
         switch (item.getItemId()) {\r
-        case R.id.settingsItem: {\r
-            Intent i = new Intent(this, Preferences.class);\r
-            startActivity(i);\r
-            break;\r
-        }\r
-        case R.id.createDirectoryItem: {\r
-            showDialog(DIALOG_CREATE_DIR);\r
-            break;\r
-        }\r
-        case R.id.startSync: {\r
-            Bundle bundle = new Bundle();\r
-            bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
-            ContentResolver.requestSync(\r
-                    AccountUtils.getCurrentOwnCloudAccount(this),\r
-                    "org.owncloud", bundle);\r
-            break;\r
-        }\r
-        case R.id.action_upload: {\r
-            Intent action = new Intent(Intent.ACTION_GET_CONTENT);\r
-            action = action.setType("*/*")\r
-                    .addCategory(Intent.CATEGORY_OPENABLE);\r
-            startActivityForResult(\r
-                    Intent.createChooser(action, "Upload file from..."),\r
-                    ACTION_SELECT_FILE);\r
-            break;\r
-        }\r
-\r
-        case android.R.id.home: {\r
-            Intent i = new Intent(this, AccountSelectActivity.class);\r
-            startActivity(i);\r
-            finish();\r
-            break;\r
-        }\r
-        default:\r
-            retval = false;\r
+            case R.id.createDirectoryItem: {\r
+                showDialog(DIALOG_CREATE_DIR);\r
+                break;\r
+            }\r
+            case R.id.startSync: {\r
+                Bundle bundle = new Bundle();\r
+                bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);\r
+                ContentResolver.requestSync(\r
+                        AccountUtils.getCurrentOwnCloudAccount(this),\r
+                        "org.owncloud", bundle);\r
+                break;\r
+            }\r
+            case R.id.action_upload: {\r
+                Intent action = new Intent(Intent.ACTION_GET_CONTENT);\r
+                action = action.setType("*/*")\r
+                        .addCategory(Intent.CATEGORY_OPENABLE);\r
+                startActivityForResult(\r
+                        Intent.createChooser(action, "Upload file from..."),\r
+                        ACTION_SELECT_FILE);\r
+                break;\r
+            }\r
+    \r
+            case android.R.id.home: {\r
+                Intent i = new Intent(this, AccountSelectActivity.class);\r
+                startActivity(i);\r
+                finish();\r
+                break;\r
+            }\r
+            default:\r
+                retval = false;\r
         }\r
         return retval;\r
     }\r
@@ -246,6 +240,23 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         if (!accountsAreSetup()) {\r
             showDialog(DIALOG_SETUP_ACCOUNT);\r
         }\r
+        mDirs = savedInstanceState.getStringArray(KEY_DIR);\r
+        mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);\r
+        mDirectories.add("/");\r
+        if (mDirs != null)\r
+            for (String s : mDirs)\r
+                mDirectories.insert(s, 0);\r
+    }\r
+    \r
+    @Override\r
+    protected void onSaveInstanceState(Bundle outState) {\r
+        super.onSaveInstanceState(outState);\r
+        if(mDirectories != null){\r
+            mDirs = new String[mDirectories.getCount()-1];\r
+            for (int j = mDirectories.getCount() - 2, i = 0; j >= 0; --j, ++i) {\r
+                mDirs[i] = mDirectories.getItem(j);\r
+            }\r
+        }\r
     }\r
 \r
     @Override\r
@@ -260,9 +271,15 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
         syncBroadcastRevceiver = new SyncBroadcastReceiver();\r
         registerReceiver(syncBroadcastRevceiver, f);\r
 \r
-        mDirectories = new CustomArrayAdapter<String>(this,\r
-                R.layout.sherlock_spinner_dropdown_item);\r
+        mDirectories = new CustomArrayAdapter<String>(this, R.layout.sherlock_spinner_dropdown_item);\r
         mDirectories.add("/");\r
+        if (mDirs != null) {\r
+            for (String s : mDirs)\r
+                mDirectories.insert(s, 0);\r
+            FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager()\r
+                    .findFragmentById(R.id.fileList);\r
+            if (fileListFramgent != null) fileListFramgent.listDirectory();\r
+        }\r
 \r
         mStorageManager = new FileDataStorageManager(\r
                 AccountUtils.getCurrentOwnCloudAccount(this),\r
@@ -275,7 +292,6 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
     }\r
 \r
     public void onActivityResult(int requestCode, int resultCode, Intent data) {\r
-        Log.e("ASD", requestCode + " " + resultCode);\r
         if (resultCode == RESULT_OK) {\r
             if (requestCode == ACTION_SELECT_FILE) {\r
                 Uri selectedImageUri = data.getData();\r
@@ -299,17 +315,16 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                         AccountUtils.getCurrentOwnCloudAccount(this));\r
                 String remotepath = new String();\r
                 for (int j = mDirectories.getCount() - 2; j >= 0; --j) {\r
-                    remotepath += "/" + URLDecoder.decode(mDirectories.getItem(j));\r
+                    remotepath += "/" + URLEncoder.encode(mDirectories.getItem(j));\r
                 }\r
                 if (!remotepath.endsWith("/"))\r
                     remotepath += "/";\r
-                remotepath += new File(filepath).getName();\r
+                remotepath += URLEncoder.encode(new File(filepath).getName());\r
                 Log.e("ASD", remotepath + "");\r
 \r
                 i.putExtra(FileUploader.KEY_LOCAL_FILE, filepath);\r
                 i.putExtra(FileUploader.KEY_REMOTE_FILE, remotepath);\r
-                i.putExtra(FileUploader.KEY_UPLOAD_TYPE,\r
-                        FileUploader.UPLOAD_SINGLE_FILE);\r
+                i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);\r
                 startService(i);\r
             }\r
         }\r
@@ -445,7 +460,7 @@ public class FileDisplayActivity extends SherlockFragmentActivity implements
                 FileListFragment fileListFramgent = (FileListFragment) getSupportFragmentManager()\r
                         .findFragmentById(R.id.fileList);\r
                 if (fileListFramgent != null)\r
-                    fileListFramgent.populateFileList();\r
+                    fileListFramgent.listDirectory();\r
             }\r
         }\r
 \r