M src/main/java/org/safcephfs/CephFSDocumentsProvider.java => src/main/java/org/safcephfs/CephFSDocumentsProvider.java +10 -14
@@ 38,6 38,8 @@ public class CephFSDocumentsProvider extends DocumentsProvider {
private int uid;
private ToastThread lthread;
+ private boolean checkPermissions = true;
+
private static final int retries = 2;
private static final String[] DEFAULT_ROOT_PROJECTION = new String[]{
@@ 114,16 116,6 @@ public class CephFSDocumentsProvider extends DocumentsProvider {
ioThread.start();
ioHandler = new Handler(ioThread.getLooper());
uid = Process.myUid();
- SharedPreferences settings = PreferenceManager
- .getDefaultSharedPreferences(getContext());
- mon = settings.getString("mon", "");
- key = settings.getString("key", "");
- id = settings.getString("id", "");
- path = settings.getString("path", "");
- cm = new CephMount(id);
- cm.conf_set("mon_host", mon);
- cm.conf_set("key", key);
- cm.mount(path);
return true;
}
@@ 270,12 262,12 @@ public class CephFSDocumentsProvider extends DocumentsProvider {
row.add(Document.COLUMN_DISPLAY_NAME, entry);
if (cs.isDir()) {
row.add(Document.COLUMN_MIME_TYPE, Document.MIME_TYPE_DIR);
- if ((getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
+ if (!checkPermissions || (getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
row.add(Document.COLUMN_FLAGS, Document.FLAG_DIR_SUPPORTS_CREATE);
}
} else if (cs.isFile()) {
row.add(Document.COLUMN_MIME_TYPE, getMime(entry));
- if ((getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
+ if (!checkPermissions || (getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
row.add(Document.COLUMN_FLAGS, Document.FLAG_SUPPORTS_WRITE);
}
}
@@ 320,12 312,12 @@ public class CephFSDocumentsProvider extends DocumentsProvider {
row.add(Document.COLUMN_DISPLAY_NAME, filename);
if (cs.isDir()) {
row.add(Document.COLUMN_MIME_TYPE, Document.MIME_TYPE_DIR);
- if ((getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
+ if (!checkPermissions || (getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
row.add(Document.COLUMN_FLAGS, Document.FLAG_DIR_SUPPORTS_CREATE);
}
} else if (cs.isFile()) {
row.add(Document.COLUMN_MIME_TYPE, getMime(filename));
- if ((getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
+ if (!checkPermissions || (getPerm(cs) & PERM_WRITEABLE) == PERM_WRITEABLE) {
row.add(Document.COLUMN_FLAGS, Document.FLAG_SUPPORTS_WRITE);
}
}
@@ 346,6 338,10 @@ public class CephFSDocumentsProvider extends DocumentsProvider {
cm = new CephMount(id);
cm.conf_set("mon_host", mon);
cm.conf_set("key", key);
+ checkPermissions = settings.getBoolean("permissions", true);
+ if (!checkPermissions) {
+ cm.conf_set("client_permissions", "false");
+ }
cm.mount(path);
CephStatVFS csvfs = new CephStatVFS();
try {
M src/main/java/org/safcephfs/MainActivity.java => src/main/java/org/safcephfs/MainActivity.java +1 -1
@@ 30,7 30,7 @@ public class MainActivity extends PreferenceActivity
idText = (EditTextPreference) findPreference("id");
keyText = (EditTextPreference) findPreference("key");
- SharedPreferences settings=getPreferenceScreen().getSharedPreferences();
+ SharedPreferences settings = getPreferenceScreen().getSharedPreferences();
settings.registerOnSharedPreferenceChangeListener(this);
if (!settings.getString("mon", "").equals(""))
monText.setSummary(settings.getString("mon", ""));
M src/main/res/values/strings.xml => src/main/res/values/strings.xml +3 -0
@@ 12,4 12,7 @@
<string name="key">Secret key</string>
<string name="key_summary">Secret key of CephX user.</string>
<string name="key_filled">(filled)</string>
+ <string name="misc">Miscellaneous Settings</string>
+ <string name="permissions">Enforce file permissions</string>
+ <string name="permissions_summary">Whether to enforce file permissions.</string>
</resources>
M src/main/res/xml/main_pre.xml => src/main/res/xml/main_pre.xml +5 -0
@@ 17,4 17,9 @@
android:inputType="textPassword"
android:key="key" />
</PreferenceCategory>
+ <PreferenceCategory android:title="@string/misc">
+ <CheckBoxPreference android:key="permissions"
+ android:summary="@string/permissions_summary"
+ android:title="@string/permissions" />
+ </PreferenceCategory>
</PreferenceScreen>