diff --git a/MessengerProj/src/main/AndroidManifest.xml b/MessengerProj/src/main/AndroidManifest.xml index 15450bef9..bba8ecb3d 100644 --- a/MessengerProj/src/main/AndroidManifest.xml +++ b/MessengerProj/src/main/AndroidManifest.xml @@ -114,7 +114,7 @@ --> - + + + android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE"> - + --> diff --git a/MessengerProj/src/main/java/com/b44t/messenger/TgChooserTargetService.java b/MessengerProj/src/main/java/com/b44t/messenger/TgChooserTargetService.java deleted file mode 100644 index f7c751adc..000000000 --- a/MessengerProj/src/main/java/com/b44t/messenger/TgChooserTargetService.java +++ /dev/null @@ -1,187 +0,0 @@ -/******************************************************************************* - * - * Messenger Android Frontend - * (C) 2013-2016 Nikolai Kudashov - * (C) 2017 Björn Petersen - * Contact: r10s@b44t.com, http://b44t.com - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more - * details. - * - * You should have received a copy of the GNU General Public License along with - * this program. If not, see http://www.gnu.org/licenses/ . - * - ******************************************************************************/ - - -package com.b44t.messenger; - -// ChooserTargetService, see https://developer.android.com/reference/android/service/chooser/ChooserTargetService.html - - -import android.annotation.TargetApi; -import android.app.Activity; -import android.content.ComponentName; -import android.content.IntentFilter; -import android.content.SharedPreferences; -import android.os.Build; -import android.service.chooser.ChooserTarget; -import android.service.chooser.ChooserTargetService; - -import com.b44t.ui.LaunchActivity; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.Semaphore; - -@TargetApi(Build.VERSION_CODES.M) -public class TgChooserTargetService extends ChooserTargetService { - - @Override - public List onGetChooserTargets(ComponentName targetActivityName, IntentFilter matchedFilter) { - final List targets = new ArrayList<>(); - if (!UserConfig.isClientActivated()) { - return targets; - } - SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("mainconfig", Activity.MODE_PRIVATE); - if (!preferences.getBoolean("direct_share", true)) { - return targets; - } - - ImageLoader imageLoader = ImageLoader.getInstance(); - final Semaphore semaphore = new Semaphore(0); - final ComponentName componentName = new ComponentName(getPackageName(), LaunchActivity.class.getCanonicalName()); - /* - MessagesStorage.getInstance().getStorageQueue().postRunnable(new Runnable() { - @Override - public void run() { - ArrayList dialogs = new ArrayList<>(); - ArrayList chats = new ArrayList<>(); - ArrayList users = new ArrayList<>(); - try { - ArrayList usersToLoad = new ArrayList<>(); - usersToLoad.add(UserConfig.getClientUserId()); - ArrayList chatsToLoad = new ArrayList<>(); - SQLiteCursor cursor = MessagesStorage.getInstance().getDatabase().queryFinalized(String.format(Locale.US, "SELECT did FROM dialogs ORDER BY date DESC LIMIT %d,%d", 0, 30)); - while (cursor.next()) { - long id = cursor.longValue(0); - - int lower_id = (int) id; - int high_id = (int) (id >> 32); - if (lower_id != 0) { - if (high_id == 1) { - continue; - } else { - if (lower_id > 0) { - if (!usersToLoad.contains(lower_id)) { - usersToLoad.add(lower_id); - } - } else { - if (!chatsToLoad.contains(-lower_id)) { - chatsToLoad.add(-lower_id); - } - } - } - } else { - continue; - } - dialogs.add(lower_id); - if (dialogs.size() == 8) { - break; - } - } - cursor.dispose(); - if (!chatsToLoad.isEmpty()) { - //MessagesStorage.getInstance().getChatsInternal(TextUtils.join(",", chatsToLoad), chats); - } - if (!usersToLoad.isEmpty()) { - //MessagesStorage.getInstance().getUsersInternal(TextUtils.join(",", usersToLoad), users); - } - } catch (Exception e) { - FileLog.e("messenger", e); - } - for (int a = 0; a < dialogs.size(); a++) { - Bundle extras = new Bundle(); - Icon icon = null; - String name = null; - int id = dialogs.get(a); - if (id > 0) { - for (int b = 0; b < users.size(); b++) { - TLRPC.User user = users.get(b); - if (user.id == id) { - if (!user.bot) { - extras.putLong("dialogId", (long) id); - if (user.photo != null && user.photo.photo_small != null) { - icon = createRoundBitmap(FileLoader.getPathToAttach(user.photo.photo_small, true)); - } - name = ContactsController.formatName(user.first_name, user.last_name); - } - break; - } - } - } else { - for (int b = 0; b < chats.size(); b++) { - TLRPC.Chat chat = chats.get(b); - if (chat.id == -id) { - if (!ChatObject.isNotInChat(chat) && (!ChatObject.isChannel(chat) || chat.megagroup)) { - extras.putLong("dialogId", (long) id); - if (chat.photo != null && chat.photo.photo_small != null) { - icon = createRoundBitmap(FileLoader.getPathToAttach(chat.photo.photo_small, true)); - } - name = chat.title; - } - break; - } - } - } - if (name != null) { - if (icon == null) { - icon = Icon.createWithResource(ApplicationLoader.applicationContext, R.drawable.logo_avatar); - } - targets.add(new ChooserTarget(name, icon, 1.0f, componentName, extras)); - } - } - semaphore.release(); - } - }); - */ - try { - semaphore.acquire(); - } catch (Exception e) { - FileLog.e("messenger", e); - } - return targets; - } - - /* - private Icon createRoundBitmap(File path) { - try { - Bitmap bitmap = BitmapFactory.decodeFile(path.toString()); - if (bitmap != null) { - Bitmap result = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); - result.eraseColor(Color.TRANSPARENT); - Canvas canvas = new Canvas(result); - BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); - if (roundPaint == null) { - roundPaint = new Paint(Paint.ANTI_ALIAS_FLAG); - bitmapRect = new RectF(); - } - roundPaint.setShader(shader); - bitmapRect.set(0, 0, bitmap.getWidth(), bitmap.getHeight()); - canvas.drawRoundRect(bitmapRect, bitmap.getWidth(), bitmap.getHeight(), roundPaint); - return Icon.createWithBitmap(result); - } - } catch (Throwable e) { - FileLog.e("messenger", e); - } - return null; - } - */ -}