public override void ViewDidLoad() { base.ViewDidLoad(); ArExperienceGroup restoredArExperienceGroup = ArExperienceManager.OpenFromFile(persitentArExperienceGroupFilePath); if (restoredArExperienceGroup != null) { arExperienceGroup = restoredArExperienceGroup; } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.Activity_url_launcher_storage); var toolbar = FindViewById(Resource.Id.toolbar) as Android.Support.V7.Widget.Toolbar; toolbar.SetTitle(Resource.String.url_launcher_title); SetSupportActionBar(toolbar); var addUrlFab = FindViewById(Resource.Id.url_add_experience_fab); addUrlFab.Click += (sender, e) => { var intent = new Intent(this, typeof(UrlLauncherSettingsActivity)); intent.PutExtra(UrlLauncherExperienceGroup, ArExperienceGroup.Serialize(experienceGroup)); StartActivity(intent); }; }
protected override void OnResume() { base.OnResume(); startingAr = false; if (Intent.HasExtra(UrlLauncherExperienceGroup)) { experienceGroup = ArExperienceGroup.Deserialize(Intent.GetByteArrayExtra(UrlLauncherExperienceGroup)); } else { try { using (var stream = OpenFileInput(StorageFile)) { var formatter = new BinaryFormatter(); experienceGroup = formatter.Deserialize(stream) as ArExperienceGroup; } } catch (Java.IO.FileNotFoundException) { } } var listView = FindViewById(Resource.Id.url_list_storage_view) as ListView; listView.ItemClick += (sender, e) => { if (!startingAr) { startingAr = true; lastExperience = experienceGroup.ArExperiences[e.Position]; string[] permissions = (lastExperience.FeaturesMask & Features.Geo) == Features.Geo ? new string[] { Manifest.Permission.Camera, Manifest.Permission.AccessFineLocation } : new string[] { Manifest.Permission.Camera }; ArchitectView.PermissionManager.CheckPermissions(this, permissions, PermissionManager.WikitudePermissionRequest, this); } }; adapter = new UrlLauncherStorageListAdapter(this, experienceGroup); listView.Adapter = adapter; }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.Url_launcher_row_settings); var preferences = GetSharedPreferences(AutocompletePrefs, 0); history = preferences.GetStringSet(AutocompletePrefsHistory, new List <string>()); UpdateAutocompleteSource(); urlView = FindViewById(Resource.Id.url_launcher_url_text) as AutoCompleteTextView; nameView = FindViewById(Resource.Id.url_launcher_name_edit_text) as EditText; geoSwitch = FindViewById(Resource.Id.url_launcher_geo_switch) as Switch; imageSwitch = FindViewById(Resource.Id.url_launcher_image_switch) as Switch; instantSwitch = FindViewById(Resource.Id.url_launcher_instant_switch) as Switch; objectSwitch = FindViewById(Resource.Id.url_launcher_object_switch) as Switch; camera2Switch = FindViewById(Resource.Id.url_launcher_camera2_switch) as Switch; focusSpinner = FindViewById(Resource.Id.url_launcher_focus_spinner) as Spinner; positionSpinner = FindViewById(Resource.Id.url_launcher_position_spinner) as Spinner; resolutionSpinner = FindViewById(Resource.Id.url_launcher_resolution_spinner) as Spinner; editPosition = Intent.GetIntExtra(UrlLauncherStorageActivity.UrlLauncherEditExperienceId, -1); experienceGroup = ArExperienceGroup.Deserialize(Intent.GetByteArrayExtra(UrlLauncherStorageActivity.UrlLauncherExperienceGroup)); if (editPosition >= 0) { var experience = experienceGroup.ArExperiences[editPosition]; urlView.Text = experience.Path; nameView.Text = experience.Name; var features = experience.FeaturesMask; geoSwitch.Checked = (features & Features.Geo) == Features.Geo; imageSwitch.Checked = (features & Features.ImageTracking) == Features.ImageTracking; instantSwitch.Checked = (features & Features.InstantTracking) == Features.InstantTracking; objectSwitch.Checked = (features & Features.ObjectTracking) == Features.ObjectTracking; int position; switch (experience.CameraPosition) { case CameraPosition.Back: position = 0; break; case CameraPosition.Front: position = 1; break; default: position = 0; break; } positionSpinner.SetSelection(position); int resolution; switch (experience.CameraResolution) { case CameraResolution.HD_1280x720: resolution = 1; break; case CameraResolution.Full_HD_1920x1080: resolution = 2; break; case CameraResolution.Auto: resolution = 3; break; default: resolution = 0; break; } resolutionSpinner.SetSelection(resolution); int focusMode; switch (experience.CameraFocusMode) { case CameraFocusMode.AutofocusOnce: focusMode = 1; break; case CameraFocusMode.AutofocusOff: focusMode = 2; break; default: focusMode = 0; break; } focusSpinner.SetSelection(focusMode); camera2Switch.Checked = experience.Camera2Enabled; } urlView.EditorAction += (sender, args) => { if (args.ActionId == ImeAction.Send) { StoreSettings(); args.Handled = true; } }; var ok = FindViewById(Resource.Id.url_launcher_ok_button) as Button; ok.Click += (sender, args) => { StoreSettings(); }; }
private void StoreSettings() { history.Add(urlView.Text); UpdateAutocompleteSource(); var preferences = GetSharedPreferences(AutocompletePrefs, 0); var editor = preferences.Edit().PutStringSet(AutocompletePrefsHistory, history); editor.Apply(); Features features = 0; if (geoSwitch.Checked) { features |= Features.Geo; } if (imageSwitch.Checked) { features |= Features.ImageTracking; } if (instantSwitch.Checked) { features |= Features.InstantTracking; } if (objectSwitch.Checked) { features |= Features.ObjectTracking; } CameraPosition cameraPosition; var position = positionSpinner.SelectedItemId; switch (position) { case 1: cameraPosition = CameraPosition.Front; break; default: cameraPosition = CameraPosition.Back; break; } CameraResolution cameraResolution; var resolution = resolutionSpinner.SelectedItemId; switch (resolution) { case 1: cameraResolution = CameraResolution.HD_1280x720; break; case 2: cameraResolution = CameraResolution.Full_HD_1920x1080; break; case 3: cameraResolution = CameraResolution.Auto; break; default: cameraResolution = CameraResolution.SD_640x480; break; } CameraFocusMode cameraFocusMode; switch (focusSpinner.SelectedItemId) { case 1: cameraFocusMode = CameraFocusMode.AutofocusOnce; break; case 2: cameraFocusMode = CameraFocusMode.AutofocusOff; break; default: cameraFocusMode = CameraFocusMode.AutofocusContinuous; break; } var experience = new ArExperience(nameView.Text, urlView.Text, features, cameraPosition, cameraResolution, cameraFocusMode, camera2Enabled: camera2Switch.Checked); if (editPosition >= 0) { experienceGroup.ArExperiences[editPosition] = experience; } else { experienceGroup.ArExperiences.Add(experience); } var intent = new Intent(this, typeof(UrlLauncherStorageActivity)); intent.PutExtra(UrlLauncherStorageActivity.UrlLauncherExperienceGroup, ArExperienceGroup.Serialize(experienceGroup)); intent.AddFlags(ActivityFlags.ReorderToFront); StartActivity(intent); }
public override View GetView(int position, View convertView, ViewGroup parent) { if (convertView == null) { var inflater = context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater; convertView = inflater.Inflate(Resource.Layout.Url_launcher_list_row, null); } var experience = experienceGroup.ArExperiences[position]; var name = convertView.FindViewById(Resource.Id.url_list_row_name) as TextView; name.Text = experience.Name; var editView = convertView.FindViewById(Resource.Id.url_list_row_edit); editView.Click += (sender, e) => { var intent = new Intent(context, typeof(UrlLauncherSettingsActivity)); intent.PutExtra(UrlLauncherStorageActivity.UrlLauncherExperienceGroup, ArExperienceGroup.Serialize(experienceGroup)); intent.PutExtra(UrlLauncherStorageActivity.UrlLauncherEditExperienceId, position); context.StartActivity(intent); }; var deleteView = convertView.FindViewById(Resource.Id.url_list_row_delete); deleteView.Click += (sender, e) => { experienceGroup.ArExperiences.RemoveAt(position); NotifyDataSetChanged(); }; return(convertView); }
public UrlLauncherStorageListAdapter(Context context, ArExperienceGroup experienceGroup) { this.context = context; this.experienceGroup = experienceGroup; }