Flic Home

    Community

    • Login
    • Search
    • Popular
    • Users

    Destroy an instance

    Developers
    1
    1
    371
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • flic.sensen
      flic.sensen last edited by

      Hey,

      Below is my code to start/stop Flic feature on my application.
      How do I remove flic buttons from Flic manager?

      Here is my code:

      findPreference(INTEGRATE_FLIC).setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
                   @Override
                   public boolean onPreferenceChange(Preference preference, Object newValue) {
                       if (newValue.toString().equals("true")) {
                           PreferenceManager.getDefaultSharedPreferences(getContext()).edit()
                                   .putBoolean(INTEGRATE_FLIC, false).apply();
                           FlicManager.setAppCredentials(FLIC_APP_ID, FLIC_APP_SECRET, FLIC_APP_NAME);
                           if (!isAppInstalled(getContext(), FLIC_PACKAGE_NAME)) {
                               flicNotInstalled();
                           } else {
                               FlicManager.getInstance(getContext(), new FlicManagerInitializedCallback() {
                                   @Override
                                   public void onInitialized(FlicManager manager) {
                                       manager.initiateGrabButton(getActivity());
                                   }
                               });
                           }
                           } else {
      
                           //TODO: Invalidate button here!
                           //FlicManager.destroyInstance();
                           PreferenceManager.getDefaultSharedPreferences(getContext()).edit()
                                   .putBoolean(INTEGRATE_FLIC, false).apply();
                       }
                       return true;
                   }
               });
      

      If I use FlicManager.destroyInstance(),
      I'am getting the following exception:

      --------- beginning of crash
      2019-08-20 16:14:10.718 3751-3751/com.sensennetworks.senanpr E/AndroidRuntime: FATAL EXCEPTION: main
          Process: com.sensennetworks.senanpr, PID: 3751
          java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.Context.unbindService(android.content.ServiceConnection)' on a null object reference
              at io.flic.lib.FlicManager.destroyInstanceInternal(FlicManager.java:402)
              at io.flic.lib.FlicManager.destroyInstance(FlicManager.java:388)
              at com.sensennetworks.senanpr.ui.AdvanceSettingsActivity$OtherFiltersPreferenceFragment$2.onPreferenceChange(AdvanceSettingsActivity.java:1103)
              at android.preference.Preference.callChangeListener(Preference.java:1080)
              at android.preference.TwoStatePreference.onClick(TwoStatePreference.java:65)
              at android.preference.Preference.performClick(Preference.java:1135)
              at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:249)
              at android.widget.AdapterView.performItemClick(AdapterView.java:318)
              at android.widget.AbsListView.performItemClick(AbsListView.java:1192)
              at android.widget.AbsListView$PerformClick.run(AbsListView.java:3184)
              at android.widget.AbsListView$3.run(AbsListView.java:4166)
              at android.os.Handler.handleCallback(Handler.java:873)
              at android.os.Handler.dispatchMessage(Handler.java:99)
              at android.os.Looper.loop(Looper.java:201)
              at android.app.ActivityThread.main(ActivityThread.java:6806)
              at java.lang.reflect.Method.invoke(Native Method)
              at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
      2019-08-20 16:14:10.728 3751-3751/com.sensennetworks.senanpr E/MQSEventManagerDelegate: failed to get MQSService.
      

      How do I workaround this?

      1 Reply Last reply Reply Quote 0
      • First post
        Last post