mirror of
https://github.com/xoureldeen/Vectras-VM-Android.git
synced 2026-05-19 16:42:13 +00:00
v2.9.5.11-3dfx
- Fixed keyboard not showing up after changing resolution in VNC screen. - Added opening VNC settings in VNC screen. - New VNC settings section. - Added option to force refresh when there is a change in VNC screen.
This commit is contained in:
parent
f732bfb6dd
commit
22002abd70
19 changed files with 298 additions and 54 deletions
|
|
@ -182,6 +182,7 @@ public class Config {
|
|||
public static final String defaultInputMode = VncCanvasActivity.TOUCH_ZOOM_MODE;
|
||||
public static String vmID = "";
|
||||
public static String currentVNCServervmID = "";
|
||||
public static boolean forceRefeshVNCDisplay = false;
|
||||
|
||||
public static void setDefault () {
|
||||
defaultVNCHost = "0.0.0.0";
|
||||
|
|
|
|||
|
|
@ -950,4 +950,16 @@ public class MainSettingsManager extends AppCompatActivity
|
|||
return prefs.getInt("vncScaleMode", 0);
|
||||
}
|
||||
|
||||
public static void setForceRefeshVNCDisplay(Context context, Boolean _boolean) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
SharedPreferences.Editor edit = prefs.edit();
|
||||
edit.putBoolean("forceRefeshVNCDisplay", _boolean);
|
||||
edit.commit();
|
||||
}
|
||||
|
||||
public static Boolean getForceRefeshVNCDisplay(Context context) {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
return prefs.getBoolean("forceRefeshVNCDisplay", false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -764,6 +764,7 @@ public class MainVNCActivity extends VncCanvasActivity {
|
|||
setUIModeMobile(screenMode == VNCScreenMode.FitToScreen);
|
||||
|
||||
binding.lnNosignal.setVisibility(View.GONE);
|
||||
this.vncCanvas.setFocusableInTouchMode(true);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -800,7 +801,11 @@ public class MainVNCActivity extends VncCanvasActivity {
|
|||
// }
|
||||
} else {
|
||||
// Try reconnect.
|
||||
tryReconnect();
|
||||
if (Config.forceRefeshVNCDisplay) {
|
||||
finish();
|
||||
} else {
|
||||
tryReconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,8 +14,7 @@ import static com.vectras.vm.utils.LibraryChecker.isPackageInstalled2;
|
|||
import static com.vectras.vm.utils.UIUtils.UIAlert;
|
||||
|
||||
import com.vectras.vm.settings.UpdaterActivity;
|
||||
import com.vectras.vm.settings.VNCActivity;
|
||||
import com.vectras.vm.utils.DeviceUtils;
|
||||
import com.vectras.vm.settings.ExternalVNCSettingsActivity;
|
||||
import com.vectras.vm.utils.DialogUtils;
|
||||
import com.vectras.vm.utils.NetworkUtils;
|
||||
import com.vectras.vm.utils.NotificationUtils;
|
||||
|
|
@ -35,7 +34,6 @@ import android.os.Environment;
|
|||
import android.os.Handler;
|
||||
import android.os.StrictMode;
|
||||
import android.provider.DocumentsContract;
|
||||
import android.text.Html;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
|
|
@ -845,7 +843,7 @@ public class MainActivity extends AppCompatActivity {
|
|||
activity.getString(R.string.go_to_settings),
|
||||
activity.getString(R.string.close),
|
||||
true, R.drawable.warning_48px, true,
|
||||
() -> activity.startActivity(new Intent(activity, VNCActivity.class)),
|
||||
() -> activity.startActivity(new Intent(activity, ExternalVNCSettingsActivity.class)),
|
||||
null,
|
||||
null);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import com.vectras.qemu.VNCConfig;
|
|||
import com.vectras.qemu.utils.QmpClient;
|
||||
import com.vectras.vm.MainRoms.AdapterMainRoms;
|
||||
import com.vectras.vm.home.HomeActivity;
|
||||
import com.vectras.vm.settings.VNCSettingsActivity;
|
||||
import com.vectras.vm.utils.DialogUtils;
|
||||
import com.vectras.vm.utils.FileUtils;
|
||||
import com.vectras.vm.utils.JSONUtils;
|
||||
|
|
@ -922,6 +923,11 @@ public class VMManager {
|
|||
_dialog.dismiss();
|
||||
});
|
||||
|
||||
_view.findViewById(R.id.ln_settings).setOnClickListener(v -> {
|
||||
_activity.startActivity(new Intent(_activity, VNCSettingsActivity.class));
|
||||
_dialog.dismiss();
|
||||
});
|
||||
|
||||
if (MainSettingsManager.getVNCScaleMode(_activity) == VNCConfig.oneToOne) {
|
||||
_view.findViewById(R.id.iv_screenOneToOne).setBackgroundResource(R.drawable.dialog_shape_single_button);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -300,6 +300,7 @@ public class HomeActivity extends AppCompatActivity implements RomStoreFragment.
|
|||
Log.d(TAG, "onResume");
|
||||
Config.ui = MainSettingsManager.getVmUi(this);
|
||||
Config.defaultVNCPort = Integer.parseInt(MainSettingsManager.getVncExternalDisplay(this));
|
||||
Config.forceRefeshVNCDisplay = MainSettingsManager.getForceRefeshVNCDisplay(this);
|
||||
|
||||
if (!MainSettingsManager.getVncExternal(this))
|
||||
NotificationUtils.clearAll(this);
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import com.vectras.vm.MainService;
|
|||
import com.vectras.vm.R;
|
||||
import com.vectras.vm.VMManager;
|
||||
import com.vectras.vm.logger.VectrasStatus;
|
||||
import com.vectras.vm.settings.VNCActivity;
|
||||
import com.vectras.vm.settings.ExternalVNCSettingsActivity;
|
||||
import com.vectras.vm.utils.DialogUtils;
|
||||
import com.vectras.vm.utils.NetworkUtils;
|
||||
import com.vectras.vm.utils.ServiceUtils;
|
||||
|
|
@ -100,7 +100,7 @@ public class HomeStartVM {
|
|||
activity.getString(R.string.go_to_settings),
|
||||
activity.getString(R.string.close),
|
||||
true, R.drawable.warning_48px, true,
|
||||
() -> activity.startActivity(new Intent(activity, VNCActivity.class)),
|
||||
() -> activity.startActivity(new Intent(activity, ExternalVNCSettingsActivity.class)),
|
||||
null,
|
||||
null);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -11,21 +11,21 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||
|
||||
import com.vectras.qemu.MainSettingsManager;
|
||||
import com.vectras.vm.R;
|
||||
import com.vectras.vm.databinding.ActivityVncactivityBinding;
|
||||
import com.vectras.vm.databinding.ActivityExternalVncSettingsBinding;
|
||||
import com.vectras.vm.utils.ClipboardUltils;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class VNCActivity extends AppCompatActivity {
|
||||
public class ExternalVNCSettingsActivity extends AppCompatActivity {
|
||||
|
||||
ActivityVncactivityBinding binding;
|
||||
ActivityExternalVncSettingsBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EdgeToEdge.enable(this);
|
||||
setContentView(R.layout.activity_vncactivity);
|
||||
binding = ActivityVncactivityBinding.inflate(getLayoutInflater());
|
||||
setContentView(R.layout.activity_external_vnc_settings);
|
||||
binding = ActivityExternalVncSettingsBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
setSupportActionBar(binding.toolbar);
|
||||
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
|
||||
|
|
@ -37,7 +37,7 @@ public class UpdaterActivity extends AppCompatActivity {
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EdgeToEdge.enable(this);
|
||||
setContentView(R.layout.activity_vncactivity);
|
||||
setContentView(R.layout.activity_external_vnc_settings);
|
||||
binding = ActivityUpdaterBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
setSupportActionBar(binding.toolbar);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,42 @@
|
|||
package com.vectras.vm.settings;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
|
||||
import com.vectras.qemu.MainSettingsManager;
|
||||
import com.vectras.vm.R;
|
||||
import com.vectras.vm.databinding.ActivityVncSettingsBinding;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class VNCSettingsActivity extends AppCompatActivity {
|
||||
|
||||
ActivityVncSettingsBinding binding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
EdgeToEdge.enable(this);
|
||||
setContentView(R.layout.activity_external_vnc_settings);
|
||||
binding = ActivityVncSettingsBinding.inflate(getLayoutInflater());
|
||||
setContentView(binding.getRoot());
|
||||
setSupportActionBar(binding.toolbar);
|
||||
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
|
||||
binding.toolbar.setNavigationOnClickListener(view -> onBackPressed());
|
||||
initialize();
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
binding.swForcerefesh.setOnCheckedChangeListener((buttonView, isChecked) -> MainSettingsManager.setForceRefeshVNCDisplay(this, isChecked));
|
||||
binding.lnForcerefesh.setOnClickListener(v -> binding.swForcerefesh.toggle());
|
||||
|
||||
binding.swExternal.setOnCheckedChangeListener((buttonView, isChecked) -> MainSettingsManager.setVncExternal(this, isChecked));
|
||||
binding.lnExternal.setOnClickListener( v -> startActivity(new Intent(this, ExternalVNCSettingsActivity.class)));
|
||||
|
||||
binding.swForcerefesh.setChecked(MainSettingsManager.getForceRefeshVNCDisplay(this));
|
||||
binding.swExternal.setChecked(MainSettingsManager.getVncExternal(this));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue