protected override void OnCreate(Bundle savedInstanceState) { Log.Debug(TAG, "onCreate()"); base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); // Force the controller into a full screen view Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen); RequestWindowFeature(WindowFeatures.NoTitle); var uiOptions = SystemUiFlags.HideNavigation | SystemUiFlags.LayoutHideNavigation | SystemUiFlags.LayoutFullscreen | SystemUiFlags.Fullscreen | SystemUiFlags.LayoutStable | SystemUiFlags.ImmersiveSticky; Window.DecorView.SystemUiVisibility = (StatusBarVisibility)uiOptions; keyboardView = LayoutInflater.Inflate(SwSettings.GetSelectedLayout(), null); keyboardView.SetMinimumHeight(MULTI_DISPLAY_HEIGHT_PX); SetContentView(keyboardView); SwDisplayManager.StartSwDisplayManager(); SetInputListeners((ViewGroup)keyboardView); instance = this; }
private void SetInputListener(View vin, SwSettings.ControlId cid) { var motion = SwSettings.GetControlMotion(cid); var vibrate = SwSettings.GetVibrationEnable(); vin.SetOnTouchListener(new SwButtonListener(vin, motion, vibrate)); }
private void ConfigureVibrationSpinner() { Log.Debug(TAG, "ConfigureVibrationSpinner"); var spinner = FindViewById <Spinner>(Resource.Id.vibrationEnable); spinner.Prompt = "Enable/Disable vibration on button press"; var set_vibration = SwSettings.GetVibrationEnable(); var set_vibration_string = ""; List <string> inputNames = new List <string>(); foreach (var vib_str in SwSettings.VIBRATION_TO_STRING_MAP.Keys) { inputNames.Add(vib_str); if (set_vibration == SwSettings.VIBRATION_TO_STRING_MAP[vib_str]) { set_vibration_string = vib_str; } } var adapter = new ArrayAdapter <string>(this, Resource.Layout.spinner_item, inputNames); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinner.Adapter = adapter; spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(VibrationSpinnerItemSelected); ignore_spinner_count++; int spinner_position = adapter.GetPosition(set_vibration_string); spinner.SetSelection(spinner_position); spinner.Invalidate(); }
private void RefreshAnalogSpinner() { Log.Debug(TAG, "RefreshAnalogSpinner"); var spinner = FindViewById <Spinner>(Resource.Id.analogDirections); var set_direction = SwSettings.GetControlMotion(selected_control).directionCount; Log.Debug(TAG, "Control = " + CONTROL_TO_STRING_MAP[selected_control] + " directions = " + set_direction.ToString()); if (!IsAnalogControl(selected_control)) { spinner.Visibility = ViewStates.Invisible; spinner.Invalidate(); return; } spinner.Visibility = ViewStates.Visible; var set_direction_string = ""; foreach (var key in SwSettings.DIRECTION_TO_STRING_MAP.Keys) { if (SwSettings.DIRECTION_TO_STRING_MAP[key] == set_direction) { set_direction_string = key; } } var adapter = (ArrayAdapter)spinner.Adapter; int spinner_position = adapter.GetPosition(set_direction_string); spinner.SetSelection(spinner_position); spinner.Invalidate(); }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { Log.Debug(TAG, "OnActivityResult " + data.Data.ToString()); base.OnActivityResult(requestCode, resultCode, data); if (!File.Exists(data.Data.ToString())) { Log.Debug(TAG, data.Data.ToString() + " File Not Found!"); } switch (requestCode) { case REQUEST_OPEN_FILE_CALLBACK: SwSettings.SetOpenSoundPath(data.Data); dispatcher.Post(new AudioUpdateMessage(data.Data, AudioUpdateMessage.AudioType.SwingOpen)); { // Make sure we can continue using the file after a reset var takeFlags = ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission; ContentResolver.TakePersistableUriPermission(data.Data, takeFlags); } break; case REQUEST_CLOSE_FILE_CALLBACK: SwSettings.SetCloseSoundPath(data.Data); dispatcher.Post(new AudioUpdateMessage(data.Data, AudioUpdateMessage.AudioType.SwingClose)); { // Make sure we can continue using the file after a reset var takeFlags = ActivityFlags.GrantReadUriPermission | ActivityFlags.GrantWriteUriPermission; ContentResolver.TakePersistableUriPermission(data.Data, takeFlags); } break; default: Log.Debug(TAG, "Ignoring Activity Result"); break; } }
private void ConfigureLayoutSpinner() { Log.Debug(TAG, "ConfigureLayoutSpinner"); var spinner = FindViewById <Spinner>(Resource.Id.controllerLayout); spinner.Prompt = "Select Controller Layout"; var set_layout = SwSettings.GetSelectedLayout(); var set_layout_string = ""; List <string> inputNames = new List <string>(); foreach (var layout_str in SwSettings.LAYOUT_TO_STRING_MAP.Keys) { inputNames.Add(layout_str); if (set_layout == SwSettings.LAYOUT_TO_STRING_MAP[layout_str]) { set_layout_string = layout_str; } } var adapter = new ArrayAdapter <string>(this, Resource.Layout.spinner_item, inputNames); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinner.Adapter = adapter; spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(LayoutSpinnerItemSelected); ignore_spinner_count++; int spinner_position = adapter.GetPosition(set_layout_string); spinner.SetSelection(spinner_position); spinner.Invalidate(); }
private void UpdateLayoutVisibility() { var inputViewA = FindViewById <ViewGroup>(Resource.Id.imeKeyViewA); var inputViewB = FindViewById <ViewGroup>(Resource.Id.imeKeyViewB); var inputViewC = FindViewById <ViewGroup>(Resource.Id.imeKeyViewC); inputViewA.Visibility = ViewStates.Gone; inputViewB.Visibility = ViewStates.Gone; inputViewC.Visibility = ViewStates.Gone; var layout = SwSettings.GetSelectedLayout(); switch (layout) { case (Resource.Layout.input_b): inputViewB.Visibility = ViewStates.Visible; SetInputListeners(inputViewB); selected_layout = inputViewB; break; case (Resource.Layout.input_c): inputViewC.Visibility = ViewStates.Visible; SetInputListeners(inputViewC); selected_layout = inputViewC; break; default: inputViewA.Visibility = ViewStates.Visible; SetInputListeners(inputViewA); selected_layout = inputViewA; break; } RefreshInputHighlighting(); }
private void ProfileSpinnerItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { Log.Debug(TAG, "ProfileSpinnerItemSelected"); // Ignore the initial "Item Selected" calls during UI setup if (ignore_spinner_count != 0) { ignore_spinner_count--; return; } Spinner spinner = (Spinner)sender; var profile_string = string.Format("{0}", spinner.GetItemAtPosition(e.Position)); SwSettings.SetSelectedKeymap(profile_string); RefreshInputHighlighting(); }
private void LayoutSpinnerItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { Log.Debug(TAG, "LayoutSpinnerItemSelected"); // Ignore the initial "Item Selected" calls during UI setup if (ignore_spinner_count != 0) { ignore_spinner_count--; return; } Spinner spinner = (Spinner)sender; var layout_string = string.Format("{0}", spinner.GetItemAtPosition(e.Position)); var layout = SwSettings.LAYOUT_TO_STRING_MAP[layout_string]; SwSettings.SetSelectedLayout(layout); UpdateLayoutVisibility(); }
private void VibrationSpinnerItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { Log.Debug(TAG, "VibrationSpinnerItemSelected"); // Ignore the initial "Item Selected" calls during UI setup if (ignore_spinner_count != 0) { ignore_spinner_count--; return; } Spinner spinner = (Spinner)sender; var vibration_string = string.Format("{0}", spinner.GetItemAtPosition(e.Position)); var enable = SwSettings.VIBRATION_TO_STRING_MAP[vibration_string]; SwSettings.SetVibrationEnable(enable); }
private void SetInputBackground(View vin, ControlId id) { Log.Debug(TAG, "SetInputBackground"); if (id == selected_control) { vin.SetBackgroundColor(Android.Graphics.Color.SkyBlue); } else if (SwSettings.GetControlMotion(id).type == MotionType.Invalid) { vin.SetBackgroundColor(Android.Graphics.Color.Red); } else { vin.SetBackgroundColor(Android.Graphics.Color.Transparent); } }
public SwDisplayManager() { Log.Debug(TAG, "SwDisplayManager"); lg_display_manager = new DisplayManagerHelper(this); instance = this; dispatcher = SwSystem.MessageDispatcher.GetInstance(); dispatcher.Subscribe(SwSystem.MessageType.DisplayUpdate, this); dispatcher.Subscribe(SwSystem.MessageType.ShowIme, this); dispatcher.Subscribe(SwSystem.MessageType.AudioUpdate, this); swivel_state_cb = new LgSwivelStateCallback(); lg_display_manager.RegisterSwivelStateCallback(swivel_state_cb); OPEN_SOUND_PATH = SwSettings.GetOpenSoundPath(); CLOSE_SOUND_PATH = SwSettings.GetCloseSoundPath(); }
private void DirectionSpinnerItemSelected(object sender, AdapterView.ItemSelectedEventArgs e) { Log.Debug(TAG, "DirectionSpinnerItemSelected"); // Ignore the initial "Item Selected" calls during UI setup if (ignore_spinner_count != 0) { ignore_spinner_count--; return; } Spinner spinner = (Spinner)sender; var direction_string = string.Format("{0}", spinner.GetItemAtPosition(e.Position)); var direction = SwSettings.DIRECTION_TO_STRING_MAP[direction_string]; var motion = SwSettings.GetControlMotion(selected_control); motion.directionCount = direction; SwSettings.SetControlMotion(selected_control, motion); }
private void ConfigureProfileSpinner() { Log.Debug(TAG, "ConfigureProfileSpinner"); var spinner = FindViewById <Spinner>(Resource.Id.controllerProfile); spinner.Prompt = "Select Controller Profile"; var set_keymap = SwSettings.GetSelectedKeymap(); var adapter = new ArrayAdapter <string>(this, Resource.Layout.spinner_item, SwSettings.KEYMAP_FILENAMES); adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem); spinner.Adapter = adapter; spinner.ItemSelected += new EventHandler <AdapterView.ItemSelectedEventArgs>(ProfileSpinnerItemSelected); ignore_spinner_count++; int spinner_position = adapter.GetPosition(set_keymap); spinner.SetSelection(spinner_position); spinner.Invalidate(); }
private static extern SwReturnCode Seekware_SetSetting(IntPtr handle, SwSettings id, int value);
private void CommitMotionAndFinish() { SwSettings.SetControlMotion(control, motion); Finish(); }
private bool DisablePromptRequired() { return((SwSettings.GetOpenSoundPath() == "") && (SwSettings.GetCloseSoundPath() == "")); }
private void SetJoystickListener(JoyStickView joystick, SwSettings.ControlId cid) { var motion = SwSettings.GetControlMotion(cid); joystick.SetOnMoveListener(new SwJoystickListener(motion)); }