Fix app for build 7 update; added UI support for adjusting grid size

- Build 7 update broke the controllers because I did not include the "android.hardware.vr.headtracking" uses-feature in the manifest. Because of this, the headset was incorrectly registered as an Oculus Go. Looks like they started to enforce this setting in the latest update.
- Added support for adjusting the grid size in the settings panel.
This commit is contained in:
tverona1
2019-07-24 22:22:49 -07:00
parent 06298e39a9
commit 2b6ebb6e73
8 changed files with 1330 additions and 1287 deletions
+1 -6
View File
@@ -8,12 +8,7 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!--<intent-filter>
<data android:scheme="questapplauncher" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>-->
</activity>
</application>
<uses-feature android:name="android.hardware.vr.headtracking" android:required="true" android:version="1" />
</manifest>
+1 -1
View File
@@ -292,7 +292,7 @@ BoxCollider:
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 834, y: 547, z: 1}
m_Size: {x: 834, y: 547, z: 0.05}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &-3040706184271075254
MonoBehaviour:
+1 -1
View File
@@ -12,6 +12,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 20553fac56ec59645857c0732b787431, type: 3}
m_Name: OVRBuildConfig
m_EditorClassIdentifier:
androidSDKPath:
androidSDKPath: C:\Users\tvero\AppData\Local\Android\Sdk
gradlePath:
jdkPath:
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -22,7 +22,7 @@ namespace QuestAppLauncher
public int cols = 3;
}
public GridSize gridSize;
public GridSize gridSize = new GridSize();
}
/// <summary>
@@ -54,6 +54,10 @@ namespace QuestAppLauncher
Debug.Log(string.Format("Failed to read config: {0}", e.Message));
}
}
else
{
Debug.Log("Did not find config file: " + configFilePath);
}
}
/// <summary>
+29 -25
View File
@@ -25,8 +25,8 @@ namespace QuestAppLauncher
// Extension search for icon overrides
const string IconOverrideExtSearch = "*.jpg";
// Canvas game object
public GameObject canvas;
// Grid container game object
public GameObject gridContainer;
// Scroll view game object
public GameObject scrollView;
@@ -37,9 +37,6 @@ namespace QuestAppLauncher
// App info GameObject (a cell in the grid content)
public GameObject prefab;
// Configuration
private Config config = new Config();
#region MonoBehaviour handler
void Start()
@@ -50,7 +47,7 @@ namespace QuestAppLauncher
// Initialize the core platform
Core.AsyncInitialize();
// Load configuration
// Process configuration
StartCoroutine(ProcessConfig());
// Populate the grid
@@ -135,21 +132,21 @@ namespace QuestAppLauncher
/// <returns></returns>
IEnumerator ProcessConfig()
{
// Load config
ConfigPersistence.LoadConfig(this.config);
ProcessGridSize();
// Load configuration
Config config = new Config();
ConfigPersistence.LoadConfig(config);
SetGridSize(config.gridSize.rows, config.gridSize.cols);
yield return null;
}
private void ProcessGridSize()
public void SetGridSize(int rows, int cols)
{
// Make sure grid size have sane value
this.config.gridSize.cols = Math.Min(this.config.gridSize.cols, 10);
this.config.gridSize.cols = Math.Max(this.config.gridSize.cols, 1);
this.config.gridSize.rows = Math.Min(this.config.gridSize.rows, 50);
this.config.gridSize.rows = Math.Max(this.config.gridSize.rows, 1);
cols = Math.Min(cols, 10);
cols = Math.Max(cols, 1);
rows = Math.Min(rows, 10);
rows = Math.Max(rows, 1);
// Get cell size, spacing & padding from the grid layout
var gridLayoutGroup = this.gridContent.GetComponent<GridLayoutGroup>();
@@ -161,17 +158,24 @@ namespace QuestAppLauncher
var spaceY = gridLayoutGroup.spacing.y;
// Width = horizontal padding + # cols * cell width + (# cols - 1) * horizontal spacing
var width = paddingX + this.config.gridSize.cols * cellWidth + (this.config.gridSize.cols - 1) * spaceX;
var width = paddingX + cols * cellWidth + (cols - 1) * spaceX;
// Height = vertical padding + # rows * cell height + (# rows - 1) * veritcal spacing + a bit more to show there are more elements
var height = paddingY + this.config.gridSize.rows * cellHeight + (this.config.gridSize.rows - 1) * spaceY + 120;
var height = paddingY + rows * cellHeight + (rows - 1) * spaceY + 120;
Debug.Log(string.Format("Setting grid size to {0} x {1} cells", this.config.gridSize.cols, this.config.gridSize.rows));
Debug.Log(string.Format("Setting grid size to {0} x {1} cells", cols, rows));
Debug.Log(string.Format("Grid size calculated width x height: {0} x {1}", width, height));
// Adjust canvas rect transform
var canvasRectTransform = this.canvas.GetComponent<RectTransform>();
canvasRectTransform.sizeDelta = new Vector2(width, height);
// Adjust grid container rect transform
var gridTransform = this.gridContainer.GetComponent<RectTransform>();
gridTransform.sizeDelta = new Vector2(width, height);
// Adjust grid container Y position to maintain constant height.
// TODO: Figure out a way to adjust UI to avoid this calculation in code
var gridPosition = new Vector3(gridTransform.anchoredPosition3D.x,
(float)((gridTransform.rect.height - 2000) / 2.0),
gridTransform.anchoredPosition3D.z);
gridTransform.anchoredPosition3D = gridPosition;
// Adjust scroll view rect transform
var scrollViewRectTransform = this.scrollView.GetComponent<RectTransform>();
@@ -205,7 +209,7 @@ namespace QuestAppLauncher
// Add current package name to excludedPackageNames to filter it out
excludedPackageNames.Add(currentActivity.Call<string>("getPackageName"));
//This is a file containing packageNames that will be excluded
// This is a file containing packageNames that will be excluded
var excludedPackageNamesFilePath = Path.Combine(persistentDataPath, ExcludedPackagesFile);
if (File.Exists(excludedPackageNamesFilePath))
{
@@ -233,13 +237,11 @@ namespace QuestAppLauncher
continue;
}
packageNameToAppName.Add(packageName, (i, appName));
Debug.Log("[" + i + "] package: " + packageName + ", name: " + appName);
yield return null;
}
yield return null;
// Override app names, if any
// This is just a file with comma-separated packageName,appName pairs
var appNameOverrideFilePath = Path.Combine(persistentDataPath, AppNameOverrideFile);
@@ -277,6 +279,8 @@ namespace QuestAppLauncher
Debug.Log("Found file: " + iconFileName);
iconOverrides[entry] = Path.Combine(iconOverridePath, iconFileName);
}
yield return null;
}
}
+74 -15
View File
@@ -1,38 +1,60 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using TMPro;
namespace QuestAppLauncher
{
public class SettingsHandler : MonoBehaviour
{
public GameObject scrollView;
public GameObject gridContainer;
public GameObject openSettingsButton;
public GameObject closeSettingsButton;
public GameObject settingsView;
public GameObject settingsContainer;
public GameObject gridCols;
public GameObject gridColsText;
public GameObject gridRows;
public GameObject gridRowsText;
public GameObject gridPopulation;
private Config config = new Config();
public void OpenSettings()
{
Debug.Log("Open Settings");
scrollView.SetActive(false);
openSettingsButton.SetActive(false);
closeSettingsButton.SetActive(true);
settingsView.SetActive(true);
this.gridContainer.SetActive(false);
this.openSettingsButton.SetActive(false);
this.closeSettingsButton.SetActive(true);
this.settingsContainer.SetActive(true);
// Load config
ConfigPersistence.LoadConfig(this.config);
// Set current cols & rows
var colsSlider = this.gridCols.GetComponent<Slider>();
colsSlider.value = this.config.gridSize.cols;
var colsText = this.gridColsText.GetComponent<TextMeshProUGUI>();
colsText.text = string.Format("{0} Cols", this.config.gridSize.cols);
var rowsSlider = this.gridRows.GetComponent<Slider>();
rowsSlider.value = this.config.gridSize.rows;
var rowsText = this.gridRowsText.GetComponent<TextMeshProUGUI>();
rowsText.text = string.Format("{0} Rows", this.config.gridSize.rows);
}
public void CloseSettings()
{
Debug.Log("Close Settings");
scrollView.SetActive(true);
openSettingsButton.SetActive(true);
closeSettingsButton.SetActive(false);
settingsView.SetActive(false);
}
// Resize grid if necessary
ResizeGrid();
public void ResizeGrid(int selection)
{
Debug.Log("Resize grid: " + selection);
Debug.Log("Close Settings");
this.gridContainer.SetActive(true);
this.openSettingsButton.SetActive(true);
this.closeSettingsButton.SetActive(false);
this.settingsContainer.SetActive(false);
}
public void DeleteExcludedApksFile()
@@ -40,5 +62,42 @@ namespace QuestAppLauncher
Debug.Log("Delete Excluded Apk List");
QuestAppLauncher.GridPopulation.DeleteExcludedApksFile();
}
public void UpdateGridColText()
{
var cols = gridCols.GetComponent<Slider>().value;
var colsText = this.gridColsText.GetComponent<TextMeshProUGUI>();
colsText.text = string.Format("{0} Cols", cols);
}
public void UpdateGridRowText()
{
var rows = gridRows.GetComponent<Slider>().value;
var rowsText = this.gridRowsText.GetComponent<TextMeshProUGUI>();
rowsText.text = string.Format("{0} Rows", rows);
}
private void ResizeGrid()
{
var cols = (int)gridCols.GetComponent<Slider>().value;
var rows = (int)gridRows.GetComponent<Slider>().value;
if (cols == this.config.gridSize.cols &&
rows == this.config.gridSize.rows)
{
// Nothing was resized, so no work to do
return;
}
Debug.Log(string.Format("Resizing grid: {0} x {1}", cols, rows));
// Update configuration
this.config.gridSize.cols = cols;
this.config.gridSize.rows = rows;
ConfigPersistence.SaveConfig(this.config);
// Update grid size
this.gridPopulation.GetComponent<GridPopulation>().SetGridSize(this.config.gridSize.rows, this.config.gridSize.cols);
}
}
}
-51
View File
@@ -5,58 +5,7 @@ EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes:
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/OVROverlay.unity
guid: d31b44aac77e1684d861792b23d46a8b
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/StartScene.unity
guid: 071fba5195bd4b04eab8668985aa1683
- enabled: 0
path: Assets/Oculus/Avatar/Samples/Controllers/Controllers.unity
guid: 2a83dd010542d2744bf59af99b4bc47c
- enabled: 0
path: Assets/OVRInputSelection/Scenes/main.unity
guid: aaffd3596304a76439cf35f76e149abc
- enabled: 0
path: Assets/OVRInputSelection/Scenes/selection_all.unity
guid: 96e237f36213c0f45aa364963e1977cf
- enabled: 0
path: Assets/OVRInputSelection/Scenes/selection_physics.unity
guid: e46f6a64d9f346d4aa57395c1f033060
- enabled: 0
path: Assets/OVRInputSelection/Scenes/selection_raw.unity
guid: d2f845eed230326489e720a9e91e4a8b
- enabled: 0
path: Assets/OVRInputSelection/Scenes/selection_ui.unity
guid: 7adfd19eba27b40748b2a0f7ae856c08
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/MixedRealityCapture.unity
guid: 24872d3c3760f23498f41ecb019ea5cd
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/AvatarGrab.unity
guid: 941c413af7c367d40aab0725f5a59530
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/CustomControllers.unity
guid: e0f49aa4174f98941b88699b5fecddc0
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/CustomHands.unity
guid: a4f984fcee593d2418cc61f4a993d46d
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/DebugUI.unity
guid: 34004346bd7dcbf4fbfd78d2f12e4451
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/DistanceGrab.unity
guid: 24f58b3f0ca02d44eaec7f50bca538f2
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/GuardianBoundarySystem.unity
guid: 486e0749a87daee48a6d3cf7470e5f52
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/Locomotion.unity
guid: 024cd9dcd49bd8f46a6bea03aa8a21bb
- enabled: 1
path: Assets/Scenes/QuestAppLauncher.unity
guid: dca0720aceedefc46b483f0277b30d6a
- enabled: 0
path: Assets/Oculus/SampleFramework/Usage/Stereo180Video.unity
guid: 11cf8fa7bf3deb04db11bd170c0b4338
m_configObjects: {}