-
not bad for a S.O.S signal.
those 2 lovely germanic girls in panama...
https://www.the-sun.com/news/8609015/major-update-mystery-panama-jungle-girls-new-search/
-
i am sure gpt4 could help you with that, easily.
unless you live in places which is not within the circle of friends of USA
as an example, the "back swipe" app used the same Lt to Rt swipe which the "swipe back to clock" use, so i used gpt4 to modify "back swipe" to recognize Up to Down, Rt to Lt instead.
just modify a single line.
gpt4 could help to create,
and for modify, it's super fit i'll say. -
just found,
keeping swipe back to clock as Lt to Rt swipe,
and make back swipe as Rt to Lt swipe is the best choice,
keeping up and down swipe for choosing things.do so by modifiying the lr === 1 into lr === -1 below
function goBack(lr, _) { // if it is a left to right swipe if (lr === 1) { // if we're in an app that has a back button, run the callback for it if (global.BACK && countHandlers("swipe")<=settings.standardNumSwipeHandlers && countHandlers("drag")<=settings.standardNumDragHandlers) { global.BACK(); }
}
}
-
-
i got 4 widgets including the "back" and the "lock/unlock" widget,
the widget editor could make them as the 1st and 3rd, so seperating them allow easier tapping.but it would be better if they are 2th and 4th as the widget at the corner seems is less easy to tap.
just ask ask, would be ok if that cannot be modified, thanks.
may be i should ask in the github issues with the [app name] instead? thanks
-
-
hi, thx for reply.
myself completely comfort with the original code (generated by gpt4, i knew nothing about js, but general programming knowledge on pascal, C etc).
yet i input your feed back to gpt4 and it gave a modified code,
i just attach here as untested and see if anyone will prefer that and could report back.thanks.
You:
my js for bangle.js v2, for an app to reboot:
console.log('Starting script.'); (function() { let rebootConfirmed = false; function reboot() { console.log('Attempting to reboot.'); E.reboot(); console.log('Should have rebooted.'); // This may not print if the reboot occurs immediately } console.log('Setting up LCD power event listener.'); Bangle.on('lcdPower', function(on) { console.log('LCD power event triggered. Power state:', on); if (on && rebootConfirmed) { console.log('LCD is on and reboot is confirmed.'); Bangle.setLCDMode('on'); reboot(); } else if (on) { console.log('LCD is on but reboot is not yet confirmed.'); } else { console.log('LCD is off.'); } }); console.log('Clearing the screen and displaying confirmation message.'); g.clear(); g.setFontAlign(0, 0); // center alignment g.setFont("Vector", 15); // Adjusted the font size g.drawString("Tap to confirm", g.getWidth() / 2, g.getHeight() / 2 - 10); g.drawString("reboot", g.getWidth() / 2, g.getHeight() / 2 + 10); console.log('Setting up touch event listener.'); Bangle.on('touch', function(e) { console.log('Touch event triggered. Event data:', e); if (e && !rebootConfirmed) { console.log('Touch detected and reboot is not yet confirmed.'); rebootConfirmed = true; console.log('Clearing the screen and displaying rebooting message.'); g.clear(); g.drawString("Rebooting...", g.getWidth() / 2, g.getHeight() / 2); console.log('Waiting for 2 seconds before reboot.'); setTimeout(() => { console.log('2 seconds elapsed, initiating reboot.'); reboot(); }, 2000); } else if (e) { console.log('Touch detected but reboot is already confirmed.'); } else { console.log('Touch event triggered but no touch detected.'); } }); })(); console.log('Script setup complete.');
ChatGPT:
Your JavaScript code for the Bangle.js v2 smartwatch appears to be designed to create an app that allows the user to reboot the device through a simple interface. Here's a breakdown of how your script works:
Initialization: The script starts by logging "Starting script."
Reboot Function: A function reboot() is defined to handle the actual reboot process. It logs "Attempting to reboot," calls E.reboot() to restart the device, and then logs "Should have rebooted."
LCD Power Event Listener: The script listens for changes in the LCD's power state. If the LCD is turned on and a reboot has been confirmed, it initiates the reboot process.
Displaying Confirmation Message: The script clears the screen and displays a message asking the user to tap the screen to confirm the reboot.
Touch Event Listener: When the screen is touched, if the reboot hasn't been confirmed yet, it sets rebootConfirmed to true, displays a "Rebooting..." message, and then waits for 2 seconds before actually calling the reboot() function.
Final Log: After setting up everything, the script logs "Script setup complete."
This script effectively sets up an interactive reboot mechanism on the Bangle.js v2 smartwatch. By leveraging the touch screen and LCD power state, it provides a user-friendly way to reboot the device. The use of console.log statements throughout the script is helpful for debugging and understanding the flow of events.
You:
my frd: Ganblejs
I'd probably have tried to do this with Bangle.showClock() called on a specific tap event. If you want some suggestion 🙂https://www.espruino.com/ReferenceBANGLEJS2#l_Bangle_tap
ChatGPT:
Your friend's suggestion to use Bangle.showClock() in combination with a specific tap event on the Bangle.js smartwatch is a good idea, especially if you're looking to integrate the reboot functionality into a more standard watch behavior.
Here's a revised approach based on your friend's suggestion:
Use Tap Event Instead of Touch Event: The Bangle.js v2 has a Bangle.on('tap', callback) event listener, which can be used to detect tap gestures. This can be a more intuitive way for users to trigger actions like rebooting, as tapping is a common interaction pattern on smartwatches.
Implement Bangle.showClock(): The Bangle.showClock() function can be used to return the watch to its default clock display. This could be a good way to exit the reboot confirmation screen if the user decides not to proceed with the reboot.
Revised Script Structure:
Initialize: Start with the usual setup and logging.
Reboot Function: Keep the reboot() function as is.
LCD Power Event Listener: This can remain the same or be adjusted based on how you want the screen behavior to work with the new tap interaction.
Displaying Confirmation Message: Similar to before, but you might include instructions for how to confirm or cancel the reboot (e.g., "Tap to confirm reboot, show clock to cancel").
Tap Event Listener: Replace the touch event listener with a tap event listener. On a tap, you could toggle the reboot confirmation. If confirmed, proceed with the reboot sequence; if not, call Bangle.showClock() to return to the clock display.
Final Log: Indicate the script setup is complete.This approach would be more aligned with the common user interactions on the Bangle.js v2 and might feel more natural to users. It also adds a clear way to cancel the reboot action, which is a good practice for user interface design.
For more detailed information and examples, you can refer to the Espruino Bangle.js Reference, specifically the Bangle.tap section.
You:
show me the new code
ChatGPT:
Certainly! Based on the suggestion to use a tap event and Bangle.showClock(), here's how you could modify your script for the Bangle.js v2:
javascript
Copy codeconsole.log('Starting script.'); (function() { let rebootConfirmed = false; function reboot() { console.log('Attempting to reboot.'); E.reboot(); console.log('Should have rebooted.'); // This may not print if the reboot occurs immediately } console.log('Setting up LCD power event listener.'); Bangle.on('lcdPower', function(on) { console.log('LCD power event triggered. Power state:', on); if (on && rebootConfirmed) { console.log('LCD is on and reboot is confirmed.'); Bangle.setLCDMode('on'); reboot(); } }); console.log('Clearing the screen and displaying confirmation message.'); g.clear(); g.setFontAlign(0, 0); // center alignment g.setFont("Vector", 15); // Adjusted the font size g.drawString("Tap to confirm reboot", g.getWidth() / 2, g.getHeight() / 2 - 10); g.drawString("Show clock to cancel", g.getWidth() / 2, g.getHeight() / 2 + 10); console.log('Setting up tap event listener.'); Bangle.on('tap', function() { console.log('Tap event triggered.'); if (!rebootConfirmed) { console.log('Reboot confirmed by tap.'); rebootConfirmed = true; g.clear(); g.drawString("Rebooting...", g.getWidth() / 2, g.getHeight() / 2); console.log('Waiting for 2 seconds before reboot.'); setTimeout(() => { console.log('2 seconds elapsed, initiating reboot.'); reboot(); }, 2000); } else { console.log('Reboot already confirmed.'); } }); // Cancel reboot and show clock setWatch(function() { console.log('Reboot canceled, showing clock.'); rebootConfirmed = false; Bangle.showClock(); }, BTN2, { repeat: true, edge: 'falling' }); })(); console.log('Script setup complete.');
In this modified script:
Tap Event Listener: The script now listens for tap events to confirm the reboot.
Cancel Reboot: A watch function is set on BTN2 (the middle button on Bangle.js v2), which cancels the reboot process and returns to the clock display when pressed.
Confirmation Message: The screen displays instructions for confirming or canceling the reboot.
This approach integrates a more intuitive interaction for confirming the reboot and provides an easy way to cancel it, enhancing the user experience.
-
-
err...
some of my reporting, gpt4 summarized:
I switched from "pattern launcher" to "quick launcher" on my device, and it functioned correctly yesterday. However, after installing the msg UI today, I encountered problems with both "quick launcher" and "swipe back to clock" app, they simply dont work, which persisted even after reinstalling the app. Consequently, I reverted to using "pattern launcher" and installed msg list and msg lib, but not msg UI, and this setup seems to be working well. Since my bangle is now functioning effectively, including controlling music with Chinese names, I've decided not to make any further modifications and expect to avoid any further issues. -
ps: this is the info file:
require("Storage").write("softreboot.info",{
"id":"softreboot",
"name":"SoftReBoot",
"src":"softreboot.app.js"
});coverting an icon and sending to the app store need more effect than writing one...
i'' skip it at the moment
reference here:
https://www.espruino.com/Bangle.js+First+App -
-
hi,
for me on latest GB.js and firmware,
today is the 2nd time (in this 2 months) that somehow the pattern launcher AND "swipe back to clock" seems wont work, even after re-install, so i have to format(=factory reset) it again.to me, it seems it happened after i changed the fontsize back to 18? i am not sure.
may be could play with that later when i am in the gym, thanks
update 231119T014901,
it happened again within 2hr, while i factory reset the bangle and re-install everything again.
the pattern launcher + swipe back to clock did n't work again, after i try to send a sms(/w chinese) to phone and pass to bangle.may be the pattern launcher is too heavy?
i'll try use bangle without the pattern launcher and see.however without pattern launcher, the bangle cant prevent access from anybody (although pattern launcher only provide partial). would be nice if later bangle could have build in pattern lock or PIN lock? like android etc.
thanks
-
-
-
-
-
But judging by that Bangle.js screenshot of the about app the firmware is not updated to cutting edge version there.
hi, if you ppl can kindly teach me how to identify the latest firmware, i may be able to try myself. thanks
btw, it's simply click the cutting edge rom link in GB.js, and then click the "upload" button, correct? i did saw the v67 as the cutting edge rom.
or i missed some steps?
thanks -
hi
i think i am on latest GB.js and the cutting edge firmware
now i use a fake whatsapp to send the msg to my own whatsapp, to test.
i only use message ui now, (but sometimes message list perform better)
(let's focus on msg UI first?, as msg list is by another author?)
the msg appear itself as "it-show-up"
, if i manually click into the msg app, and click view msg, it appear differently as "press-into".
original msg: 【知乎】你的验证码是 488379,此验证码用于登录知乎或重置密码。10 分钟内有效。
i will suggest just add a new line after a punctuation.
【知乎】<--(new line after close bracket, or not is also ok)
你的验证码是 488379,
此验证码用于登录知乎或重置密码。
10 分钟内有效。
thanks -
-
ps, so gpt4 say trad. chinese and simpl. chinese have union, and each have unique parts. and these 3 parts are all within the 1st block of 20000 characters.
gpt4 record:
You:
i dont understand, for the english "old", tell me the code for the chinese word 舊and 旧 then.
ChatGPT:
The Chinese characters "舊" (Traditional) and "旧" (Simplified), both meaning "old" in English, have different Unicode code points. Here are their respective codes:
舊 (Traditional Chinese): The Unicode code for this character is U+820A.
旧 (Simplified Chinese): The Unicode code for this character is U+65E7.
These codes are hexadecimal representations of their respective positions in the Unicode character set. You can use these codes in various digital systems to represent these specific characters.
You:
so, the 1st block of 20000 you mentioned will include both the traditional and simplified daily use chinese characters?
ChatGPT:
Yes, the first block, "CJK Unified Ideographs" (U+4E00 to U+9FFF), includes both Traditional and Simplified Chinese characters commonly used in daily life. This block is designed to encompass a wide range of frequently used Chinese characters, irrespective of whether they are in Traditional or Simplified form.
The Unicode system aims to unify characters with the same etymological roots, so many characters that have both Traditional and Simplified forms are encoded only once in this block. The distinction between Traditional and Simplified in Unicode is often a matter of font rendering and context rather than separate encoding.
For specific characters that have different forms in Traditional and Simplified Chinese, like "舊" (U+820A) and "旧" (U+65E7), they are encoded separately, as they have distinct graphical representations. Such characters may appear in the same block (as is the case with these examples) or in different blocks, depending on their Unicode allocation.
You:
will some trad. or simpl. chinese have the same coding then?
ChatGPT:
Yes, many Traditional and Simplified Chinese characters share the same Unicode code point. This is because Unicode is designed to unify characters that are essentially the same, regardless of regional script variations. The distinction between Traditional and Simplified Chinese is often a matter of how the character is rendered (i.e., displayed or printed), rather than how it is encoded in Unicode.
For example, a character that has the same form in both Traditional and Simplified Chinese scripts will have only one Unicode code point. It's the font and language settings of the user's system that determine how the character is displayed.
In cases where the Traditional and Simplified forms of a character are graphically different, they are assigned separate Unicode code points, as seen with "舊" (U+820A) and "旧" (U+65E7).
Therefore, while there are distinct Traditional and Simplified forms for some characters, many others are encoded just once in Unicode, covering both scripts. This approach reduces redundancy and simplifies text processing across different languages that use Chinese characters.
You:
show me one that is same in trad. and simpl chinese.
ChatGPT:
A common example of a character that is the same in both Traditional and Simplified Chinese is the character for "water," which is written as 水 in both scripts. In Unicode, this character has the code point U+6C34.
This character exemplifies many instances where the Traditional and Simplified forms of a Chinese character are identical, and therefore, they share the same Unicode encoding. The character 水 (U+6C34) is used in a wide range of contexts and is a fundamental character in both Traditional and Simplified Chinese writing systems.
-
-
hi,
i just re-installed the firmware, the commit is still the same as above, but this time i am pretty sure i clicked 2v19.62 something
negative, still not wrapped at the punctuations. btw, i found that, even in the message UI, the same SMS when displayed and when "clicked into" display differently. i can by chance read the code by one method, but since the other parts is outside of the screen, this is still not appropriate.
i just asked gpt4, pls fact check if possible. btw, gpt4 were "sold out" now. too many people want to buy their plans.
gpt4 result:
You:in unicode, there are just about 10000 daily use traditional chinese characters and some 10000 daily used simplified chinese characters. do you know their codes? the code ranges?
ChatGPT:
In Unicode, Traditional and Simplified Chinese characters are not separated into distinct blocks based solely on their writing system. Instead, they are mostly included together in several blocks, primarily in the "CJK Unified Ideographs" block. The range of these characters in Unicode is quite extensive, encompassing multiple blocks. Here's an overview:
CJK Unified Ideographs: This is the largest block of Chinese characters. It includes both Traditional and Simplified forms. The range is U+4E00 to U+9FFF. This block contains the majority of characters used in daily Chinese text.
CJK Unified Ideographs Extension A: This block extends the basic set and includes more obscure and less frequently used characters. The range is U+3400 to U+4DBF.
CJK Unified Ideographs Extension B to Extension G: These blocks contain even more rarely used, historic, or dialect-specific characters. The ranges are:
Extension B: U+20000 to U+2A6DF
Extension C: U+2A700 to U+2B73F
Extension D: U+2B740 to U+2B81F
Extension E: U+2B820 to U+2CEAF
Extension F: U+2CEB0 to U+2EBEF
Extension G: U+30000 to U+3134FCJK Compatibility Ideographs: This block includes characters that are variants of those in the main CJK block and are used for compatibility purposes with other character sets. The range is U+F900 to U+FAFF.
CJK Compatibility Ideographs Supplement: This is an extension of the compatibility ideographs. The range is U+2F800 to U+2FA1F.
These ranges cover both Traditional and Simplified characters, and the distinction between the two is often based on context and regional usage rather than Unicode encoding. Unicode primarily focuses on the unification of characters that have the same etymological root, regardless of regional script variations.
You:
for the above ranges, can you also tell how many characters are within them? thanks
ChatGPT:
Here is the number of characters in each Unicode block relevant to Chinese characters:
CJK Unified Ideographs: 20,992 characters
CJK Unified Ideographs Extension A: 6,592 characters
CJK Unified Ideographs Extension B: 42,720 characters
CJK Unified Ideographs Extension C: 4,160 characters
CJK Unified Ideographs Extension D: 224 characters
CJK Unified Ideographs Extension E: 5,776 characters
CJK Unified Ideographs Extension F: 7,488 characters
CJK Unified Ideographs Extension G: 4,944 characters
CJK Compatibility Ideographs: 512 characters
CJK Compatibility Ideographs Supplement: 544 charactersThese counts reflect the number of individual characters encoded in each respective block.
-
i guess thats why openAI intentionally DO NOT support android intents.
link to my proposed project:
https://forum.espruino.com/conversations/391050/#comment17161994the company is called "humane"?
youtube https://youtu.be/th3vzKTE0O8?si=lijITDRRHnk1l04Z
previouly i used python to access the openai API, it's easy.
but I dislike the idea of pay-as-you-use.i am more of a all-you-can-it guy, by paying monthly subscriptions.
any other ideas to simply make tapping bangle to fire up the android phone's chatgpt plus apk as voice input? thanks
-
https://eriksen.com/language/simplified-vs-traditional-chinese/
it's quite complex....
i'll suggest simply "break the line at the punctuations" AND "break the line when it's at the end of the horizontal display line". thx
i'll say i suppose only thse security related app are likely to be trustable, like the 2FA, pin lock etc.
for other apps i'll treat them as plain text stored.
i'll say one can use "pattern launcher", and when pair with backward helpers, use the one that swipe back to the clock, NOT the launcher.
The pattern launcher already is like a screen lock, except that a press of button or a 10s press of button will boot into launcher or reboot, in both ways you are defeated.
thus next level is:
disable the physical button as in the manual. ;
downside is if your watch halt, you cant immeditely reboot. (if just slow, i wrote a soft reboot app but not yet put in the bangle store).
but as bangle's SWD is exposed, i guess we will never brick one, is it?
thanks
ps: it's like android in version 2. only screen lock and no encryption.
we better have to wait till bangle 3 or 4 in which the encryption is built in -- the cpu/ram/rom is not prepared.