מדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד
-
@שניאור-שמח טוב, אכן המדריך לא מונגש בדיוק למשתמש הפשוט, הוא מניח שיש לו ניסיון בעריכה בMT..
אבל אולי באמת אוסיף בלי נדר..@lilo159 כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
@שניאור-שמח טוב, אכן המדריך לא מונגש בדיוק למשתמש הפשוט, הוא מניח שיש לו ניסיון בעריכה בMT..
גם אני בתור אחד ש׳מבין׳ זה טיפה מבולגן
-
@lilo159 כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
@שניאור-שמח טוב, אכן המדריך לא מונגש בדיוק למשתמש הפשוט, הוא מניח שיש לו ניסיון בעריכה בMT..
גם אני בתור אחד ש׳מבין׳ זה טיפה מבולגן
@שניאור-שמח אשמח שתכוון אותי יותר, לי אישית זה ממש נוח, באיזשהו מקום המדריכים שאני כותב הם פשוט דקומנטציה בשבילי, אבל אשמח שזה יהיה גם נוח לאחרים..
-
@lilo159 ותעשה גם מדריך לגרסה הרגילה ולא רק לדמברואיד
@שניאור-שמח האמת שלא ניסיתי, וגם אין לי כרגע על הטלפון השני, אולי בהזדמנות. לכאורה הבסיס אמור להתאים עם ההתאמות הנדרשות.
-
@שניאור-שמח כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
דמברואיד
יש גם משתמש עוד יותר פשוט -
ההוא שבכלל לא יודע מה זה 'דמבורויד'.... -
@שניאור-שמח כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
דמברואיד
יש גם משתמש עוד יותר פשוט -
ההוא שבכלל לא יודע מה זה 'דמבורויד'.... -
@קרט לא.. לא קשור
הוא סך הכל צילום מסך דרך שיתוף מסך דרך המחשב@שניאור-שמח כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
שיתוף מסך
אני בכללי ממש ממליץ לכל מי שעורך ויש לו גישה למחשב, להשתמש עם התוכנה scrcpy, שתומכת בהדבקה מהמחשב, כך שעם Ctrl C - Ctrl V, זה ממש מקל על העריכה, וגם כמובן ההנגשה לAI..
-
@שניאור-שמח כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
שיתוף מסך
אני בכללי ממש ממליץ לכל מי שעורך ויש לו גישה למחשב, להשתמש עם התוכנה scrcpy, שתומכת בהדבקה מהמחשב, כך שעם Ctrl C - Ctrl V, זה ממש מקל על העריכה, וגם כמובן ההנגשה לAI..
-
-
@נוחעם-FM כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
@קרט @אליצפן זה גירסת gsi (כלומר גירסא לא רשמית) לאנדרואיד 14 ל Qin f21 pro ולעוד מכשירים.
יש אפשרות להוסיף תאריך עברי במסך נעילה באנדרואיד רגיל (כמו לדוג' בג'לי סטאר)?
-

כמובן, הAI הוא המתכנת, ואני המתווך...
על אחריותכם וכו'באפליקציית הsystemui
שנמצאת כאן:
system/system_ext/priv-app/SystemUI/SystemUI.apkבMT מנג'ר:
לחיצה קצרה על האפליקציה

ללחוץ על view

ללחוץ על classes.dex (אחד הקבצים הירוקים, לא משנה איזה)

ללחוץ על dex editor plus

ללחוץ על select all (כדי לבחור הכל)

ללחוץ על OK, כעת אנחנו בפנים.
- להוסיף את הקלאס HebrewDateHelper.smali בנתיב:
com/android/systemui
בתוך הטאב שנקרא explorer, לנווט:

לחיצה ארוכה על התיקייה systemui, ללחוץ על ADD.

בחלון שייפתח להדביק את שם הקלאס (HebrewDateHelper) וללחוץ ok

כעת נראה את הקלאס שיצרנו בירוק, נלחץ עליו.

נחליף את כל התוכן עם הקוד שבבלוק הקוד המצורף.



