Skip to content
This repository was archived by the owner on Mar 24, 2023. It is now read-only.

Commit 6a0eef3

Browse files
Remove Write storage permission from app
we really do not need it Signed-off-by: sunilpaulmathew <sunil.kde@gmail.com>
1 parent 26aa903 commit 6a0eef3

5 files changed

Lines changed: 27 additions & 67 deletions

File tree

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
88
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
99
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
10-
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
11-
tools:ignore="ScopedStorage" />
12-
10+
1311
<application
1412
android:allowBackup="true"
1513
android:fullBackupContent="true"

app/src/main/java/com/smartpack/kernelprofiler/utils/CreateConfigActivity.java

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.smartpack.kernelprofiler.utils;
22

3-
import android.Manifest;
43
import android.os.Bundle;
54
import android.os.Environment;
65

76
import androidx.annotation.Nullable;
87
import androidx.appcompat.app.AppCompatActivity;
98
import androidx.appcompat.widget.AppCompatEditText;
109
import androidx.appcompat.widget.AppCompatImageButton;
11-
import androidx.core.app.ActivityCompat;
1210

1311
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
1412
import com.google.android.material.textview.MaterialTextView;
@@ -49,27 +47,20 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4947
mTitle = findViewById(R.id.title);
5048
mTitle.setText(getString(R.string.create_config));
5149
mSave.setOnClickListener(v -> {
52-
if (Utils.checkWriteStoragePermission(this)) {
53-
if (mConfigTitleHint.getText() != null && !mConfigTitleHint.getText().toString().equals("")) {
54-
new MaterialAlertDialogBuilder(this)
55-
.setIcon(R.mipmap.ic_launcher)
56-
.setTitle(getString(R.string.save_config_title))
57-
.setMessage(Utils.existFile(
58-
Environment.getExternalStorageDirectory().toString() + "/kernelprofiler.json") ?
59-
getString(R.string.save_config_warning, Environment.getExternalStorageDirectory()
60-
.toString() + "/kernelprofiler.json") : getString(R.string.save_config_message,
61-
Environment.getExternalStorageDirectory().toString() + "/kernelprofiler.json"))
62-
.setNeutralButton(getString(R.string.cancel), (dialog1, id1) -> {})
63-
.setPositiveButton(getString(R.string.yes), (dialog1, id1) -> saveConfig())
64-
.show();
65-
} else {
66-
Utils.snackbar(mTitle, getString(R.string.title_empty_message));
67-
}
50+
if (mConfigTitleHint.getText() != null && !mConfigTitleHint.getText().toString().equals("")) {
51+
new MaterialAlertDialogBuilder(this)
52+
.setIcon(R.mipmap.ic_launcher)
53+
.setTitle(getString(R.string.save_config_title))
54+
.setMessage(Utils.existFile(
55+
Environment.getExternalStorageDirectory().toString() + "/kernelprofiler.json") ?
56+
getString(R.string.save_config_warning, Environment.getExternalStorageDirectory()
57+
.toString() + "/kernelprofiler.json") : getString(R.string.save_config_message,
58+
Environment.getExternalStorageDirectory().toString() + "/kernelprofiler.json"))
59+
.setNeutralButton(getString(R.string.cancel), (dialog1, id1) -> {})
60+
.setPositiveButton(getString(R.string.yes), (dialog1, id1) -> saveConfig())
61+
.show();
6862
} else {
69-
ActivityCompat.requestPermissions(this, new String[]{
70-
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
71-
Utils.snackbar(mTitle, getString(R.string.storage_access_denied) + " " +
72-
Environment.getExternalStorageDirectory().toString());
63+
Utils.snackbar(mTitle, getString(R.string.title_empty_message));
7364
}
7465
});
7566
mCheck.setOnClickListener(v -> {

app/src/main/java/com/smartpack/kernelprofiler/utils/CreateProfileActivity.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.smartpack.kernelprofiler.utils;
22

3-
import android.Manifest;
43
import android.annotation.SuppressLint;
54
import android.content.pm.ActivityInfo;
65
import android.os.AsyncTask;
@@ -12,7 +11,6 @@
1211
import androidx.appcompat.app.AppCompatActivity;
1312
import androidx.appcompat.widget.AppCompatEditText;
1413
import androidx.appcompat.widget.AppCompatImageButton;
15-
import androidx.core.app.ActivityCompat;
1614
import androidx.core.widget.NestedScrollView;
1715

1816
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
@@ -58,20 +56,13 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
5856

5957
mBack.setOnClickListener(v -> onBackPressed());
6058
mSave.setOnClickListener(v -> {
61-
if (Utils.checkWriteStoragePermission(this)) {
62-
if (mProfileDetailsHint.getText() != null && !mProfileDetailsHint.getText().toString().equals("")) {
63-
if (mProfileDescriptionHint.getText() == null || mProfileDescriptionHint.getText().toString().equals("")) {
64-
Utils.snackbar(mTitle, getString(R.string.profile_description_empty));
65-
}
66-
createProfile();
67-
} else {
68-
Utils.snackbar(mTitle, getString(R.string.profile_details_empty));
59+
if (mProfileDetailsHint.getText() != null && !mProfileDetailsHint.getText().toString().equals("")) {
60+
if (mProfileDescriptionHint.getText() == null || mProfileDescriptionHint.getText().toString().equals("")) {
61+
Utils.snackbar(mTitle, getString(R.string.profile_description_empty));
6962
}
63+
createProfile();
7064
} else {
71-
ActivityCompat.requestPermissions(this, new String[] {
72-
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
73-
Utils.snackbar(mTitle, getString(R.string.storage_access_denied) + " " +
74-
Environment.getExternalStorageDirectory().toString());
65+
Utils.snackbar(mTitle, getString(R.string.profile_details_empty));
7566
}
7667
});
7768
mTestButton.setOnClickListener(v -> {

app/src/main/java/com/smartpack/kernelprofiler/utils/EditConfigActivity.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package com.smartpack.kernelprofiler.utils;
22

3-
import android.Manifest;
43
import android.os.Bundle;
5-
import android.os.Environment;
64

75
import androidx.annotation.Nullable;
86
import androidx.appcompat.app.AppCompatActivity;
97
import androidx.appcompat.widget.AppCompatEditText;
108
import androidx.appcompat.widget.AppCompatImageButton;
119
import androidx.appcompat.widget.AppCompatTextView;
12-
import androidx.core.app.ActivityCompat;
1310

1411
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
1512
import com.smartpack.kernelprofiler.R;
@@ -67,22 +64,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6764
mTitle = findViewById(R.id.title);
6865
mTitle.setText(getString(R.string.edit_config));
6966
mSave.setOnClickListener(v -> {
70-
if (Utils.checkWriteStoragePermission(this)) {
71-
if (mConfigTitleHint.getText() != null && !mConfigTitleHint.getText().toString().equals("")) {
72-
new MaterialAlertDialogBuilder(this)
73-
.setMessage(getString(R.string.edit_config_message))
74-
.setNegativeButton(getString(R.string.cancel), (dialog1, id1) -> {
75-
})
76-
.setPositiveButton(getString(R.string.ok), (dialog1, id1) -> createConfig())
77-
.show();
78-
} else {
79-
Utils.snackbar(mTitle, getString(R.string.title_empty_message));
80-
}
67+
if (mConfigTitleHint.getText() != null && !mConfigTitleHint.getText().toString().equals("")) {
68+
new MaterialAlertDialogBuilder(this)
69+
.setMessage(getString(R.string.edit_config_message))
70+
.setNegativeButton(getString(R.string.cancel), (dialog1, id1) -> {
71+
})
72+
.setPositiveButton(getString(R.string.ok), (dialog1, id1) -> createConfig())
73+
.show();
8174
} else {
82-
ActivityCompat.requestPermissions(this, new String[]{
83-
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
84-
Utils.snackbar(mTitle, getString(R.string.storage_access_denied) + " " +
85-
Environment.getExternalStorageDirectory().toString());
75+
Utils.snackbar(mTitle, getString(R.string.title_empty_message));
8676
}
8777
});
8878
mCheck.setOnClickListener(v -> {

app/src/main/java/com/smartpack/kernelprofiler/utils/Utils.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -267,16 +267,6 @@ public static boolean isNetworkUnavailable(Context context) {
267267
return (cm.getActiveNetworkInfo() == null) || !cm.getActiveNetworkInfo().isConnectedOrConnecting();
268268
}
269269

270-
/*
271-
* Taken and used almost as such from the following stackoverflow discussion
272-
* Ref: https://stackoverflow.com/questions/7203668/how-permission-can-be-checked-at-runtime-without-throwing-securityexception
273-
*/
274-
public static boolean checkWriteStoragePermission(Context context) {
275-
String permission = android.Manifest.permission.WRITE_EXTERNAL_STORAGE;
276-
int res = context.checkCallingOrSelfPermission(permission);
277-
return (res == PackageManager.PERMISSION_GRANTED);
278-
}
279-
280270
/**
281271
* Taken and used almost as such from the following stackoverflow discussion
282272
* https://stackoverflow.com/questions/3571223/how-do-i-get-the-file-extension-of-a-file-in-java

0 commit comments

Comments
 (0)