דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. אנדרואיד - כללי
  3. שיאומי
  4. שיאומי f21 pro ו +f21 pro
  5. עזרה הדדית - שיאומי f21 pro ו +f21 pro
  6. מדריך | הוספת תאריך עברי למסך הבית בגרסה הרגילה של f21 pro

מדריך | הוספת תאריך עברי למסך הבית בגרסה הרגילה של f21 pro

מתוזמן נעוץ נעול הועבר עזרה הדדית - שיאומי f21 pro ו +f21 pro
7 פוסטים 3 כותבים 47 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • L מנותק
    L מנותק
    lilo159
    כתב נערך לאחרונה על ידי lilo159
    #1

    בהמשך למדריך | הוספת תאריך עברי למסך הבית בדאמבדרויד
    b7d05bf9-70c4-46c4-8782-188973bae653-image.png
    אז משום מה, אתם עדיין משתמשים בגרסה הרגילה של F21 PRO..
    לא נורא, מתי שהוא גם אתם תתקדמו..

    בכל מקרה, לבינתיים:

    כרגיל, הAI הוא המתכנת, אבל האחריות אצלו היא לא טעות סופר..

    לשינויים:
    האפליקציה שאנחנו עורכים היא הלאנצ'ר, שנמצא בנתיב:
    /system_ext/priv-app/Launcher3QuickStep

    כל הקלאסים שנערכים או נוספים, נמצאים בנתיב:
    com/android/launcher3

    1. להוסיף את הקלאס HebrewDateHelper (בנתיב com/android/launcher3):
    .class public Lcom/android/launcher3/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, 0x1
        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/launcher3/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
        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
        const-wide/high16 v6, 0x4000000000000000L
        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
        div-double/2addr v4, v6
        invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
        move-result-wide v4
        const-wide v6, 0x3ff0cccccccccccdL
        mul-double/2addr v4, v6
        const-wide v6, 0x403247ae147ae148L
        add-double/2addr v4, v6
    
        if-eqz v0, :cond_48
        const-wide/high16 v6, 0x3ff0000000000000L
        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
        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
    

    אם אתם מעדיפים שהתאריך הלועזי יהיה למעלה, אז תקחו את הקוד שבספויילר במקום:

    .class public Lcom/android/launcher3/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, 0x1
        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/launcher3/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, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
        const-string v2, "\n"
        invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    
        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
        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, p0}, 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, v3}, 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
        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
        const-wide/high16 v6, 0x4000000000000000L
        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
        div-double/2addr v4, v6
        invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
        move-result-wide v4
        const-wide v6, 0x3ff0cccccccccccdL
        mul-double/2addr v4, v6
        const-wide v6, 0x403247ae147ae148L
        add-double/2addr v4, v6
    
        if-eqz v0, :cond_48
        const-wide/high16 v6, 0x3ff0000000000000L
        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
        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
    

    1. להוסיף את הקלאס (באותו נתיב):
      WorkspaceDateReceiver
    .class public Lcom/android/launcher3/WorkspaceDateReceiver;
    .super Landroid/content/BroadcastReceiver;
    
    .field private final mWorkspace:Lcom/android/launcher3/Workspace;
    
    .method public constructor <init>(Lcom/android/launcher3/Workspace;)V
        .registers 2
    
        .line 1
        invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
    
        .line 2
        iput-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
    
        .line 3
        return-void
    .end method
    
    .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
        .registers 3
    
        .line 1
        iget-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
    
        if-eqz p1, :cond_end
    
        .line 2
        invoke-virtual {p1}, Lcom/android/launcher3/Workspace;->refreshTime()V
    
        :cond_end
        return-void
    .end method
    
    1. בקלאס Workspace (שנמצא בנתיב כדלעיל):
      יחסית בתחילת הקלאס (בערך שורה 46)
      אחרי השורה
    # static fields
    

    להוסיף את השורה הזאת:

    .field private mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
    
    1. באותו קלאס
      במתודה insertNewWorkspaceScreen (הראשונה, נראית כך):
    .method public insertNewWorkspaceScreen(II)Lcom/android/launcher3/CellLayout;
    

    מתחת לשורה .line 728 ישנה השורה:

    invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
    

    מיד אחריה להוסיף את השורות:

    # הזרקה: 2 שורות ומרכוז
        invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
        const/4 v7, 0x2
        invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
        const/16 v7, 0x11
        invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
    


    אמור להראות כך:

        .line 728
        invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
        # הזרקה: 2 שורות ומרכוז
        invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
        const/4 v7, 0x2
        invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
        const/16 v7, 0x11
        invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
    

    1. באותו קלאס
      במתודה refreshTime
      א. לשנות את המתודה לpublic
      ב. לחפש את השורה הזאת:
    invoke-direct/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
    

    ולהחליף עם זאת:

    invoke-virtual/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
    

    ג. מיד אחרי השורה הזאת (היא נמצאת פעמיים, לבצע על שני השורות שתמצאו):

    sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
    
    

    להוסיף את הקוד:

    invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
        move-result-object v1
    


    בסוף המתודה אמורה להראות כך:

    .method public refreshTime()V
        .registers 4
    
        .line 779
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
    
        move-result-object v0
    
        invoke-static {v0}, Lcom/android/launcher3/Workspace$Patterns;->update(Landroid/content/Context;)V
    
        .line 780
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
    
        sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
    
        # הזרקת התאריך העברי לפורמט 24 שעות
        invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
        move-result-object v1
    
        invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
    
        .line 781
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
    
        sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
    
        # הזרקת התאריך העברי לפורמט 12 שעות
        invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
        move-result-object v1
    
        invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
    
        .line 783
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
    
        .line 784
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getResources()Landroid/content/res/Resources;
    
        move-result-object v1
    
        sget v2, Lcom/android/launcher3/R$dimen;->am_pm_widget_font_size:I
    
        invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimension(I)F
    
        move-result v1
    
        float-to-int v1, v1
    
        sget-object v2, Lcom/android/launcher3/Workspace$Patterns;->clockView12:Ljava/lang/String;
    
        .line 783
        invoke-virtual {p0, v1, v2}, Lcom/android/launcher3/Workspace;->updateAmPmTextSize(ILjava/lang/String;)Ljava/lang/CharSequence;
    
        move-result-object v1
    
        invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
    
        .line 785
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
    
        sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->clockView24:Ljava/lang/String;
    
        invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
    
        .line 788
        return-void
    .end method
    

    1. במתודה onAttachedToWindow
      א. להוסיף רגיסטר אחד (להחליף מ3 ל4).
      ב. בסוף המתודה ממש לפני return-void, להוסיף את הקוד:
    # הזרקה: רישום המאזין
        new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
        invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
        iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
    
        new-instance v1, Landroid/content/IntentFilter;
        invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
    
        const-string v2, "android.intent.action.TIME_TICK"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.TIME_SET"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.TIMEZONE_CHANGED"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.DATE_CHANGED"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
        move-result-object v2
        invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
    


    בסוף המתודה אמורה להראות כך:

    .method protected onAttachedToWindow()V
        .registers 4
    
        .line 1490
        invoke-super {p0}, Lcom/android/launcher3/PagedView;->onAttachedToWindow()V
    
        .line 1491
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
    
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getWindowToken()Landroid/os/IBinder;
    
        move-result-object v1
    
        invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
    
        .line 1492
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->computeScroll()V
    
        # רישום המאזין לאירועי שעון
        new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
        invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
        iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
    
        new-instance v1, Landroid/content/IntentFilter;
        invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
    
        const-string v2, "android.intent.action.TIME_TICK"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.TIME_SET"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.TIMEZONE_CHANGED"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        const-string v2, "android.intent.action.DATE_CHANGED"
        invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
        move-result-object v2
        invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
    
        .line 1493
        return-void
    .end method
    

    1. במתודה onDetachedFromWindow (נמצאת ממש אחרי המתודה הקודמת)
      כמו קודם, בסוף המתודה ממש לפני הreturn-void, להוסיף את הקוד הבא:
    # הזרקה: ביטול המאזין
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
        if-eqz v0, :cond_unregister_end
    
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
        move-result-object v1
        invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
    
        const/4 v0, 0x0
        iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
    
        :cond_unregister_end
    


    בסוף המתודה אמורה להראות כך:

    .method protected onDetachedFromWindow()V
        .registers 3
    
        .line 1496
        invoke-super {p0}, Lcom/android/launcher3/PagedView;->onDetachedFromWindow()V
    
        .line 1497
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
    
        const/4 v1, 0x0
    
        invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
    
        # מחיקת המאזין כדי למנוע דליפת זיכרון
        iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
        if-eqz v0, :cond_unregister_end
    
        invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
        move-result-object v1
        invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
    
        const/4 v0, 0x0
        iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
    
        :cond_unregister_end
    
        .line 1498
        return-void
    .end method
    

    בהצלחה!

    מ ח 2 תגובות תגובה אחרונה
    7
    • L lilo159 התייחס לנושא זה
    • L lilo159

      בהמשך למדריך | הוספת תאריך עברי למסך הבית בדאמבדרויד
      b7d05bf9-70c4-46c4-8782-188973bae653-image.png
      אז משום מה, אתם עדיין משתמשים בגרסה הרגילה של F21 PRO..
      לא נורא, מתי שהוא גם אתם תתקדמו..

      בכל מקרה, לבינתיים:

      כרגיל, הAI הוא המתכנת, אבל האחריות אצלו היא לא טעות סופר..

      לשינויים:
      האפליקציה שאנחנו עורכים היא הלאנצ'ר, שנמצא בנתיב:
      /system_ext/priv-app/Launcher3QuickStep

      כל הקלאסים שנערכים או נוספים, נמצאים בנתיב:
      com/android/launcher3

      1. להוסיף את הקלאס HebrewDateHelper (בנתיב com/android/launcher3):
      .class public Lcom/android/launcher3/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, 0x1
          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/launcher3/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
          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
          const-wide/high16 v6, 0x4000000000000000L
          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
          div-double/2addr v4, v6
          invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
          move-result-wide v4
          const-wide v6, 0x3ff0cccccccccccdL
          mul-double/2addr v4, v6
          const-wide v6, 0x403247ae147ae148L
          add-double/2addr v4, v6
      
          if-eqz v0, :cond_48
          const-wide/high16 v6, 0x3ff0000000000000L
          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
          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
      

      אם אתם מעדיפים שהתאריך הלועזי יהיה למעלה, אז תקחו את הקוד שבספויילר במקום:

      .class public Lcom/android/launcher3/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, 0x1
          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/launcher3/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, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
          const-string v2, "\n"
          invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
      
          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
          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, p0}, 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, v3}, 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
          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
          const-wide/high16 v6, 0x4000000000000000L
          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
          div-double/2addr v4, v6
          invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
          move-result-wide v4
          const-wide v6, 0x3ff0cccccccccccdL
          mul-double/2addr v4, v6
          const-wide v6, 0x403247ae147ae148L
          add-double/2addr v4, v6
      
          if-eqz v0, :cond_48
          const-wide/high16 v6, 0x3ff0000000000000L
          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
          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
      

      1. להוסיף את הקלאס (באותו נתיב):
        WorkspaceDateReceiver
      .class public Lcom/android/launcher3/WorkspaceDateReceiver;
      .super Landroid/content/BroadcastReceiver;
      
      .field private final mWorkspace:Lcom/android/launcher3/Workspace;
      
      .method public constructor <init>(Lcom/android/launcher3/Workspace;)V
          .registers 2
      
          .line 1
          invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
      
          .line 2
          iput-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
      
          .line 3
          return-void
      .end method
      
      .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
          .registers 3
      
          .line 1
          iget-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
      
          if-eqz p1, :cond_end
      
          .line 2
          invoke-virtual {p1}, Lcom/android/launcher3/Workspace;->refreshTime()V
      
          :cond_end
          return-void
      .end method
      
      1. בקלאס Workspace (שנמצא בנתיב כדלעיל):
        יחסית בתחילת הקלאס (בערך שורה 46)
        אחרי השורה
      # static fields
      

      להוסיף את השורה הזאת:

      .field private mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
      
      1. באותו קלאס
        במתודה insertNewWorkspaceScreen (הראשונה, נראית כך):
      .method public insertNewWorkspaceScreen(II)Lcom/android/launcher3/CellLayout;
      

      מתחת לשורה .line 728 ישנה השורה:

      invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
      

      מיד אחריה להוסיף את השורות:

      # הזרקה: 2 שורות ומרכוז
          invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
          const/4 v7, 0x2
          invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
          const/16 v7, 0x11
          invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
      


      אמור להראות כך:

          .line 728
          invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
          # הזרקה: 2 שורות ומרכוז
          invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
          const/4 v7, 0x2
          invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
          const/16 v7, 0x11
          invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
      

      1. באותו קלאס
        במתודה refreshTime
        א. לשנות את המתודה לpublic
        ב. לחפש את השורה הזאת:
      invoke-direct/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
      

      ולהחליף עם זאת:

      invoke-virtual/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
      

      ג. מיד אחרי השורה הזאת (היא נמצאת פעמיים, לבצע על שני השורות שתמצאו):

      sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
      
      

      להוסיף את הקוד:

      invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
          move-result-object v1
      


      בסוף המתודה אמורה להראות כך:

      .method public refreshTime()V
          .registers 4
      
          .line 779
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
      
          move-result-object v0
      
          invoke-static {v0}, Lcom/android/launcher3/Workspace$Patterns;->update(Landroid/content/Context;)V
      
          .line 780
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
      
          sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
      
          # הזרקת התאריך העברי לפורמט 24 שעות
          invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
          move-result-object v1
      
          invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
      
          .line 781
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
      
          sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
      
          # הזרקת התאריך העברי לפורמט 12 שעות
          invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
          move-result-object v1
      
          invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
      
          .line 783
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
      
          .line 784
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getResources()Landroid/content/res/Resources;
      
          move-result-object v1
      
          sget v2, Lcom/android/launcher3/R$dimen;->am_pm_widget_font_size:I
      
          invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimension(I)F
      
          move-result v1
      
          float-to-int v1, v1
      
          sget-object v2, Lcom/android/launcher3/Workspace$Patterns;->clockView12:Ljava/lang/String;
      
          .line 783
          invoke-virtual {p0, v1, v2}, Lcom/android/launcher3/Workspace;->updateAmPmTextSize(ILjava/lang/String;)Ljava/lang/CharSequence;
      
          move-result-object v1
      
          invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
      
          .line 785
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
      
          sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->clockView24:Ljava/lang/String;
      
          invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
      
          .line 788
          return-void
      .end method
      

      1. במתודה onAttachedToWindow
        א. להוסיף רגיסטר אחד (להחליף מ3 ל4).
        ב. בסוף המתודה ממש לפני return-void, להוסיף את הקוד:
      # הזרקה: רישום המאזין
          new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
          invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
          iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
      
          new-instance v1, Landroid/content/IntentFilter;
          invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
      
          const-string v2, "android.intent.action.TIME_TICK"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.TIME_SET"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.TIMEZONE_CHANGED"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.DATE_CHANGED"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
          move-result-object v2
          invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
      


      בסוף המתודה אמורה להראות כך:

      .method protected onAttachedToWindow()V
          .registers 4
      
          .line 1490
          invoke-super {p0}, Lcom/android/launcher3/PagedView;->onAttachedToWindow()V
      
          .line 1491
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
      
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getWindowToken()Landroid/os/IBinder;
      
          move-result-object v1
      
          invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
      
          .line 1492
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->computeScroll()V
      
          # רישום המאזין לאירועי שעון
          new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
          invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
          iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
      
          new-instance v1, Landroid/content/IntentFilter;
          invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
      
          const-string v2, "android.intent.action.TIME_TICK"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.TIME_SET"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.TIMEZONE_CHANGED"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          const-string v2, "android.intent.action.DATE_CHANGED"
          invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
      
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
          move-result-object v2
          invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
      
          .line 1493
          return-void
      .end method
      

      1. במתודה onDetachedFromWindow (נמצאת ממש אחרי המתודה הקודמת)
        כמו קודם, בסוף המתודה ממש לפני הreturn-void, להוסיף את הקוד הבא:
      # הזרקה: ביטול המאזין
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
          if-eqz v0, :cond_unregister_end
      
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
          move-result-object v1
          invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
      
          const/4 v0, 0x0
          iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
      
          :cond_unregister_end
      


      בסוף המתודה אמורה להראות כך:

      .method protected onDetachedFromWindow()V
          .registers 3
      
          .line 1496
          invoke-super {p0}, Lcom/android/launcher3/PagedView;->onDetachedFromWindow()V
      
          .line 1497
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
      
          const/4 v1, 0x0
      
          invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
      
          # מחיקת המאזין כדי למנוע דליפת זיכרון
          iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
          if-eqz v0, :cond_unregister_end
      
          invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
          move-result-object v1
          invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
      
          const/4 v0, 0x0
          iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
      
          :cond_unregister_end
      
          .line 1498
          return-void
      .end method
      

      בהצלחה!

      מ מנותק
      מ מנותק
      מחנה ידידים
      כתב נערך לאחרונה על ידי
      #2

      @lilo159 מה גורם שבחלק מהגרסאות העברי מעל ובחלק הלועזי מעל?

      L תגובה 1 תגובה אחרונה
      0
      • מ מחנה ידידים

        @lilo159 מה גורם שבחלק מהגרסאות העברי מעל ובחלק הלועזי מעל?

        L מנותק
        L מנותק
        lilo159
        כתב נערך לאחרונה על ידי
        #3

        @מחנה-ידידים ההחלטה של מי שערך..
        אם זה חשוב לך אפשר לשנות, לי היה חשוב שהתאריך העברי יהיה מעל..

        מ תגובה 1 תגובה אחרונה
        0
        • L lilo159

          @מחנה-ידידים ההחלטה של מי שערך..
          אם זה חשוב לך אפשר לשנות, לי היה חשוב שהתאריך העברי יהיה מעל..

          מ מנותק
          מ מנותק
          מחנה ידידים
          כתב נערך לאחרונה על ידי
          #4

          @lilo159 נראה לי שכדאי שתוסיף במדריך איך לעשות למעלה ואיך למטה.

          L תגובה 1 תגובה אחרונה
          0
          • מ מחנה ידידים

            @lilo159 נראה לי שכדאי שתוסיף במדריך איך לעשות למעלה ואיך למטה.

            L מנותק
            L מנותק
            lilo159
            כתב נערך לאחרונה על ידי lilo159
            #5

            @מחנה-ידידים הוספתי בספויילר.
            לא ניסיתי, אבל זה אמור לעבוד.

            תגובה 1 תגובה אחרונה
            2
            • L lilo159

              בהמשך למדריך | הוספת תאריך עברי למסך הבית בדאמבדרויד
              b7d05bf9-70c4-46c4-8782-188973bae653-image.png
              אז משום מה, אתם עדיין משתמשים בגרסה הרגילה של F21 PRO..
              לא נורא, מתי שהוא גם אתם תתקדמו..

              בכל מקרה, לבינתיים:

              כרגיל, הAI הוא המתכנת, אבל האחריות אצלו היא לא טעות סופר..

              לשינויים:
              האפליקציה שאנחנו עורכים היא הלאנצ'ר, שנמצא בנתיב:
              /system_ext/priv-app/Launcher3QuickStep

              כל הקלאסים שנערכים או נוספים, נמצאים בנתיב:
              com/android/launcher3

              1. להוסיף את הקלאס HebrewDateHelper (בנתיב com/android/launcher3):
              .class public Lcom/android/launcher3/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, 0x1
                  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/launcher3/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
                  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
                  const-wide/high16 v6, 0x4000000000000000L
                  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
                  div-double/2addr v4, v6
                  invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
                  move-result-wide v4
                  const-wide v6, 0x3ff0cccccccccccdL
                  mul-double/2addr v4, v6
                  const-wide v6, 0x403247ae147ae148L
                  add-double/2addr v4, v6
              
                  if-eqz v0, :cond_48
                  const-wide/high16 v6, 0x3ff0000000000000L
                  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
                  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
              

              אם אתם מעדיפים שהתאריך הלועזי יהיה למעלה, אז תקחו את הקוד שבספויילר במקום:

              .class public Lcom/android/launcher3/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, 0x1
                  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/launcher3/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, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
                  const-string v2, "\n"
                  invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
              
                  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
                  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, p0}, 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, v3}, 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
                  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
                  const-wide/high16 v6, 0x4000000000000000L
                  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
                  div-double/2addr v4, v6
                  invoke-static {v4, v5}, Ljava/lang/Math;->sin(D)D
                  move-result-wide v4
                  const-wide v6, 0x3ff0cccccccccccdL
                  mul-double/2addr v4, v6
                  const-wide v6, 0x403247ae147ae148L
                  add-double/2addr v4, v6
              
                  if-eqz v0, :cond_48
                  const-wide/high16 v6, 0x3ff0000000000000L
                  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
                  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
              

              1. להוסיף את הקלאס (באותו נתיב):
                WorkspaceDateReceiver
              .class public Lcom/android/launcher3/WorkspaceDateReceiver;
              .super Landroid/content/BroadcastReceiver;
              
              .field private final mWorkspace:Lcom/android/launcher3/Workspace;
              
              .method public constructor <init>(Lcom/android/launcher3/Workspace;)V
                  .registers 2
              
                  .line 1
                  invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
              
                  .line 2
                  iput-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
              
                  .line 3
                  return-void
              .end method
              
              .method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
                  .registers 3
              
                  .line 1
                  iget-object p1, p0, Lcom/android/launcher3/WorkspaceDateReceiver;->mWorkspace:Lcom/android/launcher3/Workspace;
              
                  if-eqz p1, :cond_end
              
                  .line 2
                  invoke-virtual {p1}, Lcom/android/launcher3/Workspace;->refreshTime()V
              
                  :cond_end
                  return-void
              .end method
              
              1. בקלאס Workspace (שנמצא בנתיב כדלעיל):
                יחסית בתחילת הקלאס (בערך שורה 46)
                אחרי השורה
              # static fields
              

              להוסיף את השורה הזאת:

              .field private mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
              
              1. באותו קלאס
                במתודה insertNewWorkspaceScreen (הראשונה, נראית כך):
              .method public insertNewWorkspaceScreen(II)Lcom/android/launcher3/CellLayout;
              

              מתחת לשורה .line 728 ישנה השורה:

              invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
              

              מיד אחריה להוסיף את השורות:

              # הזרקה: 2 שורות ומרכוז
                  invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
                  const/4 v7, 0x2
                  invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
                  const/16 v7, 0x11
                  invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
              


              אמור להראות כך:

                  .line 728
                  invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setFocusable(Z)V
                  # הזרקה: 2 שורות ומרכוז
                  invoke-virtual {v6, v5}, Landroid/widget/TextClock;->setSingleLine(Z)V
                  const/4 v7, 0x2
                  invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setMaxLines(I)V
                  const/16 v7, 0x11
                  invoke-virtual {v6, v7}, Landroid/widget/TextClock;->setGravity(I)V
              

              1. באותו קלאס
                במתודה refreshTime
                א. לשנות את המתודה לpublic
                ב. לחפש את השורה הזאת:
              invoke-direct/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
              

              ולהחליף עם זאת:

              invoke-virtual/range {p0 .. p0}, Lcom/android/launcher3/Workspace;->refreshTime()V
              

              ג. מיד אחרי השורה הזאת (היא נמצאת פעמיים, לבצע על שני השורות שתמצאו):

              sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
              
              

              להוסיף את הקוד:

              invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
                  move-result-object v1
              


              בסוף המתודה אמורה להראות כך:

              .method public refreshTime()V
                  .registers 4
              
                  .line 779
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
              
                  move-result-object v0
              
                  invoke-static {v0}, Lcom/android/launcher3/Workspace$Patterns;->update(Landroid/content/Context;)V
              
                  .line 780
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
              
                  sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
              
                  # הזרקת התאריך העברי לפורמט 24 שעות
                  invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
                  move-result-object v1
              
                  invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
              
                  .line 781
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateView:Landroid/widget/TextClock;
              
                  sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->dateView:Ljava/lang/String;
              
                  # הזרקת התאריך העברי לפורמט 12 שעות
                  invoke-static {v1}, Lcom/android/launcher3/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
                  move-result-object v1
              
                  invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
              
                  .line 783
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
              
                  .line 784
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getResources()Landroid/content/res/Resources;
              
                  move-result-object v1
              
                  sget v2, Lcom/android/launcher3/R$dimen;->am_pm_widget_font_size:I
              
                  invoke-virtual {v1, v2}, Landroid/content/res/Resources;->getDimension(I)F
              
                  move-result v1
              
                  float-to-int v1, v1
              
                  sget-object v2, Lcom/android/launcher3/Workspace$Patterns;->clockView12:Ljava/lang/String;
              
                  .line 783
                  invoke-virtual {p0, v1, v2}, Lcom/android/launcher3/Workspace;->updateAmPmTextSize(ILjava/lang/String;)Ljava/lang/CharSequence;
              
                  move-result-object v1
              
                  invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat12Hour(Ljava/lang/CharSequence;)V
              
                  .line 785
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mClockView:Landroid/widget/TextClock;
              
                  sget-object v1, Lcom/android/launcher3/Workspace$Patterns;->clockView24:Ljava/lang/String;
              
                  invoke-virtual {v0, v1}, Landroid/widget/TextClock;->setFormat24Hour(Ljava/lang/CharSequence;)V
              
                  .line 788
                  return-void
              .end method
              

              1. במתודה onAttachedToWindow
                א. להוסיף רגיסטר אחד (להחליף מ3 ל4).
                ב. בסוף המתודה ממש לפני return-void, להוסיף את הקוד:
              # הזרקה: רישום המאזין
                  new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
                  invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
                  iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
              
                  new-instance v1, Landroid/content/IntentFilter;
                  invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
              
                  const-string v2, "android.intent.action.TIME_TICK"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.TIME_SET"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.TIMEZONE_CHANGED"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.DATE_CHANGED"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
                  move-result-object v2
                  invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
              


              בסוף המתודה אמורה להראות כך:

              .method protected onAttachedToWindow()V
                  .registers 4
              
                  .line 1490
                  invoke-super {p0}, Lcom/android/launcher3/PagedView;->onAttachedToWindow()V
              
                  .line 1491
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
              
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getWindowToken()Landroid/os/IBinder;
              
                  move-result-object v1
              
                  invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
              
                  .line 1492
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->computeScroll()V
              
                  # רישום המאזין לאירועי שעון
                  new-instance v0, Lcom/android/launcher3/WorkspaceDateReceiver;
                  invoke-direct {v0, p0}, Lcom/android/launcher3/WorkspaceDateReceiver;-><init>(Lcom/android/launcher3/Workspace;)V
                  iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
              
                  new-instance v1, Landroid/content/IntentFilter;
                  invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
              
                  const-string v2, "android.intent.action.TIME_TICK"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.TIME_SET"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.TIMEZONE_CHANGED"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  const-string v2, "android.intent.action.DATE_CHANGED"
                  invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
              
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
                  move-result-object v2
                  invoke-virtual {v2, v0, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
              
                  .line 1493
                  return-void
              .end method
              

              1. במתודה onDetachedFromWindow (נמצאת ממש אחרי המתודה הקודמת)
                כמו קודם, בסוף המתודה ממש לפני הreturn-void, להוסיף את הקוד הבא:
              # הזרקה: ביטול המאזין
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
                  if-eqz v0, :cond_unregister_end
              
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
                  move-result-object v1
                  invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
              
                  const/4 v0, 0x0
                  iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
              
                  :cond_unregister_end
              


              בסוף המתודה אמורה להראות כך:

              .method protected onDetachedFromWindow()V
                  .registers 3
              
                  .line 1496
                  invoke-super {p0}, Lcom/android/launcher3/PagedView;->onDetachedFromWindow()V
              
                  .line 1497
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mWallpaperOffset:Lcom/android/launcher3/util/WallpaperOffsetInterpolator;
              
                  const/4 v1, 0x0
              
                  invoke-virtual {v0, v1}, Lcom/android/launcher3/util/WallpaperOffsetInterpolator;->setWindowToken(Landroid/os/IBinder;)V
              
                  # מחיקת המאזין כדי למנוע דליפת זיכרון
                  iget-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
                  if-eqz v0, :cond_unregister_end
              
                  invoke-virtual {p0}, Lcom/android/launcher3/Workspace;->getContext()Landroid/content/Context;
                  move-result-object v1
                  invoke-virtual {v1, v0}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
              
                  const/4 v0, 0x0
                  iput-object v0, p0, Lcom/android/launcher3/Workspace;->mDateReceiver:Lcom/android/launcher3/WorkspaceDateReceiver;
              
                  :cond_unregister_end
              
                  .line 1498
                  return-void
              .end method
              

              בהצלחה!

              ח מנותק
              ח מנותק
              חד גדיא
              כתב נערך לאחרונה על ידי
              #6

              @lilo159 אשמח אם תסביר מה זה בעצם עושה,
              כאילו מאיפה נשאב התאריך העברי

              L תגובה 1 תגובה אחרונה
              0
              • ח חד גדיא

                @lilo159 אשמח אם תסביר מה זה בעצם עושה,
                כאילו מאיפה נשאב התאריך העברי

                L מנותק
                L מנותק
                lilo159
                כתב נערך לאחרונה על ידי
                #7

                @חד-גדיא לפי הבנתי המועטה, ישנה ספריה מובנית באנדרואיד שנקראת icu, ומשם נשאב התאריך העברי.

                תגובה 1 תגובה אחרונה
                0

                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • חוקי הפורום
                • פופולרי
                • לא נפתר
                • משתמשים
                • חיפוש גוגל בפורום
                • צור קשר