Files
packages_apps_Settings/src/com/android/settings/notification/app/AllConversationsPreferenceController.java
Julia Reynolds 05f20f44f2 Improve entrance animations on convo page
By moving loading in each controller to the same thread.
There will still be shifting as the conversation prefs are added, but it
won't be the over thte top shift up and shift down motion that existed
prior to this cl.

Test: manual
Fixes: 188734400
Change-Id: I202981b603b8f9308b2b352a0939182910869cd6
2021-05-24 09:02:24 -04:00

78 lines
2.3 KiB
Java

/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings.notification.app;
import android.content.Context;
import android.os.AsyncTask;
import android.service.notification.ConversationChannelWrapper;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import com.android.settings.R;
import com.android.settings.notification.NotificationBackend;
import java.util.Collections;
import java.util.List;
public class AllConversationsPreferenceController extends ConversationListPreferenceController {
private static final String KEY = "other_conversations";
private List<ConversationChannelWrapper> mConversations;
public AllConversationsPreferenceController(Context context,
NotificationBackend backend) {
super(context, backend);
}
@Override
public String getPreferenceKey() {
return KEY;
}
@Override
public boolean isAvailable() {
return true;
}
@Override
Preference getSummaryPreference() {
Preference pref = new Preference(mContext);
pref.setOrder(1);
pref.setSummary(R.string.other_conversations_summary);
pref.setSelectable(false);
return pref;
}
@Override
boolean matchesFilter(ConversationChannelWrapper conversation) {
return !conversation.getNotificationChannel().isImportantConversation();
}
@Override
public void updateState(Preference preference) {
PreferenceCategory pref = (PreferenceCategory) preference;
// Load conversations
mConversations = mBackend.getConversations(false).getList();
Collections.sort(mConversations, mConversationComparator);
populateList(mConversations, pref);
}
}