Style changes and permission ask rollbacks

* Main app theme now targets material3
* Permission checker/granter rollback for READ permission
This commit is contained in:
Martin Valba 2023-09-09 18:54:33 +00:00
parent fe2ae1d22b
commit 36d31f0dff
10 changed files with 73 additions and 92 deletions

View File

@ -32,6 +32,6 @@ dependencies {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -30,6 +30,6 @@ dependencies {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -35,6 +35,6 @@ dependencies {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -25,6 +25,6 @@ dependencies {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -87,6 +87,6 @@ dependencies {
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

View File

@ -48,7 +48,7 @@
android:name=".ui.term.NeoTermActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:launchMode="singleTask"
android:theme="@style/AppTheme.NoActionBar.Dark"
android:theme="@style/AppTheme.NoActionBar"
android:windowSoftInputMode="adjustResize|stateHidden"
android:exported="true">
<intent-filter>
@ -81,7 +81,7 @@
android:name=".ui.term.NeoTermRemoteInterface"
android:configChanges="orientation|keyboardHidden"
android:exported="true"
android:theme="@style/AppTheme.Dark"
android:theme="@style/AppTheme"
android:windowSoftInputMode="adjustResize|stateHidden">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
@ -143,12 +143,12 @@
android:name=".ui.other.AboutActivity"
android:exported="false"
android:label="@string/about"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.other.CrashActivity"
android:exported="false"
android:label="@string/error"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.other.SetupActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
@ -158,34 +158,34 @@
android:name=".ui.other.BonusActivity"
android:configChanges="orientation|keyboardHidden"
android:exported="false"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.pm.PackageManagerActivity"
android:exported="false"
android:label="@string/package_settings"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.customize.CustomizeActivity"
android:exported="false"
android:label="@string/customization_settings"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.customize.ColorSchemeActivity"
android:exported="false"
android:label="@string/pref_customization_color_scheme"
android:theme="@style/AppTheme.NoActionBar.Dark"/>
android:theme="@style/AppTheme.NoActionBar"/>
<activity
android:name=".ui.settings.SettingActivity"
android:exported="false"
android:theme="@style/AppTheme.Dark"/>
android:theme="@style/AppTheme"/>
<activity
android:name=".ui.settings.GeneralSettingsActivity"
android:exported="false"
android:theme="@style/AppTheme.Dark"/>
android:theme="@style/AppTheme"/>
<activity
android:name=".ui.settings.UISettingsActivity"
android:exported="false"
android:theme="@style/AppTheme.Dark"/>
android:theme="@style/AppTheme"/>
<service
android:name=".services.NeoTermService"

View File

@ -35,7 +35,7 @@ class App : Application() {
}
fun errorDialog(context: Context, message: String, dismissCallback: (() -> Unit)?) {
MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat)
MaterialAlertDialogBuilder(context, R.style.DialogStyle)
.setTitle(R.string.error)
.setMessage(message)
.setNegativeButton(android.R.string.no, null)

View File

@ -64,8 +64,18 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1
NeoPermission.initAppPermission(this, NeoPermission.REQUEST_APP_PERMISSION)
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_EXTERNAL_STORAGE,
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE)
}
val fullscreen = NeoPreference.isFullScreenEnabled()
if (fullscreen) {
window.setFlags(
@ -74,19 +84,6 @@ class NeoTermActivity : AppCompatActivity(), ServiceConnection, SharedPreference
)
}
val SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE = 1
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.MANAGE_EXTERNAL_STORAGE,
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE),
SDCARD_PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE,
)
}
setContentView(R.layout.ui_main)
toolbar = findViewById(R.id.terminal_toolbar)

View File

