diff --git a/app/src/main/java/com/github/gotify/settings/SettingsActivity.java b/app/src/main/java/com/github/gotify/settings/SettingsActivity.java
index b734079..6ad24c8 100644
--- a/app/src/main/java/com/github/gotify/settings/SettingsActivity.java
+++ b/app/src/main/java/com/github/gotify/settings/SettingsActivity.java
@@ -1,11 +1,18 @@
package com.github.gotify.settings;
+import android.app.AlertDialog;
+import android.content.ComponentName;
+import android.content.Intent;
import android.content.SharedPreferences;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.MenuItem;
+import android.view.View;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
+import androidx.preference.ListPreference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceManager;
import com.github.gotify.R;
@@ -52,5 +59,38 @@ public class SettingsActivity extends AppCompatActivity
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
}
+
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ ListPreference message_layout =
+ findPreference(getString(R.string.setting_key_message_layout));
+ message_layout.setOnPreferenceChangeListener(
+ (ignored, ignored2) -> {
+ new AlertDialog.Builder(getContext())
+ .setTitle(R.string.setting_message_layout_dialog_title)
+ .setMessage(R.string.setting_message_layout_dialog_message)
+ .setPositiveButton(
+ getString(R.string.setting_message_layout_dialog_button1),
+ (ignored3, ignored4) -> {
+ restartApp();
+ })
+ .setNegativeButton(
+ getString(R.string.setting_message_layout_dialog_button2),
+ (ignore3, ignored4) -> {})
+ .show();
+ return true;
+ });
+ }
+
+ private void restartApp() {
+ PackageManager packageManager = getContext().getPackageManager();
+ String packageName = getContext().getPackageName();
+ Intent intent = packageManager.getLaunchIntentForPackage(packageName);
+ ComponentName componentName = intent.getComponent();
+ Intent mainIntent = Intent.makeRestartActivityTask(componentName);
+ startActivity(mainIntent);
+ Runtime.getRuntime().exit(0);
+ }
}
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 3a9d936..a4ef6f8 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -8,6 +8,19 @@
Light
Dark
System Default
+
+
+ - @string/message_layout_entry_normal
+ - @string/message_layout_entry_compact
+
+ Normal
+ Compact
+
+ - @string/message_layout_value_normal
+ - @string/message_layout_value_compact
+
+ message_layout_normal
+ message_layout_compact
- @string/time_format_entry_absolute
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9f1ed7e..4c2ae7c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -70,6 +70,12 @@
Appearance
Theme
theme
+ Message layout
+ message_layout
+ Restart App?
+ The change will be effective on next app start.\n\nDo you want to restart now?
+ Restart
+ Later
Time format
time_format
Push message
diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml
index ec2273d..0971135 100644
--- a/app/src/main/res/xml/root_preferences.xml
+++ b/app/src/main/res/xml/root_preferences.xml
@@ -9,12 +9,19 @@
android:key="@string/setting_key_theme"
android:title="@string/setting_theme" />
+
+
+ android:title="@string/setting_time_format" />