אפליקציה Stay Close 2 Me 1.09

אפליקציות, מערכות הפעלה של גוגל אנדרויד - ginger bread, ice cream sandwich, froyo, jelly bean
gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #21 

עדכון גרסא 1.03:
- הוכנס Logic אשר בודק בשניות הראשונות אם ההתקן שנבחר זמין לניטור ומונע מהאזעקה לפעול במקרה שלא.
הורדה:
http://www.multiupload.com/PWUSB6IMTH

עודכן בראש השרשור.
שבת שלום לכולם (f)

AviBiton
סמל אישי של משתמש
גורו HTmobile
גורו HTmobile
תגובות: 17346
הצטרף: אפריל 2005
מיקום: קרית שמונה
נתן תודות: 503 פעמים
קיבל תודות: 358 פעמים

שליחה #22 

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

urik79
סמל אישי של משתמש
חבר מביא חבר
חבר מביא חבר
תגובות: 4318
הצטרף: יוני 2007
שם מלא: אורי
מיקום: סביוני יאבוייה
נתן תודות: 59 פעמים
קיבל תודות: 130 פעמים

שליחה #23 

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

שבלול
סמל אישי של משתמש
חבר ותיק
חבר ותיק
תגובות: 1446
הצטרף: יולי 2005
נתן תודות: 27 פעמים
קיבל תודות: 65 פעמים

שליחה #24 

אני חושב שכדי שהתוכנה תשאר שימושית ולא מציקה אתה חייב להוסיף home screen widget שמכבה ומדליק את התוכנה, רק ככה זה ייתן מענה לבעיות כמו ש urik79 ציין

osherov
סמל אישי של משתמש
גורו Android
גורו Android
תגובות: 15029
הצטרף: אפריל 2007
נתן תודות: 201 פעמים
קיבל תודות: 513 פעמים

שליחה #25 

גם המכשיר שלי לא נתמך בגירסה החדשה (נקסוס 1 עם סטוק של Gingerbread)

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #26 

עדכון גרסא 1.05:
- במידה ולמערכת ההפעלה חסרה התמיכה הדרושה התוכנה תציע להוריד ולהתקין את החסר.
- תוקן ה-Layout למסכי HVGA.
- שיפור האלגוריתם למניעת אזעקות שווא.

עדכון גרסא 1.05a:
- תוקנה שגיאת כתיב :oops:
הורדה:
http://www.multiupload.com/OWFWM4YI6C

מערכת הקבצים של לינוקס שיגעה אותי עם ההרשאות שלה!
ישבתי כמה שעות עד שפתרתי את הבעיות שנבעו מחוסר ההתמצאות שלי במערכת הזו. איפה הימים של WM? (U)
מי שלא מקבל הודעת אי תאימות ובכל זאת לא מצליח לתקשר עם ההתקן המרוחק יכול להשתמש באופציית ה-Force Compatibility כדי לפתור את בעית התאימות. שימו (l) : התוכנה לא נוגעת במערכת ההפעלה. אין שום סכנה בלהשתמש באופציה הזאת. מריצים פעם אחת וזהו.

לגבי הווידג'ט, חשבתי על הרעיון אבל נראה לי שאני אשתמש ב-notification קבוע בסרגל העליון, בכל מקרה זה יצטרך לחכות. אני קודם רוצה לוודא שהפונקציונליות ה"גרעינית" של התוכנה עובדת כמו שצריך. את הקוסמטיקה אני משאיר לסוף. אני מקווה שהעדכון הזה יעזור לכל אלו שלא עבד להם הסיפור לפתור את הבעיה ולהתחיל להשתמש בתוכנה.

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #27 

נו מה קורה? אין פידבקים? אני מעוניין לשמוע גם אם התוכנה עובדת. :lol:

AviBiton
סמל אישי של משתמש
גורו HTmobile
גורו HTmobile
תגובות: 17346
הצטרף: אפריל 2005
מיקום: קרית שמונה
נתן תודות: 503 פעמים
קיבל תודות: 358 פעמים

שליחה #28 

אני אבדוק יותר מאוחר

osherov
סמל אישי של משתמש
גורו Android
גורו Android
תגובות: 15029
הצטרף: אפריל 2007
נתן תודות: 201 פעמים
קיבל תודות: 513 פעמים

שליחה #29 

