/* * Copyright (C) 2015 The CyanogenMod 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. */ import java.io.File; import java.io.IOException; import java.io.BufferedWriter; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.io.Writer; import java.nio.charset.Charset; import java.util.ArrayList; /** * This is to be run on a live CM 12.1 device. */ public class GenerateExampleSettings { private static ArrayList androidSystemSettingList = new ArrayList(); private static ArrayList androidSecureSettingList = new ArrayList(); private static ArrayList androidGlobalSettingList = new ArrayList(); private static ArrayList defaultSettings = new ArrayList(); public static void main(String[] args) throws IOException, ClassNotFoundException { if (args.length != 1) { System.err.println("Usage: GenerateExampleSettings [target file]"); System.exit(-1); } String rootFile = args[0]; SettingImageCommands androidSettingImage = new SettingImageCommands(SettingsConstants.SETTINGS_AUTHORITY); androidSettingImage.addQuery(SettingsConstants.SYSTEM, androidSystemSettingList); androidSettingImage.addQuery(SettingsConstants.SECURE, androidSecureSettingList); androidSettingImage.addQuery(SettingsConstants.GLOBAL, androidGlobalSettingList); androidSettingImage.execute(); for (Setting system : androidSystemSettingList) { if (CMSettings.System.isLegacySetting(system.getKey())) { defaultSettings.add(system); } } for (Setting secure : androidSecureSettingList) { if (CMSettings.Secure.isLegacySetting(secure.getKey())) { defaultSettings.add(secure); } } for (Setting global : androidGlobalSettingList) { if (CMSettings.Global.isLegacySetting(global.getKey())) { defaultSettings.add(global); } } Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(rootFile), Charset.forName("US-ASCII"))); out.write("# Settings which are to be moved to CMSettings\n"); out.write("# Automatically generated by " + "vendor/cmsdk/host/migration/src/GenerateExampleSettings" + GenerateExampleSettings.class.getSimpleName() + ".java.\n"); // Write settings to file for output. for (int i = 0; i < defaultSettings.size(); i++) { Setting defaultSetting = defaultSettings.get(i); // This is the same format as what is spit out by system/bin/content out.write("Row: " + i + " name=" + defaultSetting.getKey() + ", type=" + defaultSetting.getKeyType() + ", value=" + defaultSetting.getValue() + ", type=" + defaultSetting.getValueType() + "\n"); } out.close(); System.out.println("Settings written: " + rootFile.toString()); } }