feat: language preferences #76
6 changed files with 51 additions and 4 deletions
|
@ -2,7 +2,9 @@ package im.angry.openeuicc.ui
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.provider.Settings
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.datastore.preferences.core.Preferences
|
import androidx.datastore.preferences.core.Preferences
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
@ -49,6 +51,14 @@ class SettingsFragment: PreferenceFragmentCompat() {
|
||||||
intent = Intent(Intent.ACTION_VIEW, Uri.parse(summary.toString()))
|
intent = Intent(Intent.ACTION_VIEW, Uri.parse(summary.toString()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
findPreference<Preference>("pref_language")?.apply {
|
||||||
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) return@apply
|
||||||
|
isVisible = true
|
||||||
|
intent = Intent(Settings.ACTION_APP_LOCALE_SETTINGS).apply {
|
||||||
|
data = Uri.fromParts("package", requireContext().packageName, null)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
findPreference<Preference>("pref_advanced_logs")?.apply {
|
findPreference<Preference>("pref_advanced_logs")?.apply {
|
||||||
intent = Intent(requireContext(), LogsActivity::class.java)
|
intent = Intent(requireContext(), LogsActivity::class.java)
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,6 +146,8 @@
|
||||||
<string name="pref_advanced_disable_safeguard_removable_esim_desc">By default, this app prevents you from disabling the active profile on a removable eSIM inserted in the device, because doing so may <i>sometimes</i> render it inaccessible.\nCheck this box to <i>remove</i> this safeguard.</string>
|
<string name="pref_advanced_disable_safeguard_removable_esim_desc">By default, this app prevents you from disabling the active profile on a removable eSIM inserted in the device, because doing so may <i>sometimes</i> render it inaccessible.\nCheck this box to <i>remove</i> this safeguard.</string>
|
||||||
<string name="pref_advanced_verbose_logging">Verbose Logging</string>
|
<string name="pref_advanced_verbose_logging">Verbose Logging</string>
|
||||||
<string name="pref_advanced_verbose_logging_desc">Enable verbose logs, which may contain sensitive information. Only share your logs with someone you trust after turning this on.</string>
|
<string name="pref_advanced_verbose_logging_desc">Enable verbose logs, which may contain sensitive information. Only share your logs with someone you trust after turning this on.</string>
|
||||||
|
<string name="pref_language">Language</string>
|
||||||
|
<string name="pref_language_desc">Select current language</string>
|
||||||
<string name="pref_advanced_logs">Logs</string>
|
<string name="pref_advanced_logs">Logs</string>
|
||||||
<string name="pref_advanced_logs_desc">View recent debug logs of the application</string>
|
<string name="pref_advanced_logs_desc">View recent debug logs of the application</string>
|
||||||
<string name="pref_developer">Developer Options</string>
|
<string name="pref_developer">Developer Options</string>
|
||||||
|
|
5
app-common/src/main/res/xml/locale_config.xml
Normal file
5
app-common/src/main/res/xml/locale_config.xml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<locale android:name="en-US" />
|
||||||
|
<locale android:name="ja" />
|
||||||
|
</locale-config>
|
|
@ -36,6 +36,13 @@
|
||||||
app:title="@string/pref_advanced_verbose_logging"
|
app:title="@string/pref_advanced_verbose_logging"
|
||||||
app:summary="@string/pref_advanced_verbose_logging_desc" />
|
app:summary="@string/pref_advanced_verbose_logging_desc" />
|
||||||
|
|
||||||
|
<Preference
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
app:isPreferenceVisible="false"
|
||||||
|
app:key="pref_language"
|
||||||
|
app:summary="@string/pref_language_desc"
|
||||||
|
app:title="@string/pref_language" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:key="pref_advanced_logs"
|
app:key="pref_advanced_logs"
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="im.angry.openeuicc.UnprivilegedOpenEuiccApplication"
|
android:name="im.angry.openeuicc.UnprivilegedOpenEuiccApplication"
|
||||||
|
@ -8,7 +9,9 @@
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.OpenEUICC">
|
android:localeConfig="@xml/locale_config"
|
||||||
|
android:theme="@style/Theme.OpenEUICC"
|
||||||
|
tools:targetApi="tiramisu">
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="im.angry.openeuicc.ui.UnprivilegedMainActivity"
|
android:name="im.angry.openeuicc.ui.UnprivilegedMainActivity"
|
||||||
|
@ -25,6 +28,14 @@
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:label="@string/compatibility_check" />
|
android:label="@string/compatibility_check" />
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
|
||||||
|
android:enabled="false"
|
||||||
|
android:exported="false">
|
||||||
|
<meta-data
|
||||||
|
android:name="autoStoreLocales"
|
||||||
|
android:value="true" />
|
||||||
|
</service>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<queries>
|
<queries>
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
package="im.angry.openeuicc">
|
package="im.angry.openeuicc">
|
||||||
<uses-feature
|
<uses-feature
|
||||||
android:name="android.hardware.telephony"
|
android:name="android.hardware.telephony"
|
||||||
android:required="true" />
|
android:required="true"
|
||||||
|
tools:ignore="UnnecessaryRequiredFeature" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
|
||||||
|
@ -19,7 +20,9 @@
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.OpenEUICC">
|
android:localeConfig="@xml/locale_config"
|
||||||
|
android:theme="@style/Theme.OpenEUICC"
|
||||||
|
tools:targetApi="tiramisu">
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.PrivilegedMainActivity"
|
android:name=".ui.PrivilegedMainActivity"
|
||||||
android:exported="true">
|
android:exported="true">
|
||||||
|
@ -49,6 +52,15 @@
|
||||||
<category android:name="android.service.euicc.category.EUICC_UI" />
|
<category android:name="android.service.euicc.category.EUICC_UI" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
|
||||||
|
<service
|
||||||
|
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
|
||||||
|
android:enabled="false"
|
||||||
|
android:exported="false">
|
||||||
|
<meta-data
|
||||||
|
android:name="autoStoreLocales"
|
||||||
|
android:value="true" />
|
||||||
|
</service>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
Loading…
Add table
Reference in a new issue