diff --git a/app/src/main/java/com/vectras/qemu/MainSettingsManager.java b/app/src/main/java/com/vectras/qemu/MainSettingsManager.java
index bec234e..605f13c 100644
--- a/app/src/main/java/com/vectras/qemu/MainSettingsManager.java
+++ b/app/src/main/java/com/vectras/qemu/MainSettingsManager.java
@@ -30,6 +30,7 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreference;
import androidx.preference.SwitchPreferenceCompat;
+import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.vectras.vm.AboutActivity;
import com.vectras.vm.MainActivity;
import com.vectras.vm.R;
@@ -108,7 +109,12 @@ public class MainSettingsManager extends AppCompatActivity
@Override
public void onResume() {
super.onResume();
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.general));
+ }
}
@Override
@@ -122,7 +128,6 @@ public class MainSettingsManager extends AppCompatActivity
public void onCreatePreferences(Bundle bundle, String root_key) {
// Load the Preferences from the XML file
setPreferencesFromResource(R.xml.headers_preference, root_key);
-
}
@Override
@@ -159,11 +164,40 @@ public class MainSettingsManager extends AppCompatActivity
// Load the Preferences from the XML file
setPreferencesFromResource(R.xml.settings, rootKey);
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.system));
+ }
+
// Find the ListPreference and set the change listener
ListPreference languagePref = findPreference("language");
if (languagePref != null) {
languagePref.setOnPreferenceChangeListener(this);
}
+
+ SwitchPreferenceCompat switchPreferenceCompat = findPreference("updateVersionPrompt");
+ assert switchPreferenceCompat != null;
+ SwitchPreferenceCompat switchJoinBetaChannel = findPreference("checkforupdatesfromthebetachannel");
+ assert switchJoinBetaChannel != null;
+
+ if (!switchPreferenceCompat.isChecked()) {
+ switchJoinBetaChannel.setEnabled(false);
+ }
+
+ switchPreferenceCompat.setOnPreferenceChangeListener((preference, newValue) -> {
+ if (!(Boolean) newValue) {
+ if (switchJoinBetaChannel.isEnabled())
+ switchJoinBetaChannel.setEnabled(false);
+ } else {
+ if (!switchJoinBetaChannel.isEnabled())
+ switchJoinBetaChannel.setEnabled(true);
+
+ }
+ return true;
+ });
+
}
@Override
@@ -200,15 +234,9 @@ public class MainSettingsManager extends AppCompatActivity
mHandler = new Handler();
Preference pref = findPreference("modeNight");
if (pref != null) {
- pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
-
- @Override
- public boolean onPreferenceChange(@NonNull Preference preference,
- Object newValue) {
- onNightMode();
- return true;
- }
-
+ pref.setOnPreferenceChangeListener((preference, newValue) -> {
+ onNightMode();
+ return true;
});
}
}
@@ -243,7 +271,12 @@ public class MainSettingsManager extends AppCompatActivity
public void onCreatePreferences(Bundle bundle, String root_key) {
// Load the Preferences from the XML file
setPreferencesFromResource(R.xml.userinterface, root_key);
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.personalization));
+ }
}
@Override
@@ -269,15 +302,9 @@ public class MainSettingsManager extends AppCompatActivity
Preference pref = findPreference("vmArch");
if (pref != null) {
- pref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
-
- @Override
- public boolean onPreferenceChange(@NonNull Preference preference,
- Object newValue) {
- onArch();
- return true;
- }
-
+ pref.setOnPreferenceChangeListener((preference, newValue) -> {
+ onArch();
+ return true;
});
}
@@ -307,26 +334,23 @@ public class MainSettingsManager extends AppCompatActivity
SwitchPreferenceCompat useDefaultBiosPref = findPreference("useDefaultBios");
assert useDefaultBiosPref != null;
- useDefaultBiosPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
- SwitchPreferenceCompat useUEFIPref = findPreference("useUEFI");
- assert useUEFIPref != null;
- if (!(Boolean) newValue) {
- if (getuseUEFI(getActivity())) {
- useUEFIPref.setChecked(false);
- setuseUEFI(getActivity(), false);
- }
- if (useUEFIPref.isEnabled()) {
- useUEFIPref.setEnabled(false);
- }
- } else {
- if (!useUEFIPref.isEnabled()) {
- useUEFIPref.setEnabled(true);
- }
+ useDefaultBiosPref.setOnPreferenceChangeListener((preference, newValue) -> {
+ SwitchPreferenceCompat useUEFIPref = findPreference("useUEFI");
+ assert useUEFIPref != null;
+ if (!(Boolean) newValue) {
+ if (getuseUEFI(getActivity())) {
+ useUEFIPref.setChecked(false);
+ setuseUEFI(getActivity(), false);
+ }
+ if (useUEFIPref.isEnabled()) {
+ useUEFIPref.setEnabled(false);
+ }
+ } else {
+ if (!useUEFIPref.isEnabled()) {
+ useUEFIPref.setEnabled(true);
}
- return true;
}
+ return true;
});
}
@@ -360,6 +384,32 @@ public class MainSettingsManager extends AppCompatActivity
public void onCreatePreferences(Bundle bundle, String root_key) {
// Load the Preferences from the XML file
setPreferencesFromResource(R.xml.qemu, root_key);
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.qemu));
+ }
+
+ SwitchPreferenceCompat customMemory = findPreference("customMemory");
+ assert customMemory != null;
+ EditTextPreference memory = findPreference("memory");
+ assert memory != null;
+
+ if (!customMemory.isChecked()) {
+ memory.setEnabled(false);
+ }
+ customMemory.setOnPreferenceChangeListener((preference, newValue) -> {
+ if (!(Boolean) newValue) {
+ if (memory.isEnabled())
+ memory.setEnabled(false);
+ } else {
+ if (!memory.isEnabled())
+ memory.setEnabled(true);
+
+ }
+ return true;
+ });
}
@Override
@@ -394,6 +444,12 @@ public class MainSettingsManager extends AppCompatActivity
public void onCreatePreferences(Bundle bundle, String root_key) {
// Load the Preferences from the XML file
setPreferencesFromResource(R.xml.vnc, root_key);
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.vnc_server));
+ }
}
diff --git a/app/src/main/java/com/vectras/vm/Minitools.java b/app/src/main/java/com/vectras/vm/Minitools.java
index c983c47..c523630 100644
--- a/app/src/main/java/com/vectras/vm/Minitools.java
+++ b/app/src/main/java/com/vectras/vm/Minitools.java
@@ -65,7 +65,7 @@ public class Minitools extends AppCompatActivity {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_minitools);
- UIUtils.setOnApplyWindowInsetsListener(findViewById(R.id.main));
+// UIUtils.setOnApplyWindowInsetsListener(findViewById(R.id.main));
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
diff --git a/app/src/main/java/com/vectras/vm/x11/LoriePreferences.java b/app/src/main/java/com/vectras/vm/x11/LoriePreferences.java
index 9a9fd55..476ac25 100644
--- a/app/src/main/java/com/vectras/vm/x11/LoriePreferences.java
+++ b/app/src/main/java/com/vectras/vm/x11/LoriePreferences.java
@@ -45,6 +45,7 @@ import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
+import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.vectras.vm.x11.utils.KeyInterceptor;
import com.vectras.vm.x11.utils.SamsungDexUtils;
import com.vectras.vm.x11.utils.TermuxX11ExtraKeys;
@@ -133,6 +134,14 @@ public class LoriePreferences extends AppCompatActivity {
}
addPreferencesFromResource(R.xml.preferences);
+
+ //Set Subtitle for CollapsingToolbarLayout in MainSettingsManager
+ CollapsingToolbarLayout collapsingToolbarLayout =
+ requireActivity().findViewById(R.id.collapsingToolbarLayout);
+
+ if (collapsingToolbarLayout != null) {
+ collapsingToolbarLayout.setSubtitle(getString(R.string.x11));
+ }
}
@SuppressWarnings("ConstantConditions")
diff --git a/app/src/main/res/drawable/object_shape_bottom.xml b/app/src/main/res/drawable/object_shape_bottom.xml
new file mode 100644
index 0000000..5f76ea7
--- /dev/null
+++ b/app/src/main/res/drawable/object_shape_bottom.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/object_shape_inside_object_top.xml b/app/src/main/res/drawable/object_shape_inside_object_top.xml
new file mode 100644
index 0000000..933aa1b
--- /dev/null
+++ b/app/src/main/res/drawable/object_shape_inside_object_top.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/object_shape_middle.xml b/app/src/main/res/drawable/object_shape_middle.xml
new file mode 100644
index 0000000..18c3ee9
--- /dev/null
+++ b/app/src/main/res/drawable/object_shape_middle.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/object_shape_single.xml b/app/src/main/res/drawable/object_shape_single.xml
new file mode 100644
index 0000000..0905b47
--- /dev/null
+++ b/app/src/main/res/drawable/object_shape_single.xml
@@ -0,0 +1,10 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/object_shape_top.xml b/app/src/main/res/drawable/object_shape_top.xml
new file mode 100644
index 0000000..373f64e
--- /dev/null
+++ b/app/src/main/res/drawable/object_shape_top.xml
@@ -0,0 +1,14 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_minitools.xml b/app/src/main/res/layout/activity_minitools.xml
index 549b926..fb5104b 100644
--- a/app/src/main/res/layout/activity_minitools.xml
+++ b/app/src/main/res/layout/activity_minitools.xml
@@ -1,200 +1,217 @@
-
-
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ app:layout_behavior="com.google.android.material.appbar.AppBarLayout$Behavior">
-
+ android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
+ android:fitsSystemWindows="true"
+ app:collapsedTitleTextAppearance="@style/TextAppearance.Material3.TitleMedium"
+ app:expandedTitleTextAppearance="@style/TextAppearance.Material3.DisplaySmall"
+ app:layout_scrollFlags="scroll|exitUntilCollapsed"
+ app:title="@string/mini_tools">
-
+ android:layout_height="?attr/actionBarSize"
+ android:elevation="0dp"
+ app:layout_collapseMode="pin"
+ app:navigationIcon="@drawable/arrow_back_24px" />
-
-
+
+
-
+
+
+ android:layout_height="wrap_content"
+ android:animateLayoutChanges="true"
+ android:orientation="vertical"
+ android:padding="8dp">
+
+ android:background="@drawable/object_shape_top"
+ android:gravity="center_vertical"
+ android:paddingLeft="16dp"
+ android:paddingTop="2dp"
+ android:paddingRight="2dp"
+ android:paddingBottom="2dp">
+
+
+
+
+ android:background="@drawable/object_shape_inside_object_top">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:spinnerMode="dialog"
+ tools:listitem="@layout/simple_layout_for_spiner" />
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 97a9bd7..4afd724 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -1,5 +1,5 @@
-
+ android:layout_height="wrap_content"
+ android:gravity="center"
+ app:layout_behavior="com.google.android.material.appbar.AppBarLayout$Behavior">
-
+ android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
+ android:fitsSystemWindows="true"
+ app:collapsedTitleTextAppearance="@style/TextAppearance.Material3.TitleMedium"
+ app:expandedTitleTextAppearance="@style/TextAppearance.Material3.DisplaySmall"
+ app:layout_scrollFlags="scroll|exitUntilCollapsed"
+ app:title="@string/settings">
+
+
+
+
+ android:layout_height="match_parent"
+ android:fillViewport="true"
+ app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a06a482..45e08b9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -72,7 +72,7 @@
Linux
Windows
Apple
- EXTERNAL VNC
+ External VNC
HOSTED SUCCESSFULLY!
IP: 127.0.0.1:9
Install Rom
@@ -247,7 +247,7 @@
vnc ui environment.
VM ARCH
CPU MODEL
- CUSTOM MEMORY
+ Custom memory
MEMORY (MB)
SOUND CARD
TB SIZE (KB)
@@ -257,15 +257,15 @@
KVM
CPU CORES
HARDDISK TYPE
- BOOT FROM
- SHARED FOLDER
- CUSTOM PARAMS
+ Boot from
+ Shared folder
+ Custom params
VM UI ENVIRONMENT
X11 Resolution
MOUSE
CHECK FOR SOFTWARE UPDATES ON STARTUP
CHECK FOR SOFTWARE UPDATES
- NIGHT MODE
+ Night mode
Description
QEMU website
PowerPC
@@ -288,7 +288,7 @@
Instagram
Facebook
Change Log
- LANGUAGE
+ Language
SET
CHANGE APP LOCALE
Are you sure you want to shutdown vm? To leave this but keep everything running, tap and hold the Shut down button.
@@ -409,7 +409,7 @@
Welcome to Vectras VM. Let\'s get started!
Processing...\nThis may take a few minutes.
Check for updates from the Beta channel
- Check from the Beta channel instead of the Stable channel
+ Check from the Beta channel instead of the Stable channel.
Update
New version is now available
OK
@@ -446,6 +446,25 @@
seconds left
Learn more
Open
+ General
+ Personalization
+ System
+ VNC Server
+ Language, check for updates and files.
+ Themes and user interface.
+ Settings for the emulator.
+ Using VNC Server for external.
+ X11 user interface environment.
+ Automatically check for updates
+ Check on startup.
+ Join the Beta channel
+ You will receive updates to experience the latest features early.
+ Tap here to select language.
+ Memory
+ Memory capacity (MB)
+ Hard drive interface
+ UI environment
+
Vterm
diff --git a/app/src/main/res/xml/headers_preference.xml b/app/src/main/res/xml/headers_preference.xml
index 56d0ec5..8788bf7 100644
--- a/app/src/main/res/xml/headers_preference.xml
+++ b/app/src/main/res/xml/headers_preference.xml
@@ -5,31 +5,31 @@
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 9096243..2ed6943 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -3,231 +3,272 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
+ android:title="@string/settings_tag_output"
+ app:iconSpaceReserved="false">
+ android:title="@string/settings_x11_display_resolution_mode"
+ app:iconSpaceReserved="false"/>
+ android:title="@string/settings_x11_display_scale"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_display_resolution"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_display_resolution"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_stretch"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_reseed_screen_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_pip_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_full_screen_title"
+ app:iconSpaceReserved="false" />
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_cutout"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_keep_screen_on"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_adjust_display_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_tag_point"
+ app:iconSpaceReserved="false" >
+ android:title="@string/settings_x11_touchscreen_input_mode"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_display_scale_factor_to_touchpad"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_stylus_option_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_mouse_overlay_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_capture_mouse_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_capture_pointer_move"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_capture_pointer_move_factor"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_tap_to_move"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_tag_keyboard"
+ app:iconSpaceReserved="false" >
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settiongs_capture_volkey"
+ app:iconSpaceReserved="false" />
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_deact_speckey_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_ime_with_hardkeyboard_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_prefer_scancode_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_fix_hard_keyboard_scancode_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_full_screen_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_capture_shortcut_manually_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_auto_intercept_shortcut_title"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_intercepting_esc"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_x11_ignore_win_key_title"
+ app:iconSpaceReserved="false" />
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ app:isPreferenceVisible="false"
+ app:iconSpaceReserved="false" />
+ android:title="@string/settings_tag_other"
+ app:iconSpaceReserved="false" >
+ android:title="@string/settings_clipboard_sharing"
+ app:iconSpaceReserved="false" />
+ android:title="Request notification permission"
+ app:iconSpaceReserved="false" />
diff --git a/app/src/main/res/xml/qemu.xml b/app/src/main/res/xml/qemu.xml
index 38a35ec..8b56467 100644
--- a/app/src/main/res/xml/qemu.xml
+++ b/app/src/main/res/xml/qemu.xml
@@ -3,20 +3,20 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
+ android:layout_height="wrap_content">
+
+
-
+
+
+
+
+
+
+
+
+
+
@@ -127,7 +127,7 @@
diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml
index 0cd9ff6..bade35b 100644
--- a/app/src/main/res/xml/settings.xml
+++ b/app/src/main/res/xml/settings.xml
@@ -2,9 +2,9 @@
xmlns:android="http://schemas.android.com/apk/res/android">
+ android:layout_height="wrap_content">
+
+
diff --git a/app/src/main/res/xml/userinterface.xml b/app/src/main/res/xml/userinterface.xml
index 2ecea4a..2f031e5 100644
--- a/app/src/main/res/xml/userinterface.xml
+++ b/app/src/main/res/xml/userinterface.xml
@@ -3,9 +3,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
+ android:layout_height="wrap_content">
+
+
+ android:layout_height="wrap_content">
+
+