mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 10:48:19 +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:
@@ -3,38 +3,63 @@ package app.lawnchair.compatlib;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Rect;
|
||||
import android.view.IRecentsAnimationController;
|
||||
import android.window.TaskSnapshot;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class ActivityManagerCompat {
|
||||
public interface ActivityManagerCompat {
|
||||
int NUM_RECENT_ACTIVITIES_REQUEST = 3;
|
||||
|
||||
public static final int NUM_RECENT_ACTIVITIES_REQUEST = 3;
|
||||
void invalidateHomeTaskSnapshot(final Activity homeActivity);
|
||||
|
||||
public abstract void invalidateHomeTaskSnapshot(final Activity homeActivity);
|
||||
void startRecentsActivity(
|
||||
Intent intent, long eventTime, RecentsAnimationRunnerCompat runnerCompat);
|
||||
|
||||
/**
|
||||
* Called only in S+ platform
|
||||
*
|
||||
* @param taskId
|
||||
* @param isLowResolution
|
||||
* @param takeSnapshotIfNeeded
|
||||
* @return
|
||||
*/
|
||||
@Nullable
|
||||
public TaskSnapshot getTaskSnapshot(
|
||||
@RequiresApi(31)
|
||||
default TaskSnapshot getTaskSnapshot(
|
||||
int taskId, boolean isLowResolution, boolean takeSnapshotIfNeeded) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract void startRecentsActivity(
|
||||
Intent intent, long eventTime, RecentsAnimationRunnerCompat runnerCompat);
|
||||
default ThumbnailData getTaskThumbnail(int taskId, boolean isLowResolution) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract ActivityManager.RunningTaskInfo getRunningTask(
|
||||
boolean filterOnlyVisibleRecents);
|
||||
default ThumbnailData takeScreenshot(
|
||||
IRecentsAnimationController animationController, int taskId) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract List<ActivityManager.RecentTaskInfo> getRecentTasks(int numTasks, int userId);
|
||||
default ThumbnailData convertTaskSnapshotToThumbnailData(Object taskSnapshot) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public abstract ActivityManager.RunningTaskInfo[] getRunningTasks(
|
||||
boolean filterOnlyVisibleRecents);
|
||||
@Nullable
|
||||
ActivityManager.RunningTaskInfo getRunningTask(boolean filterOnlyVisibleRecents);
|
||||
|
||||
@NonNull
|
||||
List<ActivityManager.RunningTaskInfo> getRunningTasks(boolean filterOnlyVisibleRecents);
|
||||
|
||||
@NonNull
|
||||
List<ActivityManager.RecentTaskInfo> getRecentTasks(int numTasks, int userId);
|
||||
|
||||
public static class ThumbnailData {
|
||||
public Bitmap thumbnail;
|
||||
public int orientation;
|
||||
public int rotation;
|
||||
public Rect insets;
|
||||
public boolean reducedResolution;
|
||||
public boolean isRealSnapshot;
|
||||
public boolean isTranslucent;
|
||||
public int windowingMode;
|
||||
public int systemUiVisibility;
|
||||
public float scale;
|
||||
public long snapshotId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,17 +4,23 @@ import android.app.ActivityOptions;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.view.RemoteAnimationAdapter;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public abstract class ActivityOptionsCompat {
|
||||
public abstract ActivityOptions makeCustomAnimation(
|
||||
Context context,
|
||||
public interface ActivityOptionsCompat {
|
||||
|
||||
@NonNull
|
||||
ActivityOptions makeCustomAnimation(
|
||||
@NonNull Context context,
|
||||
int enterResId,
|
||||
int exitResId,
|
||||
final Runnable callback,
|
||||
final Handler callbackHandler);
|
||||
@NonNull final Handler callbackHandler,
|
||||
@Nullable final Runnable startedListener,
|
||||
@Nullable final Runnable finishedListener);
|
||||
|
||||
public abstract ActivityOptions makeRemoteAnimation(
|
||||
RemoteAnimationAdapter remoteAnimationAdapter,
|
||||
Object remoteTransition,
|
||||
String debugName);
|
||||
@NonNull
|
||||
ActivityOptions makeRemoteAnimation(
|
||||
@Nullable RemoteAnimationAdapter remoteAnimationAdapter,
|
||||
@Nullable Object remoteTransition,
|
||||
@Nullable String debugName);
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@ package app.lawnchair.compatlib;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
public abstract class QuickstepCompatFactory {
|
||||
public interface QuickstepCompatFactory {
|
||||
|
||||
@NonNull
|
||||
public abstract ActivityManagerCompat getActivityManagerCompat();
|
||||
ActivityManagerCompat getActivityManagerCompat();
|
||||
|
||||
@NonNull
|
||||
public abstract ActivityOptionsCompat getActivityOptionsCompat();
|
||||
ActivityOptionsCompat getActivityOptionsCompat();
|
||||
|
||||
@NonNull
|
||||
public abstract RemoteTransitionCompat getRemoteTransitionCompat();
|
||||
RemoteTransitionCompat getRemoteTransitionCompat();
|
||||
}
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
package app.lawnchair.compatlib;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.app.IApplicationThread;
|
||||
import android.window.IRemoteTransition;
|
||||
import android.window.RemoteTransition;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
public abstract class RemoteTransitionCompat {
|
||||
public interface RemoteTransitionCompat {
|
||||
|
||||
public abstract RemoteTransition getRemoteTransition(
|
||||
RemoteTransition getRemoteTransition(
|
||||
@NonNull IRemoteTransition remoteTransition,
|
||||
@Nullable IApplicationThread appThread,
|
||||
@Nullable String debugName);
|
||||
|
||||
Reference in New Issue
Block a user