@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { IBinder token = (IBinder) args[0]; ActivityClientRecord r = VActivityManager.get().getActivityRecord(token); boolean taskRemoved = VActivityManager.get().onActivityDestroy(token); if (!taskRemoved && r != null && r.activity != null && r.info.getThemeResource() != 0) { try { TypedValue out = new TypedValue(); Resources.Theme theme = r.activity.getResources().newTheme(); theme.applyStyle(r.info.getThemeResource(), true); if (theme.resolveAttribute(android.R.attr.windowAnimationStyle, out, true)) { TypedArray array = theme.obtainStyledAttributes(out.data, new int[]{ android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation }); r.activity.overridePendingTransition(array.getResourceId(0, 0), array.getResourceId(1, 0)); array.recycle(); } } catch (Throwable e) { e.printStackTrace(); } } return super.afterCall(who, method, args, result); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { IBinder token = (IBinder) args[0]; ActivityClientRecord r = VActivityManager.get().getActivityRecord(token); boolean taskRemoved = VActivityManager.get().onActivityDestroy(token); if (!taskRemoved && r != null && r.activity != null && r.info.getThemeResource() != 0) { try { TypedValue out = new TypedValue(); Resources.Theme theme = r.activity.getResources().newTheme(); theme.applyStyle(r.info.getThemeResource(), true); if (theme.resolveAttribute(android.R.attr.windowAnimationStyle, out, true)) { TypedArray array = theme.obtainStyledAttributes(out.data, new int[]{ android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation }); r.activity.overridePendingTransition(array.getResourceId(0, 0), array.getResourceId(1, 0)); array.recycle(); } } catch (Throwable e) { e.printStackTrace(); } } return super.afterCall(who, method, args, result); }
@Override public Object afterCall(Object who, Method method, Object[] args, Object result) throws Throwable { IBinder token = (IBinder) args[0]; ActivityClientRecord r = VActivityManager.get().getActivityRecord(token); boolean taskRemoved = VActivityManager.get().onActivityDestroy(token); if (!taskRemoved && r != null && r.activity != null && r.info.getThemeResource() != 0) { try { TypedValue out = new TypedValue(); Resources.Theme theme = r.activity.getResources().newTheme(); theme.applyStyle(r.info.getThemeResource(), true); if (theme.resolveAttribute(android.R.attr.windowAnimationStyle, out, true)) { TypedArray array = theme.obtainStyledAttributes(out.data, new int[]{ android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation }); r.activity.overridePendingTransition(array.getResourceId(0, 0), array.getResourceId(1, 0)); array.recycle(); } } catch (Throwable e) { e.printStackTrace(); } } return super.afterCall(who, method, args, result); }