mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-27 12:05:22 +00:00
Make directory refresh async task more careful.
// FREEBIE
This commit is contained in:
parent
0e7fcc6893
commit
32cb489d1d
@ -16,6 +16,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.thoughtcrime.securesms;
|
package org.thoughtcrime.securesms;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
@ -37,6 +38,7 @@ import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
|||||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base activity container for selecting a list of contacts.
|
* Base activity container for selecting a list of contacts.
|
||||||
@ -158,24 +160,7 @@ public abstract class ContactSelectionActivity extends PassphraseRequiredActionB
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh() {
|
public void onRefresh() {
|
||||||
new AsyncTask<Void, Void, Void>() {
|
new RefreshDirectoryTask(this).execute(getApplicationContext());
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... params) {
|
|
||||||
try {
|
|
||||||
DirectoryHelper.refreshDirectory(ContactSelectionActivity.this);
|
|
||||||
} catch (IOException e) {
|
|
||||||
Log.w(TAG, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void result) {
|
|
||||||
searchText.setText("");
|
|
||||||
contactsFragment.resetQueryFilter();
|
|
||||||
}
|
|
||||||
}.execute();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -195,4 +180,35 @@ public abstract class ContactSelectionActivity extends PassphraseRequiredActionB
|
|||||||
return editText.getText().length() <= 0;
|
return editText.getText().length() <= 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class RefreshDirectoryTask extends AsyncTask<Context, Void, Void> {
|
||||||
|
|
||||||
|
private final WeakReference<ContactSelectionActivity> activity;
|
||||||
|
|
||||||
|
private RefreshDirectoryTask(ContactSelectionActivity activity) {
|
||||||
|
this.activity = new WeakReference<>(activity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Void doInBackground(Context... params) {
|
||||||
|
try {
|
||||||
|
DirectoryHelper.refreshDirectory(params[0]);
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.w(TAG, e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPostExecute(Void result) {
|
||||||
|
ContactSelectionActivity activity = this.activity.get();
|
||||||
|
|
||||||
|
if (activity != null && !activity.isFinishing()) {
|
||||||
|
activity.searchText.setText("");
|
||||||
|
activity.contactsFragment.resetQueryFilter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,37 +30,6 @@ import java.util.Set;
|
|||||||
public class DirectoryHelper {
|
public class DirectoryHelper {
|
||||||
private static final String TAG = DirectoryHelper.class.getSimpleName();
|
private static final String TAG = DirectoryHelper.class.getSimpleName();
|
||||||
|
|
||||||
public static void refreshDirectoryWithProgressDialog(final Context context, final DirectoryUpdateFinishedListener listener) {
|
|
||||||
if (!TextSecurePreferences.isPushRegistered(context)) {
|
|
||||||
Toast.makeText(context.getApplicationContext(),
|
|
||||||
context.getString(R.string.SingleContactSelectionActivity_you_are_not_registered_with_the_push_service),
|
|
||||||
Toast.LENGTH_LONG).show();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
new ProgressDialogAsyncTask<Void,Void,Void>(context,
|
|
||||||
R.string.SingleContactSelectionActivity_updating_directory,
|
|
||||||
R.string.SingleContactSelectionActivity_updating_push_directory)
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
protected Void doInBackground(Void... voids) {
|
|
||||||
try {
|
|
||||||
DirectoryHelper.refreshDirectory(context.getApplicationContext());
|
|
||||||
} catch (IOException e) {
|
|
||||||
Log.w(TAG, e);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(Void aVoid) {
|
|
||||||
super.onPostExecute(aVoid);
|
|
||||||
if (listener != null) listener.onUpdateFinished();
|
|
||||||
}
|
|
||||||
}.execute();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void refreshDirectory(final Context context) throws IOException {
|
public static void refreshDirectory(final Context context) throws IOException {
|
||||||
refreshDirectory(context, TextSecureCommunicationFactory.createManager(context));
|
refreshDirectory(context, TextSecureCommunicationFactory.createManager(context));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user