gorelshv,
מאוד בעייתי לטעמי שאתה מבקש להוריד איזה שהוא עידכון שאמור להוסיף משהו ל OS של האנדרואיד. לדעתי מעטים יהיו מוכנים להוריד עידכון כזה. לדעתי, גם עדיף היה לייצר אפליקצייה שלא דורשת הרשאות רוט, מכיוון שכך שאתה מאבד לא מעט קהל בגלל זה. השאלה שלי היא מה מונע ממך להשתמש בסיפריות ה SDK הרגילות של האנדרואיד על מנת לבצע את כל בדיקת החיבוריות.

לדוגמה, זה הדרך לבדוק ולהפעיל את ה Bluetooth במכשיר במידה והוא לא מאופשר (אין צורך לבקש מהמשתמש לעשות את זה)

קוד: בחירת הכל

if (!mBluetoothAdapter.isEnabled()) {
    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}
זאת ההודעה שהמשתמש יקבל:
תמונה


זאת הדרך לבדוק לגבי paired devices (כאלה שכבר הוגדרו ומוכרים מהעבר)

קוד: בחירת הכל

Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices&#40;&#41;;
// If there are paired devices
if &#40;pairedDevices.size&#40;&#41; > 0&#41; &#123;
    // Loop through paired devices
    for &#40;BluetoothDevice device &#58; pairedDevices&#41; &#123;
        // Add the name and address to an array adapter to show in a ListView
        mArrayAdapter.add&#40;device.getName&#40;&#41; + "\n" + device.getAddress&#40;&#41;&#41;;
    &#125;
&#125;
&#125;
עכשיו הקטע הטריקי שאולי בגללו חיפשת איזה פונקציה Low Level על מנת לזהות את מצב connected בו המכשיר נמצא כרגע עם מכשיר אחר, אח"כ גם לזהות את המצב שהמכשיר התנתק מהמכשיר האחר (אז אני מניח שבעצם אתה מפעיל את האזעקה). הקוד הרלונוטי לדעתי הוא רישום כ BroadcastReceiver לפילטר (IntentFilter) שנקרא BluetoothDevice.ACTION_ACL_CONNECTED ו BluetoothDevice.ACTION_ACL_DISCONNECTED (במידה ואתה לא מחפש רק מכשירים שהם במצב מחובר, אלא אתה מתעניין במכשירים שהם במצב Paired אבל לא מחוברים, אז ניתן להשתמש בפונקציה ()startDiscovery של המחלקה BluetoothAdapter)

קוד: בחירת הכל

getApplicationContext&#40;&#41;.registerReceiver&#40;receiver,
                    new IntentFilter&#40;BluetoothDevice.ACTION_ACL_CONNECTED&#41;&#41;;
getApplicationContext&#40;&#41;.registerReceiver&#40;receiver,
                    new IntentFilter&#40;BluetoothDevice.ACTION_ACL_DISCONNECTED&#41;&#41;;
מה שאני מניח שאולי לא עובד הוא שהרישום הזה כ Broadcast receiver לא יעבוד במידה ואתה מתחיל את האפליקצייה שלך אחרי שחיבור ה Bluetooth בין המכשירים כבר היה קיים (האפליקצייה שלך רצה כ activity בלבד). על מנת לפתור את זה, לדעתי, אתה צריך להפוך את האפליקצייה שלך לשירות, service (אתה יורש ממחלקה שנקראת Service) ולהריץ את השירות הזה בזמן עליית המכשיר (BOOT_COMPLETED). ככה, אתה תתפוס כל חיבור וניתוק המכשיר שלך למכשיר Bluetooth אחר וכך תוכל תמיד לנטר את המצב (את ה UI שרץ כ activity אתה תשאיר לנקודה שהמשתמש יהיה מעוניין להפעיל או להפסיק את הפונקציונליות של הזיהוי והאזעקה). הנה דוגמה קוד הרלוונטי לרישום:

קוד: בחירת הכל

Register&#40;....&#41;
&#123;
....
IntentFilter filter1 = new IntentFilter &#40;BluetoothDevice.ACTION_ACL_CONNECTED&#41;;
IntentFilter filter2 = new IntentFilter &#40;BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED&#41;;
IntentFilter filter3 = new IntentFilter &#40;BluetoothDevice.ACTION_ACL_DISCONNECTED&#41;;
this.registerReceiver &#40;mReceiver, filter1&#41;;
this.registerReceiver &#40;mReceiver, filter2&#41;;
this.registerReceiver &#40;mReceiver, filter3&#41;;
...
&#125;


