diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/api/SessionProtocolImpl.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/api/SessionProtocolImpl.kt index 115e84ba5c..58015344bb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/api/SessionProtocolImpl.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/api/SessionProtocolImpl.kt @@ -8,17 +8,11 @@ import com.goterl.lazycode.lazysodium.interfaces.Box import com.goterl.lazycode.lazysodium.interfaces.Sign import org.session.libsignal.libsignal.ecc.ECKeyPair import org.session.libsignal.libsignal.util.Hex -import org.session.libsignal.service.api.messages.SignalServiceEnvelope -import org.session.libsignal.service.internal.push.SignalServiceProtos.Envelope.Type.CLOSED_GROUP_CIPHERTEXT_VALUE -import org.session.libsignal.service.internal.push.SignalServiceProtos.Envelope.Type.UNIDENTIFIED_SENDER_VALUE import org.session.libsignal.service.loki.api.crypto.SessionProtocol import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey import org.session.libsignal.service.loki.utilities.removing05PrefixIfNeeded import org.session.libsignal.service.loki.utilities.toHexString -import org.thoughtcrime.securesms.crypto.IdentityKeyUtil -import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.loki.utilities.KeyPairUtilities -import org.thoughtcrime.securesms.util.TextSecurePreferences class SessionProtocolImpl(private val context: Context) : SessionProtocol { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java deleted file mode 100644 index f028c0f789..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ /dev/null @@ -1,1325 +0,0 @@ -package org.thoughtcrime.securesms.util; - -import android.content.Context; - -import org.session.libsession.utilities.preferences.NotificationPrivacyPreference; - -public class TextSecurePreferences { - // TODO: Remove this file -// -// private static final String TAG = TextSecurePreferences.class.getSimpleName(); -// -// public static final String IDENTITY_PREF = "pref_choose_identity"; -// public static final String CHANGE_PASSPHRASE_PREF = "pref_change_passphrase"; -// public static final String DISABLE_PASSPHRASE_PREF = "pref_disable_passphrase"; -// public static final String THEME_PREF = "pref_theme"; -// public static final String LANGUAGE_PREF = "pref_language"; -// private static final String MMSC_CUSTOM_HOST_PREF = "pref_apn_mmsc_custom_host"; -// public static final String MMSC_HOST_PREF = "pref_apn_mmsc_host"; -// private static final String MMSC_CUSTOM_PROXY_PREF = "pref_apn_mms_custom_proxy"; -// public static final String MMSC_PROXY_HOST_PREF = "pref_apn_mms_proxy"; -// private static final String MMSC_CUSTOM_PROXY_PORT_PREF = "pref_apn_mms_custom_proxy_port"; -// public static final String MMSC_PROXY_PORT_PREF = "pref_apn_mms_proxy_port"; -// private static final String MMSC_CUSTOM_USERNAME_PREF = "pref_apn_mmsc_custom_username"; -// public static final String MMSC_USERNAME_PREF = "pref_apn_mmsc_username"; -// private static final String MMSC_CUSTOM_PASSWORD_PREF = "pref_apn_mmsc_custom_password"; -// public static final String MMSC_PASSWORD_PREF = "pref_apn_mmsc_password"; -// public static final String THREAD_TRIM_LENGTH = "pref_trim_length"; -// public static final String THREAD_TRIM_NOW = "pref_trim_now"; -// public static final String ENABLE_MANUAL_MMS_PREF = "pref_enable_manual_mms"; -// -// private static final String LAST_VERSION_CODE_PREF = "last_version_code"; -// private static final String LAST_EXPERIENCE_VERSION_PREF = "last_experience_version_code"; -// private static final String EXPERIENCE_DISMISSED_PREF = "experience_dismissed"; -// public static final String RINGTONE_PREF = "pref_key_ringtone"; -// public static final String VIBRATE_PREF = "pref_key_vibrate"; -// private static final String NOTIFICATION_PREF = "pref_key_enable_notifications"; -// public static final String LED_COLOR_PREF = "pref_led_color"; -// public static final String LED_BLINK_PREF = "pref_led_blink"; -// private static final String LED_BLINK_PREF_CUSTOM = "pref_led_blink_custom"; -// public static final String ALL_MMS_PREF = "pref_all_mms"; -// public static final String ALL_SMS_PREF = "pref_all_sms"; -// public static final String PASSPHRASE_TIMEOUT_INTERVAL_PREF = "pref_timeout_interval"; -// public static final String PASSPHRASE_TIMEOUT_PREF = "pref_timeout_passphrase"; -// public static final String SCREEN_SECURITY_PREF = "pref_screen_security"; -// private static final String ENTER_SENDS_PREF = "pref_enter_sends"; -// private static final String ENTER_PRESENT_PREF = "pref_enter_key"; -// private static final String SMS_DELIVERY_REPORT_PREF = "pref_delivery_report_sms"; -// public static final String MMS_USER_AGENT = "pref_mms_user_agent"; -// private static final String MMS_CUSTOM_USER_AGENT = "pref_custom_mms_user_agent"; -// private static final String THREAD_TRIM_ENABLED = "pref_trim_threads"; -// private static final String LOCAL_NUMBER_PREF = "pref_local_number"; -// private static final String VERIFYING_STATE_PREF = "pref_verifying"; -// public static final String REGISTERED_GCM_PREF = "pref_gcm_registered"; -// private static final String GCM_PASSWORD_PREF = "pref_gcm_password"; -// private static final String SEEN_WELCOME_SCREEN_PREF = "pref_seen_welcome_screen"; -// private static final String PROMPTED_DEFAULT_SMS_PREF = "pref_prompted_default_sms"; -// private static final String PROMPTED_OPTIMIZE_DOZE_PREF = "pref_prompted_optimize_doze"; -// private static final String PROMPTED_SHARE_PREF = "pref_prompted_share"; -// private static final String SIGNALING_KEY_PREF = "pref_signaling_key"; -// private static final String DIRECTORY_FRESH_TIME_PREF = "pref_directory_refresh_time"; -// private static final String UPDATE_APK_REFRESH_TIME_PREF = "pref_update_apk_refresh_time"; -// private static final String UPDATE_APK_DOWNLOAD_ID = "pref_update_apk_download_id"; -// private static final String UPDATE_APK_DIGEST = "pref_update_apk_digest"; -// private static final String SIGNED_PREKEY_ROTATION_TIME_PREF = "pref_signed_pre_key_rotation_time"; -// -// private static final String IN_THREAD_NOTIFICATION_PREF = "pref_key_inthread_notifications"; -// private static final String SHOW_INVITE_REMINDER_PREF = "pref_show_invite_reminder"; -// public static final String MESSAGE_BODY_TEXT_SIZE_PREF = "pref_message_body_text_size"; -// -// private static final String LOCAL_REGISTRATION_ID_PREF = "pref_local_registration_id"; -// private static final String SIGNED_PREKEY_REGISTERED_PREF = "pref_signed_prekey_registered"; -// private static final String WIFI_SMS_PREF = "pref_wifi_sms"; -// -// private static final String GCM_DISABLED_PREF = "pref_gcm_disabled"; -// private static final String GCM_REGISTRATION_ID_PREF = "pref_gcm_registration_id"; -// private static final String GCM_REGISTRATION_ID_VERSION_PREF = "pref_gcm_registration_id_version"; -// private static final String GCM_REGISTRATION_ID_TIME_PREF = "pref_gcm_registration_id_last_set_time"; -// private static final String WEBSOCKET_REGISTERED_PREF = "pref_websocket_registered"; -// private static final String RATING_LATER_PREF = "pref_rating_later"; -// private static final String RATING_ENABLED_PREF = "pref_rating_enabled"; -// private static final String SIGNED_PREKEY_FAILURE_COUNT_PREF = "pref_signed_prekey_failure_count"; -// -// public static final String REPEAT_ALERTS_PREF = "pref_repeat_alerts"; -// public static final String NOTIFICATION_PRIVACY_PREF = "pref_notification_privacy"; -// public static final String NOTIFICATION_PRIORITY_PREF = "pref_notification_priority"; -// public static final String NEW_CONTACTS_NOTIFICATIONS = "pref_enable_new_contacts_notifications"; -// public static final String WEBRTC_CALLING_PREF = "pref_webrtc_calling"; -// -// public static final String MEDIA_DOWNLOAD_MOBILE_PREF = "pref_media_download_mobile"; -// public static final String MEDIA_DOWNLOAD_WIFI_PREF = "pref_media_download_wifi"; -// public static final String MEDIA_DOWNLOAD_ROAMING_PREF = "pref_media_download_roaming"; -// -// public static final String SYSTEM_EMOJI_PREF = "pref_system_emoji"; -// private static final String MULTI_DEVICE_PROVISIONED_PREF = "pref_multi_device"; -// public static final String DIRECT_CAPTURE_CAMERA_ID = "pref_direct_capture_camera_id"; -// private static final String ALWAYS_RELAY_CALLS_PREF = "pref_turn_only"; -// private static final String PROFILE_KEY_PREF = "pref_profile_key"; -// private static final String PROFILE_NAME_PREF = "pref_profile_name"; -// private static final String PROFILE_AVATAR_ID_PREF = "pref_profile_avatar_id"; -// private static final String PROFILE_AVATAR_URL_PREF = "pref_profile_avatar_url"; -// public static final String READ_RECEIPTS_PREF = "pref_read_receipts"; -// public static final String INCOGNITO_KEYBORAD_PREF = "pref_incognito_keyboard"; -// private static final String UNAUTHORIZED_RECEIVED = "pref_unauthorized_received"; -// private static final String SUCCESSFUL_DIRECTORY_PREF = "pref_successful_directory"; -// -// private static final String DATABASE_ENCRYPTED_SECRET = "pref_database_encrypted_secret"; -// private static final String DATABASE_UNENCRYPTED_SECRET = "pref_database_unencrypted_secret"; -// private static final String ATTACHMENT_ENCRYPTED_SECRET = "pref_attachment_encrypted_secret"; -// private static final String ATTACHMENT_UNENCRYPTED_SECRET = "pref_attachment_unencrypted_secret"; -// private static final String NEEDS_SQLCIPHER_MIGRATION = "pref_needs_sql_cipher_migration"; //TODO AC: Delete -// -// private static final String NEXT_PRE_KEY_ID = "pref_next_pre_key_id"; -// private static final String ACTIVE_SIGNED_PRE_KEY_ID = "pref_active_signed_pre_key_id"; -// private static final String NEXT_SIGNED_PRE_KEY_ID = "pref_next_signed_pre_key_id"; -// -// public static final String BACKUP_ENABLED = "pref_backup_enabled_v3"; -// private static final String BACKUP_PASSPHRASE = "pref_backup_passphrase"; -// private static final String ENCRYPTED_BACKUP_PASSPHRASE = "pref_encrypted_backup_passphrase"; -// private static final String BACKUP_TIME = "pref_backup_next_time"; -// public static final String BACKUP_NOW = "pref_backup_create"; -// private static final String BACKUP_SAVE_DIR = "pref_save_dir"; -// -// public static final String SCREEN_LOCK = "pref_android_screen_lock"; -// public static final String SCREEN_LOCK_TIMEOUT = "pref_android_screen_lock_timeout"; -// -// private static final String LAST_FULL_CONTACT_SYNC_TIME = "pref_last_full_contact_sync_time"; -// private static final String NEEDS_FULL_CONTACT_SYNC = "pref_needs_full_contact_sync"; -// -// private static final String LOG_ENCRYPTED_SECRET = "pref_log_encrypted_secret"; -// private static final String LOG_UNENCRYPTED_SECRET = "pref_log_unencrypted_secret"; -// -// private static final String NOTIFICATION_CHANNEL_VERSION = "pref_notification_channel_version"; -// private static final String NOTIFICATION_MESSAGES_CHANNEL_VERSION = "pref_notification_messages_channel_version"; -// -// private static final String NEEDS_MESSAGE_PULL = "pref_needs_message_pull"; -// -// private static final String UNIDENTIFIED_ACCESS_CERTIFICATE_ROTATION_TIME_PREF = "pref_unidentified_access_certificate_rotation_time"; -// private static final String UNIDENTIFIED_ACCESS_CERTIFICATE = "pref_unidentified_access_certificate"; -// public static final String UNIVERSAL_UNIDENTIFIED_ACCESS = "pref_universal_unidentified_access"; -// public static final String SHOW_UNIDENTIFIED_DELIVERY_INDICATORS = "pref_show_unidentifed_delivery_indicators"; -// private static final String UNIDENTIFIED_DELIVERY_ENABLED = "pref_unidentified_delivery_enabled"; -// -// public static final String TYPING_INDICATORS = "pref_typing_indicators"; -// -// public static final String LINK_PREVIEWS = "pref_link_previews"; -// -// private static final String GIF_GRID_LAYOUT = "pref_gif_grid_layout"; -// -// private static final String SEEN_STICKER_INTRO_TOOLTIP = "pref_seen_sticker_intro_tooltip"; -// -// private static final String MEDIA_KEYBOARD_MODE = "pref_media_keyboard_mode"; -// -// // region FCM -// private static final String IS_USING_FCM = "pref_is_using_fcm"; -// private static final String FCM_TOKEN = "pref_fcm_token"; -// private static final String LAST_FCM_TOKEN_UPLOAD_TIME = "pref_last_fcm_token_upload_time_2"; -// private static final String HAS_SEEN_PN_MODE_SHEET = "pref_has_seen_pn_mode_sheet"; -// -// public static boolean isUsingFCM(Context context) { -// return getBooleanPreference(context, IS_USING_FCM, false); -// } -// -// public static void setIsUsingFCM(Context context, boolean value) { -// setBooleanPreference(context, IS_USING_FCM, value); -// } -// -// public static String getFCMToken(Context context) { -// return getStringPreference(context, FCM_TOKEN, ""); -// } -// -// public static void setFCMToken(Context context, String value) { -// setStringPreference(context, FCM_TOKEN, value); -// } -// -// public static long getLastFCMUploadTime(Context context) { -// return getLongPreference(context, LAST_FCM_TOKEN_UPLOAD_TIME, 0); -// } -// -// public static void setLastFCMUploadTime(Context context, long value) { -// setLongPreference(context, LAST_FCM_TOKEN_UPLOAD_TIME, value); -// } -// // endregion -// -// public static boolean isScreenLockEnabled(@NonNull Context context) { -// return getBooleanPreference(context, SCREEN_LOCK, false); -// } -// -// public static void setScreenLockEnabled(@NonNull Context context, boolean value) { -// setBooleanPreference(context, SCREEN_LOCK, value); -// } -// -// public static long getScreenLockTimeout(@NonNull Context context) { -// return getLongPreference(context, SCREEN_LOCK_TIMEOUT, 0); -// } -// -// public static void setScreenLockTimeout(@NonNull Context context, long value) { -// setLongPreference(context, SCREEN_LOCK_TIMEOUT, value); -// } -// -// public static void setBackupPassphrase(@NonNull Context context, @Nullable String passphrase) { -// setStringPreference(context, BACKUP_PASSPHRASE, passphrase); -// } -// -// public static @Nullable String getBackupPassphrase(@NonNull Context context) { -// return getStringPreference(context, BACKUP_PASSPHRASE, null); -// } -// -// public static void setEncryptedBackupPassphrase(@NonNull Context context, @Nullable String encryptedPassphrase) { -// setStringPreference(context, ENCRYPTED_BACKUP_PASSPHRASE, encryptedPassphrase); -// } -// -// public static @Nullable String getEncryptedBackupPassphrase(@NonNull Context context) { -// return getStringPreference(context, ENCRYPTED_BACKUP_PASSPHRASE, null); -// } -// -// public static void setBackupEnabled(@NonNull Context context, boolean value) { -// setBooleanPreference(context, BACKUP_ENABLED, value); -// } -// -// public static boolean isBackupEnabled(@NonNull Context context) { -// return getBooleanPreference(context, BACKUP_ENABLED, false); -// } -// -// public static void setNextBackupTime(@NonNull Context context, long time) { -// setLongPreference(context, BACKUP_TIME, time); -// } -// -// public static long getNextBackupTime(@NonNull Context context) { -// return getLongPreference(context, BACKUP_TIME, -1); -// } -// -// public static void setBackupSaveDir(@NonNull Context context, String dirUri) { -// setStringPreference(context, BACKUP_SAVE_DIR, dirUri); -// } -// -// public static String getBackupSaveDir(@NonNull Context context) { -// return getStringPreference(context, BACKUP_SAVE_DIR, null); -// } -// -// public static int getNextPreKeyId(@NonNull Context context) { -// return getIntegerPreference(context, NEXT_PRE_KEY_ID, new SecureRandom().nextInt(Medium.MAX_VALUE)); -// } -// -// public static void setNextPreKeyId(@NonNull Context context, int value) { -// setIntegerPrefrence(context, NEXT_PRE_KEY_ID, value); -// } -// -// public static int getNextSignedPreKeyId(@NonNull Context context) { -// return getIntegerPreference(context, NEXT_SIGNED_PRE_KEY_ID, new SecureRandom().nextInt(Medium.MAX_VALUE)); -// } -// -// public static void setNextSignedPreKeyId(@NonNull Context context, int value) { -// setIntegerPrefrence(context, NEXT_SIGNED_PRE_KEY_ID, value); -// } -// -// public static int getActiveSignedPreKeyId(@NonNull Context context) { -// return getIntegerPreference(context, ACTIVE_SIGNED_PRE_KEY_ID, -1); -// } -// -// public static void setActiveSignedPreKeyId(@NonNull Context context, int value) { -// setIntegerPrefrence(context, ACTIVE_SIGNED_PRE_KEY_ID, value);; -// } -// -// public static void setNeedsSqlCipherMigration(@NonNull Context context, boolean value) { -// setBooleanPreference(context, NEEDS_SQLCIPHER_MIGRATION, value); -// EventBus.getDefault().post(new SqlCipherMigrationConstraintObserver.SqlCipherNeedsMigrationEvent()); -// } -// -// public static boolean getNeedsSqlCipherMigration(@NonNull Context context) { -// return getBooleanPreference(context, NEEDS_SQLCIPHER_MIGRATION, false); -// } -// -// public static void setAttachmentEncryptedSecret(@NonNull Context context, @NonNull String secret) { -// setStringPreference(context, ATTACHMENT_ENCRYPTED_SECRET, secret); -// } -// -// public static void setAttachmentUnencryptedSecret(@NonNull Context context, @Nullable String secret) { -// setStringPreference(context, ATTACHMENT_UNENCRYPTED_SECRET, secret); -// } -// -// public static @Nullable String getAttachmentEncryptedSecret(@NonNull Context context) { -// return getStringPreference(context, ATTACHMENT_ENCRYPTED_SECRET, null); -// } -// -// public static @Nullable String getAttachmentUnencryptedSecret(@NonNull Context context) { -// return getStringPreference(context, ATTACHMENT_UNENCRYPTED_SECRET, null); -// } -// -// public static void setDatabaseEncryptedSecret(@NonNull Context context, @NonNull String secret) { -// setStringPreference(context, DATABASE_ENCRYPTED_SECRET, secret); -// } -// -// public static void setDatabaseUnencryptedSecret(@NonNull Context context, @Nullable String secret) { -// setStringPreference(context, DATABASE_UNENCRYPTED_SECRET, secret); -// } -// -// public static @Nullable String getDatabaseUnencryptedSecret(@NonNull Context context) { -// return getStringPreference(context, DATABASE_UNENCRYPTED_SECRET, null); -// } -// -// public static @Nullable String getDatabaseEncryptedSecret(@NonNull Context context) { -// return getStringPreference(context, DATABASE_ENCRYPTED_SECRET, null); -// } -// -// public static void setHasSuccessfullyRetrievedDirectory(Context context, boolean value) { -// setBooleanPreference(context, SUCCESSFUL_DIRECTORY_PREF, value); -// } -// -// public static boolean hasSuccessfullyRetrievedDirectory(Context context) { -// return getBooleanPreference(context, SUCCESSFUL_DIRECTORY_PREF, false); -// } -// -// public static void setUnauthorizedReceived(Context context, boolean value) { -// setBooleanPreference(context, UNAUTHORIZED_RECEIVED, value); -// } -// -// public static boolean isUnauthorizedRecieved(Context context) { -// return getBooleanPreference(context, UNAUTHORIZED_RECEIVED, false); -// } -// -// public static boolean isIncognitoKeyboardEnabled(Context context) { -// return getBooleanPreference(context, INCOGNITO_KEYBORAD_PREF, true); -// } -// -// public static boolean isReadReceiptsEnabled(Context context) { -// return getBooleanPreference(context, READ_RECEIPTS_PREF, false); -// } -// -// public static void setReadReceiptsEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, READ_RECEIPTS_PREF, enabled); -// } -// -// public static boolean isTypingIndicatorsEnabled(Context context) { -// return getBooleanPreference(context, TYPING_INDICATORS, false); -// } -// -// public static void setTypingIndicatorsEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, TYPING_INDICATORS, enabled); -// } -// -// public static boolean isLinkPreviewsEnabled(Context context) { -// return getBooleanPreference(context, LINK_PREVIEWS, false); -// } -// -// public static void setLinkPreviewsEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, LINK_PREVIEWS, enabled); -// } -// -// public static boolean isGifSearchInGridLayout(Context context) { -// return getBooleanPreference(context, GIF_GRID_LAYOUT, false); -// } -// -// public static void setIsGifSearchInGridLayout(Context context, boolean isGrid) { -// setBooleanPreference(context, GIF_GRID_LAYOUT, isGrid); -// } -// -// public static @Nullable String getProfileKey(Context context) { -// return getStringPreference(context, PROFILE_KEY_PREF, null); -// } -// -// public static void setProfileKey(Context context, String key) { -// setStringPreference(context, PROFILE_KEY_PREF, key); -// } -// -// public static void setProfileName(Context context, String name) { -// setStringPreference(context, PROFILE_NAME_PREF, name); -// } -// -// public static String getProfileName(Context context) { -// return getStringPreference(context, PROFILE_NAME_PREF, null); -// } -// -// public static void setProfileAvatarId(Context context, int id) { -// setIntegerPrefrence(context, PROFILE_AVATAR_ID_PREF, id); -// } -// -// public static int getProfileAvatarId(Context context) { -// return getIntegerPreference(context, PROFILE_AVATAR_ID_PREF, 0); -// } -// -// public static void setProfilePictureURL(Context context, String url) { -// setStringPreference(context, PROFILE_AVATAR_URL_PREF, url); -// } -// -// public static String getProfilePictureURL(Context context) { -// return getStringPreference(context, PROFILE_AVATAR_URL_PREF, null); -// } -// -// public static int getNotificationPriority(Context context) { -// return Integer.valueOf(getStringPreference(context, NOTIFICATION_PRIORITY_PREF, String.valueOf(NotificationCompat.PRIORITY_HIGH))); -// } -// -// public static int getMessageBodyTextSize(Context context) { -// return Integer.valueOf(getStringPreference(context, MESSAGE_BODY_TEXT_SIZE_PREF, "16")); -// } -// -// public static boolean isTurnOnly(Context context) { -// return getBooleanPreference(context, ALWAYS_RELAY_CALLS_PREF, false); -// } -// -// public static boolean isFcmDisabled(Context context) { -// return getBooleanPreference(context, GCM_DISABLED_PREF, false); -// } -// -// public static void setFcmDisabled(Context context, boolean disabled) { -// setBooleanPreference(context, GCM_DISABLED_PREF, disabled); -// } -// -// public static boolean isWebrtcCallingEnabled(Context context) { -// return getBooleanPreference(context, WEBRTC_CALLING_PREF, false); -// } -// -// public static void setWebrtcCallingEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, WEBRTC_CALLING_PREF, enabled); -// } -// -// public static void setDirectCaptureCameraId(Context context, int value) { -// setIntegerPrefrence(context, DIRECT_CAPTURE_CAMERA_ID, value); -// } -// -// @SuppressWarnings("deprecation") -// public static int getDirectCaptureCameraId(Context context) { -// return getIntegerPreference(context, DIRECT_CAPTURE_CAMERA_ID, CameraInfo.CAMERA_FACING_FRONT); -// } -// -// public static void setMultiDevice(Context context, boolean value) { -// setBooleanPreference(context, MULTI_DEVICE_PROVISIONED_PREF, value); -// } -// -// public static boolean isMultiDevice(Context context) { -// return getBooleanPreference(context, MULTI_DEVICE_PROVISIONED_PREF, false); -// } -// -// public static void setSignedPreKeyFailureCount(Context context, int value) { -// setIntegerPrefrence(context, SIGNED_PREKEY_FAILURE_COUNT_PREF, value); -// } -// -// public static int getSignedPreKeyFailureCount(Context context) { -// return getIntegerPreference(context, SIGNED_PREKEY_FAILURE_COUNT_PREF, 0); -// } -// -// public static NotificationPrivacyPreference getNotificationPrivacy(Context context) { -// return new NotificationPrivacyPreference(getStringPreference(context, NOTIFICATION_PRIVACY_PREF, "all")); -// } -// -// public static boolean isNewContactsNotificationEnabled(Context context) { -// return getBooleanPreference(context, NEW_CONTACTS_NOTIFICATIONS, true); -// } -// -// public static long getRatingLaterTimestamp(Context context) { -// return getLongPreference(context, RATING_LATER_PREF, 0); -// } -// -// public static void setRatingLaterTimestamp(Context context, long timestamp) { -// setLongPreference(context, RATING_LATER_PREF, timestamp); -// } -// -// public static boolean isRatingEnabled(Context context) { -// return getBooleanPreference(context, RATING_ENABLED_PREF, true); -// } -// -// public static void setRatingEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, RATING_ENABLED_PREF, enabled); -// } -// -// public static boolean isWebsocketRegistered(Context context) { -// return getBooleanPreference(context, WEBSOCKET_REGISTERED_PREF, false); -// } -// -// public static void setWebsocketRegistered(Context context, boolean registered) { -// setBooleanPreference(context, WEBSOCKET_REGISTERED_PREF, registered); -// } -// -// public static boolean isWifiSmsEnabled(Context context) { -// return getBooleanPreference(context, WIFI_SMS_PREF, false); -// } -// -// public static int getRepeatAlertsCount(Context context) { -// try { -// return Integer.parseInt(getStringPreference(context, REPEAT_ALERTS_PREF, "0")); -// } catch (NumberFormatException e) { -// Log.w(TAG, e); -// return 0; -// } -// } -// -// public static void setRepeatAlertsCount(Context context, int count) { -// setStringPreference(context, REPEAT_ALERTS_PREF, String.valueOf(count)); -// } -// -// public static boolean isSignedPreKeyRegistered(Context context) { -// return getBooleanPreference(context, SIGNED_PREKEY_REGISTERED_PREF, false); -// } -// -// public static void setSignedPreKeyRegistered(Context context, boolean value) { -// setBooleanPreference(context, SIGNED_PREKEY_REGISTERED_PREF, value); -// } -// -// public static void setFcmToken(Context context, String registrationId) { -// setStringPreference(context, GCM_REGISTRATION_ID_PREF, registrationId); -// setIntegerPrefrence(context, GCM_REGISTRATION_ID_VERSION_PREF, Util.getCanonicalVersionCode()); -// } -// -// public static String getFcmToken(Context context) { -// int storedRegistrationIdVersion = getIntegerPreference(context, GCM_REGISTRATION_ID_VERSION_PREF, 0); -// -// if (storedRegistrationIdVersion != Util.getCanonicalVersionCode()) { -// return null; -// } else { -// return getStringPreference(context, GCM_REGISTRATION_ID_PREF, null); -// } -// } -// -// public static long getFcmTokenLastSetTime(Context context) { -// return getLongPreference(context, GCM_REGISTRATION_ID_TIME_PREF, 0); -// } -// -// public static void setFcmTokenLastSetTime(Context context, long timestamp) { -// setLongPreference(context, GCM_REGISTRATION_ID_TIME_PREF, timestamp); -// } -// -// public static boolean isSmsEnabled(Context context) { -// return Util.isDefaultSmsProvider(context); -// } -// -// public static int getLocalRegistrationId(Context context) { -// return getIntegerPreference(context, LOCAL_REGISTRATION_ID_PREF, 0); -// } -// -// public static void setLocalRegistrationId(Context context, int registrationId) { -// setIntegerPrefrence(context, LOCAL_REGISTRATION_ID_PREF, registrationId); -// } -// -// public static void removeLocalRegistrationId(Context context) { -// removePreference(context, LOCAL_REGISTRATION_ID_PREF); -// } -// -// public static boolean isInThreadNotifications(Context context) { -// return getBooleanPreference(context, IN_THREAD_NOTIFICATION_PREF, true); -// } -// -// public static long getUnidentifiedAccessCertificateRotationTime(Context context) { -// return getLongPreference(context, UNIDENTIFIED_ACCESS_CERTIFICATE_ROTATION_TIME_PREF, 0L); -// } -// -// public static void setUnidentifiedAccessCertificateRotationTime(Context context, long value) { -// setLongPreference(context, UNIDENTIFIED_ACCESS_CERTIFICATE_ROTATION_TIME_PREF, value); -// } -// -// public static void setUnidentifiedAccessCertificate(Context context, byte[] value) { -// setStringPreference(context, UNIDENTIFIED_ACCESS_CERTIFICATE, Base64.encodeBytes(value)); -// } -// -// public static byte[] getUnidentifiedAccessCertificate(Context context) { -// try { -// String result = getStringPreference(context, UNIDENTIFIED_ACCESS_CERTIFICATE, null); -// if (result != null) { -// return Base64.decode(result); -// } -// } catch (IOException e) { -// Log.w(TAG, e); -// } -// -// return null; -// } -// -// public static boolean isUniversalUnidentifiedAccess(Context context) { -// return getBooleanPreference(context, UNIVERSAL_UNIDENTIFIED_ACCESS, false); -// } -// -// public static boolean isShowUnidentifiedDeliveryIndicatorsEnabled(Context context) { -// return getBooleanPreference(context, SHOW_UNIDENTIFIED_DELIVERY_INDICATORS, false); -// } -// -// public static void setIsUnidentifiedDeliveryEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, UNIDENTIFIED_DELIVERY_ENABLED, enabled); -// } -// -// public static boolean isUnidentifiedDeliveryEnabled(Context context) { -// // Loki - Always enable unidentified sender -// return true; -// // return getBooleanPreference(context, UNIDENTIFIED_DELIVERY_ENABLED, true); -// } -// -// public static long getSignedPreKeyRotationTime(Context context) { -// return getLongPreference(context, SIGNED_PREKEY_ROTATION_TIME_PREF, 0L); -// } -// -// public static void setSignedPreKeyRotationTime(Context context, long value) { -// setLongPreference(context, SIGNED_PREKEY_ROTATION_TIME_PREF, value); -// } -// -// public static long getDirectoryRefreshTime(Context context) { -// return getLongPreference(context, DIRECTORY_FRESH_TIME_PREF, 0L); -// } -// -// public static void setDirectoryRefreshTime(Context context, long value) { -// setLongPreference(context, DIRECTORY_FRESH_TIME_PREF, value); -// } -// -// public static long getUpdateApkRefreshTime(Context context) { -// return getLongPreference(context, UPDATE_APK_REFRESH_TIME_PREF, 0L); -// } -// -// public static void setUpdateApkRefreshTime(Context context, long value) { -// setLongPreference(context, UPDATE_APK_REFRESH_TIME_PREF, value); -// } -// -// public static void setUpdateApkDownloadId(Context context, long value) { -// setLongPreference(context, UPDATE_APK_DOWNLOAD_ID, value); -// } -// -// public static long getUpdateApkDownloadId(Context context) { -// return getLongPreference(context, UPDATE_APK_DOWNLOAD_ID, -1); -// } -// -// public static void setUpdateApkDigest(Context context, String value) { -// setStringPreference(context, UPDATE_APK_DIGEST, value); -// } -// -// public static String getUpdateApkDigest(Context context) { -// return getStringPreference(context, UPDATE_APK_DIGEST, null); -// } -// -// public static String getLocalNumber(Context context) { -// return getStringPreference(context, LOCAL_NUMBER_PREF, null); -// } -// -// public static void setLocalNumber(Context context, String localNumber) { -// setStringPreference(context, LOCAL_NUMBER_PREF, localNumber.toLowerCase()); -// } -// -// public static void removeLocalNumber(Context context) { -// removePreference(context, LOCAL_NUMBER_PREF); -// } -// -// public static String getPushServerPassword(Context context) { -// return getStringPreference(context, GCM_PASSWORD_PREF, null); -// } -// -// public static void setPushServerPassword(Context context, String password) { -// setStringPreference(context, GCM_PASSWORD_PREF, password); -// } -// -// public static String getSignalingKey(Context context) { -// return getStringPreference(context, SIGNALING_KEY_PREF, null); -// } -// -// public static boolean isEnterImeKeyEnabled(Context context) { -// return getBooleanPreference(context, ENTER_PRESENT_PREF, false); -// } -// -// public static boolean isEnterSendsEnabled(Context context) { -// return getBooleanPreference(context, ENTER_SENDS_PREF, false); -// } -// -// public static boolean isPasswordDisabled(Context context) { -// return getBooleanPreference(context, DISABLE_PASSPHRASE_PREF, false); -// } -// -// public static void setPasswordDisabled(Context context, boolean disabled) { -// setBooleanPreference(context, DISABLE_PASSPHRASE_PREF, disabled); -// } -// -// public static boolean getUseCustomMmsc(Context context) { -// boolean legacy = TextSecurePreferences.isLegacyUseLocalApnsEnabled(context); -// return getBooleanPreference(context, MMSC_CUSTOM_HOST_PREF, legacy); -// } -// -// public static void setUseCustomMmsc(Context context, boolean value) { -// setBooleanPreference(context, MMSC_CUSTOM_HOST_PREF, value); -// } -// -// public static String getMmscUrl(Context context) { -// return getStringPreference(context, MMSC_HOST_PREF, ""); -// } -// -// public static void setMmscUrl(Context context, String mmsc) { -// setStringPreference(context, MMSC_HOST_PREF, mmsc); -// } -// -// public static boolean getUseCustomMmscProxy(Context context) { -// boolean legacy = TextSecurePreferences.isLegacyUseLocalApnsEnabled(context); -// return getBooleanPreference(context, MMSC_CUSTOM_PROXY_PREF, legacy); -// } -// -// public static void setUseCustomMmscProxy(Context context, boolean value) { -// setBooleanPreference(context, MMSC_CUSTOM_PROXY_PREF, value); -// } -// -// public static String getMmscProxy(Context context) { -// return getStringPreference(context, MMSC_PROXY_HOST_PREF, ""); -// } -// -// public static void setMmscProxy(Context context, String value) { -// setStringPreference(context, MMSC_PROXY_HOST_PREF, value); -// } -// -// public static boolean getUseCustomMmscProxyPort(Context context) { -// boolean legacy = TextSecurePreferences.isLegacyUseLocalApnsEnabled(context); -// return getBooleanPreference(context, MMSC_CUSTOM_PROXY_PORT_PREF, legacy); -// } -// -// public static void setUseCustomMmscProxyPort(Context context, boolean value) { -// setBooleanPreference(context, MMSC_CUSTOM_PROXY_PORT_PREF, value); -// } -// -// public static String getMmscProxyPort(Context context) { -// return getStringPreference(context, MMSC_PROXY_PORT_PREF, ""); -// } -// -// public static void setMmscProxyPort(Context context, String value) { -// setStringPreference(context, MMSC_PROXY_PORT_PREF, value); -// } -// -// public static boolean getUseCustomMmscUsername(Context context) { -// boolean legacy = TextSecurePreferences.isLegacyUseLocalApnsEnabled(context); -// return getBooleanPreference(context, MMSC_CUSTOM_USERNAME_PREF, legacy); -// } -// -// public static void setUseCustomMmscUsername(Context context, boolean value) { -// setBooleanPreference(context, MMSC_CUSTOM_USERNAME_PREF, value); -// } -// -// public static String getMmscUsername(Context context) { -// return getStringPreference(context, MMSC_USERNAME_PREF, ""); -// } -// -// public static void setMmscUsername(Context context, String value) { -// setStringPreference(context, MMSC_USERNAME_PREF, value); -// } -// -// public static boolean getUseCustomMmscPassword(Context context) { -// boolean legacy = TextSecurePreferences.isLegacyUseLocalApnsEnabled(context); -// return getBooleanPreference(context, MMSC_CUSTOM_PASSWORD_PREF, legacy); -// } -// -// public static void setUseCustomMmscPassword(Context context, boolean value) { -// setBooleanPreference(context, MMSC_CUSTOM_PASSWORD_PREF, value); -// } -// -// public static String getMmscPassword(Context context) { -// return getStringPreference(context, MMSC_PASSWORD_PREF, ""); -// } -// -// public static void setMmscPassword(Context context, String value) { -// setStringPreference(context, MMSC_PASSWORD_PREF, value); -// } -// -// public static String getMmsUserAgent(Context context, String defaultUserAgent) { -// boolean useCustom = getBooleanPreference(context, MMS_CUSTOM_USER_AGENT, false); -// -// if (useCustom) return getStringPreference(context, MMS_USER_AGENT, defaultUserAgent); -// else return defaultUserAgent; -// } -// -// public static String getIdentityContactUri(Context context) { -// return getStringPreference(context, IDENTITY_PREF, null); -// } -// -// public static void setIdentityContactUri(Context context, String identityUri) { -// setStringPreference(context, IDENTITY_PREF, identityUri); -// } -// -// public static void setScreenSecurityEnabled(Context context, boolean value) { -// setBooleanPreference(context, SCREEN_SECURITY_PREF, value); -// } -// -// public static boolean isScreenSecurityEnabled(Context context) { -// return getBooleanPreference(context, SCREEN_SECURITY_PREF, true); -// } -// -// public static boolean isLegacyUseLocalApnsEnabled(Context context) { -// return getBooleanPreference(context, ENABLE_MANUAL_MMS_PREF, false); -// } -// -// public static int getLastVersionCode(Context context) { -// return getIntegerPreference(context, LAST_VERSION_CODE_PREF, 0); -// } -// -// public static void setLastVersionCode(Context context, int versionCode) throws IOException { -// if (!setIntegerPrefrenceBlocking(context, LAST_VERSION_CODE_PREF, versionCode)) { -// throw new IOException("couldn't write version code to sharedpreferences"); -// } -// } -// -// public static int getLastExperienceVersionCode(Context context) { -// return getIntegerPreference(context, LAST_EXPERIENCE_VERSION_PREF, 0); -// } -// -// public static void setLastExperienceVersionCode(Context context, int versionCode) { -// setIntegerPrefrence(context, LAST_EXPERIENCE_VERSION_PREF, versionCode); -// } -// -// public static int getExperienceDismissedVersionCode(Context context) { -// return getIntegerPreference(context, EXPERIENCE_DISMISSED_PREF, 0); -// } -// -// public static void setExperienceDismissedVersionCode(Context context, int versionCode) { -// setIntegerPrefrence(context, EXPERIENCE_DISMISSED_PREF, versionCode); -// } -// -// public static String getTheme(Context context) { -// return getStringPreference(context, THEME_PREF, "light"); -// } -// -// public static boolean isVerifying(Context context) { -// return getBooleanPreference(context, VERIFYING_STATE_PREF, false); -// } -// -// public static void setVerifying(Context context, boolean verifying) { -// setBooleanPreference(context, VERIFYING_STATE_PREF, verifying); -// } -// -// public static boolean isPushRegistered(Context context) { -// return getBooleanPreference(context, REGISTERED_GCM_PREF, false); -// } -// -// public static void setPushRegistered(Context context, boolean registered) { -// Log.i(TAG, "Setting push registered: " + registered); -// setBooleanPreference(context, REGISTERED_GCM_PREF, registered); -// } -// -// public static boolean isShowInviteReminders(Context context) { -// return getBooleanPreference(context, SHOW_INVITE_REMINDER_PREF, true); -// } -// -// public static boolean isPassphraseTimeoutEnabled(Context context) { -// return getBooleanPreference(context, PASSPHRASE_TIMEOUT_PREF, false); -// } -// -// public static int getPassphraseTimeoutInterval(Context context) { -// return getIntegerPreference(context, PASSPHRASE_TIMEOUT_INTERVAL_PREF, 5 * 60); -// } -// -// public static void setPassphraseTimeoutInterval(Context context, int interval) { -// setIntegerPrefrence(context, PASSPHRASE_TIMEOUT_INTERVAL_PREF, interval); -// } -// -// public static String getLanguage(Context context) { -// return getStringPreference(context, LANGUAGE_PREF, "zz"); -// } -// -// public static void setLanguage(Context context, String language) { -// setStringPreference(context, LANGUAGE_PREF, language); -// } -// -// public static boolean isSmsDeliveryReportsEnabled(Context context) { -// return getBooleanPreference(context, SMS_DELIVERY_REPORT_PREF, false); -// } -// -// public static boolean hasSeenWelcomeScreen(Context context) { -// return getBooleanPreference(context, SEEN_WELCOME_SCREEN_PREF, false); -// } -// -// public static void setHasSeenWelcomeScreen(Context context, boolean value) { -// setBooleanPreference(context, SEEN_WELCOME_SCREEN_PREF, value); -// } -// -// public static boolean hasPromptedDefaultSmsProvider(Context context) { -// return getBooleanPreference(context, PROMPTED_DEFAULT_SMS_PREF, false); -// } -// -// public static void setPromptedDefaultSmsProvider(Context context, boolean value) { -// setBooleanPreference(context, PROMPTED_DEFAULT_SMS_PREF, value); -// } -// -// public static void setPromptedOptimizeDoze(Context context, boolean value) { -// setBooleanPreference(context, PROMPTED_OPTIMIZE_DOZE_PREF, value); -// } -// -// public static boolean hasPromptedOptimizeDoze(Context context) { -// return getBooleanPreference(context, PROMPTED_OPTIMIZE_DOZE_PREF, false); -// } -// -// public static boolean hasPromptedShare(Context context) { -// return getBooleanPreference(context, PROMPTED_SHARE_PREF, false); -// } -// -// public static void setPromptedShare(Context context, boolean value) { -// setBooleanPreference(context, PROMPTED_SHARE_PREF, value); -// } -// -// public static boolean isInterceptAllMmsEnabled(Context context) { -// return getBooleanPreference(context, ALL_MMS_PREF, true); -// } -// -// public static boolean isInterceptAllSmsEnabled(Context context) { -// return getBooleanPreference(context, ALL_SMS_PREF, true); -// } -// -// public static boolean isNotificationsEnabled(Context context) { -// return getBooleanPreference(context, NOTIFICATION_PREF, true); -// } -// -// public static @NonNull Uri getNotificationRingtone(Context context) { -// String result = getStringPreference(context, RINGTONE_PREF, Settings.System.DEFAULT_NOTIFICATION_URI.toString()); -// -// if (result != null && result.startsWith("file:")) { -// result = Settings.System.DEFAULT_NOTIFICATION_URI.toString(); -// } -// -// return Uri.parse(result); -// } -// -// public static void removeNotificationRingtone(Context context) { -// removePreference(context, RINGTONE_PREF); -// } -// -// public static void setNotificationRingtone(Context context, String ringtone) { -// setStringPreference(context, RINGTONE_PREF, ringtone); -// } -// -// public static void setNotificationVibrateEnabled(Context context, boolean enabled) { -// setBooleanPreference(context, VIBRATE_PREF, enabled); -// } -// -// public static boolean isNotificationVibrateEnabled(Context context) { -// return getBooleanPreference(context, VIBRATE_PREF, true); -// } -// -// public static String getNotificationLedColor(Context context) { -// return getStringPreference(context, LED_COLOR_PREF, "blue"); -// } -// -// public static String getNotificationLedPattern(Context context) { -// return getStringPreference(context, LED_BLINK_PREF, "500,2000"); -// } -// -// public static String getNotificationLedPatternCustom(Context context) { -// return getStringPreference(context, LED_BLINK_PREF_CUSTOM, "500,2000"); -// } -// -// public static void setNotificationLedPatternCustom(Context context, String pattern) { -// setStringPreference(context, LED_BLINK_PREF_CUSTOM, pattern); -// } -// -// public static boolean isThreadLengthTrimmingEnabled(Context context) { -// return getBooleanPreference(context, THREAD_TRIM_ENABLED, false); -// } -// -// public static int getThreadTrimLength(Context context) { -// return Integer.parseInt(getStringPreference(context, THREAD_TRIM_LENGTH, "500")); -// } -// -// public static boolean isSystemEmojiPreferred(Context context) { -// return getBooleanPreference(context, SYSTEM_EMOJI_PREF, false); -// } -// -// public static @NonNull Set getMobileMediaDownloadAllowed(Context context) { -// return getMediaDownloadAllowed(context, MEDIA_DOWNLOAD_MOBILE_PREF, R.array.pref_media_download_mobile_data_default); -// } -// -// public static @NonNull Set getWifiMediaDownloadAllowed(Context context) { -// return getMediaDownloadAllowed(context, MEDIA_DOWNLOAD_WIFI_PREF, R.array.pref_media_download_wifi_default); -// } -// -// public static @NonNull Set getRoamingMediaDownloadAllowed(Context context) { -// return getMediaDownloadAllowed(context, MEDIA_DOWNLOAD_ROAMING_PREF, R.array.pref_media_download_roaming_default); -// } -// -// private static @NonNull Set getMediaDownloadAllowed(Context context, String key, @ArrayRes int defaultValuesRes) { -// return getStringSetPreference(context, -// key, -// new HashSet<>(Arrays.asList(context.getResources().getStringArray(defaultValuesRes)))); -// } -// -// public static long getLastFullContactSyncTime(Context context) { -// return getLongPreference(context, LAST_FULL_CONTACT_SYNC_TIME, 0); -// } -// -// public static void setLastFullContactSyncTime(Context context, long timestamp) { -// setLongPreference(context, LAST_FULL_CONTACT_SYNC_TIME, timestamp); -// } -// -// public static boolean needsFullContactSync(Context context) { -// return getBooleanPreference(context, NEEDS_FULL_CONTACT_SYNC, false); -// } -// -// public static void setNeedsFullContactSync(Context context, boolean needsSync) { -// setBooleanPreference(context, NEEDS_FULL_CONTACT_SYNC, needsSync); -// } -// -// public static void setLogEncryptedSecret(Context context, String base64Secret) { -// setStringPreference(context, LOG_ENCRYPTED_SECRET, base64Secret); -// } -// -// public static String getLogEncryptedSecret(Context context) { -// return getStringPreference(context, LOG_ENCRYPTED_SECRET, null); -// } -// -// public static void setLogUnencryptedSecret(Context context, String base64Secret) { -// setStringPreference(context, LOG_UNENCRYPTED_SECRET, base64Secret); -// } -// -// public static String getLogUnencryptedSecret(Context context) { -// return getStringPreference(context, LOG_UNENCRYPTED_SECRET, null); -// } -// -// public static int getNotificationChannelVersion(Context context) { -// return getIntegerPreference(context, NOTIFICATION_CHANNEL_VERSION, 1); -// } -// -// public static void setNotificationChannelVersion(Context context, int version) { -// setIntegerPrefrence(context, NOTIFICATION_CHANNEL_VERSION, version); -// } -// -// public static int getNotificationMessagesChannelVersion(Context context) { -// return getIntegerPreference(context, NOTIFICATION_MESSAGES_CHANNEL_VERSION, 1); -// } -// -// public static void setNotificationMessagesChannelVersion(Context context, int version) { -// setIntegerPrefrence(context, NOTIFICATION_MESSAGES_CHANNEL_VERSION, version); -// } -// -// public static boolean getNeedsMessagePull(Context context) { -// return getBooleanPreference(context, NEEDS_MESSAGE_PULL, false); -// } -// -// public static void setNeedsMessagePull(Context context, boolean needsMessagePull) { -// setBooleanPreference(context, NEEDS_MESSAGE_PULL, needsMessagePull); -// } -// -// public static boolean hasSeenStickerIntroTooltip(Context context) { -// return getBooleanPreference(context, SEEN_STICKER_INTRO_TOOLTIP, false); -// } -// -// public static void setHasSeenStickerIntroTooltip(Context context, boolean seenStickerTooltip) { -// setBooleanPreference(context, SEEN_STICKER_INTRO_TOOLTIP, seenStickerTooltip); -// } -// -// public static void setMediaKeyboardMode(Context context, MediaKeyboardMode mode) { -// setStringPreference(context, MEDIA_KEYBOARD_MODE, mode.name()); -// } -// -// public static MediaKeyboardMode getMediaKeyboardMode(Context context) { -// String name = getStringPreference(context, MEDIA_KEYBOARD_MODE, MediaKeyboardMode.EMOJI.name()); -// return MediaKeyboardMode.valueOf(name); -// } -// -// public static void setBooleanPreference(Context context, String key, boolean value) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean(key, value).apply(); -// } -// -// public static boolean getBooleanPreference(Context context, String key, boolean defaultValue) { -// return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(key, defaultValue); -// } -// -// public static void setStringPreference(Context context, String key, String value) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().putString(key, value).apply(); -// } -// -// public static String getStringPreference(Context context, String key, String defaultValue) { -// return PreferenceManager.getDefaultSharedPreferences(context).getString(key, defaultValue); -// } -// -// private static int getIntegerPreference(Context context, String key, int defaultValue) { -// return PreferenceManager.getDefaultSharedPreferences(context).getInt(key, defaultValue); -// } -// -// private static void setIntegerPrefrence(Context context, String key, int value) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(key, value).apply(); -// } -// -// private static boolean setIntegerPrefrenceBlocking(Context context, String key, int value) { -// return PreferenceManager.getDefaultSharedPreferences(context).edit().putInt(key, value).commit(); -// } -// -// private static long getLongPreference(Context context, String key, long defaultValue) { -// return PreferenceManager.getDefaultSharedPreferences(context).getLong(key, defaultValue); -// } -// -// private static void setLongPreference(Context context, String key, long value) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().putLong(key, value).apply(); -// } -// -// private static void removePreference(Context context, String key) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().remove(key).apply(); -// } -// -// private static Set getStringSetPreference(Context context, String key, Set defaultValues) { -// final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); -// if (prefs.contains(key)) { -// return prefs.getStringSet(key, Collections.emptySet()); -// } else { -// return defaultValues; -// } -// } -// -// // NEVER rename these -- they're persisted by name -// public enum MediaKeyboardMode { -// EMOJI, STICKER -// } -// -// // region Loki -// public static long getBackgroundPollTime(Context context) { -// return getLongPreference(context, "background_poll_time", 0L); -// } -// -// public static void setBackgroundPollTime(Context context, long backgroundPollTime) { -// setLongPreference(context, "background_poll_time", backgroundPollTime); -// } -// -// public static long getOpenGroupBackgroundPollTime(Context context) { -// return getLongPreference(context, "public_chat_background_poll_time", 0L); -// } -// -// public static void setOpenGroupBackgroundPollTime(Context context, long backgroundPollTime) { -// setLongPreference(context, "public_chat_background_poll_time", backgroundPollTime); -// } -// -// public static boolean isChatSetUp(Context context, String id) { -// return getBooleanPreference(context, "is_chat_set_up" + "?chat=" + id, false); -// } -// -// public static void markChatSetUp(Context context, String id) { -// setBooleanPreference(context, "is_chat_set_up" + "?chat=" + id, true); -// } -// -// public static String getMasterHexEncodedPublicKey(Context context) { -// return getStringPreference(context, "master_hex_encoded_public_key", null); -// } -// -// public static void setMasterHexEncodedPublicKey(Context context, String masterHexEncodedPublicKey) { -// setStringPreference(context, "master_hex_encoded_public_key", masterHexEncodedPublicKey.toLowerCase()); -// } -// -// public static Boolean getHasViewedSeed(Context context) { -// return getBooleanPreference(context, "has_viewed_seed", false); -// } -// -// public static void setHasViewedSeed(Context context, Boolean hasViewedSeed) { -// setBooleanPreference(context, "has_viewed_seed", hasViewedSeed); -// } -// -// public static void setNeedsDatabaseReset(Context context, boolean resetDatabase) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean("database_reset", resetDatabase).commit(); -// } -// -// public static boolean getNeedsDatabaseReset(Context context) { -// return getBooleanPreference(context, "database_reset", false); -// } -// -// public static void setWasUnlinked(Context context, boolean value) { -// // We do it this way so that it gets persisted in storage straight away -// PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean("database_reset_unpair", value).commit(); -// } -// -// public static boolean getWasUnlinked(Context context) { -// return getBooleanPreference(context, "database_reset_unpair", false); -// } -// -// public static void setNeedsIsRevokedSlaveDeviceCheck(Context context, boolean value) { -// setBooleanPreference(context, "needs_revocation", value); -// } -// -// public static boolean getNeedsIsRevokedSlaveDeviceCheck(Context context) { -// return getBooleanPreference(context, "needs_revocation", false); -// } -// -// public static void setRestorationTime(Context context, long time) { -// setLongPreference(context, "restoration_time", time); -// } -// -// public static long getRestorationTime(Context context) { -// return getLongPreference(context, "restoration_time", 0); -// } -// -// public static boolean getHasSeenOpenGroupSuggestionSheet(Context context) { -// return getBooleanPreference(context, "has_seen_open_group_suggestion_sheet", false); -// } -// -// public static void setHasSeenOpenGroupSuggestionSheet(Context context) { -// setBooleanPreference(context, "has_seen_open_group_suggestion_sheet", true); -// } -// -// public static long getLastProfilePictureUpload(Context context) { -// return getLongPreference(context, "last_profile_picture_upload", 0); -// } -// -// public static void setLastProfilePictureUpload(Context context, long newValue) { -// setLongPreference(context, "last_profile_picture_upload", newValue); -// } -// -// public static boolean hasSeenGIFMetaDataWarning(Context context) { -// return getBooleanPreference(context, "has_seen_gif_metadata_warning", false); -// } -// -// public static void setHasSeenGIFMetaDataWarning(Context context) { -// setBooleanPreference(context, "has_seen_gif_metadata_warning", true); -// } -// -// public static void clearAll(Context context) { -// PreferenceManager.getDefaultSharedPreferences(context).edit().clear().commit(); -// } -// -// public static boolean getHasSeenMultiDeviceRemovalSheet(Context context) { -// return getBooleanPreference(context, "has_seen_multi_device_removal_sheet", false); -// } -// -// public static void setHasSeenMultiDeviceRemovalSheet(Context context) { -// setBooleanPreference(context, "has_seen_multi_device_removal_sheet", true); -// } -// -// public static boolean hasSeenLightThemeIntroSheet(Context context) { -// return getBooleanPreference(context, "has_seen_light_theme_intro_sheet", false); -// } -// -// public static void setHasSeenLightThemeIntroSheet(Context context) { -// setBooleanPreference(context, "has_seen_light_theme_intro_sheet", true); -// } -// -// public static long getLastSnodePoolRefreshDate(Context context) { -// return getLongPreference(context, "last_snode_pool_refresh_date", 0); -// } -// -// public static void setLastSnodePoolRefreshDate(Context context, Date date) { -// setLongPreference(context, "last_snode_pool_refresh_date", date.getTime()); -// } -// -// public static long getLastKeyPairMigrationNudge(Context context) { -// return getLongPreference(context, "last_key_pair_migration_nudge", 0); -// } -// -// public static void setLastKeyPairMigrationNudge(Context context, long newValue) { -// setLongPreference(context, "last_key_pair_migration_nudge", newValue); -// } -// -// public static boolean getIsMigratingKeyPair(Context context) { -// return getBooleanPreference(context, "is_migrating_key_pair", false); -// } -// -// public static void setIsMigratingKeyPair(Context context, boolean newValue) { -// setBooleanPreference(context, "is_migrating_key_pair", newValue); -// } -// // endregion -// -// // region Backup related -// public static List getBackupRecords(@NonNull Context context) { -// final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); -// -// final String prefsFileName; -// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { -// prefsFileName = PreferenceManager.getDefaultSharedPreferencesName(context); -// } else { -// prefsFileName = context.getPackageName() + "_preferences"; -// } -// -// final LinkedList prefList = new LinkedList<>(); -// addBackupEntryInt (prefList, preferences, prefsFileName, LOCAL_REGISTRATION_ID_PREF); -// addBackupEntryString (prefList, preferences, prefsFileName, LOCAL_NUMBER_PREF); -// addBackupEntryString (prefList, preferences, prefsFileName, PROFILE_NAME_PREF); -// addBackupEntryString (prefList, preferences, prefsFileName, PROFILE_AVATAR_URL_PREF); -// addBackupEntryInt (prefList, preferences, prefsFileName, PROFILE_AVATAR_ID_PREF); -// addBackupEntryString (prefList, preferences, prefsFileName, PROFILE_KEY_PREF); -// addBackupEntryBoolean(prefList, preferences, prefsFileName, IS_USING_FCM); -// -// return prefList; -// } -// -// private static void addBackupEntryString( -// List outPrefList, -// SharedPreferences prefs, -// String prefFileName, -// String prefKey) { -// String value = prefs.getString(prefKey, null); -// if (value == null) { -// logBackupEntry(prefKey, false); -// return; -// } -// outPrefList.add(BackupProtos.SharedPreference.newBuilder() -// .setFile(prefFileName) -// .setKey(prefKey) -// .setValue(value) -// .build()); -// logBackupEntry(prefKey, true); -// } -// -// private static void addBackupEntryInt( -// List outPrefList, -// SharedPreferences prefs, -// String prefFileName, -// String prefKey) { -// int value = prefs.getInt(prefKey, -1); -// if (value == -1) { -// logBackupEntry(prefKey, false); -// return; -// } -// outPrefList.add(BackupProtos.SharedPreference.newBuilder() -// .setFile(prefFileName) -// .setKey(PREF_PREFIX_TYPE_INT + prefKey) // The prefix denotes the type of the preference. -// .setValue(String.valueOf(value)) -// .build()); -// logBackupEntry(prefKey, true); -// } -// -// private static void addBackupEntryBoolean( -// List outPrefList, -// SharedPreferences prefs, -// String prefFileName, -// String prefKey) { -// if (!prefs.contains(prefKey)) { -// logBackupEntry(prefKey, false); -// return; -// } -// outPrefList.add(BackupProtos.SharedPreference.newBuilder() -// .setFile(prefFileName) -// .setKey(PREF_PREFIX_TYPE_BOOLEAN + prefKey) // The prefix denotes the type of the preference. -// .setValue(String.valueOf(prefs.getBoolean(prefKey, false))) -// .build()); -// logBackupEntry(prefKey, true); -// } -// -// private static void logBackupEntry(String prefName, boolean wasIncluded) { -// StringBuilder sb = new StringBuilder(); -// sb.append("Backup preference "); -// sb.append(wasIncluded ? "+ " : "- "); -// sb.append('\"').append(prefName).append("\" "); -// if (!wasIncluded) { -// sb.append("(is empty and not included)"); -// } -// Log.d(TAG, sb.toString()); -// } -// // endregion -} diff --git a/libsession/src/main/java/org/session/libsession/messaging/MessagingConfiguration.kt b/libsession/src/main/java/org/session/libsession/messaging/MessagingConfiguration.kt index 3ff172f8eb..f16843a163 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/MessagingConfiguration.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/MessagingConfiguration.kt @@ -11,27 +11,21 @@ import org.session.libsignal.service.loki.protocol.closedgroups.SharedSenderKeys class MessagingConfiguration( val context: Context, val storage: StorageProtocol, - val signalStorage: SignalProtocolStore, val sskDatabase: SharedSenderKeysDatabaseProtocol, val messageDataProvider: MessageDataProvider, - val sessionResetImp: SessionResetProtocol, - val sessionProtocol: SessionProtocol, - val certificateValidator: CertificateValidator) + val sessionProtocol: SessionProtocol) { companion object { lateinit var shared: MessagingConfiguration fun configure(context: Context, storage: StorageProtocol, - signalStorage: SignalProtocolStore, sskDatabase: SharedSenderKeysDatabaseProtocol, messageDataProvider: MessageDataProvider, - sessionResetImp: SessionResetProtocol, - sessionProtocol: SessionProtocol, - certificateValidator: CertificateValidator + sessionProtocol: SessionProtocol ) { if (Companion::shared.isInitialized) { return } - shared = MessagingConfiguration(context, storage, signalStorage, sskDatabase, messageDataProvider, sessionResetImp, sessionProtocol, certificateValidator) + shared = MessagingConfiguration(context, storage, sskDatabase, messageDataProvider, sessionProtocol) } } } \ No newline at end of file