Esempio n. 1
0
        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);
        }