1

I was wondering how to show multiple shared preferences keys in the Flipper Shared Preferences Viewer Plugin. KEY_FOO, KEY_BAR, KEY_BAZ are string constants for shared preference files.

Something like

class App: Application() {

     override fun onCreate() {
        super.onCreate()
        setupFlipper()
     }
    
     private fun setupFlipper() {
         if (BuildConfig.DEBUG && FlipperUtils.shouldEnableFlipper(this)) {
            val client = AndroidFlipperClient.getInstance(this)
            client.addPlugin(InspectorFlipperPlugin(this, DescriptorMapping.withDefaults()))

         
            client.addPlugin(
                SharedPreferencesFlipperPlugin(applicationContext, KEY_FOO)
            )

            client.addPlugin(
                SharedPreferencesFlipperPlugin(applicationContext, KEY_BAR)
            )

            client.addPlugin(
                SharedPreferencesFlipperPlugin(applicationContext, KEY_BAZ)
            )

            client.start()
         }
     }

}

MaxGDN
  • 1,251
  • 1
  • 7
  • 14

1 Answers1

3

Upon inspection of the constructor for SharedPreferencesFlipperPlugin. A second option exists where it takes a list of SharedPreferencesDescriptor's.

Solution below.

class App: Application() {

     override fun onCreate() {
        super.onCreate()
        setupFlipper()
     }
    
     private fun setupFlipper() {
         if (BuildConfig.DEBUG && FlipperUtils.shouldEnableFlipper(this)) {
            val client = AndroidFlipperClient.getInstance(this)
            client.addPlugin(InspectorFlipperPlugin(this, DescriptorMapping.withDefaults()))

            val keys = mutableListOf(
                KEY_FOO,
                KEY_BAR,
                KEY_BAZ,
            )

            var descriptors: List<SharedPreferencesFlipperPlugin.SharedPreferencesDescriptor> = keys.map {
                SharedPreferencesFlipperPlugin.SharedPreferencesDescriptor(it, MODE_PRIVATE)
            }

            client.addPlugin(
                SharedPreferencesFlipperPlugin(applicationContext, descriptors)
            )

            client.start()
         }
     }

}

MaxGDN
  • 1,251
  • 1
  • 7
  • 14