mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 08:16:49 +00:00
Reimplement QuickSwitch compat libs (#4084)
* Reimplement makeDefaultActivityOptions * No need to post again * Cleanups * Tweak LawnchairQuickstepCompat * Let compatLibVR depend on compatLibVQ * Let compatLibVS depend on compatLibVR * Cleanup compatLibVT * Let compatLibVU depend on compatLibVT * Add ActivityManagerCompatVS.getRunningTasks back * Fix ActivityManagerCompatVS * Don't return null running tasks * Annotate getTaskSnapshot * Fix style * Retrun list from getRunningTasks * Tweaks * Cleanups * null check * Add ActivityManagerCompatVS.invalidateHomeTaskSnapshot back * Move ThumbnailData * Fixed err * Cleanup * Add RequiresApi * Make RemoteTransitionCompat as an interface * Annotate ActivityOptionsCompat * More interfaces * Replace aidl files with generated sources * Reformat * Revert "Replace aidl files with generated sources" This reverts commitee450e696d. Revert "Reformat" This reverts commit38c8f21ed3. * Use launcherNullable * Fixes more crashes --------- Co-authored-by: MrSluffy <werdna.jac@gmail.com>
This commit is contained in:
@@ -1,7 +1,5 @@
|
||||
package app.lawnchair.compatlib.thirteen;
|
||||
|
||||
import static android.app.ActivityTaskManager.getService;
|
||||
|
||||
import android.app.ActivityTaskManager;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Rect;
|
||||
@@ -11,14 +9,13 @@ import android.view.IRecentsAnimationController;
|
||||
import android.view.IRecentsAnimationRunner;
|
||||
import android.view.RemoteAnimationTarget;
|
||||
import android.window.TaskSnapshot;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import app.lawnchair.compatlib.RecentsAnimationRunnerCompat;
|
||||
import app.lawnchair.compatlib.twelve.ActivityManagerCompatVS;
|
||||
|
||||
@RequiresApi(33)
|
||||
public class ActivityManagerCompatVT extends ActivityManagerCompatVS {
|
||||
|
||||
private static final String TAG = "ActivityManagerCompatVT";
|
||||
private final ActivityTaskManager mAtm = ActivityTaskManager.getInstance();
|
||||
|
||||
@Override
|
||||
public void startRecentsActivity(
|
||||
Intent intent, long eventTime, RecentsAnimationRunnerCompat runnerCompat) {
|
||||
@@ -54,7 +51,7 @@ public class ActivityManagerCompatVT extends ActivityManagerCompatVS {
|
||||
};
|
||||
}
|
||||
try {
|
||||
getService().startRecentsActivity(intent, eventTime, runner);
|
||||
ActivityTaskManager.getService().startRecentsActivity(intent, eventTime, runner);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to cancel recents animation", e);
|
||||
}
|
||||
@@ -64,14 +61,14 @@ public class ActivityManagerCompatVT extends ActivityManagerCompatVS {
|
||||
public TaskSnapshot getTaskSnapshot(
|
||||
int taskId, boolean isLowResolution, boolean takeSnapshotIfNeeded) {
|
||||
try {
|
||||
// android13 qpr1
|
||||
return getService()
|
||||
// Android 13 QPR1
|
||||
return ActivityTaskManager.getService()
|
||||
.getTaskSnapshot(taskId, isLowResolution, true /* takeSnapshotIfNeeded */);
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Failed to getTaskSnapshot", e);
|
||||
return null;
|
||||
} catch (NoSuchMethodError e) {
|
||||
// android13/12
|
||||
// Android 13 or 12
|
||||
return super.getTaskSnapshot(taskId, isLowResolution, takeSnapshotIfNeeded);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,29 +6,44 @@ import android.os.Handler;
|
||||
import android.util.Log;
|
||||
import android.view.RemoteAnimationAdapter;
|
||||
import android.window.RemoteTransition;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import app.lawnchair.compatlib.twelve.ActivityOptionsCompatVS;
|
||||
|
||||
@RequiresApi(33)
|
||||
public class ActivityOptionsCompatVT extends ActivityOptionsCompatVS {
|
||||
|
||||
private static final String TAG = "ActivityOptionsCompatVT";
|
||||
|
||||
@Override
|
||||
public ActivityOptions makeCustomAnimation(
|
||||
Context context,
|
||||
int enterResId,
|
||||
int exitResId,
|
||||
Runnable callback,
|
||||
Handler callbackHandler) {
|
||||
return super.makeCustomAnimation(context, enterResId, exitResId, callback, callbackHandler);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ActivityOptions makeRemoteAnimation(
|
||||
RemoteAnimationAdapter remoteAnimationAdapter,
|
||||
Object remoteTransition,
|
||||
String debugName) {
|
||||
@Nullable RemoteAnimationAdapter remoteAnimationAdapter,
|
||||
@Nullable Object remoteTransition,
|
||||
@Nullable String debugName) {
|
||||
Log.e(TAG, "makeRemoteAnimation: " + debugName);
|
||||
return ActivityOptions.makeRemoteAnimation(
|
||||
remoteAnimationAdapter, (RemoteTransition) remoteTransition);
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public ActivityOptions makeCustomAnimation(
|
||||
@NonNull Context context,
|
||||
int enterResId,
|
||||
int exitResId,
|
||||
@NonNull Handler callbackHandler,
|
||||
Runnable callback,
|
||||
Runnable finishedListener) {
|
||||
return ActivityOptions.makeCustomTaskAnimation(
|
||||
context,
|
||||
enterResId,
|
||||
exitResId,
|
||||
callbackHandler,
|
||||
elapsedRealTime -> {
|
||||
if (callback != null) {
|
||||
callbackHandler.post(callback);
|
||||
}
|
||||
},
|
||||
null /* finishedListener */);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package app.lawnchair.compatlib.thirteen;
|
||||
|
||||
import android.app.IApplicationThread;
|
||||
import android.window.IRemoteTransition;
|
||||
import android.window.RemoteTransition;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import app.lawnchair.compatlib.ActivityManagerCompat;
|
||||
import app.lawnchair.compatlib.ActivityOptionsCompat;
|
||||
import app.lawnchair.compatlib.RemoteTransitionCompat;
|
||||
import app.lawnchair.compatlib.twelve.QuickstepCompatFactoryVS;
|
||||
|
||||
@RequiresApi(33)
|
||||
public class QuickstepCompatFactoryVT extends QuickstepCompatFactoryVS {
|
||||
|
||||
@NonNull
|
||||
@@ -27,14 +26,7 @@ public class QuickstepCompatFactoryVT extends QuickstepCompatFactoryVS {
|
||||
@NonNull
|
||||
@Override
|
||||
public RemoteTransitionCompat getRemoteTransitionCompat() {
|
||||
return new RemoteTransitionCompat() {
|
||||
@Override
|
||||
public RemoteTransition getRemoteTransition(
|
||||
@NonNull IRemoteTransition remoteTransition,
|
||||
@Nullable IApplicationThread appThread,
|
||||
@Nullable String debugName) {
|
||||
return new RemoteTransition(remoteTransition, appThread);
|
||||
}
|
||||
};
|
||||
return (remoteTransition, appThread, debugName) ->
|
||||
new RemoteTransition(remoteTransition, appThread);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user