mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-16 17:41:26 +00:00
fix: crash on backup prefs
This commit is contained in:
parent
784e217e91
commit
d9511aa087
@ -1,12 +1,7 @@
|
|||||||
package org.thoughtcrime.securesms.preferences;
|
package org.thoughtcrime.securesms.preferences;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
@ -14,34 +9,16 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
import androidx.preference.EditTextPreference;
|
import androidx.preference.EditTextPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.session.libsession.utilities.TextSecurePreferences;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
|
||||||
import org.thoughtcrime.securesms.backup.BackupDialog;
|
|
||||||
import org.thoughtcrime.securesms.backup.BackupEvent;
|
|
||||||
import org.thoughtcrime.securesms.components.SwitchPreferenceCompat;
|
|
||||||
import org.thoughtcrime.securesms.jobs.LocalBackupJob;
|
|
||||||
import org.session.libsignal.utilities.logging.Log;
|
import org.session.libsignal.utilities.logging.Log;
|
||||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||||
import org.thoughtcrime.securesms.preferences.widgets.ProgressPreference;
|
|
||||||
import org.thoughtcrime.securesms.util.BackupDirSelector;
|
|
||||||
import org.thoughtcrime.securesms.util.BackupUtil;
|
|
||||||
import org.session.libsession.utilities.TextSecurePreferences;
|
|
||||||
import org.thoughtcrime.securesms.util.Trimmer;
|
import org.thoughtcrime.securesms.util.Trimmer;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import network.loki.messenger.R;
|
import network.loki.messenger.R;
|
||||||
|
|
||||||
public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
||||||
private static final String TAG = ChatsPreferenceFragment.class.getSimpleName();
|
private static final String TAG = ChatsPreferenceFragment.class.getSimpleName();
|
||||||
|
|
||||||
private BackupDirSelector backupDirSelector;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle paramBundle) {
|
public void onCreate(Bundle paramBundle) {
|
||||||
super.onCreate(paramBundle);
|
super.onCreate(paramBundle);
|
||||||
@ -51,14 +28,6 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
findPreference(TextSecurePreferences.THREAD_TRIM_LENGTH)
|
findPreference(TextSecurePreferences.THREAD_TRIM_LENGTH)
|
||||||
.setOnPreferenceChangeListener(new TrimLengthValidationListener());
|
.setOnPreferenceChangeListener(new TrimLengthValidationListener());
|
||||||
|
|
||||||
findPreference(TextSecurePreferences.BACKUP_ENABLED)
|
|
||||||
.setOnPreferenceClickListener(new BackupClickListener());
|
|
||||||
findPreference(TextSecurePreferences.BACKUP_NOW)
|
|
||||||
.setOnPreferenceClickListener(new BackupCreateListener());
|
|
||||||
|
|
||||||
backupDirSelector = new BackupDirSelector(this);
|
|
||||||
|
|
||||||
EventBus.getDefault().register(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -69,13 +38,11 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
setBackupSummary();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
EventBus.getDefault().unregister(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -83,79 +50,6 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
Permissions.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
backupDirSelector.onActivityResult(requestCode, resultCode, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
|
||||||
public void onEvent(BackupEvent event) {
|
|
||||||
ProgressPreference preference = findPreference(TextSecurePreferences.BACKUP_NOW);
|
|
||||||
|
|
||||||
if (event.getType() == BackupEvent.Type.PROGRESS) {
|
|
||||||
preference.setEnabled(false);
|
|
||||||
preference.setSummary(getString(R.string.ChatsPreferenceFragment_in_progress));
|
|
||||||
preference.setProgress(event.getCount());
|
|
||||||
} else if (event.getType() == BackupEvent.Type.FINISHED) {
|
|
||||||
preference.setEnabled(true);
|
|
||||||
preference.setProgressVisible(false);
|
|
||||||
setBackupSummary();
|
|
||||||
|
|
||||||
if (event.getException() != null) {
|
|
||||||
Toast.makeText(
|
|
||||||
getActivity(),
|
|
||||||
getString(R.string.preferences_chats__backup_export_error),
|
|
||||||
Toast.LENGTH_LONG)
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setBackupSummary() {
|
|
||||||
findPreference(TextSecurePreferences.BACKUP_NOW)
|
|
||||||
.setSummary(String.format(getString(R.string.ChatsPreferenceFragment_last_backup_s),
|
|
||||||
BackupUtil.getLastBackupTimeString(getContext(), Locale.getDefault())));
|
|
||||||
}
|
|
||||||
|
|
||||||
private CharSequence getSummaryForMediaPreference(Set<String> allowedNetworks) {
|
|
||||||
String[] keys = getResources().getStringArray(R.array.pref_media_download_entries);
|
|
||||||
String[] values = getResources().getStringArray(R.array.pref_media_download_values);
|
|
||||||
List<String> outValues = new ArrayList<>(allowedNetworks.size());
|
|
||||||
|
|
||||||
for (int i=0; i < keys.length; i++) {
|
|
||||||
if (allowedNetworks.contains(keys[i])) outValues.add(values[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return outValues.isEmpty() ? getResources().getString(R.string.preferences__none)
|
|
||||||
: TextUtils.join(", ", outValues);
|
|
||||||
}
|
|
||||||
|
|
||||||
private class BackupClickListener implements Preference.OnPreferenceClickListener {
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
if (!((SwitchPreferenceCompat) preference).isChecked()) {
|
|
||||||
BackupDialog.showEnableBackupDialog(getActivity(), (SwitchPreferenceCompat)preference, backupDirSelector);
|
|
||||||
} else {
|
|
||||||
BackupDialog.showDisableBackupDialog(getActivity(), (SwitchPreferenceCompat)preference);
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class BackupCreateListener implements Preference.OnPreferenceClickListener {
|
|
||||||
@SuppressLint("StaticFieldLeak")
|
|
||||||
@Override
|
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
|
||||||
Log.i(TAG, "Queuing backup...");
|
|
||||||
ApplicationContext.getInstance(getContext())
|
|
||||||
.getJobManager()
|
|
||||||
.add(new LocalBackupJob());
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class TrimNowClickListener implements Preference.OnPreferenceClickListener {
|
private class TrimNowClickListener implements Preference.OnPreferenceClickListener {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
@ -179,19 +73,10 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MediaDownloadChangeListener implements Preference.OnPreferenceChangeListener {
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override public boolean onPreferenceChange(Preference preference, Object newValue) {
|
|
||||||
Log.i(TAG, "onPreferenceChange");
|
|
||||||
preference.setSummary(getSummaryForMediaPreference((Set<String>)newValue));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class TrimLengthValidationListener implements Preference.OnPreferenceChangeListener {
|
private class TrimLengthValidationListener implements Preference.OnPreferenceChangeListener {
|
||||||
|
|
||||||
public TrimLengthValidationListener() {
|
public TrimLengthValidationListener() {
|
||||||
EditTextPreference preference = (EditTextPreference)findPreference(TextSecurePreferences.THREAD_TRIM_LENGTH);
|
EditTextPreference preference = findPreference(TextSecurePreferences.THREAD_TRIM_LENGTH);
|
||||||
onPreferenceChange(preference, preference.getText());
|
onPreferenceChange(preference, preference.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +103,4 @@ public class ChatsPreferenceFragment extends ListSummaryPreferenceFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CharSequence getSummary(Context context) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user