/* * Copyright 2017 rootkiwi * * AN2Linux-client is licensed under GNU General Public License 3. * * See LICENSE for more details. */ package kiwi.root.an2linuxclient.data; import android.content.Context; import android.content.SharedPreferences; import kiwi.root.an2linuxclient.R; import kiwi.root.an2linuxclient.preferences.IconSizePreference; import kiwi.root.an2linuxclient.preferences.MaxMessageSizePreference; import kiwi.root.an2linuxclient.preferences.MaxTitleSizePreference; import static android.content.Context.MODE_PRIVATE; public class NotificationSettings { private boolean prefIncludeTitle; private boolean prefForceTitle; private boolean prefIncludeMessage; private boolean prefIncludeIcon; private int prefMaxTitleSize; private int prefMaxMessageSize; private int prefIconSize; private byte notificationFlags; private final byte FLAG_INCLUDE_ICON = 4; private String packageName; private boolean usingCustomSettings; NotificationSettings(Context c, String packageName){ this.packageName = packageName; initializeSettings(c); } private void initializeSettings(Context c){ SharedPreferences sharedPrefs = c.getSharedPreferences(c.getString(R.string.notification_settings_custom), MODE_PRIVATE); usingCustomSettings = sharedPrefs.getBoolean(packageName + "_" + c.getString(R.string.preference_use_custom_settings), false); if (!usingCustomSettings) { sharedPrefs = c.getSharedPreferences(c.getString(R.string.notification_settings_global), MODE_PRIVATE); } prefIncludeTitle = sharedPrefs.getBoolean(getCorrectPrefKey(c.getString(R.string.preference_include_notification_title)), true); prefIncludeMessage = sharedPrefs.getBoolean(getCorrectPrefKey(c.getString(R.string.preference_include_notification_message)), true); prefIncludeIcon = sharedPrefs.getBoolean(getCorrectPrefKey(c.getString(R.string.preference_include_notification_icon)), true); if (prefIncludeTitle){ final byte FLAG_INCLUDE_TITLE = 1; notificationFlags |= FLAG_INCLUDE_TITLE; prefForceTitle = sharedPrefs.getBoolean(getCorrectPrefKey(c.getString(R.string.preference_force_title)), false); prefMaxTitleSize = sharedPrefs.getInt(getCorrectPrefKey(c.getString(R.string.preference_title_max_size)), MaxTitleSizePreference.DEFAULT_VALUE); } if (prefIncludeMessage){ final byte FLAG_INCLUDE_MESSAGE = 2; notificationFlags |= FLAG_INCLUDE_MESSAGE; prefMaxMessageSize = sharedPrefs.getInt(getCorrectPrefKey(c.getString(R.string.preference_message_max_size)), MaxMessageSizePreference.DEFAULT_VALUE); } if (prefIncludeIcon) { notificationFlags |= FLAG_INCLUDE_ICON; prefIconSize = sharedPrefs.getInt(getCorrectPrefKey(c.getString(R.string.preference_icon_size)), IconSizePreference.DEFAULT_VALUE); } } public boolean includeTitle(){ return prefIncludeTitle; } boolean forceTitle(){ return prefForceTitle; } int getTitleMax(){ return prefMaxTitleSize; } public boolean includeMessage(){ return prefIncludeMessage; } int getMessageMax(){ return prefMaxMessageSize; } public boolean includeIcon(){ return prefIncludeIcon; } int getIconSize(){ return prefIconSize; } public byte getNotificationFlags(){ return notificationFlags; } void removeIconFlag(){ notificationFlags &= ~FLAG_INCLUDE_ICON; } private String getCorrectPrefKey(String key) { return usingCustomSettings ? packageName + "_" + key : key; } }