Search in sources :

Example 1 with Platform

use of io.anuke.mindustry.io.Platform in project Mindustry by Anuken.

the class AndroidLauncher method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
    config.useImmersiveMode = true;
    Platform.instance = new Platform() {

        DateFormat format = SimpleDateFormat.getDateTimeInstance();

        @Override
        public boolean hasDiscord() {
            return isPackageInstalled("com.discord");
        }

        @Override
        public String format(Date date) {
            return format.format(date);
        }

        @Override
        public String format(int number) {
            return NumberFormat.getIntegerInstance().format(number);
        }

        @Override
        public void addDialog(TextField field, int length) {
            TextFieldDialogListener.add(field, 0, length);
        }

        @Override
        public String getLocaleName(Locale locale) {
            return locale.getDisplayName(locale);
        }

        @Override
        public void openDonations() {
            showDonations();
        }

        @Override
        public void requestWritePerms() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                    requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                } else {
                    if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                        requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                    }
                    if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                        requestPermissions(new String[] { Manifest.permission.READ_EXTERNAL_STORAGE }, WRITE_REQUEST_CODE);
                    }
                }
            }
        }

        @Override
        public ThreadProvider getThreadProvider() {
            return new DefaultThreadImpl();
        }

        @Override
        public boolean isDebug() {
            return false;
        }

        @Override
        public byte[] getUUID() {
            try {
                String s = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);
                int len = s.length();
                byte[] data = new byte[len / 2];
                for (int i = 0; i < len; i += 2) {
                    data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
                }
                return data;
            } catch (Exception e) {
                Settings.defaults("uuid", "");
                String uuid = Settings.getString("uuid");
                if (uuid.isEmpty()) {
                    byte[] result = new byte[8];
                    new Random().nextBytes(result);
                    uuid = new String(Base64Coder.encode(result));
                    Settings.putString("uuid", uuid);
                    Settings.save();
                    return result;
                }
                return Base64Coder.decode(uuid);
            }
        }
    };
    if (doubleScaleTablets && isTablet(this.getContext())) {
        Unit.dp.addition = 0.5f;
    }
    config.hideStatusBar = true;
    Net.setClientProvider(new KryoClient());
    Net.setServerProvider(new KryoServer());
    initialize(new Mindustry(), config);
}
Also used : Locale(java.util.Locale) Platform(io.anuke.mindustry.io.Platform) KryoServer(io.anuke.kryonet.KryoServer) DefaultThreadImpl(io.anuke.kryonet.DefaultThreadImpl) Date(java.util.Date) AndroidApplicationConfiguration(com.badlogic.gdx.backends.android.AndroidApplicationConfiguration) Random(java.util.Random) SimpleDateFormat(java.text.SimpleDateFormat) DateFormat(java.text.DateFormat) TextField(io.anuke.ucore.scene.ui.TextField) ThreadProvider(io.anuke.mindustry.core.ThreadHandler.ThreadProvider) KryoClient(io.anuke.kryonet.KryoClient)

Example 2 with Platform

use of io.anuke.mindustry.io.Platform in project Mindustry by Anuken.

the class HtmlLauncher method createApplicationListener.

@Override
public ApplicationListener createApplicationListener() {
    instance = this;
    setLogLevel(LOG_NONE);
    setLoadingListener(new LoadingListener() {

        @Override
        public void beforeSetup() {
        }

        @Override
        public void afterSetup() {
            scaleCanvas();
            setupResizeHook();
        }
    });
    Net.setClientProvider(new WebsocketClient());
    Platform.instance = new Platform() {

        DateTimeFormat format = DateTimeFormat.getFormat("EEE, dd MMM yyyy HH:mm:ss");

        @Override
        public String format(Date date) {
            return format.format(date);
        }

        @Override
        public String format(int number) {
            return NumberFormat.getDecimalFormat().format(number);
        }

        @Override
        public boolean canJoinGame() {
            String ref = Document.get().getReferrer();
            return !ref.startsWith("https") && !ref.contains("itch.io");
        }

        @Override
        public byte[] getUUID() {
            Settings.defaults("uuid", "");
            String uuid = Settings.getString("uuid");
            if (uuid.isEmpty()) {
                byte[] result = new byte[8];
                new Random().nextBytes(result);
                uuid = new String(Base64Coder.encode(result));
                Settings.putString("uuid", uuid);
                Settings.save();
                return result;
            }
            return Base64Coder.decode(uuid);
        }
    };
    return new Mindustry();
}
Also used : Mindustry(io.anuke.mindustry.Mindustry) Platform(io.anuke.mindustry.io.Platform) Random(java.util.Random) Date(java.util.Date) DateTimeFormat(com.google.gwt.i18n.shared.DateTimeFormat)

Aggregations

Platform (io.anuke.mindustry.io.Platform)2 Date (java.util.Date)2 Random (java.util.Random)2 AndroidApplicationConfiguration (com.badlogic.gdx.backends.android.AndroidApplicationConfiguration)1 DateTimeFormat (com.google.gwt.i18n.shared.DateTimeFormat)1 DefaultThreadImpl (io.anuke.kryonet.DefaultThreadImpl)1 KryoClient (io.anuke.kryonet.KryoClient)1 KryoServer (io.anuke.kryonet.KryoServer)1 Mindustry (io.anuke.mindustry.Mindustry)1 ThreadProvider (io.anuke.mindustry.core.ThreadHandler.ThreadProvider)1 TextField (io.anuke.ucore.scene.ui.TextField)1 DateFormat (java.text.DateFormat)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Locale (java.util.Locale)1