diff --git a/app/build.gradle b/app/build.gradle index 9be2b9c..719aedd 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,8 +20,8 @@ android { applicationId "com.epicstudios.vectras" minSdk 21 targetSdk 34 - versionCode 1 - versionName "1.0" + versionCode 2 + versionName "1.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" signingConfig signingConfigs.release diff --git a/app/release/app-release.apk b/app/release/app-release.apk deleted file mode 100644 index 3681171..0000000 Binary files a/app/release/app-release.apk and /dev/null differ diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json deleted file mode 100644 index 939ddbb..0000000 --- a/app/release/output-metadata.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": 3, - "artifactType": { - "type": "APK", - "kind": "Directory" - }, - "applicationId": "com.epicstudios.vectras", - "variantName": "release", - "elements": [ - { - "type": "SINGLE", - "filters": [], - "attributes": [], - "versionCode": 1, - "versionName": "1.0", - "outputFile": "app-release.apk" - } - ], - "elementType": "File" -} \ No newline at end of file diff --git a/app/src/main/assets/roms/iso/cdrom.iso b/app/src/main/assets/roms/iso/cdrom.iso deleted file mode 100644 index 452f1c1..0000000 Binary files a/app/src/main/assets/roms/iso/cdrom.iso and /dev/null differ diff --git a/app/src/main/java/com/epicstudios/vectras/FirstActivity.java b/app/src/main/java/com/epicstudios/vectras/FirstActivity.java index 143f9ce..be237be 100644 --- a/app/src/main/java/com/epicstudios/vectras/FirstActivity.java +++ b/app/src/main/java/com/epicstudios/vectras/FirstActivity.java @@ -128,8 +128,8 @@ public class FirstActivity extends AppCompatActivity { in.close(); } catch (Exception e) { acceptLiceneseChkBox.setEnabled(false); - Toast.makeText(activity, "no internet connection", Toast.LENGTH_LONG).show(); - Log.d("VECTRAS", e.toString()); + MainActivity.UIAlert("no internet connection", e.toString(), activity); + Log.d("TERMS", e.toString()); } //since we are in background thread, to post results we have to go back to ui thread. do the following for that diff --git a/app/src/main/java/com/epicstudios/vectras/Fragment/ControlsFragment.java b/app/src/main/java/com/epicstudios/vectras/Fragment/ControlsFragment.java index 3dafc99..507d276 100644 --- a/app/src/main/java/com/epicstudios/vectras/Fragment/ControlsFragment.java +++ b/app/src/main/java/com/epicstudios/vectras/Fragment/ControlsFragment.java @@ -2,7 +2,12 @@ package com.epicstudios.vectras.Fragment; import android.app.ActivityManager; import android.content.Context; +import android.graphics.Color; +import android.os.Build; import android.os.Bundle; +import android.text.Spannable; +import android.text.SpannableString; +import android.text.style.ForegroundColorSpan; import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; @@ -13,6 +18,8 @@ import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.animation.Animation; +import android.view.animation.AnimationUtils; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.BaseInputConnection; import android.widget.LinearLayout; @@ -20,6 +27,8 @@ import android.widget.TextView; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; + +import com.epicstudios.vectras.MainActivity; import com.epicstudios.vectras.R; import com.epicstudios.vectras.Config; import com.epicstudios.vectras.VectrasSDLActivity; @@ -27,6 +36,9 @@ import com.epicstudios.vectras.widgets.JoystickView; import com.epicstudios.vectras.utils.KeyboardUtils; import com.epicstudios.vectras.utils.UIUtils; import android.view.View.OnClickListener; + +import java.io.IOException; +import java.io.InputStream; import java.util.Timer; import java.util.TimerTask; import org.libsdl.app.SDLActivity; @@ -39,6 +51,8 @@ public class ControlsFragment extends Fragment { private Timer _timer = new Timer(); private TimerTask t; + public static final int MAX_LINES = 1; + public static final String TWO_SPACES = " "; public static LinearLayout escBtn, enterBtn, shiftBtn, delBtn, gamepadLayout, desktopLayout, BtnUp, BtnDown, BtnRight, BtnLeft, BtnF, BtnShift, Btn0, BtnSpace, BtnSettings, kbdBtn, BtnMode, BtnHide; @@ -48,6 +62,12 @@ public class ControlsFragment extends Fragment { public static LinearLayout rightClick, leftClick; + ProcessBuilder processBuilder; + String Holder = ""; + String[] DATA = {"/system/bin/cat", "/proc/cpuinfo"}; + InputStream inputStream; + Process process ; + byte[] byteArry ; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub @@ -116,6 +136,51 @@ public class ControlsFragment extends Fragment { _timer.scheduleAtFixedRate(t, (int) (0), (int) (1000)); //txtMem.setVisibility(View.GONE); + //txtCpu.setVisibility(View.GONE); + byteArry = new byte[1024]; + + try{ + processBuilder = new ProcessBuilder(DATA); + + process = processBuilder.start(); + + inputStream = process.getInputStream(); + + while(inputStream.read(byteArry) != -1){ + + Holder = Holder + new String(byteArry); + } + + inputStream.close(); + + } catch(IOException ex){ + + ex.printStackTrace(); + } + + String cpuTxt = "Cpu Info:\n" + Holder; + + txtCpu.setText(cpuTxt); + txtCpu.post(() -> { + // Past the maximum number of lines we want to display. + if (txtCpu.getLineCount() > MAX_LINES) { + int lastCharShown = txtCpu.getLayout().getLineVisibleEnd(MAX_LINES - 1); + + txtCpu.setMaxLines(MAX_LINES); + + String moreString = "Show More"; + String suffix = TWO_SPACES + moreString; + + // 3 is a "magic number" but it's just basically the length of the ellipsis we're going to insert + String actionDisplayText = cpuTxt.substring(0, lastCharShown - suffix.length() - 3) + "..." + suffix; + + SpannableString truncatedSpannableString = new SpannableString(actionDisplayText); + int startIndex = actionDisplayText.indexOf(moreString); + truncatedSpannableString.setSpan(new ForegroundColorSpan(Color.GRAY), startIndex, startIndex + moreString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + txtCpu.setText(truncatedSpannableString); + } + }); + txtCpu.setVisibility(View.GONE); if (gamepadLayout.getVisibility() != View.VISIBLE) { @@ -236,10 +301,26 @@ public class ControlsFragment extends Fragment { @Override public void onClick(View view) { if (gamepadLayout.getVisibility() != View.VISIBLE) { - gamepadLayout.setVisibility(View.VISIBLE); + Animation animation2; + animation2 = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_to_left); + animation2.setDuration(300); + desktopLayout.startAnimation(animation2); desktopLayout.setVisibility(View.GONE); + Animation animation; + animation = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_from_left); + animation.setDuration(300); + gamepadLayout.startAnimation(animation); + gamepadLayout.setVisibility(View.VISIBLE); } else { + Animation animation; + animation = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_to_left); + animation.setDuration(300); + gamepadLayout.startAnimation(animation); gamepadLayout.setVisibility(View.GONE); + Animation animation2; + animation2 = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_from_left); + animation2.setDuration(300); + desktopLayout.startAnimation(animation2); desktopLayout.setVisibility(View.VISIBLE); } } @@ -249,10 +330,20 @@ public class ControlsFragment extends Fragment { @Override public void onClick(View view) { if (gamepadLayout.getVisibility() == View.GONE && desktopLayout.getVisibility() == View.GONE) { + Animation animation; + animation = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_from_left); + animation.setDuration(300); + desktopLayout.startAnimation(animation); + gamepadLayout.startAnimation(animation); gamepadLayout.setVisibility(View.VISIBLE); desktopLayout.setVisibility(View.GONE); TxtHide.setText("Hide"); } else { + Animation animation; + animation = AnimationUtils.loadAnimation(VectrasSDLActivity.activity, R.anim.slide_to_left); + animation.setDuration(300); + desktopLayout.startAnimation(animation); + gamepadLayout.startAnimation(animation); gamepadLayout.setVisibility(View.GONE); desktopLayout.setVisibility(View.GONE); TxtHide.setText("Show"); diff --git a/app/src/main/java/com/epicstudios/vectras/MainActivity.java b/app/src/main/java/com/epicstudios/vectras/MainActivity.java index 8f1e585..0255137 100644 --- a/app/src/main/java/com/epicstudios/vectras/MainActivity.java +++ b/app/src/main/java/com/epicstudios/vectras/MainActivity.java @@ -2,6 +2,10 @@ package com.epicstudios.vectras; import static android.Manifest.permission.READ_EXTERNAL_STORAGE; import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; + +import android.animation.ArgbEvaluator; +import android.animation.ObjectAnimator; +import android.animation.ValueAnimator; import android.app.NotificationChannel; import android.app.NotificationManager; import static android.os.Build.VERSION.SDK_INT; @@ -16,6 +20,7 @@ import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.graphics.Color; import android.net.Uri; import android.os.AsyncTask; import android.os.Build; @@ -32,6 +37,7 @@ import android.view.MenuItem; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; +import android.widget.ProgressBar; import android.widget.ScrollView; import android.widget.TextView; @@ -512,7 +518,28 @@ public class MainActivity extends AppCompatActivity { paramsList.add("-k"); paramsList.add("en-us"); + + paramsList.add("-monitor"); + paramsList.add("none"); + + paramsList.add("-serial"); + paramsList.add("none"); + + paramsList.add("-parallel"); + paramsList.add("none"); + + /* + paramsList.add("-drive"); //empty + String paramIso = "index=2"; + paramIso += ",if="; + paramIso += "ide"; + + paramIso += ",media=cdrom"; + paramIso += ",file=" + Config.basefiledir+"iso/cdrom.iso"; + + paramsList.add(paramIso); + paramsList.add("-drive"); String driveParams = "index=3"; driveParams += ",media=disk"; @@ -610,6 +637,8 @@ public class MainActivity extends AppCompatActivity { totalRam = findViewById(R.id.totalRam); usedRam = findViewById(R.id.usedRam); freeRam = findViewById(R.id.freeRam); + + ipTxt.setVisibility(View.GONE); t = new TimerTask() { @Override public void run() { @@ -628,6 +657,13 @@ public class MainActivity extends AppCompatActivity { totalRam.setText("Total Memory: " + totalMemory + " MB"); usedRam.setText("Used Memory: " + usedMemory + " MB"); freeRam.setText("Free Memory: " + freeMemory + " MB ("+RamInfo.vectrasMemory()+")"); + ProgressBar progressBar = findViewById(R.id.progressBar); + progressBar.setMax((int) totalMemory); + if (SDK_INT >= Build.VERSION_CODES.N) { + progressBar.setProgress((int) freeMemory, true); + } else { + progressBar.setProgress((int) freeMemory); + } } }); } @@ -645,10 +681,8 @@ public class MainActivity extends AppCompatActivity { AdView mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); - UIAlert(getString(R.string.app_version), "This is only the first beta version of Vectras. Please note that the application is still in the experimental stage so that it is available in the best condition. Do not be lazy and support the application with your opinion.", activity); - - + //UIAlert(getString(R.string.app_version), "This is only the first beta version of Vectras. Please note that the application is still in the experimental stage so that it is available in the best condition. Do not be lazy and support the application with your opinion.", activity); //File extra = new File(Config.basefiledir+"config_extra.txt"); //String extraParams = FileUtils.readFromFile(MainActivity.activity, extra); diff --git a/app/src/main/res/layout/controls_fragment.xml b/app/src/main/res/layout/controls_fragment.xml index 14c8da0..e25760c 100644 --- a/app/src/main/res/layout/controls_fragment.xml +++ b/app/src/main/res/layout/controls_fragment.xml @@ -10,29 +10,26 @@ android:orientation="vertical"> + + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> - + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5882372..338d821 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ Vectras VM - 1.0.0 alpha test + 1.1b Home Logger Start Emulation