mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-24 02:39:55 +01:00
Add trim conversations by time option.
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package org.thoughtcrime.securesms.util;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.annimon.stream.Collector;
|
||||
import com.annimon.stream.function.BiConsumer;
|
||||
import com.annimon.stream.function.Function;
|
||||
import com.annimon.stream.function.Supplier;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MappingModelList extends ArrayList<MappingModel<?>> {
|
||||
|
||||
public static @NonNull Collector<MappingModel<?>, MappingModelList, MappingModelList> toMappingModelList() {
|
||||
return new Collector<MappingModel<?>, MappingModelList, MappingModelList>() {
|
||||
@Override
|
||||
public @NonNull Supplier<MappingModelList> supplier() {
|
||||
return MappingModelList::new;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull BiConsumer<MappingModelList, MappingModel<?>> accumulator() {
|
||||
return MappingModelList::add;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull Function<MappingModelList, MappingModelList> finisher() {
|
||||
return mappingModels -> mappingModels;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -51,8 +51,6 @@ public class TextSecurePreferences {
|
||||
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";
|
||||
@@ -74,7 +72,6 @@ public class TextSecurePreferences {
|
||||
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 LOCAL_UUID_PREF = "pref_local_uuid";
|
||||
private static final String LOCAL_USERNAME_PREF = "pref_local_username";
|
||||
@@ -1014,14 +1011,6 @@ public class TextSecurePreferences {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
package org.thoughtcrime.securesms.util;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||
|
||||
public class Trimmer {
|
||||
|
||||
public static void trimAllThreads(Context context, int threadLengthLimit) {
|
||||
new TrimmingProgressTask(context).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, threadLengthLimit);
|
||||
}
|
||||
|
||||
private static class TrimmingProgressTask extends AsyncTask<Integer, Integer, Void> implements ThreadDatabase.ProgressListener {
|
||||
private ProgressDialog progressDialog;
|
||||
private Context context;
|
||||
|
||||
public TrimmingProgressTask(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
progressDialog = new ProgressDialog(context);
|
||||
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
|
||||
progressDialog.setCancelable(false);
|
||||
progressDialog.setIndeterminate(false);
|
||||
progressDialog.setTitle(R.string.trimmer__deleting);
|
||||
progressDialog.setMessage(context.getString(R.string.trimmer__deleting_old_messages));
|
||||
progressDialog.setMax(100);
|
||||
progressDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Void doInBackground(Integer... params) {
|
||||
DatabaseFactory.getThreadDatabase(context).trimAllThreads(params[0], this);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onProgressUpdate(Integer... progress) {
|
||||
double count = progress[1];
|
||||
double index = progress[0];
|
||||
|
||||
progressDialog.setProgress((int)Math.round((index / count) * 100.0));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void result) {
|
||||
progressDialog.dismiss();
|
||||
Toast.makeText(context,
|
||||
R.string.trimmer__old_messages_successfully_deleted,
|
||||
Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProgress(int complete, int total) {
|
||||
this.publishProgress(complete, total);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user