正在查看: Plus 12 v10.13.1.1 应用的 BaseLocationAdapter.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Plus 12 v10.13.1.1 应用的 BaseLocationAdapter.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package org.telegram.ui.Adapters;
import android.location.Location;
import android.text.TextUtils;
import java.util.ArrayList;
import java.util.Locale;
import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.DialogObject;
import org.telegram.messenger.DispatchQueue;
import org.telegram.messenger.LocaleController;
import org.telegram.messenger.MessagesController;
import org.telegram.messenger.MessagesStorage;
import org.telegram.messenger.UserConfig;
import org.telegram.messenger.Utilities;
import org.telegram.tgnet.ConnectionsManager;
import org.telegram.tgnet.RequestDelegate;
import org.telegram.tgnet.TLObject;
import org.telegram.tgnet.TLRPC;
import org.telegram.ui.Components.RecyclerListView;
public abstract class BaseLocationAdapter extends RecyclerListView.SelectionAdapter {
public final boolean biz;
public int currentRequestNum;
public BaseLocationAdapterDelegate delegate;
public long dialogId;
public String lastFoundQuery;
public Location lastSearchLocation;
public String lastSearchQuery;
public boolean searchInProgress;
public Runnable searchRunnable;
public boolean searching;
public boolean searchingLocations;
public boolean searchingUser;
public final boolean stories;
public boolean searched = false;
public ArrayList<TLRPC.TL_messageMediaVenue> locations = new ArrayList<>();
public ArrayList<TLRPC.TL_messageMediaVenue> places = new ArrayList<>();
public int currentAccount = UserConfig.selectedAccount;
public interface BaseLocationAdapterDelegate {
void didLoadSearchResult(ArrayList<TLRPC.TL_messageMediaVenue> places);
}
public BaseLocationAdapter(boolean stories, boolean biz) {
this.stories = stories;
this.biz = biz;
}
public void destroy() {
if (this.currentRequestNum != 0) {
ConnectionsManager.getInstance(this.currentAccount).cancelRequest(this.currentRequestNum, true);
this.currentRequestNum = 0;
}
}
public void setDelegate(long did, BaseLocationAdapterDelegate delegate) {
this.dialogId = did;
this.delegate = delegate;
}
public void searchDelayed(final String query, final Location coordinate) {
if (query == null || query.length() == 0) {
this.places.clear();
this.locations.clear();
this.searchInProgress = false;
notifyDataSetChanged();
return;
}
if (this.searchRunnable != null) {
Utilities.searchQueue.cancelRunnable(this.searchRunnable);
this.searchRunnable = null;
}
this.searchInProgress = true;
DispatchQueue dispatchQueue = Utilities.searchQueue;
Runnable runnable = new Runnable() {
@Override
public final void run() {
BaseLocationAdapter.this.lambda$searchDelayed$1(query, coordinate);
}
};
this.searchRunnable = runnable;
dispatchQueue.postRunnable(runnable, 400L);
}
public void lambda$searchDelayed$1(final String str, final Location location) {
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public final void run() {
BaseLocationAdapter.this.lambda$searchDelayed$0(str, location);
}
});
}
public void lambda$searchDelayed$0(String str, Location location) {
this.searchRunnable = null;
this.lastSearchLocation = null;
searchPlacesWithQuery(str, location, true);
}
public final void searchBotUser() {
String str;
if (this.searchingUser) {
return;
}
this.searchingUser = true;
TLRPC.TL_contacts_resolveUsername tL_contacts_resolveUsername = new TLRPC.TL_contacts_resolveUsername();
if (this.stories) {
str = MessagesController.getInstance(this.currentAccount).storyVenueSearchBot;
} else {
str = MessagesController.getInstance(this.currentAccount).venueSearchBot;
}
tL_contacts_resolveUsername.username = str;
ConnectionsManager.getInstance(this.currentAccount).sendRequest(tL_contacts_resolveUsername, new RequestDelegate() {
public final void run(TLObject tLObject, TLRPC.TL_error tL_error) {
BaseLocationAdapter.this.lambda$searchBotUser$3(tLObject, tL_error);
}
});
}
public void lambda$searchBotUser$3(final TLObject tLObject, TLRPC.TL_error tL_error) {
if (tLObject != null) {
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public final void run() {
BaseLocationAdapter.this.lambda$searchBotUser$2(tLObject);
}
});
}
}
public void lambda$searchBotUser$2(TLObject tLObject) {
TLRPC.TL_contacts_resolvedPeer tL_contacts_resolvedPeer = (TLRPC.TL_contacts_resolvedPeer) tLObject;
MessagesController.getInstance(this.currentAccount).putUsers(tL_contacts_resolvedPeer.users, false);
MessagesController.getInstance(this.currentAccount).putChats(tL_contacts_resolvedPeer.chats, false);
MessagesStorage.getInstance(this.currentAccount).putUsersAndChats(tL_contacts_resolvedPeer.users, tL_contacts_resolvedPeer.chats, true, true);
Location location = this.lastSearchLocation;
this.lastSearchLocation = null;
searchPlacesWithQuery(this.lastSearchQuery, location, false);
}
public boolean isSearching() {
return this.searchInProgress;
}
public String getLastSearchString() {
return this.lastFoundQuery;
}
public void searchPlacesWithQuery(final String query, final Location coordinate, boolean searchUser) {
searchPlacesWithQuery(query, coordinate, searchUser, false);
}
public void searchPlacesWithQuery(final String query, final Location coordinate, boolean searchUser, boolean animated) {
String str;
if (coordinate != null || this.stories) {
Location location = this.lastSearchLocation;
if (location == null || coordinate == null || coordinate.distanceTo(location) >= 200.0f) {
this.lastSearchLocation = coordinate == null ? null : new Location(coordinate);
this.lastSearchQuery = query;
if (this.searching) {
this.searching = false;
if (this.currentRequestNum != 0) {
ConnectionsManager.getInstance(this.currentAccount).cancelRequest(this.currentRequestNum, true);
this.currentRequestNum = 0;
}
}
getItemCount();
this.searching = true;
this.searched = true;
MessagesController messagesController = MessagesController.getInstance(this.currentAccount);
if (this.stories) {
str = MessagesController.getInstance(this.currentAccount).storyVenueSearchBot;
} else {
str = MessagesController.getInstance(this.currentAccount).venueSearchBot;
}
TLRPC.User userOrChat = messagesController.getUserOrChat(str);
if (!(userOrChat instanceof TLRPC.User)) {
if (searchUser) {
searchBotUser();
return;
}
return;
}
TLRPC.User user = userOrChat;
TLRPC.TL_messages_getInlineBotResults tL_messages_getInlineBotResults = new TLRPC.TL_messages_getInlineBotResults();
tL_messages_getInlineBotResults.query = query == null ? "" : query;
tL_messages_getInlineBotResults.bot = MessagesController.getInstance(this.currentAccount).getInputUser(user);
tL_messages_getInlineBotResults.offset = "";
if (coordinate != null) {
TLRPC.TL_inputGeoPoint tL_inputGeoPoint = new TLRPC.TL_inputGeoPoint();
tL_messages_getInlineBotResults.geo_point = tL_inputGeoPoint;
((TLRPC.InputGeoPoint) tL_inputGeoPoint).lat = AndroidUtilities.fixLocationCoord(coordinate.getLatitude());
tL_messages_getInlineBotResults.geo_point._long = AndroidUtilities.fixLocationCoord(coordinate.getLongitude());
tL_messages_getInlineBotResults.flags |= 1;
}
if (DialogObject.isEncryptedDialog(this.dialogId)) {
tL_messages_getInlineBotResults.peer = new TLRPC.TL_inputPeerEmpty();
} else {
tL_messages_getInlineBotResults.peer = MessagesController.getInstance(this.currentAccount).getInputPeer(this.dialogId);
}
if (!TextUtils.isEmpty(query) && (this.stories || this.biz)) {
this.searchingLocations = true;
final Locale currentLocale = LocaleController.getInstance().getCurrentLocale();
Utilities.globalQueue.postRunnable(new Runnable() {
@Override
public final void run() {
BaseLocationAdapter.this.lambda$searchPlacesWithQuery$5(currentLocale, query, coordinate, query);
}
});
} else {
this.searchingLocations = false;
}
if (coordinate == null) {
return;
}
this.currentRequestNum = ConnectionsManager.getInstance(this.currentAccount).sendRequest(tL_messages_getInlineBotResults, new RequestDelegate() {
public final void run(TLObject tLObject, TLRPC.TL_error tL_error) {
BaseLocationAdapter.this.lambda$searchPlacesWithQuery$7(query, tLObject, tL_error);
}
});
notifyDataSetChanged();
}
}
}
public void lambda$searchPlacesWithQuery$5(java.util.Locale r26, java.lang.String r27, final android.location.Location r28, final java.lang.String r29) {
throw new UnsupportedOperationException("Method not decompiled: org.telegram.ui.Adapters.BaseLocationAdapter.lambda$searchPlacesWithQuery$5(java.util.Locale, java.lang.String, android.location.Location, java.lang.String):void");
}
public void lambda$searchPlacesWithQuery$4(Location location, String str, ArrayList arrayList) {
this.searchingLocations = false;
if (location == null) {
this.currentRequestNum = 0;
this.searching = false;
this.places.clear();
this.searchInProgress = false;
this.lastFoundQuery = str;
}
this.locations.clear();
this.locations.addAll(arrayList);
notifyDataSetChanged();
}
public void lambda$searchPlacesWithQuery$7(final String str, final TLObject tLObject, final TLRPC.TL_error tL_error) {
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public final void run() {
BaseLocationAdapter.this.lambda$searchPlacesWithQuery$6(tL_error, str, tLObject);
}
});
}
public void lambda$searchPlacesWithQuery$6(TLRPC.TL_error tL_error, String str, TLObject tLObject) {
if (tL_error == null) {
this.currentRequestNum = 0;
this.searching = false;
this.places.clear();
this.searchInProgress = false;
this.lastFoundQuery = str;
TLRPC.messages_BotResults messages_botresults = (TLRPC.messages_BotResults) tLObject;
int size = messages_botresults.results.size();
for (int i = 0; i < size; i++) {
TLRPC.BotInlineResult botInlineResult = (TLRPC.BotInlineResult) messages_botresults.results.get(i);
if ("venue".equals(botInlineResult.type)) {
TLRPC.TL_botInlineMessageMediaVenue tL_botInlineMessageMediaVenue = botInlineResult.send_message;
if (tL_botInlineMessageMediaVenue instanceof TLRPC.TL_botInlineMessageMediaVenue) {
TLRPC.TL_botInlineMessageMediaVenue tL_botInlineMessageMediaVenue2 = tL_botInlineMessageMediaVenue;
TLRPC.TL_messageMediaVenue tL_messageMediaVenue = new TLRPC.TL_messageMediaVenue();
((TLRPC.MessageMedia) tL_messageMediaVenue).geo = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).geo;
((TLRPC.MessageMedia) tL_messageMediaVenue).address = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).address;
((TLRPC.MessageMedia) tL_messageMediaVenue).title = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).title;
tL_messageMediaVenue.icon = "https://ss3.4sqi.net/img/categories_v2/" + ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).venue_type + "_64.png";
((TLRPC.MessageMedia) tL_messageMediaVenue).venue_type = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).venue_type;
((TLRPC.MessageMedia) tL_messageMediaVenue).venue_id = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).venue_id;
((TLRPC.MessageMedia) tL_messageMediaVenue).provider = ((TLRPC.BotInlineMessage) tL_botInlineMessageMediaVenue2).provider;
tL_messageMediaVenue.query_id = messages_botresults.query_id;
tL_messageMediaVenue.result_id = botInlineResult.id;
this.places.add(tL_messageMediaVenue);
}
}
}
}
BaseLocationAdapterDelegate baseLocationAdapterDelegate = this.delegate;
if (baseLocationAdapterDelegate != null) {
baseLocationAdapterDelegate.didLoadSearchResult(this.places);
}
notifyDataSetChanged();
}
}