diff options
Diffstat (limited to 'app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java')
-rw-r--r-- | app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java b/app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java new file mode 100644 index 0000000..b00d0d6 --- /dev/null +++ b/app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java | |||
@@ -0,0 +1,34 @@ | |||
1 | package org.pacien.tincapp.commands; | ||
2 | |||
3 | import android.annotation.SuppressLint; | ||
4 | import android.content.Context; | ||
5 | |||
6 | import com.annimon.stream.Stream; | ||
7 | |||
8 | import org.pacien.tincapp.context.AppPaths; | ||
9 | |||
10 | import java.io.File; | ||
11 | |||
12 | /** | ||
13 | * @author pacien | ||
14 | */ | ||
15 | final public class PermissionFixer { | ||
16 | |||
17 | private PermissionFixer() { | ||
18 | // static class | ||
19 | } | ||
20 | |||
21 | @SuppressLint({"SetWorldReadable", "SetWorldWritable"}) | ||
22 | static private Boolean setAllRWXPermissions(File f) { | ||
23 | return f.setReadable(true, false) | ||
24 | && f.setWritable(true, false) | ||
25 | && f.setExecutable(true, false); | ||
26 | } | ||
27 | |||
28 | static public Boolean makePrivateDirsPublic(Context ctx) { | ||
29 | return Stream.of(AppPaths.confDir(ctx), AppPaths.logDir(ctx), AppPaths.pidDir(ctx)) | ||
30 | .map(PermissionFixer::setAllRWXPermissions) | ||
31 | .reduce((x, y) -> x && y).get(); | ||
32 | } | ||
33 | |||
34 | } | ||