@ -19,45 +19,35 @@ object NeoPermission {
const val REQUEST_APP_PERMISSION = 10086
fun initAppPermission(context: AppCompatActivity, requestCode: Int) {
if (ContextCompat.checkSelfPermission(
context,
Manifest.permission.READ_EXTERNAL_STORAGE
)
!= PackageManager.PERMISSION_GRANTED
) {
if (ActivityCompat.shouldShowRequestPermissionRationale(
if (ContextCompat.checkSelfPermission(
context,
Manifest.permission.READ_EXTERNAL_STORAGE
)
) {
MaterialAlertDialogBuilder(context, R.style.DialogStyleCompat).setMessage("Please enable Storage permission")
.setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int ->
doRequestPermission(context, requestCode)
}
.show()
!= PackageManager.PERMISSION_GRANTED) {
} else {
doRequestPermission(context, requestCode)
if (ActivityCompat.shouldShowRequestPermissionRationale(
context,
Manifest.permission.READ_EXTERNAL_STORAGE
)) {
MaterialAlertDialogBuilder(context, R.style.DialogStyle).setMessage("Please enable Storage permission")
.setPositiveButton(android.R.string.ok) { _: DialogInterface, _: Int ->
doRequestPermission(context, requestCode)
}.show()
} else {
doRequestPermission(context, requestCode)
}
}
}
}
private fun doRequestPermission(context: AppCompatActivity, requestCode: Int) {
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
ActivityCompat.requestPermissions(
context,
arrayOf(Manifest.permission.MANAGE_EXTERNAL_STORAGE),
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
requestCode)
} else {
ActivityCompat.requestPermissions(
context,
arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE),
requestCode)
}
} catch (ignore: ActivityNotFoundException) {
// for MIUI, we ignore it.
}
} catch (ignore: ActivityNotFoundException) {
// for MIUI, we ignore it.
}
}

View File

@ -1,18 +1,14 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<style name="AppTheme" parent="Theme.Material3.Dark">
<item name="colorAccent">@color/colorAccent</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="windowActionModeOverlay">true</item>
</style>
<style name="AppTheme.Dark" parent="Theme.AppCompat">
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionModeOverlay">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
<item name="actionBarStyle">@style/AppTheme.ActionBar</item>
</style>
<style name="AppTheme.NoActionBar" parent="@style/AppTheme">
@ -20,14 +16,19 @@
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.NoActionBar.Dark" parent="@style/AppTheme.Dark">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<style name="AppTheme.ActionBar" parent="@style/AppTheme">
<item name="windowNoTitle">false</item>
<item name="android:height">55dp</item>
<item name="height">55dp</item>
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleText</item>
<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleText</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.ActionBar.TitleText" parent="@style/AppTheme">
<item name="android:textSize">12sp</item>
</style>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
<style name="AppTheme.PopupOverlay" parent="@style/Theme.Material3.Dark"/>
<style name="rtl_RecyclerTabLayout">
<item name="rtl_tabMinWidth">72dp</item>
@ -52,31 +53,24 @@
</style>
<style name="DialogStyle" parent="@style/MaterialAlertDialog.Material3">
<item name="colorPrimary">#61A3D7</item>
<item name="colorPrimaryDark">#8DB2D3</item>
<item name="colorAccent">#61A3D7</item>
<item name="android:textColor">@color/textColor</item>
<item name="android:textColorSecondary">@color/textColor</item>
<item name="android:textColorLink">#2255D3</item>
<item name="background">@color/colorPrimary</item>
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
<item name="colorPrimary">#547383</item>
<item name="android:textColor">@color/textColor</item>
<item name="android:textColorSecondary">@color/textColor</item>
<item name="android:textColorLink">#2D55A3</item>
<item name="buttonBarPositiveButtonStyle">@style/Alert.Button.Positive</item>
<item name="android:buttonBarPositiveButtonStyle">@style/Alert.Button.Positive</item>
<item name="buttonBarNegativeButtonStyle">@style/Alert.Button.Neutral</item>
<item name="android:buttonBarNegativeButtonStyle">@style/Alert.Button.Neutral</item>
<item name="buttonBarNeutralButtonStyle">@style/Alert.Button.Neutral</item>
</style>
<item name="android:buttonBarNeutralButtonStyle">@style/Alert.Button.Neutral</item>
<style name="DialogStyleCompat" parent="@style/ThemeOverlay.Material3.MaterialAlertDialog">
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
<item name="colorPrimary">#547383</item>
<item name="android:textColor">@color/textColor</item>
<item name="android:textColorSecondary">@color/textColor</item>
<item name="android:textColorLink">#2D55A3</item>
<item name="buttonBarPositiveButtonStyle">@style/Alert.Button.Positive</item>
<item name="buttonBarNegativeButtonStyle">@style/Alert.Button.Neutral</item>
<item name="buttonBarNeutralButtonStyle">@style/Alert.Button.Neutral</item>
</style>
<style name="Alert.Button.Positive" parent="@style/Widget.Material3.Button.TextButton">