导航菜单

页面标题

页面副标题

Plus 12 v10.13.1.1 - ChatsWidgetProvider.java 源代码

正在查看: Plus 12 v10.13.1.1 应用的 ChatsWidgetProvider.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package org.telegram.messenger;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.widget.RemoteViews;
import java.util.ArrayList;
import org.telegram.ui.LaunchActivity;

public class ChatsWidgetProvider extends AppWidgetProvider {
    private static int getCellsForSize(int size) {
        int i = 2;
        while (i * 72 < size) {
            i++;
        }
        return i - 1;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        super.onReceive(context, intent);
    }

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        for (int i : appWidgetIds) {
            updateWidget(context, appWidgetManager, i);
        }
    }

    @Override
    public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
        updateWidget(context, appWidgetManager, appWidgetId);
        super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
    }

    @Override
    public void onDeleted(Context context, int[] appWidgetIds) {
        super.onDeleted(context, appWidgetIds);
        ApplicationLoader.postInitApplication();
        SharedPreferences sharedPreferences = context.getSharedPreferences("shortcut_widget", 0);
        SharedPreferences.Editor edit = sharedPreferences.edit();
        for (int i = 0; i < appWidgetIds.length; i++) {
            int i2 = sharedPreferences.getInt("account" + appWidgetIds[i], -1);
            if (i2 >= 0) {
                AccountInstance.getInstance(i2).getMessagesStorage().clearWidgetDialogs(appWidgetIds[i]);
            }
            edit.remove("account" + appWidgetIds[i]);
            edit.remove("type" + appWidgetIds[i]);
            edit.remove("deleted" + appWidgetIds[i]);
        }
        edit.commit();
    }

    public static void updateWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) {
        int i;
        ApplicationLoader.postInitApplication();
        int cellsForSize = getCellsForSize(appWidgetManager.getAppWidgetOptions(appWidgetId).getInt("appWidgetMaxHeight"));
        Intent intent = new Intent(context, (Class<?>) ChatsWidgetService.class);
        intent.putExtra("appWidgetId", appWidgetId);
        intent.setData(Uri.parse(intent.toUri(1)));
        SharedPreferences sharedPreferences = context.getSharedPreferences("shortcut_widget", 0);
        if (!sharedPreferences.getBoolean("deleted" + appWidgetId, false)) {
            int i2 = sharedPreferences.getInt("account" + appWidgetId, -1);
            if (i2 == -1) {
                SharedPreferences.Editor edit = sharedPreferences.edit();
                edit.putInt("account" + appWidgetId, UserConfig.selectedAccount);
                edit.putInt("type" + appWidgetId, 0).commit();
            }
            ArrayList<Long> arrayList = new ArrayList<>();
            if (i2 >= 0) {
                AccountInstance.getInstance(i2).getMessagesStorage().getWidgetDialogIds(appWidgetId, 0, arrayList, null, null, false);
            }
            if (cellsForSize == 1 || arrayList.size() <= 1) {
                i = R.layout.shortcut_widget_layout_1;
            } else if (cellsForSize == 2 || arrayList.size() <= 2) {
                i = R.layout.shortcut_widget_layout_2;
            } else if (cellsForSize == 3 || arrayList.size() <= 3) {
                i = R.layout.shortcut_widget_layout_3;
            } else {
                i = R.layout.shortcut_widget_layout_4;
            }
        } else {
            i = R.layout.shortcut_widget_layout_1;
        }
        RemoteViews remoteViews = new RemoteViews(context.getPackageName(), i);
        int i3 = R.id.list_view;
        remoteViews.setRemoteAdapter(appWidgetId, i3, intent);
        remoteViews.setEmptyView(i3, R.id.empty_view);
        Intent intent2 = new Intent(ApplicationLoader.applicationContext, (Class<?>) LaunchActivity.class);
        intent2.setAction("com.tmessages.openchat" + Math.random() + Integer.MAX_VALUE);
        intent2.addFlags(67108864);
        intent2.addCategory("android.intent.category.LAUNCHER");
        remoteViews.setPendingIntentTemplate(i3, PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent2, 167772160));
        appWidgetManager.updateAppWidget(appWidgetId, remoteViews);
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, i3);
    }
}