Helper.java revision 6dc0177fe4212bc59e54260fdcbf779e0ee883c7
1436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme/* 2436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * Copyright (C) 2017 The Android Open Source Project 3436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * 4436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * Licensed under the Apache License, Version 2.0 (the "License"); 5436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * you may not use this file except in compliance with the License. 6436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * You may obtain a copy of the License at 7436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * 8436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * http://www.apache.org/licenses/LICENSE-2.0 9436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * 10436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * Unless required by applicable law or agreed to in writing, software 11436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * distributed under the License is distributed on an "AS IS" BASIS, 12436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * See the License for the specific language governing permissions and 14436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme * limitations under the License. 15436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme */ 16436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 17436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Lemepackage com.android.server.autofill; 18436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 19436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Lemeimport android.os.Bundle; 20436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 21436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Lemeimport java.util.Arrays; 22436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Lemeimport java.util.Objects; 23436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Lemeimport java.util.Set; 24436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 259f9ee25515591ef33281708c0ab911962f4364a6Felipe Lemepublic final class Helper { 26436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 279f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme /** 289f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme * Defines a logging flag that can be dynamically changed at runtime using 296dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme * {@code cmd autofill set log_level debug}. 309f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme */ 319f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme public static boolean sDebug = false; 329f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme 339f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme /** 349f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme * Defines a logging flag that can be dynamically changed at runtime using 356dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme * {@code cmd autofill set log_level verbose}. 369f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme */ 379f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme public static boolean sVerbose = false; 38436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 396dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme /** 406dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme * Maximum number of partitions that can be allowed in a session. 416dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme * 426dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme * <p>Can be modified using {@code cmd autofill set max_partitions}. 436dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme */ 446dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme static int sPartitionMaxCount = 10; 456dc0177fe4212bc59e54260fdcbf779e0ee883c7Felipe Leme 469a2e6058df51e94417dcedd4c7dd2a0cc380dcb1Felipe Leme private Helper() { 479a2e6058df51e94417dcedd4c7dd2a0cc380dcb1Felipe Leme throw new UnsupportedOperationException("contains static members only"); 489a2e6058df51e94417dcedd4c7dd2a0cc380dcb1Felipe Leme } 499a2e6058df51e94417dcedd4c7dd2a0cc380dcb1Felipe Leme 50436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme static void append(StringBuilder builder, Bundle bundle) { 519f9ee25515591ef33281708c0ab911962f4364a6Felipe Leme if (bundle == null || !sVerbose) { 5224d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme builder.append("null"); 5324d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme return; 5424d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme } 5524d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme final Set<String> keySet = bundle.keySet(); 5624d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme builder.append("[Bundle with ").append(keySet.size()).append(" extras:"); 5724d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme for (String key : keySet) { 5824d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme final Object value = bundle.get(key); 5924d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme builder.append(' ').append(key).append('='); 6024d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme builder.append((value instanceof Object[]) 6124d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme ? Arrays.toString((Objects[]) value) : value); 62436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme } 6324d5893b25ce62b7bc9ed9f35fa72b9d47f23cddFelipe Leme builder.append(']'); 64436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme } 65436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme 66436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme static String bundleToString(Bundle bundle) { 67436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme final StringBuilder builder = new StringBuilder(); 68436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme append(builder, bundle); 69436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme return builder.toString(); 70436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme } 71436ab6a91d64ef6036c67bb361d807e398fb2c4cFelipe Leme} 72