kopia lustrzana https://github.com/ryukoposting/Signal-Android
Don't keep around shortcuts for archived chats.
rodzic
a44a105cbc
commit
a87aa0fbe2
|
@ -36,6 +36,7 @@ import com.google.android.material.snackbar.Snackbar;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.components.registration.PulsingFloatingActionButton;
|
import org.thoughtcrime.securesms.components.registration.PulsingFloatingActionButton;
|
||||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||||
|
import org.thoughtcrime.securesms.util.ConversationUtil;
|
||||||
import org.thoughtcrime.securesms.util.task.SnackbarAsyncTask;
|
import org.thoughtcrime.securesms.util.task.SnackbarAsyncTask;
|
||||||
import org.thoughtcrime.securesms.util.views.Stub;
|
import org.thoughtcrime.securesms.util.views.Stub;
|
||||||
|
|
||||||
|
@ -138,11 +139,13 @@ public class ConversationListArchiveFragment extends ConversationListFragment im
|
||||||
@Override
|
@Override
|
||||||
protected void executeAction(@Nullable Long parameter) {
|
protected void executeAction(@Nullable Long parameter) {
|
||||||
SignalDatabase.threads().unarchiveConversation(threadId);
|
SignalDatabase.threads().unarchiveConversation(threadId);
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void reverseAction(@Nullable Long parameter) {
|
protected void reverseAction(@Nullable Long parameter) {
|
||||||
SignalDatabase.threads().archiveConversation(threadId);
|
SignalDatabase.threads().archiveConversation(threadId);
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
}
|
}
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, threadId);
|
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, threadId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,6 +140,7 @@ import org.thoughtcrime.securesms.storage.StorageSyncHelper;
|
||||||
import org.thoughtcrime.securesms.util.AppForegroundObserver;
|
import org.thoughtcrime.securesms.util.AppForegroundObserver;
|
||||||
import org.thoughtcrime.securesms.util.AppStartup;
|
import org.thoughtcrime.securesms.util.AppStartup;
|
||||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||||
|
import org.thoughtcrime.securesms.util.ConversationUtil;
|
||||||
import org.thoughtcrime.securesms.util.PlayStoreUtil;
|
import org.thoughtcrime.securesms.util.PlayStoreUtil;
|
||||||
import org.thoughtcrime.securesms.util.ServiceUtil;
|
import org.thoughtcrime.securesms.util.ServiceUtil;
|
||||||
import org.thoughtcrime.securesms.util.SignalLocalMetrics;
|
import org.thoughtcrime.securesms.util.SignalLocalMetrics;
|
||||||
|
@ -953,6 +954,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
||||||
ThreadDatabase db = SignalDatabase.threads();
|
ThreadDatabase db = SignalDatabase.threads();
|
||||||
|
|
||||||
db.pinConversations(toPin);
|
db.pinConversations(toPin);
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}, unused -> {
|
}, unused -> {
|
||||||
|
@ -965,6 +967,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
||||||
ThreadDatabase db = SignalDatabase.threads();
|
ThreadDatabase db = SignalDatabase.threads();
|
||||||
|
|
||||||
db.unpinConversations(ids);
|
db.unpinConversations(ids);
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}, unused -> {
|
}, unused -> {
|
||||||
|
@ -1299,6 +1302,8 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
||||||
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
||||||
MarkReadReceiver.process(context, messageIds);
|
MarkReadReceiver.process(context, messageIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1312,6 +1317,8 @@ public class ConversationListFragment extends MainFragment implements ActionMode
|
||||||
threadDatabase.incrementUnread(threadId, unreadCount);
|
threadDatabase.incrementUnread(threadId, unreadCount);
|
||||||
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConversationUtil.refreshRecipientShortcuts();
|
||||||
}
|
}
|
||||||
}.executeOnExecutor(SignalExecutors.BOUNDED, threadId);
|
}.executeOnExecutor(SignalExecutors.BOUNDED, threadId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,6 +79,8 @@ public class ConversationShortcutUpdateJob extends BaseJob {
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new RetryLaterException();
|
throw new RetryLaterException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConversationUtil.removeLongLivedShortcuts(context, threadDatabase.getArchivedRecipients());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -30,6 +30,7 @@ import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ConversationUtil encapsulates support for Android 11+'s new Conversations system
|
* ConversationUtil encapsulates support for Android 11+'s new Conversations system
|
||||||
|
@ -140,6 +141,14 @@ public final class ConversationUtil {
|
||||||
return Math.min(ShortcutManagerCompat.getMaxShortcutCountPerActivity(context), 150);
|
return Math.min(ShortcutManagerCompat.getMaxShortcutCountPerActivity(context), 150);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the long-lived shortcuts for the given set of recipients.
|
||||||
|
*/
|
||||||
|
@WorkerThread
|
||||||
|
public static void removeLongLivedShortcuts(@NonNull Context context, @NonNull Collection<RecipientId> recipients) {
|
||||||
|
ShortcutManagerCompat.removeLongLivedShortcuts(context, recipients.stream().map(ConversationUtil::getShortcutId).collect(Collectors.toList()));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the shortcuts to match the provided recipient list. This call may fail due to getting
|
* Sets the shortcuts to match the provided recipient list. This call may fail due to getting
|
||||||
* rate-limited.
|
* rate-limited.
|
||||||
|
|
Ładowanie…
Reference in New Issue