mirror of
https://github.com/amwatson/CitraVR.git
synced 2024-09-20 03:11:40 +02:00
moved VrReleaseVersion stuff into its own class and created utils directory for VrUtils
This commit is contained in:
parent
55078ad93a
commit
792992fcfc
9 changed files with 73 additions and 62 deletions
|
@ -12,10 +12,9 @@ import android.content.Context
|
|||
import androidx.preference.PreferenceManager
|
||||
import org.citra.citra_emu.utils.DirectoryInitialization
|
||||
import org.citra.citra_emu.utils.DocumentsTree
|
||||
import org.citra.citra_emu.utils.GpuDriverHelper
|
||||
import org.citra.citra_emu.utils.Log
|
||||
import org.citra.citra_emu.utils.PermissionsHandler
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
|
||||
class CitraApplication : Application() {
|
||||
private fun createNotificationChannel() {
|
||||
|
|
|
@ -44,7 +44,7 @@ import org.citra.citra_emu.utils.EmulationMenuSettings
|
|||
import org.citra.citra_emu.utils.Log
|
||||
import org.citra.citra_emu.utils.ThemeUtil
|
||||
import org.citra.citra_emu.viewmodel.EmulationViewModel
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
|
||||
open class EmulationActivity : AppCompatActivity() {
|
||||
private val preferences: SharedPreferences
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
|
||||
package org.citra.citra_emu.features.settings.model
|
||||
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.VRUtils.hMDType
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils.hMDType
|
||||
|
||||
|
||||
enum class IntSetting(
|
||||
|
|
|
@ -60,9 +60,8 @@ import org.citra.citra_emu.features.settings.ui.viewholder.SubmenuViewHolder
|
|||
import org.citra.citra_emu.features.settings.ui.viewholder.SwitchSettingViewHolder
|
||||
import org.citra.citra_emu.fragments.MessageDialogFragment
|
||||
import org.citra.citra_emu.fragments.MotionBottomSheetDialogFragment
|
||||
import org.citra.citra_emu.utils.Log
|
||||
import org.citra.citra_emu.utils.SystemSaveGame
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
import java.lang.IllegalStateException
|
||||
import java.lang.NumberFormatException
|
||||
import java.text.SimpleDateFormat
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
package org.citra.citra_emu.features.settings.ui.viewholder
|
||||
|
||||
import android.view.View
|
||||
import org.citra.citra_emu.R
|
||||
import org.citra.citra_emu.databinding.ListItemSettingBinding
|
||||
import org.citra.citra_emu.features.settings.model.AbstractFloatSetting
|
||||
import org.citra.citra_emu.features.settings.model.AbstractIntSetting
|
||||
|
@ -15,7 +14,7 @@ import org.citra.citra_emu.features.settings.model.ScaledFloatSetting
|
|||
import org.citra.citra_emu.features.settings.model.view.SettingsItem
|
||||
import org.citra.citra_emu.features.settings.model.view.SliderSetting
|
||||
import org.citra.citra_emu.features.settings.ui.SettingsAdapter
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
|
||||
class SliderViewHolder(val binding: ListItemSettingBinding, adapter: SettingsAdapter) :
|
||||
SettingViewHolder(binding.root, adapter) {
|
||||
|
|
|
@ -55,8 +55,9 @@ import org.citra.citra_emu.utils.PermissionsHandler
|
|||
import org.citra.citra_emu.utils.ThemeUtil
|
||||
import org.citra.citra_emu.viewmodel.GamesViewModel
|
||||
import org.citra.citra_emu.viewmodel.HomeViewModel
|
||||
import org.citra.citra_emu.vr.VRUtils
|
||||
import org.citra.citra_emu.vr.utils.VRUtils
|
||||
import org.citra.citra_emu.vr.VrActivity
|
||||
import org.citra.citra_emu.vr.utils.VrReleaseVersion
|
||||
|
||||
class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
|
@ -82,18 +83,6 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
|
|||
ThemeUtil.setTheme(this)
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(applicationContext)
|
||||
val releaseVersionPrev : String = preferences.getString(VRUtils.PREF_RELEASE_VERSION_NAME_LAUNCH_PREV, "")!!
|
||||
val releaseVersionCur : String = preferences.getString(VRUtils.PREF_RELEASE_VERSION_NAME_LAUNCH_CURRENT, "")!!
|
||||
// This means this is a first-time install, an app reinstall wiped app data, or the last app version was below
|
||||
// V0.4.0. In all these cases, we want to wipe the previous config Because the earlier versions may have introduced input issues.
|
||||
if (VRUtils.isReleaseVersion(releaseVersionCur) && VRUtils.hasLowerVersionThan(releaseVersionPrev, VRUtils.createVersionString(0, 4, 0))) {
|
||||
Log.info("New install from prev version \"${releaseVersionPrev}\" needs update. Wiping config.ini")
|
||||
SettingsFile.getSettingsFile(SettingsFile.FILE_NAME_CONFIG)?.delete()
|
||||
}
|
||||
// If this is the first time installing CitraVR s
|
||||
SettingsFile.getSettingsFile(SettingsFile.FILE_NAME_CONFIG)?.delete()
|
||||
|
||||
binding = ActivityMainBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package org.citra.citra_emu.vr
|
||||
package org.citra.citra_emu.vr.utils
|
||||
|
||||
import android.view.KeyEvent
|
||||
import org.citra.citra_emu.NativeLibrary
|
||||
|
@ -70,41 +70,4 @@ object VRUtils {
|
|||
|
||||
const val PREF_RELEASE_VERSION_NAME_LAUNCH_CURRENT = "VR_ReleaseVersionName_LaunchCurrent"
|
||||
const val PREF_RELEASE_VERSION_NAME_LAUNCH_PREV = "VR_ReleaseVersionName_LaunchPrev"
|
||||
|
||||
// release versions are in the form "v\d+\.\d+\.\d+". All other values are build versions
|
||||
fun isReleaseVersion(version: String): Boolean {
|
||||
return version.startsWith("v")
|
||||
}
|
||||
fun getVersionMajor(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[0].removePrefix("v").toInt() else -1
|
||||
}
|
||||
fun getVersionMinor(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[1].toInt() else -1
|
||||
}
|
||||
fun getVersionPatch(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[2].toInt() else -1
|
||||
}
|
||||
|
||||
fun hasLowerVersionThan(versionOrig: String, versionComp: String): Boolean {
|
||||
val majorOrig = getVersionMajor(versionOrig)
|
||||
val majorComp = getVersionMajor(versionComp)
|
||||
if (majorOrig < majorComp) return true
|
||||
if (majorOrig > majorComp) return false
|
||||
|
||||
val minorOrig = getVersionMinor(versionOrig)
|
||||
val minorComp = getVersionMinor(versionComp)
|
||||
if (minorOrig < minorComp) return true
|
||||
if (minorOrig > minorComp) return false
|
||||
|
||||
val patchOrig = getVersionPatch(versionOrig)
|
||||
val patchComp = getVersionPatch(versionComp)
|
||||
if (patchOrig < patchComp) return true
|
||||
if (patchOrig > patchComp) return false
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
fun createVersionString(major: Int, minor: Int, patch: Int): String {
|
||||
return "v$major.$minor.$patch"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
package org.citra.citra_emu.vr.utils
|
||||
|
||||
/** Represents a release version of Citra VR.
|
||||
* These version codes started being used in v0.4.0.
|
||||
**/
|
||||
open class VrReleaseVersion(version: String) {
|
||||
private var isRealVersion: Boolean
|
||||
private var major: Int
|
||||
private var minor: Int
|
||||
private var patch: Int
|
||||
init {
|
||||
isRealVersion = isReleaseVersion(version)
|
||||
major = getVersionMajor(version)
|
||||
minor = getVersionMinor(version)
|
||||
patch = getVersionPatch(version)
|
||||
}
|
||||
|
||||
fun isRealVersion() : Boolean { return isRealVersion }
|
||||
fun getMajor() : Int { return major }
|
||||
fun getMinor() : Int { return minor }
|
||||
fun getPatch() : Int { return patch }
|
||||
fun hasLowerVersionThan(versionComp: VrReleaseVersion): Boolean {
|
||||
val majorOrig = major
|
||||
val majorComp = versionComp.major
|
||||
if (majorOrig < majorComp) return true
|
||||
if (majorOrig > majorComp) return false
|
||||
|
||||
val minorOrig = minor
|
||||
val minorComp = versionComp.minor
|
||||
if (minorOrig < minorComp) return true
|
||||
if (minorOrig > minorComp) return false
|
||||
|
||||
val patchOrig = patch
|
||||
val patchComp = versionComp.patch
|
||||
if (patchOrig < patchComp) return true
|
||||
if (patchOrig > patchComp) return false
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
// Release versions are in the form "v\d+\.\d+\.\d+".
|
||||
companion object {
|
||||
val RELEASE_VERSION_0_4_0 = VrReleaseVersion("v0.4.0")
|
||||
private fun isReleaseVersion(version: String): Boolean {
|
||||
return version.startsWith("v")
|
||||
}
|
||||
|
||||
private fun getVersionMajor(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[0].removePrefix("v")
|
||||
.toInt() else -1
|
||||
}
|
||||
|
||||
private fun getVersionMinor(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[1].toInt() else -1
|
||||
}
|
||||
|
||||
private fun getVersionPatch(version: String): Int {
|
||||
return if (isReleaseVersion(version)) version.split(".")[2].toInt() else -1
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -895,12 +895,12 @@ extern "C" JNIEXPORT void JNICALL Java_org_citra_citra_1emu_vr_ErrorMessageLayer
|
|||
gShouldShowErrorMessage = should_show_error;
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_vr_VRUtils_getHMDType(JNIEnv* env,
|
||||
extern "C" JNIEXPORT jint JNICALL Java_org_citra_citra_1emu_vr_utils_VRUtils_getHMDType(JNIEnv* env,
|
||||
jclass clazz) {
|
||||
return static_cast<jint>(VRSettings::HmdTypeFromStr(VRSettings::GetHMDTypeStr()));
|
||||
}
|
||||
extern "C" JNIEXPORT jint JNICALL
|
||||
Java_org_citra_citra_1emu_vr_VRUtils_getDefaultResolutionFactor(JNIEnv* env, jclass clazz) {
|
||||
Java_org_citra_citra_1emu_vr_utils_VRUtils_getDefaultResolutionFactor(JNIEnv* env, jclass clazz) {
|
||||
const VRSettings::HMDType hmdType = VRSettings::HmdTypeFromStr(VRSettings::GetHMDTypeStr());
|
||||
return GetDefaultGameResolutionFactorForHmd(hmdType);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue