package com.lody.virtual.client.fixer; import android.app.Activity; import android.app.ActivityManager; import android.app.WallpaperManager; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import mirror.com.android.internal.R_Hide; /** * @author Lody * */ public final class ActivityFixer { private ActivityFixer() { } public static void fixActivity(Activity activity) { Context baseContext = activity.getBaseContext(); try { TypedArray typedArray = activity.obtainStyledAttributes((R_Hide.styleable.Window.get())); if (typedArray != null) { boolean showWallpaper = typedArray.getBoolean(R_Hide.styleable.Window_windowShowWallpaper.get(), false); if (showWallpaper) { activity.getWindow().setBackgroundDrawable(WallpaperManager.getInstance(activity).getDrawable()); } typedArray.recycle(); } } catch (Throwable e) { e.printStackTrace(); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Intent intent = activity.getIntent(); ApplicationInfo applicationInfo = baseContext.getApplicationInfo(); PackageManager pm = activity.getPackageManager(); if (intent != null && activity.isTaskRoot()) { try { String label = applicationInfo.loadLabel(pm) + ""; Bitmap icon = null; Drawable drawable = applicationInfo.loadIcon(pm); if (drawable instanceof BitmapDrawable) { icon = ((BitmapDrawable) drawable).getBitmap(); } activity.setTaskDescription(new ActivityManager.TaskDescription(label, icon)); } catch (Throwable e) { e.printStackTrace(); } } } } }