diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..d0dbeb7 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,7 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in /home/wlama/bin/android-studio/plugins/android/resources/proguard-android-optimize.txt + +-keep class com.abcomm.MainViewModel { *; } +-keep class com.abcomm.BluetoothService { *; } +-keep interface com.abcomm.CommunicationProvider { *; } diff --git a/app/src/main/java/com/abcomm/MainActivity.kt b/app/src/main/java/com/abcomm/MainActivity.kt index 467e49d..2113521 100644 --- a/app/src/main/java/com/abcomm/MainActivity.kt +++ b/app/src/main/java/com/abcomm/MainActivity.kt @@ -37,7 +37,11 @@ class MainActivity : AppCompatActivity() { private val viewModel: MainViewModel by viewModels { object : ViewModelProvider.Factory { override fun create(modelClass: Class): T { - return MainViewModel(BluetoothService()) as T + if (modelClass.isAssignableFrom(MainViewModel::class.java)) { + @Suppress("UNCHECKED_CAST") + return MainViewModel(BluetoothService()) as T + } + throw IllegalArgumentException("Unknown ViewModel class") } } }