Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;
//License from project: Apache License 

import android.os.Bundle;
import android.support.annotation.Nullable;
import java.util.Set;

public class Main {
    /**
     * Compares two {@link android.os.Bundle Bundles} to check for equality.
     *
     * @param a the first {@link android.os.Bundle Bundle}
     * @param b the second {@link android.os.Bundle Bundle}
     * @return {@code true} if the two {@link android.os.Bundle Bundles} have identical contents, or are both null
     */
    public static boolean areEqual(@Nullable Bundle a, @Nullable Bundle b) {
        // equal if both null
        if (a == null && b == null)
            return true;

        // unequal if one is null
        if (a == null || b == null)
            return false;

        // check size
        if (a.size() != b.size())
            return false;

        // get key sets
        Set<String> bundleAKeys = a.keySet();
        Object valueA;
        Object valueB;

        // loop keys
        for (String key : bundleAKeys) {
            // check key exists in second bundle
            if (!b.containsKey(key))
                return false;

            // get values
            valueA = a.get(key);
            valueB = b.get(key);

            // check null valued entries
            if (valueA == null && valueB == null)
                continue;
            if (valueA == null || valueB == null)
                return false;

            // compare iteratively if they are both bundles
            if (valueA instanceof Bundle && valueB instanceof Bundle) {
                if (!areEqual((Bundle) valueA, (Bundle) valueB))
                    return false;
                continue;
            }

            // check for different values
            if (!valueA.equals(valueB))
                return false;
        }

        // passed!
        return true;
    }
}