/FileExtraction/Java_unseen/PowerExplorer_PowerFileExplorer/PowerFileExplorer/src/main/java/com/amaze/filemanager/utils/InterestingConfigChange.java
package com.amaze.filemanager.utils;

import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.content.res.Resources;

/**
 * Created by vishal on 23/2/17.
 *
 * Class determines whether there was a config change
 *
 * Supposed to be used to determine recursive callbacks to fragment/activity/loader
 * Make sure to recycle after you're done
 */

public class InterestingConfigChange {

    private static Configuration lastConfiguration = new Configuration();
    private static int lastDensity = -1;

    /**
     * Check for any config change between various callbacks to this method.
     * Make sure to recycle after done
     * @param resources
     * @return
     */
    public static boolean isConfigChanged(Resources resources) {
        int changedFieldsMask = lastConfiguration.updateFrom(resources.getConfiguration());
        boolean densityChanged = lastDensity!=resources.getDisplayMetrics().densityDpi;

        if (densityChanged || (changedFieldsMask &
                (ActivityInfo.CONFIG_SCREEN_LAYOUT | ActivityInfo.CONFIG_UI_MODE | ActivityInfo.CONFIG_LOCALE)) != 0) {
            // we have density changed from last time we came here
            return true;
        }

        return false;
    }

    /**
     * Recycle after usage, to avoid getting inconsistent result because of static modifiers
     */
    public static void recycle() {
        lastConfiguration = new Configuration();
        lastDensity = -1;
    }
}
