1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-12-23 11:21:29 +00:00

Allow opening folder in other app by long clicking (fixes #175).

Unfortunately, there is no folder mime type that seems to work
with popular file managers, so we use '*/*', which means the list
contains a lot of apps that don't make sense.
This commit is contained in:
Felix Ableitner 2014-11-12 23:38:33 +02:00
parent e131849171
commit c8f0df35fa

View file

@ -1,8 +1,11 @@
package com.nutomic.syncthingandroid.fragments; package com.nutomic.syncthingandroid.fragments;
import android.content.Intent; import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.ListFragment; import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
@ -19,7 +22,7 @@ import java.util.TimerTask;
* Displays a list of all existing folders. * Displays a list of all existing folders.
*/ */
public class FoldersFragment extends ListFragment implements SyncthingService.OnApiChangeListener, public class FoldersFragment extends ListFragment implements SyncthingService.OnApiChangeListener,
AdapterView.OnItemClickListener { AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {
private FoldersAdapter mAdapter; private FoldersAdapter mAdapter;
@ -56,6 +59,7 @@ public class FoldersFragment extends ListFragment implements SyncthingService.On
setListAdapter(mAdapter); setListAdapter(mAdapter);
setEmptyText(getString(R.string.folder_list_empty)); setEmptyText(getString(R.string.folder_list_empty));
getListView().setOnItemClickListener(this); getListView().setOnItemClickListener(this);
getListView().setOnItemLongClickListener(this);
} }
private void updateList() { private void updateList() {
@ -94,4 +98,16 @@ public class FoldersFragment extends ListFragment implements SyncthingService.On
startActivity(intent); startActivity(intent);
} }
/**
* Opens the folder path with a user selected app.
*/
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.parse(mAdapter.getItem(i).Path);
intent.setDataAndType(uri, "*/*");
startActivity(intent);
return true;
}
} }