ונלחץ על כפתור השמירה. כעת אפשר לחזור למסך הקודם.# classes.dex .class public Lcom/android/systemui/HebrewDateHelper; .super Ljava/lang/Object; # direct methods .method public static getCombinedDateString(Ljava/lang/String;)Ljava/lang/String; .registers 12 :try_start_0 new-instance v0, Landroid/icu/util/HebrewCalendar; invoke-direct {v0}, Landroid/icu/util/HebrewCalendar;-><init>()V new-instance v1, Landroid/icu/util/ULocale; const-string v2, "he_IL@calendar=hebrew" invoke-direct {v1, v2}, Landroid/icu/util/ULocale;-><init>(Ljava/lang/String;)V const/4 v2, 0x0 invoke-static {v2, v1}, Landroid/icu/text/DateFormat;->getDateInstance(ILandroid/icu/util/ULocale;)Landroid/icu/text/DateFormat; move-result-object v2 invoke-static {}, Lcom/android/systemui/HebrewDateHelper;->isAfterNightfall()Z move-result v3 move v10, v3 invoke-virtual {v0}, Landroid/icu/util/HebrewCalendar;->getTime()Ljava/util/Date; move-result-object v4 invoke-virtual {v2, v4}, Landroid/icu/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; move-result-object v3 if-eqz v3, :cond_bc const/4 v4, 0x7 invoke-virtual {v0, v4}, Landroid/icu/util/HebrewCalendar;->get(I)I move-result v5 if-ne v5, v4, :cond_33 if-eqz v10, :cond_33 const-string/jumbo v4, "יום שבת" const-string/jumbo v5, "מוצאי שבת" invoke-virtual {v3, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; move-result-object v3 :cond_33 const/16 v4, 0x20 invoke-virtual {v3, v4}, Ljava/lang/String;->lastIndexOf(I)I move-result v4 const-string v8, "" const-string v9, "" const/4 v5, -0x1 if-eq v4, v5, :cond_4b const/4 v5, 0x0 invoke-virtual {v3, v5, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v8 add-int/lit8 v4, v4, 0x1 invoke-virtual {v3, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v9 :cond_4b const/4 v3, 0x2 invoke-virtual {v0, v3}, Landroid/icu/util/HebrewCalendar;->get(I)I move-result v4 const/4 v5, 0x5 const/4 v6, 0x1 invoke-virtual {v0, v5, v6}, Landroid/icu/util/HebrewCalendar;->add(II)V invoke-virtual {v0}, Landroid/icu/util/HebrewCalendar;->getTime()Ljava/util/Date; move-result-object v5 invoke-virtual {v2, v5}, Landroid/icu/text/DateFormat;->format(Ljava/util/Date;)Ljava/lang/String; move-result-object v6 invoke-virtual {v0, v3}, Landroid/icu/util/HebrewCalendar;->get(I)I move-result v5 const-string v0, ", " invoke-virtual {v6, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I move-result v0 const/4 v7, -0x1 if-eq v0, v7, :cond_70 add-int/lit8 v0, v0, 0x2 invoke-virtual {v6, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v6 :cond_70 const/16 v0, 0x20 invoke-virtual {v6, v0}, Ljava/lang/String;->lastIndexOf(I)I move-result v0 if-eq v0, v7, :cond_7d const/4 v2, 0x0 invoke-virtual {v6, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v6 :cond_7d if-ne v4, v5, :cond_8c const/16 v0, 0x20 invoke-virtual {v6, v0}, Ljava/lang/String;->indexOf(I)I move-result v0 if-eq v0, v7, :cond_8c const/4 v2, 0x0 invoke-virtual {v6, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v6 :cond_8c new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; if-eqz v10, :cond_a7 const-string v2, " (אור ל-" invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v2, ") " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; goto :goto_af :cond_a7 const-string v2, " " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; :goto_af const-string v2, "\n" invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 :cond_bc new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 :try_end_d1 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_d1} :catch_d1 :catch_d1 move-exception v0 const-string v1, "HebrewDateHelper" const-string v2, "getCombinedDateString Exception" invoke-static {v1, v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I return-object p0 .end method .method private static isAfterNightfall()Z .registers 10 invoke-static {}, Ljava/util/Calendar;->getInstance()Ljava/util/Calendar; move-result-object v0 const/4 v1, 0x6 invoke-virtual {v0, v1}, Ljava/util/Calendar;->get(I)I move-result v1 const/16 v2, 0xb invoke-virtual {v0, v2}, Ljava/util/Calendar;->get(I)I move-result v2 const/16 v3, 0xc invoke-virtual {v0, v3}, Ljava/util/Calendar;->get(I)I move-result v3 invoke-virtual {v0}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; move-result-object v4 invoke-virtual {v0}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v0 invoke-virtual {v4, v0}, Ljava/util/TimeZone;->inDaylightTime(Ljava/util/Date;)Z move-result v0 const-wide v4, 0x400921fb54442d18L # Math.PI const-wide/high16 v6, 0x4000000000000000L # 2.0 mul-double/2addr v4, v6 add-int/lit8 v6, v1, -0x50 int-to-double v6, v6 mul-double/2addr v4, v6 const-wide v6, 0x4076d00000000000L # 365.0 div-double/2addr v4, v6 invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D move-result-wide v4 const-wide v6, 0x3ff0cccccccccccdL # 1.05 mul-double/2addr v4, v6 const-wide v6, 0x403247ae147ae148L # 18.28 add-double/2addr v4, v6 if-eqz v0, :cond_48 const-wide/high16 v6, 0x3ff0000000000000L # 1.0 add-double/2addr v4, v6 :cond_48 double-to-int v0, v4 int-to-double v6, v0 sub-double/2addr v4, v6 const-wide v6, 0x404e000000000000L # 60.0 mul-double/2addr v4, v6 double-to-int v4, v4 const/4 v5, 0x1 if-le v2, v0, :cond_56 return v5 :cond_56 if-ne v2, v0, :cond_5b if-lt v3, v4, :cond_5b return v5 :cond_5b const/4 v0, 0x0 return v0 .end method- בנתיב com/android/systemui/keyguard
בקלאס KeyguardSliceProvider
במתודה updateClockLocked()
מיד אחרי:
.line 38 move-result-object v0להוסיף את הקוד הבא:
const/16 v1, 0x2c invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I move-result v1 const/4 v2, -0x1 if-eq v1, v2, :skip_trim add-int/lit8 v1, v1, 0x2 invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v0 :skip_trim invoke-static {v0}, Lcom/android/systemui/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String; move-result-object v0- בנתיב com/android/keyguard
בקלאס KeyguardSliceView
במתודה showSlice
להחליף את שני השורות:
.line 153 sget-object v10, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt; .line 155 invoke-virtual {v9, v10}, Landroid/widget/TextView;->setEllipsize(Landroid/text/TextUtils$TruncateAt;)Vבקוד הזה:
const/4 v10, 0x2 invoke-virtual {v9, v10}, Landroid/widget/TextView;->setMaxLines(I)V const/4 v10, 0x0 invoke-virtual {v9, v10}, Landroid/widget/TextView;->setSingleLine(Z)Vבהצלחה!
- להוסיף את הקלאס HebrewDateHelper.smali בנתיב:
-
@נוחעם-FM כתב במדריך | הוספת תאריך עברי למסך הנעילה בדאמבדרויד:
@קרט @אליצפן זה גירסת gsi (כלומר גירסא לא רשמית) לאנדרואיד 14 ל Qin f21 pro ולעוד מכשירים.
יש אפשרות להוסיף תאריך עברי במסך נעילה באנדרואיד רגיל (כמו לדוג' בג'לי סטאר)?
-
@אלוף-תימן אני מניח שהקלאס שמוסיפים שמכיל בעצם את כל הלוגיקה מתאים, השאלה האם זה דורש התאמה.אני אטצרך את האפליקציה של הטלפון הנערך הרצוי, כדי לבדוק את הקוד.
-
@אלוף-תימן אני מניח שהקלאס שמוסיפים שמכיל בעצם את כל הלוגיקה מתאים, השאלה האם זה דורש התאמה.אני אטצרך את האפליקציה של הטלפון הנערך הרצוי, כדי לבדוק את הקוד.
-