1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-11-27 06:41:15 +00:00

Added option to show normal priority notification (fixes #366).

This commit is contained in:
Felix Ableitner 2015-07-07 10:23:19 +02:00
parent cb6a3fc884
commit 54820d20f4
4 changed files with 34 additions and 16 deletions

View file

@ -92,7 +92,7 @@ public class SyncthingService extends Service implements
public static final String PREF_SYNC_ONLY_WIFI = "sync_only_wifi"; public static final String PREF_SYNC_ONLY_WIFI = "sync_only_wifi";
public static final String PREF_SYNC_ONLY_CHARGING = "sync_only_charging"; public static final String PREF_SYNC_ONLY_CHARGING = "sync_only_charging";
public static final String PREF_USE_ROOT = "use_root"; public static final String PREF_USE_ROOT = "use_root";
private static final String PREF_PERSISTENT_NOTIFICATION = "persistent_notification"; private static final String PREF_NOTIFICATION_TYPE = "notification_type";
private static final int NOTIFICATION_ACTIVE = 1; private static final int NOTIFICATION_ACTIVE = 1;
@ -242,22 +242,24 @@ public class SyncthingService extends Service implements
/** /**
* Shows or hides the persistent notification based on running state and * Shows or hides the persistent notification based on running state and
* {@link #PREF_PERSISTENT_NOTIFICATION}. * {@link #PREF_NOTIFICATION_TYPE}.
*/ */
private void updateNotification() { private void updateNotification() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
String type = sp.getString(PREF_NOTIFICATION_TYPE, "low_priority");
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
if ((mCurrentState == State.ACTIVE || mCurrentState == State.STARTING) && if ((mCurrentState == State.ACTIVE || mCurrentState == State.STARTING) &&
sp.getBoolean(PREF_PERSISTENT_NOTIFICATION, true)) { !type.equals("none")) {
Notification n = new NotificationCompat.Builder(this) NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
.setContentTitle(getString(R.string.syncthing_active)) .setContentTitle(getString(R.string.syncthing_active))
.setSmallIcon(R.drawable.ic_stat_notify) .setSmallIcon(R.drawable.ic_stat_notify)
.setOngoing(true) .setOngoing(true)
.setPriority(NotificationCompat.PRIORITY_MIN)
.setContentIntent(PendingIntent.getActivity(this, 0, .setContentIntent(PendingIntent.getActivity(this, 0,
new Intent(this, MainActivity.class), 0)) new Intent(this, MainActivity.class), 0));
.build(); if (type.equals("low_priority"))
nm.notify(NOTIFICATION_ACTIVE, n); builder.setPriority(NotificationCompat.PRIORITY_MIN);
nm.notify(NOTIFICATION_ACTIVE, builder.build());
} else { } else {
nm.cancel(NOTIFICATION_ACTIVE); nm.cancel(NOTIFICATION_ACTIVE);
} }
@ -265,7 +267,7 @@ public class SyncthingService extends Service implements
@Override @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(PREF_PERSISTENT_NOTIFICATION)) if (key.equals(PREF_NOTIFICATION_TYPE))
updateNotification(); updateNotification();
} }

View file

@ -1,8 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources translatable="false"> <resources translatable="false">
<string-array name="compress_values"> <string-array name="compress_values">
<item>never</item> <item>never</item>
<item>metadata</item> <item>metadata</item>
<item>always</item> <item>always</item>
</string-array> </string-array>
<string-array name="notification_type_entry_values">
<item>normal</item>
<item>low_priority</item>
<item>none</item>
</string-array>
</resources> </resources>

View file

@ -237,9 +237,15 @@ Please report any problems you encounter via Github.</string>
<string name="use_root_summary">Run Syncthing as Superuser</string> <string name="use_root_summary">Run Syncthing as Superuser</string>
<string name="persistent_notification_title">Persistent Notification</string> <string name="notification_type_title">Notification</string>
<string name="persistent_notification_summary">Show Notification while Syncthing is running</string> <string name="notification_type_summary">Choose the notification type</string>
<string-array name="notification_type_entries">
<item>Normal</item>
<item>Low Priority</item>
<item>None</item>
</string-array>
<string name="category_syncthing">Syncthing</string> <string name="category_syncthing">Syncthing</string>

View file

@ -32,11 +32,13 @@
android:defaultValue="false" android:defaultValue="false"
android:enabled="false" /> android:enabled="false" />
<CheckBoxPreference <ListPreference
android:key="persistent_notification" android:key="notification_type"
android:title="@string/persistent_notification_title" android:title="@string/notification_type_title"
android:summary="@string/persistent_notification_summary" android:entryValues="@array/notification_type_entry_values"
android:defaultValue="true" /> android:entries="@array/notification_type_entries"
android:summary="@string/notification_type_summary"
android:defaultValue="low_priority" />
</PreferenceCategory> </PreferenceCategory>