Android: Clear preferences linked to WiimoteNew.ini when overwriting

Otherwise the preferences can end up in a state that is inconsistent
with WiimoteNew.ini.
This commit is contained in:
JosJuice 2019-11-28 18:35:44 +01:00
parent b793ee6521
commit 7e64bdc85f
2 changed files with 11 additions and 0 deletions

View file

@ -1,5 +1,6 @@
package org.dolphinemu.dolphinemu.activities;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
@ -237,6 +238,14 @@ public final class EmulationActivity extends AppCompatActivity
activity.startActivity(launcher);
}
public static void clearWiimoteNewIniLinkedPreferences(Context context)
{
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.remove("wiiController");
editor.remove("motionControlsEnabled");
editor.apply();
}
@Override
protected void onCreate(Bundle savedInstanceState)
{

View file

@ -15,6 +15,7 @@ import android.preference.PreferenceManager;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import org.dolphinemu.dolphinemu.NativeLibrary;
import org.dolphinemu.dolphinemu.activities.EmulationActivity;
import java.io.File;
import java.io.FileInputStream;
@ -152,6 +153,7 @@ public final class DirectoryInitialization
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
if (prefs.getInt("WiimoteNewVersion", 0) != WiimoteNewVersion)
{
EmulationActivity.clearWiimoteNewIniLinkedPreferences(context);
copyAsset("WiimoteNew.ini", new File(configDirectory, "WiimoteNew.ini"), true, context);
SharedPreferences.Editor sPrefsEditor = prefs.edit();
sPrefsEditor.putInt("WiimoteNewVersion", WiimoteNewVersion);