aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/org/pacien/tincapp/commands/PermissionFixer.java
blob: b00d0d66b49d7911cfd90ba39ff948568ee68f20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package org.pacien.tincapp.commands;

import android.annotation.SuppressLint;
import android.content.Context;

import com.annimon.stream.Stream;

import org.pacien.tincapp.context.AppPaths;

import java.io.File;

/**
 * @author pacien
 */
final public class PermissionFixer {

	private PermissionFixer() {
		// static class
	}

	@SuppressLint({"SetWorldReadable", "SetWorldWritable"})
	static private Boolean setAllRWXPermissions(File f) {
		return f.setReadable(true, false)
				&& f.setWritable(true, false)
				&& f.setExecutable(true, false);
	}

	static public Boolean makePrivateDirsPublic(Context ctx) {
		return Stream.of(AppPaths.confDir(ctx), AppPaths.logDir(ctx), AppPaths.pidDir(ctx))
				.map(PermissionFixer::setAllRWXPermissions)
				.reduce((x, y) -> x && y).get();
	}

}