content: package allen.town.podcast.pref;
  
  import android.content.Context;
  import android.content.SharedPreferences;
  
  import androidx.preference.PreferenceManager;
  
  import allen.town.podcast.BuildConfig;
  import allen.town.podcast.core.util.download.AutoUpdateManager;
  
  /**
   * 检查更新
   */
  public class PreferenceUpgrader {
      private static final String PREF_CONFIGURED_VERSION = "version_code";
      private static final String PREF_NAME = "app_version";
  
      private static SharedPreferences prefs;
  
      public static void checkUpgrades(Context context) {
          prefs = PreferenceManager.getDefaultSharedPreferences(context);
          SharedPreferences upgraderPrefs = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
          int oldVersion = upgraderPrefs.getInt(PREF_CONFIGURED_VERSION, -1);
          int newVersion = BuildConfig.VERSION_CODE;
  
          if (oldVersion != newVersion) {
              AutoUpdateManager.restartUpdateAlarm(context);
  
              upgrade(oldVersion, context);
              upgraderPrefs.edit().putInt(PREF_CONFIGURED_VERSION, newVersion).apply();
          }
      }
  
      /**
       * 对旧版做一些升级配置项处理
       * @param oldVersion
       * @param context
       */
      private static void upgrade(int oldVersion, Context context) {
          if (oldVersion == -1) {
              //New installation
              return;
          }
  /*        if (oldVersion < 1070196) {
              // migrate episode cleanup value (unit changed from days to hours)
              int oldValueInDays = UserPreferences.getEpisodeCleanupValue();
              if (oldValueInDays > 0) {
                  UserPreferences.setEpisodeCleanupValue(oldValueInDays * 24);
              } // else 0 or special negative values, no change needed
          }
          if (oldVersion < 1070197) {
              if (prefs.getBoolean("prefMobileUpdate", false)) {
                  prefs.edit().putString("prefMobileUpdateAllowed", "everything").apply();
              }
          }
          if (oldVersion < 1070300) {
              prefs.edit().putString(UserPreferences.PREF_MEDIA_PLAYER,
                      UserPreferences.PREF_MEDIA_PLAYER_EXOPLAYER).apply();
  
              if (prefs.getBoolean("prefEnableAutoDownloadOnMobile", false)) {
                  UserPreferences.setAllowMobileAutoDownload(true);
              }
              switch (prefs.getString("prefMobileUpdateAllowed", "images")) {
                  case "everything":
                      UserPreferences.setAllowMobileFeedRefresh(true);
                      UserPreferences.setAllowMobileEpisodeDownload(true);
                      UserPreferences.setAllowMobileImages(true);
                      break;
                  case "images":
                      UserPreferences.setAllowMobileImages(true);
                      break;
                  case "nothing":
                      UserPreferences.setAllowMobileImages(false);
                      break;
              }
          }
          if (oldVersion < 2010300) {
              // Migrate hardware button preferences
              if (prefs.getBoolean("pref_hardware_previous_buttonRestarts", false)) {
                  prefs.edit().putString(UserPreferences.PREF_HARDWARE_PREVIOUS_BUTTON,
                          String.valueOf(KeyEvent.KEYCODE_MEDIA_PREVIOUS)).apply();
              }
          }
          if (oldVersion < 2050000) {
              prefs.edit().putBoolean(UserPreferences.PREF_PAUSE_PLAYBACK_FOR_FOCUS_LOSS, true).apply();
          }*/
      }
  }
  