1.录屏控制类接口封装RecordScreenController.java
package com.android.systemui.statusbar.policy;
import com.android.systemui.Dumpable;
import com.android.systemui.statusbar.policy.RecordScreenController.RecordScreenListener;
public interface RecordScreenController extends CallbackController<RecordScreenListener> {
void setRecordScreen(boolean newState);
boolean isEnabled();
void setRecordScreenController(boolean enabled);
boolean getRecordScreenController();
void addCallback(RecordScreenListener callback);
void removeCallback(RecordScreenListener callback);
boolean isAvailable();
public interface RecordScreenListener {
/**
* Called when the flashlight was turned off or on.
* @param enabled true if the flashlight is currently turned on.
*/
void onRecordScreenChanged(boolean enabled);
2.录屏控制了具体控制实现RecordScreenControllerImpl.java
package com.android.systemui.statusbar.policy;
import android.content.Context;
import android.os.UserHandle;
import android.content.Intent;
import com.android.internal.view.RotationPolicy;
import java.util.concurrent.CopyOnWriteArrayList;
import com.android.systemui.statusbar.policy.RecordScreenController;
import com.android.systemui.statusbar.policy.RecordScreenController.RecordScreenListener;
import android.util.Log;
import com.android.systemui.util.ScreenUtil;
import android.app.Application;
import com.android.systemui.ScreenRecordActivity;
/** Platform implementation of the rotation lock controller. **/
public final class RecordScreenControllerImpl implements RecordScreenController {
private final String TAG = "RecordScreenControllerImpl";
privat