blob: a9dc5ce6795d6501a4082f1d850410b3ff224f1f [file] [log] [blame]
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.car.settings.testutils;
import android.content.Context;
import com.android.internal.app.LocaleStore;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@Implements(LocaleStore.class)
public class ShadowLocaleStore {
private static Map<LocaleStore.LocaleInfo, Set<LocaleStore.LocaleInfo>>
sLocaleInfoRelationships = new HashMap<>();
public static void addLocaleRelationship(Locale parent, Locale child) {
LocaleStore.LocaleInfo parentInfo = LocaleStore.getLocaleInfo(parent);
LocaleStore.LocaleInfo childInfo = LocaleStore.getLocaleInfo(child);
Set<LocaleStore.LocaleInfo> set = sLocaleInfoRelationships.getOrDefault(parentInfo,
new HashSet<>());
set.add(childInfo);
sLocaleInfoRelationships.put(parentInfo, set);
}
@Resetter
public static void reset() {
sLocaleInfoRelationships.clear();
}
@Implementation
protected static Set<LocaleStore.LocaleInfo> getLevelLocales(Context context,
Set<String> ignorables, LocaleStore.LocaleInfo parent, boolean translatedOnly) {
if (parent != null) {
return sLocaleInfoRelationships.getOrDefault(parent, new HashSet<>());
} else {
return sLocaleInfoRelationships.keySet();
}
}
}