import android.app.AlertDialog;\r
import android.app.Dialog;\r
import android.app.ListActivity;\r
+import android.app.ActionBar.OnNavigationListener;\r
import android.content.DialogInterface;\r
import android.content.Intent;\r
import android.content.DialogInterface.OnCancelListener;\r
import android.content.res.Configuration;\r
import android.database.Cursor;\r
+import android.database.DataSetObserver;\r
import android.graphics.Bitmap;\r
import android.graphics.BitmapFactory;\r
import android.graphics.Matrix;\r
+import android.graphics.drawable.Drawable;\r
import android.net.Uri;\r
import android.os.Bundle;\r
import android.os.Environment;\r
import android.support.v4.app.FragmentActivity;\r
import android.support.v4.app.FragmentTransaction;\r
+import android.support.v4.view.Menu;\r
+import android.support.v4.view.MenuItem;\r
import android.text.TextUtils;\r
import android.util.Log;\r
-import android.view.Menu;\r
import android.view.MenuInflater;\r
-import android.view.MenuItem;\r
import android.view.View;\r
+import android.view.ViewGroup;\r
import android.view.Window;\r
+import android.widget.ArrayAdapter;\r
import android.widget.ImageView;\r
import android.widget.ListView;\r
+import android.widget.Spinner;\r
+import android.widget.SpinnerAdapter;\r
import android.widget.TextView;\r
import eu.alefzero.owncloud.R;\r
import eu.alefzero.owncloud.R.id;\r
* @author Bartek Przybylski\r
*\r
*/\r
-public class FileDisplayActivity extends FragmentActivity {\r
+\r
+public class FileDisplayActivity extends android.support.v4.app.FragmentActivity implements OnNavigationListener {\r
private DbHandler mDBHandler;\r
private Stack<String> mParents;\r
private LinkedList<String> mPath;\r
private Account mAccount;\r
private Cursor mCursor;\r
private boolean mIsDisplayingFile;\r
-\r
+ private ArrayAdapter<String> mDirectories;\r
+ \r
private static final int DIALOG_CHOOSE_ACCOUNT = 0;\r
-\r
+ \r
+ public void pushPath(String path) {\r
+ mDirectories.insert(path, 0);\r
+ }\r
+ \r
+ public boolean popPath() {\r
+ mDirectories.remove(mDirectories.getItem(0));\r
+ Log.d("TAG", ""+getActionBar().getCustomView());\r
+ return !mDirectories.isEmpty();\r
+ }\r
+ \r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
super.onCreate(savedInstanceState);\r
- getWindow().requestFeature(Window.FEATURE_NO_TITLE);\r
+ mDirectories = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item);\r
+ mDirectories.add("/");\r
setContentView(R.layout.files);\r
+ getActionBar().setNavigationMode(android.support.v4.app.ActionBar.NAVIGATION_MODE_LIST);\r
+ getActionBar().setDisplayShowTitleEnabled(false);\r
+ getActionBar().setListNavigationCallbacks(mDirectories, this);\r
\r
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();\r
- //ft.add(R.id.actionBar, new ActionBar());\r
- ft.add(R.id.fileList, new FileList());\r
+ ft.add(R.id.file_list_container, new FileList());\r
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {\r
ft.add(R.id.fileDetail, new FileDetail());\r
}\r
public void onClick(DialogInterface dialog, int item) {\r
mAccount = accMan.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE)[item];\r
dialog.dismiss();\r
- populateFileList();\r
}\r
});\r
builder.setOnCancelListener(new OnCancelListener() {\r
//}\r
// }\r
\r
- private void populateFileList() {\r
- if (mParents.empty()) {\r
- mCursor = getContentResolver().query(ProviderTableMeta.CONTENT_URI,\r
- null,\r
- ProviderTableMeta.FILE_ACCOUNT_OWNER+"=?",\r
- new String[]{mAccount.name},\r
- null);\r
- } else {\r
- mCursor = getContentResolver().query(Uri.withAppendedPath(ProviderTableMeta.CONTENT_URI_DIR, mParents.peek()),\r
- null,\r
- ProviderTableMeta.FILE_ACCOUNT_OWNER + "=?",\r
- new String[]{mAccount.name}, null);\r
- if (!mIsDisplayingFile) {\r
- //PathLayout pl = (PathLayout) findViewById(R.id.pathLayout1);\r
- //for (String s : mPath) {\r
- // pl.push(s);\r
- // }\r
- }\r
- }\r
+ \r
// setListAdapter(new FileListListAdapter(mCursor, this));\r
// getListView().invalidate();\r
+\r
+ @Override\r
+ public boolean onNavigationItemSelected(int itemPosition, long itemId) {\r
+ int i = itemPosition;\r
+ while (i-- != 0) {\r
+ popPath();\r
+ //mFileList.onBackPressed();\r
+ }\r
+ return true;\r
+ }\r
+ \r
+ @Override\r
+ public void onBackPressed() {\r
+ popPath();\r
+ if (mDirectories.getCount() == 0)\r
+ {\r
+ super.onBackPressed();\r
+ return;\r
+ }\r
+ ((FileList)getSupportFragmentManager().findFragmentById(id.file_list_container)).onBackPressed();\r
}\r
\r
//@Override\r
outState.putSerializable("path", mPath);\r
outState.putBoolean("isDisplayingFile", mIsDisplayingFile);\r
}*/\r
-\r
}
\ No newline at end of file