Android: Add sustained performance mode option

This commit is contained in:
Connor McLaughlin
2021-01-13 20:09:30 +10:00
parent 93959a9d88
commit 3b433d8d3e
3 changed files with 27 additions and 0 deletions

View File

@ -16,6 +16,7 @@ import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.Toast;
@ -164,6 +165,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
AndroidHostInterface.getInstance().applySettings();
updateRequestedOrientation();
updateControllers();
updateSustainedPerformanceMode();
}
private void applySettings() {
@ -255,6 +257,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
// Sort out rotation.
updateRequestedOrientation();
updateOrientation();
updateSustainedPerformanceMode();
// Hook up controller input.
updateControllers();
@ -674,4 +677,20 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
mVibratorService.cancel();
});
}
private boolean mSustainedPerformanceModeEnabled = false;
private void updateSustainedPerformanceMode() {
final boolean enabled = getBooleanSetting("Main/SustainedPerformanceMode", false);
if (mSustainedPerformanceModeEnabled == enabled)
return;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
getWindow().setSustainedPerformanceMode(enabled);
Log.i("EmulationActivity", String.format("%s sustained performance mode.", enabled ? "enabling" : "disabling"));
} else {
Log.e("EmulationActivity", "Sustained performance mode not supported.");
}
mSustainedPerformanceModeEnabled = enabled;
}
}