Add message layout setting to SettingsPage (incl. restart dialog)
This commit is contained in:
committed by
Jannis Mattheis
parent
9a39296c64
commit
cc8f78ded5
@@ -1,11 +1,18 @@
|
|||||||
package com.github.gotify.settings;
|
package com.github.gotify.settings;
|
||||||
|
|
||||||
|
import android.app.AlertDialog;
|
||||||
|
import android.content.ComponentName;
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
|
import android.view.View;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.preference.ListPreference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
import com.github.gotify.R;
|
import com.github.gotify.R;
|
||||||
@@ -52,5 +59,38 @@ public class SettingsActivity extends AppCompatActivity
|
|||||||
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
|
||||||
setPreferencesFromResource(R.xml.root_preferences, 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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,19 @@
|
|||||||
<string name="theme_light">Light</string>
|
<string name="theme_light">Light</string>
|
||||||
<string name="theme_dark">Dark</string>
|
<string name="theme_dark">Dark</string>
|
||||||
<string name="theme_default">System Default</string>
|
<string name="theme_default">System Default</string>
|
||||||
|
<!-- Message Layout -->
|
||||||
|
<string-array name="message_layout_entries">
|
||||||
|
<item>@string/message_layout_entry_normal</item>
|
||||||
|
<item>@string/message_layout_entry_compact</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="message_layout_entry_normal">Normal</string>
|
||||||
|
<string name="message_layout_entry_compact">Compact</string>
|
||||||
|
<string-array name="message_layout_values">
|
||||||
|
<item>@string/message_layout_value_normal</item>
|
||||||
|
<item>@string/message_layout_value_compact</item>
|
||||||
|
</string-array>
|
||||||
|
<string name="message_layout_value_normal">message_layout_normal</string>
|
||||||
|
<string name="message_layout_value_compact">message_layout_compact</string>
|
||||||
<!-- Time Format -->
|
<!-- Time Format -->
|
||||||
<string-array name="time_format_entries">
|
<string-array name="time_format_entries">
|
||||||
<item>@string/time_format_entry_absolute</item>
|
<item>@string/time_format_entry_absolute</item>
|
||||||
|
|||||||
@@ -70,6 +70,12 @@
|
|||||||
<string name="settings_appearance">Appearance</string>
|
<string name="settings_appearance">Appearance</string>
|
||||||
<string name="setting_theme">Theme</string>
|
<string name="setting_theme">Theme</string>
|
||||||
<string name="setting_key_theme">theme</string>
|
<string name="setting_key_theme">theme</string>
|
||||||
|
<string name="setting_message_layout">Message layout</string>
|
||||||
|
<string name="setting_key_message_layout">message_layout</string>
|
||||||
|
<string name="setting_message_layout_dialog_title">Restart App?</string>
|
||||||
|
<string name="setting_message_layout_dialog_message">The change will be effective on next app start.\n\nDo you want to restart now?</string>
|
||||||
|
<string name="setting_message_layout_dialog_button1">Restart</string>
|
||||||
|
<string name="setting_message_layout_dialog_button2">Later</string>
|
||||||
<string name="setting_time_format">Time format</string>
|
<string name="setting_time_format">Time format</string>
|
||||||
<string name="setting_key_time_format">time_format</string>
|
<string name="setting_key_time_format">time_format</string>
|
||||||
<string name="push_message">Push message</string>
|
<string name="push_message">Push message</string>
|
||||||
|
|||||||
@@ -9,12 +9,19 @@
|
|||||||
android:key="@string/setting_key_theme"
|
android:key="@string/setting_key_theme"
|
||||||
android:title="@string/setting_theme" />
|
android:title="@string/setting_theme" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:defaultValue="@string/message_layout_value_normal"
|
||||||
|
android:entries="@array/message_layout_entries"
|
||||||
|
android:entryValues="@array/message_layout_values"
|
||||||
|
android:key="@string/setting_key_message_layout"
|
||||||
|
android:title="@string/setting_message_layout" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:defaultValue="@string/time_format_value_relative"
|
android:defaultValue="@string/time_format_value_relative"
|
||||||
android:entries="@array/time_format_entries"
|
android:entries="@array/time_format_entries"
|
||||||
android:entryValues="@array/time_format_values"
|
android:entryValues="@array/time_format_values"
|
||||||
android:key="@string/setting_key_time_format"
|
android:key="@string/setting_key_time_format"
|
||||||
android:title="@string/setting_time_format"/>
|
android:title="@string/setting_time_format" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
|||||||
Reference in New Issue
Block a user