duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from Oasis Feng
在实现 Notification Bubble 时遇到一个问题,当近期点过 bubble 打开悬浮窗后,再通过 launcher 启动这个应用时就会直接跳到那个悬浮窗里去,而不是打开全屏的界面……
Forwarded from Oasis Feng
bubble 的 activity 与 launcher 启动的是同一个
Forwarded from Oasis Feng
我看了一下 AOSP 源码,该加的 flags 系统已经加了…… FLAG_ACTIVITY_NEW_DOCUMENT | FLAG_ACTIVITY_MULTIPLE_TASK
Forwarded from Oasis Feng
官方的意思应该是不要复用 activity...
Forwarded from Oasis Feng
然而这个 activity 不是我能控制的,我没辙。
Forwarded from Oasis Feng
启动界面在官方看来是 anti-pattern,哈哈
Forwarded from shortybin
问个问题 组件化 假如组建A调用组建B的播放功能,组建B里面的播放器暂停后,怎么把回调发送到组建A
Forwarded from shortybin
只能组件A注册,组件B回调这种方式吗?
Forwarded from Kanter
有没有人发现。启动页主题如图,结果Android11虚拟机 navigationBar 就会有个黑色阴影。安卓10都是正常的。
Forwarded from Rikka
enforceNavigationBarContrast false 一下 吗(
Forwarded from 钱钱
是 adb reboot userspace
Forwarded from SuperMarioSF | Trust Platform Builder (?)
你只杀掉那个名为system_server的那个zygote进程就足够了(
Forwarded from Ninos Roger
image_2020-09-15_16-53-57.png
5 KB
官方给的BottomNavigationView+Fragment的demo,Fragment没法复用,各位有没有在保持官方写法思路上让fragment页面复用
Forwarded from Nico Ranshi
如何Detect NSA的
Forwarded from Nico Ranshi
dumpsys telephony.registry |grep mServiceState|grep nrState=CONNECTED
Forwarded from 螺莉莉的黑板报
【提醒】node-gyp 的官方文档是错误的,通过这份文档您无法完成部分二进制依赖的编译工作。

正确的做法为:
1. 安装 VS Code 2019 Community 和 Desktop Development with C++ 扩展
2. 安装 Python 3.8 非商店版本
3. 执行下列命令:
npm config set msvs_version 2019
npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"


向 node-gyp 开发团队致以诚挚的祖安。
Forwarded from ffmpeg eats swap
string SHA256(string str)
{
unsigned char hashRaw[32];
char buf[128] = "";
SHA256_CTX sha256;
SHA256_Init(&sha256);
SHA256_Update(&sha256, str.c_str(), str.size());
SHA256_Final(hashRaw, &sha256);
for (int i = 0; i < 32; ++i)
sprintf((buf + (i << 1)), "%02x", hashRaw[i]);
return string(buf);
}

int maxLength, cnt;
char tmp[10240];
vector<strHash> s;

void dfs(int depth = 0)
{
if (depth >= maxLength)
return;
for (int i = 1; i < 256; ++i)
{
tmp[depth] = i;
s.push_back(strHash{string(str), SHA256(string(str))});
dfs(depth + 1);
tmp[depth] = 0;
}
}
Forwarded from CSharp.Lang
/**
* private: 產生未經 Hash 的字串列表
*
* @param {int} maxLen 最多要產生幾個字串?
* @param {int} range 字元的範圍,預設為 256 即 ASCII 字元範圍。
* @return 字串列表
*/
function _genStrList (maxLen, range = 256) {
let strings

if (strings.length <= 0) {
for (let charCode = 0; charCode != range; charCode++) {
if (strings.length >= maxLen) return strings
strings.push(String.fromCharCode(charCode))
}
}

while (true) {
for (let str of strings) {
for (let charCode = 0; charCode != range; charCode++) {
if (strings.length >= maxLen) return strings
strings.push(str + String.fromCharCode(charCode))
}
}
}
}

/**
* 產生彩虹表
*
* @param {int} len 最多要產生幾個 Hash 字串?預設為 65536 個。
* @param {int} range 字元的範圍,預設為 256 即 ASCII 字元範圍。
* @return {map} 彩虹表
*/
function genHashlist (len = 65536, range = 256) {
console.log("-> 📖 Generating Strings...")
const strings = _genStrList(len, range)
console.log("-> \n🆗 Generated Strings.")

console.log("-> 🖩 Hashing Strings...")
let hashlist = new Map()
const crypto = require('crypto')

for (const rawStr of strings) {
// 預設的 Hash 方式是 SHA256
const hash = crypto.createHash('sha256')
hash.update(rawStr, 'UTF-8')
const hashVal = hash.digest('hex').toString()
hashlist.set(hashVal, {
original: rawStr
})

console.log("-> 🖩 Hashing Strings, Now: " + hashlist.keys().length)
}

console.log("-> 🆗 Hashed Strings.")
return hashlist
}