Skip to content

Commit 6b5dabc

Browse files
committed
Changes per PR feedback #2
- Fix top right menu Open in Terminal not working - Fix permission granting sequence with PermissionsActivity
1 parent 4678801 commit 6b5dabc

File tree

3 files changed

+30
-12
lines changed

3 files changed

+30
-12
lines changed

app/src/main/java/com/amaze/filemanager/ui/activities/MainActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@
115115
import com.amaze.filemanager.ui.dialogs.GeneralDialogCreation;
116116
import com.amaze.filemanager.ui.dialogs.HiddenFilesDialog;
117117
import com.amaze.filemanager.ui.dialogs.HistoryDialog;
118+
import com.amaze.filemanager.ui.dialogs.OpenFolderInTerminalFragment;
118119
import com.amaze.filemanager.ui.dialogs.RenameBookmark;
119120
import com.amaze.filemanager.ui.dialogs.RenameBookmark.BookmarkCallback;
120121
import com.amaze.filemanager.ui.dialogs.SftpConnectDialog;
@@ -1285,7 +1286,8 @@ public boolean onOptionsItemSelected(MenuItem item) {
12851286
} else if (item.getItemId() == R.id.search) {
12861287
getAppbar().getSearchView().revealSearchView();
12871288
} else if (item.getItemId() == R.id.open_in_terminal) {
1288-
// do nothing
1289+
OpenFolderInTerminalFragment.Companion.openTerminalOrShow(
1290+
mainFragment.getCurrentPath(), this);
12891291
}
12901292
return null;
12911293
},

app/src/main/java/com/amaze/filemanager/ui/activities/superclasses/PermissionsActivity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import com.afollestad.materialdialogs.MaterialDialog
3939
import com.amaze.filemanager.R
4040
import com.amaze.filemanager.application.AppConfig
4141
import com.amaze.filemanager.ui.dialogs.GeneralDialogCreation
42+
import com.amaze.filemanager.ui.dialogs.OpenFolderInTerminalFragment.Companion.TERMINAL_PERMISSIONS
4243
import com.amaze.filemanager.utils.Utils
4344
import com.google.android.material.snackbar.BaseTransientBottomBar
4445
import com.google.android.material.snackbar.Snackbar
@@ -265,8 +266,9 @@ open class PermissionsActivity :
265266
isInitialStart: Boolean,
266267
) {
267268
permissionCallbacks[code] = onPermissionGranted
268-
269-
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) {
269+
if (TERMINAL_PERMISSIONS.contains(permission) ||
270+
ActivityCompat.shouldShowRequestPermissionRationale(this, permission)
271+
) {
270272
rationale
271273
.getActionButton(DialogAction.POSITIVE)
272274
.setOnClickListener { v: View? ->

app/src/main/java/com/amaze/filemanager/ui/dialogs/OpenFolderInTerminalFragment.kt

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import com.bumptech.glide.Glide
5353
import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader
5454
import com.bumptech.glide.util.ViewPreloadSizeProvider
5555
import org.slf4j.LoggerFactory
56+
import androidx.core.content.edit
5657

5758
/**
5859
* Bottom sheet fragment for open folder in terminal app actions.
@@ -71,6 +72,7 @@ class OpenFolderInTerminalFragment : BaseBottomSheetFragment(), AdjustListViewFo
7172
private lateinit var sharedPreferences: SharedPreferences
7273

7374
companion object {
75+
@JvmStatic
7476
private val logger = LoggerFactory.getLogger(OpenFileDialogFragment::class.java)
7577

7678
const val KEY_PREFERENCES_DEFAULT = "terminal._DEFAULT"
@@ -80,6 +82,14 @@ class OpenFolderInTerminalFragment : BaseBottomSheetFragment(), AdjustListViewFo
8082
private const val ANDROID_TERM_PERMISSION = "jackpal.androidterm.permission.RUN_SCRIPT"
8183
private const val TERMUX_PERMISSION = "com.termux.permission.RUN_COMMAND"
8284

85+
@JvmStatic
86+
val TERMINAL_PERMISSIONS =
87+
arrayOf(
88+
TERMONE_PLUS_PERMISSION,
89+
ANDROID_TERM_PERMISSION,
90+
TERMUX_PERMISSION,
91+
)
92+
8393
@SuppressLint("SdCardPath")
8494
private const val TERMUX_SHELL_LOCATION = "/data/data/com.termux/files/usr/bin/bash"
8595

@@ -196,10 +206,12 @@ class OpenFolderInTerminalFragment : BaseBottomSheetFragment(), AdjustListViewFo
196206
appDataParcelable: AppDataParcelable,
197207
sharedPreferences: SharedPreferences,
198208
) {
199-
sharedPreferences.edit().putString(
200-
KEY_PREFERENCES_LAST,
201-
appDataParcelable.packageName,
202-
).apply()
209+
sharedPreferences.edit {
210+
putString(
211+
KEY_PREFERENCES_LAST,
212+
appDataParcelable.packageName,
213+
)
214+
}
203215
}
204216

205217
/**
@@ -209,10 +221,12 @@ class OpenFolderInTerminalFragment : BaseBottomSheetFragment(), AdjustListViewFo
209221
appDataParcelable: AppDataParcelable,
210222
sharedPreferences: SharedPreferences,
211223
) {
212-
sharedPreferences.edit().putString(
213-
KEY_PREFERENCES_DEFAULT,
214-
appDataParcelable.packageName,
215-
).apply()
224+
sharedPreferences.edit {
225+
putString(
226+
KEY_PREFERENCES_DEFAULT,
227+
appDataParcelable.packageName,
228+
)
229+
}
216230
}
217231

218232
/**
@@ -221,7 +235,7 @@ class OpenFolderInTerminalFragment : BaseBottomSheetFragment(), AdjustListViewFo
221235
fun clearPreferences(sharedPreferences: SharedPreferences) {
222236
AppConfig.getInstance().runInBackground {
223237
arrayOf(KEY_PREFERENCES_DEFAULT, KEY_PREFERENCES_LAST).forEach {
224-
sharedPreferences.edit().remove(it).apply()
238+
sharedPreferences.edit { remove(it) }
225239
}
226240
}
227241
}

0 commit comments

Comments
 (0)