diff --git a/forge-gui-android/src/forge/app/Main.java b/forge-gui-android/src/forge/app/Main.java index fc1d42681f8..0a93ca12b01 100644 --- a/forge-gui-android/src/forge/app/Main.java +++ b/forge-gui-android/src/forge/app/Main.java @@ -8,6 +8,7 @@ import android.content.ClipboardManager; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; +import android.content.res.Configuration; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; @@ -29,13 +30,15 @@ public class Main extends AndroidApplication { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - //setup portrait orientation - this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); - if (Build.VERSION.SDK_INT > 8) { //use dual-side portrait mode if supported - this.setRequestedOrientation(7); - } + AndroidAdapter adapter = new AndroidAdapter(this.getContext()); - AndroidAdapter adapter = new AndroidAdapter(); + //enforce portrait orientation for non-tablet screens + if (!adapter.isTablet) { + this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + if (Build.VERSION.SDK_INT > 8) { //use dual-side portrait mode if supported + this.setRequestedOrientation(7); + } + } //establish assets directory if (!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { @@ -88,8 +91,15 @@ public class Main extends AndroidApplication { } private class AndroidAdapter implements IDeviceAdapter { + private final boolean isTablet; private final ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); + private AndroidAdapter(Context context) { + isTablet = (context.getResources().getConfiguration().screenLayout + & Configuration.SCREENLAYOUT_SIZE_MASK) + >= Configuration.SCREENLAYOUT_SIZE_LARGE; + } + @Override public boolean isConnectedToInternet() { return Boolean.TRUE.equals(ThreadUtil.executeWithTimeout(new Callable() { @@ -146,5 +156,10 @@ public class Main extends AndroidApplication { | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); // hide (remove, in this case) task from recents startActivity(relaunch); } + + @Override + public boolean isTablet() { + return isTablet; + } } } diff --git a/forge-gui-mobile-dev/src/forge/app/Main.java b/forge-gui-mobile-dev/src/forge/app/Main.java index c50702e3664..1359c543dcd 100644 --- a/forge-gui-mobile-dev/src/forge/app/Main.java +++ b/forge-gui-mobile-dev/src/forge/app/Main.java @@ -58,5 +58,10 @@ public class Main { public void exit() { Gdx.app.exit(); //can just use Gdx.app.exit for desktop } + + @Override + public boolean isTablet() { + return true; //treat desktop the same as a tablet + } } } diff --git a/forge-gui/src/main/java/forge/interfaces/IDeviceAdapter.java b/forge-gui/src/main/java/forge/interfaces/IDeviceAdapter.java index 9976713feaa..0630021363a 100644 --- a/forge-gui/src/main/java/forge/interfaces/IDeviceAdapter.java +++ b/forge-gui/src/main/java/forge/interfaces/IDeviceAdapter.java @@ -3,6 +3,7 @@ package forge.interfaces; public interface IDeviceAdapter { boolean isConnectedToInternet(); boolean isConnectedToWifi(); + boolean isTablet(); String getDownloadsDir(); boolean openFile(String filename); void exit();