דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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
41 פוסטים 8 כותבים 229 צפיות 10 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • L lilo159

    @אלוף-תימן

    אם תרצה אני עדיין יכול להוסיף תמונות או לעשות סרטון.


    אלוף, ידעתי למה אני מתעקש לראות את הקוד!
    זה בדיוק ההבדל בין מדריך שעובד לבין בוטלופ (קריסת מערכת).

    ראית איזה יופי? ב-MTK אנדרואיד 13 של אלוף תימן, המהנדסים שינו את המבנה בשני מקומות קריטיים:

    1. ב-KeyguardSliceProvider: הם הוציאו את פרמוט התאריך למתודה נפרדת בשם getFormattedDateLocked()! אם היינו מחפשים את ה-mDateFormat->format בתוך updateClockLocked כמו בדאמבדרויד, לא היינו מוצאים אותו.
    2. ב-KeyguardSliceView: הם בכלל לא קוראים ל-setEllipsize בקוד ה-Smali (כנראה שזה מוגדר ב-XML או בקלאס KeyguardSliceTextView עצמו). לכן אין לנו שורות להחליף, אלא רק שורות להוסיף.

    בנוסף, עשיתי לך כאן טריק קטן של אופטימיזציה ברגיסטרים: במקום להשתמש ברגיסטר v2 בשביל לבדוק אם indexOf שווה ל-(1-), השתמשתי בפקודה if-ltz (שבודקת אם התוצאה קטנה מ-0). למה? כי המתודה מוגדרת עם .registers 3, מה שאומר ש-v2 הוא בעצם p0 (ה-this של הקלאס). אם היינו דורסים את v2, המכשיר היה קורס מיד לאחר מכן כשהיה מנסה לשמור את ה-mLastText.

    הנה ההוראות המדויקות לפורטינג עבור הנגן של אלוף תימן:

    שלב 1: הזרקת הלוגיקה ב-KeyguardSliceProvider

    בנתיב com/android/systemui/keyguard/KeyguardSliceProvider.smali, חפש את המתודה updateClockLocked()V.
    תמצא שם את השורות הבאות:

        .line 406
        invoke-virtual {p0}, Lcom/android/systemui/keyguard/KeyguardSliceProvider;->getFormattedDateLocked()Ljava/lang/String;
    
        move-result-object v0
    

    מיד אחריהן (ולפני ה-iget-object v1), הוסף את הקוד שלנו. השתמשתי ב-v1 בתור רגיסטר זמני כי המערכת במילא דורסת אותו שורה אחת למטה. הדבק את זה:

        # --- הוספת התאריך העברי ---
        const/16 v1, 0x2c
        invoke-virtual {v0, v1}, Ljava/lang/String;->indexOf(I)I
        move-result v1
        if-ltz v1, :skip_trim
        add-int/lit8 v1, v1, 0x2
        invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String;
        move-result-object v0
        :skip_trim
        invoke-static {v0}, Lcom/android/systemui/HebrewDateHelper;->getCombinedDateString(Ljava/lang/String;)Ljava/lang/String;
        move-result-object v0
        # --- סוף הוספה ---
    

    שלב 2: הגדרת 2 שורות במסך הנעילה ב-KeyguardSliceView

    בנתיב com/android/keyguard/KeyguardSliceView.smali, חפש את המתודה showSlice.
    תמצא שם את יצירת ה-TextView (סביבות שורה 168):

        new-instance v9, Lcom/android/keyguard/KeyguardSliceView$KeyguardSliceTextView;
    
        iget-object v10, p0, Landroid/widget/LinearLayout;->mContext:Landroid/content/Context;
    
        invoke-direct {v9, v10}, Lcom/android/keyguard/KeyguardSliceView$KeyguardSliceTextView;-><init>(Landroid/content/Context;)V
    

    מיד אחרי ה-<init> (לפני ה-setTextColor), אנחנו נזריק את ההגדרות שלנו למספר שורות. גם כאן השתמשתי ב-v10 כי הוא פנוי לחלוטין ברגע הזה. הוסף את השורות הבאות:

        # --- לאפשר תצוגת 2 שורות לתאריך ---
        const/4 v10, 0x2
        invoke-virtual {v9, v10}, Landroid/widget/TextView;->setMaxLines(I)V
        const/4 v10, 0x0
        invoke-virtual {v9, v10}, Landroid/widget/TextView;->setSingleLine(Z)V
        # --- סוף הוספה ---
    

    שלב 3: הוספת ה-Class

    כמובן, את השלב הראשון במדריך שלך – יצירת הקובץ HebrewDateHelper.smali בנתיב com/android/systemui עם כל הלוגיקה בפנים – צריך לעשות בדיוק כמו בדאמבדרויד, ללא שום שינוי.

    זהו זה! שמור, קמפל חזרה ותתקין. הקוד עכשיו תפור ברמת הפיקסל ל-MTK 13. תעביר את זה לאלוף תימן, וזה אמור לעבוד לו חלק לגמרי. עבודה מעולה שלך על המדריך המקורי!

    אלוף תימןא מנותק
    אלוף תימןא מנותק
    אלוף תימן
    כתב נערך לאחרונה על ידי
    #41

    @lilo159 אני חושב שזה יספיק כרגע הנגן לא אצלי שאני יבדוק אב מממשש תודה רבה על כל הזמן שהקדשת בשבילי בסופו של יום זה פחות בשבילי זה לפחות ל20 משתמשים בפורום שצורבים את הגירסאות הכשרות שלי אני רוצה שהגירסאות שלי יהיו מושלמות
    תודה רבה בשם כל האלה שיצרבו ויהנו

    מכשיר נגנים

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

    • התחברות

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

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