diff --git a/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java b/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java
index 6cdc471a..4c8e35f5 100644
--- a/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/BaseActivity.java
@@ -56,6 +56,8 @@ import java.util.List;
import javax.inject.Inject;
+import static com.keylesspalace.tusky.settings.PrefKeys.APP_THEME;
+
public abstract class BaseActivity extends AppCompatActivity implements Injectable {
private static final String TAG = "BaseActivity";
@@ -74,7 +76,7 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab
/* There isn't presently a way to globally change the theme of a whole application at
* runtime, just individual activities. So, each activity has to set its theme before any
* views are created. */
- String theme = preferences.getString("appTheme", ThemeUtils.APP_THEME_DEFAULT);
+ String theme = preferences.getString(APP_THEME, ThemeUtils.APP_THEME_DEFAULT);
Log.d("activeTheme", theme);
if (theme.equals("black")) {
setTheme(R.style.TuskyBlackTheme);
diff --git a/app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt b/app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt
index 3c943863..84fbabba 100644
--- a/app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/TuskyApplication.kt
@@ -25,10 +25,13 @@ import androidx.work.WorkManager
import autodispose2.AutoDisposePlugins
import com.keylesspalace.tusky.components.notifications.NotificationHelper
import com.keylesspalace.tusky.di.AppInjector
+import com.keylesspalace.tusky.settings.NEW_INSTALL_SCHEMA_VERSION
import com.keylesspalace.tusky.settings.PrefKeys
+import com.keylesspalace.tusky.settings.PrefKeys.APP_THEME
import com.keylesspalace.tusky.settings.SCHEMA_VERSION
import com.keylesspalace.tusky.util.APP_THEME_DEFAULT
import com.keylesspalace.tusky.util.LocaleManager
+import com.keylesspalace.tusky.util.THEME_NIGHT
import com.keylesspalace.tusky.util.setAppNightMode
import com.keylesspalace.tusky.worker.PruneCacheWorker
import com.keylesspalace.tusky.worker.WorkerFactory
@@ -76,7 +79,7 @@ class TuskyApplication : Application(), HasAndroidInjector {
AppInjector.init(this)
// Migrate shared preference keys and defaults from version to version.
- val oldVersion = sharedPreferences.getInt(PrefKeys.SCHEMA_VERSION, 0)
+ val oldVersion = sharedPreferences.getInt(PrefKeys.SCHEMA_VERSION, NEW_INSTALL_SCHEMA_VERSION)
if (oldVersion != SCHEMA_VERSION) {
upgradeSharedPreferences(oldVersion, SCHEMA_VERSION)
}
@@ -87,7 +90,7 @@ class TuskyApplication : Application(), HasAndroidInjector {
EmojiPackHelper.init(this, DefaultEmojiPackList.get(this), allowPackImports = false)
// init night mode
- val theme = sharedPreferences.getString("appTheme", APP_THEME_DEFAULT)
+ val theme = sharedPreferences.getString(APP_THEME, APP_THEME_DEFAULT)
setAppNightMode(theme)
localeManager.setLocale()
@@ -136,6 +139,14 @@ class TuskyApplication : Application(), HasAndroidInjector {
editor.remove(PrefKeys.Deprecated.SHOW_NOTIFICATIONS_FILTER)
}
+ if (oldVersion != NEW_INSTALL_SCHEMA_VERSION && oldVersion < 2023082301) {
+ // Default value for appTheme is now THEME_SYSTEM. If the user is upgrading and
+ // didn't have an explicit preference set use the previous default, so the
+ // theme does not unexpectedly change.
+ if (!sharedPreferences.contains(APP_THEME)) {
+ editor.putString(APP_THEME, THEME_NIGHT)
+ }
+ }
editor.putInt(PrefKeys.SCHEMA_VERSION, newVersion)
editor.apply()
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt
index a2828f3a..14f9b947 100644
--- a/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/ComposeActivity.kt
@@ -94,6 +94,7 @@ import com.keylesspalace.tusky.entity.Emoji
import com.keylesspalace.tusky.entity.NewPoll
import com.keylesspalace.tusky.entity.Status
import com.keylesspalace.tusky.settings.PrefKeys
+import com.keylesspalace.tusky.settings.PrefKeys.APP_THEME
import com.keylesspalace.tusky.util.APP_THEME_DEFAULT
import com.keylesspalace.tusky.util.MentionSpan
import com.keylesspalace.tusky.util.PickMediaFiles
@@ -208,7 +209,7 @@ class ComposeActivity :
activeAccount = accountManager.activeAccount ?: return
- val theme = preferences.getString("appTheme", APP_THEME_DEFAULT)
+ val theme = preferences.getString(APP_THEME, APP_THEME_DEFAULT)
if (theme == "black") {
setTheme(R.style.TuskyDialogActivityBlackTheme)
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java
index a0c5a8ed..f15d44d2 100644
--- a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java
+++ b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationHelper.java
@@ -238,7 +238,7 @@ public class NotificationHelper {
Bundle extras = new Bundle();
// Add the sending account's name, so it can be used when summarising this notification
extras.putString(EXTRA_ACCOUNT_NAME, body.getAccount().getName());
- extras.putString(EXTRA_NOTIFICATION_TYPE, body.getType().toString());
+ extras.putSerializable(EXTRA_NOTIFICATION_TYPE, body.getType());
builder.addExtras(extras);
// Only alert for the first notification of a batch to avoid multiple alerts at once
diff --git a/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt b/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt
index b47df159..f8464ea0 100644
--- a/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/components/preference/PreferencesActivity.kt
@@ -34,6 +34,7 @@ import com.keylesspalace.tusky.appstore.EventHub
import com.keylesspalace.tusky.appstore.PreferenceChangedEvent
import com.keylesspalace.tusky.databinding.ActivityPreferencesBinding
import com.keylesspalace.tusky.settings.PrefKeys
+import com.keylesspalace.tusky.settings.PrefKeys.APP_THEME
import com.keylesspalace.tusky.util.APP_THEME_DEFAULT
import com.keylesspalace.tusky.util.getNonNullString
import com.keylesspalace.tusky.util.setAppNightMode
@@ -145,8 +146,8 @@ class PreferencesActivity :
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
when (key) {
- "appTheme" -> {
- val theme = sharedPreferences.getNonNullString("appTheme", APP_THEME_DEFAULT)
+ APP_THEME -> {
+ val theme = sharedPreferences.getNonNullString(APP_THEME, APP_THEME_DEFAULT)
Log.d("activeTheme", theme)
setAppNightMode(theme)
diff --git a/app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt b/app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt
index 636c1fc6..49041c1a 100644
--- a/app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/settings/SettingsConstants.kt
@@ -41,7 +41,10 @@ enum class AppTheme(val value: String) {
*
* - Adding a new preference that does not change the interpretation of an existing preference
*/
-const val SCHEMA_VERSION = 2023072401
+const val SCHEMA_VERSION = 2023082301
+
+/** The schema version for fresh installs */
+const val NEW_INSTALL_SCHEMA_VERSION = 0
object PrefKeys {
// Note: not all of these keys are actually used as SharedPreferences keys but we must give
diff --git a/app/src/main/java/com/keylesspalace/tusky/util/ThemeUtils.kt b/app/src/main/java/com/keylesspalace/tusky/util/ThemeUtils.kt
index a03a5026..10f8df1a 100644
--- a/app/src/main/java/com/keylesspalace/tusky/util/ThemeUtils.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/util/ThemeUtils.kt
@@ -30,12 +30,12 @@ import com.google.android.material.color.MaterialColors
* the ability to do so is not supported in resource files.
*/
-private const val THEME_NIGHT = "night"
-private const val THEME_DAY = "day"
-private const val THEME_BLACK = "black"
-private const val THEME_AUTO = "auto"
-private const val THEME_SYSTEM = "auto_system"
-const val APP_THEME_DEFAULT = THEME_NIGHT
+const val THEME_NIGHT = "night"
+const val THEME_DAY = "day"
+const val THEME_BLACK = "black"
+const val THEME_AUTO = "auto"
+const val THEME_SYSTEM = "auto_system"
+const val APP_THEME_DEFAULT = THEME_SYSTEM
fun getDimension(context: Context, @AttrRes attribute: Int): Int {
return context.obtainStyledAttributes(intArrayOf(attribute)).use { array ->
diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml
index eb6c33ba..64764473 100644
--- a/app/src/main/res/values-cy/strings.xml
+++ b/app/src/main/res/values-cy/strings.xml
@@ -731,4 +731,6 @@
Copïwyd fersiwn a gwybodaeth dyfais
Cuddio o\'r ffrwd cartref
Methodd chwarae: %s
+ Dileu
+ Dileu\'r hidlydd \'%1$s\'\?
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index 31570ad4..7d65376b 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -683,4 +683,6 @@
اطّلاعات افزاره و نگارش رونوشت شد
نهفتن از خط زمانی خانگی
پخش شکست خورد: %s
+ حذف
+ حذف پالایهٔ «%1$s»؟
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 9fa13bff..22eb4313 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -439,7 +439,7 @@
Ajouter un choix
Choix multiples
Choix %d
- Éditer
+ Modifier
Pouets planifiés
Modifier
Messages programmés
@@ -682,4 +682,4 @@
Ajouter un mot-clé
Modifier mot-clé
%s : %s
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index f74f3a96..2dc51827 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -262,10 +262,10 @@
Engadir conta á listaxe
Atopar persoas ás que segues
Eliminar a listaxe
- Renomear a listaxe
+ Actualizar a listaxe
Crear unha listaxe
Non se puido eliminar a listaxe
- Non se puido renomear a listaxe
+ Non se actualizou a listaxe
Non se puido crear a listaxe
Listaxes
Listaxes
@@ -304,10 +304,9 @@
Compartir ligazón ao toot
Compartir contido do toot
Perfil de Tusky
- Informar de fallos e solicitar funcións:
-\n https://github.com/tuskyapp/Tusky/issues
- Web do proxecto:
-\n https://tusky.app
+ Informar de fallos e solicitar funcións:
+\nhttps://github.com/tuskyapp/Tusky/issues
+ Web do proxecto: https://tusky.app
Tusky é software libre e de código aberto. Está baixo a licenza GNU General Public License Version 3. Podes ver a licenza aquí: https://www.gnu.org/licenses/gpl-3.0.en.html
Desenvolta por Tusky
Tusky %s
@@ -666,4 +665,16 @@
Obtendo as notificacións…
Mantemento da caché…
Fallou a subida: %s
-
+ O teu dispositivo
+ %s %s
+\nVersión de Android: %s
+\nVersión SDK: %d
+ A túa conta
+ \@%s@%s
+\nVersión: %s
+ Copiouse a información sobre o dispositivo e versión
+ Copiar a información da versión e o dispositivo
+ Eliminar
+ Agochar na cronoloxía de inicio
+ Eliminar o filtro \'%1$s\'\?
+
\ No newline at end of file
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index d883dc95..bad61b2e 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -259,10 +259,8 @@
Lijsten
Berichten plaatsen als %1$s
- - Omschrijf dit voor iemand met een visuele beperking
-\n(tekenlimiet is %d)
- - Omschrijf dit voor mensen met een visuele beperking
-\n(tekenlimiet is %d)
+ - Omschrijf inhoud voor iemand met een visuele beperking (tekenlimiet is %d)
+ - Omschrijf inhoud voor mensen met een visuele beperking (tekenlimiet is %d)
Beschrijving toevoegen
Verwijderen
@@ -663,4 +661,6 @@
Versie en apparaatinformatie gekopieerd
De upload is mislukt: %s
Contact zoeken met je server duurde te lang
+ Verwijder
+ Verwijder filter \'%1$s\'\?
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index ffc70bee..aeeb84f9 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -665,4 +665,6 @@
Thiết bị của bạn
Ẩn khỏi bảng tin
Không thể phát: %s
+ Xóa bộ lọc \'%1$s\'\?
+ Xóa
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 61aec719..3729e425 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -679,4 +679,6 @@
复制版本及设备信息
不出现在首页时间线中
播放失败了:%s
+ 删除筛选器\'%1$s\'吗?
+ 删除