private final BroadcastReceiver mReceiver = new BroadcastReceiver&#40;&#41; 
&#123;
   @Override
public void onReceive&#40;Context context, Intent intent&#41; 
&#123;
String action = intent.getAction&#40;&#41;;
BluetoothDevice device = intent.getParcelableExtra&#40;BluetoothDevice.EXTRA_DEVICE&#41;;

if &#40;BluetoothDevice.ACTION_FOUND.equals&#40;action&#41;&#41; &#123;&#125;
else if &#40;BluetoothAdapter.ACTION_ACL_CONNECTED.equals&#40;action&#41;&#41; &#123;&#125;
else if &#40;BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals&#40;action&#41;&#41; &#123;&#125;
else if &#40;BluetoothAdapter.ACTION_ACL_DISCONNECT_REQUESTED.equals&#40;action&#41;&#41; &#123;&#125;
else if &#40;BluetoothAdapter.ACTION_ACL_DISCONNECTED.equals&#40;action&#41;&#41; &#123;&#125;           
&#125;
&#125;;
אם אתה צריך עזרה בקשר לדרך להריץ את ה Service שלך בזמן עלייה, תשאל ונעזור לך (אגב, אתה לא חייב לממש Service אלא אתה יכול לרוץ רק כ Broadcast receiver למרות ש Service נראה לי הגיוני יותר)

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #30 

אריה, שים לב שכתבתי מפורשות שהתוכנה לא נוגעת במערכת ההפעלה, ואפילו הדגשתי את זה, גם בתוכנה. מה גרם לך להבין אחרת?
את הקבצים היא מורידה לתיקייה מקומית. אני מסכים איתך במאה אחוז שזה לא לעניין להתעסק במערכת ההפעלה. אני פשוט מיישם אלגוריתם שבודק אם הקבצים קיימים כבר במערכת ההפעלה ואם לא התוכנה תוריד אותם בעצמה לשימוש "אישי".
הדרך שבה אני עובד ובגללה בעצם התוכנה צריכה הרשאות רוט היא לבצע שאילתא למכשיר שנבחר בפרק זמן קבוע. שיטה זו היא לטעמי יותר יעילה מבחינת מהירות וחיסכון בסוללה מאשר שיטת הסריקה שהצעת. בדיוק מהסיבה הזו המכשירים לא צריכים להיות מחוברים אלא רק מזווגים. את השאילתא מבצע service (אני לא מבין למה חשבת שאני לא משתמש בזה).
לגבי כל השאר, מבחינת רשימת המכשירים המזווגים ובדיקת מצב מודול הבלוטות' (פועל/כבוי) אני משתמש בדרכים "המקובלות" שלא צריכות הרשאות רוט.
אני מקווה שההסבר שלי הרגיע אותך, ושאתה מרגיש קצת יותר בטוח לנסות את התוכנה.

osherov
סמל אישי של משתמש
גורו Android
גורו Android
תגובות: 15029
הצטרף: אפריל 2007
נתן תודות: 201 פעמים
קיבל תודות: 513 פעמים

שליחה #31 

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

בקשר לאפליקציה עצמה,
הורדתי את העדכון ובדקתי אותה וסה"כ היא עובדת בסדר גמור למעט מספר קטן של דברים:
1. לעיתים כאשר האזעקה מתחילה לעבוד הלחיצה על כפתור העצירה לא מפסיק את הסאונד ואפילו מקבלים הודעה על force close (זה נעלם כעבור מספר שניות כנראה בגלל שהסאונד מסתיים להתנגן)
2. אם אני מכבה את ה BT במכשיר שלי בזמן ניטור אז האזעקה מתחילה לעבוד (לדעתי זה לא צריך לעבוד במידה ובעל המכשיר יזם סגירה של ה BT))
3. לחיצה על תפריט הForce Compatibility גורמת להודעת הורדת הרכיב מהרשת להיפתח שוב, למרות שכבר הורדתי אותו בעבר
4. קרה לי פעם אחת שהאזעקה התחילה לעבוד אבל הסאונד לא נשמע (לא הצלחתי לשחזר את זה). המכשיר רטט

זהו לעכשיו...סה"כ האלגוריתם נראה שעובד טוב

