Skip to content
This repository was archived by the owner on Jul 22, 2021. It is now read-only.

Commit a4e6cd5

Browse files
Seperatley handle Android 11 and old versions
Also, improve permission handling Signed-off-by: sunilpaulmathew <sunil.kde@gmail.com>
1 parent aa0a818 commit a4e6cd5

File tree

5 files changed

+47
-42
lines changed

5 files changed

+47
-42
lines changed

app/src/main/java/com/smartpack/scriptmanager/MainActivity.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.content.Intent;
1414
import android.database.Cursor;
1515
import android.net.Uri;
16+
import android.os.Build;
1617
import android.os.Bundle;
1718
import android.os.Environment;
1819
import android.os.Handler;
@@ -61,13 +62,17 @@ protected void onCreate(Bundle savedInstanceState) {
6162
});
6263

6364
mFab.setOnClickListener(v -> {
64-
if (!Utils.checkWriteStoragePermission(this)) {
65-
ActivityCompat.requestPermissions(this, new String[]{
66-
Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
67-
Utils.snackbar(findViewById(android.R.id.content), getString(R.string.permission_denied_write_storage));
68-
return;
65+
if (Build.VERSION.SDK_INT >= 30) {
66+
Scripts.createScript(this);
67+
} else {
68+
if (!Utils.checkWriteStoragePermission(this)) {
69+
ActivityCompat.requestPermissions(this, new String[]{
70+
Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
71+
Utils.snackbar(findViewById(android.R.id.content), getString(R.string.permission_denied_write_storage));
72+
return;
73+
}
74+
Utils.fabMenu(mFab, this);
6975
}
70-
Utils.fabMenu(mFab, this);
7176
});
7277

7378
mInfo.setOnClickListener(v -> {

app/src/main/java/com/smartpack/scriptmanager/activities/FilePickerActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ public void onBindViewHolder(@NonNull RecycleViewAdapter.ViewHolder holder, int
253253
holder.mLinearLayout.setOnLongClickListener(v -> {
254254
Scripts.mScriptName = new File(this.data.get(position)).getName();
255255
Scripts.mScriptPath = this.data.get(position);
256-
Scripts.createScript(holder.mLinearLayout.getContext());
256+
Scripts.launchCreateScriptActivity(holder.mLinearLayout.getContext());
257257
return false;
258258
});
259259
} else {

app/src/main/java/com/smartpack/scriptmanager/adapters/RecycleViewAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public void onClick(View view) {
116116
.show();
117117
break;
118118
case 1:
119-
Scripts.createScript(view.getContext());
119+
Scripts.launchCreateScriptActivity(view.getContext());
120120
break;
121121
case 2:
122122
Scripts.shareScript(view.getContext());

app/src/main/java/com/smartpack/scriptmanager/utils/Scripts.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,32 @@ public static void createScript(String file, String text, Context context) {
104104
Utils.create(text, file);
105105
}
106106

107-
public static void createScript(Context context) {
107+
public static void createScript(Activity activity) {
108+
Utils.dialogEditText(null,
109+
(dialogInterface, i) -> {
110+
}, text -> {
111+
if (text.isEmpty()) {
112+
Utils.snackbar(activity.findViewById(android.R.id.content), activity.getString(R.string.name_empty));
113+
return;
114+
}
115+
if (!text.endsWith(".sh")) {
116+
text += ".sh";
117+
}
118+
if (text.contains(" ")) {
119+
text = text.replace(" ", "_");
120+
}
121+
if (Utils.exist(scriptExistsCheck(text, activity))) {
122+
Utils.snackbar(activity.findViewById(android.R.id.content), activity.getString(R.string.script_exists, text));
123+
return;
124+
}
125+
mScriptName = text;
126+
mScriptPath = null;
127+
launchCreateScriptActivity(activity);
128+
}, activity).setOnDismissListener(dialogInterface -> {
129+
}).show();
130+
}
131+
132+
public static void launchCreateScriptActivity(Context context) {
108133
mOutput = new ArrayList<>();
109134
Intent intent = new Intent(context, CreateScriptActivity.class);
110135
context.startActivity(intent);
@@ -211,7 +236,7 @@ public static void loadUI(Activity activity) {
211236
try {
212237
Scripts.mRecycleViewAdapter = new RecycleViewAdapter(Scripts.getData(activity));
213238
} catch (RuntimeException ignored) {}
214-
if (Utils.checkWriteStoragePermission(activity)) {
239+
if (Build.VERSION.SDK_INT >= 30 || Utils.checkWriteStoragePermission(activity)) {
215240
Scripts.mRecyclerView.setAdapter(Scripts.mRecycleViewAdapter);
216241
} else {
217242
ActivityCompat.requestPermissions(activity, new String[] {

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

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -395,41 +395,16 @@ public static void fabMenu(FloatingActionButton button, Activity activity) {
395395
popupMenu.setOnMenuItemClickListener(item -> {
396396
switch (item.getItemId()) {
397397
case 0:
398-
Utils.dialogEditText(null,
399-
(dialogInterface, i) -> {
400-
}, text -> {
401-
if (text.isEmpty()) {
402-
Utils.snackbar(activity.findViewById(android.R.id.content), activity.getString(R.string.name_empty));
403-
return;
404-
}
405-
if (!text.endsWith(".sh")) {
406-
text += ".sh";
407-
}
408-
if (text.contains(" ")) {
409-
text = text.replace(" ", "_");
410-
}
411-
if (Utils.exist(Scripts.scriptExistsCheck(text, activity))) {
412-
Utils.snackbar(activity.findViewById(android.R.id.content), activity.getString(R.string.script_exists, text));
413-
return;
414-
}
415-
Scripts.mScriptName = text;
416-
Scripts.mScriptPath = null;
417-
Scripts.createScript(activity);
418-
}, activity).setOnDismissListener(dialogInterface -> {
419-
}).show();
398+
Scripts.createScript(activity);
420399
break;
421400
case 1:
422-
if (Build.VERSION.SDK_INT >= 30) {
423-
Utils.snackbar(activity.findViewById(android.R.id.content), "This feature is not yet available on Android 11!");
401+
if (Utils.getBoolean("use_file_picker", true, activity)) {
402+
Intent filePicker = new Intent(activity, FilePickerActivity.class);
403+
activity.startActivity(filePicker);
424404
} else {
425-
if (Utils.getBoolean("use_file_picker", true, activity)) {
426-
Intent filePicker = new Intent(activity, FilePickerActivity.class);
427-
activity.startActivity(filePicker);
428-
} else {
429-
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
430-
intent.setType("*/*");
431-
activity.startActivityForResult(intent, 0);
432-
}
405+
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
406+
intent.setType("*/*");
407+
activity.startActivityForResult(intent, 0);
433408
}
434409
break;
435410
}

0 commit comments

Comments
 (0)