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