public override Intent getLaunchIntentForPackage(string packageName) { if (!loaded_packages.ContainsKey(packageName)) { return(null); } XobotPackageInfo info = loaded_packages [packageName]; if (info.Info.applicationInfo == null) { throw new RuntimeException("Cannot get ApplicationInfo from package."); } if (info.Info.activities.Length < 1) { throw new RuntimeException("Package does not contain any Activity."); } ActivityInfo ai = info.Info.activities [0]; ai.applicationInfo.uid = android.os.Process.SYSTEM_UID; Intent intent = new Intent(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setPackage(packageName); intent.setClassName(info.Info.packageName, ai.name); return(intent); }
public Task <SCG.IReadOnlyDictionary <K, Entry <K, V> > > GetManyAsync(IReadOnlySet <K> keys) { return(ExecCommandAsync(async cmd => { // Retrieve all rows cmd.CommandText = $"SELECT * FROM {tableName} WHERE id=ANY(@ids)"; var idParameter = cmd.CreateParameter(); idParameter.ParameterName = "ids"; idParameter.Value = keys.ToArray(); cmd.Parameters.Add(idParameter); using (var reader = await cmd.ExecuteReaderAsync().ConfigureAwait(false)) { var results = new SCG.Dictionary <K, Entry <K, V> >(); while (await reader.ReadAsync().ConfigureAwait(false)) { var entry = ReadToEntry(reader); results[entry.Key] = entry; } foreach (var key in keys) { if (!results.ContainsKey(key)) { results[key] = Entry <K, V> .CreateNonexistant(key); } } return (SCG.IReadOnlyDictionary <K, Entry <K, V> >)results; } })); }
private static double GetEntropy(string result) { SCG.Dictionary <char, int> frequencies = new SCG.Dictionary <char, int>(); foreach (char c in result) { if (frequencies.ContainsKey(c)) { ++frequencies[c]; } else { frequencies[c] = 1; } } int length = result.Length; double entropy = 0; foreach (var keyValue in frequencies) { double freq = (double)keyValue.Value / length; entropy += freq * SYS.Math.Log(freq, 2); } return(-entropy); }