בקשר להרצה כ Service, בדקתי את זה כמובן לפני שרשמתי. אני מניח שבגלל שזה לא התחיל לעבוד כשורה זה לא עבר לעבודה כ Service. מה גם שהתכוונתי לעבודה בזמן ה Boot ועל פי הבנתי זה מתחיל לעבוד רק ברגע שהמשתמש מפעיל את האפליקציה

אגב, אולי תספר מה זה המודול הזה שאתה מוריד בו אתה צריך להשתמש

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #32 

אריה, תודה רבה על הפידבקים המפורטים שלך.
אני מסכים איתך לגבי הקטע של ההורדה, אני עדיין עובד על זה.
לגבי שאר הדברים:
1. הנושא כבר תוקן בגרסא הבאה. זו היתה טעות מטופשת בקוד...
2. איך מבדילים בין כיבוי יזום של ה-bt לבין כיבוי שנעשה בטעות כי המכשיר לא היה נעול, למשל?
3. צודק במאה אחוז.
4. יכול להיות שהטלפון היה על רטט או שהווליום במכשיר היה על mute. אני עדיין בודק איך לעקוף את הגדרות המערכת כדי לוודא שהעוצמה תהיה על מקסימום כשהאזעקה מופעלת.

המודול שאני מוריד הוא חלק מגרסת המפתחים של חבילת ה-BlueZ, החבילה שאחראית לתקשורת ה-bt בהפצות לינוקס. אצלי זה הגיע בילט אין ברום (סיאנוג'ן) אבל כנראה שזה לא כזה נפוץ.

AviBiton
סמל אישי של משתמש
גורו HTmobile
גורו HTmobile
תגובות: 17346
הצטרף: אפריל 2005
מיקום: קרית שמונה
נתן תודות: 503 פעמים
קיבל תודות: 358 פעמים

שליחה #33 

gorelshv כתב:אריה, תודה רבה על הפידבקים המפורטים שלך.
אני מסכים איתך לגבי הקטע של ההורדה, אני עדיין עובד על זה.
לגבי שאר הדברים:
1. הנושא כבר תוקן בגרסא הבאה. זו היתה טעות מטופשת בקוד...
2. איך מבדילים בין כיבוי יזום של ה-bt לבין כיבוי שנעשה בטעות כי המכשיר לא היה נעול, למשל?
3. צודק במאה אחוז.
4. יכול להיות שהטלפון היה על רטט או שהווליום במכשיר היה על mute. אני עדיין בודק איך לעקוף את הגדרות המערכת כדי לוודא שהעוצמה תהיה על מקסימום כשהאזעקה מופעלת.

המודול שאני מוריד הוא חלק מגרסת המפתחים של חבילת ה-BlueZ, החבילה שאחראית לתקשורת ה-bt בהפצות לינוקס. אצלי זה הגיע בילט אין ברום (סיאנוג'ן) אבל כנראה שזה לא כזה נפוץ.
...
לגבי סעיף 4, אני הייתי בודק את קוד המקור של השעון המעורר באנדרואיד.
הוא יודע לעקוף את ההגדרות ולהפעיל את השעון המעורר גם אם המכשיר מושתק.

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #34 

theAman כתב:
gorelshv כתב:אריה, תודה רבה על הפידבקים המפורטים שלך.
אני מסכים איתך לגבי הקטע של ההורדה, אני עדיין עובד על זה.
לגבי שאר הדברים:
1. הנושא כבר תוקן בגרסא הבאה. זו היתה טעות מטופשת בקוד...
2. איך מבדילים בין כיבוי יזום של ה-bt לבין כיבוי שנעשה בטעות כי המכשיר לא היה נעול, למשל?
3. צודק במאה אחוז.
4. יכול להיות שהטלפון היה על רטט או שהווליום במכשיר היה על mute. אני עדיין בודק איך לעקוף את הגדרות המערכת כדי לוודא שהעוצמה תהיה על מקסימום כשהאזעקה מופעלת.

המודול שאני מוריד הוא חלק מגרסת המפתחים של חבילת ה-BlueZ, החבילה שאחראית לתקשורת ה-bt בהפצות לינוקס. אצלי זה הגיע בילט אין ברום (סיאנוג'ן) אבל כנראה שזה לא כזה נפוץ.
...
לגבי סעיף 4, אני הייתי בודק את קוד המקור של השעון המעורר באנדרואיד.
הוא יודע לעקוף את ההגדרות ולהפעיל את השעון המעורר גם אם המכשיר מושתק.
...
(Y)

osherov
סמל אישי של משתמש
גורו Android
גורו Android
תגובות: 15029
הצטרף: אפריל 2007
נתן תודות: 201 פעמים
קיבל תודות: 513 פעמים

שליחה #35 

gorelshv כתב: 2. איך מבדילים בין כיבוי יזום של ה-bt לבין כיבוי שנעשה בטעות כי המכשיר לא היה נעול, למשל?
...
אתה לא יכול להבדיל, אבל אם מישהו כיבה את ה BT שלו אז הגיוני שאתה צריך להתייחס לזה כאילו זה משהו יזום, אפילו אם זה נעשה בטעות (הסיכוי שמישהו לחץ נניח על הכפתור כיבוי ה BT מאחד הויידג'טים הוא די נמוך)

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #36 

נראה לי שאני פשוט אציג הודעה שמודיעה על ניתוק ה-bt ואם תוך כמה שניות המשתמש לא יאשר - תופעל האזעקה.

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

קבלו פינוק על הבוקר

שליחה #37 

עדכון גרסא 1.06:
- התוכנה נתמכת כעת בכל מכשיר עם הרשאות רוט :) האפשרות להורדת תאימות הוסרה מהתוכנה.
- שינוי דרסטי לאלגוריתם החיפוש כדי לאפשר ממשק משתמש ללא השהיות.
- נוספה חתימה קטנה עם אנימציה בכל פעם שהתוכנה מקבלת פוקוס.
- נוסף מנגנון המונע הפעלה של התוכנה בתום שבוע מיום הפצתה כדי לעודד עדכון לגרסאות חדשות.
הורדה:
http://www.multiupload.com/W34LA6ZZPX


כפי שכבר נכתב, התוכנה סבלה מליקוי בעיצוב שגרם לממשק המשתמש להגיב בדיליי כשהופעלה האזעקה. בנוסף הבעיה היתה קיימת גם כשהתוכנה היתה במצב ניטור. כדי לפתור את הבעיה אופן ההרצה של אלגוריתם החיפוש שונה. עכשיו הממשק מגיב מיידית וללא השהיות. מכיוון שזו התוכנה הראשונה שאני מפתח לאנדרואיד (החלטתי לדלג על hello world :lol: ) החלק הזה לקח לי כמה שעות טובות.
כמו כן, הרכיבים הנדרשים לתאימות כלולים בתוכנה ואין צורך יותר להוריד כלום.

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #38 

עדכון גרסא 1.08 (מוגבלת בזמן):
זהו עדכון גרסא משמעותי המוסיף פיצ'רים חדשים ומתתקן באגים מהותיים:
- ממשק משופר ובעיצוב שונה (ראו הודעה ברשא השרשור).
- תמיכה ב-notification
- האזעקה נשמעת בווליום מלא (עוקף הגדרות מערכת).
- תיקוני באגים. בין השאר תוקן הבאג שנוצר במעבר בין גרסא 1.05 ל-1.06 אשר גרם לאזעקות שווא.
- תיקוני Layout (שוב).
הורדה:
http://www.multiupload.com/AFWZB5PP17
נערך לאחרונה על ידי gorelshv ב 18/02/2011 2:02, נערך 3 פעמים בסך הכל.

gorelshv פותח השרשור
חבר ותיק
חבר ותיק
תגובות: 1243
הצטרף: אפריל 2008
נתן תודות: 71 פעמים
קיבל תודות: 55 פעמים

שליחה #39 

העליתי את הגרסא החדשה למרקט:
https://market.android.com/details?id=com.SC2M.BennyG
מקווה להחזיר לפחות את עלויות ההרשמה :lol:

urik79
סמל אישי של משתמש
חבר מביא חבר
חבר מביא חבר
תגובות: 4318
הצטרף: יוני 2007
שם מלא: אורי
מיקום: סביוני יאבוייה
נתן תודות: 59 פעמים
קיבל תודות: 130 פעמים

שליחה #40 

בהצלחה (Y)
כל מה שרציתי כל מה שקניתי
כל מה שאספתי זה לא מספיק
כל מה ששמרתי כל מה שחמדתי
בסוף הבנתי זה לא מספיק

שלח תגובה

חזור אל “Android - אנדרויד”