Skip to content

Commit 7436dcf

Browse files
committed
Fix fullscreen not using display size
Increase input polling to 1000 buttons Some controllers do not start at zero. Fixes #14 Dispose and reload on suspend and resume on Android The fonts can become corrupted otherwise.
1 parent 1b51afe commit 7436dcf

File tree

7 files changed

+28
-11
lines changed

7 files changed

+28
-11
lines changed

android/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.rolandoislas.drcsimclient"
4-
android:versionCode="5"
4+
android:versionCode="6"
55
android:versionName="2.0" >
66

77
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25" />

core/src/com/rolandoislas/drcsimclient/Client.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import com.rolandoislas.drcsimclient.control.Control;
99
import com.rolandoislas.drcsimclient.data.ArgumentParser;
1010
import com.rolandoislas.drcsimclient.data.Constants;
11+
import com.rolandoislas.drcsimclient.graphics.TextUtil;
1112
import com.rolandoislas.drcsimclient.net.Sockets;
1213
import com.rolandoislas.drcsimclient.stage.Stage;
13-
import com.rolandoislas.drcsimclient.stage.StageConnect;
1414
import com.rolandoislas.drcsimclient.stage.StageLoad;
1515
import com.rolandoislas.drcsimclient.util.logging.Logger;
1616

@@ -40,7 +40,7 @@ public static Stage getStage() {
4040
public void create () {
4141
sockets = new Sockets();
4242
stage = new Stage();
43-
setStage(new StageLoad());
43+
setStage(new StageLoad(true));
4444
}
4545

4646
@Override
@@ -61,13 +61,18 @@ public void dispose () {
6161
@Override
6262
public void pause() {
6363
super.pause();
64-
if (Gdx.app.getType() == Application.ApplicationType.Android)
65-
setStage(new StageConnect());
64+
if (Gdx.app.getType() == Application.ApplicationType.Android) {
65+
setStage(new StageLoad(false));
66+
dispose();
67+
TextUtil.dispose();
68+
}
6669
}
6770

6871
@Override
6972
public void resume() {
7073
super.resume();
74+
if (Gdx.app.getType() == Application.ApplicationType.Android)
75+
create();
7176
}
7277

7378
public static void setStage(Stage stage) {

core/src/com/rolandoislas/drcsimclient/graphics/TextUtil.java

+4
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ public static BitmapFont generateScaledFont(float scale) {
2525
fonts.put(size, font);
2626
return font;
2727
}
28+
29+
public static void dispose() {
30+
fonts.clear();
31+
}
2832
}

core/src/com/rolandoislas/drcsimclient/stage/Stage.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,10 @@ private void toggleFullscreen() {
3030
for (Graphics.DisplayMode displayMode : Gdx.graphics.getDisplayModes()) {
3131
if (largest == null)
3232
largest = displayMode;
33-
if (displayMode.width > largest.width && displayMode.height > largest.height)
33+
if (displayMode.width > largest.width || displayMode.height > largest.height)
3434
largest = displayMode;
3535
}
3636
Gdx.graphics.setFullscreenMode(largest);
37-
3837
}
3938

4039
public void onBackButtonPressed() {

core/src/com/rolandoislas/drcsimclient/stage/StageConfigController.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,8 @@ void getInput() {
106106
input = pov;
107107
}
108108
} else {
109-
for (int button = 0; button < 100; button++)
109+
// Some controllers do not start their buttons at zero
110+
for (int button = 0; button < 1000; button++)
110111
if (controller.getButton(button))
111112
input = button;
112113
}

core/src/com/rolandoislas/drcsimclient/stage/StageControl.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ public void act() {
8686
updateWiiVideoFrame();
8787
// Check touch/click screen input
8888
if (config.touchScreen && wiiScreen.isPressed())
89-
sockets.sendTouchScreenInput((short) Gdx.input.getX(), (short) Gdx.input.getY(), (short) getWidth(),
90-
(short) getHeight());
89+
sockets.sendTouchScreenInput((short) Gdx.input.getX(), (short) Gdx.input.getY(),
90+
(short) Gdx.graphics.getWidth(), (short) Gdx.graphics.getHeight());
9191
// Update controls
9292
for (Control control : controls)
9393
control.update();

core/src/com/rolandoislas/drcsimclient/stage/StageLoad.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,19 @@
2222
public class StageLoad extends Stage {
2323
private final Image icon;
2424
private final Label loading;
25+
private final boolean doLoad;
2526
private int skipTicks = 1;
2627
private ArrayList<Float> fontSizes = new ArrayList<Float>(Arrays.asList(1f, 1.5f, 2f));
2728
private int percent = 0;
2829
private boolean doGenerate;
2930
private boolean loadControllers = false;
3031

31-
public StageLoad() {
32+
/**
33+
* Loading stage
34+
* @param doLoad should resources be loaded? It acts as a splash screen otherwise.
35+
*/
36+
public StageLoad(boolean doLoad) {
37+
this.doLoad = doLoad;
3238
// Create icon
3339
icon = new Image(new Texture("image/icon-512.png"));
3440
int size = Gdx.graphics.getHeight();
@@ -50,6 +56,8 @@ public StageLoad() {
5056

5157
@Override
5258
public void act(float delta) {
59+
if (!doLoad)
60+
return;
5361
if (this.skipTicks > 0) {
5462
this.skipTicks--;
5563
return;

0 commit comments

Comments
 (0)