Preload2: Add isSingleThreaded
Expose whether a UI is single-threaded to avoid spawning threads in actions. Bug: 31961946 Test: manual Change-Id: I37c8daa6a00784e833bad53b8e83ab4417955df7
This commit is contained in:
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.preload.actions;
|
package com.android.preload.actions;
|
||||||
|
|
||||||
|
import com.android.preload.Main;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
|
|
||||||
import javax.swing.AbstractAction;
|
import javax.swing.AbstractAction;
|
||||||
@@ -28,7 +29,11 @@ public abstract class AbstractThreadedAction extends AbstractAction implements R
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (Main.getUI().isSingleThreaded()) {
|
||||||
|
run();
|
||||||
|
} else {
|
||||||
new Thread(this).start();
|
new Thread(this).start();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,12 @@ public class RunMonkeyAction extends AbstractAction implements DeviceSpecific {
|
|||||||
if (packages.isEmpty()) {
|
if (packages.isEmpty()) {
|
||||||
packages = DEFAULT_MONKEY_PACKAGES;
|
packages = DEFAULT_MONKEY_PACKAGES;
|
||||||
}
|
}
|
||||||
new Thread(new RunMonkeyRunnable(packages)).start();
|
Runnable r = new RunMonkeyRunnable(packages);
|
||||||
|
if (Main.getUI().isSingleThreaded()) {
|
||||||
|
r.run();
|
||||||
|
} else {
|
||||||
|
new Thread(r).start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class RunMonkeyRunnable implements Runnable {
|
private class RunMonkeyRunnable implements Runnable {
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public interface IUI {
|
|||||||
|
|
||||||
void ready();
|
void ready();
|
||||||
|
|
||||||
|
boolean isSingleThreaded();
|
||||||
|
|
||||||
Client getSelectedClient();
|
Client getSelectedClient();
|
||||||
|
|
||||||
int getSelectedDataTableRow();
|
int getSelectedDataTableRow();
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ public class SwingUI extends JFrame implements IUI {
|
|||||||
super("Preloaded-classes computation");
|
super("Preloaded-classes computation");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isSingleThreaded() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void prepare(ListModel<Client> clientListModel, TableModel dataTableModel,
|
public void prepare(ListModel<Client> clientListModel, TableModel dataTableModel,
|
||||||
List<Action> actions) {
|
List<Action> actions) {
|
||||||
|
|||||||
Reference in New Issue
Block a user